BaseThread.h
上传用户:cnxinhai
上传日期:2013-08-06
资源大小:265k
文件大小:2k
源码类别:

DVD

开发平台:

Visual C++

  1. /*********************************************************************************
  2. * Copyright (C) 2000,2001 by Sean C. Hubbell.   All Rights Reserved.            *
  3. *********************************************************************************
  4. * This library is free software; you can redistribute it and/or                 *
  5. * modify it under the terms of the GNU Lesser General Public                    *
  6. * License as published by the Free Software Foundation; either                  *
  7. * version 2.1 of the License, or (at your option) any later version.            *
  8. *                                                                               *
  9. * This library is distributed in the hope that it will be useful,               *
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of                *
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU             *
  12. * Lesser General Public License for more details.                               *
  13. *                                                                               *
  14. * You should have received a copy of the GNU Lesser General Public              *
  15. * License along with this code; if not, write to the Free Software              *
  16. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.    *
  17. *********************************************************************************/
  18. #ifndef C_BASE_THREAD_H
  19. #define C_BASE_THREAD_H
  20. class CBaseThread
  21. {
  22.     protected:
  23.         int  m_status;
  24.     public:
  25. enum EBaseThreadStatus
  26. {
  27.             NOT_INITIALIZED,
  28.             INITIALIZED,
  29.             THREAD_ERROR,
  30.             STARTED,
  31.             STOPPED,
  32. COMPLETED,
  33. TERMINATED,
  34.     LAST_ID
  35. };
  36.     public:
  37. bool isInvalid (void);
  38. bool isInitialized (void);
  39. bool hasStarted (void);
  40. bool isCompleted (void);
  41. bool isTerminated (void);
  42. bool isError (void);
  43.     protected:
  44. static void theThreadFuncRedirector (void* pParam);
  45.     public:
  46.     
  47. CBaseThread (void);
  48. virtual ~CBaseThread (void);
  49.     public:
  50.     
  51. virtual void start (void);
  52. virtual void stop (void);
  53.     public:
  54.         // Redefine to implement thread Function
  55. virtual void initialize (void);
  56.         virtual void theThreadFunc (void) = 0;
  57. };
  58. #endif // C_BASE_THREAD_H