DcsData.cpp

00001 #include "DcsData.h"
00002 #include "Sct/LogicErrors.h"
00003 #include <algorithm>
00004 
00005 namespace SctData{
00006   DcsData::DataPoint::DataPoint(float value, OWLTime time) 
00007     : value(value), time(time) {
00008   }
00009   DcsData::DataPoint::DataPoint() : value (0.), time(long(0)){
00010   }
00011   DcsData::DataPoint::~DataPoint(){
00012   }
00013 
00014   std::string DcsData::getClassName() const{
00015     return "SctData::DcsData";
00016   }
00017 
00018   DcsData::DcsData() {}
00019   
00020   DcsData::~DcsData() {}
00021 
00022   void DcsData::setParameter(const std::string& name, float value, OWLTime time){
00023     m_data[name]=DataPoint(value, time);
00024   }
00025   
00026   bool DcsData::hasParameter(const std::string& name) const {
00027     return ( m_data.find(name) != m_data.end() );
00028   }
00029 
00030   float DcsData::getParameter(const std::string& name) const {
00031     return getDataPoint(name).value;
00032   }
00033 
00034   OWLTime DcsData::getTime(const std::string& name) const {
00035     return getDataPoint(name).time;
00036   }
00037   
00038   std::list <std::string> DcsData::getAllParameterNames() const{
00039     std::list<std::string> names;
00040     for (std::map<std::string, DataPoint>::const_iterator i=m_data.begin();
00041      i!=m_data.end(); ++i){
00042       names.push_back((*i).first);
00043     }
00044     return names;
00045   }
00046 
00047   DcsData::DataPoint DcsData::getDataPoint(const std::string& name) const {
00048     if (!hasParameter(name)){
00049       std::cerr << "No such parameter " << name << std::endl;
00050       for ( std::map<std::string, DataPoint>::const_iterator i = m_data.begin();
00051         i != m_data.end(); ++i ){
00052     std::cerr << "\t" << (*i).first << " = " << (*i).second.value << std::endl;
00053       }
00054       throw Sct::LogicError(string("No such parameter ")+name, __FILE__, __LINE__);
00055     }
00056     return (*m_data.find(name)).second;
00057   }
00058 
00059 }

Generated on Mon Feb 6 14:01:18 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6