#ifndef QTEXTCODEC_H
#define QTEXTCODEC_H 
#include <QtCore/qstring.h>
#include <QtCore/qlist.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
#ifndef QT_NO_TEXTCODEC
struct QIODevice;
class QTextCodec{
   private: QTextCodec(class QTextCodec const &);
   private: class QTextCodec& operator =(class QTextCodec const &);
   public: static class QTextCodec* codecForName(class QByteArray const & name);
   public: static inline class QTextCodec* codecForName(char const * name);
   public: static class QTextCodec* codecForMib(int mib);
   public: static class QList < class QByteArray > availableCodecs();
   public: static class QList < int > availableMibs();
   public: static class QTextCodec* codecForLocale();
   public: static void setCodecForLocale(class QTextCodec* c);
   public: static class QTextCodec* codecForHtml(class QByteArray const & ba);
   public: class QTextDecoder* makeDecoder() const
   public: class QTextEncoder* makeEncoder() const
   public: bool canEncode(class QChar) const
   public: bool canEncode(class QString const &) const
   public: class QString toUnicode(class QByteArray const &) const
   public: class QString toUnicode(char const * chars) const
   public: class QByteArray fromUnicode(class QString const & uc) const
   public: enum ConversionFlag{
      DefaultConversion = 0,
      ConvertInvalidToNull = -2147483648,
      IgnoreHeader = 1,
   };
   public: typedef class QFlags < enum QTextCodec::ConversionFlag > ConversionFlags;
   public: struct ConverterState{
      public: inline ConverterState(class QFlags < enum QTextCodec::ConversionFlag > f = QTextCodec::DefaultConversion);
      public: inline ~ConverterState();
      public: class QFlags < enum QTextCodec::ConversionFlag > flags;
      public: int remainingChars;
      public: int invalidChars;
      public: uint state_data[3];
      public: void* d;
      private: ConverterState(struct QTextCodec::ConverterState const &);
      private: struct QTextCodec::ConverterState& operator =(struct QTextCodec::ConverterState const &);
   };
   public: inline class QString toUnicode(char const * in, int length, struct QTextCodec::ConverterState* state = 0) const
   public: inline class QByteArray fromUnicode(class QChar const * in, int length, struct QTextCodec::ConverterState* state = 0) const
   public: virtual class QByteArray name() const = 0;
   public: virtual class QList < class QByteArray > aliases() const
   public: virtual int mibEnum() const = 0;
   protected: virtual class QString convertToUnicode(char const * in, int length, struct QTextCodec::ConverterState* state) const = 0;
   protected: virtual class QByteArray convertFromUnicode(class QChar const * in, int length, struct QTextCodec::ConverterState* state) const = 0;
   protected: QTextCodec();
   protected: virtual ~QTextCodec();
   private: static class QTextCodec* cftr;
   public: static inline class QTextCodec* codecForTr();
   public: static inline void setCodecForTr(class QTextCodec* c);
   public: static inline class QTextCodec* codecForCStrings();
   public: static inline void setCodecForCStrings(class QTextCodec* c);
   friend struct QTextCodecCleanup;
};
struct QTextCodecCleanup;
inline class QFlags < enum QTextCodec::ConversionFlag > operator |(enum QTextCodec::ConversionFlag f1, class QFlags < enum QTextCodec::ConversionFlag > f2);
inline class QFlags < enum QTextCodec::ConversionFlag > operator |(enum QTextCodec::ConversionFlag f1, enum QTextCodec::ConversionFlag f2);
class QTextEncoder{
   private: QTextEncoder(class QTextEncoder const &);
   private: class QTextEncoder& operator =(class QTextEncoder const &);
   public: explicit inline QTextEncoder(QTextCodec* codec);
   public: ~QTextEncoder();
   public: class QByteArray fromUnicode(class QString const & str);
   public: class QByteArray fromUnicode(class QChar const * uc, int len);
   private: QTextCodec* c;
   private: struct QTextCodec::ConverterState state;
};
class QTextDecoder{
   private: QTextDecoder(class QTextDecoder const &);
   private: class QTextDecoder& operator =(class QTextDecoder const &);
   public: explicit inline QTextDecoder(QTextCodec* codec);
   public: ~QTextDecoder();
   public: class QString toUnicode(char const * chars, int len);
   public: class QString toUnicode(class QByteArray const & ba);
   private: QTextCodec* c;
   private: struct QTextCodec::ConverterState state;
};
#endif // QT_NO_TEXTCODEC
#endif // QTEXTCODEC_H