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

Public Member Functions

 TransportProtocol (implementation::ConsumerSocket *icn_socket, Indexer *indexer, Reassembly *reassembly)
 
TRANSPORT_ALWAYS_INLINE bool isRunning ()
 
virtual int start ()
 
virtual void stop ()
 
virtual void resume ()
 
virtual std::size_t transportHeaderLength ()
 Get the size of any additional header added by the specific transport implementation. More...
 
virtual void scheduleNextInterests ()=0
 
virtual void onContentReassembled (std::error_code ec)
 
virtual void onPacketDropped (Interest &interest, ContentObject &content_object, const std::error_code &ec) override=0
 
virtual void onReassemblyFailed (std::uint32_t missing_segment) override=0
 

Protected Member Functions

virtual void onContentObjectReceived (Interest &i, ContentObject &c, std::error_code &ec)=0
 
virtual void onInterestTimeout (Interest::Ptr &i, const Name &n)=0
 
virtual void sendInterest (const Name &interest_name, std::array< uint32_t, MAX_AGGREGATED_INTEREST > *additional_suffixes=nullptr, uint32_t len=0)
 
template<typename FECHandler , typename AllocatorHandler >
void enableFEC (FECHandler &&fec_handler, AllocatorHandler &&allocator_handler)
 
virtual void reset ()
 

Protected Attributes

implementation::ConsumerSocketsocket_
 
std::unique_ptr< Indexerindexer_verifier_
 
std::unique_ptr< Reassemblyreassembly_
 
std::unique_ptr< fec::ConsumerFECfec_decoder_
 
std::shared_ptr< core::Portalportal_
 
std::atomic< bool > is_first_
 
interface::TransportStatisticsstats_
 
interface::ConsumerInterestCallback * on_interest_retransmission_
 
interface::ConsumerInterestCallback * on_interest_output_
 
interface::ConsumerInterestCallback * on_interest_timeout_
 
interface::ConsumerInterestCallback * on_interest_satisfied_
 
interface::ConsumerContentObjectCallback * on_content_object_input_
 
interface::ConsumerContentObjectCallback * on_content_object_
 
interface::ConsumerTimerCallback * stats_summary_
 
ReadCallbackon_payload_
 
bool is_async_
 
fec::FECType fec_type_
 

Friends

class ManifestIndexManager
 

Member Function Documentation

◆ transportHeaderLength()

virtual std::size_t transport::protocol::TransportProtocol::transportHeaderLength ( )
inlinevirtual

Get the size of any additional header added by the specific transport implementation.

Returns
The header length in bytes.

Reimplemented in transport::protocol::rtc::RTCTransportProtocol.


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