refact TDB
This commit is contained in:
parent
8da5bbafd1
commit
d1d587937b
|
@ -22,42 +22,6 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// #define TDB_EXTERN
|
|
||||||
// #define TDB_PUBLIC
|
|
||||||
// #define TDB_STATIC static
|
|
||||||
|
|
||||||
// typedef enum { TDB_BTREE_T = 0, TDB_HASH_T = 1, TDB_HEAP_T = 2 } tdb_db_t;
|
|
||||||
|
|
||||||
// // Forward declarations
|
|
||||||
// typedef struct TDB TDB;
|
|
||||||
// // typedef struct TDB_MPOOL TDB_MPOOL;
|
|
||||||
// // typedef struct TDB_MPFILE TDB_MPFILE;
|
|
||||||
// // typedef struct TDB_CURSOR TDB_CURSOR;
|
|
||||||
|
|
||||||
// typedef struct {
|
|
||||||
// void* bdata;
|
|
||||||
// uint32_t size;
|
|
||||||
// } TDB_KEY, TDB_VALUE;
|
|
||||||
|
|
||||||
// // TDB Operations
|
|
||||||
// int tdbCreateDB(TDB** dbpp, tdb_db_t type);
|
|
||||||
// int tdbOpenDB(TDB* dbp, const char* fname, const char* dbname, uint32_t flags);
|
|
||||||
// int tdbCloseDB(TDB* dbp, uint32_t flags);
|
|
||||||
// int tdbPut(TDB* dbp, const TDB_KEY* key, const TDB_VALUE* value, uint32_t flags);
|
|
||||||
// int tdbGet(TDB* dbp, const TDB_KEY* key, TDB_VALUE* value, uint32_t flags);
|
|
||||||
|
|
||||||
// // TDB_MPOOL
|
|
||||||
// int tdbOpenMPool(TDB_MPOOL** mp);
|
|
||||||
// int tdbCloseMPool(TDB_MPOOL* mp);
|
|
||||||
|
|
||||||
// // TDB_MPFILE
|
|
||||||
// int tdbOpenMPFile(TDB_MPFILE** mpf, TDB_MPOOL* mp);
|
|
||||||
// int tdbCloseMPFile(TDB_MPFILE** mpf);
|
|
||||||
|
|
||||||
// // TDB_CURSOR
|
|
||||||
// int tdbOpenCursor(TDB* dbp, TDB_CURSOR** tdbcpp);
|
|
||||||
// int tdbCloseCurosr(TDB_CURSOR* tdbcp);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can use, redistribute, and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License, version 3
|
||||||
|
* or later ("AGPL"), as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
|
@ -0,0 +1,14 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can use, redistribute, and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License, version 3
|
||||||
|
* or later ("AGPL"), as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
|
@ -13,7 +13,7 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tdb_inc.h"
|
#include "tdbInt.h"
|
||||||
|
|
||||||
int tdbGnrtFileID(const char *fname, uint8_t *fileid) {
|
int tdbGnrtFileID(const char *fname, uint8_t *fileid) {
|
||||||
struct stat statbuf;
|
struct stat statbuf;
|
||||||
|
|
|
@ -13,21 +13,21 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TDB_BTREE_H_
|
#ifndef _TD_BTREE_H_
|
||||||
#define _TDB_BTREE_H_
|
#define _TD_BTREE_H_
|
||||||
|
|
||||||
#include "tdb_inc.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef struct SBTree SBTree;
|
||||||
|
|
||||||
struct SBTree {
|
struct SBTree {
|
||||||
pgno_t root; // root page number
|
// TODO
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /*_TDB_BTREE_H_*/
|
#endif /*_TD_BTREE_H_*/
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can use, redistribute, and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License, version 3
|
||||||
|
* or later ("AGPL"), as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _TD_PAGE_CACHE_H_
|
||||||
|
#define _TD_PAGE_CACHE_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct SPgCache SPgCache;
|
||||||
|
typedef struct SPage SPage;
|
||||||
|
|
||||||
|
// SPgCache
|
||||||
|
int pgCacheCreate(SPgCache **ppPgCache);
|
||||||
|
int pgCacheDestroy(SPgCache *pPgCache);
|
||||||
|
int pgCacheOpen(SPgCache *pPgCache);
|
||||||
|
int pgCacheClose(SPgCache *pPgCache);
|
||||||
|
|
||||||
|
SPage *pgCacheFetch(SPgCache *pPgCache);
|
||||||
|
int pgCacheRelease(SPage *pPage);
|
||||||
|
|
||||||
|
// SPage
|
||||||
|
|
||||||
|
// Impl
|
||||||
|
struct SPgCache {
|
||||||
|
// TODO
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*_TD_PAGE_CACHE_H_*/
|
|
@ -13,25 +13,17 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TDB_PAGE_H_
|
#ifndef _TD_PAGE_FILE_H_
|
||||||
#define _TDB_PAGE_H_
|
#define _TD_PAGE_FILE_H_
|
||||||
|
|
||||||
#include "tdb_inc.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Page header
|
typedef struct SPgFile SPgFile;
|
||||||
typedef struct {
|
|
||||||
uint32_t magic;
|
|
||||||
pgno_t pgno; // current page number
|
|
||||||
pgno_t npgno; // next page number
|
|
||||||
pgno_t ppgno; // prev page number
|
|
||||||
} SPgHdr;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /*_TDB_PAGE_H_*/
|
#endif /*_TD_PAGE_FILE_H_*/
|
|
@ -13,8 +13,8 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TD_TDB_INC_H_
|
#ifndef _TD_TDB_INTERNAL_H_
|
||||||
#define _TD_TDB_INC_H_
|
#define _TD_TDB_INTERNAL_H_
|
||||||
|
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
#include "tlist.h"
|
#include "tlist.h"
|
||||||
|
@ -58,4 +58,4 @@ int tdbGnrtFileID(const char *fname, uint8_t *fileid);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /*_TD_TDB_INC_H_*/
|
#endif /*_TD_TDB_INTERNAL_H_*/
|
|
@ -16,7 +16,7 @@
|
||||||
#ifndef _TD_TDB_MPOOL_H_
|
#ifndef _TD_TDB_MPOOL_H_
|
||||||
#define _TD_TDB_MPOOL_H_
|
#define _TD_TDB_MPOOL_H_
|
||||||
|
|
||||||
#include "tdb_inc.h"
|
#include "tdbInt.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
Loading…
Reference in New Issue