[omniORB] Interceptor/CORBA::Request

Duncan Grisby duncan at grisby.org
Tue Aug 26 13:06:07 BST 2003


On Tuesday 19 August, "Ameya Virkar" wrote:

> In the "serverReceiveRequest" Interceptor, I need to do the following.

Fundamentally, your issue is that both Orbix's and omniORB's
interceptors are proprietary interfaces, so you can have no
expectation that they have the same facilities. To port from one to
the other, you are going to have to make some changes to cope with
that.

omniORB has most of the interception points from the portable
interceptors API, so you are generally limited to the facilities of
that.

> a) Get the target Corba::Object [ Corba::Object *obj ] (Obtained from
> Corba::Request::target())

You can't, since it is fundamentally impossible to know the object
reference the client used. I don't know what the Orbix version does.
Maybe it has a simplistic one-to-one mapping of servants to object
references. You can find the servant if it is activated, by doing a
lookup in the object table. See internal/objectTable.h.

> b) Get the file descriptor associated with the Corba::Request (In Orbix,
> each request has a file descriptor associated with it. How to get it in
> omniORB?)

You can't do anything like that.

To do your port, you're going to have to step back a stage, and think
how to implement the requirements you have using the tools that
omniORB provides. You can't do a simple like-for-like port from the
Orbix code.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list