[omniORB] Probable bug in omniidl3 with POA and tie interfaces
Alex Shabarshoff
shura@uc.ru
Fri, 14 Jan 2000 13:01:48 +0300
Short problem description:
The interface.idl file looks like:
module A {
interface Caller;
interface Processor {
void Process( in Caller arg );
};
interface Caller {
void DoSome( in Processor arg );
};
};
When i compile this file with "omniidl3 -tp interface.idl", I get a
header file like this:
_CORBA_MODULE A
_CORBA_MODULE_BEG
class Caller {
...
}
_CORBA_MODULE_END
_CORBA_MODULE POA_A
_CORBA_MODULE_BEG
template <class T>
class Processor_tie : public virtual Processor
{
...
void Process(Caller_ptr arg) { pd_obj->Process(arg); }
...
}
_CORBA_MODULE_END
So, the compiler complains at "void Process" line. The problem is that the
idl-compiler forgot to attach the module name to Caller_ptr. This line
probably should look like this:
void Process(A::Caller_ptr arg) { pd_obj->Process(arg); }
This problem appears with tie interfaces only.
Thanks.
Alex Shabarshoff.
Union Card Processing Company.
Moscow, Russia.