[omniORB] ServerRequest

David Riddoch djr@uk.research.att.com
Wed, 5 May 1999 09:01:10 +0100 (GMT)


Boris,

This is actually quite a difficult thing to do.  You will need to have a
proxy DSI object in the gateway for each object you are representing (you
could load these on demand).  For each of these objects you need to know
the repository ID.  You can then look up the interface in an interface
repository -- this will tell you the operands and return type et cetera of
each operation, so that you can unmarshal the arguments.

Whenever an object reference is passed as an argument or result, you'll
have to create a new proxy object inside your gateway.  You will need its
repository ID -- but you can get this by looking at the signature of the
operation (by querying the interface repository).

OmniORB does not have its own interface repository, but it should be able
to talk to any other.  At the moment the Object::get_interface() method
doesn't work, but it will in the next release of omniORB.

Well, that's one way of doing it!  Hope that helps,
David


On Wed, 21 Apr 1999, Boris Khanales wrote:

> Maybe you can point me in the right dirrection than.
> I'm trying to write "generic" gateway. All it should do - 
> take any request and pass it over to another program.
> It is sort of push to poll converter - give me any request,
> I'll wait for poll and give this request as a poll parameter.
> Sounds very simple but at some point I'll need to convert 
> ServerRequest into Request. Oops.