00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "BaBar/BaBar.hh"
00022
00023 #include "CdbBase/CdbTransaction.hh"
00024 #include "CdbBase/CdbCondition.hh"
00025 #include "CdbBase/CdbObject.hh"
00026 #include "CdbBase/CdbTimeUtils.hh"
00027 #include "CdbBase/CdbEnvironment.hh"
00028
00029 #include "CdbBdbShared/CdbBdbShared.hh"
00030
00031 #include "CdbRooReadonly/CdbRooReadonly.hh"
00032
00033 #include <iostream>
00034 #include <string>
00035 using std::cout;
00036 using std::cerr;
00037 using std::endl;
00038
00039 int
00040 main( int argc, char* argv[] )
00041 {
00042
00043
00044 if( argc != 2 ) {
00045 cout << "Usage: <condition>" << endl;
00046 return 1;
00047 }
00048 const char* conditionName = argv[1];
00049
00050 const char* useDefaultViewName = 0;
00051 const char* useDefaultDatabaseName = 0;
00052
00053 BdbTime validityTime( BdbTime::now( ));
00054
00055
00056
00057
00058
00059 CdbRooReadonly::forceLoad( );
00060 CdbBdbShared::forceLoad( );
00061
00062
00063
00064 if( CdbStatus::Success != CdbEnvironment::setDefaultPath( "<local>::<recent>",
00065 "<default>",
00066 "Readonly",
00067 "Roo" )) {
00068 cerr << "failed to set default parameters of the CDB API." << endl;
00069 return 1;
00070 }
00071
00072
00073
00074 CdbTransaction readOnlyTransactionForBdb( "Bdb", "Shared" );
00075 CdbTransaction readOnlyTransactionForRoo( "Roo", "Readonly" );
00076
00077
00078
00079 CdbConditionPtr bdbConditionPtr;
00080 if( CdbStatus::Success != CdbCondition::instance( bdbConditionPtr,
00081 conditionName,
00082 useDefaultViewName,
00083 useDefaultDatabaseName,
00084 "Shared",
00085 "Bdb" )) return 1;
00086
00087 CdbConditionPtr rooConditionPtr;
00088 if( CdbStatus::Success != CdbCondition::instance( rooConditionPtr,
00089 conditionName,
00090 useDefaultViewName,
00091 useDefaultDatabaseName,
00092 "Readonly",
00093 "Roo" )) return 1;
00094
00095
00096
00097 CdbObjectPtr bdbObjectPtr;
00098 if( CdbStatus::Success != bdbConditionPtr->findObject( bdbObjectPtr,
00099 validityTime )) return 1;
00100
00101 CdbObjectPtr rooObjectPtr;
00102 if( CdbStatus::Success != rooConditionPtr->findObject( rooObjectPtr,
00103 validityTime )) return 1;
00104
00105
00106
00107 cout << "BDB: found object id = " << bdbObjectPtr->id( ) << ", type = \"" << bdbObjectPtr->type( ) << "\"" << endl
00108 << "ROO: found object id = " << rooObjectPtr->id( ) << ", type = \"" << rooObjectPtr->type( ) << "\"" << endl;
00109
00110
00111
00112
00113
00114 ;
00115
00116 return 0;
00117 }
00118
00119
00120
00121