11 Memory::Memory(char *b, char *e, Mode m)
19 void Memory::set_block(bool)
21 throw logic_error("Memory::set_block");
24 void Memory::set_inherit(bool)
26 throw logic_error("Memory::set_inherit");
29 size_t Memory::do_write(const char *buf, size_t size)
31 check_access(M_WRITE);
33 size = min<size_t>(size, end-pos);
34 memcpy(pos, buf, size);
39 size_t Memory::do_read(char *buf, size_t size)
49 size = min<size_t>(size, end-pos);
50 memcpy(buf, pos, size);
55 size_t Memory::put(char c)
57 check_access(M_WRITE);
66 bool Memory::getline(string &line)
76 char *nl = find(pos, end, '\n');
78 pos = (nl==end ? end : nl+1);
92 return static_cast<unsigned char>(*pos++);
95 const Handle &Memory::get_handle(Mode)
97 throw logic_error("Memory::get_handle");
100 SeekOffset Memory::seek(SeekOffset off, SeekType type)
110 throw invalid_argument("Memory::seek");
112 if(new_pos<begin || new_pos>end)
113 throw bad_seek(off, type);