home *** CD-ROM | disk | FTP | other *** search
- //
- // $Id: Error.cc,v 1.3 2000/06/04 23:23:51 sergey Exp $
- //
-
- #include <Pilot.h>
- #include <System/FatalAlert.h>
- #include <stdarg.h>
- #include <stdio.h>
- #include "Error.h"
-
-
- namespace Util
- {
- //-- DefaultErrorHandler class -----------------------------------------------------------
-
- //
- // Default error handler.
- // Uses ErrDisplayFileLineMsg to report errors.
- //
- class DefaultErrorHandler: public ErrorHandler
- {
- public:
- virtual void reportError(bool fatal, const char* message)
- {
- if (SysFatalAlert((Char*)message) == fatalReset || fatal)
- SysReset();
- }
-
- static DefaultErrorHandler defaultErrorHandler;
- };
-
- DefaultErrorHandler DefaultErrorHandler::defaultErrorHandler;
-
-
- //-- Error class -----------------------------------------------------------
-
-
- ErrorHandler* Error::_errorHandler = &DefaultErrorHandler::defaultErrorHandler;
-
- // generic error messages
-
- void Error::errorMessage0(bool fatal, const char* message)
- {
- _errorHandler->reportError(fatal, message);
- }
-
- void Error::errorMessage(bool fatal, const char* format, ...)
- {
- va_list args;
- char buffer[256];
-
- va_start(args, format);
- StrVPrintF(buffer, format, args);
- va_end(args);
-
- _errorHandler->reportError(fatal, buffer);
- }
-
- // standard system errors
-
- void Error::memoryAllocationError(const char* file, int line)
- {
- errorMessage(true, "%s,%d: Memory allocation error", file, line);
- }
-
- void Error::findLibraryError(const char* libName)
- {
- errorMessage(false, "Can't find library: %s", libName);
- }
- }
- // namespace Util
-