peiyongz 2003/03/09 08:57:18 Modified: c/src/xercesc/util/Platforms/OpenServer OpenServerPlatformUtils.cpp Log: PanicHandler Revision Changes Path 1.5 +14 -28 xml-xerces/c/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp Index: OpenServerPlatformUtils.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- OpenServerPlatformUtils.cpp 19 Nov 2002 13:04:32 -0000 1.4 +++ OpenServerPlatformUtils.cpp 9 Mar 2003 16:57:18 -0000 1.5 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/03/09 16:57:18 peiyongz + * PanicHandler + * * Revision 1.4 2002/11/19 13:04:32 gareth * Bug# 14661 Caldera implemented openFileToWrite and writeBufferToFile. Patch from Cameron Dorrat. * @@ -95,6 +98,7 @@ #include <xercesc/util/XMLString.hpp> #include <xercesc/util/XMLUniDefs.hpp> #include <xercesc/util/XMLUni.hpp> +#include <xercesc/util/PanicHandler.hpp> #if defined (XML_USE_ICU_TRANSCODER) # include <xercesc/util/Transcoders/ICU/ICUTransService.hpp> @@ -146,7 +150,7 @@ } catch(...) { - panic(XMLPlatformUtils::Panic_CantLoadMsgDomain); + panic(PanicHandler::Panic_CantLoadMsgDomain); } return retVal; } @@ -182,27 +186,9 @@ // --------------------------------------------------------------------------- // XMLPlatformUtils: The panic method // --------------------------------------------------------------------------- -void XMLPlatformUtils::panic(const PanicReasons reason) +void XMLPlatformUtils::panic(const PanicHandler::PanicReasons reason) { - const char* reasonStr = "Unknown reason"; - if (reason == Panic_NoTransService) - reasonStr = "Could not load a transcoding service"; - else if (reason == Panic_NoDefTranscoder) - reasonStr = "Could not load a local code page transcoder"; - else if (reason == Panic_CantFindLib) - reasonStr = "Could not find the xerces-c DLL"; - else if (reason == Panic_UnknownMsgDomain) - reasonStr = "Unknown message domain"; - else if (reason == Panic_CantLoadMsgDomain) - reasonStr = "Cannot load message domain"; - else if (reason == Panic_SynchronizationErr) - reasonStr = "Cannot synchronize system or mutex"; - else if (reason == Panic_SystemInit) - reasonStr = "Cannot initialize the system or mutex"; - - fprintf(stderr, "%s\n", reasonStr); - - exit(-1); + fgUserPanicHandler? fgUserPanicHandler->panic(reason) : fgDefaultPanicHandler->panic(reason); } // --------------------------------------------------------------------------- @@ -532,7 +518,7 @@ { delete gAtomicOpMutex; gAtomicOpMutex = 0; - panic(XMLPlatformUtils::Panic_SystemInit); + panic(PanicHandler::Panic_SystemInit); } } @@ -628,14 +614,14 @@ const void* const toCompare) { if (pthread_mutex_lock(gAtomicOpMutex)) - panic(XMLPlatformUtils::Panic_SynchronizationErr); + panic(PanicHandler::Panic_SynchronizationErr); void *retVal = *toFill; if (*toFill == toCompare) *toFill = (void *)newValue; if (pthread_mutex_unlock(gAtomicOpMutex)) - panic(XMLPlatformUtils::Panic_SynchronizationErr); + panic(PanicHandler::Panic_SynchronizationErr); return retVal; } @@ -643,12 +629,12 @@ int XMLPlatformUtils::atomicIncrement(int &location) { if (pthread_mutex_lock(gAtomicOpMutex)) - panic(XMLPlatformUtils::Panic_SynchronizationErr); + panic(PanicHandler::Panic_SynchronizationErr); int tmp = ++location; if (pthread_mutex_unlock(gAtomicOpMutex)) - panic(XMLPlatformUtils::Panic_SynchronizationErr); + panic(PanicHandler::Panic_SynchronizationErr); return tmp; } @@ -656,12 +642,12 @@ int XMLPlatformUtils::atomicDecrement(int &location) { if (pthread_mutex_lock(gAtomicOpMutex)) - panic(XMLPlatformUtils::Panic_SynchronizationErr); + panic(PanicHandler::Panic_SynchronizationErr); int tmp = --location; if (pthread_mutex_unlock( gAtomicOpMutex)) - panic(XMLPlatformUtils::Panic_SynchronizationErr); + panic(PanicHandler::Panic_SynchronizationErr); return tmp; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]