nidas  v1.2-1520
Public Member Functions | Static Public Member Functions | 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 throw (nidas::util::IOException)
 
virtual SampleInputgetOriginal () const =0
 
virtual bool readSamples ()=0 throw (nidas::util::IOException)
 Read a buffer of data, serialize the data into samples, and distribute() samples to the receive() method of my SampleClients. More...
 
virtual SamplereadSample ()=0 throw (nidas::util::IOException)
 Blocking read of the next sample from the buffer. More...
 
virtual void close ()=0 throw (nidas::util::IOException)
 
virtual void setNonBlocking (bool val)=0 throw (nidas::util::IOException)
 
virtual bool isNonBlocking () const =0 throw (nidas::util::IOException)
 
virtual int getFd () const =0
 
virtual SampleSourcegetRawSampleSource ()=0
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples. More...
 
virtual SampleSourcegetProcessedSampleSource ()=0
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples. More...
 
virtual void addSampleTag (const SampleTag *)=0 throw (nidas::util::InvalidParameterException)
 Add a SampleTag to this SampleSource. More...
 
virtual void removeSampleTag (const SampleTag *)=0 throw ()
 
virtual std::list< const
SampleTag * > 
getSampleTags () const =0
 What SampleTags am I a SampleSource for? More...
 
virtual SampleTagIterator getSampleTagIterator () const =0
 
virtual void addSampleClient (SampleClient *c)=0 throw ()
 Add a SampleClient of all Samples to this SampleSource. More...
 
virtual void removeSampleClient (SampleClient *c)=0 throw ()
 Remove a SampleClient from this SampleSource. More...
 
virtual void addSampleClientForTag (SampleClient *c, const SampleTag *)=0 throw ()
 Add a SampleClient to this SampleSource. More...
 
virtual void removeSampleClientForTag (SampleClient *c, const SampleTag *)=0 throw ()
 Remove a SampleClient for a given SampleTag from this SampleSource. More...
 
virtual int getClientCount () const =0 throw ()
 How many SampleClients are currently in my list. More...
 
virtual void flush ()=0 throw ()
 Request that this SampleSource flush it's samples. More...
 
virtual const SampleStatsgetSampleStats () const =0
 
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 ()
 

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

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

Member Function Documentation

virtual void nidas::core::SampleSource::addSampleClient ( SampleClient c)
throw (
)
pure virtualinherited
virtual void nidas::core::SampleSource::addSampleClientForTag ( SampleClient c,
const SampleTag  
)
throw (
)
pure virtualinherited
virtual void nidas::core::SampleSource::addSampleTag ( const SampleTag )
throw (nidas::util::InvalidParameterException
)
pure virtualinherited
virtual void nidas::core::SampleInput::close ( )
throw (nidas::util::IOException
)
pure virtual
virtual IOChannelRequester* nidas::core::IOChannelRequester::connected ( IOChannel )
throw (
)
pure virtualinherited
virtual void nidas::core::SampleSource::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 int nidas::core::SampleSource::getClientCount ( ) const
throw (
)
pure virtualinherited
virtual const DSMConfig* nidas::core::SampleInput::getDSMConfig ( ) const
pure virtual
virtual int nidas::core::SampleInput::getFd ( ) const
pure virtual
virtual std::string nidas::core::SampleInput::getName ( ) const
pure virtual
static const XMLCh* nidas::core::DOMable::getNamespaceURI ( )
inlinestaticinherited
virtual SampleInput* nidas::core::SampleInput::getOriginal ( ) const
pure virtual
virtual SampleSource* nidas::core::SampleSource::getProcessedSampleSource ( )
pure virtualinherited
virtual SampleSource* nidas::core::SampleSource::getRawSampleSource ( )
pure virtualinherited
virtual const SampleStats& nidas::core::SampleSource::getSampleStats ( ) const
pure virtualinherited
virtual SampleTagIterator nidas::core::SampleSource::getSampleTagIterator ( ) const
pure virtualinherited
virtual std::list<const SampleTag*> nidas::core::SampleSource::getSampleTags ( ) const
pure virtualinherited
virtual bool nidas::core::SampleInput::isNonBlocking ( ) const
throw (nidas::util::IOException
)
pure virtual
virtual Sample* nidas::core::SampleInput::readSample ( )
throw (nidas::util::IOException
)
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.

Implemented in nidas::dynld::SampleInputStream, and nidas::dynld::isff::PacketInputStream.

virtual bool nidas::core::SampleInput::readSamples ( )
throw (nidas::util::IOException
)
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.

Implemented in nidas::dynld::SampleInputStream, and nidas::dynld::isff::PacketInputStream.

virtual void nidas::core::SampleSource::removeSampleClient ( SampleClient c)
throw (
)
pure virtualinherited
virtual void nidas::core::SampleSource::removeSampleClientForTag ( SampleClient c,
const SampleTag  
)
throw (
)
pure virtualinherited
virtual void nidas::core::SampleSource::removeSampleTag ( const SampleTag )
throw (
)
pure virtualinherited
virtual void nidas::core::SampleInput::requestConnection ( DSMService )
throw (nidas::util::IOException
)
pure virtual
virtual void nidas::core::SampleInput::setKeepStats ( bool  val)
pure virtual
virtual void nidas::core::SampleInput::setNonBlocking ( bool  val)
throw (nidas::util::IOException
)
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

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