Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::Browsable::RProvider Class Reference

Provider of different browsing methods for supported classes.

Author
Sergey Linev S.Lin.nosp@m.ev@g.nosp@m.si.de
Date
2019-10-14
Warning
This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback is welcome!

Definition at line 36 of file RProvider.hxx.

Classes

class  ClassArg
 
struct  StructBrowse
 
struct  StructClass
 
struct  StructDraw6
 
struct  StructDraw7
 
struct  StructFile
 

Public Member Functions

virtual ~RProvider ()
 Automatically unregister provider from all maps.
 

Static Public Member Functions

static std::shared_ptr< RElementBrowse (std::unique_ptr< RHolder > &obj)
 Create browsable element for the object Created element may take ownership over the object.
 
static std::shared_ptr< RElementBrowseNTuple (const std::string &tuplename, const std::string &filename)
 Start browsing of RNTuple.
 
static bool CanDraw6 (const ClassArg &)
 Return true if provided class can be drawn on the TCanvas.
 
static bool CanDraw7 (const ClassArg &)
 Return true if provided class can be drawn on the RCanvas.
 
static bool CanHaveChilds (const ClassArg &)
 Return true if provided class can have childs.
 
static bool Draw6 (TVirtualPad *subpad, std::unique_ptr< RHolder > &obj, const std::string &opt="")
 Invoke drawing of object on TCanvas sub-pad All existing providers are checked, first checked are class matches (including direct parents)
 
static bool Draw7 (std::shared_ptr< ROOT::Experimental::RPadBase > &subpad, std::unique_ptr< RHolder > &obj, const std::string &opt="")
 Invoke drawing of object on RCanvas sub-pad All existing providers are checked, first checked are class matches (including direct parents)
 
static std::string GetClassDrawOption (const ClassArg &)
 Return configured draw option for the class.
 
static std::string GetClassIcon (const ClassArg &, bool=false)
 Return icon name for the given class - either class name or TClass *.
 
static bool IsFileFormatSupported (const std::string &extension)
 
static bool NotShowChilds (const ClassArg &)
 Check if showing of sub-elements was disabled.
 
static std::shared_ptr< RElementOpenFile (const std::string &extension, const std::string &fullname)
 
static bool SetClassDrawOption (const ClassArg &, const std::string &)
 Set draw option for the class Return true if entry for the class exists.
 

Protected Types

using BrowseFunc_t = std::function< std::shared_ptr< RElement >(std::unique_ptr< RHolder > &)>
 
using BrowseNTupleFunc_t = std::function< std::shared_ptr< RElement >(const std::string &, const std::string &)>
 
using Draw6Func_t = std::function< bool(TVirtualPad *, std::unique_ptr< RHolder > &, const std::string &)>
 
using Draw7Func_t = std::function< bool(std::shared_ptr< ROOT::Experimental::RPadBase > &, std::unique_ptr< RHolder > &, const std::string &)>
 
using FileFunc_t = std::function< std::shared_ptr< RElement >(const std::string &)>
 

Protected Member Functions

void RegisterBrowse (const TClass *cl, BrowseFunc_t func)
 
void RegisterClass (const std::string &clname, const std::string &iconname, const std::string &browselib="", const std::string &draw6lib="", const std::string &draw7lib="", const std::string &drawopt="")
 
void RegisterDraw6 (const TClass *cl, Draw6Func_t func)
 
void RegisterDraw7 (const TClass *cl, Draw7Func_t func)
 
void RegisterFile (const std::string &extension, FileFunc_t func)
 
void RegisterNTupleFunc (BrowseNTupleFunc_t func)
 

Private Types

using BrowseMap_t = std::multimap< const TClass *, StructBrowse >
 
using ClassMap_t = std::multimap< std::string, StructClass >
 
using Draw6Map_t = std::multimap< const TClass *, StructDraw6 >
 
using Draw7Map_t = std::multimap< const TClass *, StructDraw7 >
 
using FileMap_t = std::multimap< std::string, StructFile >
 

Private Member Functions

template<class Map_t >
void CleanThis (Map_t &fmap)
 

Static Private Member Functions

static BrowseMap_tGetBrowseMap ()
 
static StructClassGetClassEntry (const ClassArg &)
 
static ClassMap_tGetClassMap ()
 
