encfiltmgr.h

00001 /******************************************************************************
00002  *  swencodingmgr.h   - definition of class SWEncodingMgr, subclass of
00003  *                        used to transcode all module text to a requested
00004  *                        markup.
00005  *
00006  * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
00007  *      CrossWire Bible Society
00008  *      P. O. Box 2528
00009  *      Tempe, AZ  85280-2528
00010  *
00011  * This program is free software; you can redistribute it and/or modify it
00012  * under the terms of the GNU General Public License as published by the
00013  * Free Software Foundation version 2.
00014  *
00015  * This program is distributed in the hope that it will be useful, but
00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * General Public License for more details.
00019  *
00020  */
00021 
00022 #ifndef ENCFILTERMGR_H
00023 #define ENCFILTERMGR_H
00024 
00025 #include <swfiltermgr.h>
00026 
00027 SWORD_NAMESPACE_START
00028 
00029 class SWFilter;
00030 
00036 class SWDLLEXPORT EncodingFilterMgr : public SWFilterMgr {
00037 
00038 protected:
00039         SWFilter *latin1utf8;
00040         SWFilter *scsuutf8;
00041         SWFilter *targetenc;
00042 
00043 
00044         /*
00045          * current encoding value
00046          */        
00047         char encoding;
00048 
00049 public:
00050 
00051 
00056         EncodingFilterMgr (char encoding = ENC_UTF8);
00057 
00061         ~EncodingFilterMgr();
00062 
00068         char Encoding(char enc);
00069 
00075         virtual void AddRawFilters(SWModule *module, ConfigEntMap &section);
00076 
00082         virtual void AddEncodingFilters(SWModule *module, ConfigEntMap &section);
00083 };
00084 
00085 SWORD_NAMESPACE_END
00086 #endif