Jpp  15.0.1-rc.2-highQE
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 362 of file clb_swiss_knife.cpp.

Member Typedef Documentation

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

Definition at line 364 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 394 of file clb_swiss_knife.cpp.

400  : m_socket(
401  service
402  , boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), port)
403  )
404  , m_buffer(buffer)
406  , m_consumer(consumer)
407  {
408  boost::asio::ip::udp::socket::receive_buffer_size option(33554432);
409  m_socket.set_option(option);
410 
411  m_socket.async_receive(
412  boost::asio::buffer(m_buffer, m_buffer_size)
413  , boost::bind(
415  , this
416  , boost::asio::placeholders::error
417  , boost::asio::placeholders::bytes_transferred
418  )
419  );
420  }
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 371 of file clb_swiss_knife.cpp.

374  {
375  if (error) {
376  m_consumer(error, 0, 0);
377  } else {
378  m_consumer(error, m_buffer, bytes_transferred);
379  }
380 
381  m_socket.async_receive(
382  boost::asio::buffer(m_buffer, m_buffer_size)
383  , boost::bind(
385  , this
386  , boost::asio::placeholders::error
387  , boost::asio::placeholders::bytes_transferred
388  )
389  );
390  }
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 366 of file clb_swiss_knife.cpp.

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

Definition at line 367 of file clb_swiss_knife.cpp.

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

Definition at line 368 of file clb_swiss_knife.cpp.

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

Definition at line 369 of file clb_swiss_knife.cpp.


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