00001 // 00002 // Copyright (c) 2000 by Tech Soft 3D, LLC. 00003 // The information contained herein is confidential and proprietary to 00004 // Tech Soft 3D, LLC., and considered a trade secret as defined under 00005 // civil and criminal statutes. Tech Soft 3D shall pursue its civil 00006 // and criminal remedies in the event of unauthorized use or misappropriation 00007 // of its trade secrets. Use of this information by anyone other than 00008 // authorized employees of Tech Soft 3D, LLC. is granted only under a 00009 // written non-disclosure agreement, expressly prescribing the scope and 00010 // manner of such use. 00011 // 00012 // $Id: 8144cc8dbf5b7e7874e82204a0141cc09ad9bdd7 $ 00013 // 00014 00015 #ifndef _HIM_ERROR_HANDLER_H 00016 #define _HIM_ERROR_HANDLER_H 00017 00018 #ifdef H_PACK_8 00019 #pragma pack(push) 00020 #pragma pack(8) 00021 #endif 00022 00023 #include "HTools.h" 00024 00025 /* forward declaration. 00026 * private helper class */ 00027 class HErrorDescriptorNode; 00028 00029 00031 00049 class MVO_API HImErrorHandler 00050 { 00051 private: 00052 static bool IsBlocked( int category, int specific, int severity ); 00053 static bool IsPassed( int category, int specific, int severity ); 00054 00055 static HErrorDescriptorNode *m_Block; 00056 static HErrorDescriptorNode *m_Pass; 00057 static bool m_BlockByDefault; 00058 00059 public: 00063 HImErrorHandler( bool BlockByDefault = false ); 00064 ~HImErrorHandler(); 00067 static void RegisterCallbacks(); 00068 00075 static void Block( int cat, int spec, int sev ); 00076 00082 static void Pass( int cat, int spec, int sev ); 00083 00087 void SetBlockByDefault( bool bbd ) { m_BlockByDefault = bbd; } 00088 00090 static bool BlockByDefault() { return m_BlockByDefault; } 00091 00095 static void CallbackEntryPoint( 00096 int category, int specific, int severity, 00097 int msgc, char **msgv, int stackc, char **stackv 00098 ); 00099 }; 00100 00101 00102 00103 #ifdef H_PACK_8 00104 #pragma pack(pop) 00105 #endif 00106 00107 #endif 00108 00109 00110