TDME2  1.9.200
ApplicationServer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <string>
5 #include <vector>
6 
7 #include <tdme/tdme.h>
12 
13 using std::string;
14 using std::unique_ptr;
15 using std::vector;
16 
22 
23 /**
24  * Application server
25  */
28 
29 public:
30  // forbid class copy
32 
33  /**
34  * Public constructor
35  * @param name name
36  * @param host host
37  * @param port port
38  * @param maxCCU max CCU
39  * @param pathFindingThreadCount path finding thread count
40  */
41  ApplicationServer(const string& name, const string& host, const uint16_t port, const unsigned int maxCCU, int pathFindingThreadCount);
42 
43  /**
44  * Destructor
45  */
46  virtual ~ApplicationServer();
47 
48  // overridden methods
49  virtual void start() override;
50 protected:
51  unique_ptr<Context> context;
52 
53  /**
54  * Create context
55  * @return context
56  */
57  virtual Context* createContext();
58 
59  /**
60  * Accept
61  * @param clientId client id
62  * @param ip ip
63  * @param port port
64  */
65  virtual UDPServerClient* accept(const uint32_t clientId, const string& ip, const uint16_t port) override;
66 
67  /**
68  * Setup default / minumum required logics
69  */
70  virtual void setupLogics() = 0;
71 
72 private:
73  unique_ptr<ServerThread> logicsThread;
75 
76 };
virtual UDPServerClient * accept(const uint32_t clientId, const string &ip, const uint16_t port) override
Accept.
virtual void start() override
Starts this objects thread.
unique_ptr< ServerThread > logicsThread
virtual void setupLogics()=0
Setup default / minumum required logics.
virtual Context * createContext()
Create context.
ApplicationServer(const string &name, const string &host, const uint16_t port, const unsigned int maxCCU, int pathFindingThreadCount)
Public constructor.
Application server thread.
Definition: ServerThread.h:25
Base class for network UDP server clients.
Base class for network UDP servers.
Definition: UDPServer.h:42
std::exception Exception
Exception base class.
Definition: Exception.h:18
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6