StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StHyperCacheConfig.h
1 #ifndef __ST_HYPERCACHECONFIG_H
2 #define __ST_HYPERCACHECONFIG_H
3 
4 #include "StHyperUtilGeneric.h"
5 #include "StHyperSingleton.h"
6 #include <map>
7 #include <string>
8 
11 
13 {
14 
15 public:
18 
19  bool setParameter(const std::string key, std::string value) {
20  std::pair<std::map<std::string, std::string>::iterator,bool> ret;
21  ret = m_CacheConfig.insert( std::pair<std::string, std::string>(key, value) );
22  return ret.second;
23  };
24 
25  template <class T>
26  bool setParameter(const std::string key, T value) { // set specific parameter to config
27  std::string val = StHyperUtilGeneric::toString(value);
28  std::pair<std::map<std::string, std::string>::iterator,bool> ret;
29  ret = m_CacheConfig.insert( std::pair<std::string, std::string>(key, value) );
30  return ret.second;
31  };
32 
33  template <class T>
34  T getParameter(const std::string key) { // get specific parameter from config
35  T obj;
36  std::map<std::string,std::string>::iterator it;
37  it = m_CacheConfig.find(key);
38  if ( it != m_CacheConfig.end() ) {
39  obj = StHyperUtilGeneric::fromString<T>((*it).second);
40  } else {
41  obj = StHyperUtilGeneric::fromString<T>("");
42  }
43  return obj;
44  };
45 
46 
47  void clear(); // remove all parameters from config cache
48 
49  friend std::ostream& operator<< (std::ostream& o, StHyperCacheConfig const& cfg);
50 
51 protected:
52  std::map<std::string,std::string> m_CacheConfig;
53 
54 };
55 
56 #endif // __ST_HYPERCACHE_CONFIG_H