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 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 std::shared_ptr< RElementOpenFile (const std::string &extension, const std::string &fullname)
 

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="")
 
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 const 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 72 of file RProvider.hxx.

◆ BrowseMap_t

Definition at line 103 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 73 of file RProvider.hxx.

◆ ClassMap_t

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

Definition at line 101 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 74 of file RProvider.hxx.

◆ Draw6Map_t

Definition at line 104 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 75 of file RProvider.hxx.

◆ Draw7Map_t

Definition at line 105 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 71 of file RProvider.hxx.

◆ FileMap_t

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

Definition at line 102 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 268 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 296 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 383 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 397 of file RProvider.cxx.

◆ CanHaveChilds()

bool RProvider::CanHaveChilds ( const ClassArg arg)
static

Return true if provided class can have childs.

Definition at line 375 of file RProvider.cxx.

◆ CleanThis()

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

Definition at line 117 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 317 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 340 of file RProvider.cxx.

◆ GetBrowseMap()

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

Definition at line 26 of file RProvider.cxx.

◆ GetClassEntry()

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

Definition at line 167 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 362 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 193 of file RProvider.cxx.

◆ OpenFile()

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

Definition at line 206 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 = "" 
)
protected

Definition at line 150 of file RProvider.cxx.

◆ RegisterDraw6()

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

Definition at line 115 of file RProvider.cxx.

◆ RegisterDraw7()

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

Definition at line 128 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 141 of file RProvider.cxx.

Member Data Documentation

◆ gNTupleFunc

RProvider::BrowseNTupleFunc_t RProvider::gNTupleFunc = nullptr
staticprivate

Definition at line 112 of file RProvider.hxx.

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

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