27#ifndef NIDAS_CORE_PROJECTCONFIGS_H
28#define NIDAS_CORE_PROJECTCONFIGS_H
38#include <xercesc/dom/DOMElement.hpp>
39#include <xercesc/dom/DOMException.hpp>
44namespace nidas {
namespace core {
145 return x->getBeginTime() < y->getEndTime();
166 const std::list<const ProjectConfig*>&
getConfigs()
const;
196 void parseXML(
const std::string& xmlFileName);
202 void writeXML(
const std::string& xmlFileName);
Sample time tag comparator.
Definition ProjectConfigs.h:138
bool operator()(const ProjectConfig *x, const ProjectConfig *y) const
Return true if x is less than y.
Definition ProjectConfigs.h:143
Definition ProjectConfigs.h:49
const nidas::util::UTime & getEndTime() const
Returns UTime::MAX if unset.
Definition ProjectConfigs.h:72
xercesc::DOMElement * toDOMElement(xercesc::DOMElement *node) const
Definition ProjectConfigs.cc:419
std::string _xmlName
Definition ProjectConfigs.h:125
const std::string & getName() const
Definition ProjectConfigs.h:54
void setName(const std::string &val)
Definition ProjectConfigs.h:56
const nidas::util::UTime & getBeginTime() const
Returns UTime::MIN if unset.
Definition ProjectConfigs.h:65
nidas::util::UTime _endTime
Definition ProjectConfigs.h:129
ProjectConfig()
Definition ProjectConfigs.cc:44
void setEndTime(const nidas::util::UTime &val)
Definition ProjectConfigs.h:74
const std::string & getXMLName() const
Definition ProjectConfigs.h:58
nidas::util::UTime _beginTime
Definition ProjectConfigs.h:127
void addEnvironmentVariable(const std::string &name, const std::string &value)
Add an environment variable to this ProjectConfig.
Definition ProjectConfigs.cc:313
xercesc::DOMElement * toDOMParent(xercesc::DOMElement *parent) const
Definition ProjectConfigs.cc:409
void fromDOMElement(const xercesc::DOMElement *)
Definition ProjectConfigs.cc:330
void initProject(Project &project) const
Definition ProjectConfigs.cc:49
void putenv() const
Update the process environment with the current list of environment variables in the ProjectConfig.
Definition ProjectConfigs.cc:318
void setBeginTime(const nidas::util::UTime &val)
Definition ProjectConfigs.h:67
std::string _name
Definition ProjectConfigs.h:123
std::map< std::string, std::string > getEnvironmentVariables() const
Definition ProjectConfigs.h:85
void setXMLName(const std::string &val)
Definition ProjectConfigs.h:60
std::map< std::string, std::string > _envVars
Definition ProjectConfigs.h:131
Definition ProjectConfigs.h:151
std::list< ProjectConfig * > _configs
Definition ProjectConfigs.h:227
void writeXML(const std::string &xmlFileName)
Definition ProjectConfigs.cc:237
const std::list< const ProjectConfig * > & getConfigs() const
Definition ProjectConfigs.cc:195
std::list< const ProjectConfig * > _constConfigs
Definition ProjectConfigs.h:225
void removeConfig(const ProjectConfig *val)
Definition ProjectConfigs.cc:152
xercesc::DOMElement * toDOMElement(xercesc::DOMElement *node) const
Definition ProjectConfigs.cc:301
void fromDOMElement(const xercesc::DOMElement *)
Definition ProjectConfigs.cc:219
void parseXML(const std::string &xmlFileName)
Definition ProjectConfigs.cc:200
ProjectConfigs()
Definition ProjectConfigs.cc:74
const ProjectConfig * getConfig(const nidas::util::UTime &begin) const
Definition ProjectConfigs.cc:167
xercesc::DOMElement * toDOMParent(xercesc::DOMElement *parent) const
Definition ProjectConfigs.cc:289
void addConfigByTime(ProjectConfig *val)
Add a project configuration, inserting it in the list, which should be sorted by time.
Definition ProjectConfigs.cc:97
std::string _xmlName
Definition ProjectConfigs.h:223
void addConfigByName(ProjectConfig *val)
Add a project configuration, replacing an existing configuration if the name matches,...
Definition ProjectConfigs.cc:134
~ProjectConfigs()
Definition ProjectConfigs.cc:78
A class for parsing, formatting and doing operations on time, based on Unix time conventions,...
Definition UTime.h:95
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
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31