SuperTuxKart
Loading...
Searching...
No Matches
Public Member Functions | Protected Types | Protected Attributes | List of all members
ConnectToPeer Class Reference

One instance of this is started for every peer who tries to connect to this server. More...

#include <connect_to_peer.hpp>

Inheritance diagram for ConnectToPeer:
Inheritance graph
[legend]

Public Member Functions

 ConnectToPeer (const SocketAddress &address)
 Constructor for peer address.
 
virtual void setup () OVERRIDE
 Called when the protocol is going to start.
 
virtual void update (int ticks) OVERRIDE
 Called by the protocol listener, synchronously with the main loop.
 
virtual void asynchronousUpdate () OVERRIDE
 Simple finite state machine: Start a GetPeerAddress protocol.
 
- Public Member Functions inherited from Protocol
 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.
 
NetworkStringgetNetworkString (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 Types

enum  STATE { WAIT_FOR_CONNECTION , DONE , EXITING }
 

Protected Attributes

SocketAddress m_peer_address
 
uint64_t m_timer = 0
 Timer use for tracking broadcast.
 
unsigned m_tried_connection = 0
 If greater than a certain value, terminate this protocol.
 
enum ConnectToPeer::STATE m_state
 
- Protected Attributes inherited from Protocol
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.
 

Detailed Description

One instance of this is started for every peer who tries to connect to this server.

Constructor & Destructor Documentation

◆ ConnectToPeer()

ConnectToPeer::ConnectToPeer ( const SocketAddress address)

Constructor for peer address.

Parameters
addressThe address to connect to.

Member Function Documentation

◆ asynchronousUpdate()

void ConnectToPeer::asynchronousUpdate ( )
virtual

Simple finite state machine: Start a GetPeerAddress protocol.

Once the result has been received, start a ping protocol (hoping to be able to connect to the NAT peer using its public port). The ping protocol should make sure that the peer's firewall still lets packages through by the time the actual game starts.

Implements Protocol.

◆ setup()

virtual void ConnectToPeer::setup ( )
inlinevirtual

Called when the protocol is going to start.

Must be re-defined by subclasses.

Implements Protocol.

◆ update()

virtual void ConnectToPeer::update ( int  ticks)
inlinevirtual

Called by the protocol listener, synchronously with the main loop.

Must be re-defined.

Implements Protocol.


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