本文整理汇总了C++中TAO_Stub::servant_orb_var方法的典型用法代码示例。如果您正苦于以下问题:C++ TAO_Stub::servant_orb_var方法的具体用法?C++ TAO_Stub::servant_orb_var怎么用?C++ TAO_Stub::servant_orb_var使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TAO_Stub
的用法示例。
在下文中一共展示了TAO_Stub::servant_orb_var方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: safe_stub
Echo *
POA_Echo::_this (void)
{
TAO_Stub *stub = this->_create_stub ();
TAO_Stub_Auto_Ptr safe_stub (stub);
::CORBA::Object_ptr tmp = CORBA::Object_ptr ();
::CORBA::Boolean const _tao_opt_colloc =
stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ();
ACE_NEW_RETURN (
tmp,
::CORBA::Object (stub, _tao_opt_colloc, this),
0
);
::CORBA::Object_var obj = tmp;
(void) safe_stub.release ();
typedef ::Echo STUB_SCOPED_NAME;
return
TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (
obj.in (),
_TAO_Echo_Proxy_Broker_Factory_function_pointer
);
}
示例2: _nil
template<typename T> T *
AbstractBase_Narrow_Utils<T>::unchecked_narrow (CORBA::AbstractBase_ptr obj)
{
if (CORBA::is_nil (obj))
{
return T::_nil ();
}
T_ptr proxy = T::_nil ();
try
{
if (obj->_is_objref ())
{
TAO_Stub* stub = obj->_stubobj ();
bool const collocated =
!CORBA::is_nil (stub->servant_orb_var ().in ())
&& stub->optimize_collocation_objects ()
&& obj->_is_collocated ();
ACE_NEW_RETURN (proxy,
T (obj->_stubobj (),
collocated,
obj->_servant ()),
T::_nil ());
}
else
{
proxy = dynamic_cast<T *> (obj);
if (proxy)
proxy->_add_ref ();
}
}
catch (const ::CORBA::Exception&)
{
}
return proxy;
}
示例3: safe_stub
Test::Roundtrip *
POA_Test::Roundtrip::_this (void)
{
TAO_Stub *stub = this->_create_stub ();
TAO_Stub_Auto_Ptr safe_stub (stub);
::CORBA::Object_ptr tmp = CORBA::Object_ptr ();
::CORBA::Boolean const _tao_opt_colloc =
stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ();
ACE_NEW_RETURN (
tmp,
::CORBA::Object (stub, _tao_opt_colloc, this),
0);
::CORBA::Object_var obj = tmp;
(void) safe_stub.release ();
typedef ::Test::Roundtrip STUB_SCOPED_NAME;
return
TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (
obj.in ());
}
示例4: 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;
}