]> git.tdb.fi Git - libs/core.git/blobdiff - source/iso2022jp.h
More sophisticated error handling
[libs/core.git] / source / iso2022jp.h
index 8ded0d845d2c87200577351acb57ded2466c9f2d..82803b67e61446de3950575027d1a8c29232e6d4 100644 (file)
@@ -18,22 +18,22 @@ 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();
        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();
-               void reset();
        private:
                Mode mode;
                StringCodec::Decoder *dec;
@@ -42,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