HROOT-core-0.9: csrc/HROOTCoreTObject.h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __HROOT_CORE__TObject__
#define __HROOT_CORE__TObject__
#include "HROOT-coreType.h"
#include "HROOTCoreDeletable.h"
#undef TOBJECT_DECL_VIRT
#define TOBJECT_DECL_VIRT(Type) \
void Type ## _Draw ( Type ## _p p, const char* option ); \
TObject_p Type ## _FindObject ( Type ## _p p, const char* name ); \
const char* Type ## _GetName ( Type ## _p p ); \
TClass_p Type ## _IsA ( Type ## _p p ); \
void Type ## _Paint ( Type ## _p p, const char* option ); \
void Type ## _printObj ( Type ## _p p, const char* option ); \
void Type ## _SaveAs ( Type ## _p p, const char* filename, const char* option ); \
int Type ## _Write ( Type ## _p p, const char* name, int option, int bufsize )
#undef TOBJECT_DECL_NONVIRT
#define TOBJECT_DECL_NONVIRT(Type) \
Type ## _p Type ## _newTObject ( ); \
int Type ## _tObjectGetObjectStat ( )
#undef TOBJECT_DEF_VIRT
#define TOBJECT_DEF_VIRT(Type)\
void Type ## _Draw ( Type ## _p p, const char* option )\
{\
TYPECASTMETHOD(Type,Draw,TObject)(p)->Draw(option);\
}\
TObject_p Type ## _FindObject ( Type ## _p p, const char* name )\
{\
return to_nonconst<TObject_t,TObject>((TObject*)TYPECASTMETHOD(Type,FindObject,TObject)(p)->FindObject(name));\
}\
const char* Type ## _GetName ( Type ## _p p )\
{\
return TYPECASTMETHOD(Type,GetName,TObject)(p)->GetName();\
}\
TClass_p Type ## _IsA ( Type ## _p p )\
{\
return to_nonconst<TClass_t,TClass>((TClass*)TYPECASTMETHOD(Type,IsA,TObject)(p)->IsA());\
}\
void Type ## _Paint ( Type ## _p p, const char* option )\
{\
TYPECASTMETHOD(Type,Paint,TObject)(p)->Paint(option);\
}\
void Type ## _printObj ( Type ## _p p, const char* option )\
{\
TYPECASTMETHOD(Type,printObj,TObject)(p)->Print(option);\
}\
void Type ## _SaveAs ( Type ## _p p, const char* filename, const char* option )\
{\
TYPECASTMETHOD(Type,SaveAs,TObject)(p)->SaveAs(filename, option);\
}\
int Type ## _Write ( Type ## _p p, const char* name, int option, int bufsize )\
{\
return TYPECASTMETHOD(Type,Write,TObject)(p)->Write(name, option, bufsize);\
}
#undef TOBJECT_DEF_NONVIRT
#define TOBJECT_DEF_NONVIRT(Type)\
Type ## _p Type ## _newTObject ( )\
{\
Type * newp = new Type (); \
return to_nonconst<Type ## _t, Type >(newp);\
}\
int Type ## _tObjectGetObjectStat ( )\
{\
return TObject::GetObjectStat();\
}
DELETABLE_DECL_VIRT(TObject);
TOBJECT_DECL_VIRT(TObject);
TOBJECT_DECL_NONVIRT(TObject);
#endif // __HROOT_CORE__TObject__
#ifdef __cplusplus
}
#endif