Finished implementing, now for the testing phase.
This commit is contained in:
94
include/ehs/io/socket/ehc/NetChannel.h
Normal file
94
include/ehs/io/socket/ehc/NetChannel.h
Normal file
@@ -0,0 +1,94 @@
|
||||
#pragma once
|
||||
|
||||
#include "ehs/Str.h"
|
||||
#include "ehs/Array.h"
|
||||
#include "ehs/io/socket/Socket.h"
|
||||
#include "NetUtils.h"
|
||||
|
||||
namespace ehs
|
||||
{
|
||||
class EHC;
|
||||
class NetEnd;
|
||||
class NetSys;
|
||||
|
||||
class NetChannel
|
||||
{
|
||||
protected:
|
||||
static const UInt_64 internalSys;
|
||||
static const UInt_64 connectOp;
|
||||
static const UInt_64 connectedOp;
|
||||
static const UInt_64 rejectedOp;
|
||||
static const UInt_64 disconnectOp;
|
||||
static const UInt_64 disconnectedOp;
|
||||
static const UInt_64 statusUpdateOp;
|
||||
static const UInt_64 pingOp;
|
||||
static const UInt_64 pongOp;
|
||||
static const UInt_64 latencyOp;
|
||||
static const UInt_64 receivedOp;
|
||||
|
||||
private:
|
||||
friend class EHC;
|
||||
|
||||
EHC *owner;
|
||||
UInt_64 id;
|
||||
Str_8 name;
|
||||
Version version;
|
||||
float maxTimeout;
|
||||
float resendRate;
|
||||
bool dropPackets;
|
||||
Array<NetSys *> systems;
|
||||
|
||||
public:
|
||||
virtual ~NetChannel();
|
||||
|
||||
NetChannel();
|
||||
|
||||
NetChannel(Str_8 name, const Version &version);
|
||||
|
||||
NetChannel(NetChannel &&channel) noexcept;
|
||||
|
||||
NetChannel(const NetChannel &channel);
|
||||
|
||||
NetChannel &operator=(NetChannel &&channel) noexcept;
|
||||
|
||||
NetChannel &operator=(const NetChannel &channel);
|
||||
|
||||
EHC *GetOwner() const;
|
||||
|
||||
UInt_64 GetId() const;
|
||||
|
||||
Str_8 GetName() const;
|
||||
|
||||
Version GetVersion() const;
|
||||
|
||||
void SetMaxTimeout(float seconds);
|
||||
|
||||
float GetMaxTimeout() const;
|
||||
|
||||
void SetResendRate(float seconds);
|
||||
|
||||
float GetResendRate() const;
|
||||
|
||||
void EnableDropPackets(bool enable);
|
||||
|
||||
bool IsDropPacketsEnabled() const;
|
||||
|
||||
bool AddSystem(NetSys *sys);
|
||||
|
||||
bool IsValid() const;
|
||||
|
||||
private:
|
||||
virtual void Process(const float &delta, const Endpoint &endpoint, const Header &header, Serializer<UInt_64> &payload);
|
||||
|
||||
virtual void Poll(const float &delta);
|
||||
|
||||
protected:
|
||||
bool HasSystem(UInt_64 sysHashId) const;
|
||||
|
||||
bool HasSystem(const Str_8& sysId) const;
|
||||
|
||||
NetSys* GetSystem(UInt_64 sysHashId) const;
|
||||
|
||||
NetSys* GetSystem(const Str_8& sysId) const;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user