(Fwd) Re: embedding ROOT

From: Valery Fine (fine@mail.cern.ch)
Date: Fri Sep 26 1997 - 10:09:42 MEST


------- Forwarded Message Follows -------

On 25 Sep 97 at 23:01, Pasha Murat wrote:

> 
>  This is kind of issue which people will never agree upon... 
>  I'm trying to write a prototype of event display code
>  based on ROOT graphics classes. 

   Have you regarded the ROOT share memory capabilites.
   Of course thid doesn't reply your question directly. But would it
   be more easy (and robust) to let your stand-alone program   
   (client) to generate  the ROOT objects and let (launching not
   calling) another program / server-process (ROOT) to present it by
   demand and whatsoever?   (By the way the last could be even remote
   one).

>  By design this shoudn't be a 
>  standalone application, instead it should be called by another
>  routine: I need main to be loaded statically because otherwise
>  there is no way to debug the whole system. This is nothing but
>  embedding ROOT into another application. Having started from
>  test/hworld.cxx I've been trying to make the code reentrant: after
>  the event display routine is executed, all the windows should be
>  closed. 

>  The example below bombs. I guess that this is happening
>  because TCanvas::Close() does much more than just closing the
>  window on the screen.

  It should be since as I was constantly telling on this list ANY
operation with Widget/Windows is an INTERACTIVE one and NEEDS some
sort of even loop. 
   Leaving 

                theApp.Run(kTRUE);

  one does leave the ROOT event loop so NO interactive operation is
allowed at this point.

  The way I offered above assumes that your main would be 
NON-INTERACTIVE (from ROOT point of view at least). Sure you can still
introduce your own event loop to let program to catch the external
events (i.e. you will be required to re-invent ROOT wheel)  but it
will be not ROOT.

    With my best regards,
                              Valery



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:21 MET