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

Implementation of painter for ROOT::Experimental::RCanvas, using RWebWindow.

Definition at line 61 of file RCanvasPainter.cxx.

Classes

class  GeneratorImpl
 
struct  WebCommand
 
struct  WebConn
 
struct  WebUpdate
 

Public Member Functions

 RCanvasPainter (RCanvas &canv)
 Constructor.
 
virtual ~RCanvasPainter ()
 Destructor.
 
bool AddPanel (std::shared_ptr< ROOT::RWebWindow >) final
 Add window as panel inside canvas window.
 
void CanvasUpdated (uint64_t ver, bool async, CanvasCallback_t callback) final
 Method invoked when canvas should be updated on the client side Depending from delivered status, each client will received new data.
 
void DoWhenReady (const std::string &name, const std::string &arg, bool async, CanvasCallback_t callback) final
 perform special action when drawing is ready
 
std::string GetWindowAddr () const final
 Returns web window name.
 
std::string GetWindowUrl (bool remote) final
 Returns connection URL for web window.
 
bool IsCanvasModified (uint64_t id) const final
 return true if canvas modified since last painting
 
void NewDisplay (const std::string &where) final
 Create new display for the canvas See ROOT::RWebWindowsManager::Show() docu for more info.
 
int NumDisplays () const final
 Returns number of connected displays.
 
bool ProduceBatchOutput (const std::string &fname, int width, int height) final
 Produce batch output, using chrome headless mode with DOM dump.
 
std::string ProduceJSON () final
 Produce JSON for the canvas.
 
void Run (double tm=0.) final
 Run canvas functionality for specified period of time Required when canvas used not from the main thread.
 
void SetClearOnClose (const std::shared_ptr< void > &) final
 Set handle to window which will be cleared when connection is closed.
 
- Public Member Functions inherited from ROOT::Experimental::Internal::RVirtualCanvasPainter
virtual ~RVirtualCanvasPainter ()
 Default destructor.
 

Private Types

typedef std::vector< Detail::RMenuItemMenuItemsVector
 

Private Member Functions

 RCanvasPainter (const RCanvasPainter &)=delete
 Disable copy construction.
 
void CancelCommands (unsigned connid=0)
 Cancel command execution on provided connection All commands are cancelled, when connid === 0.
 
void CancelUpdates ()
 Cancel all pending Canvas::Update()
 
void CheckDataToSend ()
 Check if canvas need to send data to the clients.
 
std::string CreateSnapshot (RDrawable::RDisplayContext &ctxt)
 Create JSON representation of data, which should be send to the clients Here server-side painting is performed - each drawable adds own elements in so-called display list, which transferred to the clients.
 
void CreateWindow ()
 Create web window for canvas.
 
std::shared_ptr< RDrawableFindPrimitive (const RCanvas &can, const std::string &id, const RPadBase **subpad=nullptr)
 Find drawable in the canvas with specified id Used to communicate with the clients, which does not have any pointer.
 
void FrontCommandReplied (const std::string &reply)
 Process reply on the currently active command.
 
RCanvasPainteroperator= (const RCanvasPainter &)=delete
 Disable assignment.
 
void ProcessData (unsigned connid, const std::string &arg)
 Process data from the client.
 
void SaveCreatedFile (std::string &reply)
 Method called when GUI sends file to save on local disk File data coded with base64 coding beside SVG format.
 

Private Attributes

RCanvasfCanvas
 ! Canvas we are painting, *this will be owned by canvas
 
std::list< std::shared_ptr< WebCommand > > fCmds
 ! list of submitted commands
 
uint64_t fCmdsCnt {0}
 ! commands counter
 
std::vector< std::unique_ptr< ROOT::RWebDisplayHandle > > fHelpHandles
 ! array of handles for help widgets
 
int fJsonComp {23}
 ! json compression for data send to client
 
uint64_t fSnapshotDelivered {0}
 ! minimal version delivered to all connections
 
std::list< WebUpdatefUpdatesLst
 ! list of callbacks for canvas update
 
std::list< WebConnfWebConn
 !< configured display
 
std::shared_ptr< ROOT::RWebWindowfWindow
 

Additional Inherited Members

