Luiza  v03-01
StringParameters.h
1 #ifndef StringParameters_h
2 #define StringParameters_h 1
3 
4 // #include "lcio.h"
5 
6 #include "luiza/LuizaSTLTypes.h"
7 
8 #include <vector>
9 #include <string>
10 #include <map>
11 #include <iostream>
12 
13 
14 typedef std::map< std::string , std::vector< std::string > > ParametersMap ;
15 
16 
17 // using namespace luiza;
18 
19 namespace luiza{
20 
27 class Processor;
28 
29 class StringParameters {
30 
31  friend std::ostream& operator<< ( std::ostream& , StringParameters& ) ;
32 
33 public:
34 
35  StringParameters() ;
36  StringParameters( const StringParameters &sp ) ;
37 
38  void add( const std::string& key , const std::vector<std::string> & values ) ;
39  void add( const std::vector<std::string> & tokens ) ;
40 
41  void erase( const std::string& key ) ;
42 
43  bool isParameterSet( const std::string& key ) ;
44 
45  int getIntVal( const std::string& key ) ;
46  float getFloatVal( const std::string& key ) ;
47  const std::string& getStringVal( const std::string& key ) ;
48 
49  IntVec& getIntVals( const std::string& key , IntVec& intVec ) ;
50  FloatVec& getFloatVals( const std::string& key , FloatVec& floatVec ) ;
51  StringVec & getStringVals( const std::string& key , StringVec & stringVec ) ;
52 
53  StringVec& getStringKeys( StringVec& stringVec );
54 
55  virtual ~StringParameters() ;
56 
57 
58 protected:
59  ParametersMap _map ;
60 
61  // To make life slightly easier
62 
63  friend class Processor;
64 };
65 
66 int intVal( const std::string& str) ;
67 float floatVal( const std::string& str) ;
68 std::ostream& operator<< ( std::ostream& s, StringParameters& p ) ;
69 
70 } // end namespace luiza
71 #endif
Namespace for Luiza framework.
Definition: CCCollection.h:6