Discussion:
[omniORB] upgrading from omniORB 2.8.0 to 4.1.1
Zinger, Cherry
2008-08-05 03:19:47 UTC
Permalink
I have two unrelated questions on upgrading from omniORB 2.8.0 to 4.1.1:


1) With omniORB2, we stored data that had been serialized with
MemBufferedStream. Can this data be read by cdrMemoryStream?
Or must we reimplement MemBufferedStream to read the old data?


2) We'd like to preserve our code using omniild's -Wbold option.
However, many of our output parameters are sequences, so the
option has no effect. Given IDL like:

struct FOO { long oneField; };
typedef sequence < FOO > FOO_SEQ;
interface IFoo { long GetFoos( out FOO_SEQ results ); };

Is there a way to generate:

virtual ::CORBA::Long GetFoos(FOO_SEQ *& results) = 0;

Rather than:

virtual ::CORBA::Long GetFoos(FOO_SEQ_out results) = 0;


Thanks for any help! Apologies if any of this is trivial!
Duncan Grisby
2008-08-13 20:22:06 UTC
Permalink
Post by Zinger, Cherry
1) With omniORB2, we stored data that had been serialized with
MemBufferedStream. Can this data be read by cdrMemoryStream?
Or must we reimplement MemBufferedStream to read the old data?
Yes, you can read the data with cdrMemoryStream. The code should be
almost identical to the code you used with MemBufferedStream.
Post by Zinger, Cherry
2) We'd like to preserve our code using omniild's -Wbold option.
However, many of our output parameters are sequences, so the
struct FOO { long oneField; };
typedef sequence < FOO > FOO_SEQ;
interface IFoo { long GetFoos( out FOO_SEQ results ); };
virtual ::CORBA::Long GetFoos(FOO_SEQ *& results) = 0;
virtual ::CORBA::Long GetFoos(FOO_SEQ_out results) = 0;
That's a limitation in the code generation. It certainly could be fixed,
but I haven't looked into it in enough depth to see how much work it
would be.

Is there anyone out there using -Wbold with out arguments who would be
affected if the signature for out arguments changed?

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...