00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef STDATABASEI_HH
00041 #define STDATABASEI_HH
00042
00043 class StDbNode;
00044 class StDbTable;
00045 class StDbConfigNode;
00046 class StDbElementIndex;
00047
00048 #include "StDbDefs.hh"
00049
00050 #ifdef __ROOT__
00051 #include "TROOT.h"
00052 #endif
00053
00054 class StDataBaseI {
00055
00056 protected:
00057
00058 StDbType mdbType;
00059 StDbDomain mdbDomain;
00060
00061
00062
00063
00064
00065
00066
00067 char* mdbName;
00068 char* mtypeName;
00069 char* mdomainName;
00070
00071 StDbStoreType mdbStore;
00072
00073 public:
00074
00075 StDataBaseI();
00076 StDataBaseI(StDbType type, StDbDomain domain);
00077 StDataBaseI(const char* typeName, const char* domainName);
00078
00079 virtual ~StDataBaseI();
00080
00081 virtual void setDataBase(StDbType type, StDbDomain domain);
00082 virtual void setDataBase(const char* typeName, const char* domainName);
00083 virtual void setDataBase(const char* dbName);
00084
00085 virtual void setDbType(StDbType type);
00086 virtual void setDbDomain(StDbDomain domain);
00087 virtual StDbType getDbType() const ;
00088 virtual StDbDomain getDbDomain() const ;
00089
00090 virtual void setDbName(const char* dbName);
00091 virtual void setTypeName(const char* typeName);
00092 virtual void setDomainName(const char* domainName);
00093 virtual char* getDbName() const ;
00094 virtual char* getTypeName() const ;
00095 virtual char* getDomainName() const ;
00096 virtual char* printDbName();
00097 virtual char* printTypeName();
00098 virtual char* printDomainName();
00099 virtual bool checkDbName(const char* name);
00100 virtual bool checkDbType(const char* type);
00101 virtual bool checkDbDomain(const char* domain);
00102
00103 virtual StDbStoreType getDbStoreType() const;
00104 virtual void setDbStoreType(StDbStoreType type);
00105
00106
00107 virtual void use() = 0;
00108 virtual void close() = 0;
00109 virtual int QueryDb(StDbConfigNode* node) = 0;
00110 virtual int QueryDb(StDbNode* node) = 0;
00111 virtual int QueryDb(StDbTable* table, unsigned int reqTime) = 0;
00112 virtual int QueryDb(StDbTable* table, const char* whereClause) = 0;
00113 virtual unsigned int* QueryDbTimes(StDbTable* table,
00114 const char* whereClause, int opt=0) = 0;
00115 virtual int QueryDbFunction(StDbTable* table,
00116 const char* whereClause, char* funcName) = 0;
00117 virtual int QueryDescriptor(StDbTable* table) = 0;
00118 virtual int WriteDb(StDbTable* table, unsigned int storeTime) = 0;
00119 virtual int WriteDb(StDbConfigNode* node, int parentID, int& configID) = 0;
00120
00121 virtual int storeConfigNode(StDbConfigNode* node) = 0;
00122 virtual int storeTableNode(StDbTable* table) = 0;
00123 virtual bool insertNodeRelation(int configID, int parent, int child) = 0;
00124 virtual bool rollBack(StDbNode* node) = 0;
00125 virtual bool rollBack(StDbTable* table) = 0;
00126
00127 virtual unsigned int getUnixTime(const char* time) = 0;
00128 virtual char* getDateTime(unsigned int time) = 0;
00129 virtual int* selectElements(const char* elementName,
00130 StDbElementIndex* inval,
00131 int& numElements) = 0;
00132 #ifdef __ROOT__
00133 ClassDef(StDataBaseI,0)
00134 #endif
00135
00136 };
00137
00138 inline void StDataBaseI::setDbType(StDbType type) {mdbType = type; };
00139 inline void StDataBaseI::setDbDomain(StDbDomain domain) {mdbDomain = domain; }
00140 inline StDbType StDataBaseI::getDbType() const { return mdbType; };
00141 inline StDbDomain StDataBaseI::getDbDomain() const { return mdbDomain; };
00142 inline StDbStoreType StDataBaseI::getDbStoreType() const {return mdbStore;};
00143 inline void StDataBaseI::setDbStoreType(StDbStoreType type) {mdbStore=type; };
00144
00145 #endif