Fawkes API  Fawkes Development Version
Fawkes Network Communication

This group contains the parts of the Fawkes Network Communication Library (netcomm). More...

Classes

class  fawkes::FawkesNetworkClientSendThread
 Fawkes network client send thread. More...
 
class  fawkes::FawkesNetworkClientRecvThread
 Fawkes network client receive thread. More...
 
class  fawkes::MessageDecryptionException
 Message decryption failed. More...
 
class  fawkes::MessageDecryptor
 Message decryptor. More...
 
class  fawkes::MessageEncryptionException
 Message encryption failed. More...
 
class  fawkes::MessageEncryptor
 Message encryptor. More...
 
class  fawkes::AvahiResolverHandler
 Avahi resolver handler interface. More...
 
class  fawkes::AvahiThread
 Avahi main thread. More...
 
class  fawkes::HandlerAlreadyRegisteredException
 Client handler has already been registered. More...
 
class  fawkes::FawkesNetworkClient
 Simple Fawkes network client. More...
 
class  fawkes::FawkesNetworkClientHandler
 Message handler for FawkesNetworkClient. More...
 
class  fawkes::FawkesNetworkHandler
 Network handler abstract base class. More...
 
class  fawkes::FawkesNetworkHub
 Fawkes Network Hub. More...
 
class  fawkes::FawkesNetworkMessageTooBigException
 The given message size exceeds the limit. More...
 
class  fawkes::FawkesNetworkMessage
 Representation of a message that is sent over the network. More...
 
class  fawkes::FawkesNetworkMessageContent
 Fawkes network message content. More...
 
class  fawkes::FawkesNetworkMessageQueue
 A LockQueue of FawkesNetworkMessage to hold messages in inbound and outbound queues. More...
 
class  fawkes::FawkesNetworkServerClientSendThread
 Sending thread for a Fawkes client connected to the server. More...
 
class  fawkes::FawkesNetworkServerClientThread
 Fawkes Network Client Thread for server. More...
 
class  fawkes::FawkesNetworkServerThread
 Fawkes Network Thread. More...
 
class  fawkes::FawkesNetworkTransceiver
 Fawkes Network Transceiver. More...
 
class  fawkes::NetworkService
 Representation of a service announced or found via service discovery (i.e. More...
 
class  fawkes::DatagramSocket
 Datagram socket. More...
 
class  fawkes::BroadcastDatagramSocket
 Broadcast datagram socket. More...
 
class  fawkes::MulticastDatagramSocket
 Multicast datagram socket. More...
 
class  fawkes::SocketException
 Socket exception. More...
 
class  fawkes::Socket
 Socket base class. More...
 
class  fawkes::StreamSocket
 TCP stream socket over IP. More...
 
class  fawkes::NetworkAcceptorThread
 Network Acceptor Thread. More...
 
class  fawkes::DynamicBuffer
 Dynamically growing buffer. More...
 
class  fawkes::ConnectionDiedException
 Thrown if the connection died during an operation. More...
 
class  fawkes::NetworkNameResolver
 Network name and address resolver. More...
 
class  fawkes::NetworkNameResolverThread
 Worker thread for NetworkNameResolver. More...
 

Detailed Description

This group contains the parts of the Fawkes Network Communication Library (netcomm).

Networking in Fawkes is differentiated into several sub-topics.

classes

Fawkes provides several primitives for network communication, like a couple of different socket implementations for differen protocols.

Network Protocol

The Fawkes Network Protocol defines a protocol over TCP for generic control messaging over the network. It is meant to be easily extensible and it is able to carry arbitrary payloads between Fawkes plugins and tools that communicate with this plugin. It can be accessed via the FawkesNetworkAspect.

Transceiver

We have implemented a generic protocol to communicate world state information over the network. For this we provide a FawkesNetworkTransceiver which is able to send and receive world info data in several well-defined messages. The protocol uses UDP for quick transmission. It uses encryption to make the protocol child-proof such that no teams gets into the situation that it may easily cheat on other teams.

service discovery over Mutlicast DNS

This library incorporates DNS-based service discovery and hostname resolution via Multicast DNS (also known as Bonjour or ZeroConf). It is based on Avahi and is basically a simple C++ wrapper.