Marlin  1.17.1
 All Classes Namespaces Functions Variables Enumerations Friends Pages
StringParameters.h
1 #ifndef StringParameters_h
2 #define StringParameters_h 1
3 
4 #include "lcio.h"
5 
6 #ifdef LCIO_MAJOR_VERSION
7  #if LCIO_VERSION_GE( 1,2)
8  #include "LCIOSTLTypes.h"
9  #endif
10 #else
11  #include "MarlinLCIOSTLTypes.h"
12 #endif
13 
14 
15 #include <vector>
16 #include <string>
17 #include <map>
18 #include <iostream>
19 
20 
21 typedef std::map< std::string , std::vector< std::string > > ParametersMap ;
22 
23 
24 using namespace lcio ;
25 
26 namespace marlin{
27 
35 
36  friend std::ostream& operator<< ( std::ostream& , StringParameters& ) ;
37 
38 public:
39 
40  StringParameters() ;
41  StringParameters( const StringParameters &sp ) ;
42 
43  void add( const std::string& key , const std::vector<std::string> & values ) ;
44  void add( const std::vector<std::string> & tokens ) ;
45 
46  void erase( const std::string& key ) ;
47 
48  bool isParameterSet( const std::string& key ) ;
49 
50  int getIntVal( const std::string& key ) ;
51  float getFloatVal( const std::string& key ) ;
52  const std::string& getStringVal( const std::string& key ) ;
53 
54  IntVec& getIntVals( const std::string& key , IntVec& intVec ) ;
55  FloatVec& getFloatVals( const std::string& key , FloatVec& floatVec ) ;
56  StringVec & getStringVals( const std::string& key , StringVec & stringVec ) ;
57 
58  StringVec& getStringKeys( StringVec& stringVec );
59 
60  virtual ~StringParameters() ;
61 
62 protected:
63  ParametersMap _map{};
64 
65 };
66 
67 int intVal( const std::string& str) ;
68 float floatVal( const std::string& str) ;
69 std::ostream& operator<< ( std::ostream& s, StringParameters& p ) ;
70 
71 } // end namespace marlin
72 #endif
Simple parameters class for Marlin.
Definition: StringParameters.h:34