R-Type
R-Type project
NetworkManager.hpp
1 #pragma once
2 
3 #include "Core/Transport.hpp"
4 #include "Core/Compression.hpp"
5 #include "Core/NetworkMessage.hpp"
6 #include "KapMirror.hpp"
7 #include "Component.hpp"
8 
9 namespace KapMirror {
11  private:
12  static NetworkManager* instance;
13 
14  std::shared_ptr<Transport> transport;
15  std::shared_ptr<Compression> compression;
16 
17  std::shared_ptr<NetworkServer> server;
18  std::shared_ptr<NetworkClient> client;
19 
20  public:
21  int maxConnections = 100;
22 
23  std::string networkAddress = "127.0.0.1";
24  int networkPort = 7777;
25 
26  public:
27  explicit NetworkManager(std::shared_ptr<KapEngine::GameObject> go);
28  ~NetworkManager();
29 
30  static NetworkManager* getInstance() { return instance; }
31 
32  std::shared_ptr<NetworkServer> getServer() const { return server; }
33 
34  std::shared_ptr<NetworkClient> getClient() const { return client; }
35 
36  void onAwake() override;
37 
38  void onFixedUpdate() override;
39 
43  void setTransport(const std::shared_ptr<Transport>& _transport);
44 
45  void setCompression(const std::shared_ptr<Compression>& _compression);
46 
50  void startServer();
51 
55  void stopServer();
56 
60  void startClient();
61 
65  void stopClient();
66 
67  protected:
71  virtual void onStartServer() {}
72 
76  virtual void onStopServer() {}
77 
81  virtual void onServerClientConnected(const std::shared_ptr<NetworkConnection>& connection) {}
82 
86  virtual void onServerClientDisconnected(const std::shared_ptr<NetworkConnection>& connection) {}
87 
91  virtual void onStartClient() {}
92 
96  virtual void onStopClient() {}
97 
101  virtual void onClientConnected(const std::shared_ptr<NetworkConnection>& connection) {}
102 
106  virtual void onClientDisconnected(const std::shared_ptr<NetworkConnection>& connection) {}
107 
108  private:
109  void initializeSingleton();
110 
111  void setupServer();
112 
113  void removeHandlers();
114  };
115 } // namespace KapMirror
KapMirror::NetworkManager::stopServer
void stopServer()
Stops the server from listening and simulating the game.
Definition: NetworkManager.cpp:98
KapMirror::NetworkManager::onServerClientDisconnected
virtual void onServerClientDisconnected(const std::shared_ptr< NetworkConnection > &connection)
This is invoked when a client is disconnected from a server.
Definition: NetworkManager.hpp:86
KapMirror::NetworkManager::startClient
void startClient()
Starts the client, connects it to the server with ip and port.
Definition: NetworkManager.cpp:120
KapMirror::NetworkManager::onStopClient
virtual void onStopClient()
This is called when a client is stopped.
Definition: NetworkManager.hpp:96
KapMirror::NetworkManager::onStartClient
virtual void onStartClient()
This is invoked when the client is started.
Definition: NetworkManager.hpp:91
KapMirror::NetworkManager::onAwake
void onAwake() override
call component awake
Definition: NetworkManager.cpp:38
KapMirror::NetworkManager::stopClient
void stopClient()
Stops and disconnects the client.
Definition: NetworkManager.cpp:148
KapEngine::Component
Definition: Component.hpp:38
KapMirror::NetworkManager::onClientConnected
virtual void onClientConnected(const std::shared_ptr< NetworkConnection > &connection)
This is invoked when the client is connected to a server.
Definition: NetworkManager.hpp:101
KapMirror::NetworkManager::onServerClientConnected
virtual void onServerClientConnected(const std::shared_ptr< NetworkConnection > &connection)
This is invoked when a client is connected to a server.
Definition: NetworkManager.hpp:81
KapMirror::NetworkManager::onFixedUpdate
void onFixedUpdate() override
call eachv x ms
Definition: NetworkManager.cpp:48
KapMirror::NetworkManager::setTransport
void setTransport(const std::shared_ptr< Transport > &_transport)
Set transport layer.
Definition: NetworkManager.cpp:53
KapMirror::NetworkManager::startServer
void startServer()
Starts the server, listening for incoming connections.
Definition: NetworkManager.cpp:63
KapMirror::NetworkManager::onClientDisconnected
virtual void onClientDisconnected(const std::shared_ptr< NetworkConnection > &connection)
This is invoked when the client is disconnected from a server.
Definition: NetworkManager.hpp:106
KapMirror::NetworkManager
Definition: NetworkManager.hpp:10
KapMirror::NetworkManager::onStopServer
virtual void onStopServer()
This is called when a server is stopped.
Definition: NetworkManager.hpp:76
KapMirror::NetworkManager::onStartServer
virtual void onStartServer()
This is invoked when a server is started.
Definition: NetworkManager.hpp:71