static Draw6Map_tGetDraw6Map ()
 
static Draw7Map_tGetDraw7Map ()
 
static FileMap_tGetFileMap ()
 

Static Private Attributes

static BrowseNTupleFunc_t gNTupleFunc = nullptr
 

#include <ROOT/Browsable/RProvider.hxx>

Inheritance diagram for ROOT::Experimental::Browsable::RProvider:
[legend]

Member Typedef Documentation

◆ BrowseFunc_t

using ROOT::Experimental::Browsable::RProvider::BrowseFunc_t = std::function<std::shared_ptr<RElement>(std::unique_ptr<RHolder> &)>
protected

Definition at line 76 of file RProvider.hxx.

◆ BrowseMap_t

Definition at line 108 of file RProvider.hxx.

◆ BrowseNTupleFunc_t

using ROOT::Experimental::Browsable::RProvider::BrowseNTupleFunc_t = std::function<std::shared_ptr<RElement>(const std::string &, const std::string &)>
protected

Definition at line 77 of file RProvider.hxx.

◆ ClassMap_t

using ROOT::Experimental::Browsable::RProvider::ClassMap_t = std::multimap<std::string, StructClass>
private

Definition at line 106 of file RProvider.hxx.

◆ Draw6Func_t

using ROOT::Experimental::Browsable::RProvider::Draw6Func_t = std::function<bool(TVirtualPad *, std::unique_ptr<RHolder> &, const std::string &)>
protected

Definition at line 78 of file RProvider.hxx.

◆ Draw6Map_t

Definition at line 109 of file RProvider.hxx.

◆ Draw7Func_t

using ROOT::Experimental::Browsable::RProvider::Draw7Func_t = std::function<bool(std::shared_ptr<ROOT::Experimental::RPadBase> &, std::unique_ptr<RHolder> &, const std::string &)>
protected

Definition at line 79 of file RProvider.hxx.

◆ Draw7Map_t

Definition at line 110 of file RProvider.hxx.

◆ FileFunc_t

using ROOT::Experimental::Browsable::RProvider::FileFunc_t = std::function<std::shared_ptr<RElement>(const std::string &)>
protected

Definition at line 75 of file RProvider.hxx.

◆ FileMap_t

using ROOT::Experimental::Browsable::RProvider::FileMap_t = std::multimap<std::string, StructFile>
private

Definition at line 107 of file RProvider.hxx.

Constructor & Destructor Documentation

◆ ~RProvider()

RProvider::~RProvider ( )
virtual

Automatically unregister provider from all maps.

Definition at line 75 of file RProvider.cxx.

Member Function Documentation

◆ Browse()

std::shared_ptr< RElement > RProvider::Browse ( std::unique_ptr< RHolder > &  obj)
static

Create browsable element for the object Created element may take ownership over the object.

Definition at line 266 of file RProvider.cxx.

◆ BrowseNTuple()

std::shared_ptr< RElement > RProvider::BrowseNTuple ( const std::string &  tuplename,
const std::string &  filename 
)
static

Start browsing of RNTuple.

Definition at line 294 of file RProvider.cxx.

◆ CanDraw6()

bool RProvider::CanDraw6 ( const ClassArg arg)
static

Return true if provided class can be drawn on the TCanvas.

Definition at line 411 of file RProvider.cxx.

◆ CanDraw7()

bool RProvider::CanDraw7 ( const ClassArg arg)
static

Return true if provided class can be drawn on the RCanvas.

Definition at line 425 of file RProvider.cxx.

◆ CanHaveChilds()

bool RProvider::CanHaveChilds ( const ClassArg arg)
static

Return true if provided class can have childs.

Definition at line 394 of file RProvider.cxx.

◆ CleanThis()

template<class Map_t >
void ROOT::Experimental::Browsable::RProvider::CleanThis ( Map_t &  fmap)
inlineprivate

Definition at line 122 of file RProvider.hxx.

◆ Draw6()

bool RProvider::Draw6 ( TVirtualPad subpad,
std::unique_ptr< RHolder > &  obj,
const std::string &  opt = "" 
)
static

Invoke drawing of object on TCanvas sub-pad All existing providers are checked, first checked are class matches (including direct parents)

Definition at line 315 of file RProvider.cxx.

◆ Draw7()

bool RProvider::Draw7 ( std::shared_ptr< ROOT::Experimental::RPadBase > &  subpad,
std::unique_ptr< RHolder > &  obj,
const std::string &  opt = "" 
)
static

Invoke drawing of object on RCanvas sub-pad All existing providers are checked, first checked are class matches (including direct parents)

Definition at line 338 of file RProvider.cxx.

◆ GetBrowseMap()

RProvider::BrowseMap_t & RProvider::GetBrowseMap ( )
staticprivate

Definition at line 26 of file RProvider.cxx.

◆ GetClassDrawOption()

std::string RProvider::GetClassDrawOption ( const ClassArg arg)
static

Return configured draw option for the class.

Definition at line 372 of file RProvider.cxx.

◆ GetClassEntry()

RProvider::StructClass & RProvider::GetClassEntry ( const ClassArg cl)
staticprivate

Definition at line 166 of file RProvider.cxx.

◆ GetClassIcon()

std::string RProvider::GetClassIcon ( const ClassArg arg,
bool  is_folder = false 
)
static

Return icon name for the given class - either class name or TClass *.

Definition at line 360 of file RProvider.cxx.

◆ GetClassMap()

RProvider::ClassMap_t & RProvider::GetClassMap ( )
staticprivate

Definition at line 62 of file RProvider.cxx.

◆ GetDraw6Map()

RProvider::Draw6Map_t & RProvider::GetDraw6Map ( )
staticprivate

Definition at line 44 of file RProvider.cxx.

◆ GetDraw7Map()

RProvider::Draw7Map_t & RProvider::GetDraw7Map ( )
staticprivate

Definition at line 53 of file RProvider.cxx.

◆ GetFileMap()

RProvider::FileMap_t & RProvider::GetFileMap ( )
staticprivate

Definition at line 35 of file RProvider.cxx.

◆ IsFileFormatSupported()

bool RProvider::IsFileFormatSupported ( const std::string &  extension)
static

Definition at line 192 of file RProvider.cxx.

◆ NotShowChilds()

bool RProvider::NotShowChilds ( const ClassArg arg)
static

Check if showing of sub-elements was disabled.

Definition at line 402 of file RProvider.cxx.

◆ OpenFile()

std::shared_ptr< RElement > RProvider::OpenFile ( const std::string &  extension,
const std::string &  fullname 
)
static

Definition at line 205 of file RProvider.cxx.

◆ RegisterBrowse()

void RProvider::RegisterBrowse ( const TClass cl,
BrowseFunc_t  func 
)
protected

Definition at line 101 of file RProvider.cxx.

◆ RegisterClass()

void RProvider::RegisterClass ( const std::string &  clname,
const std::string &  iconname,
const std::string &  browselib = "",
const std::string &  draw6lib = "",
const std::string &  draw7lib = "",
const std::string &  drawopt = "" 
)
protected

Definition at line 148 of file RProvider.cxx.

◆ RegisterDraw6()

void RProvider::RegisterDraw6 ( const TClass cl,
Draw6Func_t  func 
)
protected

Definition at line 114 of file RProvider.cxx.

◆ RegisterDraw7()

void RProvider::RegisterDraw7 ( const TClass cl,
Draw7Func_t  func 
)
protected

Definition at line 127 of file RProvider.cxx.

◆ RegisterFile()

void RProvider::RegisterFile ( const std::string &  extension,
FileFunc_t  func 
)
protected

Definition at line 88 of file RProvider.cxx.

◆ RegisterNTupleFunc()

void RProvider::RegisterNTupleFunc ( BrowseNTupleFunc_t  func)
protected

Definition at line 140 of file RProvider.cxx.

◆ SetClassDrawOption()

bool RProvider::SetClassDrawOption ( const ClassArg arg,
const std::string &  opt 
)
static

Set draw option for the class Return true if entry for the class exists.

Definition at line 381 of file RProvider.cxx.

Member Data Documentation

◆ gNTupleFunc

RProvider::BrowseNTupleFunc_t RProvider::gNTupleFunc = nullptr
staticprivate

Definition at line 117 of file RProvider.hxx.

Libraries for ROOT::Experimental::Browsable::RProvider:

The documentation for this class was generated from the following files: