dataformathandler.h

Go to the documentation of this file.
00001 #ifndef __dataformathandler_h
00002 #define __dataformathandler_h
00003 
00004 #include  <set>
00005 #include  <map>
00006 #include  <utility>
00007 #include  <vector>
00008 #include  "nvector.h"
00009 
00010 #include  <string>
00011 #include  "fixarray.h"
00012 #include  "gascoigne.h"
00013 
00014 /***************************************************/
00015 
00016 namespace Gascoigne
00017 {
00018 class DataFormatHandler
00019 {
00020 private:
00021 
00022   typedef std::pair<std::string,std::string>  NameType;
00023   typedef std::pair<std::string,double>  StringDouble;
00024 
00025   typedef std::map<std::string,std::string*>  TypeString;
00026   typedef std::map<std::string,int*>     TypeInt;
00027   typedef std::map<std::string,bool*>     TypeBool;//neu
00028   typedef std::map<std::string,float*>   TypeFloat;
00029   typedef std::map<std::string,double*>  TypeDouble;
00030   typedef std::map<std::string,StringDouble*>  TypeStringDouble;
00031 
00032   typedef std::map<std::string,fixarray<2,double>*>     TypeFix2Double;
00033   typedef std::map<std::string,fixarray<3,double>*>     TypeFix3Double;
00034 
00035   typedef std::map<std::string,std::vector<double>*>        TypeVectorDouble;
00036   typedef std::map<std::string,IntVector*>           TypeVectorInt;
00037   typedef std::map<std::string,std::vector<std::string>*>         TypeVectorString;
00038 
00039   typedef std::map<std::string,std::set<int>*>           TypeSetInt;
00040   typedef std::map<std::string,std::set<std::vector<std::string> >*>  TypeSetVectorString;
00041 
00042   typedef std::map<std::string,std::map<int,IntVector >*> TypeMapIntVectorInt;
00043 
00044   std::set<NameType>        NT;
00045   TypeString           TS;
00046   TypeInt              TI;
00047   TypeBool             TB;//neu
00048   TypeFloat            TF;
00049   TypeDouble           TD;
00050   TypeFix2Double       TF2D;
00051   TypeFix3Double       TF3D;
00052 
00053   TypeVectorDouble    TND;
00054   TypeVectorInt       TNI;
00055   TypeVectorString     TVS;
00056 
00057   TypeSetInt           TSI;
00058   TypeSetVectorString  TSVS;
00059 
00060   TypeMapIntVectorInt TMINI;
00061 
00062   TypeStringDouble     TSD;
00063 
00064   std::string search(std::string& fo, const std::string& name);
00065 
00066 public:
00067 
00068   // without default values
00069   void insert(const std::string&, std::string*);
00070   void insert(const std::string&, int*);
00071   void insert(const std::string&, bool*); //neu
00072   void insert(const std::string&, float*);
00073   void insert(const std::string&, double*);
00074 
00075   void insert(const std::string&, fixarray<2,double>*);
00076   void insert(const std::string&, fixarray<3,double>*);
00077 
00078   void insert(const std::string&, std::vector<double>*);
00079   void insert(const std::string&, IntVector*);
00080   void insert(const std::string&, std::vector<std::string>*);
00081 
00082   void insert(const std::string&, IntSet*);
00083   void insert(const std::string&, std::set<std::vector<std::string> >*);
00084 
00085   void insert(const std::string&, std::map<int,IntVector >*);
00086   void insert(const std::string&, std::map<int,std::string>*);
00087 
00088   void insert(int, StringDouble*);
00089 
00090   // with default values
00091   void insert(const std::string&, std::string*, const std::string&);
00092   void insert(const std::string&, int*   , int);
00093   void insert(const std::string&, bool*   , bool);//neu
00094   void insert(const std::string&, float*, float);
00095   void insert(const std::string&, double*, double);
00096   void insert(const std::string&, fixarray<2,double>*, fixarray<2,double>&);
00097   void insert(const std::string&, fixarray<3,double>*, fixarray<3,double>&);
00098   void insert(const std::string&, std::vector<double>*, std::vector<double>&);
00099   void insert(const std::string&, IntVector*, IntVector&);
00100 
00101   void get(std::string&, const std::string&);
00102 
00103   void setvalue(const std::string&, const std::string&);
00104   void setvalue(const std::string&, int);
00105   void setvalue(const std::string&, bool);//neu
00106   void setvalue(const std::string&, float);
00107   void setvalue(const std::string&, double);
00108 
00109   void setvalue(const std::string&, fixarray<2,double>&);
00110   void setvalue(const std::string&, fixarray<3,double>&);
00111 
00112   void setvalue(const std::string&, std::vector<double>&);
00113   void setvalue(const std::string&, IntVector&);
00114   void setvalue(const std::string&, std::vector<std::string>&);
00115 
00116   void setvalue(const std::string&, IntSet&);
00117 
00118   void setvalue(const std::string&, std::pair<int,IntVector >&);
00119 
00120   void setvalue(const std::string&, StringDouble&);
00121 
00122   void insertvalue(const std::string&, std::vector<std::string>&);
00123 
00124   void print(std::ostream&) const;
00125 };
00126 }
00127 
00128 #endif

Generated on Thu Sep 14 10:34:34 2006 for Gascoigne by  doxygen 1.4.7