17 #ifndef MulticastTransport_H_ 18 #define MulticastTransport_H_ 23 #include "UNetTransport.h" 34 static std::unique_ptr<MulticastReceiveTransport> createFromXml(
UniXML::iterator it,
int numChan);
37 MulticastReceiveTransport(
const std::string& bind,
int port,
const std::vector<Poco::Net::IPAddress>& joinGroups,
const std::string& iface =
"" );
40 virtual bool isConnected()
const override;
41 virtual std::string toString()
const override;
42 virtual std::string ID()
const noexcept
override;
44 virtual bool createConnection(
bool throwEx, timeout_t readTimeout,
bool noblock)
override;
45 virtual void disconnect()
override;
46 virtual int getSocket()
const override;
47 std::vector<Poco::Net::IPAddress> getGroups();
48 void setLoopBack(
bool state );
50 bool isReadyForReceive( timeout_t tout )
override;
51 virtual ssize_t receive(
void* r_buf,
size_t sz)
override;
52 std::string iface()
const;
55 std::unique_ptr <MulticastSocketU> udp;
56 const std::string host;
58 const std::vector<Poco::Net::IPAddress> groups;
59 const std::string ifaceaddr;
67 static std::unique_ptr<MulticastSendTransport> createFromXml(
UniXML::iterator it,
int numChan );
69 MulticastSendTransport(
const std::string& sockHost,
int sockPort,
const std::string& groupHost,
int groupPort,
int ttl = 1 );
72 virtual bool isConnected()
const override;
73 virtual std::string toString()
const override;
75 virtual bool createConnection(
bool throwEx, timeout_t sendTimeout)
override;
76 virtual int getSocket()
const override;
77 Poco::Net::SocketAddress getGroupAddress();
80 virtual bool isReadyForSend(timeout_t tout)
override;
81 virtual ssize_t send(
const void* buf,
size_t sz)
override;
83 void setTimeToLive(
int ttl );
84 void setLoopBack(
bool state );
87 std::unique_ptr <MulticastSocketU> udp;
88 const Poco::Net::SocketAddress sockAddr;
89 const Poco::Net::SocketAddress toAddr;
95 #endif // MulticastTransport_H_ Definition: CommonEventLoop.h:14
Definition: UNetTransport.h:45
Definition: MulticastTransport.h:29
Definition: UNetTransport.h:26
Definition: MulticastTransport.h:62