[omniORB] Use of OmniORB in an IDLE loop

Laurent Pointal pointal@lure.u-psud.fr
Thu, 17 Aug 2000 14:33:49 +0200


Hello,

>From my reading of "Advanced CORBA Programming with C++", it is possible to
have a new POA with monothread policy. Is it possible to have the ORB
processing done in a function call like omni_process_requests(), which will
be called in the context of an IDLE event of a GUI loop (in OmniORB3).

Details: 
    We are trying to interface IgorPro graphic application on Windows with
ours Python data acquisition scripts. For that, we are writting an Igor XOP
(external add-on) which instanciate, activate a server. As Igor itself is
not really multithread aware, we must do all the true server jobs in the
context of Igor main thread, when receivind an IDLE event in the XOP. 
    Currently each service method create an Action object, store the
parameters into it, put it into a list of requests, and wait for the action
to be executed. In the XOP IDLE (Igor main thread context), we go throught
the list of Action objects, and call their virtual execution function
before setting the action_done signal.
    It works, but if I could call an omni_process_requests() like function,
all this intermediate work will go away and the code will be more maintenable.

Thanks.

Note: We use OmniORB in different projects (V2.7.1, and now V3), and try to
stay with it (one C++ ORB, and we will move from Fnorb to omniORBpy for
Python ASAP).

Laurent.

---
Laurent POINTAL - CNRS/LURE - Service Informatique Experiences
Tel/fax: 01 64 46 82 80 / 01 64 46 41 48
email  : pointal@lure.u-psud.fr  ou  lpointal@planete.net