00001 #ifndef CDB_ENV_PROXY_HH 00002 #define CDB_ENV_PROXY_HH 00003 00004 // File and Version Information: 00005 // $Id: CdbEnvProxy.hh,v 1.2 2005/05/03 20:59:50 gapon Exp $ 00006 00007 #include "CdbBase/CdbProxyBase.hh" 00008 00009 /// Straightforward implementation for the proxy class 00010 /** 00011 * This is a straightforward 1-to-1 proxy implementation assuming 00012 * that there is a simple translation from a persistent class 00013 * to a transient one. 00014 * 00015 * The proxy class is parametrized by mean of one template parameter: 00016 * 00017 * T - is a transient class representing a proxy product 00018 * 00019 * This proxy is using the "persistent-to-transient" translation facility 00020 * of the CDB API in order to get the transient product. The corresponding 00021 * converter must be registered with a CDB API implementation used in an application 00022 * context where an instance of the current proxy is being used. 00023 * 00024 * @see class CdbObjectTranslator 00025 */ 00026 template< class T > 00027 class CdbEnvProxy : public CdbProxyBase<T> { 00028 00029 private: 00030 00031 /// The default constructor (NOT IMPLEMENTED) 00032 00033 CdbEnvProxy( ); 00034 00035 /// The copy constructor (NOT IMPLEMENTED) 00036 00037 CdbEnvProxy( const CdbEnvProxy<T>& theProxy ); 00038 00039 /// The asignment operator (NOT IMPLEMENTED) 00040 00041 CdbEnvProxy<T>& operator=( const CdbEnvProxy<T>& theProxy ); 00042 00043 public: 00044 00045 /// The normal and default constructor 00046 /** 00047 * The only optional argument of the constructor takes the strategy object 00048 * for locating GenEnv parameters. If 0 pointer is passed then a default 00049 * strategy will be enforced. 00050 * 00051 * Note, that the ownreship of the strategy object is also passed to the constructor. 00052 */ 00053 CdbEnvProxy( const char* theDetectorName, 00054 const char* theConditionName, 00055 CdbDefStrategy* theStrategy = 0 ); 00056 00057 /// The destructor 00058 00059 virtual ~CdbEnvProxy( ); 00060 00061 protected: 00062 00063 /// The redefined fault handler 00064 /** 00065 * Implements the method of a base class. 00066 * 00067 * @see CdbProxyBase::redefinedFaultHandler 00068 */ 00069 virtual T* redefinedFaultHandler( const std::vector<CdbProxyElement>& listOfElements ); 00070 }; 00071 00072 #ifdef BABAR_COMP_INST 00073 #include "CdbBase/CdbEnvProxy.cc" 00074 #endif // BABAR_COMP_INST 00075 00076 #endif // CDB_ENV_PROXY_HH
1.3-rc3