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::RMenuItem > | MenuItemsVector |
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< RDrawable > | FindPrimitive (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. | |
RCanvasPainter & | operator= (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 | |
RCanvas & | fCanvas |
! 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< WebUpdate > | fUpdatesLst |
! list of callbacks for canvas update | |
std::list< WebConn > | fWebConn |
!< configured display | |
std::shared_ptr< ROOT::RWebWindow > | fWindow |
Additional Inherited Members | |
Static Public Member Functions inherited from ROOT::Experimental::Internal::RVirtualCanvasPainter | |
static std::unique_ptr< RVirtualCanvasPainter > | Create (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 | |
|
private |
Definition at line 107 of file RCanvasPainter.cxx.
|
privatedelete |
Disable copy construction.
RCanvasPainter::RCanvasPainter | ( | RCanvas & | canv | ) |
Constructor.
Definition at line 219 of file RCanvasPainter.cxx.
|
virtual |
Destructor.
Definition at line 228 of file RCanvasPainter.cxx.
|
finalvirtual |
Add window as panel inside canvas window.
Reimplemented from ROOT::Experimental::Internal::RVirtualCanvasPainter.
Definition at line 713 of file RCanvasPainter.cxx.
|
private |
Cancel command execution on provided connection All commands are cancelled, when connid === 0.
Definition at line 251 of file RCanvasPainter.cxx.
|
private |
Cancel all pending Canvas::Update()
Definition at line 239 of file RCanvasPainter.cxx.
|
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.
|
private |
Check if canvas need to send data to the clients.
Definition at line 270 of file RCanvasPainter.cxx.
|
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.
|
private |
Create web window for canvas.
Definition at line 627 of file RCanvasPainter.cxx.
|
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.
|
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.
|
private |
Process reply on the currently active command.
Definition at line 859 of file RCanvasPainter.cxx.
|
finalvirtual |
Returns web window name.
Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.
Definition at line 692 of file RCanvasPainter.cxx.
|
finalvirtual |
Returns connection URL for web window.
Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.
Definition at line 702 of file RCanvasPainter.cxx.
|
inlinefinalvirtual |
return true if canvas modified since last painting
Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.
Definition at line 156 of file RCanvasPainter.cxx.
|
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.
|
finalvirtual |
Returns number of connected displays.
Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.
Definition at line 682 of file RCanvasPainter.cxx.
|
privatedelete |
Disable assignment.
|
private |
Process data from the client.
Definition at line 505 of file RCanvasPainter.cxx.
|
finalvirtual |
Produce batch output, using chrome headless mode with DOM dump.
Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.
Definition at line 463 of file RCanvasPainter.cxx.
|
finalvirtual |
Produce JSON for the canvas.
Implements ROOT::Experimental::Internal::RVirtualCanvasPainter.
Definition at line 494 of file RCanvasPainter.cxx.
|
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.
|
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.
|
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.
|
private |
! Canvas we are painting, *this will be owned by canvas
Definition at line 109 of file RCanvasPainter.cxx.
|
private |
! list of submitted commands
Definition at line 114 of file RCanvasPainter.cxx.
|
private |
! commands counter
Definition at line 115 of file RCanvasPainter.cxx.
|
private |
! array of handles for help widgets
Definition at line 122 of file RCanvasPainter.cxx.
|
private |
! json compression for data send to client
Definition at line 120 of file RCanvasPainter.cxx.
|
private |
! minimal version delivered to all connections
Definition at line 117 of file RCanvasPainter.cxx.
|
private |
! list of callbacks for canvas update
Definition at line 118 of file RCanvasPainter.cxx.
|
private |
|
private |
Definition at line 111 of file RCanvasPainter.cxx.