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

#include <hbufferedwriter.h>

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

Public Member Functions

 HBufferedWriter (HWriterConsumer< T > *consumer, size_t blocksize, int reserved=DEFAULT_BLOCKS_RESERVED, bool enabled=true)
 
 HBufferedWriter (HWriter< T > *writer, size_t blocksize, int reserved=DEFAULT_BLOCKS_RESERVED, bool enabled=true)
 
 ~HBufferedWriter ()
 
int Write (T *src, size_t blocksize)
 
bool Start ()
 
bool Stop ()
 
bool Command (HCommand *command)
 
void SetWriter (HWriter< T > *writer)
 
void Flush ()
 
int Reserved ()
 
int Used ()
 
bool Enabled ()
 
- Public Member Functions inherited from HWriter< T >
virtual ~HWriter ()=default
 
HWriter< T > * Writer ()
 
- Public Member Functions inherited from HObject
 HObject ()
 
- Public Member Functions inherited from HWriterConsumer< T >
HWriterConsumer< T > * Consumer ()
 

Detailed Description

template<class T>
class HBufferedWriter< T >

Buffer write operations if the downstream writer is slow or can pause randomly

Constructor & Destructor Documentation

◆ HBufferedWriter() [1/2]

template<class T >
HBufferedWriter< T >::HBufferedWriter ( HWriterConsumer< T > *  consumer,
size_t  blocksize,
int  reserved = DEFAULT_BLOCKS_RESERVED,
bool  enabled = true 
)
inline

Create a new buffered writer with a preset enabled/disabled state and with a specific reserved buffer size (in blocks)

◆ HBufferedWriter() [2/2]

template<class T >
HBufferedWriter< T >::HBufferedWriter ( HWriter< T > *  writer,
size_t  blocksize,
int  reserved = DEFAULT_BLOCKS_RESERVED,
bool  enabled = true 
)
inline

Create a new buffered writer with a preset enabled/disabled state and with a specific reserved buffer size (in blocks)

◆ ~HBufferedWriter()

template<class T >
HBufferedWriter< T >::~HBufferedWriter ( )
inline

Delete a buffered writer

Member Function Documentation

◆ Command()

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

Receive, handle and propagate command

Returns: True if the command was executed correctly False otherwise. Errors is written to the error log

Implements HWriter< T >.

◆ Enabled()

template<class T >
bool HBufferedWriter< T >::Enabled ( )
inline

Returns true if buffering is enabled, otherwise false

◆ Flush()

template<class T >
void HBufferedWriter< T >::Flush ( )
inline

Write all buffered blocks before returning

◆ Reserved()

template<class T >
int HBufferedWriter< T >::Reserved ( )
inline

Get the number of blocks currently reserved in the buffer

◆ SetWriter()

template<class T >
void HBufferedWriter< T >::SetWriter ( HWriter< T > *  writer)
inlinevirtual

Set the downstream writer

Implements HWriterConsumer< T >.

◆ Start()

template<class T >
bool HBufferedWriter< T >::Start ( )
inlinevirtual

Initialize before first write

Reimplemented from HWriter< T >.

◆ Stop()

template<class T >
bool HBufferedWriter< T >::Stop ( )
inlinevirtual

Clean after last write

Reimplemented from HWriter< T >.

◆ Used()

template<class T >
int HBufferedWriter< T >::Used ( )
inline

Get the number of blocks currently stored in the buffer. The buffer is not locked while fetching the number of blocks, so the count may have changed upon return

◆ Write()

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

Write a block of samples

Implements HWriter< T >.


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