[omniORB] Proposed minor change to omniidl back-end interface

Duncan Grisby dgrisby@uk.research.att.com
Thu, 24 Aug 2000 17:20:24 +0100


Unless there are any significant objections, I intend to make a small
incompatible modification to omniidl's back-end interface. This change
only affects back-end authors -- if you just use omniidl to generate
stubs for C++ or Python, you will not notice the difference.

The change is to allow back-ends to retrieve repository ids for
operations and attributes. It also has the side-effect of making the
back-end interface more uniform.

The proposed changes are:

 - idlast.Operation now inherits from idlast.DeclRepoId. The
   identifier() method is removed, as the equivalent method is now
   inherited from DeclRepoId.

 - idlast.Attribute has a new declarators() method which returns a
   list of idlast.Declarator objects, relating to the attribute
   declarators. idlast.Declarator already inherited from DeclRepoId,
   so the repoids of the attribute declarators can be retrieved. The
   identifiers() method is no longer necessary, but it retained for
   backwards compatibility.

All of that is totally backwards compatible, so most back-ends won't
need to be changed.

The proposed incompatibility is with pragmas and comments for
attributes. It used to be the case that pragmas and comments for
attribute declarators were combined together in the Python interface
and attached to the Attribute node, since there was nowhere else to
attach them. Now, they are attached to the Declarator nodes. This is a
good thing, since pramgas can now be attached to individual attribute
declarators, rather than just to whole attribute.

So, you will only have to change code which manipulates pragmas and
comments within attributes.

Any comments?

Cheers,

Duncan.

-- 
 -- Duncan Grisby  \  Research Engineer  --
  -- AT&T Laboratories Cambridge          --
   -- http://www.uk.research.att.com/~dpg1 --