xale-db 1.0
minimal SQL engine, written in c++
Loading...
Searching...
No Matches
TcpServer.h
Go to the documentation of this file.
1#ifndef NET_TCP_SERVER_H
2#define NET_TCP_SERVER_H
3
4#include <Logger.h>
5
9
10#include "Net/Packet/Packet.h"
12
13#include "Engine/QueryEngine.h" // TODO: remove when injecting from outside
14
15#include <string>
16#include <memory>
17#include <mutex>
18
19namespace Xale::Net
20{
22 {
23 public:
24 TcpServer(Xale::Engine::QueryEngine& queryEngine, std::unique_ptr<Xale::Net::ISocketFactory> socketFactory);
25 ~TcpServer();
26
31 bool start(int port);
32
36 void stop();
37
38 private:
39 Xale::Logger::Logger<TcpServer>& _logger;
40 std::unique_ptr<Xale::Net::IListenerSocket> _serverSocket;
41 std::unique_ptr<Xale::Net::ISocketFactory> _socketFactory;
42 Xale::Engine::QueryEngine& _queryEngine; // TODO: inject from outside
43 std::mutex _queryMutex;
44
49 void handleClient(std::unique_ptr<IClientConnection> conn);
50 };
51}
52
53#endif // NET_TCP_SERVER_H
Definition QueryEngine.h:16
bool start(int port)
Start the server on the given port (blocking accept loop).
Definition TcpServer.cpp:19
void stop()
Stop the server and close the listening socket.
Definition TcpServer.cpp:102
~TcpServer()
Definition TcpServer.cpp:14
TcpServer(Xale::Engine::QueryEngine &queryEngine, std::unique_ptr< Xale::Net::ISocketFactory > socketFactory)
Definition TcpServer.cpp:7
Definition IPacket.h:8