more code

This commit is contained in:
Hongze Cheng 2023-04-23 14:57:49 +08:00
parent 85a36d625e
commit 7cf2911c23
4 changed files with 96 additions and 52 deletions

View File

@ -238,6 +238,54 @@ void tdListNodeGetData(SList *list, SListNode *node, void *target);
void tdListInitIter(SList *list, SListIter *pIter, TD_LIST_DIRECTION_T direction); void tdListInitIter(SList *list, SListIter *pIter, TD_LIST_DIRECTION_T direction);
SListNode *tdListNext(SListIter *pIter); SListNode *tdListNext(SListIter *pIter);
// macros ====================================================================================
// q: for queue
// n: for node
// m: for member
#define LISTD(TYPE) \
struct { \
TYPE *next, *prev; \
}
#define LISTD_NEXT(n, m) ((n)->m.next)
#define LISTD_PREV(n, m) ((n)->m.prev)
#define LISTD_INIT(q, m) (LISTD_NEXT(q, m) = LISTD_PREV(q, m) = (q))
#define LISTD_HEAD(q, m) (LISTD_NEXT(q, m))
#define LISTD_TAIL(q, m) (LISTD_PREV(q, m))
#define LISTD_PREV_NEXT(n, m) (LISTD_NEXT(LISTD_PREV(n, m), m))
#define LISTD_NEXT_PREV(n, m) (LISTD_PREV(LISTD_NEXT(n, m), m))
#define LISTD_INSERT_HEAD(q, n, m) \
do { \
LISTD_NEXT(n, m) = LISTD_NEXT(q, m); \
LISTD_PREV(n, m) = (q); \
LISTD_NEXT_PREV(n, m) = (n); \
LISTD_NEXT(q, m) = (n); \
} while (0)
#define LISTD_INSERT_TAIL(q, n, m) \
do { \
LISTD_NEXT(n, m) = (q); \
LISTD_PREV(n, m) = LISTD_PREV(q, m); \
LISTD_PREV_NEXT(n, m) = (n); \
LISTD_PREV(q, m) = (n); \
} while (0)
#define LISTD_REMOVE(n, m) \
do { \
LISTD_PREV_NEXT(n, m) = LISTD_NEXT(n, m); \
LISTD_NEXT_PREV(n, m) = LISTD_PREV(n, m); \
} while (0)
#define LISTD_FOREACH(q, n, m) for ((n) = LISTD_HEAD(q, m); (n) != (q); (n) = LISTD_NEXT(n, m))
#define LISTD_FOREACH_REVERSE(q, n, m) for ((n) = LISTD_TAIL(q, m); (n) != (q); (n) = LISTD_PREV(n, m))
#define LISTD_FOREACH_SAFE(q, n, t, m) \
for ((n) = LISTD_HEAD(q, m), (t) = LISTD_NEXT(n, m); (n) != (q); (n) = (t), (t) = LISTD_NEXT(n, m))
#define LISTD_FOREACH_REVERSE_SAFE(q, n, t, m) \
for ((n) = LISTD_TAIL(q, m), (t) = LISTD_PREV(n, m); (n) != (q); (n) = (t), (t) = LISTD_PREV(n, m))
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -34,49 +34,49 @@ int32_t tsdbFileSetEdit(struct SFileSet *pSet, struct SFileOp *pOp) {
int32_t code = 0; int32_t code = 0;
int32_t lino; int32_t lino;
switch (pOp->op) { // switch (pOp->op) {
case TSDB_FOP_CREATE: { // case TSDB_FOP_CREATE: {
struct STFile **ppFile; // struct STFile **ppFile;
switch (pOp->nState.type) { // switch (pOp->nState.type) {
case TSDB_FTYPE_HEAD: { // case TSDB_FTYPE_HEAD: {
ppFile = &pSet->fHead; // ppFile = &pSet->fHead;
} break; // } break;
case TSDB_FTYPE_DATA: { // case TSDB_FTYPE_DATA: {
ppFile = &pSet->fData; // ppFile = &pSet->fData;
} break; // } break;
case TSDB_FTYPE_SMA: { // case TSDB_FTYPE_SMA: {
ppFile = &pSet->fSma; // ppFile = &pSet->fSma;
} break; // } break;
case TSDB_FTYPE_TOMB: { // case TSDB_FTYPE_TOMB: {
ppFile = &pSet->fTomb; // ppFile = &pSet->fTomb;
} break; // } break;
case TSDB_FTYPE_STT: { // case TSDB_FTYPE_STT: {
// ppFile = &pSet->lStt[0].fStt; // // ppFile = &pSet->lStt[0].fStt;
} break; // } break;
default: { // default: {
ASSERTS(0, "Invalid file type"); // ASSERTS(0, "Invalid file type");
} break; // } break;
} // }
TSDB_CHECK_CODE( // // TSDB_CHECK_CODE( //
code = tsdbTFileCreate(&pOp->nState, ppFile), // // code = tsdbTFileCreate(&pOp->nState, ppFile), //
lino, // // lino, //
_exit); // _exit);
} break; // } break;
case TSDB_FOP_DELETE: { // case TSDB_FOP_DELETE: {
ASSERTS(0, "TODO: Not implemented yet"); // ASSERTS(0, "TODO: Not implemented yet");
} break; // } break;
case TSDB_FOP_TRUNCATE: { // case TSDB_FOP_TRUNCATE: {
ASSERTS(0, "TODO: Not implemented yet"); // ASSERTS(0, "TODO: Not implemented yet");
} break; // } break;
case TSDB_FOP_EXTEND: { // case TSDB_FOP_EXTEND: {
ASSERTS(0, "TODO: Not implemented yet"); // ASSERTS(0, "TODO: Not implemented yet");
} break; // } break;
default: { // default: {
ASSERTS(0, "Invalid file operation"); // ASSERTS(0, "Invalid file operation");
} break; // } break;
} // }
_exit: _exit:
return code; return code;

View File

@ -42,18 +42,15 @@ struct SFileOp {
struct SSttLvl { struct SSttLvl {
int32_t level; int32_t level;
int32_t nStt; int32_t nStt;
SSttLvl *pNext;
struct STFile *fSttList; struct STFile *fSttList;
LISTD(SSttLvl) listNode;
}; };
struct SFileSet { struct SFileSet {
int32_t fid; int32_t fid;
int64_t nextid; int64_t nextid;
struct STFile *fHead; // .head struct STFile *farr[TSDB_FTYPE_MAX];
struct STFile *fData; // .data SSttLvl lvl0; // level 0 of .stt
struct STFile *fSma; // .sma
struct STFile *fTomb; // .tomb
SSttLvl *sttLevelList;
}; };
int32_t tsdbFileSetCreate(int32_t fid, struct SFileSet **ppSet); int32_t tsdbFileSetCreate(int32_t fid, struct SFileSet **ppSet);

View File

@ -23,23 +23,22 @@ extern "C" {
#endif #endif
typedef enum { typedef enum {
TSDB_FTYPE_NONE = 0, // NONE TSDB_FTYPE_HEAD = 0, // .head
TSDB_FTYPE_HEAD, // .head
TSDB_FTYPE_DATA, // .data TSDB_FTYPE_DATA, // .data
TSDB_FTYPE_SMA, // .sma TSDB_FTYPE_SMA, // .sma
TSDB_FTYPE_TOMB, // .tomb TSDB_FTYPE_TOMB, // .tomb
TSDB_FTYPE_MAX, // max
TSDB_FTYPE_STT, // .stt TSDB_FTYPE_STT, // .stt
} tsdb_ftype_t; } tsdb_ftype_t;
struct STFile { struct STFile {
char fname[TSDB_FILENAME_LEN];
int32_t ref;
tsdb_ftype_t type; tsdb_ftype_t type;
SDiskID diskId; SDiskID diskId;
int64_t size; int64_t size;
int64_t cid; int64_t cid;
int32_t fid; int32_t fid;
int32_t ref;
char fname[TSDB_FILENAME_LEN];
}; };
int32_t tsdbTFileCreate(const struct STFile *config, struct STFile **ppFile); int32_t tsdbTFileCreate(const struct STFile *config, struct STFile **ppFile);