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

Public Member Functions

 ProductionProtocol (implementation::ProducerSocket *icn_socket)
 
bool isRunning ()
 
virtual int start ()
 
virtual void stop ()
 
virtual void produce (ContentObject &content_object)
 
virtual uint32_t produceStream (const Name &content_name, std::unique_ptr< utils::MemBuf > &&buffer, bool is_last=true, uint32_t start_offset=0)=0
 
virtual uint32_t produceStream (const Name &content_name, const uint8_t *buffer, size_t buffer_size, bool is_last=true, uint32_t start_offset=0)=0
 
virtual uint32_t produceDatagram (const Name &content_name, std::unique_ptr< utils::MemBuf > &&buffer)=0
 
virtual uint32_t produceDatagram (const Name &content_name, const uint8_t *buffer, size_t buffer_size)=0
 
void setOutputBufferSize (std::size_t size)
 
std::size_t getOutputBufferSize ()
 
virtual void registerNamespaceWithNetwork (const Prefix &producer_namespace)
 
const std::list< Prefix > & getNamespaces () const
 

Protected Member Functions

virtual void onInterest (core::Interest &i) override=0
 
virtual void onError (std::error_code ec) override
 
template<typename FECHandler , typename AllocatorHandler >
void enableFEC (FECHandler &&fec_handler, AllocatorHandler &&allocator_handler)
 

Protected Attributes

implementation::ProducerSocketsocket_
 
std::vector< utils::EventThreadio_threads_
 
std::thread listening_thread_
 
std::shared_ptr< Portalportal_
 
std::atomic< bool > is_running_
 
interface::ProductionStatisticsstats_
 
std::unique_ptr< fec::ProducerFECfec_encoder_
 
interface::ProducerInterestCallback * on_interest_input_
 
interface::ProducerInterestCallback * on_interest_dropped_input_buffer_
 
interface::ProducerInterestCallback * on_interest_inserted_input_buffer_
 
interface::ProducerInterestCallback * on_interest_satisfied_output_buffer_
 
interface::ProducerInterestCallback * on_interest_process_
 
interface::ProducerContentObjectCallback * on_new_segment_
 
interface::ProducerContentObjectCallback * on_content_object_to_sign_
 
interface::ProducerContentObjectCallback * on_content_object_in_output_buffer_
 
interface::ProducerContentObjectCallback * on_content_object_output_
 
interface::ProducerContentObjectCallback * on_content_object_evicted_from_output_buffer_
 
interface::ProducerContentCallback * on_content_produced_
 
utils::ContentStore output_buffer_
 
std::list< Prefixserved_namespaces_
 
std::shared_ptr< auth::Signersigner_
 
bool making_manifest_
 
bool is_async_
 
fec::FECType fec_type_
 

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