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
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
#ifndef STDBMANAGER_HH
00121
#define STDBMANAGER_HH
00122
00123
#include <string.h>
00124
#include "StString.h"
00125
00126
#include "stdb_streams.h"
00127
00128
00129
#include "StDbDefs.hh"
00130
00131
#include "StDbMessService.hh"
00132
00133
00134
class StDbServer;
00135
class StDataBaseI;
00136
class dbEnvList;
00137
class StDbNode;
00138
class StDbConfigNode;
00139
class StDbTable;
00140
00141
#ifdef __ROOT__
00142
#include "TROOT.h"
00143
#endif
00144
00145 class StDbManager {
00146
00147
protected:
00148
00149 bool misVerbose;
00150 bool misQuiet;
00151 StDbMessService*
Messenger;
00152 char*
muserName;
00153 char*
mpWord;
00154
00155 bool misTimeLogged;
00156
00157
StDbManager();
00158
static StDbManager*
mInstance;
00159
00160
char*
mstringDup(
const char* str);
00161
00162
public:
00163
00164
00165
static StDbManager*
Instance();
00166
virtual ~StDbManager();
00167
00168
00169
00170
virtual StDbConfigNode*
initConfig(
const char* dbName) =0;
00171
virtual StDbConfigNode* initConfig(
const char* dbName,
00172
const char* configName,
int opt=0) =0;
00173
virtual StDbConfigNode* initConfig(StDbType type, StDbDomain domain) =0;
00174
virtual StDbConfigNode* initConfig(StDbType type, StDbDomain domain,
00175
const char* configName,
int opt=0) =0;
00176
virtual StDbConfigNode* initConfig(StDbType type, StDbDomain domain,
00177
unsigned int requestTime,
int opt=0) =0;
00178
virtual StDbConfigNode* initConfig(
const char* dbName,
00179
unsigned int requestTime,
int opt=0) =0;
00180
00181
virtual char*
getConfigNodeName(StDbType t, StDbDomain d) =0;
00182
virtual char*
getExternalVersion(StDbType t,StDbDomain d) =0;
00183
virtual dbEnvList*
getEnvList(
const char* name) =0;
00184
00185
00186
virtual StDbTable*
newDbTable(
const char* dbName,
const char* tName)=0;
00187
virtual StDbTable* newDbTable(
StDbNode* node) =0;
00188
00189
00190
virtual StDataBaseI*
findDb(StDbType type, StDbDomain domain) =0;
00191
virtual StDataBaseI* findDb(
const char*
dbType,
const char*
dbDomain) =0;
00192
virtual StDataBaseI* findDb(
const char* databaseName) =0;
00193
virtual StDbServer*
findServer(StDbType type, StDbDomain domain) =0;
00194
virtual StDbServer* findServer(
StDbNode* node) =0;
00195
virtual StDbServer* findServer(
const char* type,
const char* domain) =0;
00196
virtual StDbServer* findServer(
const char* databaseName) =0;
00197
virtual StDbServer*
findDefaultServer() =0;
00198
00199
00200
virtual char*
getDbTypeName(StDbType type) =0;
00201
virtual char*
getDbDomainName(StDbDomain domain) =0;
00202
virtual StDbType getDbType(
const char* typeName) =0;
00203
virtual StDbDomain getDbDomain(
const char* domainName) =0;
00204
virtual char*
getDbName(
const char* typeName,
const char* domName)=0;
00205
virtual char*
printDbName(StDbType type, StDbDomain domain) =0;
00206
00207
00208
virtual void setRequestTime(
unsigned int time) =0;
00209
virtual void setRequestTime(
const char* time) =0;
00210
virtual unsigned int getUnixRequestTime() =0;
00211
virtual char*
getDateRequestTime() =0;
00212
virtual unsigned int getUnixCheckTime() =0;
00213
virtual char*
getDateCheckTime() =0;
00214
virtual void setStoreTime(
unsigned int time) =0;
00215
virtual void setStoreTime(
const char* time) =0;
00216
virtual unsigned int getUnixStoreTime() =0;
00217
virtual char*
getDateStoreTime() =0;
00218
00219
00220
virtual bool getDataBaseInfo(
const char* dbname,
00221
char*& type,
char*& domain) =0;
00222
virtual bool getDataBaseInfo(
const char* dbname,
00223 StDbType& type, StDbDomain& domain) =0;
00224
00225
00226
virtual bool IsValid(
StDbTable* table) =0;
00227
virtual bool fetchDbTable(
StDbTable* table) =0;
00228
virtual bool fetchDbTable(
StDbTable* table,
char* whereClause) =0;
00229
virtual bool fetchAllTables(
StDbConfigNode* node) =0;
00230
virtual bool storeDbTable(
StDbTable* table,
bool commitWhenDone=
true) =0;
00231
virtual bool storeAllTables(
StDbConfigNode* node,
00232
bool commitWhenDone=
true) =0;
00233
virtual int storeConfig(
StDbConfigNode* node,
int currentID,
00234
int& configID,
bool commitWhenDone=
true) =0;
00235
00236
00237
virtual bool rollBackAllTables(
StDbConfigNode* node) =0;
00238
virtual bool rollBackAllNodes(
StDbConfigNode* node) =0;
00239
virtual bool rollBack(
StDbNode* node) =0;
00240
virtual bool rollBack(
StDbTable* table) =0;
00241
virtual bool commitAllTables(
StDbConfigNode* node) =0;
00242
virtual bool commitAllNodes(
StDbConfigNode* node) =0;
00243
00244
00245
virtual void closeAllConnections() =0;
00246
virtual void closeAllConnections(
StDbConfigNode* node) =0;
00247
virtual void closeConnection(
StDbNode* node) =0;
00248
00249
virtual void printTimeStats() =0;
00250
00251
00252
virtual bool IsVerbose() const;
00253 virtual
void setVerbose(
bool isVerbose);
00254 virtual
bool IsQuiet() const ;
00255 virtual
void setQuiet(
bool isQuiet);
00256 virtual
void turnOffTimeLogging();
00257 virtual
void updateMessLevel();
00258 virtual
void setMessenger(
StDbMessService* service);
00259 virtual
StDbMessService* getMessenger();
00260 virtual
int printInfo(const
char* m1, StDbMessLevel ml,
00261
int lineNumber=0, const
char* className=" ",
00262 const
char* methodName=" ") ;
00263 virtual
int printInfo(const
char* m1, const
char* m2,
00264 StDbMessLevel ml,
int lineNumber=0,
00265 const
char* className=" ",
00266 const
char* methodName=" ");
00267
00268 virtual
char* userName();
00269 virtual
char* pWord();
00270 virtual
void setUser(const
char* userName, const
char* pWord);
00271
00272
00273 #ifdef __ROOT__
00274 ClassDef(
StDbManager,0)
00275 #endif
00276
00277 };
00278
00279 inline
bool StDbManager::IsVerbose()
const {
return misVerbose;};
00280 inline void StDbManager::setVerbose(
bool isVerbose){
00281
misVerbose=isVerbose;
00282
if(isVerbose)
misQuiet=
false;
00283
updateMessLevel();
00284 };
00285 inline bool StDbManager::IsQuiet()
const {
return misQuiet;};
00286 inline void StDbManager::setQuiet(
bool isQuiet){
00287
misQuiet=isQuiet;
00288
if(isQuiet)
misVerbose=
false;
00289
updateMessLevel();
00290 }
00291 inline void StDbManager::updateMessLevel(){
00292
Messenger->
setMessLevel(
dbMWarn);
00293
if(
misQuiet)
Messenger->
setMessLevel(
dbMErr);
00294
if(
misVerbose)
Messenger->
setMessLevel(
dbMDebug);
00295 }
00296 inline void StDbManager::setMessenger(
StDbMessService* service){
00297
delete Messenger;
00298
Messenger=service;
00299
updateMessLevel();
00300 }
00301 inline StDbMessService*
StDbManager::getMessenger(){
return Messenger; }
00302 inline char*
StDbManager::userName() {
return muserName; }
00303 inline char*
StDbManager::pWord() {
return mpWord; }
00304
00305
#endif
00306
00307
00308
00309
00310
00311
00312
00313
00314