00001 /*************************************************************************** 00002 xmlcodec.h - Definition of XmlCodec class 00003 ------------------- 00004 begin : June 21 2002 00005 copyright : (C) 2003 by Vojtìch Toman 00006 email : vtoman@lit.cz 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 00026 #ifdef __GNUG__ 00027 # pragma interface 00028 #endif 00029 00030 00031 #ifndef XMLCODEC_H 00032 #define XMLCODEC_H 00033 00034 00035 00036 #include "arithcodec.h" 00037 #include "context.h" 00038 #include "defs.h" 00039 #include "exceptions.h" 00040 #include "funneldevice.h" 00041 #include "kygrammar.h" 00042 #include "xmlcodecbase.h" 00043 #include "xmlparser.h" 00044 #include "xmlsimplemodel.h" 00045 #include "xmladaptivemodel.h" 00046 00047 00053 class XmlCodec : public XmlCodecBase 00054 { 00055 public: 00057 XmlCodec(void); 00058 00060 virtual ~XmlCodec(void); 00061 00063 virtual bool encode(IODevice *inDevice, IODevice *outDevice); 00064 00066 virtual void initializePushCoder(IODevice *outDevice); 00067 00069 virtual bool encodePush(const char *data, int length, bool isFinal = false); 00070 00072 virtual bool decode(IODevice *inDevice, SAXReceptor *receptor, void *userData = 0); 00073 00074 00075 00076 protected: 00078 IODevice *inputDevice; 00079 00081 IODevice *outputDevice; 00082 00084 XmlParser *xmlParser; 00085 00087 XmlModelBase *xmlModel; 00088 00090 KYGrammar *kyGrammar; 00091 00093 Context *context; 00094 00096 ArithCodec *arithCodec; 00097 }; 00098 00099 00100 #endif //XMLCODEC_H