diff options
Diffstat (limited to 'include/zverse.h')
-rw-r--r-- | include/zverse.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/include/zverse.h b/include/zverse.h new file mode 100644 index 0000000..6323025 --- /dev/null +++ b/include/zverse.h @@ -0,0 +1,59 @@ +/****************************************************************************** + * rawverse.h - code for class 'zVerse'- a module that reads raw text + * files: ot and nt using indexs ??.bks ??.cps ??.vss + * and provides lookup and parsing functions based on + * class VerseKey + */ + +#ifndef ZVERSE_H +#define ZVERSE_H + +#include <defs.h> + +SWORD_NAMESPACE_START + +class FileDesc; +class SWCompress; +class SWBuf; + +class SWDLLEXPORT zVerse { + SWCompress *compressor; + +protected: + static int instance; // number of instantiated zVerse objects or derivitives + + FileDesc *idxfp[2]; + FileDesc *textfp[2]; + FileDesc *compfp[2]; + char *path; + void prepText(SWBuf &buf); + void doSetText(char testmt, long idxoff, const char *buf, long len = 0); + void doLinkEntry(char testmt, long destidxoff, long srcidxoff); + void flushCache(); + char *cacheBuf; + char cacheTestament; + long cacheBufIdx; + bool dirtyCache; + +public: + +#define VERSEBLOCKS 2 +#define CHAPTERBLOCKS 3 +#define BOOKBLOCKS 4 + + static const char uniqueIndexID[]; + char nl; + + + // fileMode default = RDONLY + zVerse(const char *ipath, int fileMode = -1, int blockType = CHAPTERBLOCKS, SWCompress * icomp = 0); + virtual ~zVerse(); + + void findOffset(char testmt, long idxoff, long *start, unsigned short *end); + void zReadText(char testmt, long start, unsigned short size, SWBuf &buf); + virtual void rawZFilter(SWBuf &buf, char direction = 0) {} + static char createModule(const char *path, int blockBound); +}; + +SWORD_NAMESPACE_END +#endif |