void TAO_CEC_Reactive_SupplierControl::query_suppliers () { #if defined (TAO_HAS_TYPED_EVENT_CHANNEL) if (this->typed_event_channel_) { // Typed EC TAO_CEC_Ping_Typed_Push_Supplier push_worker (this); this->typed_event_channel_->typed_supplier_admin ()->for_each (&push_worker); } else { #endif /* TAO_HAS_TYPED_EVENT_CHANNEL */ // Un-typed EC TAO_CEC_Ping_Push_Supplier push_worker (this); this->event_channel_->supplier_admin ()->for_each (&push_worker); TAO_CEC_Ping_Pull_Supplier pull_worker (this); this->event_channel_->supplier_admin ()->for_each (&pull_worker); #if defined (TAO_HAS_TYPED_EVENT_CHANNEL) } #endif /* TAO_HAS_TYPED_EVENT_CHANNEL */ }
void TAO_CEC_ConsumerAdmin::push (const CORBA::Any &event) { TAO_CEC_Propagate_Event_Push push_worker (event); this->push_admin_.for_each (&push_worker); TAO_CEC_Propagate_Event_Pull pull_worker (event); this->pull_admin_.for_each (&pull_worker); }
/// single argument version std::vector<flexible_type> lualambda_master::bulk_eval(size_t lambda_hash, const std::vector<flexible_type>& args, bool skip_undefined, int seed) { size_t worker_id = pop_worker(); std::vector<flexible_type> ret; std::string lambdaname = "lambda" + std::to_string(lambda_hash); auto function = (*clients[worker_id])[lambdaname.c_str()]; try { ret.resize(args.size()); for (size_t i = 0;i < args.size(); ++i) { if (skip_undefined && args[i].get_type() == flex_type_enum::UNDEFINED) { ret[i] = FLEX_UNDEFINED; } else { call_lua_function(function, args[i], ret[i]); } } } catch (...) { push_worker(worker_id); throw; } push_worker(worker_id); return ret; }