CMS 3D CMS Logo

IgEnvsElement.cc

Go to the documentation of this file.
00001 //<<<<<< INCLUDES                                                       >>>>>>
00002 
00003 #include "Iguana/Framework/interface/IgEnvsElement.h"
00004 #include <stdlib.h>
00005 
00006 //<<<<<< PRIVATE DEFINES                                                >>>>>>
00007 //<<<<<< PRIVATE CONSTANTS                                              >>>>>>
00008 //<<<<<< PRIVATE TYPES                                                  >>>>>>
00009 //<<<<<< PRIVATE VARIABLE DEFINITIONS                                   >>>>>>
00010 //<<<<<< PUBLIC VARIABLE DEFINITIONS                                    >>>>>>
00011 //<<<<<< CLASS STRUCTURE INITIALIZATION                                 >>>>>>
00012 
00013 IG_DEFINE_STATE_ELEMENT (IgEnvsElement, "Services/Global/Envs");
00014 
00015 //<<<<<< PRIVATE FUNCTION DEFINITIONS                                   >>>>>>
00016 //<<<<<< PUBLIC FUNCTION DEFINITIONS                                    >>>>>>
00017 //<<<<<< MEMBER FUNCTION DEFINITIONS                                    >>>>>>
00018 
00019 IgEnvsElement::IgEnvsElement (IgState *state)
00020     : m_state (state)
00021 { m_state->put (s_key, this); }
00022 
00023 bool
00024 IgEnvsElement::getEnv(const std::string& name, std::string& value) const
00025 {
00026   char *envValue = getenv (name.c_str());
00027   if (envValue != NULL)
00028   {
00029     value = envValue;
00030     return true;
00031   }
00032   return false;
00033 }
00034 
00035 bool
00036 IgEnvsElement::getEnv(const std::string& name, std::vector<std::string>& value,
00037                    char separator /* = ':' */) const
00038 {
00039   std::string all;
00040   if (getEnv(name, all))
00041   {
00042     std::string item ("");
00043     size_t size = all.size();
00044     for (size_t i=0; i<size; i++)
00045     {
00046       if (all[i] == separator)
00047       {
00048         value.push_back (item);
00049         item="";
00050       }
00051       else
00052         item.push_back(all[i]);
00053     }
00054     value.push_back (item);
00055     return true;
00056   }
00057   return false;
00058 }
00059 
00060 bool
00061 IgEnvsElement::getEnv(const std::string& name, int& value) const
00062 {
00063   std::string all;
00064   if (getEnv(name, all))
00065   {
00066     value = atoi(all.c_str());
00067     return true;
00068   }
00069   return false;
00070 }
00071 
00072 bool
00073 IgEnvsElement::getEnv(const std::string& name, long& value) const
00074 {
00075   std::string all;
00076   if (getEnv(name, all))
00077   {
00078     value = atol(all.c_str());
00079     return true;
00080   }
00081   return false;
00082 }
00083 
00084 bool
00085 IgEnvsElement::getEnv(const std::string& name, unsigned int& value) const
00086 {
00087   unsigned long value1;
00088   if (getEnv(name, value1))
00089   {
00090     value = (unsigned int)(value1);
00091     return true;
00092   }
00093   return false;
00094 }
00095 
00096 bool
00097 IgEnvsElement::getEnv(const std::string& name, unsigned long& value) const
00098 {
00099   std::string all;
00100   if (getEnv(name, all))
00101   {
00102     value = strtoul(all.c_str(), (char**)NULL, 10);
00103     return true;
00104   }
00105   return false;
00106 }
00107 
00108 bool
00109 IgEnvsElement::getEnv(const std::string& name, float& value) const
00110 {
00111   std::string all;
00112   if (getEnv(name, all))
00113   {
00114     value = atof(all.c_str());
00115     return true;
00116   }
00117   return false;
00118 }
00119 
00120 bool
00121 IgEnvsElement::getEnv(const std::string& name, double& value) const
00122 {
00123   std::string all;
00124   if (getEnv(name, all))
00125   {
00126     value = strtod(all.c_str(), (char**)NULL);
00127     return true;
00128   }
00129   return false;
00130 }

Generated on Tue Jun 9 17:38:27 2009 for CMSSW by  doxygen 1.5.4