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); } }
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); }
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; }
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++ = ','; }
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); }