Previous | Table of Contents | Next |
Operations defined on a value type specify signatures whose implementation can only be local. Because these operations are
local, they must be directly implemented by a body of code in the language mapping (no proxy or indirection is involved).
The language mappings of such operations require that instances of value types passed into and returned by such local methods
are passed by reference (programming language reference semantics, not CORBA object reference semantics) and that a copy is
not made. Note, such a (local) invocation is not a CORBA invocation. Hence it is not mediated by the ORB, although the API
to be used is specified in the language mapping.
The (copy) semantics for instances of value type are only guaranteed when instances of these value types are passed as a parameter
to an operation defined on a CORBA interface, and hence mediated by the ORB. If an instance of a value type is passed as a
parameter to a method of another value type in an invocation, then this call is a “normal? programming language call. In this
case both of the instances are local programming language constructs. No CORBA style copy semantics are used and programming
language reference semantics apply.
Operations on the value type are supported in order to guarantee the portability of the client code for these value types.
They have no representation on the wire and hence no impact on interoperability.