HARDT - The Ham Radio DSP Toolkit
Public Member Functions | List of all members
HCollector< T > Class Template Reference

#include <hcollector.h>

Inheritance diagram for HCollector< T >:
Inheritance graph
[legend]
Collaboration diagram for HCollector< T >:
Collaboration graph
[legend]

Public Member Functions

 HCollector (HWriter< T > *writer, size_t blocksizeIn, size_t blocksizeOut, HProbe< T > *probe=nullptr)
 
 HCollector (HWriterConsumer< T > *consumer, size_t blocksizeIn, size_t blocksizeOut, HProbe< T > *probe=nullptr)
 
 HCollector (HReader< T > *reader, size_t blocksizeIn, size_t blocksizeOut, HProbe< T > *probe=nullptr)
 
void SetWriter (HWriter< T > *writer)
 
 ~HCollector ()
 
int Write (T *src, size_t blocksize)
 
int Read (T *dest, size_t blocksize)
 
bool Start ()
 
bool Stop ()
 
bool Command (HCommand *command)
 
- Public Member Functions inherited from HReader< T >
virtual ~HReader ()=default
 
HReader< T > * Reader ()
 
- Public Member Functions inherited from HObject
 HObject ()
 
- Public Member Functions inherited from HWriter< T >
virtual ~HWriter ()=default
 
HWriter< T > * Writer ()
 
- Public Member Functions inherited from HWriterConsumer< T >
HWriterConsumer< T > * Consumer ()
 

Detailed Description

template<class T>
class HCollector< T >

Implements a component that collects blocks of samples untill a requested size has been reached. All collected samples are then written or returned to the upstream reader.

Usefull if you are using a converter that lowers the blocksize, but would prefer to use the same blocksize through the entire chain.

Constructor & Destructor Documentation

◆ HCollector() [1/3]

template<class T >
HCollector< T >::HCollector ( HWriter< T > *  writer,
size_t  blocksizeIn,
size_t  blocksizeOut,
HProbe< T > *  probe = nullptr 
)

Construct a new HCollector that handle writers

Parameters
writerThe downstream writer
blocksizeInInput blocksize
blocksizeOutOutput blocksize
probeProbe

◆ HCollector() [2/3]

template<class T >
HCollector< T >::HCollector ( HWriterConsumer< T > *  consumer,
size_t  blocksizeIn,
size_t  blocksizeOut,
HProbe< T > *  probe = nullptr 
)

Construct a new HCollector that handle writer consumers

Parameters
consumerThe upstream consumer
blocksizeInInput blocksize
blocksizeOutOutput blocksize
probeProbe

◆ HCollector() [3/3]

template<class T >
HCollector< T >::HCollector ( HReader< T > *  reader,
size_t  blocksizeIn,
size_t  blocksizeOut,
HProbe< T > *  probe = nullptr 
)

Construct a new HCollector that handle readers

Parameters
readerThe upstream reader
blocksizeInInput blocksize
blocksizeOutOutput blocksize
probeProbe

◆ ~HCollector()

template<class T >
HCollector< T >::~HCollector

Default destructor

Member Function Documentation

◆ Command()

template<class T >
bool HCollector< T >::Command ( HCommand command)
inlinevirtual

Execute or carry through a command

Parameters
commandThe command

Implements HReader< T >.

◆ Read()

template<class T >
int HCollector< T >::Read ( T *  dest,
size_t  blocksize 
)
virtual

Read a block of samples

Parameters
destDestination buffer
blocksizeNumber of samples to read
Returns
The number of samples read

Implements HReader< T >.

◆ SetWriter()

template<class T >
void HCollector< T >::SetWriter ( HWriter< T > *  writer)
virtual

◆ Start()

template<class T >
bool HCollector< T >::Start
virtual

Call Start() on up- or downstream component

Reimplemented from HReader< T >.

◆ Stop()

template<class T >
bool HCollector< T >::Stop
virtual

Call Stop() on up- or downstream component

Reimplemented from HReader< T >.

◆ Write()

template<class T >
int HCollector< T >::Write ( T *  src,
size_t  blocksize 
)
virtual

Write a block of samples

Parameters
srcSource buffer
blocksizeNumber of samples in the buffer
Returns
Number of samples written

Implements HWriter< T >.


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