27#ifndef NIDAS_CORE_DSMCONFIG_H
28#define NIDAS_CORE_DSMCONFIG_H
40namespace nidas {
namespace core {
243 toDOMParent(xercesc::DOMElement* parent,
bool complete)
const;
249 toDOMElement(xercesc::DOMElement* node,
bool complete)
const;
345 bool getTokenValue(
const std::string& token, std::string& value)
const;
Interface of an object that can be instantiated from a DOM element, via the fromDOMElement method,...
Definition DOMable.h:51
Definition DSMConfig.h:333
MyDictionary & operator=(const MyDictionary &rhs)
Definition DSMConfig.h:337
bool getTokenValue(const std::string &token, std::string &value) const
Definition DSMConfig.cc:687
DSMConfig * _dsm
Definition DSMConfig.h:347
MyDictionary(const MyDictionary &x)
Definition DSMConfig.h:336
MyDictionary(DSMConfig *dsm)
Definition DSMConfig.h:335
Class that should include all that is configurable about a DSM.
Definition DSMConfig.h:55
void removeSensor(DSMSensor *sensor)
Definition DSMConfig.cc:111
const Site * getSite() const
Definition DSMConfig.h:61
DSMSensor * sensorFromDOMElement(const xercesc::DOMElement *node)
Parse a DOMElement for a DSMSensor, returning a pointer to the DSMSensor.
Definition DSMConfig.cc:457
unsigned short _remoteSerialSocketPort
TCP socket port that DSMEngine listens on for remote serial connections.
Definition DSMConfig.h:373
virtual const std::list< SampleIOProcessor * > & getProcessors() const
Definition DSMConfig.h:308
const std::string & getName() const
Definition DSMConfig.h:65
void openSensors(SensorHandler *)
Pass my sensors to the SensorHandler for opening.
Definition DSMConfig.cc:145
void setId(dsm_sample_id_t val)
Definition DSMConfig.h:72
nidas::util::SocketAddress * _derivedDataSocketAddr
Definition DSMConfig.h:387
void setProcLateSampleCacheSize(unsigned int val)
Cache this number of samples with potentially anomalous, late time tags in the processed sample sorte...
Definition DSMConfig.h:213
void setStatusSocketAddr(const nidas::util::SocketAddress &val)
Definition DSMConfig.h:288
unsigned int getRawLateSampleCacheSize() const
Get the size of the late sample cache in the raw sample sorter.
Definition DSMConfig.h:184
xercesc::DOMElement * toDOMElement(xercesc::DOMElement *node, bool complete) const
Definition DSMConfig.cc:667
void setProcHeapMax(size_t val)
Set the size of in bytes of the processed SampleSorter.
Definition DSMConfig.h:175
size_t getProcHeapMax() const
Get the size of in bytes of the processed SampleSorter.
Definition DSMConfig.h:165
ProcessorIterator getProcessorIterator() const
Definition DSMConfig.cc:83
nidas::core::DSMConfig::MyDictionary _dictionary
void initSensors()
Definition DSMConfig.cc:136
const std::list< DSMSensor * > & getSensors() const
Definition DSMConfig.h:77
std::string _name
Definition DSMConfig.h:327
void validateSensorAndSampleIds()
Validate the ids of the DSMSensors belonging to this DSMConfig, and their SampleTags,...
Definition DSMConfig.cc:523
std::list< SampleIOProcessor * > _processors
Definition DSMConfig.h:389
void addSensor(DSMSensor *sensor)
Definition DSMConfig.cc:104
void setLocation(const std::string &val)
Definition DSMConfig.h:69
DSMConfig & operator=(const DSMConfig &x)
float getRawSorterLength() const
Get the length of the SampleSorter of raw Samples, in seconds.
Definition DSMConfig.h:111
nidas::util::SocketAddress * _statusSocketAddr
Definition DSMConfig.h:391
std::list< nidas::core::FileSet * > findSampleOutputStreamFileSets() const
Definition DSMConfig.cc:155
void validate()
Definition DSMConfig.cc:448
void addOutput(SampleOutput *output)
Definition DSMConfig.h:92
float _procSorterLength
Definition DSMConfig.h:377
unsigned int _id
Definition DSMConfig.h:350
void setRawHeapMax(size_t val)
Set the size of in bytes of the raw SampleSorter.
Definition DSMConfig.h:155
xercesc::DOMElement * toDOMParent(xercesc::DOMElement *parent, bool complete) const
Definition DSMConfig.cc:656
void setProcSorterLength(float val)
Set the length of the SampleSorter of processed Samples, in seconds.
Definition DSMConfig.h:135
void setRemoteSerialSocketPort(unsigned short val)
Definition DSMConfig.h:100
void setName(const std::string &val)
Definition DSMConfig.h:66
DSMConfig()
Definition DSMConfig.cc:48
unsigned int getProcLateSampleCacheSize() const
Get the size of the late sample cache in the processed sample sorter.
Definition DSMConfig.h:203
std::list< SampleOutput * > _outputs
SampleOutputs.
Definition DSMConfig.h:367
void fromDOMElement(const xercesc::DOMElement *)
Definition DSMConfig.cc:170
VariableIterator getVariableIterator() const
Definition DSMConfig.cc:99
std::string expandString(const std::string &input) const
Utility function to expand ${TOKEN} or $TOKEN fields in a string with their value from getTokenValue(...
Definition DSMConfig.h:258
const nidas::util::SocketAddress & getDerivedDataSocketAddr() const
Definition DSMConfig.h:283
virtual ~DSMConfig()
Definition DSMConfig.cc:61
std::string _location
Definition DSMConfig.h:331
std::string _suffix
Definition DSMConfig.h:329
float getProcSorterLength() const
Get the length of the SampleSorter of processed Samples, in seconds.
Definition DSMConfig.h:127
size_t getRawHeapMax() const
Get the size of in bytes of the raw SampleSorter.
Definition DSMConfig.h:145
const nidas::util::SocketAddress & getStatusSocketAddr() const
Definition DSMConfig.h:294
void setDerivedDataSocketAddr(const nidas::util::SocketAddress &val)
Definition DSMConfig.h:277
const Dictionary & getDictionary() const
Definition DSMConfig.h:272
std::list< DSMSensor * > _ownedSensors
A list of the sensors on this DSM that have not been passed to a SensorHandler, i....
Definition DSMConfig.h:357
dsm_sample_id_t getId() const
Definition DSMConfig.h:71
const Project * getProject() const
Definition DSMConfig.cc:77
DSMConfig(const DSMConfig &x)
size_t _procHeapMax
Definition DSMConfig.h:381
SampleTagIterator getSampleTagIterator() const
Definition DSMConfig.cc:94
bool getTokenValue(const std::string &token, std::string &value) const
Implement a lookup for tokens that I know about, like $DSM, $LOCATION.
Definition DSMConfig.h:267
const std::list< SampleOutput * > & getOutputs() const
Definition DSMConfig.h:94
const std::string & getLocation() const
Definition DSMConfig.h:68
const Site * _site
Definition DSMConfig.h:325
float _rawSorterLength
Definition DSMConfig.h:375
unsigned short getRemoteSerialSocketPort() const
Definition DSMConfig.h:98
std::list< DSMSensor * > _allSensors
A list of all sensors configured on this DSM.
Definition DSMConfig.h:362
void setSite(const Site *val)
Definition DSMConfig.h:60
virtual void addProcessor(SampleIOProcessor *proc)
Add a processor to this DSM.
Definition DSMConfig.h:303
SensorIterator getSensorIterator() const
Definition DSMConfig.cc:89
unsigned int _procLateSampleCacheSize
Definition DSMConfig.h:385
size_t _rawHeapMax
Definition DSMConfig.h:379
unsigned int _rawLateSampleCacheSize
Definition DSMConfig.h:383
void setRawLateSampleCacheSize(unsigned int val)
Cache this number of samples with potentially anomalous, late time tags in the raw sample sorter.
Definition DSMConfig.h:194
void setRawSorterLength(float val)
Set the length of the SampleSorter of raw Samples, in seconds.
Definition DSMConfig.h:119
DSMSensor provides the basic support for reading, processing and distributing samples from a sensor a...
Definition DSMSensor.h:88
Interface for a Dictionary class, which can return a string value for a string token name.
Definition Dictionary.h:38
std::string expandString(const std::string &input) const
Utility function that scans a string for tokens like ${XXXX}, or $XXX followed by any characters from...
Definition Dictionary.cc:34
Class for iterating over the Processors of a DSMServer or DSMConfig.
Definition NidsIterators.h:150
Interface of a processor of samples.
Definition SampleIOProcessor.h:50
Interface of an output stream of samples.
Definition SampleOutput.h:49
Class for iterating over the SampleTags of a Project, Site, DSMConfig, or a SampleSource.
Definition NidsIterators.h:218
SensorHandler implements a DSMSensor event loop.
Definition SensorHandler.h:88
Class for iterating over the DSMSensors of a Project, Site, or DSMConfig.
Definition NidsIterators.h:186
A measurement site.
Definition Site.h:49
Class for iterating over the Variables of a Project, Site, DSMConfig, DSMSensor, or SampleTag.
Definition NidsIterators.h:287
An interface for a socket address.
Definition SocketAddress.h:36
virtual SocketAddress * clone() const =0
Virtual constructor.
Sample * getSample(sampleType type, unsigned int len)
A convienence method for getting a sample of an enumerated type from a pool.
Definition Sample.cc:70
unsigned int dsm_sample_id_t
Definition Sample.h:64
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31