ConnectX 3.0
ConnectX Game Suite
Loading...
Searching...
No Matches
connection.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <cstdint>
5#include <memory>
6#include <functional>
7#include <sockpp/tcp_socket.h>
8
9class GameServer;
10
15class Connection : public std::enable_shared_from_this<Connection>
16{
17public:
18 using MessageCallback = std::function<void(const std::string &)>;
19 using DisconnectCallback = std::function<void()>;
20
21 explicit Connection(sockpp::tcp_socket socket, uint32_t id);
23
27 void start();
28
32 bool send(const std::string &message);
33
37 void close();
38
42 bool isOpen() const { return socket_.is_open(); }
43
47 uint32_t getId() const { return id_; }
48
53 {
54 message_callback_ = callback;
55 }
56
61 {
62 disconnect_callback_ = callback;
63 }
64
65private:
70 std::string readMessage();
71
75 bool writeMessage(const std::string &message);
76
77 sockpp::tcp_socket socket_;
78 uint32_t id_;
79 MessageCallback message_callback_;
80 DisconnectCallback disconnect_callback_;
81 bool running_;
82};
Definition connection.hpp:16
void setMessageCallback(MessageCallback callback)
Definition connection.hpp:52
~Connection()
Definition connection.cpp:14
void start()
Definition connection.cpp:19
std::function< void(const std::string &)> MessageCallback
Definition connection.hpp:18
bool send(const std::string &message)
Definition connection.cpp:54
uint32_t getId() const
Definition connection.hpp:47
void setDisconnectCallback(DisconnectCallback callback)
Definition connection.hpp:60
bool isOpen() const
Definition connection.hpp:42
void close()
Definition connection.cpp:64
std::function< void()> DisconnectCallback
Definition connection.hpp:19
Definition game_server.hpp:22