50 printf(
"REveTableViewInfo::AddNewColumnToCurrentCollection error: collection not found\n");
54 const char *rtyp =
"void";
56 std::function<
void(
void *)> fooptr;
58 s <<
"*((std::function<" << rtyp <<
"(" << icls->GetName() <<
"*)>*)" << std::hex << std::showbase
59 << (size_t)(&fooptr) <<
") = [](" << icls->GetName() <<
"* p){" << icls->GetName() <<
" &i=*p; return (" << expr
63 gROOT->ProcessLine(s.str().c_str(), &err);
65 std::cout <<
"REveTableViewInfo::AddNewColumnToCurrentCollection failed." << std::endl;
85 struct TableDictHelper {
88 static size_t maxEnt = 3;
90 TIter next(
c->GetListOfAllPublicMethods());
91 while ((meth = (
TMethod *)next()) && entries.size() < maxEnt) {
94 std::string mn = meth->
GetName();
95 std::string
exp =
"i." + mn +
"()";
112 TIter blnext(
c->GetListOfBases());
121 TIter blnext(
c->GetListOfBases());
123 auto bs = specs.find(base->
GetName());
124 if (bs != specs.end()) {
133 TableDictHelper helper;
134 auto search =
fSpecs.find(cname);
135 if (search !=
fSpecs.end()) {
136 return search->second;
typedef void((*Func_t)())
TClass * GetItemClass() const
virtual Int_t WriteCoreJson(nlohmann::json &cj, Int_t rnr_offset)
Write core json.
REveElement * FindElementById(ElementId_t id) const
Lookup ElementId in element map and return corresponding REveElement*.
std::map< std::string, Entries_t > Specs_t
REveTableHandle & column(const std::string &name, int precision, const std::string &expression)
std::vector< REveTableEntry > Entries_t
void AddNewColumnToCurrentCollection(const std::string &expr, const std::string &title, int prec=2)
REveTableViewInfo(const std::string &name="TableViewManager", const std::string &title="")
void SetDisplayedCollection(ElementId_t)
std::vector< Delegate_t > fDelegates
REveTableHandle::Specs_t fSpecs
REveTableHandle::Entries_t & RefTableEntries(std::string cname)
Find column definitions for given class name.
REveTableHandle table(std::string className)
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
Each class (see TClass) has a linked list of its base class(es).
TClass * GetClassPointer(Bool_t load=kTRUE)
Get pointer to the base class TClass.
TClass instances represent classes, structs and namespaces in the ROOT type system.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
Basic data type descriptor (datatype information is obtained from CINT).
const char * GetReturnTypeName() const
Get full type description of function return type, e,g.: "class TDirectory*".
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
Each ROOT class (see TClass) has a linked list of methods.
virtual TList * GetListOfMethodArgs()
Returns methodarg list and additionally updates fDataMember in TMethod by calling FindDataMember();.
virtual const char * GetName() const
Returns name of object.
R__EXTERN REveManager * gEve