示例#1
0
文件: obj-store.c 项目: 2bj/seafile
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);
}
示例#2
0
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);
}
示例#3
0
文件: obj-store.c 项目: 2bj/seafile
static void
reader_thread (void *data, void *user_data)
{
    AsyncTask *task = data;
    SeafObjStore *obj_store = user_data;
    ObjBackend *bend = obj_store->bend;

    task->success = TRUE;

    if (bend->read (bend, task->obj_id, &task->data, &task->len) < 0)
        task->success = FALSE;

    cevent_manager_add_event (obj_store->ev_mgr, obj_store->read_ev_id,
                              task);
}
示例#4
0
static void
reader_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->readers,
                                    (gpointer)(long)(task->rw_id));
    if (callback) {
        task->success = TRUE;

        if (bend->read (bend, callback->repo_id, callback->version,
                        task->obj_id, &task->data, &task->len) < 0)
            task->success = FALSE;
    }

    cevent_manager_add_event (obj_store->ev_mgr, obj_store->read_ev_id,
                              task);
}