SuperTuxKart
|
Abstract class used to define the global protocol functions. More...
#include <protocol.hpp>
Public Member Functions | |
Protocol (ProtocolType type) | |
Constructor Sets the basic protocol parameters, as the callback object and the protocol type. | |
virtual | ~Protocol () |
Destructor. | |
virtual void | setup ()=0 |
Called when the protocol is going to start. | |
virtual void | update (int ticks)=0 |
Called by the protocol listener, synchronously with the main loop. | |
virtual void | asynchronousUpdate ()=0 |
Called by the protocol listener as often as possible. | |
NetworkString * | getNetworkString (size_t capacity=16) const |
functions to check incoming data easily | |
bool | checkDataSize (Event *event, unsigned int minimum_size) |
Checks if the message has at least the specified size, and if not prints a warning message including the message content. | |
void | sendMessageToPeers (NetworkString *message, bool reliable=true) |
Sends a message to all validated peers in game, encrypt the message if needed. | |
void | sendMessageToPeersInServer (NetworkString *message, bool reliable=true) |
Sends a message to all validated peers in server, encrypt the message if needed. | |
void | sendToServer (NetworkString *message, bool reliable=true) |
Sends a message from a client to the server. | |
virtual void | requestStart () |
Starts a request in the protocol manager to start this protocol. | |
virtual void | requestTerminate () |
Submits a request to the ProtocolManager to terminate this protocol. | |
virtual bool | notifyEvent (Event *event) |
Notify a protocol matching the Event type of that event. | |
virtual bool | notifyEventAsynchronous (Event *event) |
Notify a protocol matching the Event type of that event. | |
ProtocolType | getProtocolType () const |
Method to get a protocol's type. | |
void | setHandleConnections (bool b) |
Sets if this protocol should receive connection events. | |
void | setHandleDisconnections (bool b) |
Sets if this protocol should receive disconnection events. | |
virtual bool | handleConnects () const |
Return true if this protocol should be informed about connects. | |
virtual bool | handleDisconnects () const |
Return true if this protocol should be informed about disconnects. | |
Protected Attributes | |
ProtocolType | m_type |
The type of the protocol. | |
bool | m_handle_connections |
True if this protocol should receive connection events. | |
bool | m_handle_disconnections |
TRue if this protocol should recceiver disconnection events. | |
Abstract class used to define the global protocol functions.
A protocol is an entity that is started at a point, and that is updated by a thread. A protocol can be terminated by an other class, or it can terminate itself if has fulfilled its role. This class must be inherited to make any network job.
Protocol::Protocol | ( | ProtocolType | type | ) |
Constructor Sets the basic protocol parameters, as the callback object and the protocol type.
callback_object | The callback object that will be used by the protocol. Protocols that do not use callback objects must set it to NULL. |
type | The type of the protocol. |
|
pure virtual |
Called by the protocol listener as often as possible.
Must be re-defined.
Implemented in ClientLobby, ConnectToPeer, ConnectToServer, GameEventsProtocol, GameProtocol, and ServerLobby.
bool Protocol::checkDataSize | ( | Event * | event, |
unsigned int | minimum_size | ||
) |
Checks if the message has at least the specified size, and if not prints a warning message including the message content.
NetworkString * Protocol::getNetworkString | ( | size_t | capacity = 16 | ) | const |
functions to check incoming data easily
Returns a network string with the given type.
\capacity Default preallocated size for the message.
|
inline |
Method to get a protocol's type.
|
inlinevirtual |
Notify a protocol matching the Event type of that event.
event | : Pointer to the event. |
Reimplemented in ClientLobby, GameEventsProtocol, and ServerLobby.
|
inlinevirtual |
Notify a protocol matching the Event type of that event.
This update is done asynchronously :
event | : Pointer to the event. |
Reimplemented in ClientLobby, GameEventsProtocol, GameProtocol, and ServerLobby.
void Protocol::sendMessageToPeers | ( | NetworkString * | message, |
bool | reliable = true |
||
) |
Sends a message to all validated peers in game, encrypt the message if needed.
The message is composed of a 1-byte message (usually the message type) followed by the actual message.
message | The actual message content. |
void Protocol::sendMessageToPeersInServer | ( | NetworkString * | message, |
bool | reliable = true |
||
) |
Sends a message to all validated peers in server, encrypt the message if needed.
The message is composed of a 1-byte message (usually the message type) followed by the actual message.
message | The actual message content. |
|
pure virtual |
Called when the protocol is going to start.
Must be re-defined by subclasses.
Implemented in ClientLobby, ConnectToPeer, ConnectToServer, GameEventsProtocol, GameProtocol, ServerLobby, and LobbyProtocol.
|
pure virtual |
Called by the protocol listener, synchronously with the main loop.
Must be re-defined.
Implemented in ClientLobby, ConnectToPeer, ConnectToServer, GameEventsProtocol, GameProtocol, ServerLobby, and LobbyProtocol.