refact
This commit is contained in:
parent
628c989ee9
commit
072a30bd39
|
@ -19,7 +19,7 @@ struct SBTree {
|
|||
SPgno root;
|
||||
int keyLen;
|
||||
int valLen;
|
||||
SPFile * pFile;
|
||||
SPager * pFile;
|
||||
FKeyComparator kcmpr;
|
||||
};
|
||||
|
||||
|
@ -52,7 +52,7 @@ static int tdbInitBtPage(SPage *pPage, SBtPage **ppBtPage);
|
|||
static int tdbCompareKeyAndCell(const void *pKey, int kLen, const void *pCell);
|
||||
static int tdbDefaultKeyCmprFn(const void *pKey1, int keyLen1, const void *pKey2, int keyLen2);
|
||||
|
||||
int tdbBtreeOpen(SPgno rtPgno, int keyLen, int valLen, SPFile *pFile, FKeyComparator kcmpr, SBTree **ppBt) {
|
||||
int tdbBtreeOpen(SPgno rtPgno, int keyLen, int valLen, SPager *pFile, FKeyComparator kcmpr, SBTree **ppBt) {
|
||||
SBTree *pBt;
|
||||
|
||||
*ppBt = NULL;
|
||||
|
@ -93,7 +93,7 @@ int tdbBtreeCursor(SBtCursor *pCur, SBTree *pBt) {
|
|||
|
||||
int tdbBtCursorInsert(SBtCursor *pCur, const void *pKey, int kLen, const void *pVal, int vLen) {
|
||||
int ret;
|
||||
SPFile * pFile;
|
||||
SPager * pFile;
|
||||
SBtPage *pPage;
|
||||
|
||||
ret = tdbBtCursorMoveTo(pCur, pKey, kLen);
|
||||
|
@ -199,7 +199,7 @@ static int tdbEncodeLength(u8 *pBuf, uint len) {
|
|||
|
||||
static int tdbBtCursorMoveToRoot(SBtCursor *pCur) {
|
||||
SBTree * pBt;
|
||||
SPFile * pFile;
|
||||
SPager * pFile;
|
||||
SPage * pPage;
|
||||
SBtPage *pBtPage;
|
||||
int ret;
|
||||
|
@ -207,7 +207,7 @@ static int tdbBtCursorMoveToRoot(SBtCursor *pCur) {
|
|||
pBt = pCur->pBt;
|
||||
pFile = pBt->pFile;
|
||||
|
||||
pPage = tdbPFileGet(pFile, pBt->root);
|
||||
pPage = tdbPagerGet(pFile, pBt->root);
|
||||
if (pPage == NULL) {
|
||||
// TODO: handle error
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ struct STDb {
|
|||
|
||||
int tdbDbOpen(const char *fname, int keyLen, int valLen, FKeyComparator keyCmprFn, STEnv *pEnv, STDb **ppDb) {
|
||||
STDb * pDb;
|
||||
SPFile *pFile;
|
||||
SPager *pFile;
|
||||
int ret;
|
||||
char fFullName[TDB_FILENAME_LEN];
|
||||
SPage * pPage;
|
||||
|
@ -41,7 +41,7 @@ int tdbDbOpen(const char *fname, int keyLen, int valLen, FKeyComparator keyCmprF
|
|||
pFile = tdbEnvGetPFile(pEnv, fname);
|
||||
if (pFile == NULL) {
|
||||
snprintf(fFullName, TDB_FILENAME_LEN, "%s/%s", pEnv->rootDir, fname);
|
||||
ret = tdbPFileOpen(pEnv->pCache, fFullName, &pFile);
|
||||
ret = tdbPagerOpen(pEnv->pCache, fFullName, &pFile);
|
||||
if (ret < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ int tdbDbOpen(const char *fname, int keyLen, int valLen, FKeyComparator keyCmprF
|
|||
|
||||
ASSERT(pFile != NULL);
|
||||
|
||||
ret = tdbPFileOpenDB(pFile, &pgno, true);
|
||||
ret = tdbPagerOpenDB(pFile, &pgno, true);
|
||||
if (ret < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ int tdbEnvClose(STEnv *pEnv) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
SPFile *tdbEnvGetPFile(STEnv *pEnv, const char *fname) {
|
||||
SPager *tdbEnvGetPFile(STEnv *pEnv, const char *fname) {
|
||||
// TODO
|
||||
return NULL;
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#include "tdbInt.h"
|
||||
|
||||
struct SPFile {
|
||||
struct SPager {
|
||||
char * dbFileName;
|
||||
char * jFileName;
|
||||
int pageSize;
|
||||
|
@ -41,11 +41,11 @@ typedef struct __attribute__((__packed__)) {
|
|||
|
||||
TDB_STATIC_ASSERT(sizeof(SFileHdr) == 128, "Size of file header is not correct");
|
||||
|
||||
static int tdbPFileReadPage(SPFile *pFile, SPage *pPage);
|
||||
static int tdbPagerReadPage(SPager *pFile, SPage *pPage);
|
||||
|
||||
int tdbPFileOpen(SPCache *pCache, const char *fileName, SPFile **ppFile) {
|
||||
int tdbPagerOpen(SPCache *pCache, const char *fileName, SPager **ppFile) {
|
||||
uint8_t *pPtr;
|
||||
SPFile * pFile;
|
||||
SPager * pFile;
|
||||
int fsize;
|
||||
int zsize;
|
||||
int ret;
|
||||
|
@ -53,7 +53,7 @@ int tdbPFileOpen(SPCache *pCache, const char *fileName, SPFile **ppFile) {
|
|||
*ppFile = NULL;
|
||||
|
||||
fsize = strlen(fileName);
|
||||
zsize = sizeof(*pFile) /* SPFile */
|
||||
zsize = sizeof(*pFile) /* SPager */
|
||||
+ fsize + 1 /* dbFileName */
|
||||
+ fsize + 8 + 1; /* jFileName */
|
||||
pPtr = (uint8_t *)calloc(1, zsize);
|
||||
|
@ -61,7 +61,7 @@ int tdbPFileOpen(SPCache *pCache, const char *fileName, SPFile **ppFile) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
pFile = (SPFile *)pPtr;
|
||||
pFile = (SPager *)pPtr;
|
||||
pPtr += sizeof(*pFile);
|
||||
// pFile->dbFileName
|
||||
pFile->dbFileName = (char *)pPtr;
|
||||
|
@ -92,12 +92,12 @@ int tdbPFileOpen(SPCache *pCache, const char *fileName, SPFile **ppFile) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int tdbPFileClose(SPFile *pFile) {
|
||||
int tdbPagerClose(SPager *pFile) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tdbPFileOpenDB(SPFile *pFile, SPgno *ppgno, bool toCreate) {
|
||||
int tdbPagerOpenDB(SPager *pFile, SPgno *ppgno, bool toCreate) {
|
||||
SPgno pgno;
|
||||
SPage *pPage;
|
||||
int ret;
|
||||
|
@ -108,13 +108,13 @@ int tdbPFileOpenDB(SPFile *pFile, SPgno *ppgno, bool toCreate) {
|
|||
}
|
||||
|
||||
if (pgno == 0 && toCreate) {
|
||||
ret = tdbPFileAllocPage(pFile, &pPage, &pgno);
|
||||
ret = tdbPagerAllocPage(pFile, &pPage, &pgno);
|
||||
if (ret < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// tdbPFileZeroPage(pPage);
|
||||
ret = tdbPFileWrite(pFile, pPage);
|
||||
ret = tdbPagerWrite(pFile, pPage);
|
||||
if (ret < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ int tdbPFileOpenDB(SPFile *pFile, SPgno *ppgno, bool toCreate) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
SPage *tdbPFileGet(SPFile *pFile, SPgno pgno) {
|
||||
SPage *tdbPagerGet(SPager *pFile, SPgno pgno) {
|
||||
SPgid pgid;
|
||||
SPage *pPage;
|
||||
|
||||
|
@ -142,7 +142,7 @@ SPage *tdbPFileGet(SPFile *pFile, SPgno pgno) {
|
|||
if (pgno > pFile->dbFileSize /*TODO*/) {
|
||||
memset(pPage->pData, 0, pFile->pageSize);
|
||||
} else {
|
||||
if (tdbPFileReadPage(pFile, pPage) < 0) {
|
||||
if (tdbPagerReadPage(pFile, pPage) < 0) {
|
||||
// TODO: handle error
|
||||
return NULL;
|
||||
}
|
||||
|
@ -156,11 +156,11 @@ SPage *tdbPFileGet(SPFile *pFile, SPgno pgno) {
|
|||
return pPage;
|
||||
}
|
||||
|
||||
int tdbPFileWrite(SPFile *pFile, SPage *pPage) {
|
||||
int tdbPagerWrite(SPager *pFile, SPage *pPage) {
|
||||
int ret;
|
||||
|
||||
if (pFile->inTran == 0) {
|
||||
ret = tdbPFileBegin(pFile);
|
||||
ret = tdbPagerBegin(pFile);
|
||||
if (ret < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -177,13 +177,13 @@ int tdbPFileWrite(SPFile *pFile, SPage *pPage) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int tdbPFileAllocPage(SPFile *pFile, SPage **ppPage, SPgno *ppgno) {
|
||||
int tdbPagerAllocPage(SPager *pFile, SPage **ppPage, SPgno *ppgno) {
|
||||
SPage *pPage;
|
||||
SPgno pgno;
|
||||
|
||||
if (1 /*TODO: no free page*/) {
|
||||
pgno = ++pFile->dbFileSize;
|
||||
pPage = tdbPFileGet(pFile, pgno);
|
||||
pPage = tdbPagerGet(pFile, pgno);
|
||||
ASSERT(pPage != NULL);
|
||||
} else {
|
||||
/* TODO: allocate from the free list */
|
||||
|
@ -195,7 +195,7 @@ int tdbPFileAllocPage(SPFile *pFile, SPage **ppPage, SPgno *ppgno) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int tdbPFileBegin(SPFile *pFile) {
|
||||
int tdbPagerBegin(SPager *pFile) {
|
||||
if (pFile->inTran) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -213,17 +213,12 @@ int tdbPFileBegin(SPFile *pFile) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int tdbPFileCommit(SPFile *pFile) {
|
||||
int tdbPagerCommit(SPager *pFile) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tdbPFileRollback(SPFile *pFile) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int tdbPFileReadPage(SPFile *pFile, SPage *pPage) {
|
||||
static int tdbPagerReadPage(SPager *pFile, SPage *pPage) {
|
||||
i64 offset;
|
||||
int ret;
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ struct SBtCursor {
|
|||
void * pBuf;
|
||||
};
|
||||
|
||||
int tdbBtreeOpen(SPgno rtPgno, int keyLen, int valLen, SPFile *pFile, FKeyComparator kcmpr, SBTree **ppBt);
|
||||
int tdbBtreeOpen(SPgno rtPgno, int keyLen, int valLen, SPager *pFile, FKeyComparator kcmpr, SBTree **ppBt);
|
||||
int tdbBtreeClose(SBTree *pBt);
|
||||
int tdbBtreeCursor(SBtCursor *pCur, SBTree *pBt);
|
||||
int tdbBtCursorInsert(SBtCursor *pCur, const void *pKey, int kLen, const void *pVal, int vLen);
|
||||
|
|
|
@ -30,7 +30,7 @@ typedef struct STEnv {
|
|||
int tdbEnvOpen(const char *rootDir, int pageSize, int cacheSize, STEnv **ppEnv);
|
||||
int tdbEnvClose(STEnv *pEnv);
|
||||
|
||||
SPFile *tdbEnvGetPFile(STEnv *pEnv, const char *fname);
|
||||
SPager *tdbEnvGetPFile(STEnv *pEnv, const char *fname);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -20,17 +20,16 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct SPFile SPFile;
|
||||
typedef struct SPager SPager;
|
||||
|
||||
int tdbPFileOpen(SPCache *pCache, const char *fileName, SPFile **ppFile);
|
||||
int tdbPFileClose(SPFile *pFile);
|
||||
int tdbPFileOpenDB(SPFile *pFile, SPgno *ppgno, bool toCreate);
|
||||
SPage *tdbPFileGet(SPFile *pFile, SPgno pgno);
|
||||
int tdbPFileWrite(SPFile *pFile, SPage *pPage);
|
||||
int tdbPFileAllocPage(SPFile *pFile, SPage **ppPage, SPgno *ppgno);
|
||||
int tdbPFileBegin(SPFile *pFile);
|
||||
int tdbPFileCommit(SPFile *pFile);
|
||||
int tdbPFileRollback(SPFile *pFile);
|
||||
int tdbPagerOpen(SPCache *pCache, const char *fileName, SPager **ppFile);
|
||||
int tdbPagerClose(SPager *pFile);
|
||||
int tdbPagerOpenDB(SPager *pFile, SPgno *ppgno, bool toCreate);
|
||||
SPage *tdbPagerGet(SPager *pFile, SPgno pgno);
|
||||
int tdbPagerWrite(SPager *pFile, SPage *pPage);
|
||||
int tdbPagerAllocPage(SPager *pFile, SPage **ppPage, SPgno *ppgno);
|
||||
int tdbPagerBegin(SPager *pFile);
|
||||
int tdbPagerCommit(SPager *pFile);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue