00001 // Copyright (c) 1998-2014 by Tech Soft 3D, Inc. 00002 // 00003 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., 00004 // and considered a trade secret as defined under civil and criminal statutes. 00005 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of 00006 // unauthorized use or misappropriation of its trade secrets. Use of this information 00007 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under 00008 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use. 00009 00010 #ifndef _HIM_ERROR_HANDLER_H 00011 #define _HIM_ERROR_HANDLER_H 00012 00013 #ifdef H_PACK_8 00014 #pragma pack(push) 00015 #pragma pack(8) 00016 #endif 00017 00018 #include "HTools.h" 00019 00020 /* forward declaration. 00021 * private helper class */ 00022 class HErrorDescriptorNode; 00023 00024 00026 00044 class MVO_API HImErrorHandler 00045 { 00046 private: 00047 static bool IsBlocked( int category, int specific, int severity ); 00048 static bool IsPassed( int category, int specific, int severity ); 00049 00050 static HErrorDescriptorNode *m_Block; 00051 static HErrorDescriptorNode *m_Pass; 00052 static bool m_BlockByDefault; 00053 00054 public: 00058 HImErrorHandler( bool BlockByDefault = false ); 00059 ~HImErrorHandler(); 00062 static void RegisterCallbacks(); 00063 00070 static void Block( int cat, int spec, int sev ); 00071 00077 static void Pass( int cat, int spec, int sev ); 00078 00082 void SetBlockByDefault( bool bbd ) { m_BlockByDefault = bbd; } 00083 00085 static bool BlockByDefault() { return m_BlockByDefault; } 00086 00090 static void CallbackEntryPoint( 00091 int category, int specific, int severity, 00092 int msgc, char **msgv, int stackc, char **stackv 00093 ); 00094 }; 00095 00096 00097 00098 #ifdef H_PACK_8 00099 #pragma pack(pop) 00100 #endif 00101 00102 #endif 00103 00104 00105