Revert "Use a variable on the stack to not have a temporary in the call"
[ACE_TAO.git] / TAO / tests / OBV / Supports / README
blob9848836df0d3edeb83acf19451d47446083d3ccc
3 The Supports_Test example tests the ability of valuetypes to support concrete
4 interfaces. Valuetypes are manipulated both as normal valuetypes and as object
5 references.
7 Since operations of a supported interface are mapped to pure virtual methods in
8 the valuetype (and are not inherited), an application using this feature should
9 probably not define an implementation of the interface. Doing so will result in
10 multiple implementations of the same method - one for objects of the interface,
11 and one for valuetypes - and clients will have no way to distiguish between the
12 two, other than narrowing objects of the interface type to the
13 valuetype. Instead, one can leave the interface unimplemented, and only define
14 implementations of its methods in the valuetype.
16 The steps are as follows:
18 1. Activate a POA in which the valuetype will reside and create the valuetype.
19 2. Call the valuetype's "_this ()" method, which is inherited from the skeleton
20    class of the supported interface. This will return an active object reference
21    to an object that is the type of the supported interface.
22 3. This object reference can be passed as a parameter and supports remote
23    operation invokations.
25 Supports_Test checks proper operation of the following features:
26 -Valuetypes that support concrete interfaces:
27    Using the same valuetype implementation, Supports_Test creates both
28    valuetypes and object references, passes them as parameters, and
29    invokes both local and remote calls.
30 -ORB::register_value_factory () return values:
31    Supports_Test checks the return values of register_value_factory () to
32    ensure compliance with the spec.