FpgaManager
Software API Documentation
IStream Struct Referenceabstract

Interface definition of the FPGA Manager streaming interface More...

#include <FpgaManager_Interfaces.h>

Classes

struct  TransferDetails
 Asynchronous Transfer details More...
 

Public Types

enum  TransferResult { Success, Failed }
 Asynchronous Transfer result More...
 
typedef std::function< void(const TransferDetails &)> CompletionCallback_t
 Callback to be called if a transfer was completed More...
 

Public Member Functions

virtual ~IStream ()=default
 Destructor More...
 
virtual std::size_t Read (uint8_t *buffer_p, std::size_t bufSize)=0
 Read data from stream into buffer More...
 
template<std::size_t N>
std::size_t Read (uint8_t(&buffer)[N])
 Read data from stream into buffer More...
 
template<std::size_t N>
std::size_t Read (std::array< uint8_t, N > &array)
 Read data from stream into buffer More...
 
virtual std::size_t Write (const uint8_t *buffer_p, std::size_t bufSize)=0
 Write data from buffer to stream More...
 
template<std::size_t N>
std::size_t Write (const uint8_t(&buffer)[N])
 Write data from buffer to stream More...
 
template<std::size_t N>
std::size_t Write (const std::array< uint8_t, N > &array)
 Write data from buffer to stream More...
 
virtual void ReadAsync (uint8_t *buffer_p, std::size_t bufSize, CompletionCallback_t cb)=0
 Read data from stream into buffer asynchronously (non-blocking) More...
 
virtual void WriteAsync (const uint8_t *buffer_p, std::size_t bufSize, CompletionCallback_t cb)=0
 Write data from buffer to stream asynchronously (non-blocking) More...
 
virtual void Flush ()=0
 Flushes the inbound buffer More...
 

Detailed Description

Interface definition of the FPGA Manager streaming interface

Member Typedef Documentation

◆ CompletionCallback_t

typedef std::function<void(const TransferDetails&)> CompletionCallback_t

Callback to be called if a transfer was completed

Member Enumeration Documentation

◆ TransferResult

enum TransferResult
strong

Asynchronous Transfer result

Enumerator
Success 

Transfer succeeded

Failed 

Transfer has failed

Constructor & Destructor Documentation

◆ ~IStream()

virtual ~IStream ( )
virtualdefault

Destructor

Member Function Documentation

◆ Flush()

virtual void Flush ( )
pure virtual

Flushes the inbound buffer

◆ Read() [1/3]

virtual std::size_t Read ( uint8_t *  buffer_p,
std::size_t  bufSize 
)
pure virtual

Read data from stream into buffer

Parameters
buffer_pBuffer where the data is copied to
bufSizeLength of transfer in bytes
Returns
Number of bytes that have been transferred

◆ Read() [2/3]

std::size_t Read ( uint8_t(&)  buffer[N])
inline

Read data from stream into buffer

Template Parameters
NLength of transfer in bytes (can be deduced)
Parameters
bufferBuffer where the data is copied to
Returns
Number of bytes that have been transferred

◆ Read() [3/3]

std::size_t Read ( std::array< uint8_t, N > &  array)
inline

Read data from stream into buffer

Template Parameters
NLength of transfer in bytes (can be deduced)
Parameters
arrayArray where the data is copied to
Returns
Number of bytes that have been transferred

◆ ReadAsync()

virtual void ReadAsync ( uint8_t *  buffer_p,
std::size_t  bufSize,
CompletionCallback_t  cb 
)
pure virtual

Read data from stream into buffer asynchronously (non-blocking)

Parameters
buffer_pBuffer where the data is copied to
bufSizeLength of transfer in bytes
cbTransfer completion callback

◆ Write() [1/3]

virtual std::size_t Write ( const uint8_t *  buffer_p,
std::size_t  bufSize 
)
pure virtual

Write data from buffer to stream

Parameters
buffer_pBuffer where the data is copied from
bufSizeLength of transfer in bytes
Returns
Number of bytes that have been transferred

◆ Write() [2/3]

std::size_t Write ( const uint8_t(&)  buffer[N])
inline

Write data from buffer to stream

Template Parameters
NLength of transfer in bytes (can be deduced)
Parameters
bufferBuffer where the data is copied from
Returns
Number of bytes that have been transferred

◆ Write() [3/3]

std::size_t Write ( const std::array< uint8_t, N > &  array)
inline

Write data from buffer to stream

Template Parameters
NLength of transfer in bytes (can be deduced)
Parameters
arrayArray where the data is copied from
Returns
Number of bytes that have been transferred

◆ WriteAsync()

virtual void WriteAsync ( const uint8_t *  buffer_p,
std::size_t  bufSize,
CompletionCallback_t  cb 
)
pure virtual

Write data from buffer to stream asynchronously (non-blocking)

Parameters
buffer_pBuffer where the data is copied from
bufSizeLength of transfer in bytes
cbTransfer completion callback

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