Initial commit
This commit is contained in:
74
Include/ZSimulation/ZRemotePeer.hpp
Normal file
74
Include/ZSimulation/ZRemotePeer.hpp
Normal file
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
RemoteClient.hpp
|
||||
Author: Patrick Baggett <ptbaggett@762studios.com>, James Russell <jcrussell@762studios.com>
|
||||
Created: 12/2/2013
|
||||
|
||||
Purpose:
|
||||
|
||||
Network peer as seen by a running simulation. May refer to either a
|
||||
client or another server instance.
|
||||
|
||||
License:
|
||||
|
||||
Copyright 2013, 762 Studios.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ZREMOTEPEER_HPP
|
||||
#define __ZREMOTEPEER_HPP
|
||||
|
||||
#include <enet/enet.h>
|
||||
|
||||
class ZRemotePeer
|
||||
{
|
||||
public:
|
||||
// the client state
|
||||
enum PeerState {
|
||||
AVAILABLE,
|
||||
JOINING,
|
||||
CONNECTED,
|
||||
CONNECTED_LOCAL,
|
||||
DISCONNECTED
|
||||
};
|
||||
|
||||
// c'tor
|
||||
ZRemotePeer() : bIsClient(true),
|
||||
State(AVAILABLE),
|
||||
Peer(NULL) { }
|
||||
|
||||
// getters
|
||||
cID GetId() const { return Id; }
|
||||
PeerState GetState() const { return State; }
|
||||
bool IsClient() const { return bIsClient; }
|
||||
const char* GetName() const { return Name; }
|
||||
const char* GetHost() const { return Host; }
|
||||
ENetPeer* GetPeer() { return Peer; }
|
||||
|
||||
// setters
|
||||
void SetId(cID id) { Id = id; }
|
||||
void SetState(PeerState cs) { State = cs; }
|
||||
void SetClient(bool isClient) { bIsClient = isClient; }
|
||||
void SetName(const char* name) { strcpy(Name, name); }
|
||||
void SetHostIP(const char* host) { strcpy(Host, host); }
|
||||
void SetPeer(ENetPeer* newPeer) { Peer = newPeer; }
|
||||
|
||||
// resets this peer object (must be called to reuse object and connection id)
|
||||
void Reset() {
|
||||
SetPeer(NULL);
|
||||
SetState(AVAILABLE);
|
||||
SetName("");
|
||||
SetHostIP("");
|
||||
SetClient(true);
|
||||
}
|
||||
|
||||
private:
|
||||
cID Id; // id of this connection assigned by network service
|
||||
ENetPeer* Peer; // peer object
|
||||
PeerState State; // overall state
|
||||
bool bIsClient; // true if this connects to a client
|
||||
|
||||
char Host[ZSIM_NETWORK_MAX_HOST_LENGTH]; // host name in readable format
|
||||
char Name[ZSIM_NETWORK_MAX_NAME_LENGTH]; // network 'name' (unique among network peers)
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user