本文整理汇总了C++中corba::Object_ptr::_servant方法的典型用法代码示例。如果您正苦于以下问题:C++ Object_ptr::_servant方法的具体用法?C++ Object_ptr::_servant怎么用?C++ Object_ptr::_servant使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类corba::Object_ptr
的用法示例。
在下文中一共展示了Object_ptr::_servant方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
TAO::Collocation_Strategy
Invocation_Adapter::collocation_strategy (CORBA::Object_ptr object)
{
TAO::Collocation_Strategy strategy = TAO::TAO_CS_REMOTE_STRATEGY;
TAO_Stub *stub = object->_stubobj ();
if (!CORBA::is_nil (stub->servant_orb_var ().in ()) &&
stub->servant_orb_var ()->orb_core () != 0)
{
TAO_ORB_Core *orb_core = stub->servant_orb_var ()->orb_core ();
if (orb_core->collocation_resolver ().is_collocated (object))
{
switch (orb_core->get_collocation_strategy ())
{
case TAO_ORB_Core::TAO_COLLOCATION_THRU_POA:
{
// check opportunity
if (ACE_BIT_ENABLED (this->collocation_opportunity_,
TAO::TAO_CO_THRU_POA_STRATEGY))
{
strategy = TAO::TAO_CS_THRU_POA_STRATEGY;
}
else
{
if (TAO_debug_level > 0)
{
TAOLIB_ERROR ((LM_ERROR,
ACE_TEXT ("Invocation_Adapter::collocation_strategy, ")
ACE_TEXT ("request for through poa collocation ")
ACE_TEXT ("without needed collocation opportunity.\n")));
}
// collocation object, but no collocation_opportunity for Thru_poa
throw ::CORBA::INTERNAL (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
EINVAL),
CORBA::COMPLETED_NO);
}
break;
}
case TAO_ORB_Core::TAO_COLLOCATION_DIRECT:
{
if (ACE_BIT_ENABLED (this->collocation_opportunity_,
TAO::TAO_CO_DIRECT_STRATEGY)
&& (object->_servant () != 0))
{
strategy = TAO::TAO_CS_DIRECT_STRATEGY;
}
else
{
if (TAO_debug_level > 0)
{
TAOLIB_ERROR ((LM_ERROR,
ACE_TEXT ("Invocation_Adapter::collocation_strategy, ")
ACE_TEXT ("request for direct collocation ")
ACE_TEXT ("without needed collocation opportunity.\n")));
}
// collocation object, but no collocation_opportunity for Direct
// or servant() == 0
throw ::CORBA::INTERNAL (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
EINVAL),
CORBA::COMPLETED_NO);
}
break;
}
case TAO_ORB_Core::TAO_COLLOCATION_BEST:
{
if (ACE_BIT_ENABLED (this->collocation_opportunity_,
TAO::TAO_CO_DIRECT_STRATEGY)
&& (object->_servant () != 0))
{
strategy = TAO::TAO_CS_DIRECT_STRATEGY;
}
else if (ACE_BIT_ENABLED (this->collocation_opportunity_,
TAO::TAO_CO_THRU_POA_STRATEGY))
{
strategy = TAO::TAO_CS_THRU_POA_STRATEGY;
}
else
{
strategy = TAO::TAO_CS_REMOTE_STRATEGY;
}
break;
}
}
}
}
return strategy;
}