68 #define XB_INLINE_COMPAREKEY
69 #define XB_INLINE_GETDBFNO
71 #define XB_NDX_NODE_BASESIZE 24 // size of base header data
73 #define XB_VAR_NODESIZE // define to enable variable node sizes
75 #ifndef XB_VAR_NODESIZE
76 #define XB_NDX_NODE_SIZE 2048
79 #define XB_DEFAULT_NDX_NODE_SIZE 512
80 #define XB_MAX_NDX_NODE_SIZE 4096
81 #define XB_NDX_NODE_SIZE NodeSize
82 #define XB_NDX_NODE_MULTIPLE 512
83 #endif // XB_VAR_NODESIZE
100 #ifndef XB_VAR_NODESIZE
104 #endif // XB_VAR_NODESIZE
113 #ifndef XB_VAR_NODESIZE
117 #endif // XB_VAR_NODESIZE
166 void DumpNodeRec(
xbLong NodeNo );
167 void DumpNodeChain();
200 #ifndef XB_VAR_NODESIZE
204 #endif // XB_VAR_NODESIZE
219 #ifndef XB_INLINE_COMPAREKEY
220 xbShort CompareKey(
const char *Key1,
const char *Key2,
xbShort Klen );
234 if(!( Key1 && Key2 ))
return -1;
236 if( Klen > HeadNode.KeyLen ) Klen = HeadNode.KeyLen;
238 if( HeadNode.KeyType == 0 )
240 c = memcmp(Key1, Key2, Klen);
249 d1 = dbf->xbase->GetDouble( Key1 );
250 d2 = dbf->xbase->GetDouble( Key2 );
251 if( d1 == d2 )
return 0;
252 else if( d1 > d2 )
return 1;
257 #ifndef XB_INLINE_GETDBFNO
271 p += RecNo * ( 8 + HeadNode.KeyLen );
272 return( dbf->xbase->GetLong( p ));
284 xbLong GetLeafFromInteriorNode(
const char *Tkey,
xbShort Klen );
304 void ProcessDeleteList();