00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #ifndef RECDATARECORD_H
00012 #define RECDATARECORD_H
00013
00014 #include <iosfwd>
00015 #include "TObjArray.h"
00016
00017 #ifndef RECRECORDIMP_H
00018 #include "Record/RecRecordImp.h"
00019 #endif
00020
00021 template <class T>
00022 class RecDataRecord : public RecRecordImp<T> {
00023
00024 public:
00025
00026
00027 RecDataRecord();
00028 RecDataRecord(const T& header);
00029 virtual ~RecDataRecord();
00030
00031
00032 virtual Int_t GetNComponent() const { return fNComponent; }
00033 virtual const TObjArray& GetComponentIds() const { return fComponentIds; }
00034 virtual const TObjArray& GetComponents() const { return fComponents; }
00035 virtual const TObjArray& GetTemporaries() const { return fTemporaries; }
00036
00037 virtual const TObject* FindComponent(const char* classname = 0,
00038 const char* objectname = 0) const;
00039 virtual const TObject* FindTemporary(const char* classname = 0,
00040 const char* objectname = 0) const;
00041
00042 virtual bool HasComponent(const char* classname = 0,
00043 const char* objectname = 0) const;
00044 virtual std::ostream& Print(std::ostream& os) const;
00045 virtual void Print(Option_t* option = "") const;
00046
00047
00048 virtual void AdoptComponent(TObject* component);
00049 virtual void AdoptTemporary(TObject* temporary);
00050
00051 protected:
00052
00053
00054 virtual TObject* RemoveComponent(TObject* component);
00055 virtual TObject* RemoveTemporary(TObject* temporary);
00056
00057 private:
00058 Int_t fNComponent;
00059 TObjArray fComponentIds;
00060 TObjArray fComponents;
00061 TObjArray fTemporaries;
00062
00063 void Init();
00064
00065
00066 RecDataRecord(const RecDataRecord&);
00067 RecDataRecord& operator=(const RecDataRecord&);
00068
00069 ClassDef(RecDataRecord<T>,1)
00070 };
00071
00072 #endif // RECDATARECORD_H
00073
00074
00075