R-Type
TcpClient.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2023
3 ** TcpClient.hpp
4 ** File description:
5 ** TcpClient
6 */
7 
8 #ifndef TCPCLIENT_HPP_
9 #define TCPCLIENT_HPP_
10 
11 #include <asio.hpp>
12 #include <iostream>
13 
14 namespace RType::Client
15 {
16  class TcpClient
17  {
18  public:
19  TcpClient(asio::io_context &IOContext, asio::ip::tcp::endpoint &serverEndpoint);
20  ~TcpClient();
21 
23  void run();
24  bool &getTcpStatus();
25 
26  protected:
27  private:
29  void handleTimeout();
30 
33  void handleWrite(const asio::error_code &error);
34 
39  void handleInput(const asio::error_code &error, std::size_t recvBytes);
40 
41  bool _tcpRunning;
42  asio::io_context &_IOContext;
43  asio::ip::tcp::endpoint &_serverEndpoint;
44  asio::ip::tcp::socket _socket;
45  asio::streambuf _inputBuffer;
46  };
47 } // namespace RType::Client
48 
49 #endif /* !TCPCLIENT_HPP_ */
Definition: TcpClient.hpp:17
bool & getTcpStatus()
Definition: TcpClient.cpp:18
void run()
Connect to the TCP server.
Definition: TcpClient.cpp:48
TcpClient(asio::io_context &IOContext, asio::ip::tcp::endpoint &serverEndpoint)
Definition: TcpClient.cpp:10
~TcpClient()
Definition: TcpClient.cpp:16
Definition: RTypeClient.hpp:20