X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fiso2022jp.h;h=82803b67e61446de3950575027d1a8c29232e6d4;hp=89b80df0e311c8d4aae7cab953b0e0a597fc78ab;hb=d2118ac101602cfe2d62fb7deb6ef3fcb0fe137b;hpb=58384e355b4a78730d69243f1092e47591f2f384 diff --git a/source/iso2022jp.h b/source/iso2022jp.h index 89b80df..82803b6 100644 --- a/source/iso2022jp.h +++ b/source/iso2022jp.h @@ -18,19 +18,20 @@ public: class Encoder: public StringCodec::Encoder { public: - Encoder(): mode(ASCII) { } + Encoder(ErrorMode em=THROW_ON_ERROR): StringCodec::Encoder(em), mode(ASCII) { } void encode_char(wchar_t); - void sync() { switch_mode(ASCII); } + void sync(); private: Mode mode; void switch_mode(Mode); + void append_replacement(); }; class Decoder: public StringCodec::Decoder { public: - Decoder(); + Decoder(ErrorMode =THROW_ON_ERROR); void decode_char(const std::string &, std::string::const_iterator &); void sync(); private: @@ -41,8 +42,8 @@ public: void switch_mode(Mode); }; - Encoder *create_encoder() const { return new Encoder; } - Decoder *create_decoder() const { return new Decoder; } + Encoder *create_encoder(ErrorMode em=THROW_ON_ERROR) const { return new Encoder(em); } + Decoder *create_decoder(ErrorMode em=THROW_ON_ERROR) const { return new Decoder(em); } }; } // namespace Msp