summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TAO/ChangeLog-98c70
-rw-r--r--TAO/TAO_IDL/Makefile4
-rw-r--r--TAO/TAO_IDL/be/be_array.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_enum.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_exception.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_sequence.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_structure.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_type.cpp47
-rw-r--r--TAO/TAO_IDL/be/be_typedef.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_union.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_enum.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_structure.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typedef.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union.cpp2
-rw-r--r--TAO/TAO_IDL/be_include/be_type.h5
-rw-r--r--TAO/docs/orbsvcs.html6
-rw-r--r--TAO/docs/releasenotes/ec.html62
-rw-r--r--TAO/tao/any.cpp2
-rw-r--r--TAO/tao/decode.cpp38
-rw-r--r--TAO/tao/except.cpp44
-rw-r--r--TAO/tao/giop.cpp126
-rw-r--r--TAO/tao/giop.h2
-rw-r--r--TAO/tao/iioporb.cpp16
-rw-r--r--TAO/tao/interp.cpp53
-rw-r--r--TAO/tao/objkeyC.cpp4
-rw-r--r--TAO/tao/poaC.cpp86
-rw-r--r--TAO/tao/tc_const.cpp12
-rw-r--r--TAO/tao/typecode.cpp41
-rw-r--r--TAO/tao/typecode.h10
-rw-r--r--TAO/taoconfig.mk2
-rw-r--r--TAO/tests/CDR/Makefile57
-rw-r--r--TAO/tests/CDR/basic_types.cpp90
-rw-r--r--TAO/tests/CDR/tc.cpp128
-rw-r--r--TAO/tests/Makefile3
38 files changed, 649 insertions, 289 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index beeb7d6ee93..dd54f181ba4 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,73 @@
+Mon Mar 16 10:47:08 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * tao/cdr.h:
+ * tao/cdr.i:
+ * tao/cdr.cpp:
+ The CDR stream class exposed its implementation completely, this
+ change is the first attempt to close that interface and make it
+ safer. The internal representation was changed to a
+ Message_Block, so CDR could eventually create chains of
+ Message_Blocks (minimizing buffer copies and using writev() for
+ output).
+ The next step is to split the class in an input and output
+ interface, following the Java IDL model.
+
+ * TAO_IDL/Makefile:
+ * TAO_IDL/be/be_array.cpp:
+ * TAO_IDL/be/be_enum.cpp:
+ * TAO_IDL/be/be_exception.cpp:
+ * TAO_IDL/be/be_interface.cpp:
+ * TAO_IDL/be/be_sequence.cpp:
+ * TAO_IDL/be/be_structure.cpp:
+ * TAO_IDL/be/be_typedef.cpp:
+ * TAO_IDL/be/be_union.cpp:
+ * TAO_IDL/be/be_visitor_enum.cpp:
+ * TAO_IDL/be/be_visitor_exception.cpp:
+ * TAO_IDL/be/be_visitor_interface.cpp:
+ * TAO_IDL/be/be_visitor_sequence.cpp:
+ * TAO_IDL/be/be_visitor_structure.cpp:
+ * TAO_IDL/be/be_visitor_typedef.cpp:
+ * TAO_IDL/be/be_visitor_union.cpp:
+ * tao/any.cpp:
+ * tao/connect.cpp:
+ * tao/decode.cpp:
+ * tao/except.cpp:
+ * tao/giop.h:
+ * tao/giop.cpp:
+ * tao/iioporb.cpp:
+ * tao/interp.cpp:
+ * tao/objkeyC.cpp:
+ * tao/poaC.cpp:
+ * tao/tc_const.cpp:
+ * tao/typecode.h:
+ * tao/typecode.cpp:
+ This files were modified to use (or generate, in the case of the
+ IDL compiler) the new CDR stream class interface.
+
+ * TAO_IDL/be_include/be_type.h:
+ * TAO_IDL/be/be_type.cpp:
+ It used a static buffer to evaluate be_type::nested_type_name(),
+ it was changed for a per-class buffer, but the real solution is
+ to allocate a buffer on the fly and return it to the user, maybe
+ using UTL_String will solve the problem.
+
+ * tests/Makefile:
+ * tests/CDR/Makefile:
+ * tests/CDR/basic_types.cpp:
+ * tests/CDR/tc.cpp:
+ Added some simple tests to verify that CDR streams work
+ correctly.
+
+ * taoconfig.mk:
+ The clean target is defined in ACE config files.
+
+ * docs/orbsvcs.html:
+ Included documentation on the collocation services.
+
+ * docs/releasenotes/ec.html:
+ Moved some of the changes from "new in this release" to "changes
+ in previous releases".
+
Sun Mar 15 22:36:08 1998 Seth Benjamin Widoff <sbw1@waltz.cs.wustl.edu>
* orbsvcs/orbsvcs/Trader/Admin.*
diff --git a/TAO/TAO_IDL/Makefile b/TAO/TAO_IDL/Makefile
index 384118ad939..fcf50449abd 100644
--- a/TAO/TAO_IDL/Makefile
+++ b/TAO/TAO_IDL/Makefile
@@ -9,11 +9,9 @@
#----------------------------------------------------------------------------
BIN = tao_idl
-LDLIBS = -lACE # -ldrv -lfe -last -ltao_idl_util -lnarrow -lbe -lACE
+LDLIBS = -lACE
BUILD = $(BIN)
-#DIRS = driver fe ast util narrow be
-
VPATH=.:driver:fe:ast:util:narrow:be
FILES = tao_idl \
diff --git a/TAO/TAO_IDL/be/be_array.cpp b/TAO/TAO_IDL/be/be_array.cpp
index 8aac6cf0eca..9777134c31a 100644
--- a/TAO/TAO_IDL/be/be_array.cpp
+++ b/TAO/TAO_IDL/be/be_array.cpp
@@ -468,7 +468,7 @@ be_array::gen_client_stubs (void)
<< this->tao_name ()
<< " (CORBA::tk_sequence, "
<< "sizeof (_oc_" << this->tao_name ()
- << "), (unsigned char *) &_oc_"
+ << "), (char *) &_oc_"
<< this->tao_name ()
<< ", CORBA::B_FALSE);" << nl;
*cs << "CORBA::TypeCode_ptr "
diff --git a/TAO/TAO_IDL/be/be_enum.cpp b/TAO/TAO_IDL/be/be_enum.cpp
index adbaecb6b63..bed7a98a493 100644
--- a/TAO/TAO_IDL/be/be_enum.cpp
+++ b/TAO/TAO_IDL/be/be_enum.cpp
@@ -181,7 +181,7 @@ be_enum::gen_client_stubs (void)
*cs << "static CORBA::TypeCode _tc__tc_" << this->flatname () <<
" (CORBA::tk_enum, sizeof (_oc_" << this->flatname () <<
- "), (unsigned char *) &_oc_" << this->flatname () <<
+ "), (char *) &_oc_" << this->flatname () <<
", CORBA::B_FALSE);" << nl;
*cs << "CORBA::TypeCode_ptr " << this->tc_name () << " = &_tc__tc_" <<
this->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_exception.cpp b/TAO/TAO_IDL/be/be_exception.cpp
index cc9d405ff9a..70669bd02cc 100644
--- a/TAO/TAO_IDL/be/be_exception.cpp
+++ b/TAO/TAO_IDL/be/be_exception.cpp
@@ -378,7 +378,7 @@ be_exception::gen_client_stubs (void)
*cs << "static CORBA::TypeCode _tc__tc_" << this->flatname () <<
" (CORBA::tk_struct, sizeof (_oc_" << this->flatname () <<
- "), (unsigned char *) &_oc_" << this->flatname () <<
+ "), (char *) &_oc_" << this->flatname () <<
", CORBA::B_FALSE);" << nl;
*cs << "CORBA::TypeCode_ptr " << this->tc_name () << " = &_tc__tc_" <<
this->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index 7938ec0ab0d..f3a05efed89 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -621,7 +621,7 @@ be_interface::gen_client_stubs (void)
*cs << "static CORBA::TypeCode _tc__tc_" << this->flatname () <<
" (CORBA::tk_objref, sizeof (_oc_" << this->flatname () <<
- "), (unsigned char *) &_oc_" << this->flatname () <<
+ "), (char *) &_oc_" << this->flatname () <<
", CORBA::B_FALSE);" << nl;
*cs << "CORBA::TypeCode_ptr " << this->tc_name () << " = &_tc__tc_" <<
this->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp
index ba8ba272fd1..19b4ad2fdb1 100644
--- a/TAO/TAO_IDL/be/be_sequence.cpp
+++ b/TAO/TAO_IDL/be/be_sequence.cpp
@@ -945,7 +945,7 @@ be_sequence::gen_client_stubs (void)
*cs << "static CORBA::TypeCode _tc__tc_" << this->flatname () <<
" (CORBA::tk_sequence, sizeof (_oc_" << this->flatname () <<
- "), (unsigned char *) &_oc_" << this->flatname () <<
+ "), (char *) &_oc_" << this->flatname () <<
", CORBA::B_FALSE);" << nl;
*cs << "CORBA::TypeCode_ptr " << this->tc_name () << " = &_tc__tc_" <<
this->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_structure.cpp b/TAO/TAO_IDL/be/be_structure.cpp
index 211305f5a21..ec28719ee8b 100644
--- a/TAO/TAO_IDL/be/be_structure.cpp
+++ b/TAO/TAO_IDL/be/be_structure.cpp
@@ -184,7 +184,7 @@ be_structure::gen_client_stubs (void)
*cs << "static CORBA::TypeCode _tc__tc_" << this->flatname () <<
" (CORBA::tk_struct, sizeof (_oc_" << this->flatname () <<
- "), (unsigned char *) &_oc_" << this->flatname () <<
+ "), (char *) &_oc_" << this->flatname () <<
", CORBA::B_FALSE);" << nl;
*cs << "CORBA::TypeCode_ptr " << this->tc_name () << " = &_tc__tc_" <<
this->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_type.cpp b/TAO/TAO_IDL/be/be_type.cpp
index 46d5be825ea..79484c523eb 100644
--- a/TAO/TAO_IDL/be/be_type.cpp
+++ b/TAO/TAO_IDL/be/be_type.cpp
@@ -27,17 +27,28 @@
be_type::be_type (void)
: tc_name_ (0),
- type_name_ (0)
+ type_name_ (0),
+ nested_type_name_ (0)
{
}
be_type::be_type (AST_Decl::NodeType nt, UTL_ScopedName *n, UTL_StrList *p)
: AST_Decl (nt, n, p),
tc_name_ (0),
- type_name_ (0)
+ type_name_ (0),
+ nested_type_name_ (0)
{
}
+be_type::~be_type (void)
+{
+ if (this->nested_type_name_ != 0)
+ {
+ delete[] this->nested_type_name_;
+ this->nested_type_name_ = 0;
+ }
+}
+
// compute the typecode name. The idea is to use the fully scoped name,
// however, prepend a _tc_ to the last component. A slightly different approach
// is required of the predefined types. Hence this method is overridden for
@@ -112,7 +123,9 @@ be_type::nested_type_name (be_decl *use_scope, const char *suffix)
// thus we need some sort of relative name to be generated
- static char macro [NAMEBUFSIZE];
+ if (this->nested_type_name_ == 0)
+ ACE_NEW_RETURN (this->nested_type_name_, char[NAMEBUFSIZE], 0);
+
be_decl *def_scope = 0; // our defining scope
char // hold the fully scoped name
def_name [NAMEBUFSIZE],
@@ -123,7 +136,7 @@ be_type::nested_type_name (be_decl *use_scope, const char *suffix)
*use_curr = use_name,
*use_next;
- ACE_OS::memset (macro, '\0', NAMEBUFSIZE);
+ ACE_OS::memset (this->nested_type_name_, '\0', NAMEBUFSIZE);
ACE_OS::memset (def_name, '\0', NAMEBUFSIZE);
ACE_OS::memset (use_name, '\0', NAMEBUFSIZE);
@@ -159,8 +172,8 @@ be_type::nested_type_name (be_decl *use_scope, const char *suffix)
// initial prefix matches i.e., they have a common root
// start by initializing the macro
- //@@ ACE_OS::sprintf (macro, "ACE_NESTED_CLASS (");
- //@@ ACE_OS::strcat (macro, def_curr); // initialize the first argument
+ //@@ ACE_OS::sprintf (this->nested_type_name_, "ACE_NESTED_CLASS (");
+ //@@ ACE_OS::strcat (this->nested_type_name_, def_curr); // initialize the first argument
def_curr = (def_next ? (def_next+2) : 0); // skip the ::
use_curr = (use_next ? (use_next+2) : 0); // skip the ::
@@ -180,8 +193,8 @@ be_type::nested_type_name (be_decl *use_scope, const char *suffix)
if (!ACE_OS::strcmp (def_curr, use_curr))
{
// they have same prefix, append to arg1
- //@@ ACE_OS::strcat (macro, "::");
- //@@ ACE_OS::strcat (macro, def_curr);
+ //@@ ACE_OS::strcat (this->nested_type_name_, "::");
+ //@@ ACE_OS::strcat (this->nested_type_name_, def_curr);
def_curr = (def_next ? (def_next+2) : 0); // skip the ::
use_curr = (use_next ? (use_next+2) : 0); // skip the ::
}
@@ -194,27 +207,27 @@ be_type::nested_type_name (be_decl *use_scope, const char *suffix)
}
// start the 2nd argument of the macro
- //@@ ACE_OS::strcat (macro, ", ");
+ //@@ ACE_OS::strcat (this->nested_type_name_, ", ");
// copy the remaining def_name (if any left)
if (def_curr)
- ACE_OS::strcat (macro, def_curr);
+ ACE_OS::strcat (this->nested_type_name_, def_curr);
// append our local name
- ACE_OS::strcat (macro, this->local_name ()->get_string ());
+ ACE_OS::strcat (this->nested_type_name_, this->local_name ()->get_string ());
if (suffix)
- ACE_OS::strcat (macro, suffix);
- //@@ ACE_OS::strcat (macro, ")");
- return macro;
+ ACE_OS::strcat (this->nested_type_name_, suffix);
+ //@@ ACE_OS::strcat (this->nested_type_name_, ")");
+ return this->nested_type_name_;
} // end of if the root prefixes match
}
// otherwise just emit our fullname
- ACE_OS::sprintf (macro, this->fullname ());
+ ACE_OS::sprintf (this->nested_type_name_, this->fullname ());
if (suffix)
- ACE_OS::strcat (macro, suffix);
+ ACE_OS::strcat (this->nested_type_name_, suffix);
- return macro;
+ return this->nested_type_name_;
}
// *****************************
diff --git a/TAO/TAO_IDL/be/be_typedef.cpp b/TAO/TAO_IDL/be/be_typedef.cpp
index 26738aebcad..2d7885d18db 100644
--- a/TAO/TAO_IDL/be/be_typedef.cpp
+++ b/TAO/TAO_IDL/be/be_typedef.cpp
@@ -140,7 +140,7 @@ be_typedef::gen_client_stubs (void)
*cs << "static CORBA::TypeCode _tc__tc_" << this->flatname () <<
" (CORBA::tk_alias, sizeof (_oc_" << this->flatname () <<
- "), (unsigned char *) &_oc_" << this->flatname () <<
+ "), (char *) &_oc_" << this->flatname () <<
", CORBA::B_FALSE);" << nl;
*cs << "CORBA::TypeCode_ptr " << this->tc_name () << " = &_tc__tc_" <<
this->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_union.cpp b/TAO/TAO_IDL/be/be_union.cpp
index 69c646ca2c2..cd23bd721c2 100644
--- a/TAO/TAO_IDL/be/be_union.cpp
+++ b/TAO/TAO_IDL/be/be_union.cpp
@@ -396,7 +396,7 @@ be_union::gen_client_stubs (void)
*cs << "static CORBA::TypeCode _tc__tc_" << this->flatname () <<
" (CORBA::tk_union, sizeof (_oc_" << this->flatname () <<
- "), (unsigned char *) &_oc_" << this->flatname () <<
+ "), (char *) &_oc_" << this->flatname () <<
", CORBA::B_FALSE);" << nl;
*cs << "CORBA::TypeCode_ptr " << this->tc_name () << " = &_tc__tc_" <<
this->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_enum.cpp b/TAO/TAO_IDL/be/be_visitor_enum.cpp
index a6980d5306d..08692251985 100644
--- a/TAO/TAO_IDL/be/be_visitor_enum.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_enum.cpp
@@ -148,7 +148,7 @@ be_visitor_enum_cs::visit_enum (be_enum *node)
*os << "static CORBA::TypeCode _tc__tc_" << node->flatname ()
<< " (CORBA::tk_enum, sizeof (_oc_" << node->flatname ()
- << "), (unsigned char *) &_oc_" << node->flatname ()
+ << "), (char *) &_oc_" << node->flatname ()
<< ", CORBA::B_FALSE);" << be_nl;
*os << "CORBA::TypeCode_ptr " << node->tc_name () << " = &_tc__tc_"
<< node->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_exception.cpp b/TAO/TAO_IDL/be/be_visitor_exception.cpp
index 1db76f37f16..09db347d3b5 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception.cpp
@@ -415,7 +415,7 @@ int be_visitor_exception_cs::visit_exception (be_exception *node)
*os << "static CORBA::TypeCode _tc__tc_" << node->flatname () <<
" (CORBA::tk_struct, sizeof (_oc_" << node->flatname () <<
- "), (unsigned char *) &_oc_" << node->flatname () <<
+ "), (char *) &_oc_" << node->flatname () <<
", CORBA::B_FALSE);" << be_nl;
*os << "CORBA::TypeCode_ptr " << node->tc_name () << " = &_tc__tc_" <<
node->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface.cpp
index 85cdae68362..f19b0f51388 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface.cpp
@@ -967,7 +967,7 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
*os << "static CORBA::TypeCode _tc__tc_" << node->flatname () <<
" (CORBA::tk_objref, sizeof (_oc_" << node->flatname () <<
- "), (unsigned char *) &_oc_" << node->flatname () <<
+ "), (char *) &_oc_" << node->flatname () <<
", CORBA::B_FALSE);" << be_nl;
*os << "CORBA::TypeCode_ptr " << node->tc_name () << " = &_tc__tc_" <<
node->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence.cpp b/TAO/TAO_IDL/be/be_visitor_sequence.cpp
index f8134034baf..5c2ba278790 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence.cpp
@@ -1139,7 +1139,7 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
*os << "static CORBA::TypeCode _tc__tc_" << node->flatname ()
<< "_seq (CORBA::tk_sequence, sizeof (_oc_" << node->flatname ()
- << "_seq), (unsigned char *) &_oc_" << node->flatname ()
+ << "_seq), (char *) &_oc_" << node->flatname ()
<< "_seq, CORBA::B_FALSE);" << be_nl;
*os << "CORBA::TypeCode_ptr " << node->tc_name () << "_seq = &_tc__tc_"
<< node->flatname () << "_seq;\n\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_structure.cpp b/TAO/TAO_IDL/be/be_visitor_structure.cpp
index f022063b149..68df8b4baf6 100644
--- a/TAO/TAO_IDL/be/be_visitor_structure.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_structure.cpp
@@ -272,7 +272,7 @@ int be_visitor_structure_cs::visit_structure (be_structure *node)
*os << "static CORBA::TypeCode _tc__tc_" << node->flatname () <<
" (CORBA::tk_struct, sizeof (_oc_" << node->flatname () <<
- "), (unsigned char *) &_oc_" << node->flatname () <<
+ "), (char *) &_oc_" << node->flatname () <<
", CORBA::B_FALSE);" << be_nl;
*os << "CORBA::TypeCode_ptr " << node->tc_name () << " = &_tc__tc_" <<
node->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_typedef.cpp b/TAO/TAO_IDL/be/be_visitor_typedef.cpp
index c9e7d97018d..5c3f0abb3d8 100644
--- a/TAO/TAO_IDL/be/be_visitor_typedef.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typedef.cpp
@@ -1135,7 +1135,7 @@ be_visitor_typedef_cs::visit_typedef (be_typedef *node)
*os << "static CORBA::TypeCode _tc__tc_" << node->flatname ()
<< " (CORBA::tk_alias, sizeof (_oc_" << node->flatname ()
- << "), (unsigned char *) &_oc_" << node->flatname ()
+ << "), (char *) &_oc_" << node->flatname ()
<< ", CORBA::B_FALSE);" << be_nl;
*os << "CORBA::TypeCode_ptr " << node->tc_name () << " = &_tc__tc_"
<< node->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_union.cpp b/TAO/TAO_IDL/be/be_visitor_union.cpp
index c3a02473c00..935f173fe20 100644
--- a/TAO/TAO_IDL/be/be_visitor_union.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union.cpp
@@ -550,7 +550,7 @@ int be_visitor_union_cs::visit_union (be_union *node)
*os << "static CORBA::TypeCode _tc__tc_" << node->flatname () <<
" (CORBA::tk_union, sizeof (_oc_" << node->flatname () <<
- "), (unsigned char *) &_oc_" << node->flatname () <<
+ "), (char *) &_oc_" << node->flatname () <<
", CORBA::B_FALSE);" << be_nl;
*os << "CORBA::TypeCode_ptr " << node->tc_name () << " = &_tc__tc_" <<
node->flatname () << ";\n\n";
diff --git a/TAO/TAO_IDL/be_include/be_type.h b/TAO/TAO_IDL/be_include/be_type.h
index 9d3949f28e5..88632350609 100644
--- a/TAO/TAO_IDL/be_include/be_type.h
+++ b/TAO/TAO_IDL/be_include/be_type.h
@@ -37,6 +37,8 @@ public:
be_type (AST_Decl::NodeType nt, UTL_ScopedName *n, UTL_StrList *p);
// constructor
+ virtual ~be_type (void);
+
virtual int gen_client_header (void) = 0;
// Generates the client-side header information for the type
@@ -112,6 +114,9 @@ protected:
char *type_name_;
// type name (this uses the ACE NESTED macro)
+
+ char *nested_type_name_;
+ // for the corresponding method.
};
#endif // end of if !defined
diff --git a/TAO/docs/orbsvcs.html b/TAO/docs/orbsvcs.html
index 4e168ecca06..c0e84f6bd04 100644
--- a/TAO/docs/orbsvcs.html
+++ b/TAO/docs/orbsvcs.html
@@ -36,7 +36,11 @@
library,
this is not a problem for client programs and most services need
to link the library anyway
- (since they use other services.)</P>
+ (since they use other services.)
+ Further,
+ the current support for collocation requires that clients link
+ the skeleton files also.
+ </P>
<P>In the future we intend to use ACE Service Configurator to give
the users control over servant collocation.
diff --git a/TAO/docs/releasenotes/ec.html b/TAO/docs/releasenotes/ec.html
index edb90bf8583..599810c899b 100644
--- a/TAO/docs/releasenotes/ec.html
+++ b/TAO/docs/releasenotes/ec.html
@@ -16,35 +16,7 @@
<H3>New on this release</H3>
<UL>
- <LI>
- When several suppliers are consumers are distributed over the
- network it could be nice to exploit locality and have a
- separate Event Channel on each process (or host).
- Only when an event is required by some remote consumer we need
- to send it through the network.
-
- The basic architecture to achieve this seems very simple,
- each Event Channel has a proxy that connects to the EC peers,
- providing a "merge" of its (local) consumer subscriptions as
- its own subscription list.
-
- Locally the proxy connects as a supplier,
- publishing all the events it has register for.
-
- To avoid event looping the events carry a time-to-live field
- that is decremented each time the event goes through a proxy,
- when the TTL gets to zero the event is not propagated by the
- proxy.
-
- In the current release an experimental implementation is
- provided,
- it basically hardcodes all the subscriptions and publications,
- we are researching on how to automatically build the
- publication list.</LI>
-
- <LI>
- We use the COS Time Service types (not the services) to
- specify time for the Event Service and Scheduling Service.</LI>
+ <LI>Fixed memory leak in</LI>
</UL>
<H3>Known issues:</H3>
@@ -140,5 +112,37 @@
<CODE>$TAO_ROOT/orbsvcs/tests/EC_Multiple</CODE> for
further detail.</P>
+ <H3>Features in previous releases</H3>
+
+ <LI>
+ When several suppliers are consumers are distributed over the
+ network it could be nice to exploit locality and have a
+ separate Event Channel on each process (or host).
+ Only when an event is required by some remote consumer we need
+ to send it through the network.
+
+ The basic architecture to achieve this seems very simple,
+ each Event Channel has a proxy that connects to the EC peers,
+ providing a "merge" of its (local) consumer subscriptions as
+ its own subscription list.
+
+ Locally the proxy connects as a supplier,
+ publishing all the events it has register for.
+
+ To avoid event looping the events carry a time-to-live field
+ that is decremented each time the event goes through a proxy,
+ when the TTL gets to zero the event is not propagated by the
+ proxy.
+
+ In the current release an experimental implementation is
+ provided,
+ it basically hardcodes all the subscriptions and publications,
+ we are researching on how to automatically build the
+ publication list.</LI>
+
+ <LI>
+ We use the COS Time Service types (not the services) to
+ specify time for the Event Service and Scheduling Service.</LI>
+
</BODY>
</HTML>
diff --git a/TAO/tao/any.cpp b/TAO/tao/any.cpp
index 67cae2421ea..b571d38d7fc 100644
--- a/TAO/tao/any.cpp
+++ b/TAO/tao/any.cpp
@@ -553,7 +553,7 @@ CORBA_Any::operator<<= (from_string s)
_oc_string [1] = s.bound_;
ACE_NEW (tc, CORBA::TypeCode (CORBA::tk_string,
sizeof _oc_string,
- (u_char *) &_oc_string,
+ (char *) &_oc_string,
CORBA::B_TRUE));
}
else
diff --git a/TAO/tao/decode.cpp b/TAO/tao/decode.cpp
index 45f4d696cbf..24d47b712a3 100644
--- a/TAO/tao/decode.cpp
+++ b/TAO/tao/decode.cpp
@@ -1,5 +1,7 @@
// ============================================================================
//
+// $Id$
+//
// = LIBRARY
// TAO
//
@@ -11,7 +13,8 @@
//
// The original code had a single static decoder function defined on the CDR
// class that called traverse to interpret the data types. This version
-// defines a virtual method "decode" on each class and avoids calling traverse.
+// defines a virtual method "decode" on each class and avoids
+// calling traverse.
//
// = AUTHOR
// Copyright 1994-1995 by Sun Microsystems Inc.
@@ -348,12 +351,11 @@ TAO_Marshal_TypeCode::decode (CORBA::TypeCode_ptr,
// the offset must be such that the indir_stream.next
// should point to the TypeCode kind value of the
// TypeCode to which we are referring to.
- indir_stream.buffer = indir_stream.next
- = stream->next + offset;
- indir_stream.remaining = indir_stream.length = 8;
+ indir_stream.setup_encapsulation
+ (stream->buffer () + offset, 8);
// Reject indirections outside parent's scope.
- if (indir_stream.next < parent->buffer_)
+ if (indir_stream.buffer () < ACE_reinterpret_cast(char*,parent->buffer_))
continue_decoding = CORBA::B_FALSE;
}
@@ -386,11 +388,10 @@ TAO_Marshal_TypeCode::decode (CORBA::TypeCode_ptr,
if (continue_decoding)
{
*tcp = new CORBA::TypeCode ((CORBA::TCKind) indir_kind,
- indir_len, // length of encapsulation
- indir_stream.next, // octet buffer
- CORBA::B_FALSE, // ORB
- // doesn't own
- parent); // this is our parent
+ indir_len,
+ indir_stream.buffer(),
+ CORBA::B_FALSE,
+ parent);
#if 0
(*tcp)->parent_ = parent;
parent->AddRef ();
@@ -436,13 +437,12 @@ TAO_Marshal_TypeCode::decode (CORBA::TypeCode_ptr,
}
*tcp = new CORBA::TypeCode ((CORBA::TCKind) kind,
len,
- // buffer,
- stream->next,
+ stream->buffer (),
CORBA::B_FALSE,
parent);
// skip length number of bytes in the stream, else we may
// leave the stream in an undefined state
- (void) stream->skip_bytes (length);
+ (void) stream->rd_ptr (length);
// (*tcp)->parent_ = parent;
}
} // end of switch
@@ -567,17 +567,15 @@ TAO_Marshal_ObjRef::decode (CORBA::TypeCode_ptr,
// ProfileData is encoded as a sequence of octet. So first get the
// length of the sequence
- continue_decoding = stream->get_ulong (tmp);
- assert (stream->remaining >= tmp);
+ char* buf;
+ continue_decoding = stream->get_encapsulation (buf, tmp);
+ assert (continue_decoding == CORBA::B_TRUE);
// Create the decoding stream from the encapsulation in
// the buffer, and skip the encapsulation.
CDR str;
- str.setup_encapsulation (stream->next, (size_t) tmp);
-
- stream->next += (u_int) tmp;
- stream->remaining -= (u_int) tmp;
+ str.setup_encapsulation (ACE_reinterpret_cast(char*,buf), tmp);
// @@ (CJC) Does IIOP_Object duplicate 'type_hint' below so that
// we can safely free it? It does now!
@@ -631,7 +629,7 @@ TAO_Marshal_ObjRef::decode (CORBA::TypeCode_ptr,
0,
env) == CORBA::TypeCode::TRAVERSE_CONTINUE;
- if (str.remaining != 0)
+ if (str.length () != 0)
{
env.exception (new CORBA::MARSHAL (CORBA::COMPLETED_MAYBE));
dmsg ("extra data at end of IIOP profile data");
diff --git a/TAO/tao/except.cpp b/TAO/tao/except.cpp
index e2a2f909367..9b9b2cec3b7 100644
--- a/TAO/tao/except.cpp
+++ b/TAO/tao/except.cpp
@@ -1,3 +1,6 @@
+//
+// $Id$
+//
// @(#)except.cpp 1.11 95/11/04
// Copyright 1994-1995 by Sun Microsystems Inc.
// All Rights Reserved
@@ -170,7 +173,7 @@ CORBA::ExceptionList __system_exceptions;
static void
make_standard_typecode (CORBA::TypeCode_ptr tcp,
const char *name,
- unsigned char *buffer,
+ char *buffer,
size_t buflen,
CORBA::Environment &env)
{
@@ -189,17 +192,15 @@ make_standard_typecode (CORBA::TypeCode_ptr tcp,
static CORBA::TypeCode
tc_completion_status (CORBA::tk_enum,
sizeof oc_completion_status,
- (unsigned char *) &oc_completion_status,
+ (char *) &oc_completion_status,
CORBA::B_FALSE);
static const CORBA::TypeCode_ptr completion_status = &tc_completion_status;
// Create a CDR stream ... juggle the alignment here a bit, we
- // know it's good enough for tye typecode.
-
- CDR stream (0, buflen);
+ // know it's good enough for the typecode.
- stream.next = stream.buffer = buffer;
+ CDR stream (buffer, buflen);
// into CDR stream, stuff (in order):
// - byte order flag [4 bytes]
@@ -242,10 +243,11 @@ make_standard_typecode (CORBA::TypeCode_ptr tcp,
// a TypeCode, saving it away in the list of ones that the ORB will
// always accept as part of any operation response!
- sys_exceptions [__system_exceptions.length++]
- = new (tcp) CORBA::TypeCode (CORBA::tk_except,
- stream.next - stream.buffer,
- stream.buffer, CORBA::B_FALSE);
+ sys_exceptions [__system_exceptions.length++] =
+ new (tcp) CORBA::TypeCode (CORBA::tk_except,
+ stream.length (),
+ stream.buffer (),
+ CORBA::B_FALSE);
assert (tcp->length_ <= TC_BUFLEN);
return;
@@ -312,9 +314,9 @@ __TC_init_standard_exceptions (CORBA::Environment &env)
// Initialize the typecodes.
#define TAO_SYSTEM_EXCEPTION(name) \
if (env.exception () == 0) \
- make_standard_typecode (&tc_std_ ## name, #name, \
- (unsigned char *) tc_buf_ ## name, \
- sizeof tc_buf_ ## name, env);
+ make_standard_typecode (&tc_std_ ## name, #name, \
+ (char *) tc_buf_ ## name, \
+ sizeof tc_buf_ ## name, env);
STANDARD_EXCEPTION_LIST
#undef TAO_SYSTEM_EXCEPTION
@@ -346,7 +348,7 @@ STANDARD_EXCEPTION_LIST
// Static initialization of the two user-defined exceptions that
// are part of the ORB.
-static CORBA::Octet tc_buf_Bounds [] =
+static char tc_buf_Bounds [] =
{
0, 0, 0, 0, // big endian, padded
0, 0, 0, 38, // strlen (id) + 1
@@ -364,13 +366,13 @@ static CORBA::Octet tc_buf_Bounds [] =
};
static CORBA::TypeCode tc_std_Bounds (CORBA::tk_except,
- sizeof tc_buf_Bounds,
- tc_buf_Bounds,
- CORBA::B_FALSE);
+ sizeof tc_buf_Bounds,
+ tc_buf_Bounds,
+ CORBA::B_FALSE);
CORBA::TypeCode_ptr CORBA::_tc_Bounds = &tc_std_Bounds;
-static CORBA::Octet tc_buf_BadKind [] =
+static char tc_buf_BadKind [] =
{
0, 0, 0, 0, // big endian, padded
0, 0, 0, 39, // strlen (id) + 1
@@ -388,9 +390,9 @@ static CORBA::Octet tc_buf_BadKind [] =
};
static CORBA::TypeCode tc_std_BadKind (CORBA::tk_except,
- sizeof tc_buf_BadKind,
- tc_buf_BadKind,
- CORBA::B_FALSE);
+ sizeof tc_buf_BadKind,
+ tc_buf_BadKind,
+ CORBA::B_FALSE);
CORBA::TypeCode_ptr CORBA::_tc_BadKind = &tc_std_BadKind;
// Convenience -- say if the exception is a system exception or not.
diff --git a/TAO/tao/giop.cpp b/TAO/tao/giop.cpp
index f27d8a73c06..3d5dc41e51f 100644
--- a/TAO/tao/giop.cpp
+++ b/TAO/tao/giop.cpp
@@ -82,10 +82,10 @@ TAO_GIOP::send_request (TAO_SVC_HANDLER *handler,
{
ACE_TIMEPROBE (" -> GIOP::send_request - start");
- char *buf = (char *) stream.buffer;
- size_t buflen = stream.next - stream.buffer;
+ char *buf = (char *) stream.buffer ();
+ size_t buflen = stream.length ();
- assert (buflen == (stream.length - stream.remaining));
+ // assert (buflen == (stream.length - stream.remaining));
// Patch the message length in the GIOP header; it's always at the
// same eight byte offset into the message.
@@ -97,28 +97,29 @@ TAO_GIOP::send_request (TAO_SVC_HANDLER *handler,
// this particular environment and that isn't handled by the
// networking infrastructure (e.g. IPSEC).
- *(CORBA::Long *) (stream.buffer + 8) =
+ *(CORBA::Long *) (buf + 8) =
(CORBA::Long) (buflen - TAO_GIOP_HEADER_LEN);
// Strictly speaking, should not need to loop here because the
// socket never gets set to a nonblocking mode ... some Linux
// versions seem to need it though. Leaving it costs little.
- dump_msg ("send", stream.buffer, buflen);
+ dump_msg ("send", ACE_reinterpret_cast(u_char*,buf), buflen);
ACE_SOCK_Stream &peer = handler->peer ();
while (buflen > 0)
{
- if (buflen > stream.length)
+ if (buflen > stream.length ())
{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) ?? writebuf, buflen %u > length %u\n",
- buflen, stream.length));
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) ?? writebuf, buflen %u > length %u\n",
+ buflen, stream.length ()));
ACE_TIMEPROBE (" -> GIOP::send_request - fail");
return CORBA::B_FALSE;
}
- ssize_t writelen = peer.send_n ((char _FAR *) buf, buflen);
+ ssize_t writelen = peer.send_n (buf, buflen);
#if defined (DEBUG)
// dmsg_filter (6, "wrote %d bytes to connection %d",
@@ -312,12 +313,17 @@ TAO_GIOP::recv_request (TAO_SVC_HANDLER *&handler,
// as the "duty factor" goes down because of either long calls or
// bursty contention during numerous short calls to the same server.
- assert (msg.length > TAO_GIOP_HEADER_LEN);
+ msg.reset ();
- msg.next = msg.buffer;
- msg.remaining = TAO_GIOP_HEADER_LEN;
+ if (msg.grow (TAO_GIOP_HEADER_LEN) == 0)
+ {
+ env.exception (new CORBA::NO_MEMORY (CORBA::COMPLETED_MAYBE));
+ return TAO_GIOP_MessageError;
+ }
- char *bufptr = (char _FAR *) msg.buffer;
+ assert (msg.size () > TAO_GIOP_HEADER_LEN);
+
+ char *bufptr = (char*) msg.buffer ();
ssize_t len = read_buffer (connection, bufptr, TAO_GIOP_HEADER_LEN);
// Read the header into the buffer.
@@ -354,16 +360,20 @@ TAO_GIOP::recv_request (TAO_SVC_HANDLER *&handler,
return TAO_GIOP_MessageError;
}
+ // Set the end of the message....
+ msg.wr_ptr (TAO_GIOP_HEADER_LEN);
+
+
// NOTE: if message headers, or whome messages, get encrypted in
// application software (rather than by the network infrastructure)
// they should be decrypted here ...
// First make sure it's a GIOP message of any version.
- if (!(msg.buffer [0] == 'G'
- && msg.buffer [1] == 'I'
- && msg.buffer [2] == 'O'
- && msg.buffer [3] == 'P'))
+ if (!(bufptr [0] == 'G'
+ && bufptr [1] == 'I'
+ && bufptr [2] == 'O'
+ && bufptr [3] == 'P'))
{
env.exception (new CORBA::MARSHAL (CORBA::COMPLETED_MAYBE)); // header
ACE_DEBUG ((LM_DEBUG, "bad header, magic word\n"));
@@ -374,7 +384,7 @@ TAO_GIOP::recv_request (TAO_SVC_HANDLER *&handler,
// Then make sure the major version is ours, and the minor version
// is one that we understand.
- if (!(msg.buffer [4] == MY_MAJOR && msg.buffer [5] <= MY_MINOR))
+ if (!(bufptr [4] == MY_MAJOR && bufptr [5] <= MY_MINOR))
{
env.exception (new CORBA::MARSHAL (CORBA::COMPLETED_MAYBE)); // header
ACE_DEBUG ((LM_DEBUG, "bad header, version\n"));
@@ -385,13 +395,14 @@ TAO_GIOP::recv_request (TAO_SVC_HANDLER *&handler,
// Get the message type out and adjust the buffer's records to record
// that we've read everything except the length.
- retval = (TAO_GIOP_MsgType) msg.buffer[7];
- msg.skip_bytes (8);
+ retval = (TAO_GIOP_MsgType) bufptr[7];
+
+ msg.do_byteswap = (bufptr [6] != TAO_ENCAP_BYTE_ORDER);
// Make sure byteswapping is done if needed, and then read the
// message size (appropriately byteswapped).
- msg.do_byteswap = (msg.buffer [6] != TAO_ENCAP_BYTE_ORDER);
+ msg.rd_ptr (8);
msg.get_ulong (message_size);
// Make sure we have the full length in memory, growing the buffer
@@ -402,11 +413,17 @@ TAO_GIOP::recv_request (TAO_SVC_HANDLER *&handler,
assert (message_size <= UINT_MAX);
- if ((TAO_GIOP_HEADER_LEN + message_size) > msg.length)
- msg.grow ((size_t) (TAO_GIOP_HEADER_LEN + message_size));
+ if (msg.grow (TAO_GIOP_HEADER_LEN + message_size) == 0)
+ {
+ env.exception (new CORBA::NO_MEMORY (CORBA::COMPLETED_MAYBE));
+ return TAO_GIOP_MessageError;
+ }
- msg.remaining = (size_t) message_size;
- bufptr = (char *) & msg.buffer [TAO_GIOP_HEADER_LEN];
+ // The offset from the current position were data writing should
+ // start, since we already read the msg length (4 bytes) starting at
+ // position 8 we need to substract 12 bytes.
+ const int offset = TAO_GIOP_HEADER_LEN - 12;
+ bufptr = (char *)msg.buffer() + offset;
// Read the rest of this message into the buffer.
@@ -442,7 +459,11 @@ TAO_GIOP::recv_request (TAO_SVC_HANDLER *&handler,
return TAO_GIOP_MessageError;
}
- dump_msg ("recv", msg.buffer, (size_t) (message_size + TAO_GIOP_HEADER_LEN));
+ // Set the end of the message....
+ msg.wr_ptr (message_size);
+
+ dump_msg ("recv", ACE_reinterpret_cast(u_char*,msg.buffer()),
+ (size_t) (message_size + TAO_GIOP_HEADER_LEN));
ACE_TIMEPROBE (" -> GIOP::recv_request - done");
return retval;
}
@@ -470,7 +491,7 @@ TAO_GIOP_Invocation::TAO_GIOP_Invocation (IIOP_Object *data,
opname_ (operation),
do_rsvp_ (is_roundtrip),
my_request_id_ (0),
- stream_ (&buffer [0], sizeof buffer),
+ stream_ (buffer, sizeof buffer),
handler_ (0)
{
// The assumption that thread ids are ints is false and horribly
@@ -513,7 +534,7 @@ static const CORBA::Long _oc_opaque [] =
CORBA::TypeCode
TC_opaque (CORBA::tk_sequence,
sizeof _oc_opaque,
- (u_char *) &_oc_opaque,
+ (char *) &_oc_opaque,
CORBA::B_FALSE);
// Octet codes for the parameters of the ServiceContextList TypeCode
@@ -579,7 +600,7 @@ static const CORBA::Long _oc_svc_ctx_list [] =
CORBA::TypeCode
TC_ServiceContextList (CORBA::tk_sequence,
sizeof _oc_svc_ctx_list,
- (u_char *) &_oc_svc_ctx_list,
+ (char *) &_oc_svc_ctx_list,
CORBA::B_FALSE);
// The public API involves creating an invocation, starting it, filling
@@ -960,27 +981,17 @@ TAO_GIOP_Invocation::invoke (CORBA::ExceptionList &exceptions,
case TAO_GIOP_USER_EXCEPTION:
case TAO_GIOP_SYSTEM_EXCEPTION:
{
- CORBA::String exception_id;
+ char* buf;
// Pull the exception ID out of the marshaling buffer.
{
- CORBA::ULong len;
-
- //
- // Read "length" field of string, so "next" points
- // right at the null-terminated ID. Then get the ID.
- //
- if (this->stream_.get_ulong (len) != CORBA::B_TRUE
- || len > this->stream_.remaining)
+ if (this->stream_.get_string (buf) == CORBA::B_FALSE)
{
send_error (this->handler_);
env.exception (new CORBA::MARSHAL (CORBA::COMPLETED_YES));
return TAO_GIOP_SYSTEM_EXCEPTION;
}
- exception_id = (CORBA::String) this->stream_.next;
- this->stream_.skip_bytes (len);
}
-
// User and system exceptions differ only in what table of
// exception typecodes is searched.
CORBA::ExceptionList *xlist;
@@ -1011,7 +1022,7 @@ TAO_GIOP_Invocation::invoke (CORBA::ExceptionList &exceptions,
return TAO_GIOP_SYSTEM_EXCEPTION;
}
- if (ACE_OS::strcmp ((char *)exception_id, (char *)xid) == 0)
+ if (ACE_OS::strcmp (buf, (char *)xid) == 0)
{
size_t size;
CORBA::Exception *exception;
@@ -1037,7 +1048,7 @@ TAO_GIOP_Invocation::invoke (CORBA::ExceptionList &exceptions,
delete exception;
ACE_DEBUG ((LM_ERROR, "(%P|%t) invoke, unmarshal %s exception %s\n",
(reply_status == TAO_GIOP_USER_EXCEPTION) ? "user" : "system",
- exception_id));
+ buf));
send_error (this->handler_);
return TAO_GIOP_SYSTEM_EXCEPTION;
}
@@ -1137,7 +1148,7 @@ CORBA::Boolean
TAO_GIOP_LocateRequestHeader::init (CDR &msg,
CORBA::Environment &env)
{
- return ( msg.get_ulong (this->request_id)
+ return (msg.get_ulong (this->request_id)
&& msg.decode (&TC_opaque,
&this->object_key,
0,
@@ -1188,23 +1199,24 @@ TAO_GIOP_RequestHeader::init (CDR &msg,
CORBA::Boolean
TAO_GIOP::start_message (TAO_GIOP_MsgType type, CDR &msg)
{
- msg.next = msg.buffer; // for reused streams
- msg.remaining = msg.length;
+ msg.reset ();
+
+ // if (msg.size () < TAO_GIOP_HEADER_LEN)
+ // return CORBA::B_FALSE;
- if (msg.bytes_remaining () < TAO_GIOP_HEADER_LEN)
- return CORBA::B_FALSE;
+ char* next = msg.buffer ();
- msg.next [0] = 'G';
- msg.next [1] = 'I';
- msg.next [2] = 'O';
- msg.next [3] = 'P';
+ next [0] = 'G';
+ next [1] = 'I';
+ next [2] = 'O';
+ next [3] = 'P';
- msg.next [4] = MY_MAJOR;
- msg.next [5] = MY_MINOR;
- msg.next [6] = TAO_ENCAP_BYTE_ORDER;
- msg.next [7] = (u_char) type;
+ next [4] = MY_MAJOR;
+ next [5] = MY_MINOR;
+ next [6] = TAO_ENCAP_BYTE_ORDER;
+ next [7] = (u_char) type;
- msg.skip_bytes (TAO_GIOP_HEADER_LEN);
+ msg.wr_ptr (TAO_GIOP_HEADER_LEN);
return CORBA::B_TRUE;
}
diff --git a/TAO/tao/giop.h b/TAO/tao/giop.h
index fc199565770..45472a9b1b1 100644
--- a/TAO/tao/giop.h
+++ b/TAO/tao/giop.h
@@ -327,7 +327,7 @@ private:
CORBA::ULong my_request_id_;
// Request ID of this operation.
- u_char buffer [CDR::DEFAULT_BUFSIZE];
+ char buffer [CDR::DEFAULT_BUFSIZE];
// Buffer used for CDR stream.
CDR stream_;
diff --git a/TAO/tao/iioporb.cpp b/TAO/tao/iioporb.cpp
index 31ae1382080..4b427f60bf6 100644
--- a/TAO/tao/iioporb.cpp
+++ b/TAO/tao/iioporb.cpp
@@ -1,3 +1,6 @@
+//
+// $Id$
+//
// @(#)iioporb.cpp 1.8 95/09/19
// Copyright 1994-1995 by Sun Microsystems Inc.
// All Rights Reserved
@@ -31,9 +34,9 @@ IIOP_ORB::object_to_string (CORBA::Object_ptr obj,
// XXX there should be a simple way to reuse this code in other
// ORB implementations ...
- u_char *bytes;
+ char *bytes;
// @@ Is BUFSIZ the right size here?
- u_char buf [BUFSIZ];
+ char buf [BUFSIZ];
CDR cdr (buf, sizeof buf, TAO_ENCAP_BYTE_ORDER);
bytes = buf;
@@ -50,13 +53,14 @@ IIOP_ORB::object_to_string (CORBA::Object_ptr obj,
// return that string.
CORBA::String cp;
- size_t len = cdr.length - cdr.remaining;
+ size_t len = cdr.length ();
CORBA::String string = CORBA::string_alloc (sizeof ior_prefix + 2 * len);
ACE_OS::strcpy ((char *) string, ior_prefix);
- for (cp = (CORBA::String) ACE_OS::strchr ((char *) string, ':') + 1, bytes = cdr.buffer;
+ bytes = cdr.buffer ();
+ for (cp = (CORBA::String) ACE_OS::strchr ((char *) string, ':') + 1;
len--;
bytes++)
{
@@ -132,9 +136,9 @@ ior_string_to_object (CORBA::String str,
// Unhex the bytes, and make a CDR deencapsulation stream from the
// resulting data.
- u_char *buffer;
+ char *buffer;
ACE_NEW_RETURN (buffer,
- u_char [1 + ACE_OS::strlen ((char *) str) / 2],
+ char [1 + ACE_OS::strlen ((char *) str) / 2],
CORBA_Object::_nil ());
char *tmp = (char *) str;
diff --git a/TAO/tao/interp.cpp b/TAO/tao/interp.cpp
index 0a4e570018d..bf5fb551798 100644
--- a/TAO/tao/interp.cpp
+++ b/TAO/tao/interp.cpp
@@ -387,8 +387,6 @@ calc_nested_size_and_alignment (CORBA::TypeCode_ptr tc,
if (kind == ~0)
{
- CORBA::Long offset;
-
// Get indirection, sanity check it, set up new stream pointing
// there.
//
@@ -396,6 +394,7 @@ calc_nested_size_and_alignment (CORBA::TypeCode_ptr tc,
// to check for errors before indirect and to limit the new
// stream's length. ULONG_MAX is too much!
+ CORBA::Long offset;
if (!original_stream->get_long (offset)
|| offset >= -8
|| ((-offset) & 0x03) != 0)
@@ -403,26 +402,21 @@ calc_nested_size_and_alignment (CORBA::TypeCode_ptr tc,
env.exception (new CORBA::BAD_TYPECODE (CORBA::COMPLETED_NO));
return 0;
}
- // offset -= 4; // correct for get_long update
+ // offset -= 4; // correct for get_long update
- indirected_stream.next = original_stream->next + (ptr_arith_t) offset;
- indirected_stream.remaining = (size_t) ULONG_MAX;
+ // TODO Provide a method to get an encapsulation from a CDR
+ // stream.
+ indirected_stream.setup_indirection (*original_stream, offset);
stream = &indirected_stream;
// Fetch indirected-to TCKind, deducing byte order.
- if (*indirected_stream.next == 0) // big-endian?
- indirected_stream.do_byteswap = (TAO_ENCAP_BYTE_ORDER != 0);
- else
- indirected_stream.do_byteswap = (TAO_ENCAP_BYTE_ORDER == 0);
-
if (!indirected_stream.get_ulong (temp))
{
env.exception (new CORBA::BAD_TYPECODE (CORBA::COMPLETED_NO));
return 0;
}
kind = (CORBA::TCKind) temp;
-
}
else
stream = original_stream;
@@ -459,7 +453,7 @@ calc_nested_size_and_alignment (CORBA::TypeCode_ptr tc,
if (tc)
{
tc->kind_ = kind;
- tc->buffer_ = stream->next;
+ tc->buffer_ = stream->buffer ();
tc->length_ = temp;
}
@@ -472,14 +466,14 @@ calc_nested_size_and_alignment (CORBA::TypeCode_ptr tc,
size_t size;
assert (temp <= UINT_MAX);
- sub_encapsulation.setup_encapsulation (stream->next, (size_t) temp);
+ sub_encapsulation.setup_encapsulation (stream->buffer(), temp);
size = table [kind].calc (&sub_encapsulation, alignment, env);
// Check for garbage at end of parameter lists, or other cases
// where parameters and the size allocated to them don't jive.
- stream->skip_bytes ((unsigned) temp);
- if (stream->next != sub_encapsulation.next)
+ stream->rd_ptr (temp);
+ if (stream->buffer () != sub_encapsulation.buffer ())
{
env.exception (new CORBA::BAD_TYPECODE (CORBA::COMPLETED_NO));
return 0;
@@ -526,8 +520,8 @@ calc_nested_size_and_alignment (CORBA::TypeCode_ptr tc,
tc->length_ = len;
assert (len < UINT_MAX);
- tc->buffer_ = stream->next;
- stream->skip_bytes ((unsigned) len);
+ tc->buffer_ = stream->buffer ();
+ stream->rd_ptr (len);
break;
}
@@ -1098,14 +1092,10 @@ union_traverse (CDR *stream,
// at all branches of the union ... forcing union traversal to be a
// two-pass algorithm, unless/until some data gets squirreled away.
{
- CDR temp_cdr;
+ // TODO provide a method to "copy" the CDR stream...
+ CDR temp_cdr (*stream);
size_t scratch;
- temp_cdr.next = stream->next;
- temp_cdr.remaining = stream->remaining;
- temp_cdr.do_byteswap = stream->do_byteswap;
- temp_cdr.do_free = 0;
-
(void) calc_key_union_attributes (&temp_cdr,
scratch,
discrim_size_with_pad,
@@ -1182,7 +1172,7 @@ union_traverse (CDR *stream,
// we can't find a match for the discriminant value, that arm will
// be used later.
- u_char *default_tc_ptr = 0;
+ char *default_tc_ptr = 0;
size_t default_tc_len = 0;
while (member_count-- != 0)
@@ -1213,8 +1203,8 @@ union_traverse (CDR *stream,
if (default_used >= 0 && default_used-- == 0)
{
- default_tc_ptr = stream->next;
- default_tc_len = stream->remaining;
+ default_tc_ptr = stream->buffer ();
+ default_tc_len = stream->length ();
}
// Get the TypeCode for this member.
@@ -1240,18 +1230,17 @@ union_traverse (CDR *stream,
if (default_tc_ptr)
{
CDR temp_str;
- size_t scratch;
- CORBA::TypeCode tc (CORBA::tk_null);
-
- temp_str.next = default_tc_ptr;
- temp_str.remaining = default_tc_len;
- temp_str.do_byteswap = stream->do_byteswap;
+ temp_str.setup_encapsulation (default_tc_ptr,
+ default_tc_len);
// Get and use the TypeCode.
//
// XXX we really don't care about size and alignment this time,
// only that we initialize the TypeCode.
+ size_t scratch;
+ CORBA::TypeCode tc (CORBA::tk_null);
+
(void) calc_nested_size_and_alignment (&tc, &temp_str, scratch, env);
return visit (&tc, value1, value2, context, env);
}
diff --git a/TAO/tao/objkeyC.cpp b/TAO/tao/objkeyC.cpp
index b91fa7c2860..d5e1becf3ba 100644
--- a/TAO/tao/objkeyC.cpp
+++ b/TAO/tao/objkeyC.cpp
@@ -22,7 +22,7 @@ const CORBA::Long _oc_TAO__tao_seq_Octet[] =
0,
};
-CORBA::TypeCode _tc__tc_TAO__tao_seq_Octet (CORBA::tk_sequence, sizeof (_oc_TAO__tao_seq_Octet), (unsigned char *) &_oc_TAO__tao_seq_Octet, CORBA::B_FALSE);
+CORBA::TypeCode _tc__tc_TAO__tao_seq_Octet (CORBA::tk_sequence, sizeof (_oc_TAO__tao_seq_Octet), (char *) &_oc_TAO__tao_seq_Octet, CORBA::B_FALSE);
CORBA::TypeCode_ptr TAO_tc__tao_seq_Octet = &_tc__tc_TAO__tao_seq_Octet;
@@ -40,6 +40,6 @@ const CORBA::Long _oc_TAO_ObjectKey[] =
0,
};
-CORBA::TypeCode _tc__tc_TAO_ObjectKey (CORBA::tk_alias, sizeof (_oc_TAO_ObjectKey), (unsigned char *) &_oc_TAO_ObjectKey, CORBA::B_FALSE);
+CORBA::TypeCode _tc__tc_TAO_ObjectKey (CORBA::tk_alias, sizeof (_oc_TAO_ObjectKey), (char *) &_oc_TAO_ObjectKey, CORBA::B_FALSE);
CORBA::TypeCode_ptr TAO_tc_ObjectKey = &_tc__tc_TAO_ObjectKey;
diff --git a/TAO/tao/poaC.cpp b/TAO/tao/poaC.cpp
index 81a2c463a83..797ffb5f4e4 100644
--- a/TAO/tao/poaC.cpp
+++ b/TAO/tao/poaC.cpp
@@ -23,7 +23,7 @@ static const CORBA::Long _oc_PortableServer_Identifier[] =
CORBA::tk_string,
0, // string length
};
-static CORBA::TypeCode _tc__tc_PortableServer_Identifier (CORBA::tk_alias, sizeof (_oc_PortableServer_Identifier), (unsigned char *) &_oc_PortableServer_Identifier, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_Identifier (CORBA::tk_alias, sizeof (_oc_PortableServer_Identifier), (char *) &_oc_PortableServer_Identifier, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_Identifier = &_tc__tc_PortableServer_Identifier;
static const CORBA::Long _oc_PortableServer_RepositoryId[] =
@@ -34,7 +34,7 @@ static const CORBA::Long _oc_PortableServer_RepositoryId[] =
CORBA::tk_string,
0, // string length
};
-static CORBA::TypeCode _tc__tc_PortableServer_RepositoryId (CORBA::tk_alias, sizeof (_oc_PortableServer_RepositoryId), (unsigned char *) &_oc_PortableServer_RepositoryId, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_RepositoryId (CORBA::tk_alias, sizeof (_oc_PortableServer_RepositoryId), (char *) &_oc_PortableServer_RepositoryId, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_RepositoryId = &_tc__tc_PortableServer_RepositoryId;
PortableServer::CurrentBase_ptr PortableServer::CurrentBase::_duplicate (PortableServer::CurrentBase_ptr obj)
@@ -102,7 +102,7 @@ static const CORBA::Long _oc_PortableServer_CurrentBase[] =
35, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f43, 0x75727265, 0x6e744261, 0x73653a31, 0x2e300000, // repository ID = IDL:PortableServer/CurrentBase:1.0
12, 0x43757272, 0x656e7442, 0x61736500, // name = CurrentBase,
};
-static CORBA::TypeCode _tc__tc_PortableServer_CurrentBase (CORBA::tk_objref, sizeof (_oc_PortableServer_CurrentBase), (unsigned char *) &_oc_PortableServer_CurrentBase, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_CurrentBase (CORBA::tk_objref, sizeof (_oc_PortableServer_CurrentBase), (char *) &_oc_PortableServer_CurrentBase, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_CurrentBase = &_tc__tc_PortableServer_CurrentBase;
PortableServer::Policy_ptr PortableServer::Policy::_duplicate (PortableServer::Policy_ptr obj)
@@ -215,7 +215,7 @@ static const CORBA::Long _oc_PortableServer_Policy[] =
30, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f50, 0x6f6c6963, 0x793a312e, 0x30000000, // repository ID = IDL:PortableServer/Policy:1.0
7, 0x506f6c69, 0x63790000, // name = Policy,
};
-static CORBA::TypeCode _tc__tc_PortableServer_Policy (CORBA::tk_objref, sizeof (_oc_PortableServer_Policy), (unsigned char *) &_oc_PortableServer_Policy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_Policy (CORBA::tk_objref, sizeof (_oc_PortableServer_Policy), (char *) &_oc_PortableServer_Policy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_Policy = &_tc__tc_PortableServer_Policy;
@@ -232,7 +232,7 @@ static const CORBA::Long _oc_PortableServer__tao_seq_Policy[] =
7, 0x506f6c69, 0x63790000, // name = Policy,
0,
};
-static CORBA::TypeCode _tc__tc_PortableServer__tao_seq_Policy (CORBA::tk_sequence, sizeof (_oc_PortableServer__tao_seq_Policy), (unsigned char *) &_oc_PortableServer__tao_seq_Policy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer__tao_seq_Policy (CORBA::tk_sequence, sizeof (_oc_PortableServer__tao_seq_Policy), (char *) &_oc_PortableServer__tao_seq_Policy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc__tao_seq_Policy = &_tc__tc_PortableServer__tao_seq_Policy;
@@ -253,7 +253,7 @@ static const CORBA::Long _oc_PortableServer_PolicyList[] =
7, 0x506f6c69, 0x63790000, // name = Policy,
0,
};
-static CORBA::TypeCode _tc__tc_PortableServer_PolicyList (CORBA::tk_alias, sizeof (_oc_PortableServer_PolicyList), (unsigned char *) &_oc_PortableServer_PolicyList, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_PolicyList (CORBA::tk_alias, sizeof (_oc_PortableServer_PolicyList), (char *) &_oc_PortableServer_PolicyList, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_PolicyList = &_tc__tc_PortableServer_PolicyList;
@@ -267,7 +267,7 @@ static const CORBA::Long _oc_PortableServer__tao_seq_Octet[] =
0,
};
-static CORBA::TypeCode _tc__tc_PortableServer__tao_seq_Octet (CORBA::tk_sequence, sizeof (_oc_PortableServer__tao_seq_Octet), (unsigned char *) &_oc_PortableServer__tao_seq_Octet, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer__tao_seq_Octet (CORBA::tk_sequence, sizeof (_oc_PortableServer__tao_seq_Octet), (char *) &_oc_PortableServer__tao_seq_Octet, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc__tao_seq_Octet = &_tc__tc_PortableServer__tao_seq_Octet;
@@ -285,7 +285,7 @@ static const CORBA::Long _oc_PortableServer_ObjectId[] =
0,
};
-static CORBA::TypeCode _tc__tc_PortableServer_ObjectId (CORBA::tk_alias, sizeof (_oc_PortableServer_ObjectId), (unsigned char *) &_oc_PortableServer_ObjectId, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ObjectId (CORBA::tk_alias, sizeof (_oc_PortableServer_ObjectId), (char *) &_oc_PortableServer_ObjectId, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ObjectId = &_tc__tc_PortableServer_ObjectId;
// copy constructor
@@ -329,7 +329,7 @@ static const CORBA::Long _oc_PortableServer_ForwardRequest[] =
1, // member count
18, 0x666f7277, 0x6172645f, 0x72656665, 0x72656e63, 0x65000000, // name = forward_reference
};
-static CORBA::TypeCode _tc__tc_PortableServer_ForwardRequest (CORBA::tk_struct, sizeof (_oc_PortableServer_ForwardRequest), (unsigned char *) &_oc_PortableServer_ForwardRequest, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ForwardRequest (CORBA::tk_struct, sizeof (_oc_PortableServer_ForwardRequest), (char *) &_oc_PortableServer_ForwardRequest, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ForwardRequest = &_tc__tc_PortableServer_ForwardRequest;
@@ -342,7 +342,7 @@ static const CORBA::Long _oc_PortableServer_ThreadPolicyValue[] =
15, 0x4f52425f, 0x4354524c, 0x5f4d4f44, 0x454c0000, // name = ORB_CTRL_MODEL
20, 0x53494e47, 0x4c455f54, 0x48524541, 0x445f4d4f, 0x44454c00, // name = SINGLE_THREAD_MODEL
};
-static CORBA::TypeCode _tc__tc_PortableServer_ThreadPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_ThreadPolicyValue), (unsigned char *) &_oc_PortableServer_ThreadPolicyValue, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ThreadPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_ThreadPolicyValue), (char *) &_oc_PortableServer_ThreadPolicyValue, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ThreadPolicyValue = &_tc__tc_PortableServer_ThreadPolicyValue;
PortableServer::ThreadPolicy_ptr PortableServer::ThreadPolicy::_duplicate (PortableServer::ThreadPolicy_ptr obj)
@@ -433,7 +433,7 @@ static const CORBA::Long _oc_PortableServer_ThreadPolicy[] =
36, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f54, 0x68726561, 0x64506f6c, 0x6963793a, 0x312e3000, // repository ID = IDL:PortableServer/ThreadPolicy:1.0
13, 0x54687265, 0x6164506f, 0x6c696379, 0x0, // name = ThreadPolicy,
};
-static CORBA::TypeCode _tc__tc_PortableServer_ThreadPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_ThreadPolicy), (unsigned char *) &_oc_PortableServer_ThreadPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ThreadPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_ThreadPolicy), (char *) &_oc_PortableServer_ThreadPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ThreadPolicy = &_tc__tc_PortableServer_ThreadPolicy;
@@ -446,7 +446,7 @@ static const CORBA::Long _oc_PortableServer_LifespanPolicyValue[] =
10, 0x5452414e, 0x5349454e, 0x54000000, // name = TRANSIENT
11, 0x50455253, 0x49535445, 0x4e540000, // name = PERSISTENT
};
-static CORBA::TypeCode _tc__tc_PortableServer_LifespanPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_LifespanPolicyValue), (unsigned char *) &_oc_PortableServer_LifespanPolicyValue, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_LifespanPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_LifespanPolicyValue), (char *) &_oc_PortableServer_LifespanPolicyValue, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_LifespanPolicyValue = &_tc__tc_PortableServer_LifespanPolicyValue;
PortableServer::LifespanPolicy_ptr PortableServer::LifespanPolicy::_duplicate (PortableServer::LifespanPolicy_ptr obj)
@@ -537,7 +537,7 @@ static const CORBA::Long _oc_PortableServer_LifespanPolicy[] =
38, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f4c, 0x69666573, 0x70616e50, 0x6f6c6963, 0x793a312e, 0x30000000, // repository ID = IDL:PortableServer/LifespanPolicy:1.0
15, 0x4c696665, 0x7370616e, 0x506f6c69, 0x63790000, // name = LifespanPolicy,
};
-static CORBA::TypeCode _tc__tc_PortableServer_LifespanPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_LifespanPolicy), (unsigned char *) &_oc_PortableServer_LifespanPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_LifespanPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_LifespanPolicy), (char *) &_oc_PortableServer_LifespanPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_LifespanPolicy = &_tc__tc_PortableServer_LifespanPolicy;
@@ -550,7 +550,7 @@ static const CORBA::Long _oc_PortableServer_IdUniquenessPolicyValue[] =
10, 0x554e4951, 0x55455f49, 0x44000000, // name = UNIQUE_ID
12, 0x4d554c54, 0x49504c45, 0x5f494400, // name = MULTIPLE_ID
};
-static CORBA::TypeCode _tc__tc_PortableServer_IdUniquenessPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_IdUniquenessPolicyValue), (unsigned char *) &_oc_PortableServer_IdUniquenessPolicyValue, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_IdUniquenessPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_IdUniquenessPolicyValue), (char *) &_oc_PortableServer_IdUniquenessPolicyValue, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_IdUniquenessPolicyValue = &_tc__tc_PortableServer_IdUniquenessPolicyValue;
PortableServer::IdUniquenessPolicy_ptr PortableServer::IdUniquenessPolicy::_duplicate (PortableServer::IdUniquenessPolicy_ptr obj)
@@ -641,7 +641,7 @@ static const CORBA::Long _oc_PortableServer_IdUniquenessPolicy[] =
42, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f49, 0x64556e69, 0x7175656e, 0x65737350, 0x6f6c6963, 0x793a312e, 0x30000000, // repository ID = IDL:PortableServer/IdUniquenessPolicy:1.0
19, 0x4964556e, 0x69717565, 0x6e657373, 0x506f6c69, 0x63790000, // name = IdUniquenessPolicy,
};
-static CORBA::TypeCode _tc__tc_PortableServer_IdUniquenessPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_IdUniquenessPolicy), (unsigned char *) &_oc_PortableServer_IdUniquenessPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_IdUniquenessPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_IdUniquenessPolicy), (char *) &_oc_PortableServer_IdUniquenessPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_IdUniquenessPolicy = &_tc__tc_PortableServer_IdUniquenessPolicy;
@@ -654,7 +654,7 @@ static const CORBA::Long _oc_PortableServer_IdAssignmentPolicyValue[] =
8, 0x55534552, 0x5f494400, // name = USER_ID
10, 0x53595354, 0x454d5f49, 0x44000000, // name = SYSTEM_ID
};
-static CORBA::TypeCode _tc__tc_PortableServer_IdAssignmentPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_IdAssignmentPolicyValue), (unsigned char *) &_oc_PortableServer_IdAssignmentPolicyValue, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_IdAssignmentPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_IdAssignmentPolicyValue), (char *) &_oc_PortableServer_IdAssignmentPolicyValue, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_IdAssignmentPolicyValue = &_tc__tc_PortableServer_IdAssignmentPolicyValue;
PortableServer::IdAssignmentPolicy_ptr PortableServer::IdAssignmentPolicy::_duplicate (PortableServer::IdAssignmentPolicy_ptr obj)
@@ -745,7 +745,7 @@ static const CORBA::Long _oc_PortableServer_IdAssignmentPolicy[] =
42, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f49, 0x64417373, 0x69676e6d, 0x656e7450, 0x6f6c6963, 0x793a312e, 0x30000000, // repository ID = IDL:PortableServer/IdAssignmentPolicy:1.0
19, 0x49644173, 0x7369676e, 0x6d656e74, 0x506f6c69, 0x63790000, // name = IdAssignmentPolicy,
};
-static CORBA::TypeCode _tc__tc_PortableServer_IdAssignmentPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_IdAssignmentPolicy), (unsigned char *) &_oc_PortableServer_IdAssignmentPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_IdAssignmentPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_IdAssignmentPolicy), (char *) &_oc_PortableServer_IdAssignmentPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_IdAssignmentPolicy = &_tc__tc_PortableServer_IdAssignmentPolicy;
@@ -758,7 +758,7 @@ static const CORBA::Long _oc_PortableServer_ImplicitActivationPolicyValue[] =
20, 0x494d504c, 0x49434954, 0x5f414354, 0x49564154, 0x494f4e00, // name = IMPLICIT_ACTIVATION
23, 0x4e4f5f49, 0x4d504c49, 0x4349545f, 0x41435449, 0x56415449, 0x4f4e0000, // name = NO_IMPLICIT_ACTIVATION
};
-static CORBA::TypeCode _tc__tc_PortableServer_ImplicitActivationPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_ImplicitActivationPolicyValue), (unsigned char *) &_oc_PortableServer_ImplicitActivationPolicyValue, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ImplicitActivationPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_ImplicitActivationPolicyValue), (char *) &_oc_PortableServer_ImplicitActivationPolicyValue, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ImplicitActivationPolicyValue = &_tc__tc_PortableServer_ImplicitActivationPolicyValue;
PortableServer::ImplicitActivationPolicy_ptr PortableServer::ImplicitActivationPolicy::_duplicate (PortableServer::ImplicitActivationPolicy_ptr obj)
@@ -849,7 +849,7 @@ static const CORBA::Long _oc_PortableServer_ImplicitActivationPolicy[] =
48, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f49, 0x6d706c69, 0x63697441, 0x63746976, 0x6174696f, 0x6e506f6c, 0x6963793a, 0x312e3000, // repository ID = IDL:PortableServer/ImplicitActivationPolicy:1.0
25, 0x496d706c, 0x69636974, 0x41637469, 0x76617469, 0x6f6e506f, 0x6c696379, 0x0, // name = ImplicitActivationPolicy,
};
-static CORBA::TypeCode _tc__tc_PortableServer_ImplicitActivationPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_ImplicitActivationPolicy), (unsigned char *) &_oc_PortableServer_ImplicitActivationPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ImplicitActivationPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_ImplicitActivationPolicy), (char *) &_oc_PortableServer_ImplicitActivationPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ImplicitActivationPolicy = &_tc__tc_PortableServer_ImplicitActivationPolicy;
@@ -862,7 +862,7 @@ static const CORBA::Long _oc_PortableServer_ServantRetentionPolicyValue[] =
7, 0x52455441, 0x494e0000, // name = RETAIN
11, 0x4e4f4e5f, 0x52455441, 0x494e0000, // name = NON_RETAIN
};
-static CORBA::TypeCode _tc__tc_PortableServer_ServantRetentionPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_ServantRetentionPolicyValue), (unsigned char *) &_oc_PortableServer_ServantRetentionPolicyValue, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ServantRetentionPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_ServantRetentionPolicyValue), (char *) &_oc_PortableServer_ServantRetentionPolicyValue, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ServantRetentionPolicyValue = &_tc__tc_PortableServer_ServantRetentionPolicyValue;
PortableServer::ServantRetentionPolicy_ptr PortableServer::ServantRetentionPolicy::_duplicate (PortableServer::ServantRetentionPolicy_ptr obj)
@@ -953,7 +953,7 @@ static const CORBA::Long _oc_PortableServer_ServantRetentionPolicy[] =
46, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f53, 0x65727661, 0x6e745265, 0x74656e74, 0x696f6e50, 0x6f6c6963, 0x793a312e, 0x30000000, // repository ID = IDL:PortableServer/ServantRetentionPolicy:1.0
23, 0x53657276, 0x616e7452, 0x6574656e, 0x74696f6e, 0x506f6c69, 0x63790000, // name = ServantRetentionPolicy,
};
-static CORBA::TypeCode _tc__tc_PortableServer_ServantRetentionPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_ServantRetentionPolicy), (unsigned char *) &_oc_PortableServer_ServantRetentionPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ServantRetentionPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_ServantRetentionPolicy), (char *) &_oc_PortableServer_ServantRetentionPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ServantRetentionPolicy = &_tc__tc_PortableServer_ServantRetentionPolicy;
@@ -967,7 +967,7 @@ static const CORBA::Long _oc_PortableServer_RequestProcessingPolicyValue[] =
20, 0x5553455f, 0x44454641, 0x554c545f, 0x53455256, 0x414e5400, // name = USE_DEFAULT_SERVANT
20, 0x5553455f, 0x53455256, 0x414e545f, 0x4d414e41, 0x47455200, // name = USE_SERVANT_MANAGER
};
-static CORBA::TypeCode _tc__tc_PortableServer_RequestProcessingPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_RequestProcessingPolicyValue), (unsigned char *) &_oc_PortableServer_RequestProcessingPolicyValue, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_RequestProcessingPolicyValue (CORBA::tk_enum, sizeof (_oc_PortableServer_RequestProcessingPolicyValue), (char *) &_oc_PortableServer_RequestProcessingPolicyValue, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_RequestProcessingPolicyValue = &_tc__tc_PortableServer_RequestProcessingPolicyValue;
PortableServer::RequestProcessingPolicy_ptr PortableServer::RequestProcessingPolicy::_duplicate (PortableServer::RequestProcessingPolicy_ptr obj)
@@ -1059,7 +1059,7 @@ static const CORBA::Long _oc_PortableServer_RequestProcessingPolicy[] =
47, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f52, 0x65717565, 0x73745072, 0x6f636573, 0x73696e67, 0x506f6c69, 0x63793a31, 0x2e300000, // repository ID = IDL:PortableServer/RequestProcessingPolicy:1.0
24, 0x52657175, 0x65737450, 0x726f6365, 0x7373696e, 0x67506f6c, 0x69637900, // name = RequestProcessingPolicy,
};
-static CORBA::TypeCode _tc__tc_PortableServer_RequestProcessingPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_RequestProcessingPolicy), (unsigned char *) &_oc_PortableServer_RequestProcessingPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_RequestProcessingPolicy (CORBA::tk_objref, sizeof (_oc_PortableServer_RequestProcessingPolicy), (char *) &_oc_PortableServer_RequestProcessingPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_RequestProcessingPolicy = &_tc__tc_PortableServer_RequestProcessingPolicy;
PortableServer::POAManager_ptr PortableServer::POAManager::_duplicate (PortableServer::POAManager_ptr obj)
@@ -1142,7 +1142,7 @@ static const CORBA::Long _oc_PortableServer_POAManager_AdapterInactive[] =
16, 0x41646170, 0x74657249, 0x6e616374, 0x69766500, // name = AdapterInactive
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POAManager_AdapterInactive (CORBA::tk_struct, sizeof (_oc_PortableServer_POAManager_AdapterInactive), (unsigned char *) &_oc_PortableServer_POAManager_AdapterInactive, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POAManager_AdapterInactive (CORBA::tk_struct, sizeof (_oc_PortableServer_POAManager_AdapterInactive), (char *) &_oc_PortableServer_POAManager_AdapterInactive, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POAManager::_tc_AdapterInactive = &_tc__tc_PortableServer_POAManager_AdapterInactive;
CORBA::Boolean PortableServer::POAManager::_is_a (const CORBA::Char *value, CORBA::Environment &_tao_environment)
@@ -1161,7 +1161,7 @@ static const CORBA::Long _oc_PortableServer_POAManager[] =
34, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f50, 0x4f414d61, 0x6e616765, 0x723a312e, 0x30000000, // repository ID = IDL:PortableServer/POAManager:1.0
11, 0x504f414d, 0x616e6167, 0x65720000, // name = POAManager,
};
-static CORBA::TypeCode _tc__tc_PortableServer_POAManager (CORBA::tk_objref, sizeof (_oc_PortableServer_POAManager), (unsigned char *) &_oc_PortableServer_POAManager, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POAManager (CORBA::tk_objref, sizeof (_oc_PortableServer_POAManager), (char *) &_oc_PortableServer_POAManager, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_POAManager = &_tc__tc_PortableServer_POAManager;
PortableServer::AdapterActivator_ptr PortableServer::AdapterActivator::_duplicate (PortableServer::AdapterActivator_ptr obj)
@@ -1229,7 +1229,7 @@ static const CORBA::Long _oc_PortableServer_AdapterActivator[] =
40, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f41, 0x64617074, 0x65724163, 0x74697661, 0x746f723a, 0x312e3000, // repository ID = IDL:PortableServer/AdapterActivator:1.0
17, 0x41646170, 0x74657241, 0x63746976, 0x61746f72, 0x0, // name = AdapterActivator,
};
-static CORBA::TypeCode _tc__tc_PortableServer_AdapterActivator (CORBA::tk_objref, sizeof (_oc_PortableServer_AdapterActivator), (unsigned char *) &_oc_PortableServer_AdapterActivator, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_AdapterActivator (CORBA::tk_objref, sizeof (_oc_PortableServer_AdapterActivator), (char *) &_oc_PortableServer_AdapterActivator, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_AdapterActivator = &_tc__tc_PortableServer_AdapterActivator;
PortableServer::ServantManager_ptr PortableServer::ServantManager::_duplicate (PortableServer::ServantManager_ptr obj)
@@ -1297,7 +1297,7 @@ static const CORBA::Long _oc_PortableServer_ServantManager[] =
38, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f53, 0x65727661, 0x6e744d61, 0x6e616765, 0x723a312e, 0x30000000, // repository ID = IDL:PortableServer/ServantManager:1.0
15, 0x53657276, 0x616e744d, 0x616e6167, 0x65720000, // name = ServantManager,
};
-static CORBA::TypeCode _tc__tc_PortableServer_ServantManager (CORBA::tk_objref, sizeof (_oc_PortableServer_ServantManager), (unsigned char *) &_oc_PortableServer_ServantManager, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ServantManager (CORBA::tk_objref, sizeof (_oc_PortableServer_ServantManager), (char *) &_oc_PortableServer_ServantManager, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ServantManager = &_tc__tc_PortableServer_ServantManager;
PortableServer::ServantActivator_ptr PortableServer::ServantActivator::_duplicate (PortableServer::ServantActivator_ptr obj)
@@ -1366,7 +1366,7 @@ static const CORBA::Long _oc_PortableServer_ServantActivator[] =
40, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f53, 0x65727661, 0x6e744163, 0x74697661, 0x746f723a, 0x312e3000, // repository ID = IDL:PortableServer/ServantActivator:1.0
17, 0x53657276, 0x616e7441, 0x63746976, 0x61746f72, 0x0, // name = ServantActivator,
};
-static CORBA::TypeCode _tc__tc_PortableServer_ServantActivator (CORBA::tk_objref, sizeof (_oc_PortableServer_ServantActivator), (unsigned char *) &_oc_PortableServer_ServantActivator, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ServantActivator (CORBA::tk_objref, sizeof (_oc_PortableServer_ServantActivator), (char *) &_oc_PortableServer_ServantActivator, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ServantActivator = &_tc__tc_PortableServer_ServantActivator;
PortableServer::ServantLocator_ptr PortableServer::ServantLocator::_duplicate (PortableServer::ServantLocator_ptr obj)
@@ -1435,7 +1435,7 @@ static const CORBA::Long _oc_PortableServer_ServantLocator[] =
38, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f53, 0x65727661, 0x6e744c6f, 0x6361746f, 0x723a312e, 0x30000000, // repository ID = IDL:PortableServer/ServantLocator:1.0
15, 0x53657276, 0x616e744c, 0x6f636174, 0x6f720000, // name = ServantLocator,
};
-static CORBA::TypeCode _tc__tc_PortableServer_ServantLocator (CORBA::tk_objref, sizeof (_oc_PortableServer_ServantLocator), (unsigned char *) &_oc_PortableServer_ServantLocator, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_ServantLocator (CORBA::tk_objref, sizeof (_oc_PortableServer_ServantLocator), (char *) &_oc_PortableServer_ServantLocator, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_ServantLocator = &_tc__tc_PortableServer_ServantLocator;
PortableServer::POA_ptr PortableServer::POA::_duplicate (PortableServer::POA_ptr obj)
@@ -1518,7 +1518,7 @@ static const CORBA::Long _oc_PortableServer_POA_AdapterAlreadyExists[] =
21, 0x41646170, 0x74657241, 0x6c726561, 0x64794578, 0x69737473, 0x0, // name = AdapterAlreadyExists
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_AdapterAlreadyExists (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_AdapterAlreadyExists), (unsigned char *) &_oc_PortableServer_POA_AdapterAlreadyExists, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_AdapterAlreadyExists (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_AdapterAlreadyExists), (char *) &_oc_PortableServer_POA_AdapterAlreadyExists, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_AdapterAlreadyExists = &_tc__tc_PortableServer_POA_AdapterAlreadyExists;
// copy constructor
@@ -1552,7 +1552,7 @@ static const CORBA::Long _oc_PortableServer_POA_AdapterInactive[] =
16, 0x41646170, 0x74657249, 0x6e616374, 0x69766500, // name = AdapterInactive
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_AdapterInactive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_AdapterInactive), (unsigned char *) &_oc_PortableServer_POA_AdapterInactive, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_AdapterInactive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_AdapterInactive), (char *) &_oc_PortableServer_POA_AdapterInactive, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_AdapterInactive = &_tc__tc_PortableServer_POA_AdapterInactive;
// copy constructor
@@ -1586,7 +1586,7 @@ static const CORBA::Long _oc_PortableServer_POA_AdapterNonExistent[] =
19, 0x41646170, 0x7465724e, 0x6f6e4578, 0x69737465, 0x6e740000, // name = AdapterNonExistent
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_AdapterNonExistent (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_AdapterNonExistent), (unsigned char *) &_oc_PortableServer_POA_AdapterNonExistent, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_AdapterNonExistent (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_AdapterNonExistent), (char *) &_oc_PortableServer_POA_AdapterNonExistent, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_AdapterNonExistent = &_tc__tc_PortableServer_POA_AdapterNonExistent;
// copy constructor
@@ -1632,7 +1632,7 @@ static const CORBA::Long _oc_PortableServer_POA_InvalidPolicy[] =
CORBA::tk_ushort,
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_InvalidPolicy (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_InvalidPolicy), (unsigned char *) &_oc_PortableServer_POA_InvalidPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_InvalidPolicy (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_InvalidPolicy), (char *) &_oc_PortableServer_POA_InvalidPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_InvalidPolicy = &_tc__tc_PortableServer_POA_InvalidPolicy;
// copy constructor
@@ -1666,7 +1666,7 @@ static const CORBA::Long _oc_PortableServer_POA_NoServant[] =
10, 0x4e6f5365, 0x7276616e, 0x74000000, // name = NoServant
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_NoServant (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_NoServant), (unsigned char *) &_oc_PortableServer_POA_NoServant, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_NoServant (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_NoServant), (char *) &_oc_PortableServer_POA_NoServant, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_NoServant = &_tc__tc_PortableServer_POA_NoServant;
// copy constructor
@@ -1700,7 +1700,7 @@ static const CORBA::Long _oc_PortableServer_POA_ObjectAlreadyActive[] =
20, 0x4f626a65, 0x6374416c, 0x72656164, 0x79416374, 0x69766500, // name = ObjectAlreadyActive
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_ObjectAlreadyActive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_ObjectAlreadyActive), (unsigned char *) &_oc_PortableServer_POA_ObjectAlreadyActive, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_ObjectAlreadyActive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_ObjectAlreadyActive), (char *) &_oc_PortableServer_POA_ObjectAlreadyActive, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_ObjectAlreadyActive = &_tc__tc_PortableServer_POA_ObjectAlreadyActive;
// copy constructor
@@ -1734,7 +1734,7 @@ static const CORBA::Long _oc_PortableServer_POA_ObjectNotActive[] =
16, 0x4f626a65, 0x63744e6f, 0x74416374, 0x69766500, // name = ObjectNotActive
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_ObjectNotActive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_ObjectNotActive), (unsigned char *) &_oc_PortableServer_POA_ObjectNotActive, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_ObjectNotActive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_ObjectNotActive), (char *) &_oc_PortableServer_POA_ObjectNotActive, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_ObjectNotActive = &_tc__tc_PortableServer_POA_ObjectNotActive;
// copy constructor
@@ -1768,7 +1768,7 @@ static const CORBA::Long _oc_PortableServer_POA_ServantAlreadyActive[] =
21, 0x53657276, 0x616e7441, 0x6c726561, 0x64794163, 0x74697665, 0x0, // name = ServantAlreadyActive
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_ServantAlreadyActive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_ServantAlreadyActive), (unsigned char *) &_oc_PortableServer_POA_ServantAlreadyActive, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_ServantAlreadyActive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_ServantAlreadyActive), (char *) &_oc_PortableServer_POA_ServantAlreadyActive, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_ServantAlreadyActive = &_tc__tc_PortableServer_POA_ServantAlreadyActive;
// copy constructor
@@ -1802,7 +1802,7 @@ static const CORBA::Long _oc_PortableServer_POA_ServantNotActive[] =
17, 0x53657276, 0x616e744e, 0x6f744163, 0x74697665, 0x0, // name = ServantNotActive
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_ServantNotActive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_ServantNotActive), (unsigned char *) &_oc_PortableServer_POA_ServantNotActive, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_ServantNotActive (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_ServantNotActive), (char *) &_oc_PortableServer_POA_ServantNotActive, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_ServantNotActive = &_tc__tc_PortableServer_POA_ServantNotActive;
// copy constructor
@@ -1836,7 +1836,7 @@ static const CORBA::Long _oc_PortableServer_POA_WrongAdapter[] =
13, 0x57726f6e, 0x67416461, 0x70746572, 0x0, // name = WrongAdapter
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_WrongAdapter (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_WrongAdapter), (unsigned char *) &_oc_PortableServer_POA_WrongAdapter, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_WrongAdapter (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_WrongAdapter), (char *) &_oc_PortableServer_POA_WrongAdapter, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_WrongAdapter = &_tc__tc_PortableServer_POA_WrongAdapter;
// copy constructor
@@ -1870,7 +1870,7 @@ static const CORBA::Long _oc_PortableServer_POA_WrongPolicy[] =
12, 0x57726f6e, 0x67506f6c, 0x69637900, // name = WrongPolicy
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA_WrongPolicy (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_WrongPolicy), (unsigned char *) &_oc_PortableServer_POA_WrongPolicy, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA_WrongPolicy (CORBA::tk_struct, sizeof (_oc_PortableServer_POA_WrongPolicy), (char *) &_oc_PortableServer_POA_WrongPolicy, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::POA::_tc_WrongPolicy = &_tc__tc_PortableServer_POA_WrongPolicy;
CORBA::Boolean PortableServer::POA::_is_a (const CORBA::Char *value, CORBA::Environment &_tao_environment)
@@ -1889,7 +1889,7 @@ static const CORBA::Long _oc_PortableServer_POA[] =
27, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f50, 0x4f413a31, 0x2e300000, // repository ID = IDL:PortableServer/POA:1.0
4, 0x504f4100, // name = POA,
};
-static CORBA::TypeCode _tc__tc_PortableServer_POA (CORBA::tk_objref, sizeof (_oc_PortableServer_POA), (unsigned char *) &_oc_PortableServer_POA, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_POA (CORBA::tk_objref, sizeof (_oc_PortableServer_POA), (char *) &_oc_PortableServer_POA, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_POA = &_tc__tc_PortableServer_POA;
PortableServer::Current_ptr PortableServer::Current::_duplicate (PortableServer::Current_ptr obj)
@@ -1972,7 +1972,7 @@ static const CORBA::Long _oc_PortableServer_Current_NoContext[] =
10, 0x4e6f436f, 0x6e746578, 0x74000000, // name = NoContext
0, // member count
};
-static CORBA::TypeCode _tc__tc_PortableServer_Current_NoContext (CORBA::tk_struct, sizeof (_oc_PortableServer_Current_NoContext), (unsigned char *) &_oc_PortableServer_Current_NoContext, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_Current_NoContext (CORBA::tk_struct, sizeof (_oc_PortableServer_Current_NoContext), (char *) &_oc_PortableServer_Current_NoContext, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::Current::_tc_NoContext = &_tc__tc_PortableServer_Current_NoContext;
PortableServer::POA_ptr PortableServer::Current::get_POA (CORBA::Environment &env)
@@ -2022,7 +2022,7 @@ static const CORBA::Long _oc_PortableServer_Current[] =
31, 0x49444c3a, 0x506f7274, 0x61626c65, 0x53657276, 0x65722f43, 0x75727265, 0x6e743a31, 0x2e300000, // repository ID = IDL:PortableServer/Current:1.0
8, 0x43757272, 0x656e7400, // name = Current,
};
-static CORBA::TypeCode _tc__tc_PortableServer_Current (CORBA::tk_objref, sizeof (_oc_PortableServer_Current), (unsigned char *) &_oc_PortableServer_Current, CORBA::B_FALSE);
+static CORBA::TypeCode _tc__tc_PortableServer_Current (CORBA::tk_objref, sizeof (_oc_PortableServer_Current), (char *) &_oc_PortableServer_Current, CORBA::B_FALSE);
CORBA::TypeCode_ptr PortableServer::_tc_Current = &_tc__tc_PortableServer_Current;
char *
diff --git a/TAO/tao/tc_const.cpp b/TAO/tao/tc_const.cpp
index 7c49a9f5ea7..d694a1f3057 100644
--- a/TAO/tao/tc_const.cpp
+++ b/TAO/tao/tc_const.cpp
@@ -85,19 +85,19 @@ static const CORBA::Long _oc_string [] =
0 // ... unbounded string
};
static CORBA::TypeCode tc_string (CORBA::tk_string,
- sizeof _oc_string,
- (u_char *) &_oc_string,
- CORBA::B_FALSE);
+ sizeof _oc_string,
+ (char*)&_oc_string,
+ CORBA::B_FALSE);
TAO_Export CORBA::TypeCode_ptr CORBA::_tc_string = &tc_string;
static const CORBA::Long _oc_wstring [] =
{ // CDR typecode octets
- TAO_ENCAP_BYTE_ORDER, // native endian + padding; "tricky"
+ TAO_ENCAP_BYTE_ORDER, // native endian + padding; "tricky"
0 // ... unbounded string
};
static CORBA::TypeCode tc_wstring (CORBA::tk_wstring,
sizeof _oc_wstring,
- (u_char *) &_oc_wstring,
+ (char *) &_oc_wstring,
CORBA::B_FALSE);
TAO_Export CORBA::TypeCode_ptr CORBA::_tc_wstring = &tc_wstring;
@@ -137,7 +137,7 @@ static const u_char oc_objref [] =
static CORBA::TypeCode tc_objref (CORBA::tk_objref,
sizeof oc_objref,
- (u_char *) &oc_objref,
+ (char *) &oc_objref,
CORBA::B_FALSE);
TAO_Export CORBA::TypeCode_ptr CORBA::_tc_Object = &tc_objref;
diff --git a/TAO/tao/typecode.cpp b/TAO/tao/typecode.cpp
index 94a89c53c89..7e8c10cf06f 100644
--- a/TAO/tao/typecode.cpp
+++ b/TAO/tao/typecode.cpp
@@ -47,8 +47,8 @@ CORBA_TypeCode::CORBA_TypeCode (CORBA::TCKind kind)
// non-empty parameter lists. See "corba.hh" for details.
CORBA_TypeCode::CORBA_TypeCode (CORBA::TCKind kind,
- CORBA::ULong length,
- CORBA::Octet *buffer,
+ size_t length,
+ char *buffer,
CORBA::Boolean orb_owns_tc,
CORBA::TypeCode_ptr parent)
: length_ (length),
@@ -84,9 +84,6 @@ CORBA_TypeCode::CORBA_TypeCode (CORBA::TCKind kind,
if (!parent_)
{
- // No parent. We are free standing.
- ptr_arith_t temp;
-
// Allocate a buffer to hold the encapsulated stream. We
// allocate extra space since we need a buffer that is aligned
// on a 4 byte word boundary. As a result, it is quite possible
@@ -96,12 +93,13 @@ CORBA_TypeCode::CORBA_TypeCode (CORBA::TCKind kind,
// to remain dangling. Hence we save a handle to the original
// allocated buffer.
- this->non_aligned_buffer_ = new CORBA::Octet [length + 4];
+ this->non_aligned_buffer_ = new char [length + 4];
- temp = (ptr_arith_t) non_aligned_buffer_;
+ // No parent. We are free standing.
+ ptr_arith_t temp = (ptr_arith_t) non_aligned_buffer_;
temp += 3;
temp &= ~0x03;
- this->buffer_ = (CORBA::Octet *) temp;
+ this->buffer_ = ACE_reinterpret_cast(char*,temp);
(void) ACE_OS::memcpy (this->buffer_, buffer, (size_t) length);
@@ -384,8 +382,8 @@ CORBA_TypeCode::skip_typecode (CDR &stream)
case CORBA::tk_array:
case CORBA::tk_alias:
case CORBA::tk_except:
- return stream.get_ulong (temp) != CORBA::B_FALSE
- && stream.skip_bytes (temp) != CORBA::B_FALSE;
+ return (stream.get_ulong (temp) != CORBA::B_FALSE
+ && stream.rd_ptr (temp) != CORBA::B_FALSE);
}
return CORBA::B_TRUE;
@@ -1173,9 +1171,8 @@ CORBA_TypeCode::private_name (CORBA::Environment &env) const
{
this->private_state_->tc_name_known_ = CORBA::B_TRUE;
- // skip past the length field.
- this->private_state_->tc_name_ = (CORBA::String) (stream.next +
- CDR::LONG_SIZE);
+ // "Read" the string without copying.
+ stream.get_string (this->private_state_->tc_name_);
return this->private_state_->tc_name_;
}
@@ -1479,13 +1476,8 @@ CORBA_TypeCode::private_member_name (CORBA::ULong index,
// return the required one.
for (CORBA::ULong i = 0; i < mcount; i++)
{
- // the ith entry will have the name of the ith member
- this->private_state_->tc_member_name_list_ [i] = (char *)
- (stream.next + 4); // just point to it. The string
- // starts after 4 bytes that encodes
- // the length
// now skip this name
- if (!stream.skip_string ())
+ if (!stream.get_string (this->private_state_->tc_member_name_list_ [i]))
{
env.exception (new CORBA::BAD_TYPECODE
(CORBA::COMPLETED_NO));
@@ -1541,11 +1533,8 @@ CORBA_TypeCode::private_member_name (CORBA::ULong index,
// return the required one.
for (CORBA::ULong i = 0; i < mcount; i++)
{
- // the ith entry will have the name of the ith member
- this->private_state_->tc_member_name_list_ [i] = (char *)
- (stream.next + 4); // just point to it
- if (!stream.skip_string () // skip this name
- || (!skip_typecode (stream) // skip the typecode
+ if (!stream.get_string (this->private_state_->tc_member_name_list_ [i])
+ || (!skip_typecode (stream)
!= CORBA::TypeCode::TRAVERSE_CONTINUE))
{
env.exception (new CORBA::BAD_TYPECODE (CORBA::COMPLETED_NO));
@@ -1621,10 +1610,8 @@ CORBA_TypeCode::private_member_name (CORBA::ULong index,
(CORBA::COMPLETED_NO));
return 0;
}
- this->private_state_->tc_member_name_list_ [i] = (char *)
- (stream.next + 4); // just point to it.
// skip typecode for member
- if (!stream.skip_string () // skip this name
+ if (!stream.get_string (this->private_state_->tc_member_name_list_ [i])
|| (!skip_typecode (stream))) // skip typecode
{
env.exception (new CORBA::BAD_TYPECODE
diff --git a/TAO/tao/typecode.h b/TAO/tao/typecode.h
index 99083f93b32..db1cb634940 100644
--- a/TAO/tao/typecode.h
+++ b/TAO/tao/typecode.h
@@ -135,8 +135,8 @@ public:
// with no parameters.
CORBA_TypeCode (CORBA::TCKind kind,
- CORBA::ULong length,
- CORBA::Octet *buffer,
+ size_t length,
+ char *buffer,
CORBA::Boolean orb_owns_tc,
CORBA::TypeCode_ptr parent = 0);
// This constructor is used both for typecode constants and for
@@ -238,10 +238,10 @@ public:
// This is implemented as a counted set of bytes, in marshaled CDR
// format.
- CORBA::ULong length_;
+ size_t length_;
// length of the encapsulated stream
- CORBA::Octet *buffer_;
+ char* buffer_;
// the encapsulated stream
CORBA::TCKind kind_;
@@ -386,7 +386,7 @@ private:
CORBA_TypeCode (const CORBA::TypeCode &src);
CORBA_TypeCode &operator = (const CORBA::TypeCode &src);
- CORBA::Octet *non_aligned_buffer_;
+ char *non_aligned_buffer_;
// original buffer that may possibly be non-aligned. We still need a
// handle to the allocated memory so that all of it can be freed by
// the destructor
diff --git a/TAO/taoconfig.mk b/TAO/taoconfig.mk
index dd5628d0a45..424d36476ef 100644
--- a/TAO/taoconfig.mk
+++ b/TAO/taoconfig.mk
@@ -12,5 +12,3 @@ endif
LDFLAGS := $(patsubst -L$(ACE_ROOT)/ace, -L$(TAO_ROOT)/tao -L$(ACE_ROOT)/ace, $(LDFLAGS))
CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H
-clean:
- -/bin/rm -rf *.o Log $(BIN) obj.* core Templates.DB .make.state
diff --git a/TAO/tests/CDR/Makefile b/TAO/tests/CDR/Makefile
new file mode 100644
index 00000000000..04e712f88b4
--- /dev/null
+++ b/TAO/tests/CDR/Makefile
@@ -0,0 +1,57 @@
+#----------------------------------------------------------------------------
+#
+# $Id$
+#
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+ifndef TAO_ROOT
+ TAO_ROOT = $(ACE_ROOT)/TAO
+endif # ! TAO_ROOT
+
+LDLIBS = -lTAO
+LDFLAGS += -L$(TAO_ROOT)/tao
+
+PROG_SRCS = \
+ basic_types.cpp \
+ tc.cpp \
+
+LSRC = $(PROG_SRCS)
+
+BASIC_TYPES_OBJS = basic_types.o
+TC_OBJS = tc.o
+
+BIN = basic_types tc
+BUILD = $(BIN)
+VLDLIBS = $(LDLIBS:%=%$(VAR))
+VBIN = $(BIN:%=%$(VAR))
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(ACE_ROOT)/include/makeinclude/macros.GNU
+include $(TAO_ROOT)/rules.tao.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
+#include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
+
+CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H
+
+basic_types: $(addprefix $(VDIR),$(BASIC_TYPES_OBJS))
+ $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+
+tc: $(addprefix $(VDIR),$(TC_OBJS))
+ $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+
+clean:
+ -/bin/rm -rf *.o Log $(BIN) obj.* core Templates.DB .make.state
+
+# DO NOT DELETE THIS LINE -- g++dep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/tests/CDR/basic_types.cpp b/TAO/tests/CDR/basic_types.cpp
new file mode 100644
index 00000000000..759249b7cbf
--- /dev/null
+++ b/TAO/tests/CDR/basic_types.cpp
@@ -0,0 +1,90 @@
+//
+// $Id$
+//
+
+#include "tao/corba.h"
+
+int
+main (int , char *[])
+{
+ CDR cdr;
+
+ CORBA::Octet o = 1;
+ CORBA::Short s = 2;
+ CORBA::Long l = 4;
+
+ const int n = 4096;
+ for (int i = 0; i < n; ++i)
+ {
+ if (cdr.put_octet (o) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "put_octet[%d] failed\n", i), 1);
+ }
+ if (cdr.put_short (s) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "put_short[%d] failed\n", i), 1);
+ }
+ if (cdr.put_octet (o) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "put_octet-2[%d] failed\n", i), 1);
+ }
+ if (cdr.put_long (l) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "put_long[%d] failed\n", i), 1);
+ }
+ if (cdr.put_long (l) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "put_long-2[%d] failed\n", i), 1);
+ }
+ }
+
+ CORBA::Octet xo;
+ CORBA::Short xs;
+ CORBA::Long xl;
+
+ for (int j = 0; j < n; ++j)
+ {
+ if (cdr.get_octet (xo) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "get_octet[%d] failed\n", j), 1);
+ }
+ if (xo != o)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "octet[%d] differs\n", j), 1);
+ }
+ if (cdr.get_short (xs) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "get_short[%d] failed\n", j), 1);
+ }
+ if (xs != s)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "short[%d] differs\n", j), 1);
+ }
+ if (cdr.get_octet (xo) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "get_octet-2[%d] failed\n", j), 1);
+ }
+ if (xo != o)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "octet-2[%d] differs\n", j), 1);
+ }
+ if (cdr.get_long (xl) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "get_long[%d] failed\n", j), 1);
+ }
+ if (xl != l)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "long[%d] differs\n", j), 1);
+ }
+ if (cdr.get_long (xl) == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "get_long-2[%d] failed\n", j), 1);
+ }
+ if (xl != l)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "long-2[%d] differs\n", j), 1);
+ }
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/CDR/tc.cpp b/TAO/tests/CDR/tc.cpp
new file mode 100644
index 00000000000..6461e173f2f
--- /dev/null
+++ b/TAO/tests/CDR/tc.cpp
@@ -0,0 +1,128 @@
+//
+// $Id$
+//
+
+#include "tao/corba.h"
+
+// In this version of TAO typecodes are based on CDR, we have to
+// verify that CDR offers the services needed for Typecode...
+
+static CORBA::TypeCode_ptr tcs[]= {
+ CORBA::_tc_null,
+ CORBA::_tc_void,
+ CORBA::_tc_short,
+ CORBA::_tc_long,
+ CORBA::_tc_ushort,
+ CORBA::_tc_ulong,
+ CORBA::_tc_float,
+ CORBA::_tc_double,
+ CORBA::_tc_boolean,
+ CORBA::_tc_char,
+ CORBA::_tc_octet,
+ CORBA::_tc_any,
+ CORBA::_tc_TypeCode,
+ CORBA::_tc_Principal,
+ CORBA::_tc_Object,
+ // CORBA::_tc_struct,
+ // CORBA::_tc_union,
+ // CORBA::_tc_enum,
+ CORBA::_tc_string,
+ // CORBA::_tc_sequence,
+ // CORBA::_tc_array,
+ // CORBA::_tc_alias,
+ // CORBA::_tc_except,
+ CORBA::_tc_longlong,
+ CORBA::_tc_ulonglong,
+ CORBA::_tc_longdouble,
+ CORBA::_tc_wchar,
+ CORBA::_tc_wstring,
+ CORBA::_tc_UNKNOWN,
+ CORBA::_tc_BAD_PARAM,
+ CORBA::_tc_NO_MEMORY,
+ CORBA::_tc_IMP_LIMIT,
+ CORBA::_tc_COMM_FAILURE,
+ CORBA::_tc_INV_OBJREF,
+ CORBA::_tc_OBJECT_NOT_EXIST,
+ CORBA::_tc_NO_PERMISSION,
+ CORBA::_tc_INTERNAL,
+ CORBA::_tc_MARSHAL,
+ CORBA::_tc_INITIALIZE,
+ CORBA::_tc_NO_IMPLEMENT,
+ CORBA::_tc_BAD_TYPECODE,
+ CORBA::_tc_BAD_OPERATION,
+ CORBA::_tc_NO_RESOURCES,
+ CORBA::_tc_NO_RESPONSE,
+ CORBA::_tc_PERSIST_STORE,
+ CORBA::_tc_BAD_INV_ORDER,
+ CORBA::_tc_TRANSIENT,
+ CORBA::_tc_FREE_MEM,
+ CORBA::_tc_INV_IDENT,
+ CORBA::_tc_INV_FLAG,
+ CORBA::_tc_INTF_REPOS,
+ CORBA::_tc_BAD_CONTEXT,
+ CORBA::_tc_OBJ_ADAPTER,
+ CORBA::_tc_DATA_CONVERSION,
+ CORBA::_tc_Bounds,
+ CORBA::_tc_BadKind
+};
+static int n = sizeof (tcs) / sizeof (tcs[0]);
+
+int
+main (int argc, char *argv[])
+{
+ TAO_TRY
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "",
+ TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+
+ for (CORBA::TypeCode_ptr* i = tcs; i != tcs + n; ++i)
+ {
+ CORBA::TypeCode_ptr tc = *i;
+
+ CORBA::TCKind k = tc->kind (TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+
+ switch (k)
+ {
+ case CORBA::tk_objref:
+ case CORBA::tk_struct:
+ case CORBA::tk_union:
+ case CORBA::tk_enum:
+ case CORBA::tk_alias:
+ case CORBA::tk_except:
+ {
+ const char* id = tc->id (TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+
+ const char* name = tc->name (TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+
+ CORBA::ULong length = 0; // tc->length (TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "ID = '%s'\n"
+ "%{%{% NAME = %s%$"
+ " KIND = %d%$"
+ " LENGTH = %d"
+ "%}%}\n",
+ id, name, k, length));
+ }
+ break;
+ default:
+ {
+ ACE_DEBUG ((LM_DEBUG, "basic type: %d\n", k));
+ }
+ break;
+ }
+ }
+ }
+ TAO_CATCHANY
+ {
+ TAO_TRY_ENV.print_exception ("TC");
+ }
+ TAO_ENDTRY;
+
+ return 0;
+}
diff --git a/TAO/tests/Makefile b/TAO/tests/Makefile
index 6bad6db3b11..4aebdf4609a 100644
--- a/TAO/tests/Makefile
+++ b/TAO/tests/Makefile
@@ -13,7 +13,8 @@
DIRS = Cubit \
POA \
Param_Test \
- Thruput
+ Thruput \
+ CDR \
# The following tests have not been updated yet
# Demux_Test