home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C ++ / Applications / FlyThrough 1.1.2 / src / Source / QD3D Error Handling / QD3D Debug Macros.h < prev    next >
Encoding:
Text File  |  1995-11-21  |  837 b   |  34 lines  |  [TEXT/CWIE]

  1. //
  2. //    QD3D Debug Macros.h
  3. //
  4.  
  5. #pragma once
  6.  
  7. #include <UException.h>
  8. #include <QD3DErrors.h>
  9.  
  10. enum {
  11.     err_Q3Error        = 'Q3er',
  12.     err_Q3Warning    = 'Q3wa',
  13.     err_Q3Notice    = 'Q3no',
  14.     err_Q3Failure    = 'Q3fa'    // TQ3Status result
  15. };
  16.  
  17. //#define ThrowIfQ3Error_()    ThrowIfOSErr_(Q3Error_Get(0))
  18. #define ThrowIfQ3Error_()    \
  19. do {    \
  20.     TQ3Error err = ::Q3Error_Get(0);    \
  21.     if (err==kQ3ErrorMacintoshError) ThrowIfOSErr_(::Q3MacintoshError_Get(0));    \
  22.     ThrowIfOSErr_(err);    \
  23. } while (false)
  24.  
  25. #define ThrowIfQ3Warning_() ThrowIfOSErr_(::Q3Warning_Get(0))
  26. #define ThrowIfQ3Notice_()    ThrowIfOSErr_(::Q3Notice_Get(0))
  27. #define ThrowIfQ3Any_()        \
  28.     do { ThrowIfQ3Error_(); ThrowIfQ3Warning_(); ThrowIfQ3Notice_(); } while (false)
  29.     
  30. #define    ThrowIfQ3Fail_(status)                                        \
  31.     do {                                                            \
  32.         if ((status)==kQ3Failure) Throw_(err_Q3Failure);            \
  33.     } while (false)
  34.