home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 Mobile / Chip_Mobile_2001.iso / palm / business / printcar / printcar.exe / src / Util / Error.cc < prev    next >
C/C++ Source or Header  |  2000-06-05  |  2KB  |  72 lines

  1. //
  2. //  $Id: Error.cc,v 1.3 2000/06/04 23:23:51 sergey Exp $
  3. //
  4.  
  5. #include <Pilot.h>
  6. #include <System/FatalAlert.h>
  7. #include <stdarg.h>
  8. #include <stdio.h>
  9. #include "Error.h"
  10.  
  11.  
  12. namespace Util
  13. {
  14.     //-- DefaultErrorHandler class -----------------------------------------------------------
  15.  
  16.     //
  17.     // Default error handler.
  18.     // Uses ErrDisplayFileLineMsg to report errors.
  19.     //
  20.     class DefaultErrorHandler: public ErrorHandler
  21.     {
  22.     public:
  23.         virtual void reportError(bool fatal, const char* message)
  24.         {
  25.             if (SysFatalAlert((Char*)message) == fatalReset || fatal)
  26.                 SysReset();
  27.         }
  28.  
  29.         static DefaultErrorHandler defaultErrorHandler;
  30.     };
  31.  
  32.     DefaultErrorHandler DefaultErrorHandler::defaultErrorHandler;
  33.  
  34.  
  35.     //-- Error class -----------------------------------------------------------
  36.  
  37.  
  38.     ErrorHandler* Error::_errorHandler = &DefaultErrorHandler::defaultErrorHandler;
  39.  
  40.     // generic error messages
  41.  
  42.     void Error::errorMessage0(bool fatal, const char* message)
  43.     {
  44.         _errorHandler->reportError(fatal, message);
  45.     }
  46.  
  47.     void Error::errorMessage(bool fatal, const char* format, ...)
  48.     {
  49.         va_list args;
  50.         char buffer[256];
  51.  
  52.         va_start(args, format);
  53.         StrVPrintF(buffer, format, args);
  54.         va_end(args);
  55.  
  56.         _errorHandler->reportError(fatal, buffer);
  57.     }
  58.  
  59.     // standard system errors
  60.  
  61.     void Error::memoryAllocationError(const char* file, int line)
  62.     {
  63.         errorMessage(true, "%s,%d: Memory allocation error", file, line);
  64.     }
  65.  
  66.     void Error::findLibraryError(const char* libName)
  67.     {
  68.         errorMessage(false, "Can't find library: %s", libName);
  69.     }
  70. }
  71. // namespace Util
  72.