summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjp4 <jp4@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-09-18 02:23:44 +0000
committerjp4 <jp4@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-09-18 02:23:44 +0000
commit7e04000d98ef9e2b6ca9d3365ce7fcd0aa31f6c5 (patch)
treefab9fb28e6f4b3dfa294c0030ebfae33371b1b3e
parent174db92e2956d2f04772b06c604e5291b6b8d0db (diff)
downloadATCD-7e04000d98ef9e2b6ca9d3365ce7fcd0aa31f6c5.tar.gz
*** empty log message ***
-rw-r--r--TAO/ChangeLog-98c5
-rw-r--r--TAO/tests/DynAny_Test/README.txt79
2 files changed, 84 insertions, 0 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index 83f855e2446..e4e3a75e849 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,8 @@
+Thu Sep 17 21:22:42 1998 Jeff Parsons <jp4@cs.wustl.edu>
+
+ * TAO/tests/DynAny_Test/README.txt
+ Updated and edited file.
+
Thu Sep 17 18:52:14 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp:
diff --git a/TAO/tests/DynAny_Test/README.txt b/TAO/tests/DynAny_Test/README.txt
new file mode 100644
index 00000000000..522284d05b0
--- /dev/null
+++ b/TAO/tests/DynAny_Test/README.txt
@@ -0,0 +1,79 @@
+
+ *********** DynAny_Test ****************
+
+ updated 9/17/98.
+
+
+What we have so far starts with the DynAny.idl file. Since TCKind is
+a return type in one or two of the functions, another file called
+tckind.idl is included in DynAny.idl, but is not included in the NT project
+build. This causes the TAO IDL compiler to generate include statements for
+files called tckindC.h and tckindS.h which don't exist, so these statements
+must be commented out of the generated source files. Note that tckind.idl
+contains a copy of the TCKind enum in Orb.h, so if the TCKind enum ever
+changes, there will be a choice of recompiling from scratch or doing an
+extensive search and edit for code depending on this enum.
+
+Since the IDL generated source files have had to be modifed, the .idl files
+are collected in a separate "project" in the VC workspace, so source files
+are not regenerated automatically every time the IDL compiler gets rebuilt.
+The VC project names "client" and "server" mean nothing.
+
+The _i classes inherit from the POA_ classes generated by the IDL compiler,
+not from DynAny_i. This leads to some repeated code (mostly in the insert
+and get functions, the other common functions being slightly different
+for each class), but allows specialization of classes, notably DynAny_i.
+Since the basic DynAny_i instances will populate the lowest level of any
+complex DynAny, this class has been kept as lightweight as possible.
+Thus this bridge pattern has some advantages to offset the increased
+footprint, but it may be changed when the files are moved into TAO.
+
+The insert_xxx and get_xxx functions in POA_DynAny (in DynAnyS.h),
+which were generated as pure virtual, have been modified to be
+non-virtual. This is because DynEnum_i, which inherits from
+POA_DynEnum which inherits from POA_DynAny, does not override
+these functions (nor does POA_DynEnum).
+
+The file da_tests.idl contains some data structures that have been used
+for debugging (nothing yet for DynUnion). The file driver.cpp has been
+used for this debugging, and the contents of these two files are in
+flux. There is as yet no test to run.
+
+****************Some things to note about DynUnion:
+
+The spec is vague on the action of set_as_default
+and member_name and there seems to be disparity in the interpretation of
+the spec by other vendors. In this implementation, they are interpreted
+as follows:
+
+set_as_default -
+ Treated as read-only, the assignment version is included to
+ override the virtual function, but has an empty body. The
+ fetch version returns TRUE if the DynUnion has a default
+ value and that default value is the active member.
+
+member_name
+ Fetch version just returns the name of the active member. The
+ assignment version makes active the member with the supplied
+ name (if it is valid), but does not save the previous value,
+ so to be meaningful, an insert or assignment should be done
+ after this operation, since the new active member will be
+ uninitialized.
+
+If a non-valid label is supplied for initialization or assignment
+(in the typecode of an Any supplied to the constructor or to
+from_any, for example), and there is a default index, the member
+index will be set to the default value and the label will be stored
+in the member DynAny holding the descriminator. If there is
+not a default index, an exception will be thrown.
+
+For the DynUnion functions next(), seek() and rewind(), a new
+uninitialized member will be created and the original will be lost.
+I can't see what use these functions have when used with DynUnion,
+but a behavior has been defined. If some behavior as yet unforeseen
+turns out to be useful, these functions can always be changed.
+
+The spec calls for the seek() function to take an argument of
+type Long, which is only one of ten types that a DynUnion label
+can have, so the argument to seek() must refer to an index and
+not to a label.