Jpp  18.2.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
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

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

Definition at line 370 of file clb_swiss_knife.cpp.

Constructor & Destructor Documentation

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  boost::asio::ip::udp::socket::receive_buffer_size option(33554432);
415  m_socket.set_option(option);
416 
417  m_socket.async_receive(
418  boost::asio::buffer(m_buffer, m_buffer_size)
419  , boost::bind(
421  , this
422  , boost::asio::placeholders::error
423  , boost::asio::placeholders::bytes_transferred
424  )
425  );
426  }
void data_handle(boost::system::error_code const &error, std::size_t bytes_transferred)
std::size_t m_buffer_size
static const size_t buffer_size
boost::asio::ip::udp::socket m_socket

Member Function Documentation

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  }
void data_handle(boost::system::error_code const &error, std::size_t bytes_transferred)
std::size_t m_buffer_size
boost::asio::ip::udp::socket m_socket

Member Data Documentation

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

Definition at line 372 of file clb_swiss_knife.cpp.

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

Definition at line 373 of file clb_swiss_knife.cpp.

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

Definition at line 374 of file clb_swiss_knife.cpp.

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: