Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1994 Microsoft Corporation All rights reserved.
Module Name:
SleepN.hxx
Abstract:
Handles delayed callbacks. Delay must be < 49.7 days, and the callback must execute very quickly.
Author:
Albert Ting (AlbertT) 19-Dec-1994
Revision History:
--*/
#ifndef _SLEEPN_HXX
#define _SLEEPN_HXX
typedef DWORD TICKCOUNT; class TSleepNotify;
class VSleepWorker { friend TSleepNotify;
SIGNATURE( 'slpw' )
private:
DLINK( VSleepWorker, SleepWorker ); TICKCOUNT TickCountWake; virtual VOID vCallback( VOID ) = 0; };
class TSleepNotify {
SIGNATURE( 'slpn' ) SAFE_NEW
private:
enum { kTickCountMargin = 1000*60*60, };
MCritSec _CritSec; HANDLE _hEvent;
DLINK_BASE( VSleepWorker, SleepWorker, SleepWorker );
public:
TSleepNotify( VOID );
BOOL bValid( VOID ) const { return _hEvent != NULL; }
VOID vRun( VOID ); VOID vAdd( VSleepWorker& SleepWorker, TICKCOUNT TickCountWake ); };
#endif // ndef _SLEEPN_HXX
|