home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / OpenDoc Parts Framework / OPF / Found / FWDebug / Sources / FWPriDeb.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-21  |  5.4 KB  |  190 lines  |  [TEXT/MPS ]

  1. #ifdef FW_DEBUG
  2. // This file is only used for debugging
  3. //========================================================================================
  4. //
  5. //    File:                FWPriDeb.cpp
  6. //    Release Version:    $ 1.0d1 $
  7. //
  8. //    Creation Date:        3/28/94
  9. //
  10. //    Copyright:    © 1994 by Apple Computer, Inc., all rights reserved.
  11. //
  12. //========================================================================================
  13.  
  14. #ifndef FWPRIDEB_H
  15. #include "FWPriDeb.h"
  16. #endif
  17.  
  18. #if defined(FW_BUILD_MAC) && !defined(__TYPES__)
  19. #include <Types.h>
  20. #endif
  21.  
  22. #if defined(THINK_CPLUS) && !defined(__PASCAL__)
  23. #include <Pascal.h>
  24. #endif
  25.  
  26. #if defined(FW_BUILD_WIN) && !defined(_INC_WINDOWS)
  27. #include <Windows.h>
  28. #endif
  29.  
  30. #ifndef FWTRACET_H
  31. #include "FWTraceT.h"
  32. #endif
  33.  
  34. //----------------------------------------------------------------------------------------
  35. // FW_CDebugConsole::FW_CDebugConsole
  36. //----------------------------------------------------------------------------------------
  37.  
  38. FW_CDebugConsole::FW_CDebugConsole()
  39.     : fBufferStream(fBuffer, kBufferSize)
  40. {
  41.     fFatalErrorStream = &fBufferStream;
  42.     fWarningStream = &fNullStream;
  43.     fNotificationStream = &fNullStream;
  44. }
  45.  
  46. //----------------------------------------------------------------------------------------
  47. // FW_CDebugConsole::~FW_CDebugConsole
  48. //----------------------------------------------------------------------------------------
  49.  
  50. FW_CDebugConsole::~FW_CDebugConsole()
  51. {
  52. }
  53.  
  54. //----------------------------------------------------------------------------------------
  55. // FW_CDebugConsole::GetConsole
  56. //----------------------------------------------------------------------------------------
  57.  
  58. FW_CDebugConsole* FW_CDebugConsole::GetConsole()
  59. {
  60.     return FW_CPrivTraceTaskGlobals::GetTraceGlobals().gDebugConsole;
  61. }
  62.  
  63. //----------------------------------------------------------------------------------------
  64. // FW_CDebugConsole::SetConsole
  65. //----------------------------------------------------------------------------------------
  66.  
  67. FW_CDebugConsole* FW_CDebugConsole::SetConsole(FW_CDebugConsole* console)
  68. {
  69.     FW_CDebugConsole*& theConsole = FW_CPrivTraceTaskGlobals::GetTraceGlobals().gDebugConsole;
  70.     FW_CDebugConsole* prior = theConsole;
  71.     theConsole = console;
  72.     return prior;
  73. }
  74.  
  75. //----------------------------------------------------------------------------------------
  76. // FW_CDebugConsole::DoLogMessage
  77. //----------------------------------------------------------------------------------------
  78.  
  79. void FW_CDebugConsole::DoLogMessage(const char* message)
  80. {
  81.     PrivDebugMessage(message);
  82. }
  83.  
  84. //----------------------------------------------------------------------------------------
  85. // FW_CDebugConsole::DoDebugMessage
  86. //----------------------------------------------------------------------------------------
  87.  
  88. void FW_CDebugConsole::DoDebugMessage(const char* message)
  89. {
  90.     PrivDebugMessage(message);
  91. }
  92.  
  93. //----------------------------------------------------------------------------------------
  94. // FW_CDebugConsole::DoDebugger
  95. //----------------------------------------------------------------------------------------
  96.  
  97. void FW_CDebugConsole::DoDebugger()
  98. {
  99.     PrivDebugger();
  100. }
  101.  
  102. //----------------------------------------------------------------------------------------
  103. // FW_CDebugConsole::LogMessage
  104. //----------------------------------------------------------------------------------------
  105.  
  106. void FW_CDebugConsole::LogMessage(const char* message)
  107. {
  108.     FW_CDebugConsole *console = GetConsole();
  109.     if (console)
  110.         console->DoLogMessage(message);
  111.     else
  112.         PrivDebugMessage(message);
  113. }
  114.  
  115. //----------------------------------------------------------------------------------------
  116. // FW_CDebugConsole::DebugMessage
  117. //----------------------------------------------------------------------------------------
  118.  
  119. void FW_CDebugConsole::DebugMessage(const char* message)
  120. {
  121.     FW_CDebugConsole *console = GetConsole();
  122.     if (console)
  123.         console->DoDebugMessage(message);
  124.     else
  125.         PrivDebugMessage(message);
  126. }
  127.  
  128. //----------------------------------------------------------------------------------------
  129. // FW_CDebugConsole::Debugger
  130. //----------------------------------------------------------------------------------------
  131.  
  132. void FW_CDebugConsole::Debugger()
  133. {
  134.     FW_CDebugConsole *console = GetConsole();
  135.     if (console)
  136.         console->DoDebugger();
  137.     else
  138.         PrivDebugger();
  139. }
  140.  
  141. //----------------------------------------------------------------------------------------
  142. // FW_CDebugConsole::PrivDebugger
  143. //----------------------------------------------------------------------------------------
  144. void FW_CDebugConsole::PrivDebugger()
  145. {
  146. #if defined(FW_BUILD_WIN)
  147. #ifndef FW_BUILD_DOS
  148.     ::DebugBreak();
  149. #endif
  150.  
  151. #elif defined(FW_BUILD_MAC)
  152.     ::Debugger();
  153. #endif
  154. }
  155.  
  156. #ifdef THINK_CPLUS
  157. //----------------------------------------------------------------------------------------
  158. // debugstr
  159. //----------------------------------------------------------------------------------------
  160. void debugstr(const char *message)
  161. {
  162.     CtoPstr((char*) message);
  163.     DebugStr((const unsigned char*) message);
  164.     PtoCstr((unsigned char*) message);
  165. }
  166. #endif
  167.  
  168. //----------------------------------------------------------------------------------------
  169. // FW_CDebugConsole::PrivDebugMessage
  170. //----------------------------------------------------------------------------------------
  171. void FW_CDebugConsole::PrivDebugMessage(const char *message)
  172. {
  173. #if defined(FW_BUILD_WIN)
  174. #ifndef FW_BUILD_DOS
  175.     ::OutputDebugString(message);
  176.     ::OutputDebugString("\n\r");
  177.     ::DebugBreak();
  178. #endif
  179.  
  180. #elif defined(THINK_CPLUS)
  181.     ::debugstr(message);
  182. #elif defined(FW_BUILD_MAC)
  183.     ::debugstr((char*)message);
  184. #endif
  185. }
  186.  
  187.  
  188. #endif
  189.  
  190.