twal.h 1.3 KB
Newer Older
H
hzcheng 已提交
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/>.
 */
#ifndef _TD_WAL_H_
H
modify  
Hongze Cheng 已提交
16 17
#define _TD_WAL_H_

H
hzcheng 已提交
18 19 20
#ifdef __cplusplus
extern "C" {
#endif
H
modify  
Hongze Cheng 已提交
21

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#define TAOS_WAL_NOLOG   0
#define TAOS_WAL_WRITE   1
#define TAOS_WAL_FSYNC   2
 
typedef struct {
  uint32_t  signature;
  uint32_t  cksum;
  int8_t    msgType;
  int8_t    reserved[3];
  int32_t   len;
  uint64_t  version;
  char      cont[];
} SWalHead;

typedef void* twal_h;  // WAL HANDLE

twal_h  walOpen(char *path, int max, int level);
void    walClose(twal_h);
int     walRenew(twal_h);
int     walWrite(twal_h, SWalHead *);
void    walFsync(twal_h);
int     walRestore(twal_h, void *pVnode, int (*writeFp)(void *ahandle, void *pWalHead));

extern int wDebugFlag;
H
modify  
Hongze Cheng 已提交
46

H
hzcheng 已提交
47 48 49 50 51 52

#ifdef __cplusplus
}
#endif

#endif  // _TD_WAL_H_