Xbase64 Class Library
3.1.2
|
Go to the documentation of this file.
44 #ifdef __GNU_LesserG__
57 #define XB_INLINE_GETDBFNO
59 #define XB_NDX_NODE_BASESIZE 24 // size of base header data
61 #define XB_VAR_NODESIZE // define to enable variable node sizes
63 #ifndef XB_VAR_NODESIZE
64 #define XB_NDX_NODE_SIZE 2048
67 #define XB_DEFAULT_NDX_NODE_SIZE 512
68 #define XB_MAX_NDX_NODE_SIZE 4096
69 #define XB_NDX_NODE_SIZE NodeSize
70 #define XB_NDX_NODE_MULTIPLE 512
71 #endif // XB_VAR_NODESIZE
89 #ifndef XB_VAR_NODESIZE
93 #endif // XB_VAR_NODESIZE
102 #ifndef XB_VAR_NODESIZE
106 #endif // XB_VAR_NODESIZE
149 void DumpHdrNode(
xbShort Option );
150 void DumpNodeRec(
xbLong NodeNo );
151 void DumpNodeChain();
190 #ifndef XB_VAR_NODESIZE
194 #endif // XB_VAR_NODESIZE
215 if(!( Key1 && Key2 ))
return -1;
221 c = memcmp(Key1, Key2, Klen);
230 d1 = dbf->xbase->GetDouble( Key1 );
231 d2 = dbf->xbase->GetDouble( Key2 );
232 if( d1 == d2 )
return 0;
233 else if( d1 > d2 )
return 1;
238 #ifndef XB_INLINE_GETDBFNO
252 p += RecNo * ( 8 + HeadNode.
KeyLen );
253 return( dbf->xbase->GetLong( p ));
virtual void FreeNodesMemory()
xbUShort KeyType
Definition: xbndx.h:84
xbShort MoveToLeftNode(xbNdxNodeLink *, xbNdxNodeLink *)
xbShort FindKey(xbDouble)
xbShort FindKey(const char *Key)
char KeyRecs[XB_MAX_NDX_NODE_SIZE - 4]
Definition: xbndx.h:105
char Unknown2
Definition: xbndx.h:86
xbShort FindKey(const char *Tkey, xbShort Klen, xbShort RetrieveSw)
xbNdxNodeLink * FreeNodeChain
Definition: xbndx.h:197
xbLong TotalNodes
Definition: xbndx.h:79
xbNdxNodeLink * RightSiblingHasSpace(xbNdxNodeLink *)
xbUShort GetKeysPerNode()
char Unique
Definition: xbndx.h:87
xbShort PutKeyData(xbShort, xbNdxNodeLink *)
xbMH struct
Definition: xbdbf.h:190
virtual xbUShort GetKeyLen()
xbLong NoOfKeysThisNode
Definition: xbndx.h:101
xbShort GetFirstKey()
Short description.
Definition: xbndx.h:165
#define XBDLLEXPORT
Definition: xbase64.h:87
xbShort RemoveKeyFromNode(xbShort, xbNdxNodeLink *)
xbNdxHeadnode struct
Definition: xbndx.h:77
xbLong KeySize
Definition: xbndx.h:85
struct xbNdxLeafNode Leaf
Definition: xbndx.h:118
double xbDouble
xbDouble type
Definition: xbtypes.h:73
xbShort PutLeafNode(xbLong, xbNdxNodeLink *)
unsigned long int xbULong
xbULong type
Definition: xbtypes.h:50
short int xbShort
xbShort type
Definition: xbtypes.h:60
xbLong StartNode
Definition: xbndx.h:78
xbShort GetNextKey(xbShort)
xbShort MoveToRightNode(xbNdxNodeLink *, xbNdxNodeLink *)
xbShort PutDbfNo(xbShort, xbNdxNodeLink *, xbLong)
short int xbBool
xbBool type
Definition: xbtypes.h:78
xbLong ReusedxbNodeLinks
Definition: xbndx.h:188
xbShort GetLastKey(xbLong, xbShort)
long xbLong
Definition: xbtypes.h:61
xbNdxNodeLink * NextNode
Definition: xbndx.h:115
xbNdxNodeLink * CurNode
Definition: xbndx.h:198
xbShort SplitINode(xbNdxNodeLink *, xbNdxNodeLink *, xbLong)
xbShort FindKey(const char *Tkey, xbLong DbfRec)
xbShort DeleteSibling(xbNdxNodeLink *)
xbShort DeleteKey(xbLong)
xbNdxLeafNode LeafNode
Definition: xbndx.h:186
xbShort KeyExists(const char *Key)
Definition: xbndx.h:171
xbIndex class
Definition: xbindex.h:63
#define XB_NDX_NODE_SIZE
Definition: xbndx.h:69
xbShort RemoveFromIxList()
unsigned short int xbUShort
xbUShort type
Definition: xbtypes.h:55
xbShort CreateIndex(const char *IxName, const char *Exp, xbShort Unique, xbShort OverLay)
virtual xbShort GetHeadNode()
xbLong GetDbfNo(xbShort RecNo, xbNdxNodeLink *n)
Short description.
Definition: xbndx.h:244
void ReleaseNodeMemory(xbNdxNodeLink *n, xbBool doFree=false)
xbLong GetLeafFromInteriorNode(const char *Tkey, xbShort Klen)
xbNdx class
Definition: xbndx.h:126
void UpdateDeleteList(xbNdxNodeLink *)
xbShort PutLeftNodeNo(xbShort, xbNdxNodeLink *, xbLong)
virtual void SetNodeSize(xbShort size)
xbNdxNodeLink struct
Definition: xbndx.h:113
xbULong GetCurDbfRec()
Definition: xbndx.h:138
char * GetKeyData(xbShort, xbNdxNodeLink *)
xbNdxLeafNode struct
Definition: xbndx.h:100
xbLong NodeNo
Definition: xbndx.h:117
xbNdxHeadNode HeadNode
Definition: xbndx.h:185
xbULong CurDbfRec
Definition: xbindex.h:126
xbShort KeyExists(xbDouble)
xbShort UniqueIndex()
Definition: xbndx.h:142
xbLong CurKeyNo
Definition: xbndx.h:116
xbNdxNodeLink * LeftSiblingHasSpace(xbNdxNodeLink *)
xbShort PutHeadNode(xbNdxHeadNode *, FILE *, xbShort)
virtual xbShort FindKey()=0
xbLong NoOfKeys
Definition: xbndx.h:80
xbShort GetPrevKey(xbShort)
xbNdxNodeLink * PrevNode
Definition: xbndx.h:114
xbShort CompareKey(const char *Key1, const char *Key2, xbShort Klen)
Short description.
Definition: xbndx.h:210
xbNdxNodeLink * GetNodeMemory()
xbLong xbNodeLinkCtr
Definition: xbndx.h:187
virtual const char * GetExtWithDot(bool lower)
xbLong GetLeftNodeNo(xbShort, xbNdxNodeLink *)
xbShort UpdateParentKey(xbNdxNodeLink *)
xbShort PutKeyInNode(xbNdxNodeLink *, xbShort, xbLong, xbLong, xbShort)
xbNdxNodeLink * DeleteChain
Definition: xbndx.h:199
xbShort GetLastKey()
Short description.
Definition: xbndx.h:161
xbShort GetPrevKey()
Short description.
Definition: xbndx.h:169
xbShort GetCurrentKey(char *key)
xbShort SplitLeafNode(xbNdxNodeLink *, xbNdxNodeLink *, xbShort, xbLong)
xbShort ReIndex(void(*statusFunc)(xbLong itemNum, xbLong numItems)=0)
virtual void GetExpression(char *buf, int len)
#define XB_MAX_NDX_NODE_SIZE
Definition: xbndx.h:68
xbNdxNodeLink * NodeChain
Definition: xbndx.h:196
xbShort CreateKey(xbShort, xbShort)
xbShort BSearchNode(const char *key, xbShort klen, const xbNdxNodeLink *node, xbShort *comp)
xbShort GetNextKey()
Short description.
Definition: xbndx.h:157
virtual const char * GetKeyExpression()
xbUShort KeysPerNode
Definition: xbndx.h:83
xbUShort KeyLen
Definition: xbndx.h:82
xbShort GetFirstKey(xbShort)
xbShort GetLeafNode(xbLong, xbShort)