Martin B.
2012-08-20 10:28:02 UTC
Our CORBA API currently has an interface like:
module XYZ {
...
enum DataType {
FloatingPointT,
IntegerT
};
// v 1.1
union Value switch (DataType) {
FloatingPointT : double dv;
IntegerT : long iv;
};
interface ... {
Value GetValue(....);
...
We now would like to extend this interface to allow for string values in
addition to the two existing types:
// v 1.2
enum DataType {
FloatingPointT,
IntegerT,
StringT
};
union Value switch (DataType) {
FloatingPointT : double dv;
IntegerT : long iv;
StringT: string;
};
and keep the interface the same otherwise.
Is a client compiled with v1-1.idl supposed to be able to talk to a
server compiled with v1-2.idl -- where the definition of the union (and
the enum) differ but are a pure addition to the existing interface?
Can a client correctly invoke GetValue() as long as this function
doesn't return a unknown datatype?
Is this covered by the CORBA spec at all?
Note: It *does* indeed work when I test it with omniORB 4.1.4 (both
client and server) but that doesn't tell me whether it'll work with all
possible client ORBs!
Thanks for any pointers!
cheers,
Martin
module XYZ {
...
enum DataType {
FloatingPointT,
IntegerT
};
// v 1.1
union Value switch (DataType) {
FloatingPointT : double dv;
IntegerT : long iv;
};
interface ... {
Value GetValue(....);
...
We now would like to extend this interface to allow for string values in
addition to the two existing types:
// v 1.2
enum DataType {
FloatingPointT,
IntegerT,
StringT
};
union Value switch (DataType) {
FloatingPointT : double dv;
IntegerT : long iv;
StringT: string;
};
and keep the interface the same otherwise.
Is a client compiled with v1-1.idl supposed to be able to talk to a
server compiled with v1-2.idl -- where the definition of the union (and
the enum) differ but are a pure addition to the existing interface?
Can a client correctly invoke GetValue() as long as this function
doesn't return a unknown datatype?
Is this covered by the CORBA spec at all?
Note: It *does* indeed work when I test it with omniORB 4.1.4 (both
client and server) but that doesn't tell me whether it'll work with all
possible client ORBs!
Thanks for any pointers!
cheers,
Martin
--
I'm here to learn, you know.
Just waiting for someone,
to jump from the shadows,
telling me why I'm wrong.
I'm here to learn, you know.
Just waiting for someone,
to jump from the shadows,
telling me why I'm wrong.