Fawkes API
Fawkes Development Version
|
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::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... | |
class | fawkes::MessageDecryptionException |
Message decryption failed. More... | |
class | fawkes::WorldInfoMessageDecryptor |
WorldInfo message decryptor. More... | |
class | fawkes::MessageEncryptionException |
Message encryption failed. More... | |
class | fawkes::WorldInfoMessageEncryptor |
WorldInfo message encryptor. More... | |
class | fawkes::WorldInfoHandler |
World info handler. More... | |
class | fawkes::WorldInfoException |
Thrown on critical errors in world info handling. More... | |
class | fawkes::WorldInfoTransceiver |
Class to send and receive world information. More... |
This group contains the parts of the Fawkes Network Communication Library (netcomm).
Networking in Fawkes is differentiated into several sub-topics.
Fawkes provides several primitives for network communication, like a couple of different socket implementations for differen protocols.
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.
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.
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.