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:
any.
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.
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)))
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® - 18 Feb 2025 15:39:53