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