00001
#include "StDbDefaults.hh"
00002
#include "stdb_streams.h"
00003
#include <dirent.h>
00004
#include <stdlib.h>
00005
00006 StDbDefaults*
StDbDefaults::mInstance=0;
00007
00008 StDbDefaults::StDbDefaults(){
00009
00010 strncpy(
mversion,
"default",
sizeof(
mversion));
00011 strncpy(
mflavor,
"ofl",
sizeof(
mflavor));
00012
mprodTime = 0;
00013
mendTime =2145873600;
00014 strncpy(
mdbServerVar,
"STDB_SERVERS",
sizeof(
mdbServerVar));
00015 strncpy(
mdbServerFile,
"dbServers.xml",
sizeof(
mdbServerFile));
00016
00017 }
00018
00020 char*
StDbDefaults::getServerFileName(
const dbFindServerMode mode){
00021
00022
if(mode==
userHome)
return getFileName(
"HOME");
00023
if(mode==
serverEnvVar)
return getFileName(
mdbServerVar);
00024
if(mode==
starDefault)
return getFileName(
"STAR");
00025
00026
return NULL;
00027 };
00028
00029
00031 char*
StDbDefaults::getFileName(
const char* fileName){
00032
00033
char* nullReturn=0;
00034
if(!fileName)
return nullReturn;
00035
00036
StString fn;
00037
00038
if(strcmp(fileName,
"HOME")==0){
00039 fn<<getenv(
"HOME")<<
"/"<<
mdbServerFile;
00040 }
else if(strcmp(fileName,
"STAR")==0){
00041 fn<<getenv(
"STAR")<<
"/"<<
"StDb/servers/"<<
mdbServerFile;
00042 }
else {
00043
char* fname=getenv(fileName);
00044
if(!fname)
return nullReturn;
00045 fn<<fname;
00046
if(opendir(fname))fn<<
"/"<<
mdbServerFile;
00047 }
00048
00049 string fns=fn.
str();
00050
char* retVal=
new char[fns.length()+1];
00051 strcpy(retVal,fns.c_str());
00052
00053
return retVal;
00054 }
00055
00056
00057
00058
00059
00060