[omniORB] Confusion with generated out parameters in omniidl

jnye@micro-optics.com jnye@micro-optics.com
Fri, 2 Feb 2001 09:40:15 -0400


Hi All,

I have a question about parameters in the generated C++ code. I've included
an example to illustrate.


//////////////////////////////////////////////
// An example IDL file:

interface InterfaceOne 
{
};

interface InterfaceTwo
{
    InterfaceOne op1();
    void op2(in InterfaceOne iface1);
    void op3(out InterfaceOne iface1);
    void op4(inout InterfaceOne iface1);
};

////////////////////////////////////////////////////////////////////////////
/
// Generated C++ POA code for InterfaceTwo

class _impl_InterfaceTwo : public virtual omniServant
{
public:
  virtual ~_impl_InterfaceTwo();

  virtual InterfaceOne_ptr op1() = 0;
  virtual void op2(InterfaceOne_ptr iface1) = 0;
  virtual void op3(_CORBA_ObjRef_OUT_arg< _objref_InterfaceOne,
InterfaceOne_Helper > iface1) = 0;
  virtual void op4(InterfaceOne_ptr& iface1) = 0;
  
  ...
};

////////////////////////////////////////////////////////////////////////////
/

Op1, op2 and op3 were all generated as I expected them to be, but op3 has a
strange looking template thingy when I was expecting the parameter to be of
type InterfaceOne_out. Doesn't the CORBA standard specify _out suffix?

Platform: WinNT 4.0

TIA,
Jason