HROOT-core-0.10.0.1: csrc/HROOTCoreTObject.h
#ifdef __cplusplus
extern "C" {
#endif
#pragma once
#include "HROOT-coreType.h"
#include "STDDeletable.h"
#include "stdcxxType.h"
#define TOBJECT_DECL_VIRT(Type) \
void Type##_Clear ( Type##_p p, const char* option );\
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 );\
int Type##_Write_ ( Type##_p p );
#define TOBJECT_DECL_NONVIRT(Type) \
Type##_p Type##_newTObject ( );\
bool Type##_tObject_GetObjectStat ( );
#define TOBJECT_DECL_ACCESSOR(Type) \
#define TOBJECT_DEF_VIRT(Type) \
void Type##_Clear ( Type##_p p, const char* option ) {\
((TYPECASTMETHOD(Type, Clear, TObject))(p))->Clear(option);\
}\
\
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 from_nonconst_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 from_nonconst_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);\
}\
\
int Type##_Write_ ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, Write_, TObject))(p))->Write();\
}
#define TOBJECT_DEF_NONVIRT(Type) \
Type##_p Type##_newTObject ( ) {\
Type* newp=new Type();return from_nonconst_to_nonconst<Type##_t, Type>(newp);\
}\
\
bool Type##_tObject_GetObjectStat ( ) {\
return TObject::GetObjectStat();\
}
#define TOBJECT_DEF_ACCESSOR(Type) \
DELETABLE_DECL_VIRT(TObject)
TOBJECT_DECL_VIRT(TObject)
TOBJECT_DECL_NONVIRT(TObject)
TOBJECT_DECL_ACCESSOR(TObject)
#ifdef __cplusplus
}
#endif