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® - 01 Dec 2021 19:38:37