nidas  v1.2-1520
Public Member Functions | Static Public Member Functions | Protected Member Functions | 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. More...
 
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 throw (nidas::util::InvalidParameterException)
 Some SampleOutputs don't send out all the Samples that they receive. More...
 
virtual std::list< const
SampleTag * > 
getRequestedSampleTags () const =0
 
virtual void addSourceSampleTag (const SampleTag *tag)=0 throw (nidas::util::InvalidParameterException)
 Some SampleOutputs like to be informed of what SampleTags they will be receiving from their SampleSources before they make a connection. More...
 
virtual void addSourceSampleTags (const std::list< const SampleTag * > &tags)=0 throw (nidas::util::InvalidParameterException)
 
virtual std::list< const
SampleTag * > 
getSourceSampleTags () const =0
 
virtual void requestConnection (SampleConnectionRequester *)=0 throw (nidas::util::IOException)
 Request a connection, of this SampleOutput, but don't wait for it. More...
 
virtual int getReconnectDelaySecs () const =0
 Derived classes implement this to indicate whether a connection should be requested again if one fails. More...
 
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 throw (nidas::util::IOException)
 Plain raw write, typically only used to write an initial header. More...
 
virtual void close ()=0 throw (nidas::util::IOException)
 
virtual void setHeaderSource (HeaderSource *val)=0
 
virtual void setDSMConfig (const DSMConfig *val)=0
 
virtual const DSMConfiggetDSMConfig () const =0
 
virtual void setLatency (float val)=0 throw (nidas::util::InvalidParameterException)
 
virtual float getLatency () const =0
 
virtual bool receive (const Sample *s)=0 throw ()
 Method called to pass a sample to this client. More...
 
virtual void flush ()=0 throw ()
 Ask that this SampleClient send out any buffered Samples that it may be holding. More...
 
virtual IOChannelRequesterconnected (IOChannel *)=0 throw ()
 
virtual void fromDOMElement (const xercesc::DOMElement *)=0 throw (nidas::util::InvalidParameterException)
 Initialize myself from a xercesc::DOMElement. More...
 
virtual xercesc::DOMElement * toDOMParent (xercesc::DOMElement *parent, bool complete) const throw (xercesc::DOMException)
 Create a DOMElement and append it to the parent. More...
 
virtual xercesc::DOMElement * toDOMElement (xercesc::DOMElement *node, bool complete) const throw (xercesc::DOMException)
 Add my content into a DOMElement. More...
 

Static Public Member Functions

static const XMLCh * getNamespaceURI ()
 

Protected Member Functions

virtual SampleOutputclone (IOChannel *iochannel)=0
 

Detailed Description

Interface of an output stream of samples.

Constructor & Destructor Documentation

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

Member Function Documentation

virtual void nidas::core::SampleOutput::addRequestedSampleTag ( SampleTag tag)
throw (nidas::util::InvalidParameterException
)
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.

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

virtual void nidas::core::SampleOutput::addSourceSampleTag ( const SampleTag tag)
throw (nidas::util::InvalidParameterException
)
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().

Implemented in nidas::core::SampleOutputBase, and nidas::dynld::isff::GOESOutput.

virtual void nidas::core::SampleOutput::addSourceSampleTags ( const std::list< const SampleTag * > &  tags)
throw (nidas::util::InvalidParameterException
)
pure virtual
virtual SampleOutput* nidas::core::SampleOutput::clone ( IOChannel iochannel)
protectedpure virtual
virtual void nidas::core::SampleOutput::close ( )
throw (nidas::util::IOException
)
pure virtual
virtual IOChannelRequester* nidas::core::IOChannelRequester::connected ( IOChannel )
throw (
)
pure virtualinherited
virtual void nidas::core::SampleClient::flush ( )
throw (
)
pure virtualinherited
virtual void nidas::core::DOMable::fromDOMElement ( const xercesc::DOMElement *  )
throw (nidas::util::InvalidParameterException
)
pure virtualinherited

Initialize myself from a xercesc::DOMElement.

