diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2005-02-19 09:58:15 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2005-02-19 09:58:15 +0000 |
commit | 6424cf9c36163f3d7fef7b2535d5fab836100269 (patch) | |
tree | 59850c0891991dcc8ac0ca9da20f4a4db1380045 | |
parent | d9bf06f7b261d264ec8ab2661e28ce2f73703bab (diff) | |
download | ATCD-6424cf9c36163f3d7fef7b2535d5fab836100269.tar.gz |
*** empty log message ***
35 files changed, 140 insertions, 118 deletions
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index 1a3c22e09eb..efe40dcd247 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -1630,6 +1630,8 @@ TAO_CodeGen::gen_skel_src_includes (void) this->gen_standard_include (this->server_skeletons_, "tao/CDR.h"); this->gen_standard_include (this->server_skeletons_, + "tao/operation_details.h"); + this->gen_standard_include (this->server_skeletons_, "tao/PortableInterceptor.h"); if (be_global->gen_thru_poa_collocation () @@ -1857,14 +1859,20 @@ TAO_CodeGen::gen_skel_arg_file_includes (TAO_OutStream * stream) stream ); + // Always needed for CORBA::Object handling in _component() skeleton + // code when an unconstrained (non-local) IDL interface is defined. this->gen_cond_file_include ( - idl_global->object_arg_seen_, + idl_global->non_local_iface_seen_ + || idl_global->object_arg_seen_, "tao/PortableServer/Object_SArgument_T.h", stream ); + // Always needed for CORBA::Boolean handling in _is_a() skeleton + // code when an unconstrained (non-local) IDL interface is defined. this->gen_cond_file_include ( - idl_global->special_basic_arg_seen_, + idl_global->non_local_iface_seen_ + || idl_global->special_basic_arg_seen_, "tao/PortableServer/Special_Basic_SArguments.h", stream ); diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index cf151778c3a..38dafd47c5d 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -1744,7 +1744,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name) " " "-a -o -t -p -K" " " - "opname_ -L C++" + "opname -L C++" " " "-Z TAO_%s_Perfect_Hash_OpTable" " " @@ -1767,7 +1767,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name) " " "-a -o -t -p -K" " " - "opname_ -L C++" + "opname -L C++" " " "-Z TAO_%s_Binary_Search_OpTable" " " @@ -1790,7 +1790,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name) " " "-a -o -t -p -K" " " - "opname_ -L C++" + "opname -L C++" " " "-Z TAO_%s_Linear_Search_OpTable" " " 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 a78dfe51113..23e6290a59b 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp @@ -136,14 +136,15 @@ be_visitor_amh_interface_ss::dispatch_method (be_interface *node) *os << "void" << be_nl << full_skel_name << "::_dispatch (" << be_idt << be_idt_nl - << "TAO_ServerRequest &req," << be_nl - << "void *context" << be_nl + << "TAO_ServerRequest & req," << be_nl + << "void * context" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl << "this->asynchronous_upcall_dispatch (" << be_idt << be_idt_nl << "req," << be_nl - << "context" << be_nl + << "context," << be_nl + << "this" << be_nl << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl << ");" << be_uidt << be_uidt_nl << "}"; 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 dacf98b1613..f70d2e88783 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp @@ -181,40 +181,40 @@ be_visitor_interface_sh::visit_interface (be_interface *node) // Add a skeleton for our _is_a method. *os << "static void _is_a_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest &req," << be_nl - << "void *servant," << be_nl - << "void *servant_upcall" << be_nl + << "TAO_ServerRequest & req," << be_nl + << "void * servant_upcall," << be_nl + << "void * servant" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _non_existent method. *os << "static void _non_existent_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest &req," << be_nl - << "void *servant," << be_nl - << "void *servant_upcall" << be_nl + << "TAO_ServerRequest & req," << be_nl + << "void * servant_upcall," << be_nl + << "void * servant" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _interface method. *os << "static void _interface_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest &req," << be_nl - << "void *servant," << be_nl - << "void *servant_upcall" << be_nl + << "TAO_ServerRequest & req," << be_nl + << "void * servant_upcall," << be_nl + << "void * servant" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add a skeleton for our _component method. *os << "static void _component_skel (" << be_idt << be_idt_nl - << "TAO_ServerRequest &req," << be_nl - << "void *obj," << be_nl - << "void *servant_upcall" << be_nl + << "TAO_ServerRequest & req," << be_nl + << "void * servant_upcall," << be_nl + << "void * servant" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");" << be_uidt_nl << be_nl; // Add the dispatch method. *os << "virtual void _dispatch (" << be_idt << be_idt_nl - << "TAO_ServerRequest &req," << be_nl - << "void *_servant_upcall" << be_nl + << "TAO_ServerRequest & req," << be_nl + << "void * servant_upcall" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");" << be_uidt_nl << be_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 6ee9f6854cf..4cbe5f9191f 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp @@ -254,7 +254,8 @@ be_visitor_interface_ss::visit_interface (be_interface *node) << "void " << full_skel_name << "::_interface_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & server_request, " << be_nl - << "void * servant_upcall" << be_nl + << "void * servant_upcall," << be_nl + << "void * servant" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl; *os << "{" << be_idt_nl; @@ -272,10 +273,8 @@ be_visitor_interface_ss::visit_interface (be_interface *node) // Get the right object implementation. *os << node->full_skel_name () << " * const impl =" << be_idt_nl << "static_cast<" << be_idt_nl - << node->full_skel_name () << " *> (" << be_idt_nl - << "static_cast<TAO_Object_Adapter::Servant_Upcall *> (" << be_idt_nl - << "servant_upcall)->servant ()" << be_uidt_nl - << ");" << be_uidt << be_uidt << be_uidt_nl << be_nl; + << node->full_skel_name () << " *> (servant);" << be_uidt + << be_uidt_nl; *os << "CORBA::InterfaceDef_ptr _tao_retval = " << be_idt_nl << "impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER);" @@ -312,7 +311,8 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << "void " << full_skel_name << "::_component_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & server_request, " << be_nl - << "void * servant_upcall" << be_nl + << "void * servant_upcall," << be_nl + << "void * servant" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl; *os << "{" << be_idt_nl; @@ -362,10 +362,8 @@ be_visitor_interface_ss::visit_interface (be_interface *node) // Get the right object implementation. *os << node->full_skel_name () << " * const impl =" << be_idt_nl << "static_cast<" << be_idt_nl - << node->full_skel_name () << " *> (" << be_idt_nl - << "static_cast<TAO_Object_Adapter::Servant_Upcall *> (" << be_idt_nl - << "servant_upcall)->servant ()" << be_uidt_nl - << ");" << be_uidt << be_uidt << be_uidt_nl << be_nl; + << node->full_skel_name () << " *> (servant);" << be_uidt + << be_uidt_nl; // Upcall_Command instantiation. *os << be_nl @@ -375,11 +373,11 @@ be_visitor_interface_ss::visit_interface (be_interface *node) if (!get_component.void_return_type () || get_component.argument_count () > 0) { - // server_request.operations_details () will be non-zero in the + // server_request.operation_details () will be non-zero in the // thru-POA collocation case. Use them if available. *os << "," << be_nl - << "server_request.operations_details ()" << be_nl - << "? server_request.operations_details ()->args ()" << be_nl + << "server_request.operation_details ()" << be_nl + << "? server_request.operation_details ()->args ()" << be_nl << ": args"; } @@ -624,13 +622,14 @@ be_visitor_interface_ss::dispatch_method (be_interface *node) *os << "void " << node->full_skel_name () << "::_dispatch (" << be_idt << be_idt_nl - << "TAO_ServerRequest &req," << be_nl - << "void *servant_upcall" << be_nl + << "TAO_ServerRequest & req," << be_nl + << "void * servant_upcall" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl; *os << "{" << be_idt_nl; *os << "this->synchronous_upcall_dispatch (req," << be_nl - << " servant_upcall" << be_nl + << " servant_upcall," << be_nl + << " this" << be_nl << " ACE_ENV_ARG_PARAMETER);" << be_uidt_nl; *os << "}"; diff --git a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp index ae3a5c74ed2..4f8940af448 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp @@ -100,6 +100,9 @@ be_visitor_interface_strategized_proxy_broker_ss::visit_interface ( // << "->servant_orb_var ()->orb_core ()" // << be_uidt_nl // << ");" << be_uidt_nl << be_nl + << "TAO_Abstract_ServantBase * const servant =" + << " obj->_servant ();" << be_nl + << be_nl << "TAO_Collocated_Skeleton collocated_skel;" << be_nl << "int const status = servant->_find (op," << be_nl << " collocated_skel," << be_nl @@ -110,9 +113,6 @@ be_visitor_interface_strategized_proxy_broker_ss::visit_interface ( << "ACE_THROW (CORBA::BAD_OPERATION (CORBA::OMGVMCID | 2, " << "CORBA::COMPLETED_NO));" << be_uidt_nl << "}" << be_uidt_nl << be_nl - << "TAO_Abstract_ServantBase * const servant =" - << " obj->_servant ();" << be_nl - << be_nl << "ACE_TRY" << be_idt_nl << "{" << be_idt_nl << "collocated_skel (servant," << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp index e78586da164..36fbf8cfaae 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp @@ -47,7 +47,7 @@ be_visitor_operation_exceptlist_ss::visit_operation (be_operation * node) // Don't do anything if the exception list is empty. if (node->exceptions ()) { - *os << "static CORBA::TypeCode_ptr const _tao_exceptions[] = " << be_idt_nl; + *os << "static CORBA::TypeCode_ptr const exceptions[] = " << be_idt_nl; *os << "{" << be_idt_nl; // Initialize an iterator to iterate thru the exception list. @@ -69,14 +69,14 @@ be_visitor_operation_exceptlist_ss::visit_operation (be_operation * node) } *os << be_uidt_nl << "};" << be_uidt_nl - << "static size_t const _tao_nexceptions = " + << "static size_t const nexceptions = " << node->exceptions()->length () << ";"; } else { - *os << "static CORBA::TypeCode_ptr const _tao_exceptions[] = {};" + *os << "static CORBA::TypeCode_ptr const exceptions[] = {};" << be_nl - << "static size_t const _tao_nexceptions = 0;"; + << "static size_t const nexceptions = 0;"; } *os << "\n#endif /* TAO_HAS_INTERCEPTORS */" << be_nl << be_nl; diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp index 34412bd5c76..32530788656 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp @@ -112,7 +112,8 @@ be_visitor_operation_sh::visit_operation (be_operation *node) *os << node->local_name () << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall" << be_nl + << "void * servant_upcall," << be_nl + << "void * servant"<< be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");" << be_uidt; } diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp index e0a6963d53b..85e715fee8e 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp @@ -183,7 +183,8 @@ be_visitor_operation_ss::gen_skel_operation_body (be_operation * node, *os << node->local_name () << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest & server_request," << be_nl - << "void * servant_upcall" << be_nl + << "void * servant_upcall," << be_nl + << "void * servant" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl; @@ -245,10 +246,7 @@ be_visitor_operation_ss::gen_skel_operation_body (be_operation * node, // Get the right object implementation. *os << intf->full_skel_name () << " * const impl =" << be_idt_nl << "static_cast<" << be_idt_nl - << intf->full_skel_name () << " *> (" << be_idt_nl - << "static_cast<TAO_Object_Adapter::Servant_Upcall *> (" << be_idt_nl - << "servant_upcall)->servant ()" << be_uidt_nl - << ");" << be_uidt << be_uidt << be_uidt_nl << be_nl; + << intf->full_skel_name () << " *> (servant);" << be_uidt << be_uidt_nl; // Upcall_Command instantiation. *os << be_nl @@ -257,11 +255,11 @@ be_visitor_operation_ss::gen_skel_operation_body (be_operation * node, if (!node->void_return_type () || node->argument_count () > 0) { - // server_request.operations_details () will be non-zero in the + // server_request.operation_details () will be non-zero in the // thru-POA collocation case. Use them if available. *os << "," << be_nl - << "server_request.operations_details ()" << be_nl - << "? server_request.operations_details ()->args ()" << be_nl + << "server_request.operation_details ()" << be_nl + << "? server_request.operation_details ()->args ()" << be_nl << ": args"; } 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 0ce4e531854..e948c012ca4 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,7 +109,7 @@ be_visitor_operation_upcall_command_ss::visit_operation (be_operation * node) if (!node->void_return_type ()) { - os << "static_cast<TAO::Arg_Traits< "; + os << "static_cast<TAO::SArg_Traits< "; this->gen_arg_template_param_name (node, node->return_type (), @@ -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::Arg_Traits< "; + << "static_cast<TAO::SArg_Traits< "; this->gen_arg_template_param_name (arg, arg->field_type (), diff --git a/TAO/tao/Abstract_Servant_Base.h b/TAO/tao/Abstract_Servant_Base.h index 1b7e5613129..d58be951cc0 100644 --- a/TAO/tao/Abstract_Servant_Base.h +++ b/TAO/tao/Abstract_Servant_Base.h @@ -56,6 +56,7 @@ namespace TAO typedef void (*TAO_Skeleton)( TAO_ServerRequest &, + void *, void * #if !defined (TAO_HAS_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT) , CORBA::Environment & diff --git a/TAO/tao/BD_String_Argument_T.h b/TAO/tao/BD_String_Argument_T.h index cb4a0074895..6c8265c6694 100644 --- a/TAO/tao/BD_String_Argument_T.h +++ b/TAO/tao/BD_String_Argument_T.h @@ -178,12 +178,6 @@ 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 e004a85d2e3..ad03c589294 100644 --- a/TAO/tao/Basic_Argument_T.h +++ b/TAO/tao/Basic_Argument_T.h @@ -143,12 +143,6 @@ 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/Fixed_Array_Argument_T.h b/TAO/tao/Fixed_Array_Argument_T.h index 8cd7692b5fe..1797fa10c96 100644 --- a/TAO/tao/Fixed_Array_Argument_T.h +++ b/TAO/tao/Fixed_Array_Argument_T.h @@ -160,11 +160,6 @@ 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 e8220a73d70..fb0db9eb3d1 100644 --- a/TAO/tao/Fixed_Size_Argument_T.h +++ b/TAO/tao/Fixed_Size_Argument_T.h @@ -143,12 +143,6 @@ 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 9f0f3139e48..15d63cafa4d 100644 --- a/TAO/tao/Object_Argument_T.h +++ b/TAO/tao/Object_Argument_T.h @@ -150,11 +150,6 @@ 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/PortableServer/BD_String_SArgument_T.h b/TAO/tao/PortableServer/BD_String_SArgument_T.h index 55921455d44..8b8fdf8d33f 100644 --- a/TAO/tao/PortableServer/BD_String_SArgument_T.h +++ b/TAO/tao/PortableServer/BD_String_SArgument_T.h @@ -172,6 +172,12 @@ namespace TAO to_T, 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; + }; /** diff --git a/TAO/tao/PortableServer/Basic_SArgument_T.h b/TAO/tao/PortableServer/Basic_SArgument_T.h index 6f95e84b8b9..c10f61ec8ee 100644 --- a/TAO/tao/PortableServer/Basic_SArgument_T.h +++ b/TAO/tao/PortableServer/Basic_SArgument_T.h @@ -40,7 +40,7 @@ namespace TAO #if TAO_HAS_INTERCEPTORS == 1 virtual void interceptor_param (Dynamic::Parameter &); #endif /* TAO_HAS_INTERCEPTORS == 1 */ - S arg (void) const; + virtual S arg (void) const; private: S x_; @@ -63,7 +63,7 @@ namespace TAO #if TAO_HAS_INTERCEPTORS == 1 virtual void interceptor_param (Dynamic::Parameter &); #endif /* TAO_HAS_INTERCEPTORS == 1 */ - S & arg (void); + virtual S & arg (void); private: S x_; @@ -85,7 +85,7 @@ namespace TAO #if TAO_HAS_INTERCEPTORS == 1 virtual void interceptor_param (Dynamic::Parameter &); #endif /* TAO_HAS_INTERCEPTORS == 1 */ - S & arg (void); + virtual S & arg (void); private: S x_; @@ -107,7 +107,7 @@ namespace TAO #if TAO_HAS_INTERCEPTORS == 1 virtual void interceptor_result (CORBA::Any *); #endif /* TAO_HAS_INTERCEPTORS == 1 */ - S & arg (void); + virtual S & arg (void); private: S x_; @@ -131,6 +131,12 @@ namespace TAO typedef Inout_Basic_SArgument_T<T> inout_arg_val; typedef Out_Basic_SArgument_T<T> out_arg_val; typedef Ret_Basic_SArgument_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; + }; }; diff --git a/TAO/tao/PortableServer/Basic_SArgument_T.inl b/TAO/tao/PortableServer/Basic_SArgument_T.inl index 0958abeed27..2bbaba955ab 100644 --- a/TAO/tao/PortableServer/Basic_SArgument_T.inl +++ b/TAO/tao/PortableServer/Basic_SArgument_T.inl @@ -1,3 +1,5 @@ +// -*- C++ -*- +// // $Id$ template<typename S> diff --git a/TAO/tao/PortableServer/Fixed_Array_SArgument_T.h b/TAO/tao/PortableServer/Fixed_Array_SArgument_T.h index 1951742395c..1097f1639ba 100644 --- a/TAO/tao/PortableServer/Fixed_Array_SArgument_T.h +++ b/TAO/tao/PortableServer/Fixed_Array_SArgument_T.h @@ -136,6 +136,12 @@ namespace TAO typedef Ret_Fixed_Array_SArgument_T<T_slice, T_var, T_forany> 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; + }; }; diff --git a/TAO/tao/PortableServer/Fixed_Size_SArgument_T.h b/TAO/tao/PortableServer/Fixed_Size_SArgument_T.h index 3977d4110da..a70b595df7a 100644 --- a/TAO/tao/PortableServer/Fixed_Size_SArgument_T.h +++ b/TAO/tao/PortableServer/Fixed_Size_SArgument_T.h @@ -203,6 +203,12 @@ namespace TAO typedef Inout_Fixed_Size_SArgument_T<T> inout_arg_val; typedef Out_Fixed_Size_SArgument_T<T> out_arg_val; typedef Ret_Fixed_Size_SArgument_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; + }; } diff --git a/TAO/tao/PortableServer/Object_SArgument_T.h b/TAO/tao/PortableServer/Object_SArgument_T.h index e8deae93cce..23d1e920bfd 100644 --- a/TAO/tao/PortableServer/Object_SArgument_T.h +++ b/TAO/tao/PortableServer/Object_SArgument_T.h @@ -135,6 +135,12 @@ namespace TAO typedef Inout_Object_SArgument_T<T_ptr,T_var> inout_arg_val; typedef Out_Object_SArgument_T<T_ptr,T_var,T_out> out_arg_val; typedef Ret_Object_SArgument_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; + }; } diff --git a/TAO/tao/PortableServer/Operation_Table.h b/TAO/tao/PortableServer/Operation_Table.h index 40e13d5e63a..e98f1e3d4c4 100644 --- a/TAO/tao/PortableServer/Operation_Table.h +++ b/TAO/tao/PortableServer/Operation_Table.h @@ -38,6 +38,7 @@ namespace CORBA typedef void (*TAO_Skeleton)( TAO_ServerRequest &, + void *, void * #if !defined (TAO_HAS_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT) , CORBA::Environment & diff --git a/TAO/tao/PortableServer/Servant_Base.cpp b/TAO/tao/PortableServer/Servant_Base.cpp index 3e1448bf165..673c8efd4d1 100644 --- a/TAO/tao/PortableServer/Servant_Base.cpp +++ b/TAO/tao/PortableServer/Servant_Base.cpp @@ -253,8 +253,9 @@ void TAO_ServantBase::synchronous_upcall_dispatch (TAO_ServerRequest &req, return; } -void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest &req, - void *servant_upcall +void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest & req, + void * servant_upcall, + void * derived_this ACE_ENV_ARG_DECL) { TAO_Skeleton skel; @@ -285,7 +286,8 @@ void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest &req, // results. De/marshaling will only occur in the uncollocated // case. skel (req, - servant_upcall + servant_upcall, + derived_this ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; diff --git a/TAO/tao/PortableServer/Servant_Base.h b/TAO/tao/PortableServer/Servant_Base.h index ef84a6f9850..9d77ad6186e 100644 --- a/TAO/tao/PortableServer/Servant_Base.h +++ b/TAO/tao/PortableServer/Servant_Base.h @@ -110,12 +110,14 @@ protected: /// Assignment operator. TAO_ServantBase &operator= (const TAO_ServantBase &); - virtual void synchronous_upcall_dispatch (TAO_ServerRequest &req, - void *servant_upcall + virtual void synchronous_upcall_dispatch (TAO_ServerRequest & req, + void * servant_upcall, + void * derived_this ACE_ENV_ARG_DECL); - virtual void asynchronous_upcall_dispatch (TAO_ServerRequest &req, - void *servant_upcall + virtual void asynchronous_upcall_dispatch (TAO_ServerRequest & req, + void * servant_upcall, + void * derived_this ACE_ENV_ARG_DECL); protected: diff --git a/TAO/tao/PortableServer/Special_Basic_SArgument_T.h b/TAO/tao/PortableServer/Special_Basic_SArgument_T.h index 260cde28892..fb3916fa1da 100644 --- a/TAO/tao/PortableServer/Special_Basic_SArgument_T.h +++ b/TAO/tao/PortableServer/Special_Basic_SArgument_T.h @@ -132,6 +132,12 @@ namespace TAO typedef Inout_Special_Basic_SArgument_T<T,to_T,from_T> inout_arg_val; typedef Out_Special_Basic_SArgument_T<T,to_T,from_T> out_arg_val; typedef Ret_Special_Basic_SArgument_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; + }; }; diff --git a/TAO/tao/PortableServer/Special_Basic_SArgument_T.inl b/TAO/tao/PortableServer/Special_Basic_SArgument_T.inl index f6a161f7d09..a0fd902d4fd 100644 --- a/TAO/tao/PortableServer/Special_Basic_SArgument_T.inl +++ b/TAO/tao/PortableServer/Special_Basic_SArgument_T.inl @@ -1,3 +1,5 @@ +// -*- C++ -*- +// // $Id$ template<typename S, typename to_S, typename from_S> @@ -8,7 +10,7 @@ In_Special_Basic_SArgument_T (void) template<typename S, typename to_S, typename from_S> ACE_INLINE -S +S const & TAO::In_Special_Basic_SArgument_T<S,to_S,from_S>::arg (void) const { return this->x_; diff --git a/TAO/tao/PortableServer/UB_String_SArgument_T.h b/TAO/tao/PortableServer/UB_String_SArgument_T.h index 4a4f876a262..3d4baf07599 100644 --- a/TAO/tao/PortableServer/UB_String_SArgument_T.h +++ b/TAO/tao/PortableServer/UB_String_SArgument_T.h @@ -130,6 +130,12 @@ namespace TAO typedef Inout_UB_String_SArgument_T<T,T_var> inout_arg_val; typedef Out_UB_String_SArgument_T<T,T_var> out_arg_val; typedef Ret_UB_String_SArgument_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; + }; }; diff --git a/TAO/tao/PortableServer/Var_Array_SArgument_T.h b/TAO/tao/PortableServer/Var_Array_SArgument_T.h index 628d3229b45..7c560c08d59 100644 --- a/TAO/tao/PortableServer/Var_Array_SArgument_T.h +++ b/TAO/tao/PortableServer/Var_Array_SArgument_T.h @@ -138,6 +138,12 @@ namespace TAO typedef Ret_Var_Array_SArgument_T<T_slice, T_var, T_forany> 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; + }; }; diff --git a/TAO/tao/PortableServer/Var_Size_SArgument_T.h b/TAO/tao/PortableServer/Var_Size_SArgument_T.h index c385fa4b521..7eb015fb692 100644 --- a/TAO/tao/PortableServer/Var_Size_SArgument_T.h +++ b/TAO/tao/PortableServer/Var_Size_SArgument_T.h @@ -129,6 +129,12 @@ namespace TAO typedef Inout_Var_Size_SArgument_T<T> inout_arg_val; typedef Out_Var_Size_SArgument_T<T,T_var> out_arg_val; typedef Ret_Var_Size_SArgument_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; + }; } diff --git a/TAO/tao/Special_Basic_Argument_T.h b/TAO/tao/Special_Basic_Argument_T.h index d131f4792ff..9b785e9a5a4 100644 --- a/TAO/tao/Special_Basic_Argument_T.h +++ b/TAO/tao/Special_Basic_Argument_T.h @@ -144,11 +144,6 @@ 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/TAO_Server_Request.h b/TAO/tao/TAO_Server_Request.h index 5b4f6304514..f878aad1591 100644 --- a/TAO/tao/TAO_Server_Request.h +++ b/TAO/tao/TAO_Server_Request.h @@ -211,6 +211,7 @@ public: /// Set the member. void dsi_nvlist_align (ptrdiff_t alignment); + // Get the operation details for the current request. TAO_Operation_Details const * operation_details (void) const; /// Get/Set operations for the argument_flag diff --git a/TAO/tao/UB_String_Argument_T.h b/TAO/tao/UB_String_Argument_T.h index 40542161c8d..efd429fd2fa 100644 --- a/TAO/tao/UB_String_Argument_T.h +++ b/TAO/tao/UB_String_Argument_T.h @@ -142,12 +142,6 @@ 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 830be76d9f6..7ee49b43b43 100644 --- a/TAO/tao/Var_Array_Argument_T.h +++ b/TAO/tao/Var_Array_Argument_T.h @@ -169,11 +169,6 @@ 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 c16ae8c6fa4..e0d34c7c442 100644 --- a/TAO/tao/Var_Size_Argument_T.h +++ b/TAO/tao/Var_Size_Argument_T.h @@ -143,12 +143,6 @@ 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; }; } |