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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? btree.h

?? 在VC6環(huán)境下開(kāi)發(fā)
?? H
字號(hào):
/*
** 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_ */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品一区二区久久| 韩国av一区二区三区| 日韩一区二区电影网| 91福利国产精品| 色综合中文字幕国产 | 欧美一区2区视频在线观看| 九色|91porny| 国产成人午夜99999| 中文字幕一区二区5566日韩| 欧美精品一区二区久久婷婷| 国产日韩v精品一区二区| 日韩女优视频免费观看| av不卡一区二区三区| 国产亚洲婷婷免费| 亚洲电影视频在线| 欧美sm美女调教| 欧美在线综合视频| 欧美日韩小视频| 欧美日韩国产一二三| 亚洲妇女屁股眼交7| 青青草成人在线观看| 日本午夜精品一区二区三区电影 | 777色狠狠一区二区三区| 亚洲精品国产成人久久av盗摄| 国产午夜亚洲精品不卡| 日本aⅴ精品一区二区三区| 精品系列免费在线观看| 成人激情小说网站| 欧美激情在线观看视频免费| 有坂深雪av一区二区精品| 成人av小说网| 中文字幕一区视频| 99久久久久久| 亚洲精选免费视频| 欧美日韩在线播| 国产午夜亚洲精品午夜鲁丝片| 久久综合色天天久久综合图片| 国产精品国模大尺度视频| 福利91精品一区二区三区| 偷拍一区二区三区| 韩国欧美国产一区| 97成人超碰视| 日韩写真欧美这视频| 亚洲国产精品传媒在线观看| 日韩毛片在线免费观看| 久久精品国产亚洲高清剧情介绍| 国产一区二区三区综合| 日本高清不卡一区| 国产亚洲短视频| 亚洲小说欧美激情另类| 国产成人一区在线| 欧美高清精品3d| 亚洲国产精品激情在线观看| 天天综合网天天综合色| 99久久精品免费精品国产| 精品电影一区二区| 亚洲成av人片在线观看无码| 成人免费毛片片v| 日韩欧美国产一二三区| 亚洲综合色成人| 国产成人久久精品77777最新版本| 91麻豆精品久久久久蜜臀| 久久久久成人黄色影片| 五月激情综合婷婷| 色综合久久久久久久| 欧美国产精品专区| 国产一区二区伦理| 日韩一区和二区| 日韩电影在线免费看| 欧美视频一区二区三区在线观看| 欧美激情综合五月色丁香小说| 久久国产夜色精品鲁鲁99| 欧美三级视频在线播放| 亚洲激情自拍视频| 91网站最新网址| 欧美国产激情一区二区三区蜜月| 久久99精品久久久| 日韩视频国产视频| 青青草国产成人99久久| 制服丝袜日韩国产| 日韩电影免费在线| 制服.丝袜.亚洲.另类.中文| 亚洲一区在线电影| 欧美午夜不卡视频| 午夜免费欧美电影| 欧美日本一区二区| 日本一不卡视频| 欧美一级在线观看| 另类小说欧美激情| 精品成人免费观看| 国产美女视频91| 国产欧美日韩一区二区三区在线观看| 精品亚洲免费视频| 国产片一区二区| 91伊人久久大香线蕉| 尤物av一区二区| 5858s免费视频成人| 久久成人av少妇免费| 精品国产免费一区二区三区四区| 国产综合久久久久久鬼色| 久久美女艺术照精彩视频福利播放| 国产专区欧美精品| 三级成人在线视频| 日韩欧美在线123| 国产夫妻精品视频| 亚洲三级免费电影| 欧美日高清视频| 国产一区二区在线观看视频| 久久精品一区二区三区不卡牛牛| 成人午夜免费视频| 性做久久久久久久久| 欧美高清视频一二三区| 国产精品18久久久久久久久久久久 | av中文字幕一区| 亚洲高清免费在线| 久久婷婷成人综合色| 波多野结衣中文字幕一区| 一级精品视频在线观看宜春院| 欧美一区二区网站| 成人国产精品免费网站| 天天综合日日夜夜精品| 国产欧美日韩亚州综合| 色哟哟一区二区在线观看| 免费看黄色91| 亚洲精品国产成人久久av盗摄| 日韩一级精品视频在线观看| av一二三不卡影片| 九一久久久久久| 亚洲成人av在线电影| 精品国产露脸精彩对白| 欧美在线制服丝袜| 国产一区啦啦啦在线观看| 亚洲一区二区在线观看视频 | 久久精品国产网站| 一区二区三区四区亚洲| 久久久久久久久久久久久久久99| 在线免费一区三区| 成人手机在线视频| 精品在线一区二区| 天天av天天翘天天综合网| 中文字幕一区在线| 中文字幕久久午夜不卡| 日韩精品自拍偷拍| 欧美日韩免费视频| 在线观看日韩av先锋影音电影院| 成人一区二区三区视频在线观看| 日韩电影在线免费| 日韩主播视频在线| 亚洲午夜久久久| 亚洲欧美成aⅴ人在线观看| 久久人人超碰精品| 精品成人私密视频| 91精品婷婷国产综合久久性色| 91久久精品一区二区| a在线欧美一区| 不卡一区在线观看| 国产999精品久久久久久| 狠狠色综合播放一区二区| 日韩av一级电影| 天堂成人国产精品一区| 亚洲午夜国产一区99re久久| 亚洲日本青草视频在线怡红院| 亚洲国产精品精华液2区45| 中文字幕国产精品一区二区| 久久九九全国免费| 国产精品麻豆99久久久久久| 国产精品天干天干在线综合| 国产欧美精品一区二区三区四区 | 国产精品久久久久永久免费观看| 国产日韩欧美精品一区| 国产日韩精品一区二区三区 | k8久久久一区二区三区| 成人中文字幕合集| 91麻豆精品在线观看| 色哟哟亚洲精品| 欧美精品三级在线观看| 欧美精品一卡两卡| 欧美xfplay| 国产精品久久久久久久蜜臀| 国产精品的网站| 亚洲丶国产丶欧美一区二区三区| 日韩在线卡一卡二| 国产麻豆成人传媒免费观看| 成人黄色片在线观看| 在线免费不卡电影| 欧美videos大乳护士334| 久久久精品天堂| 一区二区三区四区国产精品| 免费观看一级欧美片| 成人一区在线观看| 8v天堂国产在线一区二区| 精品久久99ma| 亚洲另类在线制服丝袜| 日本欧美大码aⅴ在线播放| 国产iv一区二区三区| 欧美日精品一区视频| 精品88久久久久88久久久| 中文字幕日韩av资源站| 美女一区二区久久| 91社区在线播放|