Fawkes API  Fawkes Development Version

FUSE Network Transceiver. More...

#include <>>

Static Public Member Functions

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

Detailed Description

FUSE 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

Definition at line 39 of file fuse_transceiver.h.

Member Function Documentation

◆ recv()

void firevision::FuseNetworkTransceiver::recv ( fawkes::StreamSocket s,
FuseNetworkMessageQueue 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 92 of file fuse_transceiver.cpp.

References fawkes::Socket::available(), firevision::FUSE_message_t::header, fawkes::LockQueue< Type >::lock(), firevision::FUSE_message_t::payload, firevision::FUSE_header_t::payload_size, fawkes::Socket::read(), and fawkes::LockQueue< Type >::unlock().

Referenced by firevision::FuseClient::disconnect(), and firevision::FuseServerClientThread::recv().

◆ send()

void firevision::FuseNetworkTransceiver::send ( fawkes::StreamSocket s,
FuseNetworkMessageQueue 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 57 of file fuse_transceiver.cpp.

References firevision::FuseNetworkMessage::fmsg(), firevision::FUSE_message_t::header, fawkes::LockQueue< Type >::lock(), firevision::FuseNetworkMessage::pack(), firevision::FUSE_message_t::payload, firevision::FuseNetworkMessage::payload_size(), fawkes::LockQueue< Type >::unlock(), fawkes::RefCount::unref(), and fawkes::Socket::write().

Referenced by firevision::FuseClient::disconnect(), and firevision::FuseServerClientThread::send().


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