12 #ifndef ROOT_TMemberInspector
13 #define ROOT_TMemberInspector
31 class TMemberInspector {
33 enum EObjectPointerState {
41 EObjectPointerState fObjectPointerState;
43 TMemberInspector(
const TMemberInspector&);
44 TMemberInspector &operator=(
const TMemberInspector&);
48 virtual ~TMemberInspector();
50 EObjectPointerState GetObjectValidity()
const {
return fObjectPointerState; }
51 void SetObjectValidity(EObjectPointerState val) { fObjectPointerState = val; }
52 virtual void Inspect(TClass *cl,
const char *parent,
const char *name,
const void *addr);
53 virtual void Inspect(TClass *cl,
const char *parent,
const char *name,
const void *addr, Bool_t ) { Inspect(cl,parent,name,addr); }
55 const char* GetParent()
const;
56 Ssiz_t GetParentLen()
const;
57 void AddToParent(
const char* name);
58 void RemoveFromParent(Ssiz_t startingAt);
60 virtual Bool_t IsTreatingNonAccessibleTypes() {
return kTRUE;}
63 void InspectMember(
const T& obj,
const char* name, Bool_t isTransient) {
64 Ssiz_t len = GetParentLen();
66 obj.IsA()->CallShowMembers(&obj, *
this, isTransient);
67 RemoveFromParent(len);
70 void InspectMember(
const TObject& obj,
const char* name, Bool_t isTransient);
71 void InspectMember(
const char* topclassname,
const void* pobj,
const char* name,
73 void InspectMember(TClass* cl,
const void* pobj,
const char* name,
76 void GenericShowMembers(
const char *topClassName,
const void *obj,
77 Bool_t transientMember);
79 ClassDef(TMemberInspector,0)