[Fwd: Re: [omniORB] IDL question]]

Stefan Seefeld seefeld@sympatico.ca
Tue, 06 Mar 2001 19:24:22 -0500


Shen Chun wrote:
> 
> Hi, David:
>         Thank you for the answer. That is the problem I have now.
> If there is no module scoping inside the echo IDL, the IDL compiler
> will generate the POA_echo and everthing is OK. I have made this working
> OK. We also figure out the context info of the messages exchanged over
> the wire.
>         If I use the module scoping in the IDL(this is a good pratice,as I
> won't pollute the CORBA name space), the IDL compiler won't generate
> the  POA_echo class. Instead, we have the  Echo_demo and the
> POA_Echo_demo modules.
>         If inherited this way:class Echo :
>                  class Echo_i : public POA_Echo_demo::Echo,
>                  public PortableServer::RefCountServantBase
> It seems that all the member functions inside _impl_Echo inside module:
> Echo_demo is not visible inside POA_Echo_demo, even the Echo
> is inherited inside POA_Echo_demo:
> 
>         class Echo :
>             public virtual Echo_demo::_impl_Echo,
>             public virtual PortableServer::ServantBase
> 
>         Please check the make logfile. I have no idea if this
> is a c++ programming problem or omniorb generated class problem.

the generated Echo and POA_Echo class do indeed not share a common ancestor,
but both contain all the methods the Echo interface specifies. That's one of
the consequences of the switch from BOA to POA.
typedefs and nested types are only defined in the Echo class, not in the
POA_Echo class, according to the specs.

Stefan