gboolean seaf_repo_manager_repo_exists (SeafRepoManager *manager, const gchar *id) { SeafRepo repo; memcpy (repo.id, id, 37); return repo_exists_in_db (manager->seaf->db, id); }
SeafRepo* seaf_repo_manager_get_repo (SeafRepoManager *manager, const gchar *id) { SeafRepo repo; int len = strlen(id); if (len >= 37) return NULL; memcpy (repo.id, id, len + 1); if (repo_exists_in_db (manager->seaf->db, id)) { SeafRepo *ret = load_repo (manager, id); if (!ret) return NULL; /* seaf_repo_ref (ret); */ return ret; } return NULL; }
gboolean seaf_repo_manager_repo_exists (SeafRepoManager *manager, const gchar *id) { SeafRepo repo; memcpy (repo.id, id, 37); #if 0 if (pthread_rwlock_rdlock (&manager->priv->lock) < 0) { g_warning ("[repo mgr] failed to lock repo cache.\n"); return FALSE; } avl_node_t *res = avl_search (manager->priv->repo_tree, &repo); pthread_rwlock_unlock (&manager->priv->lock); if (res) return TRUE; #endif return repo_exists_in_db (manager->seaf->db, id); }
SeafRepo* seaf_repo_manager_get_repo (SeafRepoManager *manager, const gchar *id) { SeafRepo repo; int len = strlen(id); if (len >= 37) return NULL; memcpy (repo.id, id, len + 1); #if 0 if (pthread_rwlock_rdlock (&manager->priv->lock) < 0) { g_warning ("[repo mgr] failed to lock repo cache.\n"); return NULL; } avl_node_t *res = avl_search (manager->priv->repo_tree, &repo); pthread_rwlock_unlock (&manager->priv->lock); if (res) { seaf_repo_ref ((SeafRepo *)(res->item)); return res->item; } #endif if (repo_exists_in_db (manager->seaf->db, id)) { SeafRepo *ret = load_repo (manager, id); if (!ret) return NULL; /* seaf_repo_ref (ret); */ return ret; } return NULL; }