X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fstringcodec%2Fiso2022jp.h;h=a9bc1c2d513d37bb20486009bb6964764836d5e4;hp=91f0166e19a5e0e6f533304c46dba6a5ee679e78;hb=HEAD;hpb=02794ef3620d0d9cc3b8f1c0d8f2995c825fdf4f diff --git a/source/stringcodec/iso2022jp.h b/source/stringcodec/iso2022jp.h index 91f0166..0bb1ad3 100644 --- a/source/stringcodec/iso2022jp.h +++ b/source/stringcodec/iso2022jp.h @@ -1,12 +1,13 @@ #ifndef MSP_STRINGCODEC_ISO2022JP_H_ #define MSP_STRINGCODEC_ISO2022JP_H_ +#include #include "codec.h" namespace Msp { namespace StringCodec { -class Iso2022Jp: public Codec +class MSPCORE_API Iso2022Jp: public StandardCodec { public: enum Mode @@ -16,41 +17,40 @@ public: JISX0208 }; - class Encoder: public Codec::Encoder + class MSPCORE_API Encoder: public Codec::Encoder { private: - Mode mode; + Mode mode = ASCII; public: - Encoder(ErrorMode em = THROW_ON_ERROR): Codec::Encoder(em), mode(ASCII) { } + Encoder(ErrorMode em = DEFAULT): Codec::Encoder(em) { } - virtual void encode_char(unichar, std::string &); - virtual void sync(std::string &); - virtual void reset(); + void encode_char(unichar, std::string &) override; + void sync(std::string &) override; + void reset() override; private: void switch_mode(Mode, std::string &); - virtual void transliterate(unichar, std::string &); + void transliterate(unichar, std::string &) override; }; - class Decoder: public Codec::Decoder + class MSPCORE_API Decoder: public Codec::Decoder { private: - Mode mode; - Codec::Decoder *dec; + Mode mode = ASCII; + Codec::Decoder *dec = nullptr; public: - Decoder(ErrorMode =THROW_ON_ERROR); + Decoder(ErrorMode = DEFAULT); - virtual unichar decode_char(const std::string &, std::string::const_iterator &); - virtual void reset(); + unichar decode_char(const std::string &, std::string::const_iterator &) override; + void reset() override; private: void switch_mode(Mode); }; - virtual const char *get_name() const { return "ISO-2022-JP"; } + Iso2022Jp(ErrorMode em = DEFAULT): StandardCodec(em) { } - virtual Encoder *create_encoder(ErrorMode em = THROW_ON_ERROR) const { return new Encoder(em); } - virtual Decoder *create_decoder(ErrorMode em = THROW_ON_ERROR) const { return new Decoder(em); } + const char *get_name() const override { return "ISO-2022-JP"; } }; } // namespace StringCodec