FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
fast::QueuedDataChannel Class Reference

#include <QueuedDataChannel.hpp>

+ Inheritance diagram for fast::QueuedDataChannel:
+ Collaboration diagram for fast::QueuedDataChannel:

Public Member Functions

void addFrame (DataObject::pointer data) override
 
int getSize () override
 
void setMaximumNumberOfFrames (uint frames) override
 
void stop () override
 
bool hasCurrentData () override
 
DataObject::pointer getFrame () override
 
- Public Member Functions inherited from fast::DataChannel
template<class T = DataObject>
std::shared_ptr< T > getNextFrame ()
 
std::shared_ptr< ProcessObjectgetProcessObject () const
 
void setProcessObject (std::shared_ptr< ProcessObject > po)
 
template<>
FAST_EXPORT std::shared_ptr< DataObjectgetNextFrame ()
 
- Public Member Functions inherited from fast::Object
 Object ()
 
virtual ~Object ()
 
ReportergetReporter ()
 

Protected Member Functions

DataObject::pointer getNextDataFrame () override
 
 QueuedDataChannel ()
 
- Protected Member Functions inherited from fast::DataChannel
 DataChannel ()
 
- Protected Member Functions inherited from fast::Object
ReporterreportError ()
 
ReporterreportWarning ()
 
ReporterreportInfo ()
 
ReporterEnd reportEnd () const
 

Protected Attributes

std::queue< std::shared_ptr< DataObject > > m_queue
 
uint mMaximumNumberOfFrames
 
std::unique_ptr< LightweightSemaphorem_fillCount
 
std::unique_ptr< LightweightSemaphorem_emptyCount
 
- Protected Attributes inherited from fast::DataChannel
bool m_stop
 
std::mutex m_mutex
 
std::shared_ptr< ProcessObjectm_processObject
 
- Protected Attributes inherited from fast::Object
std::weak_ptr< ObjectmPtr
 

Additional Inherited Members

- Public Types inherited from fast::DataChannel
typedef std::shared_ptr< DataChannelpointer
 
- Public Types inherited from fast::Object
typedef std::shared_ptr< Objectpointer
 
- Static Public Member Functions inherited from fast::Object
static std::string getStaticNameOfClass ()
 

Detailed Description

This queued data channel implements the producser-consumer task using a lightweight semaphore. It is used on the output data channelsl of streamers when streaming mode is PROCESS_ALL_FRAMES

Constructor & Destructor Documentation

◆ QueuedDataChannel()

fast::QueuedDataChannel::QueuedDataChannel ( )
protected

Member Function Documentation

◆ addFrame()

void fast::QueuedDataChannel::addFrame ( DataObject::pointer  data)
overridevirtual

Add frame to the data channel. This call may block if the buffer is full.

Implements fast::DataChannel.

◆ getFrame()

DataObject::pointer fast::QueuedDataChannel::getFrame ( )
overridevirtual

Get current frame, throws if current frame is not available.

Implements fast::DataChannel.

◆ getNextDataFrame()

DataObject::pointer fast::QueuedDataChannel::getNextDataFrame ( )
overrideprotectedvirtual

Implements fast::DataChannel.

◆ getSize()

int fast::QueuedDataChannel::getSize ( )
overridevirtual
Returns
the number of frames stored in this DataChannel

Implements fast::DataChannel.

◆ hasCurrentData()

bool fast::QueuedDataChannel::hasCurrentData ( )
overridevirtual

Implements fast::DataChannel.

◆ setMaximumNumberOfFrames()

void fast::QueuedDataChannel::setMaximumNumberOfFrames ( uint  frames)
overridevirtual

Set the maximum nr of frames that can be stored in this data channel

Implements fast::DataChannel.

◆ stop()

void fast::QueuedDataChannel::stop ( )
overridevirtual

This will unblock if this DataChannel is currently blocking. Used to stop a pipeline.

Implements fast::DataChannel.

Member Data Documentation

◆ m_emptyCount

std::unique_ptr<LightweightSemaphore> fast::QueuedDataChannel::m_emptyCount
protected

◆ m_fillCount

std::unique_ptr<LightweightSemaphore> fast::QueuedDataChannel::m_fillCount
protected

◆ m_queue

std::queue<std::shared_ptr<DataObject> > fast::QueuedDataChannel::m_queue
protected

◆ mMaximumNumberOfFrames

uint fast::QueuedDataChannel::mMaximumNumberOfFrames
protected

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