]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/memory.cpp
Separate event-related stuff from Base
[libs/core.git] / source / io / memory.cpp
index 6ea130b54ae134478ab40851f4c49cf1d68ad439..af6ef3d44ce386ce2bd7d2caaf8b1a8de24a9fa7 100644 (file)
@@ -1,6 +1,6 @@
 #include <algorithm>
 #include <cstring>
-#include "except.h"
+#include "handle.h"
 #include "memory.h"
 
 using namespace std;
@@ -98,29 +98,19 @@ unsigned Memory::seek(int off, SeekType type)
        else if(type==S_END)
                new_pos = end+off;
        else
-               throw InvalidParameterValue("Invalid seek type");
+               throw invalid_argument("Memory::seek");
 
        if(new_pos<begin || new_pos>end)
-               throw InvalidParameterValue("Invalid seek offset");
+               throw out_of_range("Memory::seek");
 
        pos = new_pos;
        return pos-begin;
 }
 
-Handle Memory::get_event_handle()
-{
-       throw Exception("Memory doesn't support events");
-}
-
 void Memory::check_mode(Mode m) const
 {
-       if(m==M_WRITE)
-       {
-               if(!(mode&M_WRITE))
-                       throw InvalidState("Memory is not writable");
-               if(pos==end)
-                       throw InvalidState("Attempt to write past end of Memory");
-       }
+       if(m==M_WRITE && !(mode&M_WRITE))
+               throw invalid_access(M_WRITE);
 }
 
 } // namespace IO