1 /* 2 * Copyright 2006 Sony Computer Entertainment Inc. 3 * 4 * Licensed under the MIT Open Source License, for details please see license.txt or the website 5 * http://www.opensource.org/licenses/mit-license.php 6 * 7 */ 8 9 #ifndef _DAE_ERROR_HANDLER_ 10 #define _DAE_ERROR_HANDLER_ 11 12 #include <memory> 13 #include <dae/daeTypes.h> 14 15 /** 16 * The @c daeErrorHandler class is a plugin that allows the use to overwrite how error and warning 17 * messages get handled in the client application. An example of this would be a class that reports 18 * the message to a gui front end instead of just printing on stdout. 19 */ 20 class DLLSPEC daeErrorHandler { 21 public: 22 /** 23 * Constructor. 24 */ 25 daeErrorHandler(); 26 /** 27 * Destructor. 28 */ 29 virtual ~daeErrorHandler(); 30 31 /** 32 * This function is called when there is an error and a string needs to be sent to the user. 33 * You must overwrite this function in your plugin. 34 * @param msg Error message. 35 */ 36 virtual void handleError( daeString msg ) = 0; 37 /** 38 * This function is called when there is a warning and a string needs to be sent to the user. 39 * You must overwrite this function in your plugin. 40 * @param msg Warning message. 41 */ 42 virtual void handleWarning( daeString msg ) = 0; 43 44 /** 45 * Sets the daeErrorHandler to the one specified. 46 * @param eh The new daeErrorHandler to use. Passing in NULL results in the default plugin being used. 47 */ 48 static void setErrorHandler( daeErrorHandler *eh ); 49 /** 50 * Returns the current daeErrorHandlerPlugin. A program has one globally-accessible 51 * daeErrorHandler active at a time. 52 * @return The current daeErrorHandler. 53 */ 54 static daeErrorHandler *get(); 55 56 private: 57 static daeErrorHandler *_instance; 58 static std::auto_ptr<daeErrorHandler> _defaultInstance; 59 }; 60 61 #endif 62