Using the IDL Administrative interfaces


ORBLink ORB administrative interfaces are themselves specified in IDL, or more technically in pseudo-IDL. Pseudo-IDL is like IDL except that:
  1. A pseudo-interface, an interface specified in pseudo-IDL, does not generate -servant or -stub classes, and
  2. a pseudo-object may not be passed remotely.
Most of the pseudo-interfaces defined by the IDL for the administration of the ORB are defined in the ORBLink module. The associated symbols are thus interned as external symbols in the 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:

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.