Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
UdpDataHandler< Consumer > Class Template Reference

Public Member Functions

 UdpDataHandler (boost::asio::io_service &service, int port, char *buffer, std::size_t buffer_size, Consumer const &consumer)
 

Private Types

typedef UdpDataHandler< Consumer > this_type
 

Private Member Functions

void data_handle (boost::system::error_code const &error, std::size_t bytes_transferred)
 

Private Attributes

boost::asio::ip::udp::socket m_socket
 
char * m_buffer
 
std::size_t m_buffer_size
 
Consumer m_consumer
 

Detailed Description

template<class Consumer>
class UdpDataHandler< Consumer >

Definition at line 368 of file clb_swiss_knife.cpp.

Member Typedef Documentation

◆ this_type

template<class Consumer >
UdpDataHandler<Consumer> UdpDataHandler< Consumer >::this_type
private

Definition at line 370 of file clb_swiss_knife.cpp.

Constructor & Destructor Documentation

◆ UdpDataHandler()

template<class Consumer >
UdpDataHandler< Consumer >::UdpDataHandler ( boost::asio::io_service & service,
int port,
char * buffer,
std::size_t buffer_size,
Consumer const & consumer )
inline

Definition at line 400 of file clb_swiss_knife.cpp.

406 : m_socket(
407 service
408 , boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), port)
409 )
410 , m_buffer(buffer)
412 , m_consumer(consumer)
413 {
414#if __APPLE__
415 boost::asio::ip::udp::socket::receive_buffer_size option(3554432);
416#else
417 boost::asio::ip::udp::socket::receive_buffer_size option(33554432);
418#endif
419 m_socket.set_option(option);
420
421 m_socket.async_receive(
422 boost::asio::buffer(m_buffer, m_buffer_size)
423 , boost::bind(
425 , this
426 , boost::asio::placeholders::error
427 , boost::asio::placeholders::bytes_transferred
428 )
429 );
430 }
std::size_t m_buffer_size
boost::asio::ip::udp::socket m_socket
void data_handle(boost::system::error_code const &error, std::size_t bytes_transferred)
static const size_t buffer_size

Member Function Documentation

◆ data_handle()

template<class Consumer >
void UdpDataHandler< Consumer >::data_handle ( boost::system::error_code const & error,
std::size_t bytes_transferred )
inlineprivate

Definition at line 377 of file clb_swiss_knife.cpp.

380 {
381 if (error) {
382 m_consumer(error, 0, 0);
383 } else {
384 m_consumer(error, m_buffer, bytes_transferred);
385 }
386
387 m_socket.async_receive(
388 boost::asio::buffer(m_buffer, m_buffer_size)
389 , boost::bind(
391 , this
392 , boost::asio::placeholders::error
393 , boost::asio::placeholders::bytes_transferred
394 )
395 );
396 }

Member Data Documentation

◆ m_socket

template<class Consumer >
boost::asio::ip::udp::socket UdpDataHandler< Consumer >::m_socket
private

Definition at line 372 of file clb_swiss_knife.cpp.

◆ m_buffer

template<class Consumer >
char* UdpDataHandler< Consumer >::m_buffer
private

Definition at line 373 of file clb_swiss_knife.cpp.

◆ m_buffer_size

template<class Consumer >
std::size_t UdpDataHandler< Consumer >::m_buffer_size
private

Definition at line 374 of file clb_swiss_knife.cpp.

◆ m_consumer

template<class Consumer >
Consumer UdpDataHandler< Consumer >::m_consumer
private

Definition at line 375 of file clb_swiss_knife.cpp.


The documentation for this class was generated from the following file: