00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #ifndef PANICHANDLER_HPP
00022 #define PANICHANDLER_HPP
00023 
00024 #include <xercesc/util/XMemory.hpp>
00025 
00026 XERCES_CPP_NAMESPACE_BEGIN
00027 
00043 class  PanicHandler
00044 {
00045 public:
00046 
00049     enum PanicReasons
00050     {
00051           Panic_NoTransService
00052         , Panic_NoDefTranscoder
00053         , Panic_CantFindLib
00054         , Panic_UnknownMsgDomain
00055         , Panic_CantLoadMsgDomain
00056         , Panic_SynchronizationErr
00057         , Panic_SystemInit
00058         , Panic_AllStaticInitErr
00059         , Panic_MutexErr
00060         , PanicReasons_Count
00061     };
00063 
00064 protected:
00065 
00069     PanicHandler(){};
00070 
00071 public:
00072 
00074     virtual ~PanicHandler(){};   
00076 
00094     virtual void panic(const PanicHandler::PanicReasons reason) = 0;
00096 
00097     static const char* getPanicReasonString(const PanicHandler::PanicReasons reason);
00098     
00099 private:
00100 
00101     
00102     
00103     PanicHandler(const PanicHandler&);
00104     
00106     PanicHandler& operator=(const PanicHandler&);
00107 };
00108 
00109 XERCES_CPP_NAMESPACE_END
00110 
00111 #endif