1 #ifndef MSP_STRINGCODEC_ISO2022JP_H_
2 #define MSP_STRINGCODEC_ISO2022JP_H_
4 #include <msp/core/mspcore_api.h>
8 namespace StringCodec {
10 class MSPCORE_API Iso2022Jp: public StandardCodec<Iso2022Jp>
20 class MSPCORE_API Encoder: public Codec::Encoder
26 Encoder(ErrorMode em = DEFAULT): Codec::Encoder(em) { }
28 void encode_char(unichar, std::string &) override;
29 void sync(std::string &) override;
30 void reset() override;
32 void switch_mode(Mode, std::string &);
33 void transliterate(unichar, std::string &) override;
36 class MSPCORE_API Decoder: public Codec::Decoder
40 Codec::Decoder *dec = nullptr;
43 Decoder(ErrorMode = DEFAULT);
45 unichar decode_char(const std::string &, std::string::const_iterator &) override;
46 void reset() override;
48 void switch_mode(Mode);
51 Iso2022Jp(ErrorMode em = DEFAULT): StandardCodec<Iso2022Jp>(em) { }
53 const char *get_name() const override { return "ISO-2022-JP"; }
56 } // namespace StringCodec