Fawkes API  Fawkes Development Version
fawkes::FawkesNetworkTransceiver Class Reference

Fawkes Network Transceiver. More...

#include <netcomm/fawkes/transceiver.h>

List of all members.

Static Public Member Functions

static void send (StreamSocket *s, FawkesNetworkMessageQueue *msgq)
 Send messages.
static void recv (StreamSocket *s, FawkesNetworkMessageQueue *msgq, unsigned int max_num_msgs=8)
 Receive data.

Detailed Description

Fawkes Network Transceiver.

Utility class that provides methods to send and receive messages via the network. Operates on message queues and a given socket.

Author:
Tim Niemueller

Member Function Documentation

void fawkes::FawkesNetworkTransceiver::recv ( StreamSocket s,
FawkesNetworkMessageQueue msgq,
unsigned int  max_num_msgs = 8 
) [static]

Receive data.

This method receives all messages currently available from the network, or a limited number depending on max_num_msgs. If max_num_msgs is 0 then all messages are read. Note that on a busy connection this may cause recv() to never return! The default is to return after 8 messages. The messages are stored in the supplied message queue.

Parameters:
ssocket to gather messages from
msgqmessage queue to store received messages in
max_num_msgsmaximum number of messages to read from stream in one go.
Exceptions:
ConnectionDiedExceptionThrown if any error occurs during the operation since for any error the conncetion is considered dead.

Definition at line 86 of file transceiver.cpp.

References fawkes::LockQueue::lock(), fawkes::Socket::available(), fawkes::Socket::read(), fawkes::fawkes_message_t::header, fawkes::fawkes_message_header_t::payload_size, fawkes::fawkes_message_t::payload, and fawkes::LockQueue::unlock().

void fawkes::FawkesNetworkTransceiver::send ( StreamSocket s,
FawkesNetworkMessageQueue msgq 
) [static]

Send messages.

Parameters:
ssocket over which the data shall be transmitted.
msgqmessage queue that contains the messages that have to be sent
Exceptions:
ConnectionDiedExceptionThrown if any error occurs during the operation since for any error the conncetion is considered dead.

Definition at line 51 of file transceiver.cpp.

References fawkes::LockQueue::lock(), fawkes::FawkesNetworkMessage::pack(), fawkes::FawkesNetworkMessage::fmsg(), fawkes::FawkesNetworkMessage::payload_size(), fawkes::Socket::write(), fawkes::fawkes_message_t::header, fawkes::fawkes_message_t::payload, fawkes::RefCount::unref(), and fawkes::LockQueue::unlock().

Referenced by fawkes::FawkesNetworkClientSendThread::loop(), and fawkes::FawkesNetworkServerClientSendThread::loop().


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