#include <ConnectionGraph.h>
Inheritance diagram for ConnectionGraph:
Public Member Functions | |
void | SetPassword (const char *password) |
Plaintext encoding of the password, or 0 for none. If you use a password, use secure connections. | |
DataStructures::WeightedGraph< ConnectionGraph::PlayerIdAndGroupId, unsigned short, false > * | GetGraph (void) |
void | SetAutoAddNewConnections (bool autoAdd) |
void | RequestConnectionGraph (RakPeerInterface *peer, PlayerID playerId) |
void | AddNewConnection (RakPeerInterface *peer, PlayerID playerId, ConnectionGraphGroupID groupId) |
void | SetGroupId (ConnectionGraphGroupID groupId) |
void | SubscribeToGroup (ConnectionGraphGroupID groupId) |
void | UnsubscribeFromGroup (ConnectionGraphGroupID groupId) |
virtual void | OnDisconnect (RakPeerInterface *peer) |
virtual void | Update (RakPeerInterface *peer) |
virtual PluginReceiveResult | OnReceive (RakPeerInterface *peer, Packet *packet) |
virtual void | OnCloseConnection (RakPeerInterface *peer, PlayerID playerId) |
Protected Member Functions | |
void | HandleDroppedConnection (RakPeerInterface *peer, PlayerID playerId, unsigned char packetId) |
void | DeleteFromPeerList (PlayerID playerId) |
void | OnNewIncomingConnection (RakPeerInterface *peer, Packet *packet) |
void | OnConnectionRequestAccepted (RakPeerInterface *peer, Packet *packet) |
void | OnConnectionGraphRequest (RakPeerInterface *peer, Packet *packet) |
void | OnConnectionGraphReply (RakPeerInterface *peer, Packet *packet) |
void | OnConnectionGraphUpdate (RakPeerInterface *peer, Packet *packet) |
void | OnNewConnection (RakPeerInterface *peer, Packet *packet) |
bool | OnConnectionLost (RakPeerInterface *peer, Packet *packet, unsigned char packetId) |
void | OnConnectionAddition (RakPeerInterface *peer, Packet *packet) |
void | OnConnectionRemoval (RakPeerInterface *peer, Packet *packet) |
void | SendConnectionGraph (PlayerID target, unsigned char packetId, RakPeerInterface *peer) |
void | SerializeWeightedGraph (RakNet::BitStream *out, const DataStructures::WeightedGraph< ConnectionGraph::PlayerIdAndGroupId, unsigned short, false > &g) const |
bool | DeserializeWeightedGraph (RakNet::BitStream *inBitstream, RakPeerInterface *peer) |
void | AddAndRelayConnection (DataStructures::OrderedList< PlayerID, PlayerID > &ignoreList, const PlayerIdAndGroupId &conn1, const PlayerIdAndGroupId &conn2, unsigned short ping, RakPeerInterface *peer) |
bool | RemoveAndRelayConnection (DataStructures::OrderedList< PlayerID, PlayerID > &ignoreList, unsigned char packetId, const PlayerID node1, const PlayerID node2, RakPeerInterface *peer) |
void | RemoveParticipant (PlayerID playerId) |
void | AddParticipant (PlayerID playerId) |
void | BroadcastGraphUpdate (DataStructures::OrderedList< PlayerID, PlayerID > &ignoreList, RakPeerInterface *peer) |
void | NotifyUserOfRemoteConnection (const PlayerIdAndGroupId &conn1, const PlayerIdAndGroupId &conn2, unsigned short ping, RakPeerInterface *peer) |
bool | IsNewRemoteConnection (const PlayerIdAndGroupId &conn1, const PlayerIdAndGroupId &conn2, RakPeerInterface *peer) |
bool | DeserializeIgnoreList (DataStructures::OrderedList< PlayerID, PlayerID > &ignoreList, RakNet::BitStream *inBitstream) |
void | SerializeIgnoreListAndBroadcast (RakNet::BitStream *outBitstream, DataStructures::OrderedList< PlayerID, PlayerID > &ignoreList, RakPeerInterface *peer) |
Protected Attributes | |
RakNetTime | nextWeightUpdate |
char * | pw |
DataStructures::OrderedList< PlayerID, PlayerID > | participantList |
DataStructures::WeightedGraph< ConnectionGraph::PlayerIdAndGroupId, unsigned short, false > | graph |
bool | autoAddNewConnections |
ConnectionGraphGroupID | myGroupId |
DataStructures::OrderedList< ConnectionGraphGroupID, ConnectionGraphGroupID > | subscribedGroups |
Classes | |
struct | PlayerIdAndGroupId |
A node in the connection graph. More... |
|
Adds a new connection to the connection graph from this system to the specified system. Also assigns a group identifier for that system Only used and valid when SetAutoAddNewConnections(false) is called. Call this for this system sometime after getting ID_NEW_INCOMING_CONNECTION or ID_CONNECTION_REQUEST_ACCEPTED for systems that contain a connection graph Groups are sets of one or more nodes in the total graph We only add to the graph groups which we subscribe to
|
|
Returns the connection graph
|
|
Called when a connection is dropped because the user called RakPeer::CloseConnection() for a particular system
Reimplemented from PluginInterface. |
|
Called when RakPeer is shutdown
Reimplemented from PluginInterface. |
|
OnReceive is called for every packet.
Reimplemented from PluginInterface. |
|
Requests the connection graph from another system Only necessary to call if SetAutoAddNewConnections(false) is called. You should call this sometime after getting ID_CONNECTION_REQUEST_ACCEPTED and playerId is or should be a node on the connection graph
|
|
Automatically add new connections to the connection graph Defaults to true If true, then the system will automatically add all new connections for you, assigning groupId 0 to these systems. If you want more control, you should call SetAutoAddNewConnections(false); When false, it is up to you to call RequestConnectionGraph and AddNewConnection to complete the graph However, this way you can choose which nodes are on the graph for this system and can assign groupIds to those nodes
|
|
Sets our own group ID Only used and valid when SetAutoAddNewConnections(false) is called. Defaults to 0
|
|
Allows adding to the connection graph nodes with this groupId. By default, you subscribe to group 0, which are all systems automatically added with SetAutoAddNewConnections(true) Calling this does not add nodes which were previously rejected due to an unsubscribed group - it only allows addition of nodes after the fact
|
|
Disables addition of graph nodes with this groupId Calling this does not add remove nodes with this groupId which are already present in the graph. It only disables addition of nodes after the fact
|
|
Update is called every time a packet is checked for .
Reimplemented from PluginInterface. |