AW: Re[4]: [omniORB] Reopening namespace - the complete solution

Schmidmeier, Arno Arno.Schmidmeier@sirius-eos.com
Mon, 21 Feb 2000 13:58:35 +0100


Hello,
So is following assumption correct?
I have an idl-compiler (idl) confirming to the described behaviour of =
the
spec.

You have following two idl-compile scripts
first one:
cpp F.idl>output.idl
idl output.idl

second one:
idl output.idl

And the two scripts generate different output?

Arno Schmidmeier

************************************************************************=
*
************************************************************************=
*
Arno Schmidmeier

Sirius
Simplicity out of complexity

Arno.Schmidmeier@sirius-eos.com
Phone +49/89/ 61 36 76-37
Fax +49/89/ 61 36 76-33




> -----Urspr=FCngliche Nachricht-----
> Von:	Duncan Grisby [SMTP:dgrisby@uk.research.att.com]
> Gesendet am:	Montag, 21. Februar 2000 13:30
> An:	Alex Shabarshoff
> Cc:	omniorb-list@uk.research.att.com
> Betreff:	Re: Re[4]: [omniORB] Reopening namespace - the complete
> solution=20
>=20
> On Monday 21 February, Alex Shabarshoff wrote:
>=20
> > DG> // C.idl
> > DG> #define NAMESPACE_OPENED
> > DG> module M {
> > DG> #include "A.idl"
> > DG> #include "B.idl"
> > DG> };
> >=20
> > DG> then the repository ids of I1 and I2 should be IDL:I1:1.0 and
> > DG> IDL:I2:1.0, without the M.
> >=20
> > Hmm... I don't understand why? After the preprocessor the output =
would
> > be:
> >=20
> > module M {
> > interface I1 ...
> > interface I2 ...
> > };
> >=20
> > So, the repoID's should be IDL:M/I1:1.0 and IDL:M/I2:1.0 or they
> > don't?
>=20
> See section 10.6.5.2 of the CORBA 2.3 spec. It explains the rules
> about how repository IDs are generated. One of the examples it gives
> is
>=20
> // E.idl
> interface E {};
>=20
> // F.idl
> module M {
> #include "E.idl"
> };
>=20
> And says that E's repoId is IDL:E:1.0.
>=20
> Many IDL compilers get this wrong, in various unexpected ways. It is
> extremely dangerous to use #include anywhere other than at global
> scope if you wish to use more than one ORB.
>=20
> Cheers,
>=20
> Duncan.
>=20
> --=20
>  -- Duncan Grisby  \  Research Engineer  --
>   -- AT&T Laboratories Cambridge          --
>    -- http://www.uk.research.att.com/~dpg1 --