Babel
Epitech's C++ VoIP project
ITCPConnection.hpp
Go to the documentation of this file.
1 //
2 // Created by cbihan on 28/09/2021.
3 //
4 
5 #pragma once
6 
7 #include <string>
8 #include <vector>
9 #include <functional>
10 #include "Network/Message.hpp"
11 #include "Utilities/TSQueue.hpp"
12 
13 namespace Babel
14 {
15  template<typename T>
17  {
18  public:
22  virtual void connect(const std::string &hostname, uint16_t port) = 0;
23 
25  virtual void disconnect() = 0;
26 
28  virtual bool isConnected() const = 0;
29 
32  virtual void send(Message<T> message) = 0;
33 
35  virtual void readForMessages() = 0;
36 
38  virtual void setCallbackOnMessage(std::function<void(Message<T>)> callMessageReceived) = 0;
39 
41  virtual uint64_t getId() const = 0;
42 
44  virtual void setId(uint64_t id) = 0;
45 
47  virtual std::string getPeerIp() const = 0;
48 
50  virtual uint16_t getPeerPort() const = 0;
51 
53  virtual ~ITCPConnection() = default;
54  };
55 }
Message.hpp
TSQueue.hpp
Babel::ITCPConnection::~ITCPConnection
virtual ~ITCPConnection()=default
default dtor
Babel::ITCPConnection::isConnected
virtual bool isConnected() const =0
Tells if the connection is up.
Babel::ITCPConnection::getPeerPort
virtual uint16_t getPeerPort() const =0
get the connected pair port
Babel::Message
Definition: Message.hpp:46
Babel::ITCPConnection::getId
virtual uint64_t getId() const =0
Get the id of this connection.
Babel::ITCPConnection::setCallbackOnMessage
virtual void setCallbackOnMessage(std::function< void(Message< T >)> callMessageReceived)=0
Called when we received a message.
Babel::ITCPConnection::setId
virtual void setId(uint64_t id)=0
set the id of the connection
Babel::ITCPConnection::readForMessages
virtual void readForMessages()=0
listen for new messages
Babel
Definition: IAudioManager.hpp:13
Babel::ITCPConnection
Definition: ITCPConnection.hpp:16
Babel::ITCPConnection::connect
virtual void connect(const std::string &hostname, uint16_t port)=0
connect to a hostname and a port
Babel::ITCPConnection::getPeerIp
virtual std::string getPeerIp() const =0
Get the connected pair address.
Babel::ITCPConnection::disconnect
virtual void disconnect()=0
disconnect the connection
Babel::ITCPConnection::send
virtual void send(Message< T > message)=0
Send the message.