The
CORBA specification does not force
ORB vendors to use a unified naming convention for IDL compiler products.
Moreover, it does not define what these products should
contain. Therefore, a set of properties was created in IBM® Rational® Rhapsody® to
address this issue.
All IDL compilers generate
specification files (with function headers and signatures only) and
implementation files (with function definitions and bodies). For a
given CORBA interface, the IDL compiler can conceivably create the
following code:
- Skeleton code - Server-side
code. Can be
built of two files, one for specification and one for implementation.
- Stub code - Client-side code. Can be built
of two files, one for specification and one for implementation.
This means that the IDL compiler can potentially
create four files, whose names are derived from the IDL file name.
For example, compiling an IDL file named X.idl with
TAO leads to the following three files:
- X.hh (specification
file)
- XS.cpp (skeleton implementation
file)
- XC.cpp (stub implementation
file)
Compiling the same X.idl file
with another IDL compiler, for example Visibroker,
leads to the following files:
- X_s.hh (skeleton
specification
file)
- X_c.hh (stub specification
file)
- X_s.c (skeleton implementation
file)
- X_c.c (stub implementation
file)
The following properties were created
in Rational Rhapsody to
define the IDL compiler file-naming behavior:
- ImplementationExtension specifies
the extension of implementation files. The default is .cpp.
- SkeletonImplementationName is
a string that defines the naming behavior for skeleton implementation
files. The default is $interfaceS.
- SkeletonSpecificationName is a
string that defines the naming behavior for skeleton specification
files. The default is $interfaceS.
- SpecificationExtension is a string
that specifies the extension for specification files. The default
is .h.
- StubImplementationName is
a string
that defines the naming behavior for stub implementation files. The
default is $interfaceC.
- StubSpecificationName is
a string
that defines the naming behavior for stub specification files. The
default is $interfaceC.