Esempio n. 1
0
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)))
Esempio n. 2
0
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)