Re: Asynchronous procedure call with ORBit.



thierry wrote:
> 
> Hello folks!
> 
> We are a small team working on a project that wish to use ORBit as communication
> fundations. Well, the problem we have is actually very similar to the one posted
> by Edgar Hilton on 30 Oct 2001 17:46:21, but we would like to have a more orbit-
> specific response.
> 
> We also have a set of clients that must synchronise their internal lists,
> whenever they are changed on the serveur-side. We've tried to implement
> a specific interface into a new thread directly in the client-side, but it
> seems to confuse orbit, which locks after exchanging some messages. You
> (Rodrigo Moya) have exposed a nice feature, by implementing a such IDL:
> 
> interface Server {
>         void connectClient (in Client client);
> };
> 
> interface Client {
>         void notify (...);
> };
> 
> How can you send a client object to the server without creating any new
> thread?
> 
> As far we know, implementing "Client" interface in the client-side implies
> creating a new running serveur (for associating code and calls to the other
> side).
> 
> We know that's not very CORBA-compliant, but can you explain a bit more,
> what's required for doing asynchronous message using the above IDL?

Well, if you want it to be asynchronous, replace

void notify (...)
 
with

oneway void notify (...)  :-)


We implement this basic idea in at-spi, look at :

at-spi/idl/Registry.idl
at-spi/idl/Listener.idl

and

at-spi/test/at.c
at-spi/test/app.c

Registry is a server which receives notify events and propagates them to
listeners, both registry and listeners implement Listener.idl (with
oneway notify() methods).  Listeners register with the registry via a
synchronous registerGlobalEventListener() method in which they pass
object references to themselves, the registry later calls notify() on
these object references when events need to be dispatched.

HTH,

Bill


> Thanks a lot!
> 
> Thierry Pierron
> 
> _______________________________________________
> orbit-list mailing list
> orbit-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/orbit-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]