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.)

bar.idl:
*****
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]