00001
00002
00003
00004
00005
00006
00007
00008 #ifndef DCPS_MULTICASTSESSIONFACTORY_H
00009 #define DCPS_MULTICASTSESSIONFACTORY_H
00010
00011 #include "Multicast_Export.h"
00012
00013 #include "MulticastTypes.h"
00014
00015 #include "ace/Synch_Traits.h"
00016
00017 #include "dds/DCPS/RcObject_T.h"
00018
00019 class ACE_Reactor;
00020
00021 namespace OpenDDS {
00022 namespace DCPS {
00023
00024 class MulticastDataLink;
00025 class MulticastSession;
00026
00027 class OpenDDS_Multicast_Export MulticastSessionFactory
00028 : public RcObject<ACE_SYNCH_MUTEX> {
00029 public:
00030 virtual ~MulticastSessionFactory();
00031
00032 virtual int requires_send_buffer() const = 0;
00033
00034 virtual MulticastSession* create(ACE_Reactor* reactor,
00035 ACE_thread_t owner,
00036 MulticastDataLink* link,
00037 MulticastPeer remote_peer) = 0;
00038 };
00039
00040 }
00041 }
00042
00043 #endif