EHS
Loading...
Searching...
No Matches
NetChannel.h
Go to the documentation of this file.
1#pragma once
2
3#include "ehs/Str.h"
4#include "ehs/Array.h"
6#include "NetUtils.h"
7
8namespace ehs
9{
10 class EHC;
11 class NetEnd;
12 class NetSys;
13
15 {
16 protected:
17 static const UInt_64 internalSys;
18 static const UInt_64 connectOp;
19 static const UInt_64 connectedOp;
20 static const UInt_64 rejectedOp;
21 static const UInt_64 disconnectOp;
22 static const UInt_64 disconnectedOp;
23 static const UInt_64 statusUpdateOp;
24 static const UInt_64 pingOp;
25 static const UInt_64 pongOp;
26 static const UInt_64 latencyOp;
27 static const UInt_64 receivedOp;
28
29 private:
30 friend class EHC;
31
32 EHC *owner;
33 UInt_64 id;
34 Str_8 name;
35 Version version;
36 float maxTimeout;
37 float resendRate;
38 bool dropPackets;
39 Array<NetSys *> systems;
40
41 public:
42 virtual ~NetChannel();
43
44 NetChannel();
45
46 NetChannel(Str_8 name, const Version &version);
47
48 NetChannel(NetChannel &&channel) noexcept;
49
50 NetChannel(const NetChannel &channel);
51
52 NetChannel &operator=(NetChannel &&channel) noexcept;
53
54 NetChannel &operator=(const NetChannel &channel);
55
56 EHC *GetOwner() const;
57
58 UInt_64 GetId() const;
59
60 Str_8 GetName() const;
61
62 Version GetVersion() const;
63
64 void SetMaxTimeout(float seconds);
65
66 float GetMaxTimeout() const;
67
68 void SetResendRate(float seconds);
69
70 float GetResendRate() const;
71
72 void EnableDropPackets(bool enable);
73
74 bool IsDropPacketsEnabled() const;
75
76 bool AddSystem(NetSys *sys);
77
78 bool IsValid() const;
79
80 private:
81 virtual void Process(const float &delta, const Endpoint &endpoint, const Header &header, Serializer<UInt_64> &payload);
82
83 virtual void Poll(const float &delta);
84
85 protected:
86 bool HasSystem(UInt_64 sysId) const;
87
88 bool HasSystem(const Str_8& sysName) const;
89
90 NetSys* GetSystem(UInt_64 sysId) const;
91
92 NetSys* GetSystem(const Str_8& sysName) const;
93 };
94}
Definition Array.h:16
Definition EHC.h:16
static const UInt_64 latencyOp
Definition NetChannel.h:26
static const UInt_64 statusUpdateOp
Definition NetChannel.h:23
static const UInt_64 internalSys
Definition NetChannel.h:17
NetSys * GetSystem(UInt_64 sysId) const
Definition NetChannel.cpp:180
static const UInt_64 connectedOp
Definition NetChannel.h:19
bool IsDropPacketsEnabled() const
Definition NetChannel.cpp:134
float GetMaxTimeout() const
Definition NetChannel.cpp:114
float GetResendRate() const
Definition NetChannel.cpp:124
void SetResendRate(float seconds)
Definition NetChannel.cpp:119
Version GetVersion() const
Definition NetChannel.cpp:104
EHC * GetOwner() const
Definition NetChannel.cpp:89
static const UInt_64 pongOp
Definition NetChannel.h:25
bool IsValid() const
Definition NetChannel.cpp:152
void EnableDropPackets(bool enable)
Definition NetChannel.cpp:129
static const UInt_64 pingOp
Definition NetChannel.h:24
friend class EHC
Definition NetChannel.h:30
bool AddSystem(NetSys *sys)
Definition NetChannel.cpp:139
static const UInt_64 disconnectedOp
Definition NetChannel.h:22
Str_8 GetName() const
Definition NetChannel.cpp:99
static const UInt_64 disconnectOp
Definition NetChannel.h:21
static const UInt_64 connectOp
Definition NetChannel.h:18
UInt_64 GetId() const
Definition NetChannel.cpp:94
bool HasSystem(UInt_64 sysId) const
Definition NetChannel.cpp:166
static const UInt_64 receivedOp
Definition NetChannel.h:27
virtual ~NetChannel()
Definition NetChannel.cpp:21
NetChannel()
Definition NetChannel.cpp:25
NetChannel & operator=(NetChannel &&channel) noexcept
Definition NetChannel.cpp:53
static const UInt_64 rejectedOp
Definition NetChannel.h:20
void SetMaxTimeout(float seconds)
Definition NetChannel.cpp:109
Definition NetEnd.h:16
Definition NetSys.h:14
Definition Serializer.h:25
A helper class for storing version major, minor and patch.
Definition Version.h:9
Definition Anchor.h:6
Str< Char_8, UInt_64 > Str_8
Definition Str.h:1953
Definition Socket.h:48
Definition NetUtils.h:22