]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/windows/handle.cpp
Use nullptr instead of 0 for pointers
[libs/core.git] / source / io / windows / handle.cpp
index 17aabb080bb113c3e8e35a59f5cb7ae2f5fdafef..6d1219a24859e7757e9b1ba9e114ffbffa3793d7 100644 (file)
@@ -1,33 +1,41 @@
+#define NOMINMAX
+#include <limits>
 #include <msp/core/systemerror.h>
 #include "handle.h"
 #include "handle_private.h"
 
+using namespace std;
+
 namespace Msp {
 namespace IO {
 
-Handle::operator const void *() const
+void sys_set_blocking(Handle &, bool)
 {
-       return priv->handle!=INVALID_HANDLE_VALUE ? this : 0;
 }
 
-
-void sys_set_blocking(Handle &, bool)
+void sys_set_inherit(Handle &, bool)
 {
 }
 
-unsigned sys_read(Handle &handle, char *buf, unsigned size)
+size_t sys_read(Handle &handle, char *buf, size_t size)
 {
+       if(size>numeric_limits<DWORD>::max())
+               throw invalid_argument("read");
+
        DWORD ret;
-       if(ReadFile(*handle, buf, size, &ret, 0)==0)
+       if(ReadFile(*handle, buf, size, &ret, nullptr)==0)
                throw system_error("ReadFile");
 
        return ret;
 }
 
-unsigned sys_write(Handle &handle, const char *buf, unsigned size)
+size_t sys_write(Handle &handle, const char *buf, size_t size)
 {
+       if(size>numeric_limits<DWORD>::max())
+               throw invalid_argument("write");
+
        DWORD ret;
-       if(WriteFile(*handle, buf, size, &ret, 0)==0)
+       if(WriteFile(*handle, buf, size, &ret, nullptr)==0)
                throw system_error("WriteFile");
 
        return ret;