def handle_add_event_listener(event_id, ref_res, condition): if protocal.FUNCTION_TYPE_CALLABLE in condition: condition = utils.string_to_function(condition[FUNCTION_TYPE_CALLABLE], "condition") elif protocal.FUNCTION_TYPE_DEFAULT in condition: if condition[FUNCTION_TYPE_DEFAULT] == default_condition.CONDITION_CLOCK_TICK: __clock_tick_event_receiver.append(event_id) return else: condition = default_condition.get_condition(condition[FUNCTION_TYPE_DEFAULT]) else: raise Exception("unknown condition:" + condition) res_manager.add_listener(ref_res, condition, lambda: sky_client.write(tuple=(RECEIVER, "Event", event_id)))
def handle_add_res(name, model, update): update_function = None if type(update) is dict: if FUNCTION_TYPE_CALLABLE in update: update_function = utils.string_to_function(update[FUNCTION_TYPE_CALLABLE], "update") elif FUNCTION_TYPE_DEFAULT in update: update_info = update[FUNCTION_TYPE_DEFAULT] delay = update_info["delay"] cycle = default_functions.get(update_info["next"], return_type='lambda') res_manager.update_delay(name, delay, cycle) update_function = default_functions.get(update_info["rule"]) return res_manager.add(name, model, update_function)