[omniORB] Re: omniORB3 problem?
David Riddoch
djr@uk.research.att.com
Mon, 24 Jan 2000 13:38:22 +0000 (GMT)
Hi Mark,
The mapping for the signature of object implementations has changed
between CORBA 2.0 and 2.3. See page 103 of the c++ spec. It basically
says that T_out types should be used as the parameter type for the out
arguments.
Thus you implementation signature should be:
void work(Hammer_out obj);
(nb. I am assuming 'create' below should have been 'work')
_CORBA_ObjRef_OUT_arg<_objref_Hammer,Hammer_Helper> is just an omniORB
specific name for the same type. You should use Hammer_out.
If you wish you can continue to use the old mapping, by passing the
-Bold_signatures option to omniidl3.
Cheers,
David
On Mon, 24 Jan 2000, Mark Little wrote:
> Hi. I'm trying to rebuild an existing application using omniORB3 and have
> run into a small problem with the following idl:
>
> interface Hammer
> {
> // some methods
> };
>
> interface foo
> {
> void work (out Hammer h);
> };
>
> On omniORB2 I'd expect to have to implement a method work which takes a
> Hammer_ptr& as a parameter. However, the new idl compiler gives me:
>
> create(_CORBA_ObjRef_OUT_arg<_objref_Hammer,Hammer_Helper > obj)
>
> which seems strange. Do I really have to know this much detail to implement
> a basic CORBA object now?