X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fhandle.cpp;h=c20f067e5a6ca18b3d04c1c39b173d9ea7ccfe0b;hp=0e9b82aa000c9382fe954b764f36d6614710934e;hb=609c9a508cfdc7b42c46c4f21d17639204165a00;hpb=b4806214e905752617691f851717033fd3f266c2 diff --git a/source/io/handle.cpp b/source/io/handle.cpp index 0e9b82a..c20f067 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" @@ -28,79 +25,16 @@ Handle::~Handle() delete priv; } -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