summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2005-02-18 11:07:30 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2005-02-18 11:07:30 +0000
commit6e498a3e574a65e6e959e9778482c551fff2884b (patch)
treeb8980447bbbeda409a9eed68ab9f2286b93b45ae
parentd6c155b75bd190af9d90324921ed9197a1aab013 (diff)
downloadATCD-6e498a3e574a65e6e959e9778482c551fff2884b.tar.gz
*** empty log message ***
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp42
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp128
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp91
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp9
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp9
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp8
-rw-r--r--TAO/TAO_IDL/be_include/be_interface.h10
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h6
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h9
-rw-r--r--TAO/tao/Abstract_Servant_Base.h3
-rw-r--r--TAO/tao/BD_String_Argument_T.h10
-rw-r--r--TAO/tao/Basic_Argument_T.h6
-rw-r--r--TAO/tao/Collocated_Invocation.cpp36
-rw-r--r--TAO/tao/Fixed_Array_Argument_T.h7
-rw-r--r--TAO/tao/Fixed_Size_Argument_T.h8
-rw-r--r--TAO/tao/Object_Argument_T.h8
-rw-r--r--TAO/tao/Object_Argument_T.inl2
-rw-r--r--TAO/tao/PortableServer/Object_Adapter.cpp8
-rw-r--r--TAO/tao/PortableServer/Object_SArgument_T.h3
-rw-r--r--TAO/tao/PortableServer/Operation_Table.cpp2
-rw-r--r--TAO/tao/PortableServer/Servant_Base.h3
-rw-r--r--TAO/tao/Special_Basic_Argument_T.h5
-rw-r--r--TAO/tao/UB_String_Argument_T.h8
-rw-r--r--TAO/tao/Var_Array_Argument_T.h5
-rw-r--r--TAO/tao/Var_Size_Argument_T.h8
27 files changed, 267 insertions, 181 deletions
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index 06df1f23a52..1b0be022336 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -1896,27 +1896,27 @@ be_interface::is_a_helper (be_interface * /*derived*/,
return 0;
}
-int
-be_interface::downcast_helper (be_interface * /* derived */,
- be_interface *base,
- TAO_OutStream *os)
-{
- // Abstract interfaces have no code generated on the skeleton side.
- if (base->is_abstract ())
- {
- return 0;
- }
-
- *os << "if (ACE_OS::strcmp (logical_type_id," << be_nl
- << " \""
- << base->repoID () << "\") == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return static_cast<"
- << base->full_skel_name () << "_ptr> (this);" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- return 0;
-}
+// int
+// be_interface::downcast_helper (be_interface * /* derived */,
+// be_interface *base,
+// TAO_OutStream *os)
+// {
+// // Abstract interfaces have no code generated on the skeleton side.
+// if (base->is_abstract ())
+// {
+// return 0;
+// }
+
+// *os << "if (ACE_OS::strcmp (logical_type_id," << be_nl
+// << " \""
+// << base->repoID () << "\") == 0)" << be_idt_nl
+// << "{" << be_idt_nl
+// << "return static_cast<"
+// << base->full_skel_name () << "_ptr> (this);" << be_uidt_nl
+// << "}" << be_uidt_nl << be_nl;
+
+// return 0;
+// }
int
be_interface::gen_skel_helper (be_interface *derived,
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp
index 4619aa4f754..4769e96b8b4 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp
@@ -126,9 +126,9 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node)
<< "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
<< ");" << be_uidt_nl << be_nl;
- *os << "virtual void* _downcast (" << be_idt << be_idt_nl
- << "const char* logical_type_id" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
+// *os << "virtual void* _downcast (" << be_idt << be_idt_nl
+// << "const char* logical_type_id" << be_uidt_nl
+// << ");" << be_uidt_nl << be_nl;
// Add a skeleton for our _is_a method.
*os << "static void _is_a_skel (" << be_idt << be_idt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
index 4a82a7a80da..bf760ba19f0 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
@@ -174,70 +174,70 @@ be_visitor_amh_interface_ss::generate_proxy_classes (be_interface *)
// ****************************************************************
-class TAO_IDL_Downcast_Implementation_Worker
- : public TAO_IDL_Inheritance_Hierarchy_Worker
-{
-public:
- TAO_IDL_Downcast_Implementation_Worker ();
-
- virtual int emit (be_interface *base,
- TAO_OutStream *os,
- be_interface *derived);
-};
-
-TAO_IDL_Downcast_Implementation_Worker::
-TAO_IDL_Downcast_Implementation_Worker (void)
-{
-}
-
-int
-TAO_IDL_Downcast_Implementation_Worker::
-emit (be_interface * /* derived */,
- TAO_OutStream *os,
- be_interface *base)
-{
- // @@ This whole thing would be more efficient if we could pass the
- // ACE_CString to compute_full_name, after all it uses that
- // internally.
- ACE_CString amh_name ("POA_");
-
- // @@ The following code is *NOT* exception-safe.
- char *buf = 0;
- base->compute_full_name ("AMH_", "", buf);
- amh_name += buf;
- // buf was allocated using ACE_OS::strdup, so we must use free instead
- // of delete.
- ACE_OS::free (buf);
-
- *os << "if (ACE_OS::strcmp (logical_type_id, \""
- << base->repoID () << "\") == 0)" << be_idt_nl
- << "return static_cast<"
- << amh_name.c_str () << "*> (this);" << be_uidt_nl;
-
- return 0;
-}
-
-int
-be_visitor_amh_interface_ss::generate_downcast_implementation (be_interface *node,
- TAO_OutStream *os)
-{
- // Make sure the queues are empty.
- node->get_insert_queue ().reset ();
- node->get_del_queue ().reset ();
-
-
- // Insert ourselves in the queue.
- if (node->get_insert_queue ().enqueue_tail (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_interface::traverse_inheritance_graph - "
- "error generating entries\n"),
- -1);
- }
-
- TAO_IDL_Downcast_Implementation_Worker worker;
- return node->traverse_inheritance_graph (worker, os);
-}
+// class TAO_IDL_Downcast_Implementation_Worker
+// : public TAO_IDL_Inheritance_Hierarchy_Worker
+// {
+// public:
+// TAO_IDL_Downcast_Implementation_Worker ();
+
+// virtual int emit (be_interface *base,
+// TAO_OutStream *os,
+// be_interface *derived);
+// };
+
+// TAO_IDL_Downcast_Implementation_Worker::
+// TAO_IDL_Downcast_Implementation_Worker (void)
+// {
+// }
+
+// int
+// TAO_IDL_Downcast_Implementation_Worker::
+// emit (be_interface * /* derived */,
+// TAO_OutStream *os,
+// be_interface *base)
+// {
+// // @@ This whole thing would be more efficient if we could pass the
+// // ACE_CString to compute_full_name, after all it uses that
+// // internally.
+// ACE_CString amh_name ("POA_");
+
+// // @@ The following code is *NOT* exception-safe.
+// char *buf = 0;
+// base->compute_full_name ("AMH_", "", buf);
+// amh_name += buf;
+// // buf was allocated using ACE_OS::strdup, so we must use free instead
+// // of delete.
+// ACE_OS::free (buf);
+
+// *os << "if (ACE_OS::strcmp (logical_type_id, \""
+// << base->repoID () << "\") == 0)" << be_idt_nl
+// << "return static_cast<"
+// << amh_name.c_str () << "*> (this);" << be_uidt_nl;
+
+// return 0;
+// }
+
+// int
+// be_visitor_amh_interface_ss::generate_downcast_implementation (be_interface *node,
+// TAO_OutStream *os)
+// {
+// // Make sure the queues are empty.
+// node->get_insert_queue ().reset ();
+// node->get_del_queue ().reset ();
+
+
+// // Insert ourselves in the queue.
+// if (node->get_insert_queue ().enqueue_tail (node) == -1)
+// {
+// ACE_ERROR_RETURN ((LM_ERROR,
+// "(%N:%l) be_interface::traverse_inheritance_graph - "
+// "error generating entries\n"),
+// -1);
+// }
+
+// TAO_IDL_Downcast_Implementation_Worker worker;
+// return node->traverse_inheritance_graph (worker, os);
+// }
// ****************************************************************
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp
index e8d950f4d1f..d28b2bec2cd 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp
@@ -174,10 +174,10 @@ be_visitor_interface_sh::visit_interface (be_interface *node)
<< "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
<< ");" << be_uidt_nl << be_nl;
- // _downcast
- *os << "virtual void* _downcast (" << be_idt << be_idt_nl
- << "const char* logical_type_id" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
+// // _downcast
+// *os << "virtual void* _downcast (" << be_idt << be_idt_nl
+// << "const char* logical_type_id" << be_uidt_nl
+// << ");" << be_uidt_nl << be_nl;
// Add a skeleton for our _is_a method.
*os << "static void _is_a_skel (" << be_idt << be_idt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
index 9f5d326b7ea..b15fb738ac9 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
@@ -172,6 +172,29 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
+
+// {
+// Identifier arg_name (ACE_OS::strdup ("type_id"));
+// UTL_ScopedName arg_scoped_name (&arg_name, 0);
+// AST_Argument arg (AST_Argument::dir_in,
+// AST_Decl::NT_pre_defined,
+// &arg_scoped_name);
+
+
+// AST_Type rt (AST_Decl::NT_op, 0);
+// Identifier op_name (ACE_OS::strdup ("_is_a"));
+// UTL_ScopedName scoped_name (&op_name, 0);
+// be_operation is_a (&rt,
+// AST_Operation::OP_noflags,
+// &scoped_name,
+// node->is_local (),
+// node->is_abstract ());
+// is_a.set_defined_in (node);
+
+// be_visitor_operation_upcall_command_ss upcall_command_visitor (this->ctx_);
+// upcall_command_visitor.visit_operation (&is_a);
+// }
+
*os << "TAO_InputCDR &_tao_in = _tao_server_request.incoming ();"
<< be_nl << be_nl;
@@ -395,32 +418,32 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
- // the downcast method.
- *os << "void* " << full_skel_name
- << "::_downcast (" << be_idt << be_idt_nl
- << "const char* logical_type_id" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl;
-
- if (this->generate_downcast_implementation (node, os) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_ss::"
- "visit_interface - "
- "traverse for downcast implementation failed\n"),
- -1);
- }
-
- *os << "if (ACE_OS::strcmp (logical_type_id," << be_nl
- << " \"IDL:omg.org/CORBA/Object:1.0\") == 0)"
- << be_idt_nl
- << "{" << be_idt_nl
- << "return static_cast<PortableServer::Servant> (this);"
- << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- *os << "return 0;" << be_uidt_nl
- << "}" << be_nl << be_nl;
+// // the downcast method.
+// *os << "void* " << full_skel_name
+// << "::_downcast (" << be_idt << be_idt_nl
+// << "const char* logical_type_id" << be_uidt_nl
+// << ")" << be_uidt_nl
+// << "{" << be_idt_nl;
+
+// if (this->generate_downcast_implementation (node, os) == -1)
+// {
+// ACE_ERROR_RETURN ((LM_ERROR,
+// "be_visitor_interface_ss::"
+// "visit_interface - "
+// "traverse for downcast implementation failed\n"),
+// -1);
+// }
+
+// *os << "if (ACE_OS::strcmp (logical_type_id," << be_nl
+// << " \"IDL:omg.org/CORBA/Object:1.0\") == 0)"
+// << be_idt_nl
+// << "{" << be_idt_nl
+// << "return static_cast<PortableServer::Servant> (this);"
+// << be_uidt_nl
+// << "}" << be_uidt_nl << be_nl;
+
+// *os << "return 0;" << be_uidt_nl
+// << "}" << be_nl << be_nl;
*os << "const char* " << full_skel_name
<< "::_interface_repository_id (void) const"
@@ -538,7 +561,7 @@ be_visitor_interface_ss::this_method (be_interface *node)
<< "ACE_CHECK_RETURN (0);" << be_nl << be_nl
<< "TAO_Stub_Auto_Ptr safe_stub (stub);" << be_nl;
- *os << "CORBA::Object_ptr tmp = CORBA::Object::_nil ();"
+ *os << "CORBA::Object_ptr tmp = CORBA::Object::_nil ();"
<< be_nl << be_nl
<< "CORBA::Boolean _tao_opt_colloc =" << be_idt_nl
<< "stub->servant_orb_var ()->orb_core ()->"
@@ -715,13 +738,13 @@ be_visitor_interface_ss::generate_proxy_classes (be_interface *node)
return 0;
}
-int
-be_visitor_interface_ss::generate_downcast_implementation (be_interface *node,
- TAO_OutStream *os)
-{
- return node->traverse_inheritance_graph (be_interface::downcast_helper,
- os);
-}
+// int
+// be_visitor_interface_ss::generate_downcast_implementation (be_interface *node,
+// TAO_OutStream *os)
+// {
+// return node->traverse_inheritance_graph (be_interface::downcast_helper,
+// os);
+// }
int
be_visitor_interface_ss::generate_copy_ctor (be_interface *node,
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp
index 8bc9ba1e2b7..ab23453b58e 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp
@@ -100,12 +100,9 @@ be_visitor_operation_direct_proxy_impl_ss::visit_operation (
*os << ">::ret_val *) args[0])->arg () =" << be_idt_nl;
}
- *os << "reinterpret_cast<" << be_idt << be_idt_nl
+ *os << "dynamic_cast<" << be_idt << be_idt_nl
<< intf->full_skel_name () << "_ptr> (" << be_nl
- << "servant->_downcast (" << be_idt << be_idt_nl
- << "\"" << intf->repoID () << "\"" << be_uidt_nl
- << ")" << be_uidt << be_uidt_nl
- << ")" << be_uidt;
+ << "servant)" << be_uidt << be_uidt_nl;
be_visitor_context ctx;
@@ -126,7 +123,7 @@ be_visitor_operation_direct_proxy_impl_ss::visit_operation (
*os << "ACE_CHECK;";
}
*os << be_uidt_nl
- << "}";
+ << "}" << be_nl;
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp
index 0ea79e2c0de..3c3a9648407 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp
@@ -168,12 +168,9 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation (
*os << ">::ret_val *) args[0])->arg () =" << be_idt_nl;
}
- *os << "reinterpret_cast<" << be_idt << be_idt_nl
+ *os << "dynamic_cast<" << be_idt << be_idt_nl
<< intf->full_skel_name () << "_ptr> (" << be_nl
- << "servant->_downcast (" << be_idt << be_idt_nl
- << "\"" << intf->repoID () << "\"" << be_uidt_nl
- << ")" << be_uidt << be_uidt_nl
- << ")" << be_uidt;
+ << "servant)" << be_uidt << be_uidt_nl;
be_visitor_context ctx;
@@ -189,7 +186,7 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation (
*os << be_uidt << be_uidt_nl
<< "ACE_CHECK;" << be_uidt_nl
- << "}";
+ << "}" << be_nl;
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp
index 694f2bec221..0ce4e531854 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp
@@ -109,13 +109,13 @@ be_visitor_operation_upcall_command_ss::visit_operation (be_operation * node)
if (!node->void_return_type ())
{
- os << "static_cast<TAO::SArg_Traits< ";
+ os << "static_cast<TAO::Arg_Traits< ";
this->gen_arg_template_param_name (node,
node->return_type (),
&os);
- os << ">::ret_val *> (this->args_[0])->arg () =" << be_idt_nl;
+ os << ">::ret_base *> (this->args_[0])->arg () =" << be_idt_nl;
}
if (this->gen_upcall (node) == -1)
@@ -189,7 +189,7 @@ be_visitor_operation_upcall_command_ss::gen_upcall (be_operation * node)
AST_Argument::narrow_from_decl (si.item ());
os << (index == 1 ? "" : ",") << be_nl
- << "static_cast<TAO::SArg_Traits< ";
+ << "static_cast<TAO::Arg_Traits< ";
this->gen_arg_template_param_name (arg,
arg->field_type (),
@@ -211,7 +211,7 @@ be_visitor_operation_upcall_command_ss::gen_upcall (be_operation * node)
break;
}
- os << "_arg_val *> (this->args_[" << index << "])->arg ()";
+ os << "_arg_base *> (this->args_[" << index << "])->arg ()";
}
// End the upcall
diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h
index c0546cb8359..1283fba236b 100644
--- a/TAO/TAO_IDL/be_include/be_interface.h
+++ b/TAO/TAO_IDL/be_include/be_interface.h
@@ -234,11 +234,11 @@ public:
// Helper method passed to the template method that generates code for the
// is_a method.
- static int downcast_helper (be_interface *,
- be_interface *,
- TAO_OutStream *os);
- // Helper method passed to the template method that generates code for the
- // downcast.
+// static int downcast_helper (be_interface *,
+// be_interface *,
+// TAO_OutStream *os);
+// // Helper method passed to the template method that generates code for the
+// // downcast.
static int ami_handler_gen_optable_helper (be_interface *,
be_interface *,
diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h
index b9b5f6a6717..c65578519df 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_interface/amh_ss.h
@@ -1,3 +1,5 @@
+// -*- C++ -*-
+
//=============================================================================
/**
* @file amh_ss.h
@@ -33,8 +35,8 @@ protected:
virtual int generate_amh_classes (be_interface *node);
virtual int generate_proxy_classes (be_interface *node);
- virtual int generate_downcast_implementation (be_interface *node,
- TAO_OutStream *os);
+// virtual int generate_downcast_implementation (be_interface *node,
+// TAO_OutStream *os);
virtual int generate_copy_ctor (be_interface *node,
TAO_OutStream *os);
virtual ACE_CString generate_flat_name (be_interface *node);
diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h
index 26017450331..67642002063 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h
@@ -1,7 +1,8 @@
+// -*- C++ -*-
//
// $Id$
-//
-/* -*- c++ -*- */
+
+
// ============================================================================
//
// = LIBRARY
@@ -59,8 +60,8 @@ protected:
virtual int generate_amh_classes (be_interface *node);
virtual int generate_proxy_classes (be_interface *node);
- virtual int generate_downcast_implementation (be_interface *node,
- TAO_OutStream *os);
+// virtual int generate_downcast_implementation (be_interface *node,
+// TAO_OutStream *os);
virtual int generate_copy_ctor (be_interface *node,
TAO_OutStream *os);
virtual ACE_CString generate_flat_name (be_interface *node);
diff --git a/TAO/tao/Abstract_Servant_Base.h b/TAO/tao/Abstract_Servant_Base.h
index 63775a046d2..1b7e5613129 100644
--- a/TAO/tao/Abstract_Servant_Base.h
+++ b/TAO/tao/Abstract_Servant_Base.h
@@ -104,9 +104,6 @@ public:
virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
//@}
- /// Get the correct vtable.
- virtual void *_downcast (const char *repository_id) = 0;
-
/// This is an auxiliary method for _this() and _narrow().
virtual TAO_Stub *_create_stub (ACE_ENV_SINGLE_ARG_DECL) = 0;
diff --git a/TAO/tao/BD_String_Argument_T.h b/TAO/tao/BD_String_Argument_T.h
index 956e628d8b3..cb4a0074895 100644
--- a/TAO/tao/BD_String_Argument_T.h
+++ b/TAO/tao/BD_String_Argument_T.h
@@ -141,7 +141,7 @@ namespace TAO
struct TAO_Export BD_String_Tag {};
/**
- * @struct Basic_Arg_Traits_T
+ * @struct BD_String_Arg_Traits_T
*
* @brief Template class for stub argument traits of bounded (w)strings.
*
@@ -155,7 +155,7 @@ namespace TAO
struct BD_String_Arg_Traits_T
{
typedef T * ret_type;
- typedef const T * in_type;
+ typedef T const * in_type;
typedef T *& inout_type;
typedef T_out out_type;
@@ -178,6 +178,12 @@ namespace TAO
from_T,
BOUND> ret_val;
+
+ typedef Const_Argument_T<in_type> in_arg_base;
+ typedef Mutable_Argument_T<inout_type> inout_arg_base;
+ typedef Mutable_Argument_T<inout_type> out_arg_base;
+ typedef Mutable_Argument_T<inout_type> ret_base;
+
typedef BD_String_Tag idl_tag;
};
diff --git a/TAO/tao/Basic_Argument_T.h b/TAO/tao/Basic_Argument_T.h
index ad03c589294..e004a85d2e3 100644
--- a/TAO/tao/Basic_Argument_T.h
+++ b/TAO/tao/Basic_Argument_T.h
@@ -143,6 +143,12 @@ namespace TAO
typedef Out_Basic_Argument_T<T> out_arg_val;
typedef Ret_Basic_Argument_T<T> ret_val;
+ typedef Const_Argument_T<in_type> in_arg_base;
+ typedef Mutable_Argument_T<inout_type> inout_arg_base;
+ typedef Mutable_Argument_T<out_type> out_arg_base;
+ typedef Mutable_Argument_T<out_type> ret_base;
+
+
typedef Basic_Tag idl_tag;
};
}
diff --git a/TAO/tao/Collocated_Invocation.cpp b/TAO/tao/Collocated_Invocation.cpp
index 584414397cc..504f6c22abd 100644
--- a/TAO/tao/Collocated_Invocation.cpp
+++ b/TAO/tao/Collocated_Invocation.cpp
@@ -41,15 +41,33 @@ namespace TAO
ACE_TRY
{
- cpb->dispatch (this->effective_target (),
- this->forwarded_to_.out (),
- this->details_.args (),
- this->details_.args_num (),
- this->details_.opname (),
- this->details_.opname_len (),
- strat
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
+ if (strat == TAO_CS_THRU_POA_STRATEGY)
+ {
+ TAO_ServerRequest request (this->orb_core_,
+ this->details_,
+ this->effective_target_);
+
+ TAO_Request_Dispatcher * const dispatcher =
+ this->orb_core_->request_dispatcher ();
+
+ dispatcher->dispatch (this->orb_core_,
+ request,
+ this->forwarded_to_.out ());
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ else
+ {
+ cpb->dispatch (this->effective_target (),
+ this->forwarded_to_.out (),
+ this->details_.args (),
+ this->details_.args_num (),
+ this->details_.opname (),
+ this->details_.opname_len (),
+ strat
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
// Invocation completed succesfully
s = TAO_INVOKE_SUCCESS;
diff --git a/TAO/tao/Fixed_Array_Argument_T.h b/TAO/tao/Fixed_Array_Argument_T.h
index fed6ffa0c27..8cd7692b5fe 100644
--- a/TAO/tao/Fixed_Array_Argument_T.h
+++ b/TAO/tao/Fixed_Array_Argument_T.h
@@ -141,7 +141,7 @@ namespace TAO
struct Fixed_Array_Arg_Traits_T
{
typedef T_slice * ret_type;
- typedef const T in_type;
+ typedef T const in_type;
typedef T inout_type;
typedef T out_type;
@@ -160,6 +160,11 @@ namespace TAO
T_forany,
T_tag> ret_val;
+ typedef Const_Argument_T<T_slice const *> in_arg_base;
+ typedef Mutable_Argument_T<ret_type> inout_arg_base;
+ typedef Mutable_Argument_T<ret_type &> out_arg_base;
+ typedef Mutable_Argument_T<ret_type &> ret_base;
+
typedef Fixed_Array_Tag idl_tag;
};
}
diff --git a/TAO/tao/Fixed_Size_Argument_T.h b/TAO/tao/Fixed_Size_Argument_T.h
index 4462975f919..e8220a73d70 100644
--- a/TAO/tao/Fixed_Size_Argument_T.h
+++ b/TAO/tao/Fixed_Size_Argument_T.h
@@ -134,7 +134,7 @@ namespace TAO
struct Fixed_Size_Arg_Traits_T
{
typedef T ret_type;
- typedef const T & in_type;
+ typedef T const & in_type;
typedef T & inout_type;
typedef T & out_type;
@@ -143,6 +143,12 @@ namespace TAO
typedef Out_Fixed_Size_Argument_T<T> out_arg_val;
typedef Ret_Fixed_Size_Argument_T<T> ret_val;
+ typedef Const_Argument_T<in_type> in_arg_base;
+ typedef Mutable_Argument_T<inout_type> inout_arg_base;
+ typedef Mutable_Argument_T<out_type> out_arg_base;
+ typedef Mutable_Argument_T<ret_type> ret_base;
+
+
typedef Fixed_Size_Tag idl_tag;
};
}
diff --git a/TAO/tao/Object_Argument_T.h b/TAO/tao/Object_Argument_T.h
index 288bb323166..cb5233bc2b7 100644
--- a/TAO/tao/Object_Argument_T.h
+++ b/TAO/tao/Object_Argument_T.h
@@ -106,6 +106,9 @@ namespace TAO
class Ret_Object_Argument_T : public Mutable_Argument_T<S_ptr &>
{
public:
+
+ typedef base_type
+
Ret_Object_Argument_T (void);
virtual CORBA::Boolean demarshal (TAO_InputCDR &);
@@ -149,6 +152,11 @@ namespace TAO
typedef Out_Object_Argument_T<T_ptr,T_out> out_arg_val;
typedef Ret_Object_Argument_T<T_ptr,T_var> ret_val;
+ typedef Const_Argument_T<in_type> in_arg_base;
+ typedef Mutable_Argument_T<inout_type> inout_arg_base;
+ typedef Mutable_Argument_T<out_type> out_arg_base;
+ typedef Mutable_Argument_T<inout_type> ret_base;
+
typedef Object_Tag idl_tag;
};
}
diff --git a/TAO/tao/Object_Argument_T.inl b/TAO/tao/Object_Argument_T.inl
index c3db6b0ffdd..feb64a6af6e 100644
--- a/TAO/tao/Object_Argument_T.inl
+++ b/TAO/tao/Object_Argument_T.inl
@@ -1,3 +1,5 @@
+// -*- C++ -*-
+//
// $Id$
template<typename S_ptr>
diff --git a/TAO/tao/PortableServer/Object_Adapter.cpp b/TAO/tao/PortableServer/Object_Adapter.cpp
index 84c2ee6dffd..38c2df71662 100644
--- a/TAO/tao/PortableServer/Object_Adapter.cpp
+++ b/TAO/tao/PortableServer/Object_Adapter.cpp
@@ -827,10 +827,10 @@ TAO_Object_Adapter::create_collocated_object (TAO_Stub *stub,
// zero.
CORBA::Object_ptr x;
ACE_NEW_RETURN (x,
- CORBA::Object (stub,
- 1,
- sb),
- CORBA::Object::_nil ());
+ CORBA::Object (stub,
+ 1,
+ sb),
+ CORBA::Object::_nil ());
// Here we set the strategized Proxy Broker.
x->_proxy_broker (the_tao_collocated_object_proxy_broker ());
diff --git a/TAO/tao/PortableServer/Object_SArgument_T.h b/TAO/tao/PortableServer/Object_SArgument_T.h
index 6efa404e18a..e8deae93cce 100644
--- a/TAO/tao/PortableServer/Object_SArgument_T.h
+++ b/TAO/tao/PortableServer/Object_SArgument_T.h
@@ -118,12 +118,11 @@ namespace TAO
};
/**
- * @struct Basic_Arg_Traits_T
+ * @struct Object_SArg_Traits_T
*
* @brief Template class for skeleton argument traits of objects.
*
*/
-
template<typename T_ptr, typename T_var, typename T_out>
struct Object_SArg_Traits_T
{
diff --git a/TAO/tao/PortableServer/Operation_Table.cpp b/TAO/tao/PortableServer/Operation_Table.cpp
index bee2f5698e9..ac0828652ea 100644
--- a/TAO/tao/PortableServer/Operation_Table.cpp
+++ b/TAO/tao/PortableServer/Operation_Table.cpp
@@ -67,7 +67,7 @@ TAO_Dynamic_Hash_OpTable::TAO_Dynamic_Hash_OpTable (const TAO_operation_db_entry
{
// Iterate thru each entry in the database and bind the operation
// name to its corresponding skeleton.
- for (CORBA::ULong i = 0; i < dbsize; i++)
+ for (CORBA::ULong i = 0; i < dbsize; ++i)
{
TAO::Operation_Skeletons s;
s.skel_ptr_ = db[i].skel_ptr_;
diff --git a/TAO/tao/PortableServer/Servant_Base.h b/TAO/tao/PortableServer/Servant_Base.h
index fd5e912b736..1c9f555704f 100644
--- a/TAO/tao/PortableServer/Servant_Base.h
+++ b/TAO/tao/PortableServer/Servant_Base.h
@@ -71,9 +71,6 @@ public:
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
);
- /// Get the correct vtable.
- virtual void *_downcast (const char *repository_id) = 0;
-
/// This is an auxiliary method for _this() and _narrow().
virtual TAO_Stub *_create_stub (ACE_ENV_SINGLE_ARG_DECL);
diff --git a/TAO/tao/Special_Basic_Argument_T.h b/TAO/tao/Special_Basic_Argument_T.h
index 9b785e9a5a4..d131f4792ff 100644
--- a/TAO/tao/Special_Basic_Argument_T.h
+++ b/TAO/tao/Special_Basic_Argument_T.h
@@ -144,6 +144,11 @@ namespace TAO
typedef Out_Special_Basic_Argument_T<T,to_T,from_T> out_arg_val;
typedef Ret_Special_Basic_Argument_T<T,to_T,from_T> ret_val;
+ typedef Const_Argument_T<T const &> in_arg_base;
+ typedef Mutable_Argument_T<inout_type> inout_arg_base;
+ typedef Mutable_Argument_T<out_type> out_arg_base;
+ typedef Mutable_Argument_T<out_type> ret_base;
+
typedef Special_Basic_Tag idl_tag;
};
}
diff --git a/TAO/tao/UB_String_Argument_T.h b/TAO/tao/UB_String_Argument_T.h
index 0ad74fb1013..40542161c8d 100644
--- a/TAO/tao/UB_String_Argument_T.h
+++ b/TAO/tao/UB_String_Argument_T.h
@@ -133,7 +133,7 @@ namespace TAO
struct UB_String_Arg_Traits_T
{
typedef T * ret_type;
- typedef const T * in_type;
+ typedef T const * in_type;
typedef T *& inout_type;
typedef T_out out_type;
@@ -142,6 +142,12 @@ namespace TAO
typedef Out_UB_String_Argument_T<T,T_out> out_arg_val;
typedef Ret_UB_String_Argument_T<T,T_var> ret_val;
+ typedef Const_Argument_T<in_type> in_arg_base;
+ typedef Mutable_Argument_T<inout_type> inout_arg_base;
+ typedef Mutable_Argument_T<inout_type> out_arg_base;
+ typedef Mutable_Argument_T<inout_type> ret_base;
+
+
typedef UB_String_Tag idl_tag;
};
}
diff --git a/TAO/tao/Var_Array_Argument_T.h b/TAO/tao/Var_Array_Argument_T.h
index 7ee49b43b43..830be76d9f6 100644
--- a/TAO/tao/Var_Array_Argument_T.h
+++ b/TAO/tao/Var_Array_Argument_T.h
@@ -169,6 +169,11 @@ namespace TAO
T_forany,
T_tag> ret_val;
+ typedef Const_Argument_T<T_slice const *> in_arg_base;
+ typedef Mutable_Argument_T<ret_type> inout_arg_base;
+ typedef Mutable_Argument_T<ret_type &> out_arg_base;
+ typedef Mutable_Argument_T<ret_type &> ret_base;
+
typedef Var_Array_Tag idl_tag;
};
}
diff --git a/TAO/tao/Var_Size_Argument_T.h b/TAO/tao/Var_Size_Argument_T.h
index 3a18529446b..c16ae8c6fa4 100644
--- a/TAO/tao/Var_Size_Argument_T.h
+++ b/TAO/tao/Var_Size_Argument_T.h
@@ -134,7 +134,7 @@ namespace TAO
struct Var_Size_Arg_Traits_T
{
typedef T * ret_type;
- typedef const T & in_type;
+ typedef T const & in_type;
typedef T & inout_type;
typedef T_out out_type;
@@ -143,6 +143,12 @@ namespace TAO
typedef Out_Var_Size_Argument_T<T,T_out> out_arg_val;
typedef Ret_Var_Size_Argument_T<T,T_var> ret_val;
+ typedef Const_Argument_T<in_type> in_arg_base;
+ typedef Mutable_Argument_T<inout_type> inout_arg_base;
+ typedef Mutable_Argument_T<ret_type &> out_arg_base;
+ typedef Mutable_Argument_T<ret_type &> ret_base;
+
+
typedef Var_Size_Tag idl_tag;
};
}