[Ace-users] [tao-users] TAO_IDL compiler + is this a bug?

Johnny Willemsen jwillemsen at remedy.nl
Fri Jan 18 12:48:25 CST 2008


Hi Abdul,

The -Sci option (and only similar ones) just suppressed the generation of
the file, it doesn't make inline methods non-inline. The options are also
documented as just suppressing the files, not moving all inline to the cpp
file.

These are there for the generation of the core libs and where not made
really advanced. If you don't want inlining you have to disable full
inlining when building your applicatiln.

Regards,


Johnny Willemsen
Remedy IT
Postbus 101
2650 AC  Berkel en Rodenrijs
The Netherlands
www.theaceorb.nl / www.remedy.nl  

*** Integrated compile and test statistics see
http://scoreboard.theaceorb.nl ***
*** Commercial service and support for ACE/TAO/CIAO             ***
*** See http://www.theaceorb.nl/en/support.html                 ***



> I have a very simple IDL file, which is attached. We wanted to suppress
> generation of inline files, so we use the following command to generate
> the code:
> 
> tao_idl -Sci -Ssi Foo.idl
> 
> Should the generated code be something that one can compile and link
> against? If not, I wonder what the purpose of having an option that
> would generate code that someone can not use.
> 
> Below is the code that would be generated in the FooC.inl file had I not
> suppressed inline code generation:
> 
> ACE_INLINE
> Foo::Foo (
>     TAO_Stub *objref,
>     ::CORBA::Boolean _tao_collocated,
>     TAO_Abstract_ServantBase *servant,
>     TAO_ORB_Core *oc
>   )
>   : ::CORBA::Object (objref, _tao_collocated, servant, oc),
>     the_TAO_Foo_Proxy_Broker_ (0)
> {
>   this->Foo_setup_collocation ();
> }
> 
> ACE_INLINE
> Foo::Foo (
>     IOP::IOR *ior,
>     TAO_ORB_Core *oc
>   )
>   : ::CORBA::Object (ior, oc),
>     the_TAO_Foo_Proxy_Broker_ (0)
> {
> }
> 
> When I do a diff between FooC.cpp the version that had inlining
> suppressed and the version that didn't you'll see the following
> difference:
> 
> #if !defined (__ACE_INLINE__)
> #include "FooC.inl"
> #endif /* !defined INLINE */
> 
> When I do a diff between FooC.h the version that had inlining suppressed
> and the version that didn't you'll see the following difference:
> 
> #if defined (__ACE_INLINE__)
> #include "FooC.inl"
> #endif /* defined INLINE */
> 
> So, when we suppress generation of inlined file, shouldn't the code in
> the inlined files be placed in the cpp files?
> 
> Thanks,
> Abdul
> 
> 
> 



More information about the Ace-users mailing list