EHS
Loading...
Searching...
No Matches
NetClientCh.h
Go to the documentation of this file.
1#pragma once
2
3#include "NetChannel.h"
7
8namespace ehs
9{
10 class NetClientCh : public NetChannel
11 {
12 private:
13 friend class EHC;
14
15 Endpoint remoteEndpoint;
16 Char_8 token[64];
17 NetStatus status;
18 UInt_64 queueSlot;
19 float deltaDuration;
20 float deltaRate;
21 float lastPing;
22 float latency;
23 float timeout;
24 UInt_64 nextSendId;
26 UInt_64 nextRecvId;
27 Vector<NetFrag> received;
28
29 public:
31
33
34 NetClientCh(Str_8 name, const Version &version, Endpoint remoteEndpoint);
35
36 NetClientCh(NetClientCh &&client) noexcept;
37
38 NetClientCh(const NetClientCh &client);
39
40 NetClientCh &operator=(NetClientCh &&client) noexcept;
41
42 NetClientCh &operator=(const NetClientCh &client);
43
44 virtual void OnConnected(Serializer<UInt_64> data);
45
46 virtual void OnActive(Serializer<UInt_64> data);
47
48 virtual void OnQueueUpdate(Serializer<UInt_64> data);
49
50 virtual void OnDisconnected(Serializer<UInt_64> data);
51
52 virtual void OnRejected(Serializer<UInt_64> data);
53
54 virtual void OnTimeout(Serializer<UInt_64> data);
55
56 void Connect(const Endpoint &endpoint, const Serializer<UInt_64>& payload);
57
58 bool Disconnect(const Serializer<UInt_64>& payload);
59
60 void Send(bool deltaLocked, UInt_64 encId, bool ensure, UInt_64 sysId, UInt_64 opId, const Serializer<UInt_64>& payload);
61
62 void Send(bool deltaLocked, const Str_8 &encName, bool ensure, const Str_8& sysName, const Str_8& opName, const Serializer<UInt_64>& payload);
63
64 NetStatus GetStatus() const;
65
66 private:
67 void Process(const float &delta, const Endpoint &endpoint, const Header &header, Serializer<UInt_64> &payload) override;
68
69 void Poll(const float &delta) override;
70
71 NetFrag FragmentData(IP version, const Header& header, const Serializer<>& data);
72
73 void Send(NetEnc *enc, const Header& header, const Serializer<>& payload);
74
75 void Pong(float delta);
76
77 void RemoveInsurance(UInt_64 msgId, UInt_64 fragment);
78
79 void AddReceived(const Header& header, const Serializer<>& payload);
80 };
81}
NetChannel()
Definition NetChannel.cpp:25
virtual void OnQueueUpdate(Serializer< UInt_64 > data)
Definition NetClientCh.cpp:115
virtual void OnRejected(Serializer< UInt_64 > data)
Definition NetClientCh.cpp:123
NetClientCh()
Definition NetClientCh.cpp:10
~NetClientCh()
Definition NetClientCh.cpp:6
bool Disconnect(const Serializer< UInt_64 > &payload)
Definition NetClientCh.cpp:141
NetClientCh & operator=(NetClientCh &&client) noexcept
Definition NetClientCh.cpp:50
friend class EHC
Definition NetClientCh.h:13
void Send(bool deltaLocked, UInt_64 encId, bool ensure, UInt_64 sysId, UInt_64 opId, const Serializer< UInt_64 > &payload)
Definition NetClientCh.cpp:151
NetStatus GetStatus() const
Definition NetClientCh.cpp:210
void Connect(const Endpoint &endpoint, const Serializer< UInt_64 > &payload)
Definition NetClientCh.cpp:131
virtual void OnConnected(Serializer< UInt_64 > data)
Definition NetClientCh.cpp:107
virtual void OnTimeout(Serializer< UInt_64 > data)
Definition NetClientCh.cpp:127
virtual void OnDisconnected(Serializer< UInt_64 > data)
Definition NetClientCh.cpp:119
virtual void OnActive(Serializer< UInt_64 > data)
Definition NetClientCh.cpp:111
Definition NetEnc.h:11
Definition NetFrag.h:10
Definition Serializer.h:25
Definition Vector.h:18
A helper class for storing version major, minor and patch.
Definition Version.h:9
Definition Anchor.h:6
NetStatus
Definition NetUtils.h:8
IP
Definition Socket.h:29
char Char_8
Definition Types.h:40
Str< Char_8, UInt_64 > Str_8
Definition Str.h:1953
Definition Socket.h:48
Definition NetUtils.h:22