policys.cpp
来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· C++ 代码 · 共 1,633 行 · 第 1/3 页
CPP
1,633 行
// TAO_IDL - Generated from
// C:\work\ACE+TAO\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98
void POA_CORBA::Policy::copy_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_servant,
void *_tao_servant_upcall
ACE_ENV_ARG_DECL
)
{
POA_CORBA::Policy *_tao_impl =
ACE_static_cast (
POA_CORBA::Policy *,
_tao_servant
);
::CORBA::Policy_var _tao_retval;
#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_Policy_copy _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_retval =
_tao_impl->copy (
ACE_ENV_SINGLE_ARG_PARAMETER
);
TAO_INTERCEPTOR_CHECK;
#if (TAO_HAS_INTERCEPTORS == 1)
}
}
if (!_tao_vfr.location_forwarded ())
{
::CORBA::Policy_ptr _tao_retval_info = _tao_retval._retn ();
_tao_ri.result (_tao_retval_info);
_tao_retval = _tao_retval_info;
_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 ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
if (!(
(_tao_out << _tao_retval.in ())
))
{
TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
// In case _tao_servant_upcall is not used in this function
ACE_UNUSED_ARG (_tao_servant_upcall);
}
// TAO_IDL - Generated from
// C:\work\ACE+TAO\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98
void POA_CORBA::Policy::destroy_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_servant,
void *_tao_servant_upcall
ACE_ENV_ARG_DECL
)
{
POA_CORBA::Policy *_tao_impl =
ACE_static_cast (
POA_CORBA::Policy *,
_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_Policy_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
// C:\work\ACE+TAO\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:162
void POA_CORBA::Policy::_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::Policy *_tao_impl = (POA_CORBA::Policy *) _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::Policy::_non_existent_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_servant,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
POA_CORBA::Policy *_tao_impl = (POA_CORBA::Policy *) _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::Policy::_interface_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_servant,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
POA_CORBA::Policy *_tao_impl = (POA_CORBA::Policy *) _tao_servant;
CORBA::InterfaceDef_ptr _tao_retval = 0;
CORBA::Boolean _tao_result = 0;
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 ());
}
ACE_TRY
{
_tao_retval =
_tao_impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
_tao_result =
_tao_adapter->interfacedef_cdr_insert (
_tao_out,
_tao_retval
);
}
ACE_CATCHALL
{
_tao_adapter->dispose (_tao_retval);
}
ACE_ENDTRY;
if (_tao_result == 0)
{
ACE_THROW (CORBA::MARSHAL ());
}
}
void POA_CORBA::Policy::_component_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_object_reference,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
POA_CORBA::Policy *_tao_impl = (POA_CORBA::Policy *) _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._retn ()))
ACE_THROW (CORBA::MARSHAL ());
}
CORBA::Boolean POA_CORBA::Policy::_is_a (
const char* value
ACE_ENV_ARG_DECL_NOT_USED
)
{
if (
!ACE_OS::strcmp (
(char *)value,
"IDL:omg.org/CORBA/Policy:1.0"
) ||
!ACE_OS::strcmp (
(char *)value,
"IDL:omg.org/CORBA/Object:1.0"
)
)
{
return 1;
}
else
{
return 0;
}
}
void* POA_CORBA::Policy::_downcast (
const char* logical_type_id
)
{
if (ACE_OS::strcmp (logical_type_id,
"IDL:omg.org/CORBA/Policy:1.0") == 0)
{
return ACE_static_cast (POA_CORBA::Policy_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::Policy::_interface_repository_id (void) const
{
return "IDL:omg.org/CORBA/Policy:1.0";
}
// TAO_IDL - Generated from
// C:\work\ACE+TAO\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:536
void POA_CORBA::Policy::_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
// C:\work\ACE+TAO\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:476
CORBA::Policy *
POA_CORBA::Policy::_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::Policy STUB_SCOPED_NAME;
return
TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (
obj.in (),
CORBA__TAO_Policy_Proxy_Broker_Factory_function_pointer
);
}
// TAO_IDL - Generated from
// C:\work\ACE+TAO\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root.cpp:1714
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
#if 0
template class
TAO::Ret_Object_SArgument_T<
CORBA::Policy_ptr,
CORBA::Policy_var
>;
template class
TAO::Ret_Var_Size_SArgument_T<
CORBA::sequence,
CORBA::sequence_var
>;
template class
TAO::In_Var_Size_SArgument_T<
CORBA::sequence
>;
template class
TAO::In_Var_Size_SArgument_T<
CORBA::sequence
>;
template class
TAO::In_Basic_SArgument_T<
CORBA::SetOverrideType
>;
#endif /*if 0*/
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
# pragma instantiate \
TAO::Ret_Object_SArgument_T< \
CORBA::Policy_ptr, \
CORBA::Policy_var \
>
# pragma instantiate \
TAO::Ret_Var_Size_SArgument_T< \
CORBA::sequence, \
CORBA::sequence_var \
>
# pragma instantiate \
TAO::In_Var_Size_SArgument_T< \
CORBA::sequence \
>
# pragma instantiate \
TAO::In_Var_Size_SArgument_T< \
CORBA::sequence \
>
# pragma instantiate \
TAO::In_Basic_SArgument_T< \
CORBA::SetOverrideType \
>
#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
#endif /* ifndef */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?