summaryrefslogtreecommitdiff
path: root/xbase64/xbcdx.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbase64/xbcdx.h')
-rwxr-xr-xxbase64/xbcdx.h150
1 files changed, 0 insertions, 150 deletions
diff --git a/xbase64/xbcdx.h b/xbase64/xbcdx.h
deleted file mode 100755
index f76a45f..0000000
--- a/xbase64/xbcdx.h
+++ /dev/null
@@ -1,150 +0,0 @@
-#ifndef cdx_h
-#define cdx_h
-
-#include "xbmindex.h"
-
-struct CdxHeader
-{
- xbLong rootNode;
- xbLong freeNode;
- xbLong reserved;
- xbShort keyLen;
- union cdxFeatures
- {
- struct Features
- {
- bool unique:1;
- int:2;
- bool hasFor:1;
- bool:1;
- bool cdxHeader:1;
- bool cdxFmt:1;
- bool cdxTagHeader:1;
- } features;
- char feature;
- } features;
- char signature;
- xbLong reserved1[5];
- char reserved2[466];
- xbShort descending;
- xbShort totalExprLen;
- xbShort forExprLen;
- xbShort reserved4;
- xbShort keyExprLen;
- char keyforBuffer[512];
-};
-
-struct CdxNode
-{
- xbShort attr;
- xbShort keyCount;
- xbLong leftSibling;
- xbLong rightSibling;
-}
-#ifdef __GNU LesserC__
- __attribute__((packed))
-#endif
-;
-
-struct CdxInnerNode: public CdxNode
-{
- char keys[500];
-}
-#ifdef __GNU LesserC__
- __attribute__((packed))
-#endif
-;
-
-struct CdxLeafNode: public CdxNode
-{
- xbShort freeSpace;
- xbLong recNumberMask;
- char dupByteCounterMask;
- char tailByteCounterMask;
- char recBitUsing;
- char dupBitUsing;
- char tailBitUsing;
- char byteCount;
- char keys[488];
-}
-#ifdef __GNU LesserC__
- __attribute__((packed))
-#endif
-;
-
-class XBDLLEXPORT xbCdx: public xbMultiIndex
-{
- public:
-// xbCdx() {} I don't like to make empty object with no protection
-// to method method call. And I don't see any need of it.
- xbCdx(xbDbf* dbf): xbMultiIndex(dbf)
- {
- memset(&indexHeader_, 0, sizeof(indexHeader_));
- memset(&tagHeader_, 0, sizeof(tagHeader_));
- }
-
- virtual ~xbCdx() {CloseIndex();}
-
- virtual xbShort CreateIndex(const char *filename, const char *expr,
- xbShort unique, xbShort overwrite);
- virtual xbShort CreateIndex(const char *filename, const char* tagname,
- const char *expr, xbShort unique, xbShort overwrite);
-
- virtual xbShort AddTag(const char* tagname, const char *expr,
- xbShort unique, xbShort overwrite) {return 0;}
-
- virtual xbLong GetTotalNodes() {return 0;}
- virtual xbULong GetCurDbfRec() {return 0;}
- virtual xbShort CreateKey( xbShort, xbShort ) {return 0;}
- virtual xbShort GetCurrentKey(char *key) {return 0;}
- virtual xbShort AddKey( xbLong ) {return 0;}
- virtual xbShort UniqueIndex() {return 0;}
- virtual xbShort DeleteKey( xbLong ) {return 0;}
- virtual xbShort KeyWasChanged() {return 0;}
- virtual xbShort FindKey( const char * ) {return 0;}
- virtual xbShort FindKey() {return 0;}
- virtual xbShort FindKey( xbDouble ) {return 0;}
- virtual xbShort GetNextKey() {return 0;}
- virtual xbShort GetLastKey() {return 0;}
- virtual xbShort GetFirstKey() {return 0;}
- virtual xbShort GetPrevKey() {return 0;}
- virtual xbShort ReIndex(void (*statusFunc)(xbLong itemNum, xbLong numItems) = 0) {return 0;}
- virtual xbShort KeyExists( xbDouble ) {return 0;}
- virtual void GetExpression(char *buf, int len) {}
-#ifdef XBASE_DEBUG
- virtual void DumpHdrNode( xbShort Option ) {};
- virtual void DumpNodeRec( xbLong ) {};
- virtual void DumpNodeChain() {};
- virtual xbShort CheckIndexIntegrity( xbShort ) {return 0;};
-#endif
-
-// static xbString CreateIndexName(const xbString& dbfName);
- virtual const char* GetExtWithDot(bool lower);
- const CdxHeader& GetIndexHeader() {return indexHeader_;}
- const CdxHeader& GetTagHeader() {return tagHeader_;}
-
- protected:
- virtual xbShort GetHeadNode();
- virtual xbUShort GetKeyLen() {return 0;}
- virtual const char* GetKeyExpression() {return "";}
- virtual void FreeNodesMemory() {}
- void ReadTagHeader();
- xbLong GetIndexTagOffset() {return 0;}
- void ReadIndexHeader(xbLong) {}
-
- private:
- xbCdx(const xbCdx&);
- xbCdx& operator=(const xbCdx&);
- void WriteTagHeader(const char* tagName);
- void WriteTagRoot(const char* tagName);
- void WriteIndexHeader(const char* expr);
- void WriteIndexRoot();
-
- private:
- CdxHeader tagHeader_;
- CdxLeafNode tagRootNode_;
- CdxHeader indexHeader_;
- CdxLeafNode indexRootNode_;
-};
-
-#endif