#include <datagram.h>
Public Member Functions | |
| datagram_provider (event::handler_service &handler_service, datagram_service &datagram_service, const struct addrinfo *local, const struct addrinfo *peer) | |
| virtual | ~datagram_provider () |
| void | started () |
| void | shutdown (void) |
| void | timer_expired (void) |
| void | run (void) |
| virtual void | set_file_descriptor (int file_descriptor) |
| void | consume (size_t size) |
| size_t | send (uint8_t *buffer, size_t size, const struct sockaddr &peer, socklen_t peer_size) |
| size_t | send (uint8_t *buffer, size_t size) |
Private Member Functions | |
| datagram_provider (const datagram_provider &) | |
| datagram_provider & | operator= (const datagram_provider &) |
| void | read_ready (int file_descriptor) |
| void | write_ready (int file_descriptor) |
Private Attributes | |
| int | _file_descriptor |
| socklen_t | _peer_size |
| size_t | _receive_buffer_size |
| std::auto_ptr< datagram > | _datagram |
| datagram_service & | _datagram_service |
| struct sockaddr * | _peer |
| struct sockaddr_storage | _peer_storage |
| uint8_t | _receive_buffer [_receive_buffer_max_size] |
Static Private Attributes | |
| static const size_t | _receive_buffer_max_size = 64 * 1024 |
This is the base class for classes providing datagrams.
Definition at line 174 of file datagram.h.
| scalestack::network::datagram_provider::datagram_provider | ( | event::handler_service & | handler_service, | |
| datagram_service & | datagram_service, | |||
| const struct addrinfo * | local, | |||
| const struct addrinfo * | peer | |||
| ) |
Constructor for the datagram provider. One of the local or peer addresses must be given.
| [in] | handler_service | Handler service the datagram provider is associated with. |
| [in] | datagram_service | Datagram service the datagram provider is associated with. |
| [in] | local | Optional local address to bind to. |
| [in] | peer | Optional default peer address. |
Definition at line 47 of file datagram.cc.
| scalestack::network::datagram_provider::~datagram_provider | ( | ) | [virtual] |
Definition at line 101 of file datagram.cc.
| scalestack::network::datagram_provider::datagram_provider | ( | const datagram_provider & | ) | [private] |
Don't allow copying of objects.
| void scalestack::network::datagram_provider::started | ( | void | ) | [virtual] |
See event::handler::started().
Reimplemented from scalestack::event::handler.
Definition at line 105 of file datagram.cc.
| void scalestack::network::datagram_provider::shutdown | ( | void | ) | [inline, virtual] |
See event::handler::shutdown().
Reimplemented from scalestack::event::handler.
Definition at line 350 of file datagram.h.
| void scalestack::network::datagram_provider::timer_expired | ( | void | ) | [inline, virtual] |
See event::handler::timer_expired().
Reimplemented from scalestack::event::handler.
Definition at line 355 of file datagram.h.
| void scalestack::network::datagram_provider::run | ( | void | ) | [inline, virtual] |
Reimplemented from scalestack::event::handler.
Definition at line 360 of file datagram.h.
| void scalestack::network::datagram_provider::set_file_descriptor | ( | int | file_descriptor | ) | [virtual] |
See event::handler::set_file_descriptor().
Reimplemented from scalestack::event::handler.
Definition at line 111 of file datagram.cc.
| void scalestack::network::datagram_provider::consume | ( | size_t | size | ) |
See datagram::consume().
Definition at line 119 of file datagram.cc.
| size_t scalestack::network::datagram_provider::send | ( | uint8_t * | buffer, | |
| size_t | size, | |||
| const struct sockaddr & | peer, | |||
| socklen_t | peer_size | |||
| ) |
See datagram::send().
Definition at line 139 of file datagram.cc.
| size_t scalestack::network::datagram_provider::send | ( | uint8_t * | buffer, | |
| size_t | size | |||
| ) |
See datagram::send().
Definition at line 176 of file datagram.cc.
| datagram_provider& scalestack::network::datagram_provider::operator= | ( | const datagram_provider & | ) | [private] |
Don't allow assignment of objects.
| void scalestack::network::datagram_provider::read_ready | ( | int | file_descriptor | ) | [private, virtual] |
This will receive data from the socket into the buffer and call datagram::receive(). This implements a method in the base class so does not have the _ prefix.
| [in] | file_descriptor | File descriptor to read data on. |
Reimplemented from scalestack::event::handler.
Definition at line 188 of file datagram.cc.
| void scalestack::network::datagram_provider::write_ready | ( | int | file_descriptor | ) | [inline, private, virtual] |
This just calls flush_send() since we don't buffer any data. This implements a method in the base class so does not have the _ prefix.
| [in] | file_descriptor | File descriptor to write data to. |
Reimplemented from scalestack::event::handler.
Definition at line 365 of file datagram.h.
const size_t scalestack::network::datagram_provider::_receive_buffer_max_size = 64 * 1024 [static, private] |
Definition at line 270 of file datagram.h.
int scalestack::network::datagram_provider::_file_descriptor [private] |
Definition at line 272 of file datagram.h.
socklen_t scalestack::network::datagram_provider::_peer_size [private] |
Definition at line 273 of file datagram.h.
size_t scalestack::network::datagram_provider::_receive_buffer_size [private] |
Definition at line 274 of file datagram.h.
std::auto_ptr<datagram> scalestack::network::datagram_provider::_datagram [private] |
Definition at line 275 of file datagram.h.
Definition at line 276 of file datagram.h.
struct sockaddr* scalestack::network::datagram_provider::_peer [private] |
Definition at line 277 of file datagram.h.
struct sockaddr_storage scalestack::network::datagram_provider::_peer_storage [private] |
Definition at line 278 of file datagram.h.
uint8_t scalestack::network::datagram_provider::_receive_buffer[_receive_buffer_max_size] [private] |
Definition at line 279 of file datagram.h.
1.6.3