Martin B.
2011-03-04 10:06:08 UTC
Maybe someone here can help:
Original question see: http://stackoverflow.com/q/5178031/321013
Given two IDL definitions: (I'm only implementing a client, the server
side is fixed.)
// Version 1.2
module Server {
interface IObject {
void Foo1();
void Foo2() raises(EFail);
string Foo3();
// ...
}
};
// Version 2.3
module Server {
interface IObject {
// no longer available: void Foo1();
void Foo2(string x) raises(ENotFound, EFail); // incompatible
change
wstring Foo3();
// ...
}
};
Is it somehow possible to compile both stub code files in the same C++
CORBA Client App?
Using the defaults of an IDL compiler, the above two IDL definitions
will result in stub code that cannot be compiled into the same C++
module, as you'd get multiple definition errors from the linker. The
client however needs to be able to talk to both server versions.
What are possible solutions?
(Note: We're using http://omniorb.sourceforge.net/)
cheers,
Martin
Original question see: http://stackoverflow.com/q/5178031/321013
Given two IDL definitions: (I'm only implementing a client, the server
side is fixed.)
// Version 1.2
module Server {
interface IObject {
void Foo1();
void Foo2() raises(EFail);
string Foo3();
// ...
}
};
// Version 2.3
module Server {
interface IObject {
// no longer available: void Foo1();
void Foo2(string x) raises(ENotFound, EFail); // incompatible
change
wstring Foo3();
// ...
}
};
Is it somehow possible to compile both stub code files in the same C++
CORBA Client App?
Using the defaults of an IDL compiler, the above two IDL definitions
will result in stub code that cannot be compiled into the same C++
module, as you'd get multiple definition errors from the linker. The
client however needs to be able to talk to both server versions.
What are possible solutions?
(Note: We're using http://omniorb.sourceforge.net/)
cheers,
Martin