11 #include "RNPlatform/Inc/MemoryTracking.h"
12 #ifndef _BASETRANSPORTSERVER_H_
13 #define _BASETRANSPORTSERVER_H_
15 #include "RNPlatform/Inc/SysTime.h"
16 #include "RNPlatform/Inc/Encryption.h"
17 #include "RNPlatform/Inc/ThreadClass.h"
18 #include "RNPlatform/Inc/Thread.h"
19 #include "RNXPURL/Inc/Transport.h"
20 #include "RNPlatform/Inc/MessageHelper.h"
21 #include "RNLobby/Inc/CommonServer.h"
23 namespace RNReplicaNet
51 virtual bool Stop(
void);
53 static SysTimeType FloatTime(
void);
67 Entry() : mLastPacketTime(0.0f) , mLastPacketsSent(0) , mWaitingForDisconnect(-1.0f) , mError(
false) ,
68 mClientACKConnectionNonce(
false) , mCachedConnectionNonce(0) {}
69 SysTimeType mLastPacketTime;
71 SysTimeType mWaitingForDisconnect;
73 bool mClientACKConnectionNonce;
74 int mCachedConnectionNonce;
117 void GenerateNewNonce(
void);
121 void ThreadExiting(
const int returnCode);
124 int RunThink(
Transport *transport,Entry &entry);
131 std::map<Transport*,Entry> mConnected;
134 bool mClientGotAPacket;
135 bool mClientIsStable;
139 size_t mNumConnections;
140 size_t mNumTotalConnections;
145 int CalculateConnectionNOnce(
Transport *transport);
147 const Entry *FindEntry(
Transport *transport);
Definition: Transport.h:35
virtual void CallbackAccepted(Transport *transport)
Called when the server accepts a connection or when a non-listen class instance connection gets a fir...
Definition: BaseTransportServer.h:90
virtual void CallbackQueryReplyTime(const float seconds)
Definition: BaseTransportServer.h:105
A server base class that handles encrypted messages to and from a transport.
Definition: BaseTransportServer.h:30
int GetConnectionNOnce(Transport *transport=0, const Entry *entry=0)
Gets the connection's NOnce with respect to a Transport.
bool SetAsDisconnecting(Transport *transport)
This will put the connection into a list pending disconnection after a timeout period.
virtual void CallbackTidy(void)
Definition: BaseTransportServer.h:113
A common server support class.
Definition: CommonServer.h:27
virtual bool CallbackParseValidMessage(Transport *transport, DynamicMessageHelper &message, const size_t length)
Definition: BaseTransportServer.h:79
size_t GetNumTotalSessions(void) const
Returns the total number of connections.
size_t GetNumConnections(void) const
Returns the number of active connections.
virtual bool StartWithTransport(Transport *transport, const bool allowDelete=true, const bool isListen=true)
virtual bool CallbackPoll(void)
Definition: BaseTransportServer.h:109
virtual void CallbackDisconnected(Transport *transport)
Called when the transport is disconnected. This is also called if there is a problem trying to connec...
Definition: BaseTransportServer.h:93
virtual void CallbackDataSend(DynamicMessageHelper &message)
Definition: BaseTransportServer.h:101
Definition: BaseTransportServer.h:65
virtual bool CallbackParsePacketData(Transport *transport, void *data, size_t &length, DynamicMessageHelper &result, Entry &entry)
virtual bool PackageAndSendData(Transport *transport, const DynamicMessageHelper &message)
The class mutex is locked during the context of this function.
virtual void CallbackDataReceived(DynamicMessageHelper &message)
Definition: BaseTransportServer.h:97
Definition: MessageHelper.h:211
void SetEncryptionKey(const void *data, const int length)
Definition: ThreadClass.h:96