design dbc api
This commit is contained in:
parent
f4359a6fb3
commit
9ffdf09986
|
@ -90,4 +90,19 @@ int tdbDbInsert(STDB *pDb, const void *pKey, int keyLen, const void *pVal, int v
|
||||||
|
|
||||||
int tdbDbGet(STDB *pDb, const void *pKey, int kLen, void **ppVal, int *vLen) {
|
int tdbDbGet(STDB *pDb, const void *pKey, int kLen, void **ppVal, int *vLen) {
|
||||||
return tdbBtreeGet(pDb->pBt, pKey, kLen, ppVal, vLen);
|
return tdbBtreeGet(pDb->pBt, pKey, kLen, ppVal, vLen);
|
||||||
|
}
|
||||||
|
|
||||||
|
int tdbDbcOpen(STDB *pDb, STDBC **ppTDbc) {
|
||||||
|
// TODO
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int tdbDbNext(STDBC *pDbc, void **ppKey, int *kLen, void **ppVal, int *vLen) {
|
||||||
|
// TODO
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int tdbDbcClose(STDBC *pDbc) {
|
||||||
|
// TODO
|
||||||
|
return 0;
|
||||||
}
|
}
|
|
@ -21,14 +21,20 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct STDB STDB;
|
typedef struct STDB STDB;
|
||||||
typedef struct STDbC STDbC;
|
typedef struct STDBC STDBC;
|
||||||
|
|
||||||
|
// STDB
|
||||||
int tdbDbOpen(const char *fname, int keyLen, int valLen, FKeyComparator keyCmprFn, STEnv *pEnv, STDB **ppDb);
|
int tdbDbOpen(const char *fname, int keyLen, int valLen, FKeyComparator keyCmprFn, STEnv *pEnv, STDB **ppDb);
|
||||||
int tdbDbClose(STDB *pDb);
|
int tdbDbClose(STDB *pDb);
|
||||||
int tdbDbDrop(STDB *pDb);
|
int tdbDbDrop(STDB *pDb);
|
||||||
int tdbDbInsert(STDB *pDb, const void *pKey, int keyLen, const void *pVal, int valLen);
|
int tdbDbInsert(STDB *pDb, const void *pKey, int keyLen, const void *pVal, int valLen);
|
||||||
int tdbDbGet(STDB *pDb, const void *pKey, int kLen, void **ppVal, int *vLen);
|
int tdbDbGet(STDB *pDb, const void *pKey, int kLen, void **ppVal, int *vLen);
|
||||||
|
|
||||||
|
// STDBC
|
||||||
|
int tdbDbcOpen(STDB *pDb, STDBC **ppTDbc);
|
||||||
|
int tdbDbNext(STDBC *pDbc, void **ppKey, int *kLen, void **ppVal, int *vLen);
|
||||||
|
int tdbDbcClose(STDBC *pDbc);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -48,9 +48,28 @@ TEST(tdb_test, simple_test) {
|
||||||
TDB_FREE(pVal);
|
TDB_FREE(pVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
{ // Loop to query the data
|
{ // Iterate to query the DB data
|
||||||
// STDbC *pDBC;
|
STDBC *pDBC;
|
||||||
// tdbDBNext(pDBC, p)
|
void *pKey = NULL;
|
||||||
|
void *pVal = NULL;
|
||||||
|
int vLen, kLen;
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
ret = tdbDbcOpen(pDb, &pDBC);
|
||||||
|
GTEST_ASSERT_EQ(ret, 0);
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
ret = tdbDbNext(pDBC, &pKey, &kLen, &pVal, &vLen);
|
||||||
|
if (ret < 0) break;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
GTEST_ASSERT_EQ(count, nData);
|
||||||
|
|
||||||
|
tdbDbcClose(pDBC);
|
||||||
|
|
||||||
|
TDB_FREE(pKey);
|
||||||
|
TDB_FREE(pVal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue