#include <Direct_Collocation_Upcall_Wrapper.h>
Public Member Functions | |
| void | upcall (CORBA::Object_ptr obj, CORBA::Object_out forward_obj, TAO::Argument **args, int num_args, const char *op, size_t op_len, TAO::Collocation_Strategy strategy) throw (CORBA::Exception) |
| Perform the upcall. | |
Definition at line 54 of file Direct_Collocation_Upcall_Wrapper.h.
|
||||||||||||||||||||||||||||||||
|
Perform the upcall.
Definition at line 22 of file Direct_Collocation_Upcall_Wrapper.cpp. References CORBA::Object::_duplicate(), TAO_Abstract_ServantBase::_find(), ACE_CATCH, ACE_CATCHANY, ACE_CHECK, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_RE_THROW, ACE_THROW, ACE_TRY, ACE_TRY_CHECK, and TAO_Collocated_Skeleton. Referenced by POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker::dispatch().
00033 {
00034 TAO_Abstract_ServantBase * const servant = obj->_servant ();
00035
00036 TAO_Collocated_Skeleton collocated_skel;
00037 int const status = servant->_find (op,
00038 collocated_skel,
00039 strategy,
00040 op_len);
00041
00042 if (status == -1)
00043 {
00044 ACE_THROW (CORBA::BAD_OPERATION (CORBA::OMGVMCID | 2, CORBA::COMPLETED_NO));
00045 }
00046
00047 ACE_TRY
00048 {
00049 collocated_skel (servant,
00050 args,
00051 num_args
00052 ACE_ENV_ARG_PARAMETER);
00053 ACE_TRY_CHECK;
00054 }
00055 #if (TAO_HAS_MINIMUM_CORBA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
00056 ACE_CATCH (PortableServer::ForwardRequest, forward_request)
00057 {
00058 forward_obj =
00059 CORBA::Object::_duplicate (forward_request.forward_reference.in ());
00060 return;
00061 }
00062 #else
00063 ACE_CATCHANY
00064 {
00065 ACE_UNUSED_ARG (forward_obj);
00066 ACE_RE_THROW;
00067 }
00068 #endif /* TAO_HAS_MINIMUM_CORBA && !CORBA_E_COMPACT && !CORBA_E_MICRO*/
00069 ACE_ENDTRY;
00070 ACE_CHECK;
00071 }
|
1.3.6