📄 ifr_bases.cpp
字号:
void *_tao_servant_upcall
ACE_ENV_ARG_DECL
)
{
POA_CORBA::IRObject *_tao_impl =
ACE_static_cast (
POA_CORBA::IRObject *,
_tao_servant
);
_tao_server_request.argument_flag (0);
#if (TAO_HAS_INTERCEPTORS == 1)
TAO_Object_Adapter::Servant_Upcall *_tao_upcall =
ACE_static_cast (
TAO_Object_Adapter::Servant_Upcall *,
_tao_servant_upcall
);
TAO_ServerRequestInterceptor_Adapter _tao_vfr (
_tao_server_request.orb_core ()->server_request_interceptors (),
_tao_server_request.interceptor_count ()
);
TAO_ServerRequestInfo_CORBA_IRObject_destroy _tao_ri (
_tao_server_request,
_tao_upcall,
_tao_impl
ACE_ENV_ARG_PARAMETER
);
ACE_TRY
{
{
TAO_PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (),
1 /* Copy TSC to RSC */);
_tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
if (!_tao_vfr.location_forwarded ())
{
#endif /* TAO_HAS_INTERCEPTORS */
_tao_impl->destroy (
ACE_ENV_SINGLE_ARG_PARAMETER
);
TAO_INTERCEPTOR_CHECK;
#if (TAO_HAS_INTERCEPTORS == 1)
}
}
if (!_tao_vfr.location_forwarded ())
{
_tao_ri.reply_status (PortableInterceptor::SUCCESSFUL);
_tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
}
}
ACE_CATCHANY
{
_tao_ri.exception (&ACE_ANY_EXCEPTION);
_tao_vfr.send_exception (
&_tao_ri
ACE_ENV_ARG_PARAMETER
);
ACE_TRY_CHECK;
PortableInterceptor::ReplyStatus _tao_status =
_tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION
|| _tao_status == PortableInterceptor::USER_EXCEPTION)
{
ACE_RE_THROW;
}
}
# if defined (ACE_HAS_EXCEPTIONS) \
&& defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS)
ACE_CATCHALL
{
CORBA::UNKNOWN ex;
_tao_ri.exception (&ex);
_tao_vfr.send_exception (
&_tao_ri
ACE_ENV_ARG_PARAMETER
);
ACE_TRY_CHECK;
PortableInterceptor::ReplyStatus _tao_status =
_tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION)
ACE_TRY_THROW (ex);
}
# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */
ACE_ENDTRY;
ACE_CHECK;
#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
// In case _tao_servant_upcall is not used in this function
ACE_UNUSED_ARG (_tao_servant_upcall);
}
// TAO_IDL - Generated from
// be/be_visitor_interface/interface_ss.cpp:162
void POA_CORBA::IRObject::_is_a_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_servant,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_CORBA::IRObject *_tao_impl =
(POA_CORBA::IRObject *) _tao_servant;
CORBA::Boolean _tao_retval = 0;
CORBA::String_var value;
if (!(_tao_in >> value.out ()))
{
ACE_THROW (CORBA::MARSHAL ());
}
_tao_retval = _tao_impl->_is_a (value.in () ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
{
ACE_THROW (CORBA::MARSHAL ());
}
}
void POA_CORBA::IRObject::_non_existent_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_servant,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
POA_CORBA::IRObject *_tao_impl =
(POA_CORBA::IRObject *) _tao_servant;
CORBA::Boolean _tao_retval =
_tao_impl->_non_existent (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
{
ACE_THROW (CORBA::MARSHAL ());
}
}
void POA_CORBA::IRObject::_interface_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_servant,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
TAO_IFR_Client_Adapter *_tao_adapter =
ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance (
TAO_ORB_Core::ifr_client_adapter_name ()
);
if (_tao_adapter == 0)
{
ACE_THROW (CORBA::INTF_REPOS ());
}
POA_CORBA::IRObject *_tao_impl =
(POA_CORBA::IRObject *) _tao_servant;
CORBA::InterfaceDef_ptr _tao_retval =
_tao_impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
CORBA::Boolean _tao_result =
_tao_adapter->interfacedef_cdr_insert (
_tao_out,
_tao_retval
);
_tao_adapter->dispose (_tao_retval);
if (_tao_result == 0)
{
ACE_THROW (CORBA::MARSHAL ());
}
}
void POA_CORBA::IRObject::_component_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_object_reference,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
POA_CORBA::IRObject *_tao_impl =
(POA_CORBA::IRObject *) _tao_object_reference;
CORBA::Object_var _tao_retval =
_tao_impl->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
if (!(_tao_out << _tao_retval.in ()))
{
ACE_THROW (CORBA::MARSHAL ());
}
}
CORBA::Boolean POA_CORBA::IRObject::_is_a (
const char* value
ACE_ENV_ARG_DECL_NOT_USED
)
{
if (
!ACE_OS::strcmp (
(char *)value,
"IDL:omg.org/CORBA/IRObject:1.0"
) ||
!ACE_OS::strcmp (
(char *)value,
"IDL:omg.org/CORBA/Object:1.0"
)
)
{
return 1;
}
else
{
return 0;
}
}
void* POA_CORBA::IRObject::_downcast (
const char* logical_type_id
)
{
if (ACE_OS::strcmp (logical_type_id,
"IDL:omg.org/CORBA/IRObject:1.0") == 0)
{
return ACE_static_cast (POA_CORBA::IRObject_ptr, this);
}
if (ACE_OS::strcmp (logical_type_id,
"IDL:omg.org/CORBA/Object:1.0") == 0)
{
return ACE_static_cast (PortableServer::Servant, this);
}
return 0;
}
const char* POA_CORBA::IRObject::_interface_repository_id (void) const
{
return "IDL:omg.org/CORBA/IRObject:1.0";
}
// TAO_IDL - Generated from
// be/be_visitor_interface/interface_ss.cpp:545
void POA_CORBA::IRObject::_dispatch (
TAO_ServerRequest &req,
void *servant_upcall
ACE_ENV_ARG_DECL
)
{
this->synchronous_upcall_dispatch (req,
servant_upcall,
this
ACE_ENV_ARG_PARAMETER);
}
// TAO_IDL - Generated from
// be/be_visitor_interface/interface_ss.cpp:493
CORBA::IRObject *
POA_CORBA::IRObject::_this (ACE_ENV_SINGLE_ARG_DECL)
{
TAO_Stub *stub = this->_create_stub (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
TAO_Stub_Auto_Ptr safe_stub (stub);
CORBA::Object_ptr tmp = CORBA::Object::_nil ();
if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ())
{
ACE_NEW_RETURN (
tmp,
CORBA::Object (stub, 1, this),
0
);
}
else
{
ACE_NEW_RETURN (
tmp,
CORBA::Object (stub, 0, this),
0
);
}
CORBA::Object_var obj = tmp;
(void) safe_stub.release ();
typedef ::CORBA::IRObject STUB_SCOPED_NAME;
return
TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (
obj.in (),
CORBA__TAO_IRObject_Proxy_Broker_Factory_function_pointer
);
}
// TAO_IDL - Generated from
// be/be_interface.cpp:1461
class TAO_CORBA_Contained_Perfect_Hash_OpTable
: public TAO_Perfect_Hash_OpTable
{
private:
unsigned int hash (const char *str, unsigned int len);
public:
const TAO_operation_db_entry * lookup (const char *str, unsigned int len);
};
/* C++ code produced by gperf version 2.8 (ACE version) */
/* Command-line: /project/tangotmp/bala/work/ACE+TAO/final_merge/ACE_wrappers/bin/gperf -m -M -J -c -C -D -E -T -f 0 -F 0,0,0 -a -o -t -p -K opname_ -L C++ -Z TAO_CORBA_Contained_Perfect_Hash_OpTable -N lookup */
unsigned int
TAO_CORBA_Contained_Perfect_Hash_OpTable::hash (const char *str, unsigned int len)
{
static const unsigned char asso_values[] =
{
#if defined (ACE_MVS)
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 0,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 0,
37, 37, 0, 0, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 0, 0,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 10, 37, 37, 37, 37, 10, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37,
#else
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 0, 37, 0, 37, 37,
0, 0, 37, 37, 37, 37, 37, 37, 37, 0,
0, 37, 37, 37, 37, 37, 10, 37, 37, 37,
37, 10, 37, 37, 37, 37, 37, 37,
#endif /* ACE_MVS */
};
return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]];
}
const class TAO_operation_db_entry *
TAO_CORBA_Contained_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len)
{
enum
{
TOTAL_KEYWORDS = 17,
MIN_WORD_LENGTH = 4,
MAX_WORD_LENGTH = 26,
MIN_HASH_VALUE = 4,
MAX_HASH_VALUE = 36,
HASH_VALUE_RANGE = 33,
DUPLICATES = 4,
WORDLIST_SIZE = 21
};
static const class TAO_operation_db_entry wordlist[] =
{
{"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},
{"move", &POA_CORBA::Contained::move_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::move, 0},
{"_is_a", &POA_CORBA::Contained::_is_a_skel, 0, 0},
{"_get_id", &POA_CORBA::Contained::_get_id_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_get_id, 0},
{"_set_id", &POA_CORBA::Contained::_set_id_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_set_id, 0},
{"describe", &POA_CORBA::Contained::describe_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::describe, 0},
{"_get_name", &POA_CORBA::Contained::_get_name_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_get_name, 0},
{"_set_name", &POA_CORBA::Contained::_set_name_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_set_name, 0},
{"_interface", &POA_CORBA::Contained::_interface_skel, 0, 0},
{"_get_version", &POA_CORBA::Contained::_get_version_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_get_version, 0},
{"_set_version", &POA_CORBA::Contained::_set_version_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_set_version, 0},
{"_get_def_kind", &POA_CORBA::Contained::_get_def_kind_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_get_def_kind, 0},
{"_get_defined_in", &POA_CORBA::Contained::_get_defined_in_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_get_defined_in, 0},
{"destroy", &POA_CORBA::Contained::destroy_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::destroy, 0},
{"_get_absolute_name", &POA_CORBA::Contained::_get_absolute_name_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_get_absolute_name, 0},
{"_component", &POA_CORBA::Contained::_component_skel, 0, 0},
{"_non_existent", &POA_CORBA::Contained::_non_existent_skel, 0, 0},
{"_get_containing_repository", &POA_CORBA::Contained::_get_containing_repository_skel, &POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl::_get_containing_repository, 0},
};
static const signed char lookup[] =
{
-9, -2, -12, -2, 4, 5, -1, 50, 8, -45, 11, -1, -46, 14,
-1, 15, -1, 16, 17, -1, 18, -6, -2, 19, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 20,
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
unsigned int key = hash (str, len);
if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
{
int slot = lookup[key];
if (slot >= 0 && slot < WORDLIST_SIZE)
{
const char *s = wordlist[slot].opname_;
if (*str == *s && !strncmp (str + 1, s + 1, len - 1))
return &wordlist[slot];
}
else if (slot < 0 && slot >= -MAX_HASH_VALUE)
return 0;
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -