[jsword-devel] Sword drivers

Mark Goodwin jsword-devel@crosswire.org
16 Oct 2002 21:15:10 +0100


It occurs to me it would be a good idea to document this kind of stuff
on the wiki for the benefit of those who join the list after these
dicussions.

I've started a Todo list:

http://sword.sourceforge.net/cgi-bin/twiki/view/Jsword/ToDo

MarkG

On Wed, 2002-10-16 at 21:00, Troy A. Griffitts wrote:
> Hey guys.  The best place to look is in the sword drivers and helper 
> classes.  The driver are found at the lowest level in the modules/ tree, 
> e.g. sword/src/modules/texts/ztext/ztext.cpp
> Most of these drivers use common functionality found in utility classes 
> located in sword/src/modules/common, e.g. zverse.cpp-- used for 
> read/write access to compressed files indexed by 'verse'.  Also, there 
> is a class hierarchy in here LZSSCompress::SWCompress and 
> ZipCompress::SWCompress.  These are the implementations of sword's 
> SWCompress interface that the ztext and zstr compress classes use for 
> compression.  Also SWCipher which has a base implementation using 
> sapphire encryption but is the interface for en/deciphering text for 
> locked modules.
> 
> the sword engine allow hooks for filtering the text of the modules in 
> various places.  Implementations of these hooks can be found in:
> 
> sword/modules/filters
> 
> Current hooks include:
> 
> rawFilter (3 modes that should probably be split into 3 different hooks):
>    before write sync-- mostly used by encipher filter
>    after read cache-- mostly used by decipher filter
>    on getText of an entry-- mostly used by text encoding (utf8, etc)
> 
> stripFilter-- to allow a filter that removes all tags and markup. 
> Prepares an entry for searching.
> 
> renderFilter-- to allow a filter to place markup appropriate for the 
> frontend renderer (html, rtf, etc).
> 
> SWFilter is the interface.  SWBasicFilter is a helper implementation. 
> Classes found in sword/src/modules/filters are the useful 
> implementations.  These should be easy to convert into java.  They 
> aren't pretty, but need to be fast, as they process alot of text at a 
> low level in the api.
> 
> 
> Hope this gives some good insight into the underlying workings of the 
> engine.
> 
> 		-Troy.
> 
> 
> 
> Mark Goodwin wrote:
> > On Wed, 2002-10-16 at 17:58, Mark Goodwin wrote:
> > 
> >>Hello people.
> >>
> >>Plain text Sword drivers are now working.
> > 
> > 
> > I should perhaps add that whilst the plain text drivers work, they are
> > not complete....
> > 
> > We're still missing useful implementations of findPassage, getStartsWith
> > and listWords.  This means that searches do not work on sword modules. 
> > I've not taken a look at what's involved in implementing this
> > functionality.
> > 
> > Also, there's currently no support for locked, or compressed Sword
> > modules.  Compressed sword modules may be compressed with either Zip, or
> > LZSS compression.  There is support (as you all know) for zip files in
> > the java.util.zip package, for LZSS, I found this:
> > 
> > http://home.tiscali.cz:8080/~cz210552/lzss.html 
> > 
> > I've not checked out the license or the code yet, but it features on a
> > page of "Open Source" programs.  The license may, or may not be GPL
> > compatible, and the code may, or may not be any good.
> > 
> > I've not looked at locked modules yet, Perhaps Troy could point us in
> > the direction of some documentation for these?
> > 
> > Finally, it would be good if we could write Sword modules as well.
> > 
> > So then, there's lots of work still to be done.  Unfortunately I won't
> > have time to do much for at least the next week and a half.  Hopefully
> > the information above is helpful to someone who will ;-)
> > 
> > MarkG
> > 
> > _______________________________________________
> > jsword-devel mailing list
> > jsword-devel@crosswire.org
> > http://www.crosswire.org/mailman/listinfo/jsword-devel
> 
> 
> _______________________________________________
> jsword-devel mailing list
> jsword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel