📄 ttree.h
字号:
//-< TTREE.CPP >-----------------------------------------------------*--------*// FastDB Version 1.0 (c) 1999 GARRET * ? *// (Main Memory Database Management System) * /\| *// * / \ *// Created: 20-Nov-98 K.A. Knizhnik * / [] \ *// Last update: 10-Dec-98 K.A. Knizhnik * GARRET *//-------------------------------------------------------------------*--------*// T-Tree interface//-------------------------------------------------------------------*--------*#ifndef __TTREE_H__#define __TTREE_H__class FASTDB_DLL_ENTRY dbTtreeNode { enum { pageSize = 125, minItems = pageSize - 2 // minimal number of items in internal node }; public: oid_t left; oid_t right; int1 balance; nat2 nItems; oid_t item[pageSize]; static oid_t allocate(dbDatabase* db, oid_t recordId); static bool insert(dbDatabase* db, oid_t& nodeId, oid_t recordId, void* key, int type, int sizeofType, dbUDTComparator comparator, int offs); static int remove(dbDatabase* db, oid_t& nodeId, oid_t recordId, void* key, int type, int sizeofType, dbUDTComparator comparator, int offs); static int balanceRightBranch(dbDatabase* db, oid_t& nodeId); static int balanceLeftBranch(dbDatabase* db, oid_t& nodeId); static void purge(dbDatabase* db, oid_t nodeId); bool find(dbDatabase* db, dbSearchContext& sc); bool traverseForward(dbDatabase* db,dbAnyCursor* cursor); bool traverseBackward(dbDatabase* db, dbAnyCursor* cursor); bool traverseForward(dbDatabase* db,dbAnyCursor* cursor,dbExprNode* cond); bool traverseBackward(dbDatabase* db,dbAnyCursor* cursor,dbExprNode* cond);};class FASTDB_DLL_ENTRY dbTtree { protected: oid_t root; public: static oid_t allocate(dbDatabase* db); static void find(dbDatabase* db, oid_t treeId, dbSearchContext& sc); static void insert(dbDatabase* db, oid_t treeId, oid_t recordId, int type, int sizeofType, dbUDTComparator comparator, int offs); static void remove(dbDatabase* db, oid_t treeId, oid_t recordId, int type, int sizeofType, dbUDTComparator comparator, int offs); static void drop(dbDatabase* db, oid_t treeId); static void purge(dbDatabase* db, oid_t treeId); static void traverseForward(dbDatabase* db, oid_t treeId, dbAnyCursor* cursor); static void traverseBackward(dbDatabase* db, oid_t treeId, dbAnyCursor* cursor); static void traverseForward(dbDatabase* db, oid_t treeId, dbAnyCursor* cursor, dbExprNode* condition); static void traverseBackward(dbDatabase* db, oid_t treeId, dbAnyCursor* cursor, dbExprNode* condition);};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -