This commit is contained in:
Hongze Cheng 2022-01-07 10:54:54 +00:00
parent f70c550359
commit 0439c52575
2 changed files with 17 additions and 6 deletions

View File

@ -24,8 +24,8 @@ extern "C" {
typedef struct SDiskMgr SDiskMgr; typedef struct SDiskMgr SDiskMgr;
int tdmReadPage(int32_t pgid, char *pData); int tdmReadPage(SDiskMgr *pDiskMgr, int32_t pgid, void *pData);
int tdmWritePage(int32_t pgid, const char *pData); int tdmWritePage(SDiskMgr *pDiskMgr, int32_t pgid, const void *pData);
int32_t tdmAllocPage(SDiskMgr *pDiskMgr); int32_t tdmAllocPage(SDiskMgr *pDiskMgr);
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -18,11 +18,22 @@
struct SDiskMgr { struct SDiskMgr {
const char *fname; const char *fname;
uint16_t pgsize; uint16_t pgsize;
int fd; FileFd fd;
int32_t npgid;
}; };
int tdmReadPage(int32_t pgid, char *pData) {} #define PAGE_OFFSET(PGID, PGSIZE) ((PGID) * (PGSIZE))
int tdmWritePage(int32_t pgid, const char *pData) {} int tdmReadPage(SDiskMgr *pDiskMgr, int32_t pgid, void *pData) {
taosLSeekFile(pDiskMgr->fd, PAGE_OFFSET(pgid, pDiskMgr->pgsize), SEEK_SET);
taosReadFile(pDiskMgr->fd, pData, pDiskMgr->pgsize);
return 0;
}
int32_t tdmAllocPage(SDiskMgr *pDiskMgr) {} int tdmWritePage(SDiskMgr *pDiskMgr, int32_t pgid, const void *pData) {
taosLSeekFile(pDiskMgr->fd, PAGE_OFFSET(pgid, pDiskMgr->pgsize), SEEK_SET);
taosWriteFile(pDiskMgr->fd, pData, pDiskMgr->pgsize);
return 0;
}
int32_t tdmAllocPage(SDiskMgr *pDiskMgr) { return pDiskMgr->npgid++; }