nidas
v1.2-1520
|
Interface of a processor of samples. More...
#include <SampleIOProcessor.h>
Public Member Functions | |
SampleIOProcessor (bool raw) | |
Does this processor generate raw or processed samples. More... | |
virtual | ~SampleIOProcessor () |
virtual const std::string & | getName () const |
virtual void | setName (const std::string &val) |
virtual void | setOptional (bool val) |
virtual bool | isOptional () const |
virtual const DSMService * | getService () const |
What DSMService am I associated with? More... | |
virtual void | setService (const DSMService *val) |
virtual const DSMConfig * | getDSMConfig () const |
What DSM am I associated with? More... | |
virtual void | setDSMConfig (const DSMConfig *val) |
dsm_sample_id_t | getId () const |
void | setSampleId (int val) |
unsigned int | getSampleId () const |
virtual void | connectSource (SampleSource *)=0 |
Connect a SampleSource to this SampleIOProcessor. More... | |
virtual void | disconnectSource (SampleSource *)=0 throw () |
Disconnect a SampleSource from this SampleIOProcessor. More... | |
SampleSource * | getRawSampleSource () |
Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples. More... | |
SampleSource * | getProcessedSampleSource () |
Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples. More... | |
virtual void | addRequestedSampleTag (SampleTag *tag) throw (nidas::util::InvalidParameterException) |
Add a request for a SampleTag from this SampleIOProcessor. More... | |
virtual std::list< const SampleTag * > | getRequestedSampleTags () const |
void | addSampleTag (const SampleTag *tag) throw () |
Implementation of SampleSource::addSampleTag(). More... | |
void | removeSampleTag (const SampleTag *tag) throw () |
std::list< const SampleTag * > | getSampleTags () const |
Implementation of SampleSource::getSampleTags(). More... | |
SampleTagIterator | getSampleTagIterator () const |
Implementation of SampleSource::getSampleTagIterator(). More... | |
void | addSampleClient (SampleClient *client) throw () |
Implementation of SampleSource::addSampleClient(). More... | |
void | removeSampleClient (SampleClient *client) throw () |
Remove a SampleClient from this SampleSource. More... | |
void | addSampleClientForTag (SampleClient *client, const SampleTag *tag) throw () |
Add a Client for a given SampleTag. More... | |
void | removeSampleClientForTag (SampleClient *client, const SampleTag *tag) throw () |
Remove a SampleClient for a given SampleTag from this SampleSource. More... | |
int | getClientCount () const throw () |
How many SampleClients are currently in my list. More... | |
const SampleStats & | getSampleStats () const |
virtual void | addOutput (SampleOutput *val) |
Add an SampleOutput to this SampleIOProcessor. More... | |
virtual const std::list < SampleOutput * > & | getOutputs () const |
void | addParameter (Parameter *val) throw (nidas::util::InvalidParameterException) |
Add a parameter to this SampleIOProcessor, which will then own the pointer and will delete it in its destructor. More... | |
const std::list< const Parameter * > & | getParameters () const |
Get list of parameters. More... | |
void | fromDOMElement (const xercesc::DOMElement *node) throw (nidas::util::InvalidParameterException) |
Initialize myself from a xercesc::DOMElement. More... | |
virtual void | printStatus (std::ostream &, float, int &) throw () |
virtual void | init (dsm_time_t) throw () |
virtual void | flush ()=0 throw () |
Request that this SampleSource flush it's samples. More... | |
virtual void | connect (SampleOutput *output)=0 throw () |
How SampleOutputs notify their SampleConnectionRequester that they are connected. More... | |
virtual void | disconnect (SampleOutput *output)=0 throw () |
How SampleOutputs notify their SampleConnectionRequester that they wish to be closed, likely do to an IOException. 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 | |
void | removeRequestedSampleTag (SampleTag *tag) |
Allow subclasses to remove requested SampleTags. More... | |
Protected Attributes | |
SampleSourceSupport | _source |
nidas::util::Mutex | _tagsMutex |
std::list< SampleTag * > | _requestedTags |
Private Member Functions | |
SampleIOProcessor (const SampleIOProcessor &) | |
Copy not supported. More... | |
SampleIOProcessor & | operator= (const SampleIOProcessor &) |
Assignment not supported. More... | |
Private Attributes | |
std::string | _name |
dsm_sample_id_t | _id |
std::list< const SampleTag * > | _constRequestedTags |
std::list< SampleOutput * > | _origOutputs |
bool | _optional |
const DSMService * | _service |
What service am I a part of? More... | |
const DSMConfig * | _dsm |
Or, what DSM am I a part of? More... | |
std::list< Parameter * > | _parameters |
std::list< const Parameter * > | _constParameters |
Interface of a processor of samples.
A SampleIOProcessor reads input Samples from a SamplePipeline, and sends its processed output Samples to one or more SampleOutputs.
SampleIOProcessor::SampleIOProcessor | ( | bool | raw | ) |
Does this processor generate raw or processed samples.
Typically they are processed samples (duh), but not always.
|
virtual |
|
private |
Copy not supported.
|
inlinevirtual |
Add an SampleOutput to this SampleIOProcessor.
This is used to add a desired SampleOutput to this SampleIOProcessor. SampleIOProcessor will own the SampleOutput. Once a SampleSource has connected, then SampleIOProcessor is responsible for do SampleOutput::requestConnection, or SampleOutputRequestThread::addConnectRequest() on all these as-yet disconnected outputs.
References _origOutputs.
void SampleIOProcessor::addParameter | ( | Parameter * | val | ) | |
throw | ( | nidas::util::InvalidParameterException | |||
) |
Add a parameter to this SampleIOProcessor, which will then own the pointer and will delete it in its destructor.
If a Parameter exists with the same name, it will be replaced with the new Parameter.
|
virtual |
Add a request for a SampleTag from this SampleIOProcessor.
This SampleIOProcessor will own the SampleTag.
Reimplemented in nidas::dynld::raf::CVIProcessor, and nidas::dynld::StatisticsProcessor.
Referenced by nidas::dynld::StatisticsProcessor::addRequestedSampleTag(), and nidas::dynld::raf::CVIProcessor::addRequestedSampleTag().
|
inlinevirtual |
Implementation of SampleSource::addSampleClient().
Implements nidas::core::SampleSource.
Reimplemented in nidas::dynld::raf::SyncRecordGenerator.
References _source, and nidas::core::SampleSourceSupport::addSampleClient().
|
inlinevirtual |
Add a Client for a given SampleTag.
Implementation of SampleSource::addSampleClient().
Implements nidas::core::SampleSource.
Reimplemented in nidas::dynld::raf::SyncRecordGenerator.
References _source, and nidas::core::SampleSourceSupport::addSampleClientForTag().
|
virtual |
Implementation of SampleSource::addSampleTag().
Implements nidas::core::SampleSource.
Referenced by nidas::dynld::StatisticsProcessor::connectSource().
|
pure virtualinherited |
How SampleOutputs notify their SampleConnectionRequester that they are connected.
Implemented in nidas::core::DSMEngine, nidas::dynld::raf::SyncServer, nidas::core::SampleArchiver, nidas::dynld::StatisticsProcessor, nidas::dynld::raf::CVIProcessor, nidas::dynld::raf::SyncRecordGenerator, and nidas::dynld::SampleProcessor.
Referenced by nidas::dynld::psql::PSQLProcessor::connect().
|
pure virtual |
Connect a SampleSource to this SampleIOProcessor.
SampleIOProcessor does not own the SampleSource.
Implemented in nidas::core::SampleArchiver, nidas::dynld::StatisticsProcessor, nidas::dynld::raf::CVIProcessor, nidas::dynld::raf::SyncRecordGenerator, and nidas::dynld::SampleProcessor.
Referenced by nidas::core::DSMEngine::connectProcessors(), and nidas::dynld::RawSampleService::schedule().
|
pure virtualinherited |
How SampleOutputs notify their SampleConnectionRequester that they wish to be closed, likely do to an IOException.
Implemented in nidas::core::DSMEngine, nidas::dynld::raf::SyncServer, nidas::dynld::StatisticsProcessor, nidas::core::SampleArchiver, nidas::dynld::raf::CVIProcessor, nidas::dynld::raf::SyncRecordGenerator, and nidas::dynld::SampleProcessor.
Referenced by nidas::dynld::psql::PSQLProcessor::disconnect(), and nidas::core::SampleOutputBase::disconnect().
|
pure virtual |
Disconnect a SampleSource from this SampleIOProcessor.
Implemented in nidas::core::SampleArchiver, nidas::dynld::StatisticsProcessor, nidas::dynld::raf::CVIProcessor, nidas::dynld::raf::SyncRecordGenerator, and nidas::dynld::SampleProcessor.
Referenced by nidas::core::DSMEngine::disconnectProcessors(), and nidas::dynld::RawSampleService::interrupt().
|
pure virtualinherited |
Request that this SampleSource flush it's samples.
One must think about whether to call flush() on SampleClients of this SampleSource. A SampleClient may have multiple SampleSources and a flush() of it when one SampleSource() is done may not be what is wanted.
Implemented in nidas::core::DSMSensor, nidas::dynld::SampleInputStream, nidas::dynld::raf::SyncRecordSource, nidas::core::NearestResamplerAtRate, nidas::core::SamplePipeline, nidas::core::SampleSorter, nidas::core::SampleSourceSupport, nidas::core::SampleBuffer, nidas::core::NearestResampler, nidas::dynld::StatisticsCruncher, nidas::core::SampleAverager, nidas::dynld::raf::SyncRecordGenerator, nidas::dynld::isff::PacketInputStream, nidas::dynld::StatisticsProcessor, nidas::core::SampleThread, nidas::dynld::raf::CVIProcessor, nidas::core::SampleArchiver, nidas::core::Resampler, and nidas::dynld::SampleProcessor.
Referenced by nidas::core::DSMEngine::disconnectProcessors().
|
virtual |
Initialize myself from a xercesc::DOMElement.
Implements nidas::core::DOMable.
Reimplemented in nidas::dynld::raf::CVIProcessor.
References nidas::core::DOMObjectFactory::createObject(), nidas::core::Parameter::createParameter(), nidas::core::DOMable::fromDOMElement(), nidas::core::SampleTag::fromDOMElement(), nidas::core::XDOMElement::getAttributeValue(), nidas::core::Project::getInstance(), nidas::core::XDOMAttr::getName(), nidas::core::XDOMElement::getNodeName(), nidas::core::SampleTag::getSampleId(), nidas::core::SampleTag::setSampleId(), nidas::core::SampleTag::setSensorId(), and nidas::util::Exception::what().
Referenced by nidas::core::DSMService::fromDOMElement(), nidas::dynld::raf::CVIProcessor::fromDOMElement(), and nidas::core::DSMConfig::fromDOMElement().
|
inlinevirtual |
How many SampleClients are currently in my list.
Implements nidas::core::SampleSource.
Reimplemented in nidas::dynld::raf::SyncRecordGenerator.
References _source, and nidas::core::SampleSourceSupport::getClientCount().
|
inlinevirtual |
What DSM am I associated with?
References _dsm.
|
inline |
References _id, and GET_FULL_ID.
|
virtual |
|
inlinestaticinherited |
References nidas::core::DOMable::namespaceURI.
Referenced by nidas::dynld::UDPSampleOutput::getProjectDOM(), nidas::core::Dataset::toDOMElement(), nidas::core::ProjectConfig::toDOMElement(), nidas::core::Dataset::toDOMParent(), nidas::core::ProjectConfig::toDOMParent(), nidas::core::Datasets::toDOMParent(), nidas::core::ProjectConfigs::toDOMParent(), nidas::core::DSMConfig::toDOMParent(), nidas::core::Project::toDOMParent(), nidas::core::Site::toDOMParent(), nidas::core::SampleTag::toDOMParent(), nidas::core::ServerSocket::toDOMParent(), nidas::core::Variable::toDOMParent(), nidas::core::DSMSensor::toDOMParent(), nidas::core::Datasets::writeXML(), and nidas::core::ProjectConfigs::writeXML().
|
inlinevirtual |
References _origOutputs.
Referenced by nidas::dynld::raf::SyncRecordGenerator::connectSource(), nidas::dynld::StatisticsProcessor::connectSource(), nidas::core::SampleArchiver::connectSource(), nidas::core::Project::findServerSampleOutputStreamFileSets(), nidas::dynld::isff::GOESProject::GOESProject(), and StatsProcess::run().
|
inline |
Get list of parameters.
References _constParameters.
|
inlinevirtual |
Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
SampleClients use this method to get a pointer to whatever sample source they are interested in. Derived classes can return NULL if they are not a SampleSource of processed samples.
Implements nidas::core::SampleSource.
References _source.
|
inlinevirtual |
Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
SampleClients use this method to get a pointer to whatever sample source they are interested in. Derived classes can return NULL if they are not a SampleSource of raw samples.
Implements nidas::core::SampleSource.
|
virtual |
References _constRequestedTags, and _tagsMutex.
Referenced by nidas::dynld::StatisticsProcessor::connectSource(), nidas::core::SampleTagIterator::hasNext(), and StatsProcess::listOutputSamples().
|
inline |
References _id, and GET_SPS_ID.
Referenced by StatsProcess::listOutputSamples(), and nidas::dynld::StatisticsProcessor::selectRequestedSampleTags().
|
inlinevirtual |
Implements nidas::core::SampleSource.
Reimplemented in nidas::dynld::raf::SyncRecordGenerator.
References _source, and nidas::core::SampleSourceSupport::getSampleStats().
|
inlinevirtual |
Implementation of SampleSource::getSampleTagIterator().
Implements nidas::core::SampleSource.
Reimplemented in nidas::dynld::raf::SyncRecordGenerator.
References _source, and nidas::core::SampleSourceSupport::getSampleTagIterator().
|
inlinevirtual |
Implementation of SampleSource::getSampleTags().
Implements nidas::core::SampleSource.
Reimplemented in nidas::dynld::psql::PSQLProcessor, and nidas::dynld::raf::SyncRecordGenerator.
References _source, and nidas::core::SampleSourceSupport::getSampleTags().
Referenced by nidas::dynld::StatisticsProcessor::connectSource().
|
inlinevirtual |
What DSMService am I associated with?
References _service.
|
inlinevirtual |
Reimplemented in nidas::dynld::raf::SyncRecordGenerator.
Referenced by nidas::dynld::RawSampleService::schedule().
|
inlinevirtual |
References _optional.
Referenced by nidas::dynld::RawSampleService::schedule().
|
private |
Assignment not supported.
|
inlinevirtual |
Reimplemented in nidas::dynld::raf::SyncRecordGenerator, and nidas::core::SampleArchiver.
Referenced by nidas::dynld::RawSampleService::printStatus().
|
protected |
Allow subclasses to remove requested SampleTags.
The tag will be deleted.
References _constRequestedTags, _requestedTags, and _tagsMutex.
Referenced by nidas::dynld::StatisticsProcessor::selectRequestedSampleTags().
|
inlinevirtual |
Remove a SampleClient from this SampleSource.
Implements nidas::core::SampleSource.
Reimplemented in nidas::dynld::raf::SyncRecordGenerator.
References _source, and nidas::core::SampleSourceSupport::removeSampleClient().
|
inlinevirtual |
Remove a SampleClient for a given SampleTag from this SampleSource.
The pointer to the SampleClient must remain valid, until after it is removed.
Implements nidas::core::SampleSource.
Reimplemented in nidas::dynld::raf::SyncRecordGenerator.
References _source, and nidas::core::SampleSourceSupport::removeSampleClientForTag().
|
virtual |
Implements nidas::core::SampleSource.
|
inlinevirtual |
References _dsm.
Referenced by nidas::core::DSMConfig::fromDOMElement().
|
virtual |
|
inlinevirtual |
References _optional.
|
inline |
References _id, and SET_SPS_ID.
|
inlinevirtual |
References _service.
Referenced by nidas::core::DSMService::fromDOMElement().
|
virtualinherited |
Add my content into a DOMElement.
Reimplemented in nidas::core::DSMSensor, nidas::core::Variable, nidas::core::ServerSocket, nidas::core::SampleTag, nidas::core::Site, nidas::core::Project, and nidas::core::DSMConfig.
Referenced by nidas::core::ServerSocket::toDOMParent().
|
virtualinherited |
Create a DOMElement and append it to the parent.
Reimplemented in nidas::core::DSMSensor, nidas::core::Variable, nidas::core::ServerSocket, nidas::core::SampleTag, nidas::core::Site, nidas::core::Project, and nidas::core::DSMConfig.
|
private |
Referenced by getParameters().
|
private |
Referenced by getRequestedSampleTags(), and removeRequestedSampleTag().
|
private |
Or, what DSM am I a part of?
Referenced by getDSMConfig(), and setDSMConfig().
|
private |
Referenced by getId(), getSampleId(), and setSampleId().
|
private |
Referenced by isOptional(), and setOptional().
|
private |
Referenced by addOutput(), getOutputs(), and ~SampleIOProcessor().
|
private |
Referenced by ~SampleIOProcessor().
|
protected |
|
private |
What service am I a part of?
Referenced by getService(), and setService().
|
protected |
|
mutableprotected |