00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #ifndef RECRECORDIMP_H
00012 #define RECRECORDIMP_H
00013
00014 #include <iostream>
00015 #include "Record/RecJobHistory.h"
00016 #include "Record/RecRecord.h"
00017
00018 template <class T>
00019 class RecRecordImp : public RecRecord {
00020
00021 public:
00022
00023 RecRecordImp(): fHeader(),fIsClearable(false),fTempTags() {}
00024
00025 RecRecordImp(const T& header): fHeader(header),fIsClearable(false),
00026 fTempTags() {}
00027 virtual ~RecRecordImp() {}
00028
00029
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
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;
00056 Bool_t fIsClearable;
00057 RecJobHistory fJobHistory;
00058 Registry fTempTags;
00059
00060 ClassDef(RecRecordImp<T>,3)
00061 };
00062
00063 #endif // RECRECORDIMP_H