Babel
Epitech's C++ VoIP project
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Babel::QtTCPConnection Class Reference

#include <QtTCPConnection.hpp>

Inheritance diagram for Babel::QtTCPConnection:
Collaboration diagram for Babel::QtTCPConnection:

Public Member Functions

void connect (const std::string &hostname, uint16_t port) override
 connect to a hostname and a port More...
 
void disconnect () override
 disconnect the connection More...
 
bool isConnected () const override
 Tells if the connection is up. More...
 
void send (Message< RFCCodes > message) override
 Send the message. More...
 
void readForMessages () override
 listen for new messages More...
 
void setCallbackOnMessage (std::function< void(Message< RFCCodes >)> callMessageReceived) override
 Called when we received a message. More...
 
uint64_t getId () const override
 Get the id of this connection. More...
 
void setId (uint64_t id) override
 set the id of the connection More...
 
std::string getPeerIp () const override
 Get the connected pair address. More...
 
uint16_t getPeerPort () const override
 get the connected pair port More...
 
 QtTCPConnection (QWidget *parent=nullptr, std::function< void(void)> onConnect=[](){})
 ctor More...
 
- Public Member Functions inherited from Babel::ITCPConnection< RFCCodes >
virtual bool isConnected () const=0
 Tells if the connection is up. More...
 
virtual uint64_t getId () const=0
 Get the id of this connection. More...
 
virtual std::string getPeerIp () const=0
 Get the connected pair address. More...
 
virtual uint16_t getPeerPort () const=0
 get the connected pair port More...
 
virtual ~ITCPConnection ()=default
 default dtor More...
 

Private Member Functions

void readMessage ()
 Read a Message<T> from the socket when a message is read _callbackMessageReceived is called. More...
 

Private Attributes

QTcpSocket * _socket
 The socket internally used. More...
 
std::function< void(Message< RFCCodes >)> _callbackMessageReceived
 The function called when a message has been fully received. More...
 
TSQueue< Message< RFCCodes > > _messagesOut
 All the messages that need to be sent. More...
 
Message< RFCCodes_tmpMessage
 Message used when reading a message. More...
 
uint64_t _bytesRead
 used to track how much bytes of a message had been read More...
 
uint64_t _connectionId
 id used to identify the connection More...
 

Constructor & Destructor Documentation

◆ QtTCPConnection()

Babel::QtTCPConnection::QtTCPConnection ( QWidget *  parent = nullptr,
std::function< void(void)>  onConnect = [](){} 
)
explicit

ctor

Member Function Documentation

◆ connect()

void Babel::QtTCPConnection::connect ( const std::string &  hostname,
uint16_t  port 
)
overridevirtual

connect to a hostname and a port

Parameters
hostnameThe ip you want to connect
portThe port belonging to the hostname you want to connect

Implements Babel::ITCPConnection< RFCCodes >.

◆ disconnect()

void Babel::QtTCPConnection::disconnect ( )
overridevirtual

disconnect the connection

Implements Babel::ITCPConnection< RFCCodes >.

◆ getId()

uint64_t Babel::QtTCPConnection::getId ( ) const
override

Get the id of this connection.

◆ getPeerIp()

std::string Babel::QtTCPConnection::getPeerIp ( ) const
override

Get the connected pair address.

◆ getPeerPort()

uint16_t Babel::QtTCPConnection::getPeerPort ( ) const
override

get the connected pair port

◆ isConnected()

bool Babel::QtTCPConnection::isConnected ( ) const
override

Tells if the connection is up.

◆ readForMessages()

void Babel::QtTCPConnection::readForMessages ( )
overridevirtual

listen for new messages

Implements Babel::ITCPConnection< RFCCodes >.

◆ readMessage()

void Babel::QtTCPConnection::readMessage ( )
private

Read a Message<T> from the socket when a message is read _callbackMessageReceived is called.

◆ send()

void Babel::QtTCPConnection::send ( Message< RFCCodes message)
overridevirtual

Send the message.

Parameters
messageThe message to send

Implements Babel::ITCPConnection< RFCCodes >.

◆ setCallbackOnMessage()

void Babel::QtTCPConnection::setCallbackOnMessage ( std::function< void(Message< RFCCodes >)>  callMessageReceived)
overridevirtual

Called when we received a message.

Implements Babel::ITCPConnection< RFCCodes >.

◆ setId()

void Babel::QtTCPConnection::setId ( uint64_t  id)
overridevirtual

set the id of the connection

Implements Babel::ITCPConnection< RFCCodes >.

Member Data Documentation

◆ _bytesRead

uint64_t Babel::QtTCPConnection::_bytesRead
private

used to track how much bytes of a message had been read

◆ _callbackMessageReceived

std::function<void(Message<RFCCodes>)> Babel::QtTCPConnection::_callbackMessageReceived
private

The function called when a message has been fully received.

◆ _connectionId

uint64_t Babel::QtTCPConnection::_connectionId
private

id used to identify the connection

◆ _messagesOut

TSQueue<Message<RFCCodes> > Babel::QtTCPConnection::_messagesOut
private

All the messages that need to be sent.

◆ _socket

QTcpSocket* Babel::QtTCPConnection::_socket
private

The socket internally used.

◆ _tmpMessage

Message<RFCCodes> Babel::QtTCPConnection::_tmpMessage
private

Message used when reading a message.


The documentation for this class was generated from the following files: