R-Type
R-Type project
TelepathyTransport.hpp
1 #pragma once
2 
3 #include "KapMirror/Core/Transport.hpp"
4 #include "Client.hpp"
5 #include "Server.hpp"
6 
7 namespace KapMirror {
8  class TelepathyTransport : public Transport {
9  private:
10  std::shared_ptr<Telepathy::Client> client;
11 
12  std::shared_ptr<Telepathy::Server> server;
13 
14  public:
15  int clientMaxMessageSize = 16 * 1024;
16  int clientMaxReceivesPerTick = 1000;
17  int clientSendQueueLimit = 10000;
18  int clientReceiveQueueLimit = 10000;
19 
20  int serverMaxMessageSize = 16 * 1024;
21  int serverMaxReceivesPerTick = 10000;
22  int serverSendQueueLimitPerConnection = 10000;
23  int serverReceiveQueueLimitPerConnection = 10000;
24 
25  public:
26  TelepathyTransport() = default;
27  ~TelepathyTransport() override;
28 
29  bool clientConnected() override;
30 
31  void clientConnect(const std::string& ip, int port) override;
32 
33  void clientDisconnect() override;
34 
35  void clientSend(const std::shared_ptr<ArraySegment<byte>>& data) override;
36 
37  void clientEarlyUpdate() override;
38 
39  void serverStart(int port) override;
40 
41  void serverStop() override;
42 
43  void serverSend(int connectionId, const std::shared_ptr<ArraySegment<byte>>& data) override;
44 
45  void serverDisconnect(int connectionId) override;
46 
47  void serverEarlyUpdate() override;
48 
49  private:
50  void createClient();
51  };
52 } // namespace KapMirror
KapMirror::Transport
Definition: Transport.hpp:10
KapMirror::TelepathyTransport::clientDisconnect
void clientDisconnect() override
Disconnect the client from the server.
Definition: TelepathyTransport.cpp:33
KapMirror::TelepathyTransport::clientSend
void clientSend(const std::shared_ptr< ArraySegment< byte >> &data) override
Send data to the server.
Definition: TelepathyTransport.cpp:42
KapMirror::TelepathyTransport::clientEarlyUpdate
void clientEarlyUpdate() override
Client Update (call this function every frame)
Definition: TelepathyTransport.cpp:50
KapMirror::TelepathyTransport::serverStop
void serverStop() override
Stop the server.
Definition: TelepathyTransport.cpp:76
KapMirror::TelepathyTransport::clientConnect
void clientConnect(const std::string &ip, int port) override
Connect the client to the server.
Definition: TelepathyTransport.cpp:28
KapMirror::TelepathyTransport
Definition: TelepathyTransport.hpp:8
KapMirror::TelepathyTransport::serverDisconnect
void serverDisconnect(int connectionId) override
Disconnect the connection.
Definition: TelepathyTransport.cpp:93
KapMirror::TelepathyTransport::serverEarlyUpdate
void serverEarlyUpdate() override
Server Update (call this function every frame)
Definition: TelepathyTransport.cpp:99
KapMirror::TelepathyTransport::serverStart
void serverStart(int port) override
Definition: TelepathyTransport.cpp:60
KapMirror::ArraySegment
Definition: ArraySegment.hpp:9
KapMirror::TelepathyTransport::clientConnected
bool clientConnected() override
Client is connected to the server.
Definition: TelepathyTransport.cpp:26
KapMirror::TelepathyTransport::serverSend
void serverSend(int connectionId, const std::shared_ptr< ArraySegment< byte >> &data) override
Send data to the client.
Definition: TelepathyTransport.cpp:85