IOCPThreadPoolQueue.h
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:2k
源码类别:

CA认证

开发平台:

Visual C++

  1. /*
  2. Module : IOCPThreadPoolQueue.h
  3. Purpose: Interface for an MFC class which implements a queue class for CThreadPoolServer using an SDK IO Completion port
  4. Created: PJN / 18-08-2002
  5. Copyright (c) 2002 - 2005 by PJ Naughter.  (Web: www.naughter.com, Email: pjna@naughter.com)
  6. All rights reserved.
  7. Copyright / Usage Details:
  8. You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) 
  9. when your product is released in binary form. You are allowed to modify the source code in any way you want 
  10. except you cannot modify the copyright details at the top of each module. If you want to distribute source 
  11. code with your application, then you are only allowed to distribute versions released by the author. This is 
  12. to maintain a single distribution point for the source code. 
  13. */
  14. ///////////////////// Defines /////////////////////////////////////////////////
  15. #ifndef __IOCPTHREADPOOLQUEUE_H__
  16. #define __IOCPTHREADPOOLQUEUE_H__
  17. #ifndef THRDPOOL_EXT_CLASS
  18. #define THRDPOOL_EXT_CLASS
  19. #endif
  20. ///////////////////// Includes ////////////////////////////////////////////////
  21. #include "ThrdPool.h"
  22. ///////////////////// Classes /////////////////////////////////////////////////
  23. //Class which implements a queue for CThreadPoolServer using an IO Completion Port
  24. class THRDPOOL_EXT_CLASS CIOCPThreadPoolQueue : public CThreadPoolQueue
  25. {
  26. public:
  27. //Constructors / Destructors
  28.   CIOCPThreadPoolQueue();
  29.   virtual ~CIOCPThreadPoolQueue(); 
  30. //Methods
  31.   virtual BOOL Create(DWORD dwMaxQSize);
  32.   virtual BOOL Close();
  33.   virtual BOOL PostRequest(const CThreadPoolRequest& request, DWORD dwMilliseconds);
  34.   virtual BOOL PostRequestWithoutLimitCheck(const CThreadPoolRequest& request) { return PostRequest(request, 0); };
  35.   virtual BOOL GetRequest(CThreadPoolRequest& request, int nThreadIndexForDirectedRequest, DWORD dwMilliseconds = INFINITE);
  36.   virtual BOOL IsCreated() const;
  37.   virtual BOOL SupportsDirectedRequests() const { return FALSE; };
  38. protected:
  39.   DECLARE_DYNCREATE(CIOCPThreadPoolQueue)
  40. //Member variables
  41.   HANDLE m_hIOCP;   //Handle to the SDK IOCP
  42. };
  43. #endif //__IOCPTHREADPOOLQUEUE_H__