亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? btree.h

?? 在VC6環境下開發
?? H
字號:
/*
** This header file defines the interface that the eDb B-Tree file
** subsystem.  See comments in the source code for a detailed description
** of what each interface routine does.
*/
#ifndef _BTREE_H_
#define _BTREE_H_

/*
** Forward declarations of structure
*/
typedef struct Btree Btree;
typedef struct BtCursor BtCursor;
typedef struct BtOps BtOps;
typedef struct BtCursorOps BtCursorOps;


/*
** An instance of the following structure contains pointers to all
** methods against an open BTree.  Alternative BTree implementations
** (examples: file based versus in-memory) can be created by substituting
** different methods.  Users of the BTree cannot tell the difference.
**
** In C++ we could do this by defining a virtual base class and then
** creating subclasses for each different implementation.  But this is
** C not C++ so we have to be a little more explicit.
*/
struct BtOps {
    int (*Close)(Btree*);
    int (*SetCacheSize)(Btree*, int);
    int (*SetSafetyLevel)(Btree*, int);
    int (*BeginTrans)(Btree*);
    int (*Commit)(Btree*);
    int (*Rollback)(Btree*);
    int (*BeginCkpt)(Btree*);
    int (*CommitCkpt)(Btree*);
    int (*RollbackCkpt)(Btree*);
    int (*CreateTable)(Btree*, int*);
    int (*CreateIndex)(Btree*, int*);
    int (*DropTable)(Btree*, int);
    int (*ClearTable)(Btree*, int);
    int (*Cursor)(Btree*, int iTable, int wrFlag, BtCursor **ppCur);
    int (*GetMeta)(Btree*, int*);
    int (*UpdateMeta)(Btree*, int*);
    char *(*IntegrityCheck)(Btree*, int*, int);
    const char *(*GetFilename)(Btree*);
    int (*Copyfile)(Btree*,Btree*);
    struct Pager *(*Pager)(Btree*);
#ifdef eDb_TEST
    int (*PageDump)(Btree*, int, int);
#endif
};

/*
** An instance of this structure defines all of the methods that can
** be executed against a cursor.
*/
struct BtCursorOps {
    int (*Moveto)(BtCursor*, const void *pKey, int nKey, int *pRes);
    int (*Delete)(BtCursor*);
    int (*Insert)(BtCursor*, const void *pKey, int nKey,
                             const void *pData, int nData);
    int (*First)(BtCursor*, int *pRes);
    int (*Last)(BtCursor*, int *pRes);
    int (*Next)(BtCursor*, int *pRes);
    int (*Previous)(BtCursor*, int *pRes);
    int (*KeySize)(BtCursor*, int *pSize);
    int (*Key)(BtCursor*, int offset, int amt, char *zBuf);
    int (*KeyCompare)(BtCursor*, const void *pKey, int nKey,
                                 int nIgnore, int *pRes);
    int (*DataSize)(BtCursor*, int *pSize);
    int (*Data)(BtCursor*, int offset, int amt, char *zBuf);
    int (*CloseCursor)(BtCursor*);
#ifdef eDb_TEST
    int (*CursorDump)(BtCursor*, int*);
#endif
};

/*
** The number of 4-byte "meta" values contained on the first page of each
** database file.
*/
#define eDb_N_BTREE_META 10

int eDbBtreeOpen(const char *zFilename, int mode, int nPg, Btree **ppBtree);
int eDbRbtreeOpen(const char *zFilename, int mode, int nPg, Btree **ppBtree);

#define btOps(pBt) (*((BtOps **)(pBt)))
#define btCOps(pCur) (*((BtCursorOps **)(pCur)))

char *eDbBtreeGetColumnData(BtCursor *pCur,int iColumn,char *zBuf);

#define eDbBtreeClose(pBt)              (btOps(pBt)->Close(pBt))
#define eDbBtreeSetCacheSize(pBt, sz)   (btOps(pBt)->SetCacheSize(pBt, sz))
#define eDbBtreeSetSafetyLevel(pBt, sl) (btOps(pBt)->SetSafetyLevel(pBt, sl))
#define eDbBtreeBeginTrans(pBt)         (btOps(pBt)->BeginTrans(pBt))
#define eDbBtreeCommit(pBt)             (btOps(pBt)->Commit(pBt))
#define eDbBtreeRollback(pBt)           (btOps(pBt)->Rollback(pBt))
#define eDbBtreeBeginCkpt(pBt)          (btOps(pBt)->BeginCkpt(pBt))
#define eDbBtreeCommitCkpt(pBt)         (btOps(pBt)->CommitCkpt(pBt))
#define eDbBtreeRollbackCkpt(pBt)       (btOps(pBt)->RollbackCkpt(pBt))
#define eDbBtreeCreateTable(pBt,piTable)\
                (btOps(pBt)->CreateTable(pBt,piTable))
#define eDbBtreeCreateIndex(pBt, piIndex)\
                (btOps(pBt)->CreateIndex(pBt, piIndex))
