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; }
/** ******************************************************************************** ** \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; }
/** ******************************************************************************** ** \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; }
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; }