Leaked source code of windows server 2003
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.

77 lines
2.0 KiB

  1. ///////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright(C) 1999 Microsoft Corporation all rights reserved.
  4. //
  5. // Module: workerthread.h
  6. //
  7. // Project: Chameleon
  8. //
  9. // Description: Generic Worker Thread Class
  10. //
  11. // Log:
  12. //
  13. // When Who What
  14. // ---- --- ----
  15. // 02/08/1999 TLP Initial Version
  16. //
  17. ///////////////////////////////////////////////////////////////////////////////
  18. #ifndef __INC_WORKER_THREAD_H_
  19. #define __INC_WORKER_THREAD_H_
  20. #include "callback.h"
  21. typedef struct _THREADINFO
  22. {
  23. bool bExit;
  24. bool bSuspended;
  25. HANDLE hWait;
  26. HANDLE hExit;
  27. HANDLE hThread;
  28. unsigned dwThreadId;
  29. DWORD dwWaitInterval;
  30. Callback* pfnCallback;
  31. } THREADINFO, *PTHREADINFO;
  32. ///////////////////////////////////////////////////////////////////////////////
  33. class CTheWorkerThread
  34. {
  35. public:
  36. CTheWorkerThread();
  37. ~CTheWorkerThread();
  38. //////////////////////////////////////////////////////////////////////////
  39. bool Start(
  40. /*[in]*/ DWORD dwWaitInterval,
  41. /*[in]*/ Callback* pfnCallback
  42. );
  43. //////////////////////////////////////////////////////////////////////////
  44. bool End(
  45. /*[in]*/ DWORD dwMaxWait,
  46. /*[in]*/ bool bTerminateAfterWait
  47. );
  48. //////////////////////////////////////////////////////////////////////////
  49. void Suspend(void);
  50. //////////////////////////////////////////////////////////////////////////
  51. void Resume(void);
  52. //////////////////////////////////////////////////////////////////////////
  53. HANDLE GetHandle(void);
  54. private:
  55. //////////////////////////////////////////////////////////////////////////
  56. static unsigned _stdcall ThreadFunc(LPVOID pThreadInfo);
  57. //////////////////////////////////////////////////////////////////////////
  58. THREADINFO m_ThreadInfo;
  59. };
  60. #endif // __INC_WORKER_THREAD_H_