HiveMindBridge
TCPServer.h
Go to the documentation of this file.
1 #ifndef HIVE_MIND_BRIDGE_TCPSERVER_H
2 #define HIVE_MIND_BRIDGE_TCPSERVER_H
3 
5 #include <cpp-common/ILogger.h>
6 #include <cstdint>
7 #include <cstring>
8 #include <functional>
9 #include <memory>
10 #include <netinet/in.h>
11 #include <stdlib.h>
12 #include <sys/socket.h>
13 #include <unistd.h>
14 
15 class TCPServer : public ITCPServer {
16  public:
22  TCPServer(int port, ILogger& logger);
23  ~TCPServer();
24 
29  void listen();
30 
37  bool receive(uint8_t* data, uint16_t length) override;
38 
44  bool send(const uint8_t* data, uint16_t length) override;
45 
49  void close() override;
50 
55  bool isClientConnected() override;
56 
61  void onConnect(std::function<void()> hook) override;
62 
67  void onDisconnect(std::function<void()> hook) override;
68 
69  private:
70  ILogger& m_logger;
73  struct sockaddr_in m_address;
74  bool m_isClientConnected = false;
75  std::function<void()> m_onConnect;
76  std::function<void()> m_onDisonnect;
77 
81  void init();
82 };
83 
84 #endif // HIVE_MIND_BRIDGE_TCPSERVER_H
TCPServer::m_address
struct sockaddr_in m_address
Definition: TCPServer.h:73
TCPServer::send
bool send(const uint8_t *data, uint16_t length) override
Definition: TCPServer.cpp:73
TCPServer::init
void init()
Definition: TCPServer.cpp:14
TCPServer::m_onDisonnect
std::function< void()> m_onDisonnect
Definition: TCPServer.h:76
TCPServer::onConnect
void onConnect(std::function< void()> hook) override
Definition: TCPServer.cpp:86
TCPServer::close
void close() override
Definition: TCPServer.cpp:77
TCPServer::m_addressLength
int m_addressLength
Definition: TCPServer.h:72
ITCPServer
Definition: ITCPServer.h:7
TCPServer::receive
bool receive(uint8_t *data, uint16_t length) override
Definition: TCPServer.cpp:58
TCPServer::listen
void listen()
Definition: TCPServer.cpp:39
TCPServer::m_port
int m_port
Definition: TCPServer.h:71
TCPServer::TCPServer
TCPServer(int port, ILogger &logger)
Definition: TCPServer.cpp:3
TCPServer::~TCPServer
~TCPServer()
Definition: TCPServer.cpp:9
TCPServer::m_clientFd
int m_clientFd
Definition: TCPServer.h:71
TCPServer::m_onConnect
std::function< void()> m_onConnect
Definition: TCPServer.h:75
TCPServer
Definition: TCPServer.h:15
TCPServer::isClientConnected
bool isClientConnected() override
Definition: TCPServer.cpp:84
TCPServer::m_logger
ILogger & m_logger
Definition: TCPServer.h:70
ITCPServer.h
TCPServer::onDisconnect
void onDisconnect(std::function< void()> hook) override
Definition: TCPServer.cpp:88
TCPServer::m_serverFd
int m_serverFd
Definition: TCPServer.h:71
TCPServer::m_isClientConnected
bool m_isClientConnected
Definition: TCPServer.h:74