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]