00001 //$Id: ConditionInfo.h,v 1.2 2009/02/02 12:20:22 marcocle Exp $ 00002 #ifndef DETDESC_CONDITIONINFO_H 00003 #define DETDESC_CONDITIONINFO_H 1 00004 00005 #include <string> 00006 00007 // Base class 00008 #include "DetDesc/Services.h" 00009 #include "DetDesc/IConditionInfo.h" 00010 00011 // Forward declarations 00012 class IDataProviderSvc; 00013 00024 class ConditionInfo : virtual public IConditionInfo 00025 { 00026 00027 public: 00028 00030 ConditionInfo( IDetectorElement* de, 00031 const std::string& condition ); 00032 00034 virtual ~ConditionInfo(); 00035 00036 private: 00037 00039 IDataProviderSvc* dataSvc() const; 00040 00041 public: 00042 00043 // Implementation of the IConditionInfo interface 00044 00046 virtual IDetectorElement* detElem() const; 00047 00049 virtual const std::string& conditionName() const; 00050 00052 virtual Condition* condition(); 00053 00054 // Implementation of the IInterface interface 00055 00057 StatusCode queryInterface( const InterfaceID& ID , void** ppI ) ; 00059 unsigned long addRef(); 00061 unsigned long release(); 00062 00063 00064 private: 00065 00067 IDetectorElement* m_detElem; 00068 00070 std::string m_conditionName; 00071 00073 Condition* m_condition; 00074 00076 unsigned long m_count; 00077 00079 DetDesc::Services* m_services; 00080 00081 }; 00082 00083 #endif // DETDESC_CONDITIONINFO_H