#ifdef __cplusplus extern "C" { #endif #pragma once #include "HROOT-treeType.h" #include "HROOTTreeTTree.h" #include "HROOTCoreTNamed.h" #include "HROOTCoreTAttLine.h" #include "HROOTCoreTAttFill.h" #include "HROOTCoreTAttMarker.h" #include "HROOTCoreTObject.h" #include "STDDeletable.h" #define TCHAIN_DECL_VIRT(Type) \ int Type##_addChain ( Type##_p p, TChain_p chain );\ int Type##_addChain1 ( Type##_p p, const char* name, long nentries ); #define TCHAIN_DECL_NONVIRT(Type) \ Type##_p Type##_newTChain ( const char* name, const char* title ); #define TCHAIN_DECL_ACCESSOR(Type) \ #define TCHAIN_DEF_VIRT(Type) \ int Type##_addChain ( Type##_p p, TChain_p chain ) {\ return ((TYPECASTMETHOD(Type, addChain, TChain))(p))->Add(from_nonconst_to_nonconst(chain));\ }\ \ int Type##_addChain1 ( Type##_p p, const char* name, long nentries ) {\ return ((TYPECASTMETHOD(Type, addChain1, TChain))(p))->Add(name, nentries);\ } #define TCHAIN_DEF_NONVIRT(Type) \ Type##_p Type##_newTChain ( const char* name, const char* title ) {\ Type* newp=new Type(name, title);return from_nonconst_to_nonconst(newp);\ } #define TCHAIN_DEF_ACCESSOR(Type) \ TTREE_DECL_VIRT(TChain) TNAMED_DECL_VIRT(TChain) TATTLINE_DECL_VIRT(TChain) TATTFILL_DECL_VIRT(TChain) TATTMARKER_DECL_VIRT(TChain) TOBJECT_DECL_VIRT(TChain) DELETABLE_DECL_VIRT(TChain) TCHAIN_DECL_VIRT(TChain) TCHAIN_DECL_NONVIRT(TChain) TCHAIN_DECL_ACCESSOR(TChain) #ifdef __cplusplus } #endif