#include "geantdef.h" #include "hgeantinput.h" #include "hgeoinfo.h" #include "hadesstd.h" int HGeoInfo::connectInput(const HString &set) { extern HGeantInput geantInput; for(int i=0;i=0) {s=s.remove(0,sp+1);} if (s.find(set)>=0) { filename=name; int k=name.find("."); if (k>0) { inputFlag='f'; if (openFile()==HSUCCESS) return HSUCCESS; else exit(1); } inputFlag='d'; if (connectDb()==HSUCCESS) return HSUCCESS; else exit(1); } } return HFAILURE; } void HGeoInfo::closeFile() {fin.close();} int HGeoInfo::openFile() { fin.open(filename,ios::in); if(fin.fail()) { fin.close(); fin.open(filename,ios::in); } if(fin.fail()) { cerr << "failed to open file " << filename << endl; return HFAILURE; } return HSUCCESS; } int HGeoInfo::connectDb() { #ifdef WITHORACLE extern HGeantInput geantInput; if (!dbConn) { // char user[40]="ikoenig@hades-test"; // cout << "enter password for " << user << " > "; // char password[20]; // cin >> password; // cin.ignore(1); // dbConn = new oraConnection(user,password); // dbConn = new oraConnection("hades@dslep01","hades"); dbConn = new oraConnection(); geoDb = new HGeoOraRead; if (!geoDb && !dbConn) { cerr << "failed to open connection to database" << endl; return HFAILURE; } int vi=0; HString version=geantInput.getGeoVersion(); if (version.length()==0) vi=geoDb->getMaxVersion(); else { if (version.find("-")>1) vi=geoDb->getVersion(version); else { vi=int(version); if (vi>0) vi=geoDb->showVersionDate(vi); else vi=geoDb->showAllVersions(); } } if (vi<=0) { cerr << "cannot read version " << vi << " from database" << endl; return HFAILURE; } cout << "geometry version index in database: " << vi << endl; } #endif return HSUCCESS; }