]> git.tdb.fi Git - libs/core.git/blob - source/memory.h
Drop copyright and license notices from files
[libs/core.git] / source / memory.h
1 #ifndef MSP_IO_MEMORY_H_
2 #define MSP_IO_MEMORY_H_
3
4 #include "base.h"
5 #include "seek.h"
6
7 namespace Msp {
8 namespace IO {
9
10 class Memory: public Base
11 {
12 private:
13         char *begin;
14         char *end;
15         char *pos;
16
17 public:
18         Memory(char *, unsigned);
19         Memory(char *, char *);
20         Memory(const char *, unsigned);
21         Memory(const char *, const char *);
22 private:
23         void init(char *, char *, Mode);
24
25 public:
26         virtual unsigned put(char);
27         virtual bool getline(std::string &);
28         virtual int get();
29         unsigned seek(int, SeekType);
30         unsigned tell() const { return pos-begin; }
31         virtual Handle get_event_handle();
32 private:
33         virtual unsigned do_write(const char *, unsigned);
34         virtual unsigned do_read(char *, unsigned);
35         void check_mode(Mode) const;
36 };
37
38 } // namespace IO
39 } // namespace Msp
40
41 #endif