Class FelixInputBufferInterface

Class Documentation

class FelixInputBufferInterface

Public Functions

virtual ~FelixInputBufferInterface() = default
virtual std::vector<enabled_elink_t> get_enabled_elinks() = 0
Returns:

vector of enabled e-links for the device and DMA buffer passed in the contructor. Each e-link is pair contanining the fid and the local e-link number.

virtual block_spans get_available_blocks(uint64_t processed_blocks) noexcept = 0
Parameters:

processed_blocks – is used to determine where to count blocks from. This argument allows the support of multiple readers. The function does not access contended resources.

Returns:

the blocks available to read in two std::spans representing the two segments of the circular DMA buffer.

virtual void set_read_ptr_blocks(uint64_t processed_blocks) noexcept = 0

set the read pointer to a new block index.

firmware will not be allowed to write over the block pointed at by the index. The function is NOT thread-safe.