save
This commit is contained in:
parent
a92aa1c57a
commit
993d28df0f
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
* 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_VNODE_IMPL_H_
|
||||||
|
#define _TD_VNODE_IMPL_H_
|
||||||
|
|
||||||
|
#include "os.h"
|
||||||
|
|
||||||
|
#include "meta.h"
|
||||||
|
#include "tq.h"
|
||||||
|
#include "tsdb.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct SVnodeOptions {
|
||||||
|
STsdbOptions tsdbOptions;
|
||||||
|
SMetaOptions metaOptions;
|
||||||
|
// STqOptions tqOptions; // TODO
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*_TD_VNODE_IMPL_H_*/
|
|
@ -16,15 +16,29 @@
|
||||||
#ifndef _TD_VNODE_H_
|
#ifndef _TD_VNODE_H_
|
||||||
#define _TD_VNODE_H_
|
#define _TD_VNODE_H_
|
||||||
|
|
||||||
#include "os.h"
|
#include "impl/vnodeImpl.h"
|
||||||
#include "taosmsg.h"
|
|
||||||
#include "trpc.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* ------------------------ TYPES EXPOSED ------------------------ */
|
||||||
typedef struct SVnode SVnode;
|
typedef struct SVnode SVnode;
|
||||||
|
typedef struct SVnodeOptions SVnodeOptions;
|
||||||
|
|
||||||
|
/* ------------------------ SVnode ------------------------ */
|
||||||
|
SVnode *vnodeOpen(const char *path, const SVnodeOptions *pVnodeOptions);
|
||||||
|
void vnodeClose(SVnode *pVnode);
|
||||||
|
void vnodeDestroy(const char *path);
|
||||||
|
|
||||||
|
/* ------------------------ SVnodeOptions ------------------------ */
|
||||||
|
void vnodeOptionsInit(SVnodeOptions *);
|
||||||
|
void vnodeOptionsClear(SVnodeOptions *);
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
|
||||||
|
#include "taosMsg.h"
|
||||||
|
#include "trpc.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char db[TSDB_FULL_DB_NAME_LEN];
|
char db[TSDB_FULL_DB_NAME_LEN];
|
||||||
|
@ -70,8 +84,6 @@ typedef struct {
|
||||||
int32_t vnodeInit(SVnodePara);
|
int32_t vnodeInit(SVnodePara);
|
||||||
void vnodeCleanup();
|
void vnodeCleanup();
|
||||||
|
|
||||||
SVnode *vnodeOpen(int32_t vgId, const char *path);
|
|
||||||
void vnodeClose(SVnode *pVnode);
|
|
||||||
int32_t vnodeAlter(SVnode *pVnode, const SVnodeCfg *pCfg);
|
int32_t vnodeAlter(SVnode *pVnode, const SVnodeCfg *pCfg);
|
||||||
SVnode *vnodeCreate(int32_t vgId, const char *path, const SVnodeCfg *pCfg);
|
SVnode *vnodeCreate(int32_t vgId, const char *path, const SVnodeCfg *pCfg);
|
||||||
void vnodeDrop(SVnode *pVnode);
|
void vnodeDrop(SVnode *pVnode);
|
||||||
|
@ -85,6 +97,8 @@ int32_t vnodeAppendMsg(SVnodeMsg *pMsg, SRpcMsg *pRpcMsg);
|
||||||
void vnodeCleanupMsg(SVnodeMsg *pMsg);
|
void vnodeCleanupMsg(SVnodeMsg *pMsg);
|
||||||
void vnodeProcessMsg(SVnode *pVnode, SVnodeMsg *pMsg, EVnMsgType msgType);
|
void vnodeProcessMsg(SVnode *pVnode, SVnodeMsg *pMsg, EVnMsgType msgType);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -7,6 +7,7 @@ target_include_directories(
|
||||||
)
|
)
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
vnode
|
vnode
|
||||||
|
PUBLIC os
|
||||||
PUBLIC transport
|
PUBLIC transport
|
||||||
PUBLIC meta
|
PUBLIC meta
|
||||||
PUBLIC tq
|
PUBLIC tq
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* 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_VNODE_DEF_H_
|
||||||
|
#define _TD_VNODE_DEF_H_
|
||||||
|
|
||||||
|
#include "vnode.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct SVnode {
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*_TD_VNODE_DEF_H_*/
|
|
@ -39,16 +39,6 @@ extern int32_t vDebugFlag;
|
||||||
#define vDebug(...) { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("VND ", vDebugFlag, __VA_ARGS__); }}
|
#define vDebug(...) { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("VND ", vDebugFlag, __VA_ARGS__); }}
|
||||||
#define vTrace(...) { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("VND ", vDebugFlag, __VA_ARGS__); }}
|
#define vTrace(...) { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("VND ", vDebugFlag, __VA_ARGS__); }}
|
||||||
|
|
||||||
typedef struct SVnode {
|
|
||||||
int32_t vgId;
|
|
||||||
SVnodeCfg cfg;
|
|
||||||
SMeta *pMeta;
|
|
||||||
STsdb *pTsdb;
|
|
||||||
STQ *pTQ;
|
|
||||||
SWal *pWal;
|
|
||||||
SSyncNode *pSync;
|
|
||||||
} SVnode;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -21,6 +21,8 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#include "vnodeInt.h"
|
#include "vnodeInt.h"
|
||||||
|
|
||||||
|
typedef void SVnodeMsg;
|
||||||
|
|
||||||
void vnodeProcessReadMsg(SVnode *pVnode, SVnodeMsg *pMsg);
|
void vnodeProcessReadMsg(SVnode *pVnode, SVnodeMsg *pMsg);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -16,10 +16,13 @@
|
||||||
#ifndef _TD_VNODE_WRITE_H_
|
#ifndef _TD_VNODE_WRITE_H_
|
||||||
#define _TD_VNODE_WRITE_H_
|
#define _TD_VNODE_WRITE_H_
|
||||||
|
|
||||||
|
#include "vnode.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#include "vnodeInt.h"
|
|
||||||
|
typedef void SVnodeMsg;
|
||||||
|
|
||||||
void vnodeProcessWriteMsg(SVnode* pVnode, SVnodeMsg* pMsg);
|
void vnodeProcessWriteMsg(SVnode* pVnode, SVnodeMsg* pMsg);
|
||||||
|
|
||||||
|
|
|
@ -13,6 +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/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if 0
|
||||||
#define _DEFAULT_SOURCE
|
#define _DEFAULT_SOURCE
|
||||||
#include "vnodeInt.h"
|
#include "vnodeInt.h"
|
||||||
#include "tqueue.h"
|
#include "tqueue.h"
|
||||||
|
@ -70,3 +71,5 @@ void vnodeProcessMsg(SVnode *pVnode, SVnodeMsg *pMsg, EVnMsgType msgType) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "vnodeDef.h"
|
||||||
|
|
||||||
|
SVnode *vnodeOpen(const char *path, const SVnodeOptions *pVnodeOptions) {
|
||||||
|
SVnode *pVnode = NULL;
|
||||||
|
/* TODO */
|
||||||
|
return pVnode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void vnodeCloee(SVnode *pVnode) { /* TODO */
|
||||||
|
}
|
||||||
|
|
||||||
|
void vnodeDestroy(const char *path) { taosRemoveDir(path); }
|
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "vnodeDef.h"
|
||||||
|
|
||||||
|
void vnodeOptionsInit(SVnodeOptions *pVnodeOptions) { /* TODO */ }
|
||||||
|
|
||||||
|
void vnodeOptionsClear(SVnodeOptions *pVnodeOptions) { /* TODO */ }
|
Loading…
Reference in New Issue