|
Core Library
1.7.0.0
Library containing core utilities and tools for threading, networking, logging, INI and CSV file management etc.
|
A simplified Multicast sender, which uses the class MessageHeader as the message header type. More...
#include <SimpleMulticastSender.h>
Public Member Functions | |
| SimpleMulticastSender ()=delete | |
| Default constructor - deleted. | |
| SimpleMulticastSender (boost_iocontext_t &ioContext, const defs::connection_t &multicastConnection, const std::string &interfaceAddress="", bool enableLoopback=true, eMulticastTTL ttl=eMulticastTTL::sameSubnet, size_t sendBufferSize=DEFAULT_UDP_BUF_SIZE) | |
| Initialisation constructor. More... | |
| SimpleMulticastSender (const defs::connection_t &multicastConnection, const std::string &interfaceAddress="", bool enableLoopback=true, eMulticastTTL ttl=eMulticastTTL::sameSubnet, size_t sendBufferSize=DEFAULT_UDP_BUF_SIZE) | |
| Initialisation constructor. More... | |
| SimpleMulticastSender (const SimpleMulticastSender &)=delete | |
| Copy constructor - deleted. | |
| SimpleMulticastSender & | operator= (const SimpleMulticastSender &)=delete |
| Copy assignment operator - deleted. | |
| SimpleMulticastSender (SimpleMulticastSender &&)=delete | |
| Move constructor - deleted. | |
| SimpleMulticastSender & | operator= (SimpleMulticastSender &&)=delete |
| Move assignment operator - deleted. | |
| ~SimpleMulticastSender ()=default | |
| Default destructor. | |
| defs::connection_t | MulticastConnection () const |
| Retrieve multicast connection details. More... | |
| std::string | InterfaceAddress () const |
| Retrieve interface IP address. More... | |
| bool | SendMessage (int32_t messageId, const defs::connection_t &responseAddress=defs::NULL_CONNECTION) |
| Send a header-only message to the receiver. More... | |
| 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. More... | |
| template<typename T , class A = serialize::archives::out_port_bin_t> | |
| bool | SendMessage (const T &message, int32_t messageId, const defs::connection_t &responseAddress=defs::NULL_CONNECTION) |
| Send a full message to the server. More... | |
| bool | SendMessage (const defs::char_buffer_t &message) |
| Send a message buffer to the receiver. More... | |
Private Attributes | |
| messages::MessageBuilder | m_messageBuilder {} |
| Default message builder object of type core_lib::asio::messages::MessageBuilder. | |
| MulticastTypedSender< messages::MessageBuilder > | m_multicastTypedSender |
| Our actual typed Multicast sender object. | |
A simplified Multicast sender, which uses the class MessageHeader as the message header type.
| core_lib::asio::udp::SimpleMulticastSender::SimpleMulticastSender | ( | boost_iocontext_t & | ioContext, |
| const defs::connection_t & | multicastConnection, | ||
| const std::string & | interfaceAddress = "", |
||
| bool | enableLoopback = true, |
||
| eMulticastTTL | ttl = eMulticastTTL::sameSubnet, |
||
| size_t | sendBufferSize = DEFAULT_UDP_BUF_SIZE |
||
| ) |
Initialisation constructor.
| [in] | ioContext | - External boost IO context to manage ASIO. |
| [in] | multicastConnection | - Connection object describing target multicast group address and port. |
| [in] | interfaceAddress | - Optional interface IP address for outgoing network messages. |
| [in] | enableLoopback | - Optional allow multicasts to loopback on same adapter. |
| [in] | ttl | - Optional time-to-live for multicast messages. |
| [in] | sendBufferSize | - Socket send option to control send buffer size. |
Typically use this constructor when managing a pool of threads using an instance of core_lib::asio::IoContextThreadGroup in your application to manage a pool of std::threads. This means you can use a single thread pool and all ASIO operations will be executed using this thread pool managed by a single IO context. This is the recommended constructor.
|
explicit |
Initialisation constructor.
| [in] | multicastConnection | - Connection object describing target multicast group address and port. |
| [in] | interfaceAddress | - Optional interface IP address for outgoing network messages. |
| [in] | enableLoopback | - Optional allow multicasts to loopback on same adapter. |
| [in] | ttl | - Optional time-to-live for multicast messages. |
| [in] | sendBufferSize | - Socket send option to control send buffer size. |
Typically use this constructor when managing a pool of threads using an instance of core_lib::asio::IoContextThreadGroup in your application to manage a pool of std::threads. This means you can use a single thread pool and all ASIO operations will be executed using this thread pool managed by a single IO context. This is the recommended constructor.
| std::string core_lib::asio::udp::SimpleMulticastSender::InterfaceAddress | ( | ) | const |
Retrieve interface IP address.
| auto core_lib::asio::udp::SimpleMulticastSender::MulticastConnection | ( | ) | const |
Retrieve multicast connection details.
| bool core_lib::asio::udp::SimpleMulticastSender::SendMessage | ( | int32_t | messageId, |
| const defs::connection_t & | responseAddress = defs::NULL_CONNECTION |
||
| ) |
Send a header-only message to the receiver.
| [in] | messageId | - Unique message ID to insert into message header. |
| [in] | responseAddress | - (Optional) The address and port where the receiver should send the response, the default value will mean the response address will point to this client socket. |
| bool core_lib::asio::udp::SimpleMulticastSender::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.
| [in] | message | - The message buffer. |
| [in] | messageId | - Unique message ID to insert into message header. |
| [in] | responseAddress | - (Optional) The address and port where the receiver should send the response, the default value will mean the response address will point to this client socket. |
|
inline |
Send a full message to the server.
| [in] | message | - The message of type T to send behind the header serialized to an boost::serialization-compatible archive of type A. |
| [in] | messageId | - Unique message ID to insert into message header. |
| [in] | responseAddress | - (Optional) The address and port where the receiver should send the response, the default value will mean the response address will point to this client socket. |
| bool core_lib::asio::udp::SimpleMulticastSender::SendMessage | ( | const defs::char_buffer_t & | message | ) |
Send a message buffer to the receiver.
| [in] | message | - The message buffer. |