Scale Stack 0.3 Developer Documentation

scalestack::network::datagram_provider Class Reference

#include <datagram.h>

Inheritance diagram for scalestack::network::datagram_provider:
scalestack::event::handler scalestack::network::local::datagram::socket

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_provideroperator= (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

Detailed Description

This is the base class for classes providing datagrams.

Definition at line 174 of file datagram.h.


Constructor & Destructor Documentation

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.

Parameters:
[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.


Member Function Documentation

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]

See event::handler::run().

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.

Parameters:
[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.

Parameters:
[in] file_descriptor File descriptor to write data to.

Reimplemented from scalestack::event::handler.

Definition at line 365 of file datagram.h.


Field Documentation

const size_t scalestack::network::datagram_provider::_receive_buffer_max_size = 64 * 1024 [static, private]

Definition at line 270 of file datagram.h.

Definition at line 272 of file datagram.h.

Definition at line 273 of file datagram.h.

Definition at line 274 of file datagram.h.

Definition at line 275 of file datagram.h.

Definition at line 276 of file datagram.h.

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.

Definition at line 279 of file datagram.h.


The documentation for this class was generated from the following files:
Generated on Thu Feb 17 13:10:22 2011 by  doxygen 1.6.3