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.
83 lines
1.8 KiB
83 lines
1.8 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1993.
|
|
//
|
|
// File: procssr.hxx
|
|
//
|
|
// Contents:
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions: None.
|
|
//
|
|
// History: 25-Oct-95 MarkBl Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#ifndef __PRCSSR_HXX__
|
|
#define __PRCSSR_HXX__
|
|
|
|
// A success return from SubmitJobs() that is different from S_OK and S_FALSE
|
|
#define S_SCHED_JOBS_ACCEPTED ((HRESULT)0x00000002L)
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Class: CJobProcessor
|
|
//
|
|
// Synopsis:
|
|
//
|
|
// History: 25-Oct-95 MarkBl Created
|
|
//
|
|
// Notes: None.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
class CJobProcessor : public CDLink,
|
|
public CTask
|
|
{
|
|
public:
|
|
|
|
CJobProcessor(void) : _rgHandles(NULL) {
|
|
TRACE3(CJobProcessor, CJobProcessor);
|
|
InitializeCriticalSection(&_csProcessorCritSection);
|
|
}
|
|
|
|
~CJobProcessor();
|
|
|
|
HRESULT Initialize(void);
|
|
|
|
BOOL IsIdle(void);
|
|
|
|
CJobProcessor * Next(void);
|
|
|
|
CJobProcessor * Prev(void);
|
|
|
|
void PerformTask(void);
|
|
|
|
void KillJob(LPTSTR ptszJobName);
|
|
|
|
void KillIfFlagSet(DWORD dwFlag);
|
|
|
|
HRESULT SubmitJobs(CRunList * pRunList);
|
|
|
|
void Shutdown(void);
|
|
|
|
private:
|
|
|
|
void _EmptyJobQueue(CJobQueue & JobQueue, DWORD dwMsgId = 0);
|
|
|
|
void _ProcessRequests(void);
|
|
|
|
void _Shutdown(void);
|
|
|
|
CRITICAL_SECTION _csProcessorCritSection;
|
|
|
|
CJobQueue _RequestQueue;
|
|
|
|
CJobQueue _ProcessingQueue;
|
|
|
|
HANDLE * _rgHandles;
|
|
};
|
|
|
|
#endif // __PRCSSR_HXX__
|