diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2002-05-15 22:46:00 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2002-05-15 22:46:00 +0000 |
commit | bb47c0364d38ffeeaf2114b56518985aae01a3d9 (patch) | |
tree | d5e0d6bb1ed0e39a85b694dabe11e0ecb36190f3 | |
parent | ca357f7f35c4badc3e173884401a3d44d58ec96f (diff) | |
download | ATCD-bb47c0364d38ffeeaf2114b56518985aae01a3d9.tar.gz |
ChangeLogTag:Wed May 15 15:44:54 2002 Ossama Othman <ossama@uci.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 24 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp | 6 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp | 12 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp | 2 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp | 32 |
5 files changed, 61 insertions, 15 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 3ffeacf7050..4f108ee6218 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,27 @@ +Wed May 15 15:44:54 2002 Ossama Othman <ossama@uci.edu> + + * TAO_IDL/be/be_visitor_interface/interface_sh.cpp + (visit_interface): + * TAO_IDL/be/be_visitor_interface/interface_ss.cpp + (visit_interface): + * TAO_IDL/be/be_visitor_operation/operation_sh.cpp + (visit_operation): + * TAO_IDL/be/be_visitor_operation/operation_ss.cpp + (visit_operation): + + Clarified one of the "_skel" method parameter names. A pointer + to a servant is passed in, not an object reference. Renamed + "_tao_object_reference" to "_tao_servant." + + From Eric Malenfant <EMalenfant@interstarinc.com>: + * TAO_IDL/be/be_visitor_operation/operation_ss.cpp + (visit_operation): + + Fixed generated skeleton code so that the upcall is not made if + the ServerRequestInterceptor::receive_request() interception + point caused a location forward to occur + (i.e. PortableInterceptor::ForwardRequest was thrown). + Wed May 15 15:20:15 2002 Jeff Parsons <parsons@cs.wustl.edu> * orbsvcs/orbsvcs/IFRService/ConstantDef_i.cpp: 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 bbb32209225..a011fd31ded 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp @@ -156,7 +156,7 @@ 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 *obj," << be_nl + << "void *servant," << be_nl << "void *servant_upcall" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");\n" << be_uidt_nl; @@ -164,7 +164,7 @@ be_visitor_interface_sh::visit_interface (be_interface *node) // 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 *obj," << be_nl + << "void *servant," << be_nl << "void *servant_upcall" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");\n" << be_uidt_nl; @@ -172,7 +172,7 @@ be_visitor_interface_sh::visit_interface (be_interface *node) // Add a skeleton for our _interface method. *os << "static void _interface_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &req," << be_nl - << "void *obj," << be_nl + << "void *servant," << be_nl << "void *servant_upcall" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");\n" << be_uidt_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 8686a4bf0ac..0278ab39ae4 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp @@ -164,14 +164,14 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << "void " << full_skel_name << "::_is_a_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &_tao_server_request, " << be_nl - << "void * _tao_object_reference," << be_nl + << "void * _tao_servant," << be_nl << "void * /* Servant_Upcall */" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl; *os << "{" << be_idt_nl; *os << "TAO_InputCDR &_tao_in = _tao_server_request.incoming ();" << be_nl; *os << full_skel_name << " *_tao_impl = (" - << full_skel_name << " *) _tao_object_reference;" << be_nl; + << full_skel_name << " *) _tao_servant;" << be_nl; *os << "CORBA::Boolean _tao_retval = 0;" << be_nl; *os << "CORBA::String_var value;" << be_nl; *os << "if (!(_tao_in >> value.out ()))" << be_idt_nl; @@ -210,13 +210,13 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << "void " << full_skel_name << "::_non_existent_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &_tao_server_request, " << be_nl - << "void * _tao_object_reference," << be_nl + << "void * _tao_servant," << be_nl << "void * /* Servant_Upcall */" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl; *os << "{" << be_idt_nl; *os << full_skel_name << " *_tao_impl = (" - << full_skel_name << " *) _tao_object_reference;" << be_nl; + << full_skel_name << " *) _tao_servant;" << be_nl; *os << "CORBA::Boolean _tao_retval =" << be_idt_nl << "_tao_impl->_non_existent (ACE_ENV_SINGLE_ARG_PARAMETER);" << be_uidt_nl; @@ -237,13 +237,13 @@ be_visitor_interface_ss::visit_interface (be_interface *node) *os << "void " << full_skel_name << "::_interface_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &_tao_server_request, " << be_nl - << "void * _tao_object_reference," << be_nl + << "void * _tao_servant," << be_nl << "void * /* Servant_Upcall */" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl; *os << "{" << be_idt_nl; *os << full_skel_name << " *_tao_impl = (" - << full_skel_name << " *) _tao_object_reference;" << be_nl + << full_skel_name << " *) _tao_servant;" << be_nl << "CORBA_InterfaceDef_ptr _tao_retval = 0;" << be_nl << "CORBA::Boolean _tao_result = 0;" << be_nl << be_nl; *os << "TAO_IFR_Client_Adapter *_tao_adapter =" << be_idt_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 096fc8a6633..41ebae411c1 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp @@ -136,7 +136,7 @@ be_visitor_operation_sh::visit_operation (be_operation *node) *os << node->local_name () << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &_tao_req," << be_nl - << "void *_tao_obj," << be_nl + << "void *_tao_servant," << be_nl << "void *_tao_servant_upcall" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ");" << be_uidt << "\n\n"; 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 af39de154e1..d5420b63ba6 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp @@ -125,7 +125,7 @@ be_visitor_operation_ss::visit_operation (be_operation *node) *os << node->local_name () << "_skel (" << be_idt << be_idt_nl << "TAO_ServerRequest &_tao_server_request," << be_nl - << "void *_tao_object_reference," << be_nl + << "void *_tao_servant," << be_nl << "void *_tao_servant_upcall" << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl << ")" << be_uidt_nl; @@ -151,7 +151,7 @@ be_visitor_operation_ss::visit_operation (be_operation *node) *os << intf->full_skel_name () << " *_tao_impl =" << be_idt_nl << "ACE_static_cast (" << be_idt << be_idt_nl << intf->full_skel_name () << " *," << be_nl - << "_tao_object_reference" << be_uidt_nl + << "_tao_servant" << be_uidt_nl << ");" << be_uidt << be_uidt_nl; // Declare a return type variable. @@ -298,6 +298,12 @@ be_visitor_operation_ss::visit_operation (be_operation *node) *os << "_tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER);" << be_nl << "ACE_TRY_CHECK;" << be_nl; + // Check if a PortableInterceptor::ForwardRequest was raised by + // ServerRequestInterceptor::receive_request(). + *os << be_nl + << "if (!_tao_vfr.location_forwarded ())" << be_idt_nl + << "{" << be_idt_nl; + *os << "\n#endif /* TAO_HAS_INTERCEPTORS */\n"; // Make the upcall and assign to the return val. @@ -356,9 +362,21 @@ be_visitor_operation_ss::visit_operation (be_operation *node) // check for exception. *os << "\n#if (TAO_HAS_INTERCEPTORS == 1)" << be_nl; - *os << be_uidt + // Close scope for "if (!_tao_vfr.location_forwarded ()" + *os << be_uidt_nl + << "}" << be_uidt_nl; + + // Close the TAO_PICurrent_Guard scope + *os << be_uidt_nl << "}" << be_nl << be_nl; + // Set reply status only if no PortableInterceptor::ForwardRequest + // was raised by ServerRequestInterceptor::receive_request(). We + // have to make this check a second time because the scope of the + // first check overlaps with the scope of TAO_PICurrent_Guard. + *os << "if (!_tao_vfr.location_forwarded ())" << be_idt_nl + << "{" << be_idt_nl; + // Grab the right visitor to generate the return type accessor if // it's not void since we can't have a private member to be of void // type. @@ -407,6 +425,10 @@ be_visitor_operation_ss::visit_operation (be_operation *node) << "_tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER);"<< be_nl << "ACE_TRY_CHECK;" << be_uidt_nl; + // Close scope of the "if (!_tao_vfr.location_forwarded()" + // conditional block. + *os << be_uidt << "}" << be_uidt_nl; + *os << "}" << be_uidt_nl << "ACE_CATCHANY" << be_idt_nl << "{" << be_idt_nl; @@ -465,9 +487,9 @@ be_visitor_operation_ss::visit_operation (be_operation *node) *os << "// In case _tao_servant_upcall is not used in this function" << be_nl - << "ACE_UNUSED_ARG (_tao_servant_upcall);" << be_nl << be_nl; + << "ACE_UNUSED_ARG (_tao_servant_upcall);" << be_nl; - *os << be_uidt << "}\n\n"; + *os << be_uidt_nl << "}\n\n"; return 0; } |