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

#include <rs.h>

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

Public Member Functions

 RSDecoder (uint32_t k, uint32_t n, uint32_t seq_offset=0)
 
void consumeSource (const fec::buffer &packet, uint32_t i, uint32_t offset=0)
 
void consumeRepair (const fec::buffer &packet, uint32_t offset=0)
 
void onDataPacket (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/repair symbols and it provides the original source symbols through the fec_callback_

Member Function Documentation

◆ clear()

void transport::protocol::fec::RSDecoder::clear ( )
inlineoverridevirtual

Clear decoder to reuse

Reimplemented from transport::protocol::fec::rs.

◆ consumeRepair()

void transport::protocol::fec::RSDecoder::consumeRepair ( const fec::buffer &  packet,
uint32_t  offset = 0 
)

Consume repair symbol

◆ consumeSource()

void transport::protocol::fec::RSDecoder::consumeSource ( const fec::buffer &  packet,
uint32_t  i,
uint32_t  offset = 0 
)

Consume source symbol

◆ onDataPacket()

void transport::protocol::fec::RSDecoder::onDataPacket ( core::ContentObject content_object,
uint32_t  offset 
)
overridevirtual

Consumers will call this function when they receive a data packet

Implements transport::protocol::fec::ConsumerFEC.


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