Пример #1
0
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);
}
Пример #2
0
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);
}
Пример #3
0
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);
}
Пример #4
0
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);
}
Пример #5
0
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);
}
Пример #6
0
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);
}
Пример #7
0
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);
}
Пример #8
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);
}
Пример #9
0
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);
}
Пример #10
0
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);
}
Пример #11
0
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);
}
Пример #12
0
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);
}