Implemented in nidas::core::DSMSensor, nidas::dynld::SampleInputStream, nidas::core::CalFile, nidas::core::Variable, nidas::core::ServerSocket, nidas::core::SampleTag, nidas::core::Polynomial, nidas::core::Site, nidas::core::Project, nidas::core::CharacterSensor, nidas::core::Linear, nidas::core::SampleOutputBase, nidas::core::SampleIOProcessor, nidas::core::Socket, nidas::core::DSMConfig, nidas::dynld::isff::GOESXmtr, nidas::core::DatagramSocket, nidas::core::VariableConverter, nidas::core::SerialSensor, nidas::core::McSocket, nidas::core::McSocketUDP, nidas::core::UnixIOChannel, nidas::core::FileSet, nidas::dynld::raf::DSMArincSensor, nidas::core::FsMount, nidas::dynld::isff::GOESOutput, nidas::dynld::raf::CVIProcessor, nidas::dynld::isff::CS_Krypton, nidas::core::DSMService, nidas::core::DSMServer, nidas::dynld::psql::PSQLChannel, nidas::dynld::raf::IRIGSensor, nidas::dynld::psql::PSQLSampleOutput, nidas::dynld::isff::Wind2D, nidas::dynld::UDPSampleOutput, nidas::core::MultipleUDPSockets, nidas::core::DSMCatalog, nidas::dynld::RawSampleInputStream, nidas::core::SensorCatalog, nidas::dynld::RawSampleService, nidas::core::ServiceCatalog, nidas::dynld::raf::LamsSensor, nidas::dynld::raf::Arinc_IRS, and nidas::dynld::RawSampleOutputStream.

Referenced by nidas::core::DSMService::fromDOMElement(), nidas::dynld::isff::GOESOutput::fromDOMElement(), nidas::core::DSMConfig::fromDOMElement(), nidas::core::SampleIOProcessor::fromDOMElement(), nidas::core::SampleOutputBase::fromDOMElement(), and nidas::dynld::SampleInputStream::fromDOMElement().

virtual const DSMConfig* nidas::core::SampleOutput::getDSMConfig ( ) const
pure virtual
virtual int nidas::core::SampleOutput::getFd ( ) const
pure virtual
virtual IOChannel* nidas::core::SampleOutput::getIOChannel ( ) const
pure virtual
virtual float nidas::core::SampleOutput::getLatency ( ) const
pure virtual
virtual const std::string& nidas::core::SampleOutput::getName ( ) const
pure virtual
static const XMLCh* nidas::core::DOMable::getNamespaceURI ( )
inlinestaticinherited
virtual SampleOutput* nidas::core::SampleOutput::getOriginal ( ) const
pure virtual
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::dynld::SampleProcessor::disconnect(), nidas::dynld::raf::SyncRecordGenerator::disconnect(), nidas::dynld::raf::CVIProcessor::disconnect(), nidas::core::SampleArchiver::disconnect(), nidas::dynld::StatisticsProcessor::disconnect(), nidas::core::DSMEngine::disconnect(), and nidas::core::SampleOutputRequestThread::run().

virtual std::list<const SampleTag*> nidas::core::SampleOutput::getRequestedSampleTags ( ) const
pure virtual
virtual std::list<const SampleTag*> nidas::core::SampleOutput::getSourceSampleTags ( ) const
pure virtual
virtual bool nidas::core::SampleOutput::isRaw ( ) const
pure virtual
virtual bool nidas::core::SampleClient::receive ( const Sample s)
throw (
)
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.

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

virtual void nidas::core::SampleOutput::requestConnection ( SampleConnectionRequester )
throw (nidas::util::IOException
)
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.

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

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

virtual void nidas::core::SampleOutput::setDSMConfig ( const DSMConfig val)
pure virtual
virtual void nidas::core::SampleOutput::setHeaderSource ( HeaderSource val)
pure virtual
virtual void nidas::core::SampleOutput::setLatency ( float  val)
throw (nidas::util::InvalidParameterException
)
pure virtual
virtual void nidas::core::SampleOutput::setName ( const std::string &  val)
pure virtual
virtual void nidas::core::SampleOutput::setReconnectDelaySecs ( int  val)
pure virtual
xercesc::DOMElement * DOMable::toDOMElement ( xercesc::DOMElement *  node,
bool  complete 
) const
throw (xercesc::DOMException
)
virtualinherited
xercesc::DOMElement * DOMable::toDOMParent ( xercesc::DOMElement *  parent,
bool  complete 
) const
throw (xercesc::DOMException
)
virtualinherited
virtual size_t nidas::core::SampleOutput::write ( const void *  buf,
size_t  len 
)
throw (nidas::util::IOException
)
pure virtual

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

Implemented in nidas::core::SampleOutputBase, and nidas::dynld::isff::GOESOutput.


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