[omniORB] Callback

Theo Aukerman taukerman@logici.com
Thu, 11 Nov 1999 12:46:18 -0800


I don't know if there is an async request in corba.  The closest might be a
call specified with oneway semantics (which can have no return value or out
parameter).  I'm not sure if this gets you what you want in terms of an
asynchronous request (it might depend on the ORB implementation).

To do callbacks, you will probably need to have the GALclient act as a
server as well (It would need to host a CORBA interface for the server to
call back to).

The ISR method could take a reference to the "clients" object as a
parameter, and the server could just make the call when it needs the
additional information.

To make the call asynchronous, (if one-way semantics are not enough), you
might need to spawn a new thread in the ISR implementation to complete
processing after returning.

I'd be interested in seeing better ways, but this is what comes to my mind.

Theo

-----Original Message-----
From: Renny Koshy [mailto:renny@visualsoft.com]
Sent: Thursday, November 11, 1999 12:06 PM
To: omniorb-list@uk.research.att.com
Subject: [omniORB] Callback


Does anyone know how to setup callbacks in omniORB?  I've looked @ the
IDL specs and omniORB docs without much luck.

here's what I need to get working...

GALClient:                                    GALServer:
    ----- IncomingServiceReq ----->
                                                    Does some processing

  <----- Indicate Acceptance  ------
                                                    Does some processing

  <----- Request Add'l info ---------
                                                    Does some processing

  <----- Disconnect -----------------
   ------ Requester Dropped -------->
  <----- Write account entry --------

This is ONE SERVICE REQUEST... however we don't want the system to
block... i.e. the GALClient should be able to send service requests to
other GALServers during this whole time.

I figure if I send the ISR as a non-blocking, Async request, I can then
proceed to go an do
other things?  But how do I do it?

Thanks

-Renny