News SF.net Project Frequently Asked Questions Documentation Downloads Mailing Lists How to Contribute

SourceForge.net Logo

Changing the way games are made and played.

Zap::GameNetInterface class Reference

Zap::GameNetInterface Class Reference

#include <gameNetInterface.h>

Inheritance diagram for Zap::GameNetInterface:

TNL::NetInterface TNL::Object

Public Types

enum  PacketType {
  Ping = FirstValidInfoPacketId,
  PingResponse,
  Query,
  QueryResponse
}
 PacketType is encoded as the first byte of each packet. More...


Public Member Functions

 GameNetInterface (const Address &bindAddress, Game *theGame)
void handleInfoPacket (const Address &remoteAddress, U8 packetType, BitStream *stream)
 Handles all packets that don't fall into the category of connection handshake or game data.

void sendPing (const Address &theAddress, const Nonce &clientNonce)
void sendQuery (const Address &theAddress, const Nonce &clientNonce, U32 identityToken)
void processPacket (const Address &sourceAddress, BitStream *pStream)
 Processes a single packet, and dispatches either to handleInfoPacket or to the NetConnection associated with the remote address.

void banHost (const Address &bannedAddress, U32 bannedMilliseconds)
void checkBanlistTimeouts (U32 timeElapsed)
bool isHostBanned (const Address &theAddress)

Private Types

typedef NetInterface Parent

Private Attributes

Game * mGame
Vector< BannedHost > mBanList

Member Typedef Documentation

typedef NetInterface Zap::GameNetInterface::Parent [private]
 


Member Enumeration Documentation

enum Zap::GameNetInterface::PacketType
 

PacketType is encoded as the first byte of each packet.

Subclasses of NetInterface can add custom, non-connected data packet types starting at FirstValidInfoPacketId, and overriding handleInfoPacket to process them.

Packets that arrive with the high bit of the first byte set (i.e. the first unsigned byte is greater than 127), are assumed to be connected protocol packets, and are dispatched to the appropriate connection for further processing.

Enumeration values:
Ping 
PingResponse 
Query 
QueryResponse 

Reimplemented from TNL::NetInterface.


Constructor & Destructor Documentation

Zap::GameNetInterface::GameNetInterface (  const Address &  bindAddress,
Game *  theGame
) 
 


Member Function Documentation

void Zap::GameNetInterface::handleInfoPacket (  const Address &  remoteAddress,
U8  packetType,
BitStream *  stream
)  [virtual]
 

Handles all packets that don't fall into the category of connection handshake or game data.

Reimplemented from TNL::NetInterface.

void Zap::GameNetInterface::sendPing (  const Address &  theAddress,
const Nonce &  clientNonce
) 
 

void Zap::GameNetInterface::sendQuery (  const Address &  theAddress,
const Nonce &  clientNonce,
U32  identityToken
) 
 

void Zap::GameNetInterface::processPacket (  const Address &  sourceAddress,
BitStream *  pStream
)  [virtual]
 

Processes a single packet, and dispatches either to handleInfoPacket or to the NetConnection associated with the remote address.

Reimplemented from TNL::NetInterface.

void Zap::GameNetInterface::banHost (  const Address &  bannedAddress,
U32  bannedMilliseconds
) 
 

void Zap::GameNetInterface::checkBanlistTimeouts (  U32  timeElapsed  ) 
 

bool Zap::GameNetInterface::isHostBanned (  const Address &  theAddress  ) 
 


Field Documentation

Game* Zap::GameNetInterface::mGame [private]
 

Vector<BannedHost> Zap::GameNetInterface::mBanList [private]