nidas
v1.2-1520
|
#include <Project.h>
Classes | |
class | MyDictionary |
Public Member Functions | |
Project () | |
virtual | ~Project () |
void | throw (nidas::core::XMLException) |
Convenient method to fill this Project instance from the configuration in the XML file at xmlfilepath , using the nidas::core::parseXMLConfigFile() function. More... | |
void | setName (const std::string &val) |
const std::string & | getName () const |
void | setSystemName (const std::string &val) |
const std::string & | getSystemName () const |
void | setConfigVersion (const std::string &val) |
const std::string & | getConfigVersion () const |
void | setConfigName (const std::string &val) |
const std::string & | getConfigName () const |
void | setFlightName (const std::string &val) |
const std::string & | getFlightName () const |
void | addSite (Site *val) |
const std::list< Site * > & | getSites () const |
int | getMaxSiteNumber () const |
Convenience function to return the maximum site number. More... | |
int | getMinSiteNumber () const |
void | addServer (DSMServer *srvr) |
A Project has one or more DSMServers. More... | |
const std::list< DSMServer * > & | getServers () const |
std::list< DSMServer * > | findServers (const std::string &hostname) const |
Look for a server for this project that either has no name or whose name matches hostname. More... | |
DSMServer * | findServer (const nidas::util::Inet4Address &addr) const |
const DSMConfig * | findDSM (const nidas::util::Inet4Address &addr) const |
Find a DSM whose name corresponds to a given IP address. More... | |
const DSMConfig * | findDSM (const std::string &name) const |
DSMConfig * | findDSMFromHostname (const std::string &hostname) |
Find a DSMConfig in any site in this project whose name matches the given hostname . More... | |
const DSMConfig * | findDSM (unsigned int id) const |
Find a DSM matching id;. More... | |
std::list< nidas::core::FileSet * > | findServerSampleOutputStreamFileSets (const std::string &name) const |
Find SampleOutputStreamFileSets belonging to SampleArchivers of DSMServers whose name matches the argument name. More... | |
std::list< nidas::core::FileSet * > | findServerSampleOutputStreamFileSets () const throw (nidas::util::Exception) |
Call findServerSampleOutputStreamFileSets(name) passing the nodename returned by uname(2). More... | |
std::list< nidas::core::FileSet * > | findSampleOutputStreamFileSets (const std::string &dsmName) const |
Find SampleOutputStreamFileSets belonging to the given DSM. More... | |
std::list< nidas::core::FileSet * > | findSampleOutputStreamFileSets () const |
Find SampleOutputStreamFileSets of all DSMs. More... | |
DSMSensor * | findSensor (dsm_sample_id_t id) const |
DSMSensor * | findSensor (const SampleTag *tag) const |
Site * | findSite (int stationNumber) const |
Find a Site with the given station number. More... | |
Site * | findSite (const std::string &name) const |
Find a Site with the given name. More... | |
dsm_sample_id_t | getUniqueSampleId (unsigned int dsmid) |
Get a temporary unique sample id for a given DSM id. More... | |
void | setSensorCatalog (SensorCatalog *val) |
SensorCatalog * | getSensorCatalog () const |
void | setDSMCatalog (DSMCatalog *val) |
DSMCatalog * | getDSMCatalog () const |
void | setServiceCatalog (ServiceCatalog *val) |
ServiceCatalog * | getServiceCatalog () const |
DSMServerIterator | getDSMServerIterator () const |
DSMServiceIterator | getDSMServiceIterator () const |
ProcessorIterator | getProcessorIterator () const |
SiteIterator | getSiteIterator () const |
DSMConfigIterator | getDSMConfigIterator () const |
SensorIterator | getSensorIterator () const |
SampleTagIterator | getSampleTagIterator () const |
VariableIterator | getVariableIterator () const |
void | initSensors () throw (nidas::util::IOException) |
Initialize all sensors for a Project. More... | |
void | initSensors (Site *site) throw (nidas::util::IOException) |
Initialize all sensors for a given Site. More... | |
void | initSensors (DSMConfig *dsm) throw (nidas::util::IOException) |
Initialize all sensors for a given dsm. More... | |
const Parameter * | getParameter (const std::string &name) const |
void | fromDOMElement (const xercesc::DOMElement *) throw (nidas::util::InvalidParameterException) |
Initialize myself from a xercesc::DOMElement. More... | |
xercesc::DOMElement * | toDOMParent (xercesc::DOMElement *parent, bool complete) const throw (xercesc::DOMException) |
Create a DOMElement and append it to the parent. More... | |
xercesc::DOMElement * | toDOMElement (xercesc::DOMElement *node, bool complete) const throw (xercesc::DOMException) |
Add my content into a DOMElement. More... | |
std::string | expandString (const std::string &input) const |
Utility function to expand ${TOKEN} or $TOKEN fields in a string with their value from getTokenValue(). More... | |
bool | getTokenValue (const std::string &token, std::string &value) const |
Implement a lookup for tokens that I know about, like $PROJECT, and $SYSTEM. More... | |
const Dictionary & | getDictionary () const |
void | setDataset (const Dataset &val) |
const Dataset & | getDataset () const |
void | disableAutoconfig (bool disable) |
When true, autoconfig elements in the config document are removed before realizing the Project with fromDOMElement(). More... | |
Static Public Member Functions | |
static Project * | getInstance () |
Project is a singleton. More... | |
static void | destroyInstance () |
Destory the singleton. More... | |
static const XMLCh * | getNamespaceURI () |
Protected Member Functions | |
void | addParameter (Parameter *val) |
Add a parameter to this Project. More... | |
Private Member Functions | |
void | removeAutoConfig (xercesc::DOMNode *node, bool bumpRecursion=false) |
Scan the DOM and pull out any <autoconfig> tags, as well as change the autoconfig classes back to DSMSerialSensor, or isff.PropVane as needed, and remove porttype attributes. More... | |
Project (const Project &) | |
Copy not supported. More... | |
Project & | operator= (const Project &) |
Assignment not supported. More... | |
Private Attributes | |
std::string | _name |
std::string | _sysname |
std::string | _configVersion |
std::string | _configName |
Name of XML file that this project was initialized from. More... | |
std::string | _flightName |
nidas::core::Project::MyDictionary | _dictionary |
std::list< Site * > | _sites |
SensorCatalog * | _sensorCatalog |
DSMCatalog * | _dsmCatalog |
ServiceCatalog * | _serviceCatalog |
std::list< DSMServer * > | _servers |
nidas::util::Mutex | _lookupLock |
std::map< dsm_sample_id_t, const DSMConfig * > | _dsmById |
nidas::util::Mutex | _sensorMapLock |
std::map< dsm_sample_id_t, DSMSensor * > | _sensorById |
std::map< int, Site * > | _siteByStationNumber |
std::map< std::string, Site * > | _siteByName |
std::set< dsm_sample_id_t > | _usedIds |
int | _maxSiteNumber |
int | _minSiteNumber |
std::list< Parameter * > | _parameters |
List of pointers to Parameters. More... | |
Dataset | _dataset |
The current dataset. More... | |
bool | _disableAutoconfig |
Static Private Attributes | |
static Project * | _instance = 0 |
Project::Project | ( | ) |
References _instance.
|
virtual |
References _dsmCatalog, _instance, _parameters, _sensorCatalog, _servers, _serviceCatalog, and _sites.
|
private |
Copy not supported.
The main problem with a supporting a copy constructor is that one would need a clone for all the DSMSensors, which would be hard to get and keep correct. Instead of copying/cloning a project, create a new one and initialize it from a DOMElement.
|
inlineprotected |
Add a parameter to this Project.
Project will then own the pointer and will delete it in its destructor.
References _parameters.
|
inline |
void Project::addSite | ( | Site * | val | ) |
|
static |
Destory the singleton.
Referenced by main(), AutoProject::~AutoProject(), and nidas::core::NidasApp::~NidasApp().
|
inline |
When true, autoconfig elements in the config document are removed before realizing the Project with fromDOMElement().
References _disableAutoconfig.
|
inline |
Utility function to expand ${TOKEN} or $TOKEN fields in a string with their value from getTokenValue().
If curly brackets are not used, then the TOKEN should be delimited by a '/', a '.' or the end of string, e.g.: xxx/yyy/$ZZZ.dat
References _dictionary, and nidas::core::Dictionary::expandString().
Referenced by nidas::core::XMLConfigWriterFilter::acceptDSMNode(), nidas::dynld::StatisticsProcessor::addRequestedSampleTag(), nidas::dynld::isff::WisardMote::createSampleTag(), nidas::core::DSMConfig::fromDOMElement(), nidas::core::SampleTag::fromDOMElement(), nidas::core::Variable::fromDOMElement(), and nidas::dynld::isff::WindOrienter::handleParameter().
const DSMConfig * Project::findDSM | ( | const nidas::util::Inet4Address & | addr | ) | const |
Find a DSM whose name corresponds to a given IP address.
References DLOG, nidas::core::Site::findDSM(), nidas::util::Inet4Address::getAllByName(), getDSMConfigIterator(), nidas::util::Inet4Address::getHostAddress(), nidas::util::Inet4NetworkInterface::getIndex(), nidas::util::Logger::getInstance(), nidas::util::Inet4NetworkInterface::getInterface(), nidas::util::Inet4NetworkInterface::getName(), nidas::core::Site::getName(), nidas::core::DSMConfig::getName(), getSiteIterator(), nidas::core::SiteIterator::hasNext(), nidas::util::Logger::log(), LOG_WARNING, nidas::util::Exception::what(), and WLOG.
Referenced by nidas::dynld::psql::PSQLProcessor::connect(), nidas::dynld::XMLConfigService::connected(), findDSM(), findSampleOutputStreamFileSets(), StatsProcess::getStatisticsProcessor(), and nidas::dynld::SampleInputStream::setIOChannel().
const DSMConfig * Project::findDSM | ( | const std::string & | name | ) | const |
const DSMConfig * Project::findDSM | ( | unsigned int | id | ) | const |
Find a DSM matching id;.
References _dsmById, _lookupLock, DLOG, nidas::core::Site::findDSM(), getSiteIterator(), nidas::core::SiteIterator::hasNext(), nidas::util::Mutex::lock(), and nidas::util::Mutex::unlock().
DSMConfig * Project::findDSMFromHostname | ( | const std::string & | hostname | ) |
Find a DSMConfig in any site in this project whose name matches the given hostname
.
If the hostname is fully qualified, then the match is attempted against the long name first and then the shortened name, with everything past the first '.' removed.
If there is only one DSM in the entire project config, then that DSM is always returned.
DSMEngine uses this method to look up it's DSMConfig instance on startup, based on the current hostname setting.
References nidas::core::Site::getDSMConfigs(), nidas::util::Logger::getInstance(), nidas::core::DSMConfig::getName(), getSites(), nidas::util::Logger::log(), and LOG_INFO.
list< nidas::core::FileSet * > Project::findSampleOutputStreamFileSets | ( | const std::string & | dsmName | ) | const |
Find SampleOutputStreamFileSets belonging to the given DSM.
References findDSM(), and nidas::core::DSMConfig::findSampleOutputStreamFileSets().
Referenced by StatsProcess::run(), and DataPrep::run().
list< nidas::core::FileSet * > Project::findSampleOutputStreamFileSets | ( | ) | const |
Find SampleOutputStreamFileSets of all DSMs.
References nidas::core::DSMConfig::findSampleOutputStreamFileSets(), getDSMConfigIterator(), and nidas::core::DSMConfigIterator::hasNext().
DSMSensor * Project::findSensor | ( | dsm_sample_id_t | id | ) | const |
References _sensorById, _sensorMapLock, nidas::core::Site::findSensor(), getSiteIterator(), nidas::core::SiteIterator::hasNext(), nidas::util::Mutex::lock(), and nidas::util::Mutex::unlock().
Referenced by nidas::dynld::raf::CVIProcessor::connectSource(), findSensor(), nidas::dynld::ParoSci_202BG_T::init(), and nidas::dynld::ParoSci_202BG_P::init().
References findSensor(), and nidas::core::SampleTag::getId().
DSMServer * Project::findServer | ( | const nidas::util::Inet4Address & | addr | ) | const |
list< DSMServer * > Project::findServers | ( | const std::string & | hostname | ) | const |
Look for a server for this project that either has no name or whose name matches hostname.
Look for a server for this project that whose name matches my hostname.
If none found, remove any domain names and try again. Then search the project Sites.
If none found, remove any domain names and try again. If still none found return any configured servers with no name.
References findServer(), nidas::util::Inet4Address::getAllByName(), getDSMServerIterator(), nidas::core::DSMServer::getName(), nidas::core::DSMServerIterator::hasNext(), and nidas::core::DSMServerIterator::next().
Referenced by findServerSampleOutputStreamFileSets(), StatsProcess::getStatisticsProcessor(), and nidas::core::DSMServerApp::run().
list< nidas::core::FileSet * > Project::findServerSampleOutputStreamFileSets | ( | const std::string & | name | ) | const |
Find SampleOutputStreamFileSets belonging to SampleArchivers of DSMServers whose name matches the argument name.
If no DSMServer names exactly match, then return the filesets corresponding to a DSMServer with an empty name.
References findServers(), nidas::core::SampleOutput::getIOChannel(), nidas::core::DSMServer::getName(), nidas::core::SampleIOProcessor::getOutputs(), nidas::core::DSMServer::getProcessorIterator(), nidas::core::ProcessorIterator::hasNext(), and nidas::core::ProcessorIterator::next().
Referenced by nidas::core::GetAdsFileName::execute(), StatsProcess::run(), and DataPrep::run().
list< nidas::core::FileSet * > Project::findServerSampleOutputStreamFileSets | ( | ) | const | |
throw | ( | nidas::util::Exception | ||
) |
Call findServerSampleOutputStreamFileSets(name) passing the nodename returned by uname(2).
References WLOG.
Site * Project::findSite | ( | int | stationNumber | ) | const |
Find a Site with the given station number.
References _lookupLock, and _siteByStationNumber.
Site * Project::findSite | ( | const std::string & | name | ) | const |
Find a Site with the given name.
References _lookupLock, and _siteByName.
|
virtual |
Initialize myself from a xercesc::DOMElement.
Implements nidas::core::DOMable.
References nidas::core::DOMObjectFactory::createObject(), nidas::core::Parameter::createParameter(), nidas::core::ServiceCatalog::fromDOMElement(), nidas::core::SensorCatalog::fromDOMElement(), nidas::core::DSMCatalog::fromDOMElement(), nidas::core::DSMServer::fromDOMElement(), nidas::core::Site::fromDOMElement(), nidas::core::XDOMElement::getAttributeValue(), nidas::core::XDOMElement::getNodeName(), ILOG, LogSchemeFromDOMElement(), nidas::core::DSMServer::setProject(), nidas::core::Site::setProject(), nidas::core::Site::validate(), and nidas::util::Exception::what().
Referenced by StatsProcess::listOutputSamples(), PConfig::loadFile(), PConfig::loadRemoteXML(), main(), StatsProcess::run(), ExtractFast2D::run(), ExtractDMT::run(), and DataPrep::run().
|
inline |
References _configName.
|
inline |
References _configVersion.
|
inline |
References _dictionary.
|
inline |
References _dsmCatalog.
Referenced by nidas::core::DSMConfig::fromDOMElement().
DSMConfigIterator Project::getDSMConfigIterator | ( | ) | const |
DSMServerIterator Project::getDSMServerIterator | ( | ) | const |
Referenced by findServer(), and findServers().
DSMServiceIterator Project::getDSMServiceIterator | ( | ) | const |
const string & Project::getFlightName | ( | ) | const |
References _flightName, and _lookupLock.
|
static |
Project is a singleton.
Referenced by nidas::dynld::StatisticsProcessor::addRequestedSampleTag(), nidas::dynld::isff::GOESOutput::addSourceSampleTag(), AutoProject::AutoProject(), nidas::dynld::RawSampleService::connect(), nidas::dynld::psql::PSQLProcessor::connect(), nidas::dynld::raf::SyncRecordSource::connect(), nidas::dynld::XMLConfigService::connected(), nidas::dynld::UDPSampleOutput::connected(), nidas::dynld::raf::CVIProcessor::connectSource(), nidas::dynld::isff::WisardMote::createSampleTag(), nidas::core::NearestResampler::ctorCommon(), nidas::core::NearestResamplerAtRate::ctorCommon(), nidas::core::SampleIOProcessor::fromDOMElement(), nidas::core::SampleOutputBase::fromDOMElement(), nidas::core::SampleTag::fromDOMElement(), nidas::core::Variable::fromDOMElement(), nidas::dynld::isff::PacketInputStream::getGOESProject(), nidas::core::NidasApp::getProject(), nidas::dynld::UDPSampleOutput::getProjectDOM(), nidas::dynld::isff::WindOrienter::handleParameter(), nidas::dynld::ParoSci_202BG_P::init(), nidas::dynld::ParoSci_202BG_T::init(), nidas::dynld::psql::PSQLSampleOutput::initializeGlobalAttributes(), nidas::dynld::raf::SyncServer::initProject(), nidas::dynld::raf::SyncServer::initSensors(), main(), nidas::dynld::isff::Wind3D::parseParameters(), ARLIngest::prepareHeaderIds(), nidas::core::SampleScanner::readBuffer(), nidas::dynld::XMLConfigService::Worker::run(), ExtractDMT::run(), ExtractFast2D::run(), nidas::core::SampleAverager::SampleAverager(), nidas::core::HeaderSource::setDefaults(), nidas::core::FileSet::setDir(), nidas::core::FileSet::setFileName(), and nidas::dynld::SampleInputStream::setIOChannel().
|
inline |
Convenience function to return the maximum site number.
References _maxSiteNumber.
|
inline |
References _minSiteNumber.
|
inline |
References _name.
Referenced by SampleCounter::collectMetadata(), nidas::core::DSMService::fromDOMElement(), SampleCounter::generateStreamId(), nidas::dynld::isff::PacketInputStream::getGOESProject(), nidas::core::Project::MyDictionary::getTokenValue(), nidas::dynld::psql::PSQLSampleOutput::initializeGlobalAttributes(), and nidas::core::DSMSensor::readSamples().
|
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(), 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().
const Parameter * Project::getParameter | ( | const std::string & | name | ) | const |
ProcessorIterator Project::getProcessorIterator | ( | ) | const |
SampleTagIterator Project::getSampleTagIterator | ( | ) | const |
Referenced by getUniqueSampleId().
|
inline |
References _sensorCatalog.
Referenced by nidas::core::DSMSensor::fromDOMElement().
SensorIterator Project::getSensorIterator | ( | ) | const |
|
inline |
References _serviceCatalog.
Referenced by nidas::core::DSMService::fromDOMElement().
SiteIterator Project::getSiteIterator | ( | ) | const |
|
inline |
References _sites.
Referenced by findDSMFromHostname(), nidas::dynld::raf::Aircraft::getAircraft(), and initSensors().
|
inline |
References _sysname.
Referenced by nidas::core::Project::MyDictionary::getTokenValue(), and nidas::core::HeaderSource::setDefaults().
|
inline |
Implement a lookup for tokens that I know about, like $PROJECT, and $SYSTEM.
For other tokens, look them up in the process environment.
References _dictionary, and nidas::core::Project::MyDictionary::getTokenValue().
Referenced by nidas::core::Site::MyDictionary::getTokenValue().
dsm_sample_id_t Project::getUniqueSampleId | ( | unsigned int | dsmid | ) |
Get a temporary unique sample id for a given DSM id.
This id can be used for identifying derived samples during processing, when they are passed between SampleSources and SampleClients. The value of these ids is not saved anywhere, and so they are meant to be used for temporary connections, not for archived samples.
References _sensorMapLock, _usedIds, GET_DSM_ID, GET_SPS_ID, nidas::core::SampleTag::getId(), nidas::util::Logger::getInstance(), getSampleTagIterator(), nidas::core::SampleTagIterator::hasNext(), nidas::util::Logger::log(), LOG_ERR, nidas::core::SampleTagIterator::next(), SET_DSM_ID, and SET_SHORT_ID.
Referenced by nidas::core::NearestResampler::ctorCommon(), and nidas::core::NearestResamplerAtRate::ctorCommon().
VariableIterator Project::getVariableIterator | ( | ) | const |
void Project::initSensors | ( | ) | ||
throw | ( | nidas::util::IOException | ||
) |
Initialize all sensors for a Project.
References getSites(), and nidas::core::Site::initSensors().
void Project::initSensors | ( | Site * | site | ) | |
throw | ( | nidas::util::IOException | |||
) |
Initialize all sensors for a given Site.
Initialize all sensors for a Site.
References nidas::core::Site::initSensors().
void Project::initSensors | ( | DSMConfig * | dsm | ) | |
throw | ( | nidas::util::IOException | |||
) |
Initialize all sensors for a given dsm.
References nidas::core::Site::initSensors().
Assignment not supported.
See comments about copy constructor.
|
private |
Scan the DOM and pull out any <autoconfig> tags, as well as change the autoconfig classes back to DSMSerialSensor, or isff.PropVane as needed, and remove porttype attributes.
References nidas::core::XDOMElement::getAttributeValue(), nidas::core::XDOMElement::getElement(), nidas::core::XDOMElement::getNodeName(), ILOG, nidas::core::XDOMElement::setAttributeValue(), and VLOG.
|
inline |
References _configName.
Referenced by nidas::dynld::raf::SyncServer::initProject(), nidas::core::DSMServerApp::run(), StatsProcess::run(), and DataPrep::run().
|
inline |
References _configVersion.
|
inline |
References _dataset.
Referenced by nidas::core::DSMServerApp::run(), StatsProcess::run(), and DataPrep::run().
|
inline |
References _dsmCatalog.
|
inline |
References _flightName.
|
inline |
References _name.
|
inline |
References _sensorCatalog.
|
inline |
References _serviceCatalog.
|
inline |
References _sysname.
void Project::throw | ( | nidas::core::XMLException | ) |
Convenient method to fill this Project instance from the configuration in the XML file at xmlfilepath
, using the nidas::core::parseXMLConfigFile() function.
References nidas::core::parseXMLConfigFile(), and nidas::core::XMLImplementation::terminate().
|
virtual |
Add my content into a DOMElement.
Reimplemented from nidas::core::DOMable.
References nidas::core::SiteIterator::hasNext(), nidas::core::XDOMElement::setAttributeValue(), and nidas::core::Site::toDOMParent().
Referenced by nidas::dynld::UDPSampleOutput::getProjectDOM().
|
virtual |
Create a DOMElement and append it to the parent.
Reimplemented from nidas::core::DOMable.
References nidas::core::DOMable::getNamespaceURI().
|
private |
Name of XML file that this project was initialized from.
Referenced by getConfigName(), and setConfigName().
|
private |
Referenced by getConfigVersion(), and setConfigVersion().
|
private |
The current dataset.
Referenced by getDataset(), and setDataset().
|
private |
Referenced by expandString(), getDictionary(), and getTokenValue().
|
private |
Referenced by disableAutoconfig().
|
mutableprivate |
Referenced by findDSM().
|
private |
Referenced by getDSMCatalog(), setDSMCatalog(), and ~Project().
|
mutableprivate |
Referenced by getFlightName(), and setFlightName().
|
staticprivate |
Referenced by Project(), and ~Project().
|
mutableprivate |
Referenced by addSite(), findDSM(), findSite(), and getFlightName().
|
private |
Referenced by addSite(), and getMaxSiteNumber().
|
private |
Referenced by addSite(), and getMinSiteNumber().
|
private |
List of pointers to Parameters.
Referenced by addParameter(), getParameter(), and ~Project().
|
mutableprivate |
Referenced by findSensor().
|
private |
Referenced by getSensorCatalog(), setSensorCatalog(), and ~Project().
|
mutableprivate |
Referenced by findSensor(), and getUniqueSampleId().
|
private |
Referenced by addServer(), getServers(), and ~Project().
|
private |
Referenced by getServiceCatalog(), setServiceCatalog(), and ~Project().
|
private |
Referenced by addSite(), and findSite().
|
private |
Referenced by addSite(), and findSite().
|
private |
Referenced by addSite(), getSites(), and ~Project().
|
private |
Referenced by getSystemName(), and setSystemName().
|
private |
Referenced by getUniqueSampleId().