[omniORB] DII

Duncan Grisby dgrisby@uk.research.att.com
Mon, 11 Feb 2002 14:56:11 +0000


On Wednesday 30 January, Anton Idukov wrote:

> CORBA Server & Client  in the same process space.
> Client use DII for setting/getting idl attributes of server.( e.g. 
> CORBA::Request_ptr::invoke() )
> 
> 1. Can Anyone show me the chain of calls of pidl/omni objects down to 
> servant::attribute( T t );

Look at the DII example in src/examples/dii. To deal with attributes,
you need to prefix the attribute name with "_get_" or "_set_".
i.e. with IDL

  interface I {
    attribute long foo;
  };

you get the attribute through DII using the operation named "_get_foo"
and set it with "_set_foo".

> And If server haven't requested attribute - 
> 
>     2. Can Anyone show me the way of exception propagation up  
> to CORBA::Request_ptr::invoke()

Look at the env() parameter of the request object. It returns an
Environment object. If the Environment's exception() function returns
non-zero, it's an exception that you can look at. You can try to
downcast the exception received to a system or user exception.

Cheers,

Duncan.

-- 
 -- Duncan Grisby  \  Research Engineer  --
  -- AT&T Laboratories Cambridge          --
   -- http://www.uk.research.att.com/~dpg1 --