25#include <nlohmann/json.hpp>
30 struct TableDictHelper {
35 TIter next(
c->GetListOfAllPublicMethods());
38 if (!
meth->GetListOfMethodArgs()->First()) {
39 std::string
mn =
meth->GetName();
40 std::string exp =
"i." +
mn +
"()";
44 int t =
dt->GetType();
99 static const REveException eh(
"REveTableViewInfo::AddNewColumnToCurrentCollection");
106 printf(
"REveTableViewInfo::AddNewColumnToCurrentCollection error: collection not found\n");
111 throw eh +
"column-expression verification failed.";
114 const char *
rtyp =
"void";
116 std::function<void(
void *)>
fooptr;
118 s <<
"*((std::function<" <<
rtyp <<
"(" <<
icls->GetName() <<
"*)>*)" << std::hex << std::showbase
119 << (size_t)(&
fooptr) <<
") = [](" <<
icls->GetName() <<
"* p){" <<
icls->GetName()
120 <<
" &i=*p; return (" <<
expr <<
"); }";
125 gROOT->ProcessLine(s.str().c_str(), &err);
127 throw eh +
"column expression compilation check failed.";
138 std::string
n =
b->GetName();
139 for (REveTableHandle::Entries_t::iterator
e =
fSpecs[
n].begin();
e !=
fSpecs[
n].end(); ++
e) {
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char cname
TClass * GetItemClass() const
virtual Int_t WriteCoreJson(nlohmann::json &cj, Int_t rnr_offset)
Write core json.
REveException Exception-type thrown by Eve classes.
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
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)
void AddNewColumnToCurrentCollection(const char *expr, const char *title, int prec=2)
Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) override
Fill core part of JSON representation.
static bool VerifyObjectFilterOrTableExpression(std::string_view expr)
Input string verification and sanitization.
const_iterator end() const
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).
Each ROOT class (see TClass) has a linked list of methods.
const char * GetName() const override
Returns name of object.
R__EXTERN REveManager * gEve