[omniORB] omniidl2 and crossed references ?

Fabien Azavant Fabien.Azavant@enst.fr
Fri, 19 Mar 1999 15:59:20 +0100


Hello,

I am quite new to omniORB, please excuse my question if it it silly.

I am trying to compile the following IDL interfaces :

File chicken.idl:
----------
#ifndef CHICKEN
#define CHICKEN
interface Chicken ;
#include "egg.idl"
interface Chicken {
  Egg lay() ;
};
#endif


File egg.idl :
--------
#ifndef EGG
#define EGG
interface Egg ;
#include "chicken.idl"
interface Egg {
  Chicken hatch() ;
};
#endif


omniidl2 compiles the two files and generates
the C++ files. However, the generated files cannot be compiled.
I think the following lines should be added to
chicken.hh :

class   Egg;
typedef Egg* Egg_ptr;
typedef Egg_ptr EggRef;
class _proxy_Egg;
class _sk_Egg;
class _nil_Egg;

and similar lines should be added at the beginning of
egg.hh

With these patches, everything works well.

Is it normal ?
Did I forget a switch when running omniidl2 ?

By the way, I am running
omniORB_2.7.0 under linux redhat5.1
compiled with egcs.

Fabien