gboolean seaf_obj_store_obj_exists (struct SeafObjStore *obj_store, const char *obj_id) { ObjBackend *bend = obj_store->bend; return bend->exists (bend, obj_id); }
int seaf_obj_store_write_obj (struct SeafObjStore *obj_store, const char *obj_id, void *data, int len) { ObjBackend *bend = obj_store->bend; return bend->write (bend, obj_id, data, len); }
int seaf_obj_store_read_obj (struct SeafObjStore *obj_store, const char *obj_id, void **data, int *len) { ObjBackend *bend = obj_store->bend; return bend->read (bend, obj_id, data, len); }
int seaf_obj_store_foreach_obj (struct SeafObjStore *obj_store, const char *repo_id, int version, SeafObjFunc process, void *user_data) { ObjBackend *bend = obj_store->bend; return bend->foreach_obj (bend, repo_id, version, process, user_data); }
int seaf_obj_store_write_obj (struct SeafObjStore *obj_store, const char *repo_id, int version, const char *obj_id, void *data, int len, gboolean need_sync) { ObjBackend *bend = obj_store->bend; return bend->write (bend, repo_id, version, obj_id, data, len, need_sync); }
gboolean seaf_obj_store_obj_exists (struct SeafObjStore *obj_store, const char *repo_id, int version, const char *obj_id) { ObjBackend *bend = obj_store->bend; if (!is_uuid_valid(repo_id) || !is_object_id_valid(obj_id)) return FALSE; return bend->exists (bend, repo_id, version, obj_id); }
int seaf_obj_store_copy_obj (struct SeafObjStore *obj_store, const char *src_repo_id, int src_version, const char *dst_repo_id, int dst_version, const char *obj_id) { ObjBackend *bend = obj_store->bend; if (strcmp (obj_id, EMPTY_SHA1) == 0) return 0; return bend->copy (bend, src_repo_id, src_version, dst_repo_id, dst_version, obj_id); }
int seaf_obj_store_read_obj (struct SeafObjStore *obj_store, const char *repo_id, int version, const char *obj_id, void **data, int *len) { ObjBackend *bend = obj_store->bend; if (!is_uuid_valid(repo_id) || !is_object_id_valid(obj_id)) return -1; return bend->read (bend, repo_id, version, obj_id, data, len); }
static void writer_thread (void *data, void *user_data) { AsyncTask *task = data; SeafObjStore *obj_store = user_data; ObjBackend *bend = obj_store->bend; task->success = TRUE; if (bend->write (bend, task->obj_id, task->data, task->len) < 0) task->success = FALSE; cevent_manager_add_event (obj_store->ev_mgr, obj_store->write_ev_id, task); }
static void stat_thread (void *data, void *user_data) { AsyncTask *task = data; SeafObjStore *obj_store = user_data; ObjBackend *bend = obj_store->bend; task->success = TRUE; if (!bend->exists (bend, task->obj_id)) task->success = FALSE; cevent_manager_add_event (obj_store->ev_mgr, obj_store->stat_ev_id, task); }
int seaf_obj_store_write_obj (struct SeafObjStore *obj_store, const char *repo_id, int version, const char *obj_id, void *data, int len, gboolean need_sync) { ObjBackend *bend = obj_store->bend; if (!is_uuid_valid(repo_id) || !is_object_id_valid(obj_id)) return -1; return bend->write (bend, repo_id, version, obj_id, data, len, need_sync); }
static void stat_thread (void *data, void *user_data) { AsyncTask *task = data; SeafObjStore *obj_store = user_data; ObjBackend *bend = obj_store->bend; OSCallbackStruct *callback; callback = g_hash_table_lookup (obj_store->stats, (gpointer)(long)(task->rw_id)); if (callback) { task->success = TRUE; if (!bend->exists (bend, callback->repo_id, callback->version, task->obj_id)) task->success = FALSE; } cevent_manager_add_event (obj_store->ev_mgr, obj_store->stat_ev_id, task); }