Newer
Older
ubixfs-2 / btree.h
#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 compareKey;
  copyKeyProc    copyKey;
  keySizeFunc    keySize;
  bTreeInfo    * info;
  bTreeVFS     * vfs;
  bool           memoryTree;
  bool           treeChanged; 

  int      align(int);
  int      calcSize(TbNode *);
  uPtr     getFirstDeleted(void);
  uInt32   getNodes(void);
  uInt32   getHeight(void);
  uInt32   getKeys(void);
  uPtr     getRoot(void);

  void     setFirstDeleted(uPtr);
  void     setNodes(uInt32);
  void     setNull(uPtr &);
 public:
           bTree(char *, uInt32, treeTypes, bTreeVFS *);
  void     InstallUserFunctions(compareKeyFunc, copyKeyProc, keySizeFunc);  
  virtual ~bTree(void);
};// bTree

#endif