nidas v1.2.3
Public Member Functions | Static Public Member Functions | Static Private Attributes | List of all members
nidas::core::SampleInput Class Referenceabstract

Interface of an input SampleSource. More...

#include <SampleInput.h>

Inheritance diagram for nidas::core::SampleInput:
Inheritance graph
[legend]

Public Member Functions

virtual ~SampleInput ()
 
virtual std::string getName () const =0
 
virtual void setKeepStats (bool val)=0
 
virtual const DSMConfiggetDSMConfig () const =0
 
virtual void requestConnection (DSMService *)=0
 
virtual SampleInputgetOriginal () const =0
 
virtual bool readSamples ()=0
 Read a buffer of data, serialize the data into samples, and distribute() samples to the receive() method of my SampleClients.
 
virtual SamplereadSample ()=0
 Blocking read of the next sample from the buffer.
 
virtual void close ()=0
 
virtual void setNonBlocking (bool val)=0
 
virtual bool isNonBlocking () const =0
 
virtual int getFd () const =0
 
virtual SampleSourcegetRawSampleSource ()=0
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
 
virtual SampleSourcegetProcessedSampleSource ()=0
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
 
virtual void addSampleTag (const SampleTag *)=0
 Add a SampleTag to this SampleSource.
 
virtual void removeSampleTag (const SampleTag *)=0
 
virtual std::list< const SampleTag * > getSampleTags () const =0
 What SampleTags am I a SampleSource for?
 
virtual SampleTagIterator getSampleTagIterator () const =0
 
virtual void addSampleClient (SampleClient *c)=0
 Add a SampleClient of all Samples to this SampleSource.
 
virtual void removeSampleClient (SampleClient *c)=0
 Remove a SampleClient from this SampleSource.
 
virtual void addSampleClientForTag (SampleClient *c, const SampleTag *)=0
 Add a SampleClient to this SampleSource.
 
virtual void removeSampleClientForTag (SampleClient *c, const SampleTag *)=0
 Remove a SampleClient for a given SampleTag from this SampleSource.
 
virtual int getClientCount () const =0
 How many SampleClients are currently in my list.
 
virtual void flush ()=0
 Request that this SampleSource flush it's samples.
 
virtual const SampleStatsgetSampleStats () const =0
 
virtual IOChannelRequesterconnected (IOChannel *)=0
 
virtual void fromDOMElement (const xercesc::DOMElement *)=0
 Initialize myself from a xercesc::DOMElement.
 
virtual xercesc::DOMElement * toDOMParent (xercesc::DOMElement *parent, bool complete) const
 Create a DOMElement and append it to the parent.
 
virtual xercesc::DOMElement * toDOMElement (xercesc::DOMElement *node, bool complete) const
 Add my content into a DOMElement.
 

Static Public Member Functions

static const XMLChgetNamespaceURI ()
 

Static Private Attributes

static XMLChnamespaceURI = 0
 

Detailed Description

Interface of an input SampleSource.

Typically a SampleInput is reading serialized samples from a socket or file, and then sending them on.

Constructor & Destructor Documentation

◆ ~SampleInput()

virtual nidas::core::SampleInput::~SampleInput ( )
inlinevirtual

Member Function Documentation

◆ addSampleClient()

virtual void nidas::core::SampleSource::addSampleClient ( SampleClient * c)
pure virtualinherited

◆ addSampleClientForTag()

virtual void nidas::core::SampleSource::addSampleClientForTag ( SampleClient * c,
const SampleTag *  )
pure virtualinherited

◆ addSampleTag()

virtual void nidas::core::SampleSource::addSampleTag ( const SampleTag * )
pure virtualinherited

◆ close()

virtual void nidas::core::SampleInput::close ( )
pure virtual

◆ connected()

virtual IOChannelRequester * nidas::core::IOChannelRequester::connected ( IOChannel * )
pure virtualinherited

◆ flush()

virtual void nidas::core::SampleSource::flush ( )
pure virtualinherited

◆ fromDOMElement()

