00001 00002 #include "Core/precomp.h" 00003 #include "event_trigger_win32.h" 00004 00006 // CL_EventTrigger_Win32 construction: 00007 00008 CL_EventTrigger_Win32::CL_EventTrigger_Win32() 00009 : 00010 wait_handle(NULL) 00011 { 00012 wait_handle = CreateEvent(NULL, FALSE, FALSE, NULL); 00013 } 00014 00015 CL_EventTrigger_Win32::~CL_EventTrigger_Win32() 00016 { 00017 CloseHandle(wait_handle); 00018 } 00019 00021 // CL_EventTrigger_Win32 attributes: 00022 00023 bool CL_EventTrigger_Win32::get_flag() const 00024 { 00025 return WaitForSingleObject(wait_handle, 0) != WAIT_TIMEOUT; 00026 } 00027 00029 // CL_EventTrigger_Win32 operations: 00030 00031 void CL_EventTrigger_Win32::reset() const 00032 { 00033 ResetEvent(wait_handle); 00034 } 00035 00036 void CL_EventTrigger_Win32::set_flag() 00037 { 00038 SetEvent(wait_handle); 00039 } 00040 00041 bool CL_EventTrigger_Win32::wait(int timeout) const 00042 { 00043 DWORD result = WaitForSingleObject( 00044 wait_handle, 00045 (timeout == -1) ? INFINITE : timeout); 00046 00047 return (result == WAIT_TIMEOUT); 00048 } 00049 00051 // CL_EventTrigger_Win32 implementation:
1.2.6 written by Dimitri van Heesch,
© 1997-2001