Exemplo n.º 1
0
uint32_t kv_query(ARK *ark, db_t *db)
{
    uint32_t i   = 0;
    uint32_t rc  = 0;
    int64_t  res = 0;
    uint8_t  gvalue[db->vlen];

    for (i=0; i<db->LEN; i++)
    {
        while (EAGAIN == (rc=ark_get(ark,
                                     db->klen,
                                     db->kv[i].key,
                                     db->vlen,
                                     gvalue,
                                     0,
                                     &res))) usleep(10000);
        if (rc)               KV_ERR("get1", rc);
        if (db->vlen != res)  KV_ERR("get2",0);

        while (EAGAIN == (rc=ark_exists(ark,
                                        db->klen,
                                        db->kv[i].key,
                                        &res))) usleep(10000);
        if (rc)              KV_ERR("exists1",rc);
        if (db->vlen != res) KV_ERR("exists2",0);
    }
    return 0;
}
Exemplo n.º 2
0
/**
********************************************************************************
** \brief
**   validate that a k/v database exists in the ark
*******************************************************************************/
uint32_t kv_query(ARK *ark, db_t *db)
{
    uint32_t i      = 0;
    uint32_t rc     = 0;
    int64_t  res    = 0;
    char    *gvalue = NULL;

    gvalue = malloc(db->vlen);
    assert(gvalue);

    for (i=0; i<db->len; i++)
    {
        while (EAGAIN == (rc=ark_get(ark,
                                     db->klen,
                                     db->kv[i].key,
                                     db->vlen,
                                     gvalue,
                                     0,
                                     &res))) usleep(10000);
        if (rc)               KV_ERR("get1", rc);
        if (db->vlen != res)  KV_ERR("get2",0);

        while (EAGAIN == (rc=ark_exists(ark,
                                        db->klen,
                                        db->kv[i].key,
                                        &res))) usleep(10000);
        if (rc)              KV_ERR("exists1",rc);
        if (db->vlen != res) KV_ERR("exists2",0);
    }
    free(gvalue);
    return 0;
}
Exemplo n.º 3
0
/**
********************************************************************************
** \brief
**   delete a k/v database from an ark
*******************************************************************************/
uint32_t kv_del(ARK *ark, db_t *db)
{
    uint32_t i   = 0;
    uint32_t rc  = 0;
    int64_t  res = 0;

    for (i=0; i<db->len; i++)
    {
        while (EAGAIN == (rc=ark_del(ark,
                                     db->klen,
                                     db->kv[i].key,
                                     &res))) usleep(10000);
        if (rc)              KV_ERR("del1", rc);
        if (db->vlen != res) KV_ERR("del2",0);
    }
    return 0;
}
Exemplo n.º 4
0
uint32_t kv_load(ARK *ark, db_t *db)
{
    uint32_t i   = 0;
    uint32_t rc  = 0;
    int64_t  res = 0;

    for (i=0; i<db->LEN; i++)
    {
        while (EAGAIN == (rc=ark_set(ark,
                                     db->klen,
                                     db->kv[i].key,
                                     db->vlen,
                                     db->kv[i].value,
                                     &res))) usleep(10000);
        if (rc)              KV_ERR("set1",rc);
        if (db->vlen != res) KV_ERR("set2",0);
    }
    return 0;
}