~ubuntu-branches/debian/squeeze/sword/squeeze

« back to all changes in this revision

Viewing changes to include/zstr.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Marsden, Jonathan Marsden, Dmitrijs Ledkovs, Closed Bugs
  • Date: 2009-05-30 11:55:55 UTC
  • mfrom: (1.3.1 upstream) (6.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20090530115555-r427zsn3amivdpfu
Tags: 1.6.0+dfsg-1
[ Jonathan Marsden ]
* New upstream release. (Closes: #507960) (LP: #320558)
* debian/patches/02_libver.diff:
  - Bump SONAME to 8 -- SWORD 1.6 is not backward compatible with 1.5.11.
* debian/patches/series:
  - Remove 10_diatheke.diff -- included in upstream source.
* debian/patches/:
  - Remove several old unused .diff files.
  - Add 11_regex_only_when_needed.diff to conditionally include regex lib.
  - Add 12_fix_compiler_warnings.diff to remove all compiler warnings.
  - Add 13_fix_osis2mod_compression_default.diff from upstream svn.
  - Add 14_closing_section_not_chapter.diff from upstream svn.
* debian/libsword7.*: 
  - Rename to libsword8.*
  - Change libsword7 to libsword8 within files.
* debian/rules: 
  - SONAME bump to 8.
  - Set library version check to >= 1.6
* debian/control:
  - Change libsword7 to libsword8.
  - Add libsword7 to Conflicts.
  - Fix case of sword to SWORD in package descriptions.
  - Bump Standards-Version to 3.8.1 (no changes needed).
  - Fix section for libsword-dbg to avoid lintian warning.
* debian/rules:
  - Add DFSG get-orig-source target.
* debian/copyright:
  - Fix various mistakes in initial attempt to document copyrights.

[ Dmitrijs Ledkovs ]
* debian/rules: Added utils.mk to use missing-files target and call it on
  each build.
* debian/libsword-dev.install: Added libsword.la, previously missing.
* debian/libsword7.install: Added missing libicu translit files.
* debian/control:
  - Updated all uses of SWORD version to 1.6
  - Added libsword-dbg package
* debian/watch: Fixed a small mistake which was resulting in extra "."
  in final version name.
* debian/rules: simplified manpage processing.
* debian/libsword8.lintian-overrides: added override for module
  installation directory.
* debian/copyright: Updated with information about everyfile.
  Closes: #513448 LP: #322638
* debian/diatheke.examples: moved examples here from the diatheke.install
* debian/rules:
  - enabled shell script based testsuite
  - added commented out cppunit testsuite
* debian/patches/40_missing_includes.diff: 
  - added several missing stdio.h includes to prevent FTBFS of testsuite.

[ Closed Bugs ]
* FTBFS on intrepid (LP: #305172)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*****************************************************************************
 
2
 * zstr.h   - code for class 'zStr'- a module that reads compressed text
 
3
 *                      files.
 
4
 *                      and provides lookup and parsing functions based on
 
5
 *                      class StrKey
 
6
 *
 
7
 * $Id: zstr.h 2303 2009-04-06 13:38:34Z scribe $
 
8
 *
 
9
 * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
 
10
 *      CrossWire Bible Society
 
11
 *      P. O. Box 2528
 
12
 *      Tempe, AZ  85280-2528
 
13
 *
 
14
 * This program is free software; you can redistribute it and/or modify it
 
15
 * under the terms of the GNU General Public License as published by the
 
16
 * Free Software Foundation version 2.
 
17
 *
 
18
 * This program is distributed in the hope that it will be useful, but
 
19
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 
20
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
21
 * General Public License for more details.
 
22
 *
 
23
 */
 
24
 
 
25
#ifndef ZSTR_H
 
26
#define ZSTR_H
 
27
 
 
28
#include <defs.h>
 
29
 
 
30
SWORD_NAMESPACE_START
 
31
 
 
32
class SWCompress;
 
33
class EntriesBlock;
 
34
class FileDesc;
 
35
class SWBuf;
 
36
 
 
37
class SWDLLEXPORT zStr {
 
38
 
 
39
private:
 
40
        static int instance;            // number of instantiated zStr objects or derivitives
 
41
        EntriesBlock *cacheBlock;
 
42
        long cacheBlockIndex;
 
43
        bool cacheDirty;
 
44
        char *path;
 
45
        mutable long lastoff;           // for caching and optimization
 
46
        long blockCount;
 
47
        SWCompress *compressor;
 
48
 
 
49
protected:
 
50
        FileDesc *idxfd;
 
51
        FileDesc *datfd;
 
52
        FileDesc *zdxfd;
 
53
        FileDesc *zdtfd;
 
54
        static const int IDXENTRYSIZE;
 
55
        static const int ZDXENTRYSIZE;
 
56
 
 
57
        void getCompressedText(long block, long entry, char **buf);
 
58
        void flushCache();
 
59
        void getKeyFromDatOffset(long ioffset, char **buf) const;
 
60
        void getKeyFromIdxOffset(long ioffset, char **buf) const;
 
61
 
 
62
public:
 
63
        char nl;
 
64
        zStr(const char *ipath, int fileMode = -1, long blockCount = 100, SWCompress *icomp = 0);
 
65
        virtual ~zStr();
 
66
        signed char findKeyIndex(const char *ikey, long *idxoff, long away = 0) const;
 
67
        void getText(long index, char **idxbuf, char **buf);
 
68
        void setText(const char *ikey, const char *buf, long len = -1);
 
69
        void linkEntry(const char *destkey, const char *srckey);
 
70
        virtual void rawZFilter(SWBuf &buf, char direction = 0) {}
 
71
        static signed char createModule (const char *path);
 
72
};
 
73
 
 
74
SWORD_NAMESPACE_END
 
75
#endif