windows-nt/Source/XPSP1/NT/base/fs/sis/groveler/etimer.h
2020-09-26 16:20:57 +08:00

74 lines
806 B
C++

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
etimer.h
Abstract:
SIS Groveler event timer include file
Authors:
John Douceur, 1998
Environment:
User Mode
Revision History:
--*/
#ifndef _INC_ETIMER
#define _INC_ETIMER
typedef void (*EventCallback)(void *);
class EventTimer
{
public:
EventTimer();
~EventTimer();
void run();
void halt();
void schedule(
unsigned int event_time,
void *context,
EventCallback callback);
private:
struct Event
{
unsigned int event_time;
void *context;
EventCallback callback;
};
struct HeapSegment
{
HeapSegment *previous;
HeapSegment *next;
Event events[1];
};
HeapSegment *first_segment, *last_segment;
int population;
int segment_size;
bool heap_ok;
bool running;
};
#endif /* _INC_ETIMER */