Hybrid ICN (hICN) plugin  v21.06-rc0-4-g18fa668
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
transport::core::Connector Class Referenceabstract
Inheritance diagram for transport::core::Connector:
Inheritance graph
[legend]
Collaboration diagram for transport::core::Connector:
Collaboration graph
[legend]

Public Types

enum  Type : uint8_t { SOCKET_CONNECTOR, MEMIF_CONNECTOR, LOOPBACK_CONNECTOR }
 
enum  State : std::uint8_t { CLOSED, CONNECTING, CONNECTED }
 
enum  Role : std::uint8_t { CONSUMER, PRODUCER }
 
using Ptr = std::shared_ptr< Connector >
 
using PacketQueue = std::deque< Packet::Ptr >
 
using PacketReceivedCallback = std::function< void(Connector *, utils::MemBuf &, const std::error_code &)>
 
using PacketSentCallback = std::function< void(Connector *, const std::error_code &)>
 
using OnCloseCallback = std::function< void(Connector *)>
 
using OnReconnectCallback = std::function< void(Connector *)>
 
using Id = std::uint64_t
 

Public Member Functions

template<typename ReceiveCallback , typename SentCallback , typename OnClose , typename OnReconnect >
 Connector (ReceiveCallback &&receive_callback, SentCallback &&packet_sent, OnClose &&close_callback, OnReconnect &&on_reconnect)
 
template<typename ReceiveCallback >
void setReceiveCallback (ReceiveCallback &&callback)
 
template<typename SentCallback >
void setSentCallback (SentCallback &&callback)
 
template<typename OnClose >
void setOnCloseCallback (OnClose &&callback)
 
template<typename OnReconnect >
void setReconnectCallback (const OnReconnect &&callback)
 
const PacketReceivedCallback & getReceiveCallback () const
 
const PacketSentCallback & getSentCallback ()
 
const OnCloseCallback & getOnCloseCallback ()
 
const OnReconnectCallback & getOnReconnectCallback ()
 
virtual void send (Packet &packet)=0
 
virtual void send (const uint8_t *packet, std::size_t len)=0
 
virtual void close ()=0
 
virtual State state ()
 
virtual bool isConnected ()
 
void setConnectorId (Id connector_id)
 
Id getConnectorId ()
 
void setConnectorName (std::string connector_name)
 
std::string getConnectorName ()
 
Endpoint getLocalEndpoint ()
 
Endpoint getRemoteEndpoint ()
 
void setRole (Role r)
 
Role getRole ()
 

Static Public Member Functions

static utils::MemBuf::Ptr getPacketFromBuffer (uint8_t *buffer, std::size_t size)
 
static std::pair< uint8_t *, std::size_t > getRawBuffer ()
 

Static Public Attributes

static constexpr std::size_t queue_size = 4096
 
static constexpr std::uint32_t invalid_connector = ~0
 

Protected Member Functions

void sendSuccess (const utils::MemBuf &packet)
 
void receiveSuccess (const utils::MemBuf &packet)
 
void sendFailed ()
 

Protected Attributes

PacketQueue output_buffer_
 
PacketReceivedCallback receive_callback_
 
PacketSentCallback sent_callback_
 
OnCloseCallback on_close_callback_
 
OnReconnectCallback on_reconnect_callback_
 
std::atomic< State > state_
 
Id connector_id_
 
Endpoint local_endpoint_
 
Endpoint remote_endpoint_
 
std::string connector_name_
 
Role role_
 
AtomicConnectorStats stats_
 

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