diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2005-02-18 11:07:30 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2005-02-18 11:07:30 +0000 |
commit | 6e498a3e574a65e6e959e9778482c551fff2884b (patch) | |
tree | b8980447bbbeda409a9eed68ab9f2286b93b45ae | |
parent | d6c155b75bd190af9d90324921ed9197a1aab013 (diff) | |
download | ATCD-6e498a3e574a65e6e959e9778482c551fff2884b.tar.gz |
*** empty log message ***
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; }; } |