virtual void nidas::core::DOMable::fromDOMElement ( const xercesc::DOMElement * )
pure virtualinherited

◆ getClientCount()

virtual int nidas::core::SampleSource::getClientCount ( ) const
pure virtualinherited

◆ getDSMConfig()

virtual const DSMConfig * nidas::core::SampleInput::getDSMConfig ( ) const
pure virtual

◆ getFd()

virtual int nidas::core::SampleInput::getFd ( ) const
pure virtual

◆ getName()

virtual std::string nidas::core::SampleInput::getName ( ) const
pure virtual

◆ getNamespaceURI()

static const XMLCh * nidas::core::DOMable::getNamespaceURI ( )
inlinestaticinherited

◆ getOriginal()

virtual SampleInput * nidas::core::SampleInput::getOriginal ( ) const
pure virtual

◆ getProcessedSampleSource()

virtual SampleSource * nidas::core::SampleSource::getProcessedSampleSource ( )
pure virtualinherited

◆ getRawSampleSource()

virtual SampleSource * nidas::core::SampleSource::getRawSampleSource ( )
pure virtualinherited

◆ getSampleStats()

virtual const SampleStats & nidas::core::SampleSource::getSampleStats ( ) const
pure virtualinherited

◆ getSampleTagIterator()

virtual SampleTagIterator nidas::core::SampleSource::getSampleTagIterator ( ) const
pure virtualinherited

◆ getSampleTags()

virtual std::list< const SampleTag * > nidas::core::SampleSource::getSampleTags ( ) const
pure virtualinherited

◆ isNonBlocking()

virtual bool nidas::core::SampleInput::isNonBlocking ( ) const
pure virtual

◆ readSample()

virtual Sample * nidas::core::SampleInput::readSample ( )
pure virtual

Blocking read of the next sample from the buffer.

The caller must call freeReference on the sample when they're done with it.

Exceptions
nidas::util::IOException

Implemented in nidas::dynld::SampleInputStream.

◆ readSamples()

virtual bool nidas::core::SampleInput::readSamples ( )
pure virtual

Read a buffer of data, serialize the data into samples, and distribute() samples to the receive() method of my SampleClients.

This will perform only one physical read of the underlying device and so is appropriate to use when a select() has determined that there is data availabe on our file descriptor.

Returns
false: no data available for physical read, likely the result of doing a non-blocking read on an empty file descriptor. true: physical read did not necessarily consume all available data.
Exceptions
nidas::util::IOException

Implemented in nidas::dynld::SampleInputStream.

◆ removeSampleClient()

virtual void nidas::core::SampleSource::removeSampleClient ( SampleClient * c)
pure virtualinherited

◆ removeSampleClientForTag()

virtual void nidas::core::SampleSource::removeSampleClientForTag ( SampleClient * c,
const SampleTag *  )
pure virtualinherited

◆ removeSampleTag()

virtual void nidas::core::SampleSource::removeSampleTag ( const SampleTag * )
pure virtualinherited

◆ requestConnection()

virtual void nidas::core::SampleInput::requestConnection ( DSMService * )
pure virtual

◆ setKeepStats()

virtual void nidas::core::SampleInput::setKeepStats ( bool val)
pure virtual

◆ setNonBlocking()

virtual void nidas::core::SampleInput::setNonBlocking ( bool val)
pure virtual

◆ toDOMElement()

xercesc::DOMElement * DOMable::toDOMElement ( xercesc::DOMElement * node,
bool complete ) const
virtualinherited

◆ toDOMParent()

xercesc::DOMElement * DOMable::toDOMParent ( xercesc::DOMElement * parent,
bool complete ) const
virtualinherited

Create a DOMElement and append it to the parent.

Exceptions
xercesc::DOMException

Reimplemented in nidas::core::DSMConfig, nidas::core::DSMSensor, nidas::core::Project, nidas::core::SampleTag, nidas::core::Site, nidas::core::ServerSocket, and nidas::core::Variable.

Member Data Documentation

◆ namespaceURI

XMLCh * DOMable::namespaceURI = 0
staticprivateinherited

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