[omniORB] omniidl for omniORB3 pre2

Tim S. Woodall tim@redpt.com
Thu, 09 Mar 2000 15:53:31 -0600


On WinNT 4.0 w/ MSVC++ SP3 I'm having problems
compiling code generated by omniidl. The actual problem
is the use of fully qualified names when initializing base
classes in constructors. When the base class is defined
in a different module, fully qualifying the name confuses the
compiler (e.g.):

CosEventChannelAdmin::_objref_ProxyPushConsumer::_objref_ProxyPushConsumer(const
char* mdri,
   IOP::TaggedProfileList* p, omniIdentity* id, omniLocalIdentity* lid)
:
   CosEventComm::_objref_PushConsumer(mdri, p, id, lid),

   omniObjRef(CosEventChannelAdmin::ProxyPushConsumer::_PD_repoId, mdri,
p, id, lid)
{
  _PR_setobj(this);
}

Results in:

D:\src\netvoyant1_2\services\stubs\CosEventChannelAdminSK.cpp(191) :
error C2437: '_objref_PushConsumer' : already initialized


As the compiler appears to use the default constructor rather than the
fully
qualified name. Removing the module name as indicated below appears to
resolve this:


CosEventChannelAdmin::_objref_ProxyPushConsumer::_objref_ProxyPushConsumer(const
char* mdri,
   IOP::TaggedProfileList* p, omniIdentity* id, omniLocalIdentity* lid)
:
   _objref_PushConsumer(mdri, p, id, lid),

   omniObjRef(CosEventChannelAdmin::ProxyPushConsumer::_PD_repoId, mdri,
p, id, lid)
{
  _PR_setobj(this);
}



Is this configurable w/ omniidl, or can anyone provide insight on the
omniidl modifications required to omit the module name?


Thanks,
Tim S. Woodall
RedPoint Network Systems
tim@redpt.com