Hybrid ICN (hICN) plugin  v21.06-rc0-4-g18fa668
Public Member Functions | List of all members
transport::protocol::fec::RSEncoder Class Reference

#include <rs.h>

Inheritance diagram for transport::protocol::fec::RSEncoder:
Inheritance graph
[legend]
Collaboration diagram for transport::protocol::fec::RSEncoder:
Collaboration graph
[legend]

Public Member Functions

 RSEncoder (uint32_t k, uint32_t n, uint32_t seq_offset=0)
 
void consume (const fec::buffer &packet, uint32_t index, uint32_t offset=0)
 
void onPacketProduced (core::ContentObject &content_object, uint32_t offset) override
 
std::size_t getFecHeaderSize () override
 Get the fec header size, if added to source packets.
 
void clear () override
 
void reset () override
 
- Public Member Functions inherited from transport::protocol::fec::rs
 rs (uint32_t k, uint32_t n, uint32_t seq_offset=0)
 
bool isSymbol (uint32_t index)
 
- Public Member Functions inherited from transport::protocol::fec::FECBase
template<typename Handler >
void setFECCallback (Handler &&callback)
 
template<typename Handler >
void setBufferCallback (Handler &&buffer_callback)
 

Additional Inherited Members

- Public Types inherited from transport::protocol::fec::FECBase
using PacketsReady = std::function< void(BufferArray &)>
 
using BufferRequested = std::function< buffer(std::size_t size)>
 
- Protected Types inherited from transport::protocol::fec::rs
using PacketsReady = std::function< void(std::vector< buffer > &)>
 
using SNBase = std::uint32_t
 
using SourceBlocks = std::unordered_map< SNBase, BlockCode >
 
using Codes = std::unordered_map< Code, Matrix, CodeHasher >
 
- Protected Member Functions inherited from transport::protocol::fec::rs
bool processed (SNBase seq_base)
 
void setProcessed (SNBase seq_base)
 
- Protected Attributes inherited from transport::protocol::fec::rs
std::uint32_t k_
 
std::uint32_t n_
 
std::uint32_t seq_offset_
 
std::unordered_set< SNBaseprocessed_source_blocks_
 
- Protected Attributes inherited from transport::protocol::fec::FECBase
PacketsReady fec_callback_ {0}
 
BufferRequested buffer_callback_ {0}
 
- Static Protected Attributes inherited from transport::protocol::fec::rs
static Codes codes_
 

Detailed Description

The reed-solomon encoder. It is feeded with source symbols and it provide repair-symbols through the fec_callback_

Member Function Documentation

◆ consume()

void transport::protocol::fec::RSEncoder::consume ( const fec::buffer &  packet,
uint32_t  index,
uint32_t  offset = 0 
)

Always consume source symbols.

◆ onPacketProduced()

void transport::protocol::fec::RSEncoder::onPacketProduced ( core::ContentObject content_object,
uint32_t  offset 
)
overridevirtual

Producers will call this function upon production of a new packet.

Implements transport::protocol::fec::ProducerFEC.


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