vnodeWrite.c 1.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/*
 * 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/>.
 */

H
refact  
Hongze Cheng 已提交
16 17 18 19 20 21 22
#include "vnodeDef.h"

int vnodeProcessWriteReqs(SVnode *pVnode, SReqBatch *pReqBatch) {
  /* TODO */
  return 0;
}

H
Hongze Cheng 已提交
23
int vnodeApplyWriteRequest(SVnode *pVnode, const SRequest *pRequest) {
H
refact  
Hongze Cheng 已提交
24 25 26 27 28 29 30 31 32 33
  int    reqType; /* TODO */
  size_t reqSize; /* TODO */
  int    code = 0;

  // Copy the request to vnode buffer
  SRequest *pReq = mMalloc(pVnode->inuse, reqSize);
  if (pReq == NULL) {
    // TODO: handle error
  }

H
more  
Hongze Cheng 已提交
34 35
  memcpy(pReq, pRequest, reqSize);

H
refact  
Hongze Cheng 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
  // Push the request to TQ so consumers can consume
  tqPushMsg(pVnode->pTq, pReq, 0);

  // Process the request
  switch (reqType) {
    case TSDB_MSG_TYPE_CREATE_TABLE:
      code = metaCreateTable(pVnode->pMeta, NULL /* TODO */);
      break;
    case TSDB_MSG_TYPE_DROP_TABLE:
      code = metaDropTable(pVnode->pMeta, 0 /* TODO */);
      break;
      /* TODO */
    default:
      break;
  }

  if (vnodeShouldCommit(pVnode)) {
    if (vnodeAsyncCommit(pVnode) < 0) {
      // TODO: handle error
    }
  }

  return code;
H
more  
Hongze Cheng 已提交
59 60
}

H
Hongze Cheng 已提交
61
/* ------------------------ STATIC METHODS ------------------------ */