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

ConditionsHandlerBase.hh

00001 #ifndef ConditionsHandlerBase_h
00002 #define ConditionsHandlerBase_h
00003 
00004 #include "lccd.h"
00005 
00006 #include "IConditionsHandler.hh"
00007 
00008 #include <vector>
00009 
00010 
00011 //using namespace lcio ;
00012 
00013 namespace lccd {
00014   
00023   class ConditionsHandlerBase : public IConditionsHandler {
00024     
00025   public:
00026     
00029     ConditionsHandlerBase(const std::string& name) : 
00030       _name( name),
00031       _validSince( LCCDPlusInf ) ,   // initially we don't have a valid time range
00032       _validTill(  LCCDMinusInf ) {
00033     } 
00034     
00035     virtual ~ConditionsHandlerBase() {}
00036     
00037 
00042     virtual void updateEvent( lcio::LCEvent* evt ) ;
00043    
00044 
00049     virtual void update( LCCDTimeStamp timestamp ) =0 ;
00050     
00051 
00054     virtual lcio::LCCollection* currentCollection() { return _col ; } 
00055      
00056     
00060     virtual void registerChangeListener( IConditionsChangeListener* cl ) ;
00061     
00064     virtual void removeChangeListener( IConditionsChangeListener* cl) ;
00065 
00071     virtual const std::string name() { return _name ; }  
00072 
00075     virtual LCCDTimeStamp validSince() { return _validSince ; }  
00076     
00079     virtual LCCDTimeStamp validTill() { return _validTill ; }
00080     
00081 
00082   protected :
00083     
00084     ConditionsHandlerBase() {} 
00085 
00088     virtual void notifyListeners() ;
00089     
00090 
00091     // ----  data members ------
00092 
00094     lcio::LCCollection* _col ;
00095 
00097     std::string _name ;
00098 
00100     LCCDTimeStamp _validSince  ;
00101 
00103     LCCDTimeStamp _validTill ;
00104 
00106     std::vector< IConditionsChangeListener* > _changeListeners ;
00107     
00108 
00109   };
00110 } ; //end namespace
00111 
00112 #endif // ConditionsHandlerBase_h

Generated on Fri Sep 9 12:30:31 2005 for LCCD by doxygen 1.3.5