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