Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

StDbDefaults.cc

Go to the documentation of this file.
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; // Dec 31, 2037 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

Generated on Thu Aug 24 14:45:25 2006 for Doxygen by doxygen 1.3.7