代码片断:TAO中设置ORB超时

来源:互联网 发布:淘宝男装冬装西服 编辑:程序博客网 时间:2024/05/27 20:51

 

代码出处:Notification Service

 

 

intTAO_Notify_Service_Driver::init_dispatching_ORB (int& argc, ACE_TCHAR *argv []){  this->dispatching_orb_ = CORBA::ORB_init (argc, argv, "dispatcher");  this->apply_timeout (this->dispatching_orb_.in ());  return 0;}voidTAO_Notify_Service_Driver::apply_timeout (CORBA::ORB_ptr orb){#if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0  if (this->timeout_ != 0)    {      // convert from msec to "TimeT"      CORBA::Any timeout;      TimeBase::TimeT value = 10000 * this->timeout_;      timeout <<= value;      CORBA::Object_var object =        orb->resolve_initial_references ("ORBPolicyManager");      CORBA::PolicyManager_var policy_manager =        CORBA::PolicyManager::_narrow (object.in ());      if (CORBA::is_nil (policy_manager.in ()))        throw CORBA::INTERNAL ();      CORBA::PolicyList policy_list (1);      policy_list.length (1);      policy_list[0] = orb->create_policy (                            Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE,                              timeout);      policy_manager->set_policy_overrides (policy_list, CORBA::SET_OVERRIDE);      policy_list[0]->destroy ();  }#else  ACE_UNUSED_ARG (orb);#endif /* TAO_HAS_CORBA_MESSAGING != 0 */}
原创粉丝点击