X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Fmemory.cpp;h=19629c446d6c8bfc5e25288e8580deeadbe68c5c;hb=1787d4928ac1285f5434a2c8d0676deea9ce9176;hp=c5aee1e0536e040e72187172b2c084269596cce9;hpb=481b844ed7d180ffbf70223075f2fc1ffdb5b444;p=libs%2Fcore.git diff --git a/source/io/memory.cpp b/source/io/memory.cpp index c5aee1e..19629c4 100644 --- a/source/io/memory.cpp +++ b/source/io/memory.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "handle.h" #include "memory.h" @@ -8,28 +9,7 @@ using namespace std; namespace Msp { namespace IO { -Memory::Memory(char *d, unsigned s, Mode m) -{ - init(d, d+s, m); -} - Memory::Memory(char *b, char *e, Mode m) -{ - init(b, e, m); -} - -Memory::Memory(const char *cd, unsigned s) -{ - char *d = const_cast(cd); - init(d, d+s, M_READ); -} - -Memory::Memory(const char *b, const char *e) -{ - init(const_cast(b), const_cast(e), M_READ); -} - -void Memory::init(char *b, char *e, Mode m) { begin = b; end = e; @@ -39,20 +19,25 @@ void Memory::init(char *b, char *e, Mode m) void Memory::set_block(bool) { - throw logic_error("Memory::set_block"); + throw unsupported("Memory::set_block"); +} + +void Memory::set_inherit(bool) +{ + throw unsupported("Memory::set_inherit"); } -unsigned Memory::do_write(const char *buf, unsigned size) +size_t Memory::do_write(const char *buf, size_t size) { check_access(M_WRITE); - size = min(size, end-pos); + size = min(size, end-pos); memcpy(pos, buf, size); pos += size; return size; } -unsigned Memory::do_read(char *buf, unsigned size) +size_t Memory::do_read(char *buf, size_t size) { check_access(M_READ); @@ -62,13 +47,13 @@ unsigned Memory::do_read(char *buf, unsigned size) return 0; } - size = min(size, end-pos); + size = min(size, end-pos); memcpy(buf, pos, size); pos += size; return size; } -unsigned Memory::put(char c) +size_t Memory::put(char c) { check_access(M_WRITE); @@ -110,7 +95,7 @@ int Memory::get() const Handle &Memory::get_handle(Mode) { - throw logic_error("Memory::get_handle"); + throw unsupported("Memory::get_handle"); } SeekOffset Memory::seek(SeekOffset off, SeekType type)