Asynchronous communication class for a UDP socket. More...
#include <udp.h>
Public Member Functions | |
UDP (std::string bind_host=DEFAULT_BIND_HOST, uint16_t bind_port=DEFAULT_BIND_PORT, std::string remote_host=DEFAULT_REMOTE_HOST, uint16_t remote_port=DEFAULT_REMOTE_PORT, MessageHandler &message_handler=default_message_handler_) | |
Bind a UDP socket. More... | |
~UDP () | |
Public Member Functions inherited from async_comm::Comm | |
void | close () |
Closes the port. More... | |
Comm (MessageHandler &message_handler=default_message_handler_) | |
Set up asynchronous communication base class. More... | |
bool | init () |
Initializes and opens the port. More... | |
void | register_listener (CommListener &listener) |
Register a listener for when bytes are received on the port. More... | |
void | register_receive_callback (std::function< void(const uint8_t *, size_t)> fun) |
Register a callback function for when bytes are received on the port. More... | |
void | send_byte (uint8_t data) |
Send a single byte over the port. More... | |
void | send_bytes (const uint8_t *src, size_t len) |
Send bytes from a buffer over the port. More... | |
virtual | ~Comm () |
Private Member Functions | |
void | do_async_read (const boost::asio::mutable_buffers_1 &buffer, boost::function< void(const boost::system::error_code &, size_t)> handler) override |
void | do_async_write (const boost::asio::const_buffers_1 &buffer, boost::function< void(const boost::system::error_code &, size_t)> handler) override |
void | do_close () override |
bool | do_init () override |
bool | is_open () override |
Private Attributes | |
boost::asio::ip::udp::endpoint | bind_endpoint_ |
std::string | bind_host_ |
uint16_t | bind_port_ |
boost::asio::ip::udp::endpoint | remote_endpoint_ |
std::string | remote_host_ |
uint16_t | remote_port_ |
boost::asio::ip::udp::socket | socket_ |
Static Private Attributes | |
static constexpr auto | DEFAULT_BIND_HOST = "localhost" |
static constexpr uint16_t | DEFAULT_BIND_PORT = 16140 |
static constexpr auto | DEFAULT_REMOTE_HOST = "localhost" |
static constexpr uint16_t | DEFAULT_REMOTE_PORT = 16145 |
Additional Inherited Members | |
Protected Attributes inherited from async_comm::Comm | |
boost::asio::io_service | io_service_ |
MessageHandler & | message_handler_ |
Static Protected Attributes inherited from async_comm::Comm | |
static DefaultMessageHandler | default_message_handler_ |
static constexpr size_t | READ_BUFFER_SIZE = 1024 |
static constexpr size_t | WRITE_BUFFER_SIZE = 1024 |
async_comm::UDP::UDP | ( | std::string | bind_host = DEFAULT_BIND_HOST , |
uint16_t | bind_port = DEFAULT_BIND_PORT , |
||
std::string | remote_host = DEFAULT_REMOTE_HOST , |
||
uint16_t | remote_port = DEFAULT_REMOTE_PORT , |
||
MessageHandler & | message_handler = default_message_handler_ |
||
) |
Bind a UDP socket.
bind_host | The bind host where this application is listening (usually "localhost") |
bind_port | The bind port where this application is listening |
remote_host | The remote host to communicate with |
remote_port | The port on the remote host |
message_handler | Custom message handler, or omit for default handler |
|
overrideprivatevirtual |
Implements async_comm::Comm.
|
overrideprivatevirtual |
Implements async_comm::Comm.
|
overrideprivatevirtual |
Implements async_comm::Comm.
|
overrideprivatevirtual |
Implements async_comm::Comm.
|
overrideprivatevirtual |
Implements async_comm::Comm.
|
private |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |