diff options
Diffstat (limited to 'include/ztext.h')
-rw-r--r-- | include/ztext.h | 66 |
1 files changed, 47 insertions, 19 deletions
diff --git a/include/ztext.h b/include/ztext.h index db1b76e..ee38b77 100644 --- a/include/ztext.h +++ b/include/ztext.h @@ -2,7 +2,7 @@ * ztext.h - code for class 'zText'- a module that reads compressed text * files: ot and nt using indexs ??.vss * - * $Id: ztext.h,v 1.22 2002/03/16 04:18:34 scribe Exp $ + * $Id: ztext.h,v 1.29 2003/08/29 06:00:16 scribe Exp $ * * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society @@ -24,47 +24,75 @@ #define ZTEXT_H #include <zverse.h> +#include <rawstr.h> #include <swtext.h> //#include <swcomprs.h> #include <defs.h> +namespace lucene { namespace index { +class IndexReader; +}} + +namespace lucene { namespace search { +class IndexSearcher; +}} + +SWORD_NAMESPACE_START + /*** SWModule implementation for compressed modules * This class handles compressed modules. * It should not be used in frontends, unless you are doing very special things. */ class SWDLLEXPORT zText:public zVerse, public SWText { - VerseKey *lastWriteKey; - bool sameBlock (VerseKey * lastWriteKey, VerseKey * key); + + VerseKey *lastWriteKey; + bool sameBlock(VerseKey * lastWriteKey, VerseKey * key); int blockType; + lucene::index::IndexReader *ir; + lucene::search::IndexSearcher *is; + VerseKey &getVerseKey(); + + public: - - zText(const char *ipath, const char *iname = 0, const char *idesc = - 0, int blockType = CHAPTERBLOCKS, SWCompress * icomp = - 0, SWDisplay * idisp = 0, SWTextEncoding encoding = ENC_UNKNOWN, SWTextDirection dir = DIRECTION_LTR, SWTextMarkup markup = FMT_UNKNOWN, - const char* ilang = 0); - virtual ~zText (); - virtual char *getRawEntry(); + zText(const char *ipath, const char *iname = 0, const char *idesc = 0, + int blockType = CHAPTERBLOCKS, SWCompress * icomp = 0, + SWDisplay * idisp = 0, SWTextEncoding encoding = ENC_UNKNOWN, + SWTextDirection dir = DIRECTION_LTR, + SWTextMarkup markup = FMT_UNKNOWN, const char* ilang = 0); - virtual SWModule & operator += (int increment); - virtual SWModule & operator -= (int decrement) { return this->operator += (-decrement); } + virtual ~zText(); + virtual SWBuf &getRawEntryBuf(); + + virtual void increment(int steps = 1); + virtual void decrement(int steps = 1) { increment(-steps); } // write interface ---------------------------- - virtual bool isWritable () { return ((idxfp[0]->getFd() > 0) && ((idxfp[0]->mode & O_RDWR) == O_RDWR)); } - static char createModule (const char *path, int blockBound) { - return zVerse::createModule (path, blockBound); + virtual bool isWritable() { return ((idxfp[0]->getFd() > 0) && ((idxfp[0]->mode & O_RDWR) == O_RDWR)); } + static char createModule(const char *path, int blockBound) { + return zVerse::createModule(path, blockBound); } - virtual SWModule & setentry (const char *inbuf, long len); // Modify current module entry - virtual SWModule & operator << (const char *inbuf); // Modify current module entry - virtual SWModule & operator << (const SWKey * linkKey); // Link current module entry to other module entry - virtual void deleteEntry (); // Delete current module entry + virtual void setEntry(const char *inbuf, long len = -1); // Modify current module entry + virtual void linkEntry(const SWKey *linkKey); // Link current module entry to other module entry + virtual void deleteEntry(); // Delete current module entry // end write interface ------------------------ + virtual void rawZFilter(SWBuf &buf, char direction = 0) { rawFilter(buf, (SWKey *)(long)direction); }// hack, use key as direction for enciphering + // swcacher interface ---------------------- virtual void flush() { flushCache(); } // end swcacher interface ---------------------- + + virtual signed char createSearchFramework(); + virtual bool hasSearchFramework() { return true; } + virtual ListKey &search(const char *istr, int searchType = 0, int flags = 0, SWKey * scope = 0, bool * justCheckIfSupported = 0, void (*percent)(char, void *) = &SWModule::nullPercent, void *percentUserData = 0); + + + SWMODULE_OPERATORS + }; +SWORD_NAMESPACE_END #endif |