19 #ifndef INCLUDE_RCF_MULTICASTCLIENTTRANSPORT_HPP
20 #define INCLUDE_RCF_MULTICASTCLIENTTRANSPORT_HPP
26 #include <boost/shared_ptr.hpp>
28 #include <RCF/ClientTransport.hpp>
29 #include <RCF/Export.hpp>
30 #include <RCF/ThreadLibrary.hpp>
34 typedef boost::shared_ptr< ClientTransportAutoPtr > ClientTransportAutoPtrPtr;
37 class RCF_EXPORT MulticastClientTransport :
public ClientTransport
41 TransportType getTransportType();
43 std::auto_ptr<ClientTransport> clone()
const;
45 EndpointPtr getEndpointPtr()
const;
48 ClientTransportCallback & clientStub,
49 const std::vector<ByteBuffer> & data,
50 unsigned int timeoutMs);
53 ClientTransportCallback & clientStub,
54 ByteBuffer & byteBuffer,
55 unsigned int timeoutMs);
60 ClientTransportCallback & clientStub,
61 unsigned int timeoutMs);
64 unsigned int timeoutMs);
67 ClientTransportAutoPtr clientTransportAutoPtr);
69 void setTransportFilters(
70 const std::vector<FilterPtr> & filters);
72 void getTransportFilters(
73 std::vector<FilterPtr> & filters);
75 void setTimer(boost::uint32_t timeoutMs, ClientTransportCallback *pClientStub);
77 void dropIdleTransports();
78 void pingAllTransports();
82 void bringInNewTransports();
84 typedef std::list< ClientTransportAutoPtrPtr > ClientTransportList;
86 Mutex mClientTransportsMutex;
87 ClientTransportList mClientTransports;
88 ClientTransportList mAddedClientTransports;
90 ClientTransportAutoPtr mMulticastTemp;
95 #endif // ! INCLUDE_RCF_MULTICASTCLIENTTRANSPORT_HPP