mirror of https://github.com/tongzx/nt5src
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.
69 lines
1.7 KiB
69 lines
1.7 KiB
//=============================================================================
|
|
//
|
|
// Copyright (c) 1996-1999, Microsoft Corporation, All rights reserved
|
|
//
|
|
// EQUEUE.H
|
|
//
|
|
// This file defines the classes for a queue of events which have matched
|
|
// some of the filters and will have to be dispatched.
|
|
//
|
|
// Classes defined:
|
|
//
|
|
// CEventQueue
|
|
//
|
|
// History:
|
|
//
|
|
// 11/27/96 a-levn Compiles.
|
|
//
|
|
//=============================================================================
|
|
|
|
#ifndef __EVENT_QUEUE__H_
|
|
#define __EVENT_QUEUE__H_
|
|
|
|
#include "binding.h"
|
|
#include <wbemcomn.h>
|
|
#include <execq.h>
|
|
|
|
class CEss;
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// class CEventQueue
|
|
//
|
|
// This class stores a queue of events that need to be dispatched to
|
|
// consumers. It also handles the actual dispatcher functionality: when an
|
|
// instance of this class is created (and there expected to be only one), a
|
|
// new thread is created which will wake up when new requests are added to the
|
|
// queue and process them.
|
|
//
|
|
//*****************************************************************************
|
|
|
|
class CEventQueue : public CExecQueue
|
|
{
|
|
protected:
|
|
class CDeliverRequest : public CExecRequest
|
|
{
|
|
private:
|
|
CQueueingEventSink* m_pConsumer;
|
|
public:
|
|
CDeliverRequest(CQueueingEventSink* pConsumer);
|
|
~CDeliverRequest();
|
|
HRESULT Execute();
|
|
};
|
|
|
|
CEss* m_pEss;
|
|
|
|
protected:
|
|
virtual void ThreadMain(CThreadRecord* pRecord);
|
|
void InitializeThread();
|
|
void UninitializeThread();
|
|
|
|
public:
|
|
CEventQueue(STORE CEss* pEss);
|
|
|
|
HRESULT EnqueueDeliver(CQueueingEventSink* pConsumer);
|
|
void DumpStatistics(FILE* f, long lFlags);
|
|
};
|
|
|
|
#endif
|
|
|