#define eDbBtreeDropTable(pBt, iTable) (btOps(pBt)->DropTable(pBt, iTable))
#define eDbBtreeClearTable(pBt, iTable)\
                (btOps(pBt)->ClearTable(pBt, iTable))
#define eDbBtreeCursor(pBt, iTable, wrFlag, ppCur)\
                (btOps(pBt)->Cursor(pBt, iTable, wrFlag, ppCur))
#define eDbBtreeMoveto(pCur, pKey, nKey, pRes)\
                (btCOps(pCur)->Moveto(pCur, pKey, nKey, pRes))
#define eDbBtreeDelete(pCur)           (btCOps(pCur)->Delete(pCur))
#define eDbBtreeInsert(pCur, pKey, nKey, pData, nData) \
                (btCOps(pCur)->Insert(pCur, pKey, nKey, pData, nData))
#define eDbBtreeFirst(pCur, pRes)      (btCOps(pCur)->First(pCur, pRes))
#define eDbBtreeLast(pCur, pRes)       (btCOps(pCur)->Last(pCur, pRes))
#define eDbBtreeNext(pCur, pRes)       (btCOps(pCur)->Next(pCur, pRes))
#define eDbBtreePrevious(pCur, pRes)   (btCOps(pCur)->Previous(pCur, pRes))
#define eDbBtreeKeySize(pCur, pSize)   (btCOps(pCur)->KeySize(pCur, pSize) )
#define eDbBtreeKey(pCur, offset, amt, zBuf)\
                (btCOps(pCur)->Key(pCur, offset, amt, zBuf))
#define eDbBtreeKeyCompare(pCur, pKey, nKey, nIgnore, pRes)\
                (btCOps(pCur)->KeyCompare(pCur, pKey, nKey, nIgnore, pRes))
#define eDbBtreeDataSize(pCur, pSize)  (btCOps(pCur)->DataSize(pCur, pSize))
#define eDbBtreeData(pCur, offset, amt, zBuf)\
                (btCOps(pCur)->Data(pCur, offset, amt, zBuf))
#define eDbBtreeCloseCursor(pCur)      (btCOps(pCur)->CloseCursor(pCur))
#define eDbBtreeGetMeta(pBt, aMeta)    (btOps(pBt)->GetMeta(pBt, aMeta))
#define eDbBtreeUpdateMeta(pBt, aMeta) (btOps(pBt)->UpdateMeta(pBt, aMeta))
#define eDbBtreeIntegrityCheck(pBt, aRoot, nRoot)\
                (btOps(pBt)->IntegrityCheck(pBt, aRoot, nRoot))
#define eDbBtreeGetFilename(pBt)       (btOps(pBt)->GetFilename(pBt))
#define eDbBtreeCopyFile(pBt1, pBt2)   (btOps(pBt1)->Copyfile(pBt1, pBt2))
#define eDbBtreePager(pBt)             (btOps(pBt)->Pager(pBt))

#ifdef eDb_TEST
#define eDbBtreePageDump(pBt, pgno, recursive)\
                (btOps(pBt)->PageDump(pBt, pgno, recursive))
#define eDbBtreeCursorDump(pCur, aResult)\
                (btCOps(pCur)->CursorDump(pCur, aResult))
int btree_native_byte_order;
#endif /* eDb_TEST */

void eDbGetPagerStat(Btree* pBt);

