implrepos.cpp
来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· C++ 代码 · 共 1,994 行 · 第 1/5 页
CPP
1,994 行
TAO_Abstract_ServantBase *servant,
TAO::Argument **,
int
ACE_ENV_ARG_DECL
)
ACE_THROW_SPEC ((
CORBA::SystemException
))
{
ACE_reinterpret_cast (
POA_ImplementationRepository::ServerObject_ptr,
servant->_downcast (
"IDL:ImplementationRepository/ServerObject:1.0"
)
)->shutdown (
ACE_ENV_SINGLE_ARG_PARAMETER
);
ACE_CHECK;
}
//
// End Direct Proxy Implementation
///////////////////////////////////////////////////////////////////////
// TAO_IDL - Generated from
// c:\cvsdoc\ace_wrappers\build\vc71\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:97
POA_ImplementationRepository::ServerObject::ServerObject (void)
{
this->optable_ = &tao_ImplementationRepository_ServerObject_optable;
}
POA_ImplementationRepository::ServerObject::ServerObject (const ServerObject& rhs)
: TAO_Abstract_ServantBase (rhs),
TAO_ServantBase (rhs)
{
}
POA_ImplementationRepository::ServerObject::~ServerObject (void)
{
}
// TAO_IDL - Generated from
// c:\cvsdoc\ace_wrappers\build\vc71\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:98
void POA_ImplementationRepository::ServerObject::ping_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_servant,
void *_tao_servant_upcall
ACE_ENV_ARG_DECL
)
{
POA_ImplementationRepository::ServerObject *_tao_impl =
ACE_static_cast (
POA_ImplementationRepository::ServerObject *,
_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_ImplementationRepository_ServerObject_ping _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->ping (
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:\cvsdoc\ace_wrappers\build\vc71\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:98
void POA_ImplementationRepository::ServerObject::shutdown_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_servant,
void *_tao_servant_upcall
ACE_ENV_ARG_DECL
)
{
POA_ImplementationRepository::ServerObject *_tao_impl =
ACE_static_cast (
POA_ImplementationRepository::ServerObject *,
_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_ImplementationRepository_ServerObject_shutdown _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->shutdown (
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:\cvsdoc\ace_wrappers\build\vc71\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:162
void POA_ImplementationRepository::ServerObject::_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_ImplementationRepository::ServerObject *_tao_impl =
(POA_ImplementationRepository::ServerObject *) _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_ImplementationRepository::ServerObject::_non_existent_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_servant,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
POA_ImplementationRepository::ServerObject *_tao_impl =
(POA_ImplementationRepository::ServerObject *) _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_ImplementationRepository::ServerObject::_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_ImplementationRepository::ServerObject *_tao_impl =
(POA_ImplementationRepository::ServerObject *) _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_ImplementationRepository::ServerObject::_component_skel (
TAO_ServerRequest &_tao_server_request,
void * _tao_object_reference,
void * /* Servant_Upcall */
ACE_ENV_ARG_DECL
)
{
POA_ImplementationRepository::ServerObject *_tao_impl =
(POA_ImplementationRepository::ServerObject *) _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_ImplementationRepository::ServerObject::_is_a (
const char* value
ACE_ENV_ARG_DECL_NOT_USED
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?