- Static Public Member Functions inherited from ROOT::Experimental::Internal::RVirtualCanvasPainter
static std::unique_ptr< RVirtualCanvasPainterCreate (RCanvas &canv)
 Loads the plugin that implements this class.
 
- Static Protected Member Functions inherited from ROOT::Experimental::Internal::RVirtualCanvasPainter
static std::unique_ptr< Generator > & GetGenerator ()
 generator getter
 
Inheritance diagram for ROOT::Experimental::RCanvasPainter:
[legend]

Member Typedef Documentation

◆ MenuItemsVector

Definition at line 107 of file RCanvasPainter.cxx.

Constructor & Destructor Documentation

◆ RCanvasPainter() [1/2]

ROOT::Experimental::RCanvasPainter::RCanvasPainter ( const RCanvasPainter )
privatedelete

Disable copy construction.

◆ RCanvasPainter() [2/2]

RCanvasPainter::RCanvasPainter ( RCanvas canv)

Constructor.

Definition at line 219 of file RCanvasPainter.cxx.

◆ ~RCanvasPainter()

RCanvasPainter::~RCanvasPainter ( )
virtual

Destructor.

Definition at line 228 of file RCanvasPainter.cxx.

Member Function Documentation

◆ AddPanel()

bool RCanvasPainter::AddPanel ( std::shared_ptr< ROOT::RWebWindow win)
finalvirtual

Add window as panel inside canvas window.

Reimplemented from ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 713 of file RCanvasPainter.cxx.

◆ CancelCommands()

void RCanvasPainter::CancelCommands ( unsigned  connid = 0)
private

Cancel command execution on provided connection All commands are cancelled, when connid === 0.

Definition at line 251 of file RCanvasPainter.cxx.

◆ CancelUpdates()

void RCanvasPainter::CancelUpdates ( )
private

Cancel all pending Canvas::Update()

Definition at line 239 of file RCanvasPainter.cxx.

◆ CanvasUpdated()

void RCanvasPainter::CanvasUpdated ( uint64_t  ver,
bool  async,
CanvasCallback_t  callback 
)
finalvirtual

Method invoked when canvas should be updated on the client side Depending from delivered status, each client will received new data.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 364 of file RCanvasPainter.cxx.

◆ CheckDataToSend()

void RCanvasPainter::CheckDataToSend ( )
private

Check if canvas need to send data to the clients.

Definition at line 270 of file RCanvasPainter.cxx.

◆ CreateSnapshot()

std::string RCanvasPainter::CreateSnapshot ( RDrawable::RDisplayContext ctxt)
private

Create JSON representation of data, which should be send to the clients Here server-side painting is performed - each drawable adds own elements in so-called display list, which transferred to the clients.

Definition at line 768 of file RCanvasPainter.cxx.

◆ CreateWindow()

void RCanvasPainter::CreateWindow ( )
private

Create web window for canvas.

Definition at line 627 of file RCanvasPainter.cxx.

◆ DoWhenReady()

void RCanvasPainter::DoWhenReady ( const std::string &  name,
const std::string &  arg,
bool  async,
CanvasCallback_t  callback 
)
finalvirtual

perform special action when drawing is ready

Perform special action when drawing is ready.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 410 of file RCanvasPainter.cxx.

◆ FindPrimitive()

std::shared_ptr< RDrawable > RCanvasPainter::FindPrimitive ( const RCanvas can,
const std::string &  id,
const RPadBase **  subpad = nullptr 
)
private

Find drawable in the canvas with specified id Used to communicate with the clients, which does not have any pointer.

Definition at line 810 of file RCanvasPainter.cxx.

◆ FrontCommandReplied()

void RCanvasPainter::FrontCommandReplied ( const std::string &  reply)
private

Process reply on the currently active command.

Definition at line 859 of file RCanvasPainter.cxx.

◆ GetWindowAddr()

std::string RCanvasPainter::GetWindowAddr ( ) const
finalvirtual

Returns web window name.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 692 of file RCanvasPainter.cxx.

◆ GetWindowUrl()

std::string RCanvasPainter::GetWindowUrl ( bool  remote)
finalvirtual

Returns connection URL for web window.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 702 of file RCanvasPainter.cxx.

◆ IsCanvasModified()

bool ROOT::Experimental::RCanvasPainter::IsCanvasModified ( uint64_t  id) const
inlinefinalvirtual

return true if canvas modified since last painting

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 156 of file RCanvasPainter.cxx.

◆ NewDisplay()

void RCanvasPainter::NewDisplay ( const std::string &  where)
finalvirtual

Create new display for the canvas See ROOT::RWebWindowsManager::Show() docu for more info.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 659 of file RCanvasPainter.cxx.

◆ NumDisplays()

int RCanvasPainter::NumDisplays ( ) const
finalvirtual

Returns number of connected displays.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 682 of file RCanvasPainter.cxx.

◆ operator=()

RCanvasPainter & ROOT::Experimental::RCanvasPainter::operator= ( const RCanvasPainter )
privatedelete

Disable assignment.

◆ ProcessData()

void RCanvasPainter::ProcessData ( unsigned  connid,
const std::string &  arg 
)
private

Process data from the client.

Definition at line 505 of file RCanvasPainter.cxx.

◆ ProduceBatchOutput()

bool RCanvasPainter::ProduceBatchOutput ( const std::string &  fname,
int  width,
int  height 
)
finalvirtual

Produce batch output, using chrome headless mode with DOM dump.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 463 of file RCanvasPainter.cxx.

◆ ProduceJSON()

std::string RCanvasPainter::ProduceJSON ( )
finalvirtual

Produce JSON for the canvas.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 494 of file RCanvasPainter.cxx.

◆ Run()

void RCanvasPainter::Run ( double  tm = 0.)
finalvirtual

Run canvas functionality for specified period of time Required when canvas used not from the main thread.

Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 894 of file RCanvasPainter.cxx.

◆ SaveCreatedFile()

void RCanvasPainter::SaveCreatedFile ( std::string &  reply)
private

Method called when GUI sends file to save on local disk File data coded with base64 coding beside SVG format.

Definition at line 827 of file RCanvasPainter.cxx.

◆ SetClearOnClose()

void RCanvasPainter::SetClearOnClose ( const std::shared_ptr< void > &  handle)
finalvirtual

Set handle to window which will be cleared when connection is closed.

Reimplemented from ROOT::Experimental::Internal::RVirtualCanvasPainter.

Definition at line 757 of file RCanvasPainter.cxx.

Member Data Documentation

◆ fCanvas

RCanvas& ROOT::Experimental::RCanvasPainter::fCanvas
private

! Canvas we are painting, *this will be owned by canvas

Definition at line 109 of file RCanvasPainter.cxx.

◆ fCmds

std::list<std::shared_ptr<WebCommand> > ROOT::Experimental::RCanvasPainter::fCmds
private

! list of submitted commands

Definition at line 114 of file RCanvasPainter.cxx.

◆ fCmdsCnt

uint64_t ROOT::Experimental::RCanvasPainter::fCmdsCnt {0}
private

! commands counter

Definition at line 115 of file RCanvasPainter.cxx.

◆ fHelpHandles

std::vector<std::unique_ptr<ROOT::RWebDisplayHandle> > ROOT::Experimental::RCanvasPainter::fHelpHandles
private

! array of handles for help widgets

Definition at line 122 of file RCanvasPainter.cxx.

◆ fJsonComp

int ROOT::Experimental::RCanvasPainter::fJsonComp {23}
private

! json compression for data send to client

Definition at line 120 of file RCanvasPainter.cxx.

◆ fSnapshotDelivered

uint64_t ROOT::Experimental::RCanvasPainter::fSnapshotDelivered {0}
private

! minimal version delivered to all connections

Definition at line 117 of file RCanvasPainter.cxx.

◆ fUpdatesLst

std::list<WebUpdate> ROOT::Experimental::RCanvasPainter::fUpdatesLst
private

! list of callbacks for canvas update

Definition at line 118 of file RCanvasPainter.cxx.

◆ fWebConn

std::list<WebConn> ROOT::Experimental::RCanvasPainter::fWebConn
private

!< configured display

! connections list

Definition at line 113 of file RCanvasPainter.cxx.

◆ fWindow

std::shared_ptr<ROOT::RWebWindow> ROOT::Experimental::RCanvasPainter::fWindow
private

Definition at line 111 of file RCanvasPainter.cxx.

  • gui/canvaspainter/src/RCanvasPainter.cxx