Last Update: 2002/07/29
Objects-by-Value (OBV) describes the new type, Encapsulate state and operations with local implementation. Single inheritance from a References to other The IDL compiler understands
Support for valuetypes as members of IDL aggregate types has been
added. Support for inheritance from interface (supports) has been added. Support for abstract interfaces has been added. Support for forward declared valuetypes defined in another compilation
unit has been added. No support for sharing (aliasing).
No support for No support for fragmentation (chunking) of the marshalled
The marshal engine accesses the state members directly and
does not utilize the accessor/modifier functions. This is different
from the CORBA specs and needs to be changed. But the
optimized mode ( Obtaining a repository id of a The map of valuetype.
It is introduced in CORBA 2.3
(Core:
ptc/98-12-04.pdf
Mapping to C++:
ptc/98-09-03.pdf).
This first implementation was contributed from
Torsten Kuepper.
structs extended with
these features:
valuetype and
multiple inheritance from abstract
valuetypes. Eventually support of an
interface.valuetypes, with the
possibility of NULL references or shared (aliased) references.Valuetypes will likely be used to implement
abstract datatypes (ADT)s that can be copied to another process.
All processes that use the valuetype must have an
implementation for it since CORBA does not support code
migration, a la Java RMI.Current status:
valuetype.
Relevant options of TAO's IDL compiler are:
libTAO must be compiled with TAO_HAS_VALUETYPE.Valuetypes can be used as arguments in CORBA invocations.
There is an example in
$TAO_ROOT/TAO/examples/OBV/Typed_Events.
Valuetypes could even reference other
valuetype objects (but without sharing).
Known issues:
Valuetypes work only in conjunction with
compiled marshalling (-Gc, currently default for
tao_idl).
valueboxes
valuetype object. Hence no support for truncation or
custom marshalling.-Wb,obv_opt_accessor) should be
unaffected by that.
valuetype
is currently non-standard. Hashed repository ids are not
implemented.
valuetype factories needs some
revision to provide proper locking. Currently the
registration of factories is best completed before
unmarshalling valuetypes.
There is one map of factories for the whole process. This
will once be changed to conform to the specs, which
suggests one per ORB.