Unqlite相关的笔记
官网链接-unqlite_kv_fetch_callback
关于unqlite_kv_cursor_key和unqlite_kv_cursor_key_callback
- unqlite_kv_cursor_key
int unqlite_kv_cursor_key(unqlite_kv_cursor *pCursor, void *pBuf, int *pnByte)
{
int rc;
#ifdef UNTRUST
if (pCursor == 0) {
return UNQLITE_CORRUPT;
}
#endif
if (pBuf == 0) {
/* Key length only */
rc = pCursor->pStore->pIo->pMethods->xKeyLength(pCursor, pnByte);
}
else {
SyBlob sBlob;
if ((*pnByte) < 0) {
return UNQLITE_CORRUPT;
}
/* Initialize the data consumer */
SyBlobInitFromBuf(&sBlob, pBuf, (sxu32)(*pnByte));
/* Consume the key */
rc = pCursor->pStore->pIo->pMethods->xKey(pCursor, unqliteDataConsumer, &sBlob);
/* Key length */
*pnByte = SyBlobLength(&sBlob);
/* Cleanup */
SyBlobRelease(&sBlob);
}