00001 /****************************************************************************** 00002 * ztext.h - code for class 'zText'- a module that reads compressed text 00003 * files: ot and nt using indexs ??.vss 00004 * 00005 * $Id: ztext_h-source.html,v 1.4 2001/10/05 20:45:22 mgruner Exp $ 00006 * 00007 * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org) 00008 * CrossWire Bible Society 00009 * P. O. Box 2528 00010 * Tempe, AZ 85280-2528 00011 * 00012 * This program is free software; you can redistribute it and/or modify it 00013 * under the terms of the GNU General Public License as published by the 00014 * Free Software Foundation version 2. 00015 * 00016 * This program is distributed in the hope that it will be useful, but 00017 * WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 * General Public License for more details. 00020 * 00021 */ 00022 00023 #ifndef ZTEXT_H 00024 #define ZTEXT_H 00025 00026 #include <zverse.h> 00027 #include <swtext.h> 00028 //#include <swcomprs.h> 00029 00030 #include <defs.h> 00031 00032 /*** SWModule implementation for compressed modules 00033 * This class handles compressed modules. 00034 * It should not be used in frontends, unless you are doing very special things. 00035 */ 00036 class SWDLLEXPORT zText:public zVerse, public SWText { 00037 char *versebuf; 00038 VerseKey *lastWriteKey; 00039 bool sameBlock (VerseKey * lastWriteKey, VerseKey * key); 00040 int blockType; 00041 public: 00042 00043 00044 zText(const char *ipath, const char *iname = 0, const char *idesc = 00045 0, int blockType = CHAPTERBLOCKS, SWCompress * icomp = 00046 0, SWDisplay * idisp = 0, bool unicode = false); 00047 virtual ~zText (); 00048 virtual char *getRawEntry(); 00049 00050 // write interface ---------------------------- 00051 virtual bool isWritable() { return true; } 00052 static char createModule (const char *path, int blockBound) { 00053 return zVerse::createModule (path, blockBound); 00054 } 00055 virtual SWModule & operator << (const char *inbuf); // Modify current module entry 00056 virtual SWModule & operator << (const SWKey * linkKey); // Link current module entry to other module entry 00057 virtual void deleteEntry (); // Delete current module entry 00058 // end write interface ------------------------ 00059 }; 00060 00061 #endif