27 #ifndef MULTICASTTYPEDSENDER 28 #define MULTICASTTYPEDSENDER 78 const MsgBldr& messageBuilder,
const std::string& interfaceAddress =
"",
80 size_t sendBufferSize = DEFAULT_UDP_BUF_SIZE)
83 ioContext, multicastConnection, interfaceAddress, enableLoopback, ttl, sendBufferSize}
102 const MsgBldr& messageBuilder,
const std::string& interfaceAddress =
"",
104 size_t sendBufferSize = DEFAULT_UDP_BUF_SIZE)
107 multicastConnection, interfaceAddress, enableLoopback, ttl, sendBufferSize}
176 template <
typename T,
class A = serialize::archives::out_port_bin_t>
182 m_messageBuilder.template Build<T, A>(message, messageId, responseAddress));
207 #endif // MULTICASTTYPEDSENDER defs::connection_t MulticastConnection() const
Retrieve multicast connection details.
Definition: MulticastSender.cpp:72
File containing multicast sender class declaration.
bool SendMessage(const T &message, int32_t messageId, const defs::connection_t &responseAddress=defs::NULL_CONNECTION)
Send a full message to the server.
Definition: MulticastTypedSender.h:177
std::string InterfaceAddress() const
Retrieve interface IP address.
Definition: MulticastTypedSender.h:132
Multicast only to same subnet.
The core_lib namespace.
Definition: AsioDefines.h:59
MulticastTypedSender(boost_iocontext_t &ioContext, const defs::connection_t &multicastConnection, const MsgBldr &messageBuilder, const std::string &interfaceAddress="", bool enableLoopback=true, eMulticastTTL ttl=eMulticastTTL::sameSubnet, size_t sendBufferSize=DEFAULT_UDP_BUF_SIZE)
Initialisation constructor.
Definition: MulticastTypedSender.h:76
bool SendMessage(const defs::char_buffer_t &message)
Send a message buffer to the receiver.
Definition: MulticastSender.cpp:82
eMulticastTTL
The multicast TTL enumeration.
Definition: AsioDefines.h:129
A general purpose multicast sender.
Definition: MulticastSender.h:47
std::string InterfaceAddress() const
Retrieve interface IP address.
Definition: MulticastSender.cpp:77
std::pair< std::string, uint16_t > connection_t
Typedef describing a network connection as (address, port).
Definition: AsioDefines.h:152
MulticastTypedSender & operator=(const MulticastTypedSender &)=delete
Copy assignment operator - deleted.
defs::connection_t MulticastConnection() const
Retrieve multicast connection details.
Definition: MulticastTypedSender.h:124
boost_asio::io_context boost_iocontext_t
Boost IO context convenience typedef.
Definition: AsioDefines.h:46
A generic UDP sender.
Definition: MulticastTypedSender.h:55
std::mutex m_sendMutex
Send message mutex.
Definition: MulticastTypedSender.h:196
bool SendMessage(const defs::char_buffer_t &message, int32_t messageId, const defs::connection_t &responseAddress=defs::NULL_CONNECTION)
Send a header plus message buffer to the receiver.
Definition: MulticastTypedSender.h:159
File containing message utils declaration.
bool SendMessage(const defs::char_buffer_t &message)
Send a message buffer to the receiver.
Definition: MulticastTypedSender.h:189
MulticastTypedSender()=delete
Default constructor - deleted.
MulticastTypedSender(const defs::connection_t &multicastConnection, const MsgBldr &messageBuilder, const std::string &interfaceAddress="", bool enableLoopback=true, eMulticastTTL ttl=eMulticastTTL::sameSubnet, size_t sendBufferSize=DEFAULT_UDP_BUF_SIZE)
Initialisation constructor.
Definition: MulticastTypedSender.h:101
std::vector< char > char_buffer_t
Typedef to generic char buffer based on s std::vector<char>.
Definition: AsioDefines.h:239
bool SendMessage(int32_t messageId, const defs::connection_t &responseAddress=defs::NULL_CONNECTION)
Send a header-only message to the receiver.
Definition: MulticastTypedSender.h:144
MulticastSender m_multicastSender
Underlying UDP sender object.
Definition: MulticastTypedSender.h:200
~MulticastTypedSender()=default
Default destructor.
const MsgBldr & m_messageBuilder
Const reference to message builder object.
Definition: MulticastTypedSender.h:198
const connection_t NULL_CONNECTION
Constant defining a null network connection as ("0.0.0.0", 0).