]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/buffered.h
Use nullptr instead of 0 for pointers
[libs/core.git] / source / io / buffered.h
index 36d2a1165a3e52b7413397bf01575984efa3ac49..a5f6348591304712335d6654a183eed518ee9e62 100644 (file)
@@ -1,43 +1,47 @@
 #ifndef MSP_IO_BUFFERED_H_
 #define MSP_IO_BUFFERED_H_
 
+#include <sigc++/trackable.h>
 #include "base.h"
 
 namespace Msp {
 namespace IO {
 
-class Buffered: public Base
+class Buffered: public Base, public sigc::trackable
 {
 private:
        Base &below;
-       unsigned buf_size;
-       char *buf;
-       char *begin;
-       char *end;
-       Mode cur_op;
+       std::size_t buf_size = 0;
+       char *buf = nullptr;
+       char *begin = nullptr;
+       char *end = nullptr;
+       Mode cur_op = M_NONE;
 
 public:
-       Buffered(Base &, unsigned =8192);
+       Buffered(Base &, unsigned = 8192);
        ~Buffered();
 
+       virtual void set_block(bool);
+       virtual void set_inherit(bool);
+
        void flush();
 
 protected:
-       unsigned do_write(const char *, unsigned);
-       unsigned do_read(char *, unsigned);
+       virtual std::size_t do_write(const char *, std::size_t);
+       virtual std::size_t do_read(char *, std::size_t);
 public:
-       unsigned put(char);
+       virtual std::size_t put(char);
 
        bool getline(std::string &);
        int get();
 
+       virtual const Handle &get_handle(Mode);
+
 private:
        void set_op(Mode);
 public:
        Mode get_current_op() const { return cur_op; }
-       unsigned get_current_size() const;
-
-       virtual Handle get_event_handle();
+       std::size_t get_current_size() const;
 };
 
 } // namespace IO