All Manuals > Developing Component Software with CORBA® > Appendix A: Common Lisp IDL Binding

A.5 Mapping pseudo-objects to Lisp

Pseudo-objects are constructs whose definition is usually specified in IDL, but whose mapping is language specified. A pseudo-object is not (usually) a regular CORBA object.

A pseudo-object differs from a regular CORBA object in the following ways:

We have chosen the option allowed in the IDL specification to define status as void and have eliminated it for the convenience of Lisp programmers.

Each of the standard IDL pseudo-objects is mapped according to the translation rules just defined.

A.5.1 Narrowing

In line with the other language binding, we define an operation for narrowing an object reference. The code:

(op:narrow class-symbol object-refence)

attempts to narrow the given object reference into an object of the named client-side class.

For example, to narrow an client-side value stored in account-ref, into an object of type Bankingdemo:Checkingaccount:

(when (op:Is_a account-ref 
        (op:id Bankingdemo:_Tc_Checkingaccount))
   (setf account-ref 
   (op:narrow 'Bankingdemo:Checkingaccount account-ref)))

A.5.2 Typecodes for parsed IDL

Parameters holding the typecode value are generated for all parsed IDL types. If the IDL parser generates a Lisp type of name A:B, then the typecode of the given type is available in the parameter A:_TC_B.

For example, the IDL code:

module example { interface array_interface{}}; 

leads to the definition of a parameter:

example:_tc_array_interface 

with:

(op:kind example:_tc_array_interface)
> :tk_objref

Developing Component Software with CORBA® - 01 Dec 2021 19:38:37