1 #ifndef MSP_IO_MEMORY_H_
2 #define MSP_IO_MEMORY_H_
4 #include <msp/core/mspcore_api.h>
10 class MSPCORE_API Memory: public Seekable
13 char *begin = nullptr;
18 Memory(char *d, std::size_t s, Mode m = M_RDWR);
19 Memory(char *, char *, Mode = M_RDWR);
20 Memory(const char *d, std::size_t s);
21 Memory(const char *b, const char *e);
23 void set_block(bool) override;
24 void set_inherit(bool) override;
27 std::size_t do_write(const char *, std::size_t) override;
28 std::size_t do_read(char *, std::size_t) override;
30 std::size_t put(char) override;
31 bool getline(std::string &) override;
34 const Handle &get_handle(Mode) override;
36 SeekOffset seek(SeekOffset, SeekType) override;
37 SeekOffset tell() const override { return pos-begin; }