| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

ValidDataObject.h

Go to the documentation of this file.
00001 //$Id: ValidDataObject.h,v 1.8 2007/11/09 17:10:06 marcocle Exp $
00002 #ifndef DETDESC_VALIDDATAOBJECT_H
00003 #define DETDESC_VALIDDATAOBJECT_H 1
00004 
00005 #include <string>
00006 
00007 // Base classes
00008 #include "GaudiKernel/DataObject.h"
00009 #include "GaudiKernel/IValidity.h"
00010 #include "GaudiKernel/Time.h"
00011 
00012 // Unique ID of the class
00013 #include "DetDesc/CLIDValidDataObject.h"
00014 
00015 // Forward declarations
00016 class StatusCode;
00017 
00019 //--------------------------------------------------------------------------
00028 
00029 class ValidDataObject : public DataObject, 
00030                         virtual public IValidity
00031 
00032 {
00033 
00034  public: 
00035   
00037   ValidDataObject();
00038   
00040   ValidDataObject( const ValidDataObject& obj );
00041   
00042   /*
00044   virtual ValidDataObject& operator= ( ValidDataObject& obj );
00045   */
00046 
00049   virtual void update ( ValidDataObject& obj );
00050 
00052   virtual ~ValidDataObject();
00053   
00054  public:
00055 
00056   // Re-implemented from DataObject
00057 
00059   inline virtual const CLID& clID() const { return classID(); } 
00060 
00062   inline static  const CLID& classID() { return CLID_ValidDataObject; }
00063 
00065   virtual std::ostream& fillStream( std::ostream& s ) const;
00066 
00067  public:
00068 
00069   // Implementation of IValidity
00070 
00072   virtual bool isValid() const ;
00073 
00075   virtual bool isValid( const Gaudi::Time& t ) const;
00076 
00078   virtual const Gaudi::Time& validSince() const;
00079 
00081   virtual const Gaudi::Time& validTill() const;
00082 
00084   virtual void setValidity( const Gaudi::Time& since, const Gaudi::Time& till );  
00085 
00087   virtual void setValiditySince( const Gaudi::Time& since );  
00088 
00090   virtual void setValidityTill( const Gaudi::Time& till );   
00091   
00092 // ================================================
00093 // ValidDataObject methods
00094 // ================================================
00095 
00099   virtual StatusCode update();
00100 
00102   enum UpdateModeFlag {
00103     DEFAULT,
00104     ALWAYS_VALID,
00105     FORCE_UPDATE
00106   };
00107 
00108   // setters and getters for update mode
00109 
00115   virtual const UpdateModeFlag &updateMode() const;
00116 
00118   virtual void setUpdateMode(UpdateModeFlag mode);
00119 
00120   virtual void defaultUpdateMode();
00121   virtual void forceUpdateMode();
00122   virtual void neverUpdateMode();
00123  
00124  private:
00125 
00126   // IValidity data
00128   Gaudi::Time m_validSince;
00130   Gaudi::Time m_validUntil;
00131   
00133   UpdateModeFlag   m_updateMode;
00134   
00135 };
00136 
00137 #endif // DETDESC_VALIDDATAOBJECT_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:00:13 2011 for DetDesc by doxygen 1.4.7