18using namespace std::string_literals;
 
   44   while (iter->Next()) cnt++;
 
 
   54    std::string 
lkind = kind;
 
 
   77      auto iter = 
curr->GetChildsIter();
 
   81      curr = iter->GetElement();
 
 
  107   auto item = std::make_unique<RItem>(
GetName());
 
 
  122   std::string 
slash = 
"/";
 
  124   std::string::size_type 
previous = 0;
 
  128   while (current != std::string::npos) {
 
 
  150   for (
int n = 0; 
n < 
sz; ++
n)
 
 
  163   for (
auto &
elem : path) {
 
 
  181   if ((
p1 == std::string::npos) || (
p2 == std::string::npos) || (
p1 >= 
p2) || (
p2 != 
name.length()-3)) 
return -1;
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
virtual std::string GetName() const =0
Name of browsable, must be provided in derived classes.
 
static EContentKind GetContentKind(const std::string &kind)
Find item with specified name Default implementation, should work for all.
 
virtual std::string GetContent(const std::string &="text")
Returns element content, depends from kind.
 
@ kFileName
"filename" - file name if applicable
 
@ kJpeg
"jpg" or "jpeg" - plain jpg binary code, returned inside std::string
 
@ kPng
"png" - plain png binary code, returned inside std::string
 
@ kJson
"json" representation of object, can be used in code editor
 
@ kText
"text" - plain text for code editor
 
@ kImage
"image64" - base64 for supported image formats (png/gif/gpeg)
 
virtual std::unique_ptr< RHolder > GetObject()
Access object.
 
virtual std::unique_ptr< RLevelIter > GetChildsIter()
Create iterator for childs elements if any.
 
virtual int GetNumChilds()
Returns number of childs By default creates iterator and iterates over all items.
 
static int ExtractItemIndex(std::string &name)
Extract index from name Index coded by client with ###<indx>$$$ suffix Such coding used by browser to...
 
virtual std::string GetTitle() const
Title of browsable (optional)
 
static int ComparePaths(const RElementPath_t &path1, const RElementPath_t &path2)
Compare two paths, Returns number of elements matches in both paths.
 
static std::string GetPathAsString(const RElementPath_t &path)
Converts element path back to string.
 
static std::shared_ptr< RElement > GetSubElement(std::shared_ptr< RElement > &elem, const RElementPath_t &path)
Returns sub element.
 
virtual std::unique_ptr< RItem > CreateItem() const
Returns item with element description.
 
static RElementPath_t ParsePath(const std::string &str)
Parse string path to produce RElementPath_t One should avoid to use string pathes as much as possible...
 
A log configuration for a channel, e.g.
 
const_iterator begin() const
 
const_iterator end() const
 
static TString ConvertToJSON(const TObject *obj, Int_t compact=0, const char *member_name=nullptr)
Converts object, inherited from TObject class, to JSON string Lower digit of compact parameter define...
 
std::vector< std::string > RElementPath_t
 
ROOT::Experimental::RLogChannel & BrowsableLog()
Log channel for Browsable diagnostics.