/home/cern/BDSIM_new/include/BDSMySQLTable.hh

00001 /* * BDSIM code.    Version 1.0
00002    * Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    * Last modified 24.7.2002
00004    * Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 
00006 
00007    Author of this code: John C. Carter, Royal Holloway, Univ. of London.
00008    Last modified 12.10.2005
00009 */
00010 
00011 
00012 #ifndef BDSMySQLTable_h
00013 #define BDSMySQLTable_h 1
00014 
00015 //using namespace std;
00016 #include <vector>
00017 
00018 class BDSMySQLVariable
00019 {
00020 
00021 public:
00022   
00023   BDSMySQLVariable(G4String aVarName, G4String aVarType);
00024 
00025   void AddValue(G4double aVarValue);
00026   void AddValue(G4String aVarValue);
00027   void AddValue(G4int aVarValue);
00028 
00029   G4String GetStrValue(G4int itemN);
00030   G4double GetDblValue(G4int itemN);
00031   G4int GetIntValue(G4int itemN);
00032 
00033   void SetStrValue(G4int itemN, G4String newValue);
00034   void SetDblValue(G4int itemN, G4double newValue);
00035   void SetIntValue(G4int itemN, G4int newValue);
00036 
00037   G4int GetNVariables();
00038 
00039   G4String GetVarType();
00040   G4String GetName();
00041 
00042   ~BDSMySQLVariable(){};
00043   
00044 protected:
00045 
00046 private:
00047 
00048   G4int itsNVariables;
00049   G4String itsVarName;
00050   G4String itsVarType;
00051   std::vector<G4double> itsDblVar;
00052   std::vector<G4String> itsStrVar;
00053   std::vector<G4int> itsIntVar;
00054 
00055 };
00056 
00057 inline BDSMySQLVariable::BDSMySQLVariable(G4String aVarName, G4String aVarType)
00058 {
00059   itsVarName=aVarName;
00060   itsVarType=aVarType;
00061   itsNVariables=0;
00062 }
00063 
00064 inline G4int BDSMySQLVariable::GetNVariables()
00065 {return itsNVariables;}
00066 
00067 inline G4String BDSMySQLVariable::GetName()
00068 {return itsVarName;}
00069 
00070 inline G4String BDSMySQLVariable::GetVarType()
00071 {return itsVarType;}
00072 
00073 inline void BDSMySQLVariable::AddValue(G4double aVarValue)
00074 {
00075   itsNVariables++;
00076   // Check is to avoid unecessary confusion
00077   if(itsVarType=="DOUBLE")
00078     itsDblVar.push_back(aVarValue);
00079 }
00080 
00081 inline void BDSMySQLVariable::AddValue(G4int aVarValue)
00082 {
00083   itsNVariables++;
00084   // Check is to avoid unecessary confusion
00085   if(itsVarType=="INTEGER")
00086     itsIntVar.push_back(aVarValue);
00087 }
00088 
00089 inline void BDSMySQLVariable::AddValue(G4String aVarValue)
00090 {
00091   itsNVariables++;
00092   itsStrVar.push_back(aVarValue);
00093 }
00094 
00095 inline  G4String BDSMySQLVariable::GetStrValue(G4int itemN)
00096 {return itsStrVar[itemN];}
00097 
00098 inline  G4double BDSMySQLVariable::GetDblValue(G4int itemN)
00099 {return itsDblVar[itemN];}
00100 
00101 inline  G4int BDSMySQLVariable::GetIntValue(G4int itemN)
00102 {return itsIntVar[itemN];}
00103 
00104 inline  void BDSMySQLVariable::SetStrValue(G4int itemN, G4String newValue)
00105 {itsStrVar[itemN] = newValue;}
00106 
00107 inline  void BDSMySQLVariable::SetDblValue(G4int itemN, G4double newValue)
00108 {itsDblVar[itemN] = newValue;}
00109 
00110 inline  void BDSMySQLVariable::SetIntValue(G4int itemN, G4int newValue)
00111 {itsIntVar[itemN] = newValue;}
00112 
00113 class BDSMySQLTable 
00114 {
00115 public:
00116   BDSMySQLTable (G4String aTableName);
00117   ~BDSMySQLTable();
00118   
00119 
00120   void AddVariable(G4String aVarName, G4String aType);
00121 
00122   G4String GetName();
00123   G4int GetNVariables();
00124 
00125   BDSMySQLVariable* GetVariable(G4String aVarName);
00126   BDSMySQLVariable* GetVariable(G4int aVarN);
00127 
00128 protected:
00129   
00130 private:
00131 
00132   G4int itsNVariables;
00133   G4String itsTableName;
00134   std::vector<BDSMySQLVariable*> itsVar;
00135   
00136 };
00137 
00138 inline G4String BDSMySQLTable::GetName()
00139 {return itsTableName;}
00140 
00141 inline G4int BDSMySQLTable::GetNVariables()
00142 {return itsNVariables;}
00143 
00144 #endif

Generated on Wed Mar 5 17:25:22 2008 for BDSIM by  doxygen 1.5.3