-servant
or -stub
classes, and
orblink
package.
Except for this all of the mapping is done as specified in the official mapping document.
All of the ORB pseudo-interfaces in excess of what is specified by CORBA itself are defined in IDL itself. Interface definitions in this file are hyperlinked to their semantic definition.
Thus, the Lisp calling sequence for any particular API can be determined directly from the pseudo-IDL.
For example, some of the IDL for message looks like:
module ORBLink {... pseudo interface Message { ... enum MessageDirection {incoming,outgoing,unknown}; readonly attribute MessageDirection direction; }; };
This is shorthand for the following:
orblink:message
.
orblink:message/messagedirection
which
denotes the type comprising the three keywords :incoming
, :outgoing
and :unknown
.
m
is a Lisp symbol bound to an instance of orblink:message
, then
the invocation:
(op:direction m)
will return a value of type orblink:message/messagedirection
.
Note that this API gives no way actually to create a new message.
It is important remember that the variable corba:orb
is always bound to an instance of the ORB pseudo-interface.