fawkes::FawkesNetworkHub Class Reference
[Fawkes Network Communication]
Fawkes Network Hub.
More...
#include <netcomm/fawkes/hub.h>

Public Member Functions | |
| virtual | ~FawkesNetworkHub () |
| Virtual empty destructor. | |
| virtual void | broadcast (FawkesNetworkMessage *msg)=0 |
| Method to broadcast a message to all connected clients. | |
| virtual void | broadcast (unsigned short int component_id, unsigned short int msg_id, void *payload, unsigned int payload_size)=0 |
| This is an overloaded member function, provided for convenience. | |
| virtual void | broadcast (unsigned short int component_id, unsigned short int msg_id)=0 |
| This is an overloaded member function, provided for convenience. | |
| virtual void | send (FawkesNetworkMessage *msg)=0 |
| Method to send a message to a specific client. | |
| virtual void | send (unsigned int to_clid, unsigned short int component_id, unsigned short int msg_id)=0 |
| This is an overloaded member function, provided for convenience. | |
| virtual void | send (unsigned int to_clid, unsigned short int component_id, unsigned short int msg_id, void *payload, unsigned int payload_size)=0 |
| This is an overloaded member function, provided for convenience. | |
| virtual void | send (unsigned int to_clid, unsigned short int component_id, unsigned short int msg_id, FawkesNetworkMessageContent *content)=0 |
| This is an overloaded member function, provided for convenience. | |
| virtual void | add_handler (FawkesNetworkHandler *handler)=0 |
| Add a message handler. | |
| virtual void | remove_handler (FawkesNetworkHandler *handler)=0 |
| Remove a message handler. | |
| virtual void | force_send ()=0 |
| Force sending of all pending messages. | |
Detailed Description
Fawkes Network Hub.This interface is the main entry point for applications, plugins and threads that use the Fawkes network protocol. The hub provides means for broadcasting messages to all connected clients, for sending messages to a specific connected client and to add and remove handlers to process incoming messages.
Definition at line 33 of file hub.h.
Constructor & Destructor Documentation
| fawkes::FawkesNetworkHub::~FawkesNetworkHub | ( | ) | [virtual] |
Member Function Documentation
| void fawkes::FawkesNetworkHub::add_handler | ( | FawkesNetworkHandler * | handler | ) | [pure virtual] |
Add a message handler.
This message handler is called for incoming messages that have an appropriate component ID (which is supplied by the handler).
- Parameters:
-
handler handler to add
Implemented in fawkes::FawkesNetworkServerThread.
Referenced by fawkes::BlackBoardNetworkHandler::BlackBoardNetworkHandler(), fawkes::ConfigNetworkHandler::ConfigNetworkHandler(), ExampleNetworkThread::init(), fawkes::NetworkLogger::NetworkLogger(), and fawkes::PluginNetworkHandler::PluginNetworkHandler().
| void fawkes::FawkesNetworkHub::broadcast | ( | unsigned short int | component_id, | |
| unsigned short int | msg_id | |||
| ) | [pure virtual] |
This is an overloaded member function, provided for convenience.
It differs from the above function only in what arguments it accepts. A FawkesNetworkMessage will be created transparently and broadcasted. This can be used for messages without payload.
- Parameters:
-
component_id component id msg_id message id
Implemented in fawkes::FawkesNetworkServerThread.
| void fawkes::FawkesNetworkHub::broadcast | ( | unsigned short int | component_id, | |
| unsigned short int | msg_id, | |||
| void * | payload, | |||
| unsigned int | payload_size | |||
| ) | [pure virtual] |
This is an overloaded member function, provided for convenience.
It differs from the above function only in what arguments it accepts. A FawkesNetworkMessage will be created transparently and broadcasted.
- Parameters:
-
component_id component id msg_id message id payload buffer with payload payload_size payload size
Implemented in fawkes::FawkesNetworkServerThread.
| void fawkes::FawkesNetworkHub::broadcast | ( | FawkesNetworkMessage * | msg | ) | [pure virtual] |
Method to broadcast a message to all connected clients.
This method shall be implemented thus that the message is sent to all connected clients.
- Parameters:
-
msg message to send.
Implemented in fawkes::FawkesNetworkServerThread.
| void fawkes::FawkesNetworkHub::force_send | ( | ) | [pure virtual] |
Force sending of all pending messages.
This will order the sending of all pending outbound messages that are currently enqueued for clients. The method will block until this is done. It is not ensured that no messages are added during that time. Make sure that the call constraints guarantee this.
Implemented in fawkes::FawkesNetworkServerThread.
| void fawkes::FawkesNetworkHub::remove_handler | ( | FawkesNetworkHandler * | handler | ) | [pure virtual] |
Remove a message handler.
The message handler is removed from the list of handlers and is no longer called for incoming data.
- Parameters:
-
handler handler to remove
Implemented in fawkes::FawkesNetworkServerThread.
Referenced by ExampleNetworkThread::finalize(), fawkes::BlackBoardNetworkHandler::~BlackBoardNetworkHandler(), fawkes::NetworkLogger::~NetworkLogger(), and fawkes::PluginNetworkHandler::~PluginNetworkHandler().
| void fawkes::FawkesNetworkHub::send | ( | unsigned int | to_clid, | |
| unsigned short int | component_id, | |||
| unsigned short int | msg_id, | |||
| FawkesNetworkMessageContent * | content | |||
| ) | [pure virtual] |
This is an overloaded member function, provided for convenience.
It differs from the above function only in what arguments it accepts. A FawkesNetworkMessage will be created transparently and send to the client with the given ID.
- Parameters:
-
to_clid client ID of recipient component_id component id msg_id message id content complex message content
Implemented in fawkes::FawkesNetworkServerThread.
| void fawkes::FawkesNetworkHub::send | ( | unsigned int | to_clid, | |
| unsigned short int | component_id, | |||
| unsigned short int | msg_id, | |||
| void * | payload, | |||
| unsigned int | payload_size | |||
| ) | [pure virtual] |
This is an overloaded member function, provided for convenience.
It differs from the above function only in what arguments it accepts. A FawkesNetworkMessage will be created transparently and send to the client with the given ID.
- Parameters:
-
to_clid client ID of recipient component_id component id msg_id message id payload buffer with payload payload_size payload size
Implemented in fawkes::FawkesNetworkServerThread.
| void fawkes::FawkesNetworkHub::send | ( | unsigned int | to_clid, | |
| unsigned short int | component_id, | |||
| unsigned short int | msg_id | |||
| ) | [pure virtual] |
This is an overloaded member function, provided for convenience.
It differs from the above function only in what arguments it accepts. A FawkesNetworkMessage will be created transparently and send to the client with the given ID. This can be used for messages without payload.
- Parameters:
-
to_clid client ID of recipient component_id component id msg_id message ID
Implemented in fawkes::FawkesNetworkServerThread.
| void fawkes::FawkesNetworkHub::send | ( | FawkesNetworkMessage * | msg | ) | [pure virtual] |
Method to send a message to a specific client.
The recipient has to be specified in the message or sending the message will fail.
- Parameters:
-
msg message to send
Implemented in fawkes::FawkesNetworkServerThread.
Referenced by fawkes::ConfigNetworkHandler::config_comment_changed(), fawkes::ConfigNetworkHandler::config_value_changed(), fawkes::ConfigNetworkHandler::config_value_erased(), ExampleNetworkThread::handle_network_message(), fawkes::ConfigNetworkHandler::loop(), fawkes::PluginNetworkHandler::loop(), and fawkes::BlackBoardNetworkHandler::loop().
The documentation for this class was generated from the following files:

