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

Interface of an output stream of samples. More...

#include <SampleOutput.h>

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

Public Member Functions

virtual ~SampleOutput ()
 
virtual SampleOutputgetOriginal () const =0
 Get pointer to SampleOutput that was cloned.
 
virtual void setName (const std::string &val)=0
 
virtual const std::string & getName () const =0
 
virtual bool isRaw () const =0
 
virtual void addRequestedSampleTag (SampleTag *tag)=0
 Some SampleOutputs don't send out all the Samples that they receive.
 
virtual std::list< const SampleTag * > getRequestedSampleTags () const =0
 
virtual void addSourceSampleTag (const SampleTag *tag)=0
 Some SampleOutputs like to be informed of what SampleTags they will be receiving from their SampleSources before they make a connection.
 
virtual void addSourceSampleTags (const std::list< const SampleTag * > &tags)=0
 
virtual std::list< const SampleTag * > getSourceSampleTags () const =0
 
virtual void requestConnection (SampleConnectionRequester *)=0
 Request a connection, of this SampleOutput, but don't wait for it.
 
virtual int getReconnectDelaySecs () const =0
 Derived classes implement this to indicate whether a connection should be requested again if one fails.
 
virtual void setReconnectDelaySecs (int val)=0
 
virtual int getFd () const =0
 
virtual IOChannelgetIOChannel () const =0
 
virtual size_t write (const void *buf, size_t len)=0
 Plain raw write, typically only used to write an initial header.
 
virtual void close ()=0
 
virtual void setHeaderSource (HeaderSource *val)=0
 
virtual void setDSMConfig (const DSMConfig *val)=0
 
virtual const DSMConfiggetDSMConfig () const =0
 
virtual void setLatency (float val)=0
 
virtual float getLatency () const =0
 
virtual bool receive (const Sample *s)=0
 Method called to pass a sample to this client.
 
virtual void flush ()=0
 Ask that this SampleClient send out any buffered Samples that it may be holding.
 
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 ()
 

Protected Member Functions

virtual SampleOutputclone (IOChannel *iochannel)=0
 

Static Private Attributes

static XMLChnamespaceURI = 0
 

Detailed Description

Interface of an output stream of samples.

Constructor & Destructor Documentation

◆ ~SampleOutput()

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

Member Function Documentation

◆ addRequestedSampleTag()

virtual void nidas::core::SampleOutput::addRequestedSampleTag ( SampleTag * tag)
pure virtual

Some SampleOutputs don't send out all the Samples that they receive.

At configuration time, one can use this method to request the SampleTags that should be output from a SampleOutput. SampleOutput will own the pointer.

Exceptions
nidas::util::InvalidParameterException

Implemented in nidas::dynld::raf::CVIOutput, and nidas::core::SampleOutputBase.

◆ addSourceSampleTag()

virtual void nidas::core::SampleOutput::addSourceSampleTag ( const SampleTag * tag)
pure virtual

Some SampleOutputs like to be informed of what SampleTags they will be receiving from their SampleSources before they make a connection.

Users of SampleOutputs should call this method before calling requestConnection().

Exceptions
nidas::util::InvalidParameterException

Implemented in nidas::core::SampleOutputBase.

◆ addSourceSampleTags()

virtual void nidas::core::SampleOutput::addSourceSampleTags ( const std::list< const SampleTag * > & tags)
pure virtual

◆ clone()

virtual SampleOutput * nidas::core::SampleOutput::clone ( IOChannel * iochannel)
protectedpure virtual

◆ close()

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

◆ connected()

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

◆ flush()

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

◆ fromDOMElement()

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

◆ getDSMConfig()

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

◆ getFd()

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

◆ getIOChannel()

virtual IOChannel * nidas::core::SampleOutput::getIOChannel ( ) const
pure virtual

◆ getLatency()

virtual float nidas::core::SampleOutput::getLatency ( ) const
pure virtual

◆ getName()

virtual const std::string & nidas::core::SampleOutput::getName ( ) const
pure virtual

