Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TRealData.h
Go to the documentation of this file.
1 // @(#)root/meta:$Id$
2 // Author: Rene Brun 05/03/95
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TRealData
13 #define ROOT_TRealData
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TRealData //
19 // //
20 // Description of persistent data members. //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #include "TObject.h"
25 #include "TString.h"
26 
27 class TDataMember;
28 
29 
30 class TRealData : public TObject {
31 
32 private:
33  TDataMember *fDataMember; //pointer to data member descriptor
34  Long_t fThisOffset; //offset with the THIS object pointer
35  TString fName; //Concatenated names of this realdata
36  TMemberStreamer *fStreamer; //Object to stream the data member.
37  Bool_t fIsObject; //true if member is an object
38 
39  TRealData(const TRealData& rhs) = delete; // Copying TRealData in not allowed.
40  TRealData& operator=(const TRealData& rhs) = delete; // Copying TRealData in not allowed.
41 
42 public:
43  enum EStatusBits {
44  kTransient = BIT(14) // The member is transient.
45  };
46 
47  TRealData();
48  TRealData(const char *name, Long_t offset, TDataMember *datamember);
49  virtual ~TRealData();
50 
51  void AdoptStreamer(TMemberStreamer *p);
52  virtual const char *GetName() const {return fName.Data();}
53  TDataMember *GetDataMember() const {return fDataMember;}
54  TMemberStreamer *GetStreamer() const;
55  Long_t GetThisOffset() const {return fThisOffset;}
56  Bool_t IsObject() const {return fIsObject;}
57  void SetIsObject(Bool_t isObject) {fIsObject=isObject;}
58  void WriteRealData(void *pointer, char *&buffer);
59 
60  static void GetName(TString &output, TDataMember *dm);
61 
62  ClassDef(TRealData,0) //Description of persistent data members
63 };
64 
65 #endif
66