#ifndef BTREE_H #define BTREE_H #include "btree_types.h" // integer definitions #include "btree_vfs.h" // bTreeVFS class #include "btree_key.h" // bTree key functions class bTree { protected: compareKeyFunc compareKeys; copyKeyProc copyKey; keySizeFunc keySize; bTreeInfo * info; bTreeVFS * vfs; bool memoryTree; bool treeChanged; int align(int); uPtr allocEmptyNode(void); int calcSize(TbNode *); void deAllocNode(TbNode *); uPtr deleteEntry(uPtr, void *, uPtr); void discardPage(TbNode *); bool fetchFirstKey(uPtr, bTreeSearch &); bool fetchLastKey(uPtr, bTreeSearch &); uPtr findLeafNode(uPtr, void *); void freeAll(void); void freePage(uPtr); uPtr getAddress(TbNode *); uPtr getFirstDeleted(void); uInt32 getNodes(void); uInt32 getHeight(void); uInt32 getKeys(void); void getNeighbor(TbNode *, TbNode **, int &); uPtr getRoot(void); bool isNull(uPtr); TbNode * loadPage(uPtr); void loadSuperBlock(void); void savePage(TbNode *); void saveSuperBlock(void); void setFirstDeleted(uPtr); void setNodes(uInt32); void setHeight(uInt32); void setKeys(uInt32); void setLeft(uPtr, uPtr); void setParent(uPtr, uPtr); void setRight(uPtr, uPtr); void setNull(uPtr &); void setRoot(uPtr); public: bTree(const char *, uInt32, treeTypes, bTreeVFS *); bTree(const char *, bTreeVFS *); uInt32 GetKeyCount(void); uInt32 GetTreeHeight(void); void InstallUserFunctions(compareKeyFunc, copyKeyProc, keySizeFunc); virtual ~bTree(void); };// bTree #endif