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 ));
264 xbLong GetLeafFromInteriorNode(
const char *Tkey,
xbShort Klen );
284 void ProcessDeleteList();
struct xbNdxLeafNode Leaf
Definition: xbndx.h:118
virtual xbShort GetCurrentKey(char *key)=0
virtual xbShort CreateIndex(const char *, const char *, xbShort, xbShort)=0
xbLong TotalNodes
Definition: xbndx.h:79
virtual void FreeNodesMemory()=0
xbNdxNodeLink struct
Definition: xbndx.h:113
xbLong NodeNo
Definition: xbndx.h:117
short int xbBool
xbBool type
Definition: xbtypes.h:78
xbULong CurDbfRec
Definition: xbindex.h:126
virtual const char * GetKeyExpression()=0
virtual const char * GetExtWithDot(bool lower)=0
xbNdx class
Definition: xbndx.h:125
virtual xbShort KeyExists(xbDouble)=0
#define XBDLLEXPORT
Definition: xbase64.h:87
xbLong ReusedxbNodeLinks
Definition: xbndx.h:188
xbNdxNodeLink * FreeNodeChain
Definition: xbndx.h:197
xbUShort KeyLen
Definition: xbndx.h:82
long xbLong
Definition: xbtypes.h:61
xbLong KeySize
Definition: xbndx.h:85
virtual void SetNodeSize(xbShort size)
Definition: xbindex.h:92
xbLong GetDbfNo(xbShort RecNo, xbNdxNodeLink *n)
Short description.
Definition: xbndx.h:244
char Unknown2
Definition: xbndx.h:86
xbNdxNodeLink * CurNode
Definition: xbndx.h:198
xbLong NoOfKeysThisNode
Definition: xbndx.h:101
short int xbShort
xbShort type
Definition: xbtypes.h:60
xbShort GetFirstKey()
Short description.
Definition: xbndx.h:165
#define XB_NDX_NODE_SIZE
Definition: xbndx.h:69
virtual xbShort GetLastKey()=0
char KeyRecs[XB_MAX_NDX_NODE_SIZE - 4]
Definition: xbndx.h:105
xbShort KeyExists(const char *Key)
Definition: xbndx.h:171
virtual xbShort GetNextKey()=0
unsigned long int xbULong
xbULong type
Definition: xbtypes.h:50
xbULong GetCurDbfRec()
Definition: xbndx.h:138
double xbDouble
xbDouble type
Definition: xbtypes.h:73
virtual xbShort FindKey()=0
virtual xbShort ReIndex(void(*statusFunc)(xbLong itemNum, xbLong numItems)=0)=0
xbLong NoOfKeys
Definition: xbndx.h:80
virtual xbShort KeyWasChanged()=0
xbLong CurKeyNo
Definition: xbndx.h:116
xbShort UniqueIndex()
Definition: xbndx.h:142
xbIndex class
Definition: xbindex.h:62
virtual xbShort GetFirstKey()=0
unsigned short int xbUShort
xbUShort type
Definition: xbtypes.h:55
xbNdxHeadNode HeadNode
Definition: xbndx.h:185
xbNdxLeafNode LeafNode
Definition: xbndx.h:186
virtual xbShort AddKey(xbLong)=0
xbUShort KeysPerNode
Definition: xbndx.h:83
char Unique
Definition: xbndx.h:87
virtual xbShort GetPrevKey()=0
xbNdxNodeLink * DeleteChain
Definition: xbndx.h:199
xbLong StartNode
Definition: xbndx.h:78
xbNdxNodeLink * NextNode
Definition: xbndx.h:115
virtual xbShort CreateKey(xbShort, xbShort)=0
virtual xbShort DeleteKey(xbLong)=0
xbNdxLeafNode struct
Definition: xbndx.h:100
xbNdxHeadnode struct
Definition: xbndx.h:77
xbUShort KeyType
Definition: xbndx.h:84
virtual xbLong GetTotalNodes()=0
xbShort GetLastKey()
Short description.
Definition: xbndx.h:161
xbShort GetPrevKey()
Short description.
Definition: xbndx.h:169
xbLong xbNodeLinkCtr
Definition: xbndx.h:187
xbNdxNodeLink * NodeChain
Definition: xbndx.h:196
xbMH struct
Definition: xbdbf.h:190
xbShort GetNextKey()
Short description.
Definition: xbndx.h:157
virtual xbUShort GetKeyLen()=0
virtual void GetExpression(char *buf, int len)=0
#define XB_MAX_NDX_NODE_SIZE
Definition: xbndx.h:68
xbShort CompareKey(const char *Key1, const char *Key2, xbShort Klen)
Short description.
Definition: xbndx.h:210
virtual xbShort GetHeadNode()=0
xbNdxNodeLink * PrevNode
Definition: xbndx.h:114