summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2005-02-19 09:58:15 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2005-02-19 09:58:15 +0000
commit6424cf9c36163f3d7fef7b2535d5fab836100269 (patch)
tree59850c0891991dcc8ac0ca9da20f4a4db1380045
parentd9bf06f7b261d264ec8ab2661e28ce2f73703bab (diff)
downloadATCD-6424cf9c36163f3d7fef7b2535d5fab836100269.tar.gz
*** empty log message ***
-rw-r--r--TAO/TAO_IDL/be/be_codegen.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp28
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp31
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/exceptlist_ss.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp14
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp4
-rw-r--r--TAO/tao/Abstract_Servant_Base.h1
-rw-r--r--TAO/tao/BD_String_Argument_T.h6
-rw-r--r--TAO/tao/Basic_Argument_T.h6
-rw-r--r--TAO/tao/Fixed_Array_Argument_T.h5
-rw-r--r--TAO/tao/Fixed_Size_Argument_T.h6
-rw-r--r--TAO/tao/Object_Argument_T.h5
-rw-r--r--TAO/tao/PortableServer/BD_String_SArgument_T.h6
-rw-r--r--TAO/tao/PortableServer/Basic_SArgument_T.h14
-rw-r--r--TAO/tao/PortableServer/Basic_SArgument_T.inl2
-rw-r--r--TAO/tao/PortableServer/Fixed_Array_SArgument_T.h6
-rw-r--r--TAO/tao/PortableServer/Fixed_Size_SArgument_T.h6
-rw-r--r--TAO/tao/PortableServer/Object_SArgument_T.h6
-rw-r--r--TAO/tao/PortableServer/Operation_Table.h1
-rw-r--r--TAO/tao/PortableServer/Servant_Base.cpp8
-rw-r--r--TAO/tao/PortableServer/Servant_Base.h10
-rw-r--r--TAO/tao/PortableServer/Special_Basic_SArgument_T.h6
-rw-r--r--TAO/tao/PortableServer/Special_Basic_SArgument_T.inl4
-rw-r--r--TAO/tao/PortableServer/UB_String_SArgument_T.h6
-rw-r--r--TAO/tao/PortableServer/Var_Array_SArgument_T.h6
-rw-r--r--TAO/tao/PortableServer/Var_Size_SArgument_T.h6
-rw-r--r--TAO/tao/Special_Basic_Argument_T.h5
-rw-r--r--TAO/tao/TAO_Server_Request.h1
-rw-r--r--TAO/tao/UB_String_Argument_T.h6
-rw-r--r--TAO/tao/Var_Array_Argument_T.h5
-rw-r--r--TAO/tao/Var_Size_Argument_T.h6
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;
};
}