home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / Software / TemaCD / tcvpa / data1.cab / MyFileGroup / INCLUDE / ProcCtrl.hpp < prev    next >
C/C++ Source or Header  |  1999-06-03  |  4KB  |  118 lines

  1. #ifndef _INC_PROCCTRL_HPP
  2. #define _INC_PROCCTRL_HPP
  3. class TC_CPsCurrentThread;
  4. class TC_CPsException;
  5. #define TC_PS_EXCEPTION_ID    "TC_CPsException"
  6. #define TC_PS_ASSERT    assert
  7. #define TC_PS_CURR_THREAD    TC_CPsCurrentThread::GetCurrent()
  8. #define TC_PS_SET_THR_EX    TC_PS_CURR_THREAD->SetPsException
  9. #define TC_PS_CLEAR_THR_EX     TC_PS_CURR_THREAD->ClearException
  10. #define TC_PS_TRACE_OBJ            0x00000001
  11. #define TC_PS_TRACE_DRV            0x00000002
  12. #define TC_PS_TRACE_GRAPH        0x00000004
  13. #define TC_PS_TRACE_QUERY        0x00000008
  14. #define TC_PS_TRACE_THREAD        0x00000010
  15. #define TC_PS_TRACE_TX            0x00000020
  16.  extern  long tcPsTraceFlags ;
  17. TC_PS_EXPORT void tcPsEnableException (BOOL set)  ;
  18. TC_PS_EXPORT BOOL tcPsIsExceptionEnabled ()  ;
  19.  
  20. // **********************************************************************
  21. class TC_CPsProcControl 
  22. {
  23. public: static void OnProcBegin ()  ;
  24. public: static void OnProcEnd ()  ;
  25. public: static void OnThreadBegin ()  ;
  26. public: static void OnThreadEnd ()  ;
  27.  
  28. }; // end of class TC_CPsProcControl
  29.  
  30. // **********************************************************************
  31.  
  32. // **********************************************************************
  33. class TC_PS_EXPORT TC_CPsCurrentThread 
  34. {
  35. friend class TC_CPsProcControl;
  36. friend class TC_CPsWorkContext;
  37. friend TC_PS_EXPORT void tcPsTrace (const char*, ...);
  38. private:  static  TC_TKeyList <TC_CPsCurrentThread> m_Chain ;
  39. private:  static  TC_CLock m_Lock ;
  40. private:  TC_TKeyNode <TC_CPsCurrentThread> m_Node ;
  41. private:  void * m_ThreadData ;
  42. public:  BOOL m_IsExEnabled ;
  43. public:  TC_CExHolder m_ExHolder ;
  44. private:   TC_CPsCurrentThread ()  ;
  45. private:   ~TC_CPsCurrentThread ()  ;
  46. private: static void Register (BOOL is_main=FALSE)  ;
  47. private: static void UnRegister (BOOL is_main=FALSE)  ;
  48. public: static TC_CPsCurrentThread * GetCurrent ()  ;
  49. public: static TC_CPsCurrentThread * _GetCurrent ()  ;
  50. public:  void SetException (TC_CException * ex)  ;
  51. public:  void SetPsException (TCPsRetCode error, long drv_error = 0, const char * drv_msg = 0)  ;
  52. public:  void GetPsException (TC_CPsException & ex)  ;
  53. public:  void ClearException ()  ;
  54. public:  void * GetThreadData ()  ;
  55. public: static void Trace ()  ;
  56.  
  57. }; // end of class TC_CPsCurrentThread
  58.  
  59. // **********************************************************************
  60.  
  61. // **********************************************************************
  62. class TC_PS_EXPORT TC_CPsException 
  63.     : public TC_CException
  64. {
  65. public:  TCPsRetCode m_Error ;
  66. public:  long m_DrvError ;
  67. public:  TC_CString m_DrvMsg ;
  68. public:   TC_CPsException (TC_CPsException &ex)  ;
  69. public:   TC_CPsException (TCPsRetCode error, long drv_error = 0, const char * drv_msg = 0)  ;
  70. public: virtual  ~TC_CPsException ()  ;
  71. public:  TC_CPsException& operator = (TC_CPsException &ex)  ;
  72.  
  73. }; // end of class TC_CPsException
  74.  
  75. // **********************************************************************
  76.  
  77. // **********************************************************************
  78. class TC_CPsTmpExDisable 
  79. {
  80. public:  BOOL m_IsEnabled ;
  81. public:   TC_CPsTmpExDisable ()  ;
  82. public:   ~TC_CPsTmpExDisable ()  ;
  83. public:  void Regain ()  ;
  84.  
  85. }; // end of class TC_CPsTmpExDisable
  86.  
  87. // **********************************************************************
  88.  
  89. // **********************************************************************
  90. class TC_CFile 
  91. {
  92. private:  FILE * m_File ;
  93. public:   TC_CFile ()  ;
  94. public:   ~TC_CFile ()  ;
  95. public:  BOOL Open ( const char * fname, const char * mode)  ;
  96. public:  BOOL IsOpen ()  ;
  97. public:  void Close ()  ;
  98. public:  BOOL WStr (const char * str)  ;
  99.  
  100. }; // end of class TC_CFile
  101.  
  102. // **********************************************************************
  103. #define TC_PS_TRACEOUT_FILE        0
  104. #define TC_PS_TRACEOUT_SCREEN    1
  105. TC_PS_EXPORT void tcPsTrace (const char * fmt, ... )  ;
  106. TC_PS_EXPORT void tcPsSetTrace (long set, int output = 0)  ;
  107. TC_PS_EXPORT long tcPsGetTrace ()  ;
  108. TC_PS_EXPORT TCPsRetCode tcPsThrow (TC_CPsException& ex)  ;
  109. #ifdef TC_PS_THROW
  110.     #undef TC_PS_THROW
  111. #endif
  112.  
  113. #define TC_PS_THROW(ps_retcode)             { return tcPsThrow(TC_CPsException( (ps_retcode),0,0) ); }
  114. #define TC_PS_THROW_NULL(ps_retcode,type)     { return (type*)tcPsThrow(TC_CPsException((ps_retcode),0,0)); }
  115. #define TC_PS_THROW_FALSE(ps_retcode)         { tcPsThrow(TC_CPsException((ps_retcode),0,0)); return FALSE; }
  116.  
  117. #endif // _INC_PROCCTRL_HPP
  118.