int
sml_observation_group_observation_hit(struct sml_fuzzy *fuzzy,
    struct sml_observation_group *obs_group,
    struct sml_measure *measure, bool *found)
{
    int error;
    bool obs_hit;

    if (found)
        *found = false;
    if (sol_ptr_vector_get_len((struct sol_ptr_vector *)obs_group)) {
        uint16_t i;
        struct sml_observation *obs;
        struct sml_observation *first_observation =
            sol_ptr_vector_get((struct sol_ptr_vector *)obs_group, 0);

        if (!sml_observation_enabled_input_values_equals(fuzzy,
            first_observation, measure))
            return 0;

        SOL_PTR_VECTOR_FOREACH_IDX ((struct sol_ptr_vector *)obs_group, obs, i)
            if (sml_observation_is_base(fuzzy, obs)) {
                if (found)
                    *found = true;
                return sml_observation_hit(fuzzy, obs, measure, NULL);
            }

    }
Ejemplo n.º 2
0
static void
delete_cb(void *data, const struct sol_http_progressive_response *sse)
{
    sol_ptr_vector_remove(&responses, sse);

    if (should_quit && !sol_ptr_vector_get_len(&responses))
        sol_quit();
}
struct sml_observation *
sml_observation_group_get_first_observation(
    struct sml_observation_group *obs_group)
{
    if (!sol_ptr_vector_get_len((struct sol_ptr_vector *)obs_group))
        return NULL;

    return sol_ptr_vector_get((struct sol_ptr_vector *)obs_group, 0);
}
Ejemplo n.º 4
0
static void
servers_free(void)
{
    if (!servers)
        return;

    if (sol_ptr_vector_get_len(servers) != 0)
        return;

    sol_ptr_vector_clear(servers);
    free(servers);
    servers = NULL;
}
Ejemplo n.º 5
0
static void
join_unknown_mnt_opts(struct sol_ptr_vector *vec, char *to)
{
    char *ptr = to, *p;
    uint16_t i;

    if (sol_ptr_vector_get_len(vec) == 0) {
        *ptr = '\0';
        return;
    }

    SOL_PTR_VECTOR_FOREACH_IDX (vec, p, i) {
        ptr = mempcpy(ptr, p, strlen(p));
        *ptr++ = ',';
    }
Ejemplo n.º 6
0
static void
adapter_appeared(void *data, const char *path)
{
    struct context *ctx = data;
    int r;

    if (ctx->adapter_path)
        return;

    ctx->adapter_path = strdup(path);
    SOL_NULL_CHECK(ctx->adapter_path);

    r = sol_bus_map_cached_properties(ctx->bluez, path,
        "org.bluez.Adapter1",
        adapter_properties,
        adapter_property_changed, ctx);
    SOL_INT_CHECK_GOTO(r, < 0, error_map);

    if (sol_ptr_vector_get_len(&ctx->sessions) > 0) {
        r = adapter_set_powered(ctx, ctx->adapter_path, true);
        SOL_INT_CHECK(r, < 0);
    }