18 #ifndef INCLUDE_RCF_MULTICASTCLIENTTRANSPORT_HPP 19 #define INCLUDE_RCF_MULTICASTCLIENTTRANSPORT_HPP 25 #include <RCF/ClientTransport.hpp> 26 #include <RCF/Export.hpp> 27 #include <RCF/ThreadLibrary.hpp> 31 typedef std::shared_ptr< ClientTransportUniquePtr > ClientTransportUniquePtrPtr;
32 typedef std::vector< ClientTransportUniquePtrPtr > ClientTransportList;
35 class RCF_EXPORT MulticastClientTransport :
public ClientTransport
41 std::unique_ptr<ClientTransport> clone()
const;
45 void doSendOnTransports(
47 ClientTransportList& transportList,
48 const std::vector<ByteBuffer> & data,
49 unsigned int timeoutMs);
52 ClientTransportCallback & clientStub,
53 const std::vector<ByteBuffer> & data,
54 unsigned int timeoutMs);
57 ClientTransportCallback & clientStub,
58 ByteBuffer & byteBuffer,
59 unsigned int timeoutMs);
64 ClientTransportCallback & clientStub,
65 unsigned int timeoutMs);
68 unsigned int timeoutMs);
71 ClientTransportUniquePtrPtr clientTransportUniquePtr);
73 void setTransportFilters(
74 const std::vector<FilterPtr> & filters);
76 void getTransportFilters(
77 std::vector<FilterPtr> & filters);
79 void setTimer(std::uint32_t timeoutMs, ClientTransportCallback *pClientStub);
81 void dropIdleTransports();
82 void pingAllTransports();
86 std::size_t getTransportCount();
89 RcfSessionWeakPtr sessionWeakPtr,
90 ClientTransportUniquePtrPtr clientTransportUniquePtr = ClientTransportUniquePtrPtr());
94 void bringInNewTransports();
96 Mutex mClientTransportsMutex;
97 ClientTransportList mClientTransports;
98 ClientTransportList mClientTransportsTemp;
99 ClientTransportList mClientTransportsSending;
101 Mutex mAddedClientTransportsMutex;
102 ClientTransportList mAddedClientTransports;
109 #endif // ! INCLUDE_RCF_MULTICASTCLIENTTRANSPORT_HPP std::shared_ptr< Endpoint > EndpointPtr
Reference counted wrapper for RCF::Endpoint.
Definition: RcfFwd.hpp:117
std::unique_ptr< ClientTransport > ClientTransportUniquePtr
Unique pointer wrapper for RCF::ClientTransport.
Definition: RcfFwd.hpp:43
Definition: AmiIoHandler.hpp:23
TransportType
Describes the transport types used by a RCF connection.
Definition: Enums.hpp:33