X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fhandle.cpp;h=693f93f4c1dbf16e052645c416d582b16702e361;hp=0e9b82aa000c9382fe954b764f36d6614710934e;hb=5a32939eb6e576c223e1be5f80226d9e628a2398;hpb=6c40658510b68788fd5ef0488b20873b6aa32938 diff --git a/source/io/handle.cpp b/source/io/handle.cpp index 0e9b82a..693f93f 100644 --- a/source/io/handle.cpp +++ b/source/io/handle.cpp @@ -1,6 +1,3 @@ -#include -#include -#include #include "handle.h" #include "handle_private.h" @@ -30,77 +27,19 @@ Handle::~Handle() Handle::operator const void *() const { -#ifdef WIN32 return priv->handle!=INVALID_HANDLE_VALUE ? this : 0; -#else - return priv->handle!=-1 ? this : 0; -#endif } Handle::Private::Private(): -#ifdef WIN32 handle(INVALID_HANDLE_VALUE) -#else - handle(-1) -#endif { } -Handle::Private &Handle::Private::operator=(H h) +Handle::Private &Handle::Private::operator=(PlatformHandle h) { handle = h; return *this; } - -unsigned sys_read(Handle &handle, char *buf, unsigned size) -{ -#ifdef WIN32 - DWORD ret; - if(ReadFile(*handle, buf, size, &ret, 0)==0) - throw system_error("ReadFile"); -#else - int ret = read(*handle, buf, size); - if(ret==-1) - { - if(errno==EAGAIN) - return 0; - else - throw system_error("read"); - } -#endif - - return ret; -} - -unsigned sys_write(Handle &handle, const char *buf, unsigned size) -{ -#ifdef WIN32 - DWORD ret; - if(WriteFile(*handle, buf, size, &ret, 0)==0) - throw system_error("WriteFile"); -#else - int ret = write(*handle, buf, size); - if(ret==-1) - { - if(errno==EAGAIN) - return 0; - else - throw system_error("write"); - } -#endif - - return ret; -} - -void sys_close(Handle &handle) -{ -#ifdef WIN32 - CloseHandle(*handle); -#else - close(*handle); -#endif -} - } // namespace IO } // namespace Msp