diff options
Diffstat (limited to 'ACE/TAO/tests/OBV/Supports/README')
-rw-r--r-- | ACE/TAO/tests/OBV/Supports/README | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/ACE/TAO/tests/OBV/Supports/README b/ACE/TAO/tests/OBV/Supports/README new file mode 100644 index 00000000000..e708dff9ed8 --- /dev/null +++ b/ACE/TAO/tests/OBV/Supports/README @@ -0,0 +1,32 @@ +// $Id$ + +The Supports_Test example tests the ability of valuetypes to support concrete +interfaces. Valuetypes are manipulated both as normal valuetypes and as object +references. + +Since operations of a supported interface are mapped to pure virtual methods in +the valuetype (and are not inherited), an application using this feature should +probably not define an implementation of the interface. Doing so will result in +multiple implementations of the same method - one for objects of the interface, +and one for valuetypes - and clients will have no way to distiguish between the +two, other than narrowing objects of the interface type to the +valuetype. Instead, one can leave the interface unimplemented, and only define +implementations of its methods in the valuetype. + +The steps are as follows: + +1. Activate a POA in which the valuetype will reside and create the valuetype. +2. Call the valuetype's "_this ()" method, which is inherited from the skeleton + class of the supported interface. This will return an active object reference + to an object that is the type of the supported interface. +3. This object reference can be passed as a parameter and supports remote + operation invokations. + +Supports_Test checks proper operation of the following features: +-Valuetypes that support concrete interfaces: + Using the same valuetype implementation, Supports_Test creates both + valuetypes and object references, passes them as parameters, and + invokes both local and remote calls. +-ORB::register_value_factory () return values: + Supports_Test checks the return values of register_value_factory () to + ensure compliance with the spec. |