diff options
Diffstat (limited to 'TAO/docs/releasenotes/OBV.html')
-rw-r--r-- | TAO/docs/releasenotes/OBV.html | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/TAO/docs/releasenotes/OBV.html b/TAO/docs/releasenotes/OBV.html new file mode 100644 index 00000000000..6320b983ab1 --- /dev/null +++ b/TAO/docs/releasenotes/OBV.html @@ -0,0 +1,134 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<html> +<body text="#000000" bgcolor="#FFFFFF"> + + <head> + <title>Object-by-Value status</title> + <!-- $Id$ --> + </head> + + <body> + <center> + <h1><a name="orb"></a>Objects-by-Value</h1> + Points of contact: <a href="mailto: parsons@cs.wustl.edu">Jeff Parsons</a> + <a href="mailto: bosk@ipmce.ru">Boris Kolpackov</a> + <a href="mailto:g.edwards@vanderbilt.edu">George Edwards</a> + + <p>Last Update: 2004/08/24 </p> + </center> + + <p>Objects-by-Value (OBV) describes the new type, <CODE>valuetype</CODE>, introduced in CORBA 2.3 + <br>(Core: + <a href="http://www.omg.org/cgi-bin/apps/doc?formal/02-12-06.pdf">formal/02-12-06.pdf</a>; Mapping to C++: + <a href="http://www.omg.org/cgi-bin/apps/doc?formal/03-06-03.pdf">formal/03-06-03.pdf</a>). + <p>The original TAO implementation was contributed by + <a href="mailto: kuepper2@uni-wuppertal.de">Torsten Kuepper</a>, and has subsequently been enhanced and corrected by <a href="mailto: parsons@cs.wustl.edu">Jeff Parsons</a> and <a href="mailto:g.edwards@vanderbilt.edu">George Edwards</a>. + <p><CODE>Valuetype</CODE>s are similar to IDL <CODE>struct</CODE>s extended with + these capabilities: + <ul> + <li><p>Encapsulate both state information and operations in an implementation that is guaranteed to be local.</p> + </li> + + <li><p>Can be declared <CODE>abstract</CODE>, in which case no state members are defined.</p> + </li> +<li><p>Can inherit from a single concrete <CODE>valuetype</CODE> and multiple <CODE>abstract valuetype</CODE>s.</p></li> +<li><p>Can support a single concrete <CODE>interface</CODE>, allowing them to be manipulated as either a valuetype or an object reference.</p></li> +<li><p>Can support multiple <CODE>abstract interface</CODE>s, allowing them to be substituted for those interfaces in operation invocations.</p></li> + <li><p>Can hold references to other <CODE>valuetype</CODE>s, with the + possibility of NULL references or shared (aliased) references.</p> + </li> + </ul> + +<p>Valuetypes have the following uses: +<UL> +<li><p>Implement abstract datatypes (ADTs) that can be copied to another process.</p></li> +<li><p>Represent <CODE>eventtype</CODE>s in the Event Service.</p></li> +<li><p>Ensure operations are executed locally for increased performance.</p></li> +</UL> + <a name="current"><h3>Current status:</h3></a> + + <ul> + <li><p>The IDL compiler understands <CODE>valuetype</CODE>. + Relevant option of TAO's IDL compiler is: <P> + <UL> + <LI>-Wb,obv_opt_accessor Make accessor and modifier functions inline. + Overriding them is not allowed in this mode.</LI> + </UL></P> + <p></p> + </li> + <li><p><CODE>Valuetype</CODE>s can be used as arguments in CORBA invocations. + There is an example in + <A HREF="../../examples/OBV/Typed_Events">$TAO_ROOT/TAO/examples/OBV/Typed_Events</A>. + <CODE>Valuetype</CODE>s can reference other + <CODE>valuetype</CODE> objects (but without sharing). + </p> + </li> + <li> + <p>Support for valuetypes as members of IDL aggregate types has been + added.</p> + </li> + <li> + <p>Support for inheritance from a concrete interface (<CODE>supports</CODE>) has been added. There is an example in <A HREF="../../tests/OBV/Supports">$TAO_ROOT/TAO/tests/OBV/Supports</A>.</p> + </li> +<li> +<p>Support for inheritance from abstract interfaces has been added. There is an example in <A HREF="../../tests/Abstract_Interface">$TAO_ROOT/TAO/tests/Abstract_Interface</A>.</p> + <li> + <p>Support for forward declared valuetypes defined in another compilation + unit has been added. See <A HREF="../../examples/OBV/Typed_Events">$TAO_ROOT/TAO/examples/OBV/Typed_Events</A>.</p> + </li> +<li> +<p>Support for recursively-defined valuetypes has been added. See <A HREF="../../tests/OBV/Supports">$TAO_ROOT/TAO/tests/OBV/Supports</A>.</p> +</li> +<li> +<p>Support for user-declared factories has been added. See <A HREF="../../tests/OBV/Factory">$TAO_ROOT/TAO/tests/OBV/Factory</A>.</p> +</li> + </ul> + + <a name="issues"><h3>Known issues:</h3></a> + + <ul> + <li><p><CODE>Valuetype</CODE>s work only in conjunction with + compiled marshaling (<CODE>-Gc</CODE>, currently default for + <CODE>tao_idl</CODE>). + </p> + </li> + + <li><p>No support for sharing (aliasing). + </p> + </li> + + <li><p>No support for <CODE>valuebox</CODE>es + </p> + </li> +<li> +<p> +No support for <CODE>valuetype</CODE>s with cyclic references.</p></li> + + <li><p>No support for fragmentation (chunking) of the marshalled + <CODE>valuetype</CODE> object. Hence no support for truncation or + custom marshalling.</p> + </li> + + <li><p>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 (<CODE>-Wb,obv_opt_accessor</CODE>) should be + unaffected by that. + </p> + </li> + + <li><p>The map of <CODE>valuetype</CODE> factories needs some + revision to provide proper locking. Currently the + registration of factories is best completed before + unmarshalling <CODE>valuetype</CODE>s. + 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. + </p> + </li> + </ul> + + <P><HR><P> + <a href="#toc">Back to TOC</a> + </body> +</html> |