]> git.tdb.fi Git - libs/core.git/commitdiff
Add put, getline and get to Filtered to make use of possible optimizations in the...
authorMikko Rasa <tdb@tdb.fi>
Sun, 17 Aug 2008 06:48:08 +0000 (06:48 +0000)
committerMikko Rasa <tdb@tdb.fi>
Sun, 17 Aug 2008 06:48:08 +0000 (06:48 +0000)
Set active in ~Filtered, since the filter may want to write something in its destructor

source/filtered.h

index 057517547c5ea7aa9afdfd80a9f78ff2292bfa75..e3ff219834aac6641260b58abb324353b0bd041a 100644 (file)
@@ -28,6 +28,7 @@ private:
 
 public:
        Filtered(): filter(*this), active(false) { }
+       ~Filtered() { active=true; }
 
        template<typename A0>
        Filtered(A0 a0): B(a0), filter(*this), active(false) { }
@@ -35,6 +36,10 @@ public:
        template<typename A0, typename A1>
        Filtered(A0 a0, A1 a1): B(a0, a1), filter(*this), active(false) { }
 
+       virtual unsigned put(char c) { return filter.put(c); }
+       virtual bool getline(std::string &l) { return filter.getline(l); }
+       virtual int get() { return filter.get(); }
+
        F &get_filter() { return filter; }
 protected:
        virtual unsigned do_write(const char *b, unsigned s)