AppChat  0.5.0
TCP client-server caht application with boost::asio library.
isubscriber.h
1 #ifndef ISUBSCRIBER_H
2 #define ISUBSCRIBER_H
3 
4 #include <iostream>
5 #include <memory>
6 #include <string>
7 #include <boost/asio.hpp>
8 #include "protocol/protocol.h"
9 
14 {
15 public:
16 
20  virtual void start() = 0;
21 
26  virtual void sendme(text_response_ptr response) = 0;
27 
33  virtual identifier_t get_client_id() const = 0;
34 
40  virtual const std::string& get_login() const = 0;
41 
42  virtual bool is_busy() const noexcept = 0;
43  virtual void set_busy(bool flag = true) noexcept = 0;
44  virtual void reuse(boost::asio::ip::tcp::socket&& _socket) = 0;
45  virtual void free_connection() = 0;
46  virtual ~ISubscriber() = default;
47 };
48 
49 using subscriber_ptr = std::shared_ptr<ISubscriber>;
50 
51 #endif // ISUBSCRIBER_H
virtual const std::string & get_login() const =0
Get the login.
virtual void start()=0
Entry point to handle incoming requests.
virtual void sendme(text_response_ptr response)=0
Send response message to the client.
Channel Subscriber Interface.
Definition: isubscriber.h:13
virtual identifier_t get_client_id() const =0
Get the client id object.