◆ getNamespaceURI()

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

◆ getOriginal()

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

◆ getReconnectDelaySecs()

virtual int nidas::core::SampleOutput::getReconnectDelaySecs ( ) const
pure virtual

Derived classes implement this to indicate whether a connection should be requested again if one fails.

@ return: -1 do not resubmit a connection request >=0 number of seconds to wait before submitting a request (0 means ASAP)

Implemented in nidas::core::SampleOutputBase.

Referenced by nidas::core::SampleOutputRequestThread::run().

◆ getRequestedSampleTags()

virtual std::list< const SampleTag * > nidas::core::SampleOutput::getRequestedSampleTags ( ) const
pure virtual

◆ getSourceSampleTags()

virtual std::list< const SampleTag * > nidas::core::SampleOutput::getSourceSampleTags ( ) const
pure virtual

◆ isRaw()

virtual bool nidas::core::SampleOutput::isRaw ( ) const
pure virtual

◆ receive()

virtual bool nidas::core::SampleClient::receive ( const Sample * s)
pure virtualinherited

Method called to pass a sample to this client.

This method is typically called by a SampleSource for each of its SampleClients when it has a sample ready. Returns true: success false: sample rejected. This is meant to signal a warning-type situation - like a socket not being available temporarily. True errors will be thrown as an IOException.

Exceptions

)

Implemented in nidas::dynld::UDPSampleOutput, nidas::dynld::raf::SyncRecordSource, TestClient, nidas::core::DSMSensor, nidas::core::NearestResampler, nidas::core::NearestResamplerAtRate, nidas::core::RemoteSerialConnection, nidas::core::SampleAverager, nidas::core::SampleBuffer, nidas::core::SampleOutputBase, nidas::core::SampleSorter, nidas::dynld::raf::CVIProcessor, nidas::dynld::raf::SyncRecordReader, nidas::dynld::SampleOutputStream, nidas::dynld::StatisticsCruncher, DumpClient, SampleDispatcher, DataStats, DumpClient, nidas::dynld::AsciiOutput, and nidas::dynld::raf::CVIOutput.

◆ requestConnection()

virtual void nidas::core::SampleOutput::requestConnection ( SampleConnectionRequester * )
pure virtual

Request a connection, of this SampleOutput, but don't wait for it.

The SampleConnectionRequester will be notified via a call back to SampleConnectionRequester::connected(SampleOutput*,SampleOutput*) where the first SampleOutput points to the SampleOutput of the original request, and the second is often a new instance of a SampleOutput with a new IOChannel connection. Or the two pointers may point to the same SampleOutput.

Exceptions
nidas::util::IOException

Implemented in nidas::core::SampleOutputBase, nidas::dynld::AsciiOutput, and nidas::dynld::raf::CVIOutput.

Referenced by StatsProcess::run(), and nidas::core::SampleOutputRequestThread::run().

◆ setDSMConfig()

virtual void nidas::core::SampleOutput::setDSMConfig ( const DSMConfig * val)
pure virtual

◆ setHeaderSource()

virtual void nidas::core::SampleOutput::setHeaderSource ( HeaderSource * val)
pure virtual

◆ setLatency()

virtual void nidas::core::SampleOutput::setLatency ( float val)
pure virtual

◆ setName()

virtual void nidas::core::SampleOutput::setName ( const std::string & val)
pure virtual

◆ setReconnectDelaySecs()

virtual void nidas::core::SampleOutput::setReconnectDelaySecs ( int 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.

◆ write()

virtual size_t nidas::core::SampleOutput::write ( const void * buf,
size_t len )
pure virtual

Plain raw write, typically only used to write an initial header.

Exceptions
nidas::util::IOException

Implemented in nidas::core::SampleOutputBase.

Referenced by nidas::core::SampleInputHeader::write().

Member Data Documentation

◆ namespaceURI

XMLCh * DOMable::namespaceURI = 0
staticprivateinherited

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