[omniORB] Problem assigning an Any out parameter

amos at amos.mailshell.com amos at amos.mailshell.com
Fri Jul 22 18:03:34 BST 2005


Hello,

With the previous question of serialization behind me,
I now try to send back the deserialized objects to clients
which ask for them.

Here is the IDL signature of the method which returns
the objects:

void get_next_operation(inout long latestOpId, out any operation)
raises (operationslog::NoMoreOperationsException);

And here is the function itself:

(data.get_data() and data.get_size() describe an array of
bytes holding the serialized objects).

void get_next_operation(CORBA::Long& latestOpId, CORBA::Any_out op)
{
//...
cdrMemoryStream stream(data.get_data(), data.get_size());
operationslog::Operation temp;
temp <<= stream;
op <<= temp;
}

The compiler complains about the "op <<= temp" line. It says
there is no match for this function call. I use "temp" in an
attempt to solve the problem.

Compiler is g++ 3.3.5 on Debian sarge. OmniORB version is 4.0.6.
I executed omniidl with the -Wba switch to turn on the extra
method creation.

I suppose I'm doing something wrong - but what?

Thanks,

--Amos





More information about the omniORB-list mailing list