Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

RecRecordImp.h

Go to the documentation of this file.
00001 
00002 //
00003 // RecRecordImp
00004 //
00005 // RecRecordImp is the Base Class for MINOS records
00006 //
00007 // Author:  S. Kasahara 9/02
00008 //
00010 
00011 #ifndef RECRECORDIMP_H
00012 #define RECRECORDIMP_H
00013 
00014 #include <iostream> 
00015 #include "Record/RecJobHistory.h" // data member
00016 #include "Record/RecRecord.h" // abstract base class
00017 
00018 template <class T> 
00019 class RecRecordImp : public RecRecord {
00020 
00021  public:
00022 
00023    RecRecordImp(): fHeader(),fIsClearable(false),fTempTags() {}      
00024                  // default constructor, necessary for streamer io
00025    RecRecordImp(const T& header): fHeader(header),fIsClearable(false),
00026                                   fTempTags() {} // normal constructor
00027    virtual ~RecRecordImp() {}
00028 
00029    // State testing methods
00030    virtual const T& GetHeader() const { return fHeader; }
00031    virtual Registry& GetTempTags() { return fTempTags; }
00032    virtual const Registry& GetTempTags() const { return fTempTags; }
00033    virtual const VldContext* GetVldContext() const; 
00034    virtual bool  IsPersistedToOutputStream(const char* stream="",
00035                  const char* file="",const char* tree="",int index=-1) const; 
00036    virtual bool  IsClearable() const { return fIsClearable; }
00037    virtual bool  IsPerOwned() const;
00038    virtual bool  IsTransient() const;
00039    virtual const RecJobHistory& GetJobHistory() const { return fJobHistory; }
00040        
00041    virtual std::ostream& Print(std::ostream& os) const;
00042    virtual void Print(Option_t* option = "") const;
00043 
00044    // State changing methods
00045    virtual void  HasBeenModified(); 
00046    virtual void  PersistedToOutputStream(const char* stream,
00047                  const char* file, const char* tree, int index);
00048    virtual void  SetClearable(bool isClearable = true) 
00049                              { fIsClearable = isClearable; }
00050    virtual void  SetTransient(bool isTransient = true);
00051    virtual void  SetPerOwned(bool isPerOwned = false);
00052 
00053  private:
00054    
00055    T                  fHeader;       // header base class
00056    Bool_t             fIsClearable;  // may use Clear() method to reclaim mem
00057    RecJobHistory      fJobHistory;   // info about jobs used to create/fill rec
00058    Registry           fTempTags;     
00059    
00060    ClassDef(RecRecordImp<T>,3)
00061 };
00062 
00063 #endif // RECRECORDIMP_H

Generated on Mon Feb 15 11:07:30 2010 for loon by  doxygen 1.3.9.1