diff options
Diffstat (limited to 'src/3rd_party-static/message_broker/include/mb_tcpserver.hpp')
-rw-r--r-- | src/3rd_party-static/message_broker/include/mb_tcpserver.hpp | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/src/3rd_party-static/message_broker/include/mb_tcpserver.hpp b/src/3rd_party-static/message_broker/include/mb_tcpserver.hpp deleted file mode 100644 index 8ab2ce6a6d..0000000000 --- a/src/3rd_party-static/message_broker/include/mb_tcpserver.hpp +++ /dev/null @@ -1,150 +0,0 @@ -/** - * \file mb_tcpserver.hpp - * \brief MessageBroker TCP server. - * \author AKara - */ - -#ifndef MB_TCPSERVER_H -#define MB_TCPSERVER_H - -#include <list> -#include <map> - -#include "mb_server.hpp" -#include "CMessageBroker.hpp" -#include "CSender.hpp" -#include "websocket_handler.hpp" - -#define RECV_BUFFER_LENGTH 4097 -#define MAX_RECV_BUFFER_LENGTH 100000 -#define MAX_RECV_DATA 4096 - -/** - * \namespace NsMessageBroker - * \brief MessageBroker related functions. - */ -namespace NsMessageBroker -{ - /** - * \class TcpServer - * \brief MessageBroker TCP server implementation. - */ - class TcpServer : public Server, public CSender - { - public: - /** - * \brief Constructor. - * \param address network address or FQDN to bind - * \param port local port to bind - * \param pMessageBroker pointer to MessageBroker - */ - TcpServer(const std::string& address, uint16_t port, NsMessageBroker::CMessageBroker* pMessageBroker); - - /** - * \brief Destructor. - */ - virtual ~TcpServer(); - - /** - * \brief Receive data from the network and process it. - * \param fd socket descriptor to receive data - * \return true if message has been correctly received, processed and - * response sent, false otherwise (mainly send/recv error) - * \note This method will blocked until data comes. - */ - virtual bool Recv(int fd); - - /** - * \brief Send data. - * \param fd file descriptor of the client TCP socket - * \param data data to send - * \return number of bytes sent or -1 if error - */ - virtual ssize_t Send(int fd, const std::string& data); - - /** - * \brief Wait message. - * - * This function do a select() on the socket and Process() immediately - * the message. - * \param ms millisecond to wait (0 means infinite) - */ - virtual void WaitMessage(uint32_t ms); - - /** - * \brief Put the TCP socket in LISTEN state. - */ - bool Listen() const; - - /** - * \brief Accept a new client socket. - * \return -1 if error, 0 otherwise - */ - bool Accept(); - - /** - * \brief Close listen socket and all client sockets. - */ - void Close(); - - /** - * \brief Method for thread with WaitMessage. - */ - void* MethodForThread(void * arg); - - private: - /** - * \brief Checks if incoming messages are websocket request. - * \param fd - * \param pReceivingBuffer string receiving buffer pointer - * \return true if it is a websocket handshake - */ - bool checkWebSocketHandShake(int fd, std::string* pReceivingBuffer); - - /** - * \brief Checks if incoming messages are websocket request. - * \param fd file descriptor of the client TCP socket - * \return true if it is a websocket - */ - bool isWebSocket(int fd); - - /** - * \brief Gets buffer for socket which received data. - * \param fd socket file descriptor - */ - std::string* getBufferFor(int fd); - private: - /** - * \brief WebSocket clients fd's list. - */ - std::list<int> m_WebSocketClients; - - /** - * \brief Just accepted clients fd's list. - */ - std::list<int> m_AcceptedClients; - - /** - * \brief Receiving buffers map SocketFd:bufferPointer. - */ - std::map <int, std::string*> m_receivingBuffers; - - /** - * \brief List of disconnected sockets to be purged. - */ - std::list<int> m_purge; - - /** - * \brief MessageBroker pointer. - */ - NsMessageBroker::CMessageBroker* mpMessageBroker; - - /** - * \brief WebSocket handler. - */ - CWebSocketHandler mWebSocketHandler; - }; - -} /* namespace NsMessageBroker */ - -#endif /* MB_TCPSERVER_H */ |