ORBit order dependence within idl files?

In the transaction section of the CORBA services document, they define
several inter-referential IDL specs for transaction services.  Trying to
get them to compile to C files under ORBit, I have discovered something of
a problem.  I've culled the idl down to the bare essentials to illustrate
the problem; if anyone is interested in the full idl, then let me know
and I'll mail it to you.  (I just transcribed it from the spec.)

interface Coordinator {

   void register_subtran_aware(in SubtransactionAwareResource r)
      raises(Inactive, NotSubtransaction);


interface SubtransactionAwareResource : Resource {
        void commit_subtransaction(in Coordinator parent);
        void rollback_subtransaction();

Notice that A references B and B references A.

ORBit does not like this, to wit:

	reflections% orbit-idl -d2 bar.idl
	bar.idl:3 `SubtransactionAwareResource' undeclared identifier

Or, if I reverse the two declarations:

	reflections% orbit-idl -d2 bar.idl
	bar.idl:1 `Resource' undeclared identifier

I'm presuming that since this came from an OMG spec that it's legal
CORBA, but it's impossible for me to tell.  I was hoping to learn a
little more about CORBA through this exercise.  8^/  Anyway, not sure
what the solution is, but I thought that I'd report it and maybe see
what the ORBit authors think about it.  Is it fixable?  Does it just
require, say, two passes through the IDL file?

Todd Graham Lewis                                     (800) 719-4664, x2804
******Linux******         MindSpring Enterprises      tlewis@mindspring.net

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]