void o_engine_release_factory(struct o_storage_factory * factory) { char * path = o_storage_factory_get_path(factory); o_map_string_remove(o_engine_get_instance()->factories, path); if (o_map_string_size(o_engine_get_instance()->factories) == 0) o_engine_release(); }
void o_engine_release_connection(struct o_connection * connection) { char * name = o_connection_get_path(connection); char * username = o_connection_get_last_user(connection); char * key = createKey(name, username); o_map_string_remove(o_engine_get_instance()->connections, key); if (o_map_string_size(o_engine_get_instance()->connections) == 0) o_engine_release(); o_free(key); }
void o_connection_storage_release(struct o_connection * conn, struct o_storage * storage) { char * name = o_storage_get_name(storage); char * username = o_storage_get_user(storage); char * store_name = o_connection_build_storage_name(name, username); o_map_string_remove(conn->storages, store_name); o_storage_close(storage); o_storage_free(storage); o_free(store_name); if (o_map_string_size(conn->storages) == 0) o_engine_release_connection(conn); }