Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:12:22

0001 // @(#)root/meta:$Id$
0002 // Author: Rene Brun   05/03/95
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TRealData
0013 #define ROOT_TRealData
0014 
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TRealData                                                            //
0019 //                                                                      //
0020 // Description of persistent data members.                              //
0021 //                                                                      //
0022 //////////////////////////////////////////////////////////////////////////
0023 
0024 #include "TObject.h"
0025 #include "TString.h"
0026 
0027 class TDataMember;
0028 
0029 
0030 class TRealData : public TObject {
0031 
0032 private:
0033    TDataMember     *fDataMember;     //pointer to data member descriptor
0034    Long_t           fThisOffset;     //offset with the THIS object pointer
0035    TString          fName;           //Concatenated names of this realdata
0036    TMemberStreamer *fStreamer;       //Object to stream the data member.
0037    Bool_t           fIsObject;       //true if member is an object
0038 
0039    TRealData(const TRealData& rhs) = delete;  // Copying TRealData in not allowed.
0040    TRealData& operator=(const TRealData& rhs) = delete;  // Copying TRealData in not allowed.
0041 
0042 public:
0043    enum EStatusBits {
0044       kTransient = BIT(14)  // The member is transient.
0045    };
0046 
0047    TRealData();
0048    TRealData(const char *name, Long_t offset, TDataMember *datamember);
0049    virtual     ~TRealData();
0050 
0051    void                AdoptStreamer(TMemberStreamer *p);
0052    const char         *GetName() const override { return fName.Data(); }
0053    TDataMember        *GetDataMember() const { return fDataMember; }
0054    TMemberStreamer    *GetStreamer() const;
0055    Long_t              GetThisOffset() const { return fThisOffset; }
0056    Bool_t              IsObject() const { return fIsObject; }
0057    void                SetIsObject(Bool_t isObject) { fIsObject = isObject; }
0058    void                WriteRealData(void *pointer, char *&buffer);
0059 
0060    static void         GetName(TString &output, TDataMember *dm);
0061 
0062    ClassDefOverride(TRealData,0)  //Description of persistent data members
0063 };
0064 
0065 #endif
0066