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
#include "StDataBaseI.hh"
00036
#include "StDbManager.hh"
00037
#include <string.h>
00038
00039
#ifdef __ROOT__
00040
ClassImp(
StDataBaseI)
00041 #endif
00043
00044 StDataBaseI::StDataBaseI() : mdbType(
dbStDb), mdbDomain(
dbDomainUnknown), mdbName(0), mtypeName(0), mdomainName(0), mdbStore(
dbV00) { };
00045
00046 StDataBaseI::StDataBaseI(StDbType type, StDbDomain domain) : mdbName(0), mtypeName(0), mdomainName(0), mdbStore(
dbV00) {
setDataBase(type,domain); }
00047
00048 StDataBaseI::StDataBaseI(
const char* typeName,
const char* domainName) : mdbName(0), mtypeName(0), mdomainName(0), mdbStore(
dbV00) {
setDataBase(typeName,domainName); }
00049
00051 StDataBaseI::~StDataBaseI(){
00052
if(
mdbName)
delete []
mdbName;
00053
if(
mtypeName)
delete []
mtypeName;
00054
if(
mdomainName)
delete []
mdomainName;
00055 }
00056
00058
void
00059 StDataBaseI::setDataBase(StDbType type, StDbDomain domain){
00060
setDbType(type);
00061
setDbDomain(domain);
00062
char* name=
StDbManager::Instance()->
getDbTypeName(type);
00063
setTypeName(name);
if(name)
delete [] name;
00064 name=
StDbManager::Instance()->
getDbDomainName(domain);
00065
setDomainName(name);
if(name)
delete [] name;
00066 name=
StDbManager::Instance()->
getDbName(
mtypeName,
mdomainName);
00067
setDbName(name);
if(name)
delete [] name;
00068 }
00069
00071
void
00072 StDataBaseI::setDataBase(
const char* typeName,
const char* domainName){
00073
setTypeName(typeName);
00074
setDomainName(domainName);
00075
char* name =
StDbManager::Instance()->
getDbName(
mtypeName,
mdomainName);
00076
setDbName(name);
if(name)
delete [] name;
00077
setDbType(StDbManager::Instance()->
getDbType(typeName));
00078
setDbDomain(StDbManager::Instance()->
getDbDomain(domainName));
00079 }
00080
00082
void
00083 StDataBaseI::setDataBase(
const char* dbName){
00084
setDbName(dbName);
00085
StDbManager::Instance()->
getDataBaseInfo(dbName,
mtypeName,
mdomainName);
00086
setDbType(StDbManager::Instance()->
getDbType(
mtypeName));
00087
setDbDomain(StDbManager::Instance()->
getDbDomain(
mdomainName));
00088 }
00089
00091
void
00092 StDataBaseI::setDbName(
const char* dbName) {
00093
00094
if(dbName){
00095
if(
mdbName)
delete []
mdbName;
00096
mdbName =
new char[strlen(dbName)+1];
00097 strcpy(
mdbName,dbName);
00098 }
00099 }
00100
00102
void
00103 StDataBaseI::setTypeName(
const char* typeName) {
00104
00105
if(typeName){
00106
if(
mtypeName)
delete []
mtypeName;
00107
mtypeName =
new char[strlen(typeName)+1];
00108 strcpy(
mtypeName,typeName);
00109 }
00110 }
00111
00113
void
00114 StDataBaseI::setDomainName(
const char* domainName) {
00115
00116
if(domainName){
00117
if(
mdomainName)
delete []
mdomainName;
00118
mdomainName =
new char[strlen(domainName)+1];
00119 strcpy(
mdomainName,domainName);
00120 }
00121 }
00122
00124
char*
00125 StDataBaseI::getDbName()
const {
00126
00127
char* retVal=0;
00128
if(
mdbName) {
00129 retVal =
new char[strlen(
mdbName)+1];
00130 strcpy(retVal,
mdbName);
00131 }
00132
return retVal;
00133 }
00134
00136
char*
00137 StDataBaseI::getTypeName()
const {
00138
00139
char* retVal=0;
00140
if(
mtypeName) {
00141 retVal =
new char[strlen(
mtypeName)+1];
00142 strcpy(retVal,
mtypeName);
00143 }
00144
return retVal;
00145 }
00146
00148
char*
00149 StDataBaseI::getDomainName()
const {
00150
00151
char* retVal=0;
00152
if(
mdomainName) {
00153 retVal =
new char[strlen(
mdomainName)+1];
00154 strcpy(retVal,
mdomainName);
00155 }
00156
return retVal;
00157 }
00158
00160
00161 char*
StDataBaseI::printDbName() {
return mdbName; }
00162 char*
StDataBaseI::printTypeName() {
return mtypeName; }
00163 char*
StDataBaseI::printDomainName() {
return mdomainName; }
00164 bool StDataBaseI::checkDbName(
const char* name) {
00165
return (strcmp(name,
mdbName)==0) ?
true :
false;
00166 }
00167 bool StDataBaseI::checkDbType(
const char* name) {
00168
return (strcmp(name,
mtypeName)==0) ?
true :
false;
00169 }
00170 bool StDataBaseI::checkDbDomain(
const char* name) {
00171
return (strcmp(name,
mdomainName)==0) ?
true :
false;
00172 }