Recast  1
Game with custom magic
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
NetworkServer.hpp
Go to the documentation of this file.
1 
11 #ifndef RECAST_NETWORKING_SERVER_HPP
12 #define RECAST_NETWORKING_SERVER_HPP
13 
14 #include <vector>
15 #include <unordered_map>
16 #include "Networking.hpp"
17 
18 class ICommandSender;
19 void setNonBlockedImpl(int sd, bool option) noexcept (false);
20 
22 public:
23  NetworkServer(uint32_t port, ICommandSender *sender, bool isTCP = false);
24  void run();
25  void shutdown();
26  bool running() { return isRunning; }
27  bool registerListener(NetworkListener *listener);
28  bool removeListener(NetworkListener *listener);
29 private:
30  ICommandSender *sender;
31  uint32_t port;
32  bool isTCP;
33  volatile bool isRunning;
34  std::unordered_map<int, NetworkListener*> listeners;
35 
36  bool nofityListener(char *request);
37  void listenFor(std::shared_ptr<SocketTCP> client);
38  void listenForBytes(std::shared_ptr<SocketTCP> client);
39  void listenFor(std::shared_ptr<SocketUDP> client);
40  void listenForBytes(std::shared_ptr<SocketUDP> client);
41  string exchange(const string request);
42  char* exchange(char *request);
43 };
44 
45 #endif //RECAST_NETWORKING_SERVER_HPP
bool running()
Definition: NetworkServer.hpp:26
bool removeListener(NetworkListener *listener)
Definition: NetworkServer.cpp:129
Networking quick-include header file.
Definition: NetworkServer.hpp:21
bool registerListener(NetworkListener *listener)
Definition: NetworkServer.cpp:118
void setNonBlockedImpl(int sd, bool option) noexcept(false)
Definition: Socket.cpp:15
NetworkServer(uint32_t port, ICommandSender *sender, bool isTCP=false)
Definition: NetworkServer.cpp:19
void shutdown()
Definition: NetworkServer.cpp:102
Definition: ICommandSender.hpp:12
Definition: NetworkListener.hpp:18
void run()
Definition: NetworkServer.cpp:22