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.10 2001/05/25 10:44:22 jansorg 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 { 00038 char *versebuf; 00039 VerseKey *lastWriteKey; 00040 bool sameBlock (VerseKey * lastWriteKey, VerseKey * key); 00041 int blockType; 00042 public: 00043 00044 00045 zText (const char *ipath, const char *iname = 0, const char *idesc = 00046 0, int blockType = CHAPTERBLOCKS, SWCompress * icomp = 00047 0, SWDisplay * idisp = 0); 00048 virtual ~ zText (); 00049 virtual char *getRawEntry (); 00050 00051 // write interface ---------------------------- 00052 virtual bool isWritable () 00053 { 00054 return true; 00055 } 00056 static char createModule (const char *path, int blockBound) 00057 { 00058 return zVerse::createModule (path, blockBound); 00059 } 00060 virtual SWModule & operator << (const char *inbuf); // Modify current module entry 00061 virtual SWModule & operator << (const SWKey * linkKey); // Link current module entry to other module entry 00062 virtual void deleteEntry (); // Delete current module entry 00063 // end write interface ------------------------ 00064 }; 00065 00066 00067 #endif