#endif /* _BTREE_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合狠狠综合久久激情| 制服丝袜亚洲播放| 顶级嫩模精品视频在线看| 久久精品二区亚洲w码| 青青青爽久久午夜综合久久午夜| 亚洲一区二区在线免费看| 亚洲人成精品久久久久久| 亚洲乱码国产乱码精品精小说 | 国产精品免费aⅴ片在线观看| 精品福利一区二区三区免费视频| 欧美大胆一级视频| 久久综合资源网| 亚洲国产精品国自产拍av| 亚洲欧洲性图库| 丝袜亚洲另类丝袜在线| 捆绑调教美女网站视频一区| 国产成人av一区二区三区在线| 欧美日韩在线播放三区四区| 欧美在线视频不卡| 日韩亚洲电影在线| 欧美国产一区视频在线观看| 一区二区三区日韩欧美| 日韩电影免费一区| 国产激情视频一区二区在线观看| 91美女在线视频| 91精品国产91久久综合桃花 | 欧美性三三影院| 日韩一区二区不卡| 亚洲精品在线观看网站| 亚洲婷婷综合久久一本伊一区| 亚洲亚洲人成综合网络| 激情综合网av| 97se亚洲国产综合在线| 欧美不卡在线视频| 亚洲精品免费在线观看| 精品亚洲免费视频| 色综合久久精品| 久久九九久久九九| 爽好多水快深点欧美视频| 成人黄页在线观看| 欧美丰满一区二区免费视频| 欧美激情一区二区三区在线| 午夜不卡在线视频| 99久久综合狠狠综合久久| 日韩视频一区二区三区在线播放 | 婷婷亚洲久悠悠色悠在线播放| 激情小说欧美图片| 欧美日免费三级在线| 国产精品青草久久| 寂寞少妇一区二区三区| 欧美日韩一二三| 亚洲黄色性网站| 99久久精品99国产精品| 国产欧美一二三区| 精品在线播放免费| 欧美美女一区二区| 亚洲另类在线一区| 99久久免费视频.com| 日本一区二区三区免费乱视频 | 午夜精品福利在线| 91久久精品国产91性色tv| 国产欧美日本一区二区三区| 国产一区在线不卡| 91精品国产综合久久香蕉麻豆 | 久久美女高清视频| 免费看精品久久片| 欧美一区二区三区视频在线| 亚瑟在线精品视频| 欧美吻胸吃奶大尺度电影 | 欧美aⅴ一区二区三区视频| 色久优优欧美色久优优| 亚洲图片激情小说| 91麻豆文化传媒在线观看| 国产精品高潮久久久久无| 国产凹凸在线观看一区二区| 久久综合久久综合九色| 日本不卡免费在线视频| 欧美视频一区二| 日韩在线一二三区| 欧美一区二区精品| 国产一区二区福利| 中文字幕不卡的av| 在线视频你懂得一区| 亚洲动漫第一页| 精品国产麻豆免费人成网站| 狠狠色狠狠色综合系列| 欧美国产日韩a欧美在线观看| 国产盗摄女厕一区二区三区| 国产精品久久久久aaaa樱花| 91社区在线播放| 亚洲成人免费影院| 日韩三级.com| 成人污视频在线观看| 亚洲另类在线视频| 日韩三级伦理片妻子的秘密按摩| 国产精品1区二区.| 亚洲卡通欧美制服中文| 欧美一级午夜免费电影| 国产福利视频一区二区三区| 一区二区三区资源| 日韩欧美国产麻豆| 成人h动漫精品一区二区| 亚洲风情在线资源站| 久久综合精品国产一区二区三区 | 亚洲自拍偷拍欧美| 欧美成人a∨高清免费观看| 成人va在线观看| 美女一区二区三区在线观看| 日本午夜一区二区| 国产精品美女久久久久久久| 欧美日韩黄色影视| 99免费精品在线| 久久草av在线| 亚洲成人资源在线| 国产精品国产馆在线真实露脸| 欧美一区二区黄| 91麻豆6部合集magnet| 另类综合日韩欧美亚洲| 一区二区三区日韩欧美精品| 国产婷婷色一区二区三区四区| 欧美色区777第一页| 大桥未久av一区二区三区中文| 青青草国产精品97视觉盛宴| 国产精品久久免费看| 精品国产乱码久久久久久蜜臀| 欧美三级中文字幕| 99国产一区二区三精品乱码| 国产在线不卡一卡二卡三卡四卡| 亚洲一级在线观看| 亚洲图片欧美激情| 中文字幕av一区二区三区免费看 | 亚洲一线二线三线久久久| 久久久91精品国产一区二区精品 | 精品对白一区国产伦| 欧美精品一二三四| 欧美手机在线视频| 色一区在线观看| 99国产精品99久久久久久| 成人一区二区三区在线观看| 国产麻豆91精品| 国产在线国偷精品免费看| 久久99精品国产.久久久久| 日韩 欧美一区二区三区| 亚洲一区精品在线| 一区二区免费在线播放| 一区二区三区中文在线| 一区二区三区中文在线| 久久不见久久见免费视频1| 视频在线观看国产精品| 日韩av电影免费观看高清完整版 | 久久综合九色综合久久久精品综合| 91麻豆精品国产无毒不卡在线观看| 欧美日韩一区中文字幕| 欧美日韩aaa| 日韩亚洲国产中文字幕欧美| 精品美女一区二区| 国产午夜亚洲精品不卡| 国产精品久久久久7777按摩| 国产精品灌醉下药二区| 一级特黄大欧美久久久| 午夜精品福利视频网站| 蜜臀av性久久久久蜜臀av麻豆| 美女视频一区二区| 国产成人午夜99999| 波多野结衣欧美| 欧美中文字幕不卡| 欧美一级一级性生活免费录像| 久久先锋影音av| 中文字幕一区二区三区在线不卡| 一区二区高清在线| 久久精品国产亚洲一区二区三区| 毛片基地黄久久久久久天堂| 国产综合色产在线精品| 成人污污视频在线观看| 欧美亚洲一区二区三区四区| 欧美一区三区四区| 久久亚洲二区三区| 亚洲精品成a人| 蜜桃在线一区二区三区| 成人性生交大片免费看中文| 久久综合色之久久综合| 玉足女爽爽91| 激情六月婷婷综合| 色妞www精品视频| 欧美成人r级一区二区三区| 国产精品国产三级国产aⅴ中文 | 狠狠色丁香婷综合久久| www..com久久爱| 91精品国产麻豆| 亚洲视频电影在线| 久热成人在线视频| 色菇凉天天综合网| 久久精品人人做人人爽97| 一区二区在线观看视频在线观看| 狠狠狠色丁香婷婷综合激情| 色偷偷久久一区二区三区| www欧美成人18+| 亚洲v精品v日韩v欧美v专区| 成人亚洲精品久久久久软件| 日韩一区二区电影网|