Discussion:
[omniORB] how to integrate omniORB with Qt 4.x?
Liang Qi
2008-02-07 19:49:36 UTC
Permalink
Hi, all,

I am a new one for Corba and omniORB.

I just began to try to integrate omniORB with Qt 4.x. I found there
are some integrations in mico 2.3.12, for fltk, gtk, qt, tcl, x11 etc.

There is CORBA::Dispatcher in mico.

But where is the similar event dispatch mechanism in omniORB? Thanks a lot.

Regards,
Liang
Liang Qi
2008-02-08 14:17:33 UTC
Permalink
Hi, all,

And maybe my question is not clear enough.

I just want to know the details about the event loop things inside omniORB.

Regards,
Liang
Post by Liang Qi
Hi, all,
I am a new one for Corba and omniORB.
I just began to try to integrate omniORB with Qt 4.x. I found there
are some integrations in mico 2.3.12, for fltk, gtk, qt, tcl, x11 etc.
There is CORBA::Dispatcher in mico.
But where is the similar event dispatch mechanism in omniORB? Thanks a lot.
Regards,
Liang
Duncan Grisby
2008-02-08 23:29:25 UTC
Permalink
Post by Liang Qi
I just began to try to integrate omniORB with Qt 4.x. I found there
are some integrations in mico 2.3.12, for fltk, gtk, qt, tcl, x11 etc.
There is CORBA::Dispatcher in mico.
But where is the similar event dispatch mechanism in omniORB? Thanks a lot.
omniORB doesn't have an application-hookable event loop like Mico. it
always uses its own threads to dispatch CORBA calls. You can just use
the main thread to service Qt's event loop and it will work fine.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
renny.koshy at rubixinfotech.com ()
2008-02-08 23:56:18 UTC
Permalink
Liang:

We have a similar situation with a third-party lib.... what we do is as
follows:

1. Setup a pipe 'ToWorker'

2. Add the 'ToWorker' pipe to our third party library's processing loop (in
Qt, I would presume that you can create a SocketReactor or something)... in
our case, we add it as a "SocketReactor", with the handle = ToWorker's
"read" end.

3. All CORBA services we expose are "interfaces" only. They get the
request, fill in a "work-request" structure, set a semaphore (inside the
work-request), then write the work-request pointer to the ToWorkerFIFO, and
wait.

4. When the ToWorker's read-end gets the data, it will initiate our reactor
object, which does the work, and then flags the semaphore... which wakes up
the CORBA thread that was waiting.

5. The thread wakes up, and continues... and since results are stored in
the work request, it can respond back to the 'caller'

Renny Koshy
President & CEO

--------------------------------------------
RUBIX Information Technologies, Inc.
www.rubixinfotech.com



Duncan Grisby
<***@grisby.or
g> To
Sent by: "Liang Qi" <***@gmail.com>
omniorb-list-boun cc
***@omniorb-suppo omniorb-***@omniorb-support.com
rt.com Subject
Re: [omniORB] how to integrate
omniORB with Qt 4.x?
02/08/2008 12:29
PM
Post by Liang Qi
I just began to try to integrate omniORB with Qt 4.x. I found there
are some integrations in mico 2.3.12, for fltk, gtk, qt, tcl, x11 etc.
There is CORBA::Dispatcher in mico.
But where is the similar event dispatch mechanism in omniORB? Thanks a
lot.

omniORB doesn't have an application-hookable event loop like Mico. it
always uses its own threads to dispatch CORBA calls. You can just use
the main thread to service Qt's event loop and it will work fine.

Cheers,

Duncan.

--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --

Loading...