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