void TAO_CEC_Reactive_Pulling_Strategy::handle_timeout ( const ACE_Time_Value &, const void *) { try { // Query the state of the Current object *before* we initiate // the iteration... CORBA::PolicyTypeSeq types; CORBA::PolicyList_var policies = this->policy_current_->get_policy_overrides (types); // Change the timeout this->policy_current_->set_policy_overrides (this->policy_list_, CORBA::ADD_OVERRIDE); try { TAO_CEC_Pull_Event worker (this->event_channel_->consumer_admin (), this->event_channel_->supplier_control ()); this->event_channel_->supplier_admin ()->for_each (&worker); } catch (const CORBA::Exception&) { // Ignore all exceptions } this->policy_current_->set_policy_overrides (policies.in (), CORBA::SET_OVERRIDE); for (CORBA::ULong i = 0; i != policies->length (); ++i) { policies[i]->destroy (); } } catch (const CORBA::Exception&) { // Ignore all exceptions } }
void TAO_CEC_Reactive_SupplierControl::handle_timeout ( const ACE_Time_Value &, const void *) { try { // Query the state of the Current object *before* we initiate // the iteration... CORBA::PolicyTypeSeq types; CORBA::PolicyList_var policies = this->policy_current_->get_policy_overrides (types); // Change the timeout this->policy_current_->set_policy_overrides (this->policy_list_, CORBA::ADD_OVERRIDE); try { // Query the state of the suppliers... this->query_suppliers (); } catch (const CORBA::Exception&) { // Ignore all exceptions } this->policy_current_->set_policy_overrides (policies.in (), CORBA::SET_OVERRIDE); for (CORBA::ULong i = 0; i != policies->length (); ++i) { policies[i]->destroy (); } } catch (const CORBA::Exception&) { // Ignore all exceptions } }
void TAO_ECG_Reconnect_ConsumerEC_Control::handle_timeout ( const ACE_Time_Value &, const void *) { // NOTE, setting RELATIVE_RT_TIMEOUT_POLICY for the duration of // query_eventchannel () below has greater impact than desired. For // example, while we are pinging consumers here, a nested upcall, // which requires making remote calls may come into the ORB. Those // remote calls will be carried out with with // RELATIVE_RT_TIMEOUT_POLICY set here in effect. // @@ TODO: should use Guard to set and reset policies. try { // Query the state of the Current object *before* we initiate // the iteration... CORBA::PolicyTypeSeq types; CORBA::PolicyList_var policies = this->policy_current_->get_policy_overrides (types); // Change the timeout this->policy_current_->set_policy_overrides (this->policy_list_, CORBA::ADD_OVERRIDE); // Query the state of the consumers... this->query_eventchannel (); this->policy_current_->set_policy_overrides (policies.in (), CORBA::SET_OVERRIDE); for (CORBA::ULong i = 0; i != policies->length (); ++i) { policies[i]->destroy (); } } catch (const CORBA::Exception&) { // Ignore all exceptions } }