diff options
author | Chris Wilson <chris+github@qwirx.com> | 2008-10-03 22:39:59 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2008-10-03 22:39:59 +0000 |
commit | 962fe34e1d033dab5c8049b0d01dbcf0466c5386 (patch) | |
tree | 7621288e6bf597120deed7037dc1088b13ee4d7f /lib/server/OverlappedIO.h | |
parent | 86f379db8587547addb050663aa86ca8d87d0c5f (diff) |
Utility classes to be used by new Windows named pipe framework.
Diffstat (limited to 'lib/server/OverlappedIO.h')
-rw-r--r-- | lib/server/OverlappedIO.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/server/OverlappedIO.h b/lib/server/OverlappedIO.h new file mode 100644 index 00000000..12495053 --- /dev/null +++ b/lib/server/OverlappedIO.h @@ -0,0 +1,42 @@ +// -------------------------------------------------------------------------- +// +// File +// Name: OverlappedIO.h +// Purpose: Windows overlapped IO handle guard +// Created: 2008/09/30 +// +// -------------------------------------------------------------------------- + +#ifndef OVERLAPPEDIO__H +#define OVERLAPPEDIO__H + +class OverlappedIO +{ +public: + OVERLAPPED mOverlapped; + + OverlappedIO() + { + ZeroMemory(&mOverlapped, sizeof(mOverlapped)); + mOverlapped.hEvent = CreateEvent(NULL, TRUE, FALSE, + NULL); + if (mOverlapped.hEvent == INVALID_HANDLE_VALUE) + { + BOX_LOG_WIN_ERROR("Failed to create event for " + "overlapped I/O"); + THROW_EXCEPTION(ServerException, BadSocketHandle); + } + } + + ~OverlappedIO() + { + if (CloseHandle(mOverlapped.hEvent) != TRUE) + { + BOX_LOG_WIN_ERROR("Failed to delete event for " + "overlapped I/O"); + THROW_EXCEPTION(ServerException, BadSocketHandle); + } + } +}; + +#endif // !OVERLAPPEDIO__H |