You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by pe...@apache.org on 2003/03/09 18:06:17 UTC
cvs commit: xml-xerces/c/src/xercesc/util DefaultPanicHandler.cpp DefaultPanicHandler.hpp PanicHandler.cpp PanicHandler.hpp
peiyongz 2003/03/09 09:06:17
Added: c/src/xercesc/util DefaultPanicHandler.cpp
DefaultPanicHandler.hpp PanicHandler.cpp
PanicHandler.hpp
Log:
PanicHandler
Revision Changes Path
1.1 xml-xerces/c/src/xercesc/util/DefaultPanicHandler.cpp
Index: DefaultPanicHandler.cpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Id: DefaultPanicHandler.cpp,v 1.1 2003/03/09 17:06:16 peiyongz Exp $
* $Log: DefaultPanicHandler.cpp,v $
* Revision 1.1 2003/03/09 17:06:16 peiyongz
* PanicHandler
*
*
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/DefaultPanicHandler.hpp>
#include <stdio.h>
#include <stdlib.h>
XERCES_CPP_NAMESPACE_BEGIN
void DefaultPanicHandler::panic(const PanicHandler::PanicReasons reason)
{
fprintf(stderr, "%s\n", PanicHandler::getPanicReasonString(reason));
exit(-1);
}
XERCES_CPP_NAMESPACE_END
1.1 xml-xerces/c/src/xercesc/util/DefaultPanicHandler.hpp
Index: DefaultPanicHandler.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: DefaultPanicHandler.hpp,v $
* Revision 1.1 2003/03/09 17:06:16 peiyongz
* PanicHandler
*
* $Id: DefaultPanicHandler.hpp,v 1.1 2003/03/09 17:06:16 peiyongz Exp $
*
*/
#ifndef DEFAULT_PANICHANDLER_HPP
#define DEFAULT_PANICHANDLER_HPP
#include <xercesc/util/PanicHandler.hpp>
#include <xercesc/util/PlatformUtils.hpp>
XERCES_CPP_NAMESPACE_BEGIN
/**
* Receive notification of panic.
*
* <p>This is Xerces' default implementation of the PanicHanlder
* interface, which will be instantiated and used in the
* absence of an application's panic handler.
* </p>
*/
class XMLUTIL_EXPORT DefaultPanicHandler : public PanicHandler
{
public:
/** @name hidden Constructors */
//@{
/** Default constructor */
DefaultPanicHandler(){};
/** Destructor */
virtual ~DefaultPanicHandler(){};
//@}
/** @name Implement virtual panic handler interface */
//@{
/**
* Receive notification of panic
*
* <p>Upon invocation, a corresponding error message will be output
* to the stderr, and program exit.
* </p>
*
* @param reason The reason of panic
*
*/
virtual void panic(const PanicHandler::PanicReasons reason);
//@}
private:
/* Unimplemented Constructors and operators */
/* Copy constructor */
DefaultPanicHandler(const PanicHandler&);
/** Assignment operator */
void operator=(const DefaultPanicHandler&);
};
XERCES_CPP_NAMESPACE_END
#endif
1.1 xml-xerces/c/src/xercesc/util/PanicHandler.cpp
Index: PanicHandler.cpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Id: PanicHandler.cpp,v 1.1 2003/03/09 17:06:16 peiyongz Exp $
* $Log: PanicHandler.cpp,v $
* Revision 1.1 2003/03/09 17:06:16 peiyongz
* PanicHandler
*
*
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/PanicHandler.hpp>
XERCES_CPP_NAMESPACE_BEGIN
const char* PanicHandler::getPanicReasonString(const PanicReasons reason)
{
const char* reasonStr;
switch (reason)
{
case Panic_NoTransService:
reasonStr = "Could not load a transcoding service";
break;
case Panic_NoDefTranscoder:
reasonStr = "Could not load a local code page transcoder";
break;
case Panic_CantFindLib:
reasonStr = "Could not find the xerces-c DLL";
break;
case Panic_UnknownMsgDomain:
reasonStr = "Unknown message domain";
break;
case Panic_CantLoadMsgDomain:
reasonStr = "Cannot load message domain";
break;
case Panic_SynchronizationErr:
reasonStr = "Cannot synchronize system or mutex";
break;
case Panic_SystemInit:
reasonStr = "Cannot initialize the system or mutex";
break;
default:
reasonStr = "Unknown reason";
break;
}
return reasonStr;
}
XERCES_CPP_NAMESPACE_END
1.1 xml-xerces/c/src/xercesc/util/PanicHandler.hpp
Index: PanicHandler.hpp
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/*
* $Log: PanicHandler.hpp,v $
* Revision 1.1 2003/03/09 17:06:16 peiyongz
* PanicHandler
*
* $Id: PanicHandler.hpp,v 1.1 2003/03/09 17:06:16 peiyongz Exp $
*
*/
#ifndef PANICHANDLER_HPP
#define PANICHANDLER_HPP
#include <xercesc/util/XercesDefs.hpp>
XERCES_CPP_NAMESPACE_BEGIN
/**
* Receive notification of panic.
*
* <p>This is the interface, through which the Xercesc reports
* a panic to the application.
* </p>
*
* <p>Application may implement this interface, instantiate an
* object of the derivative, and plug it to Xercesc in the
* invocation to XMLPlatformUtils::Initialize(), if it prefers
* to handling panic itself rather than Xercesc doing it.
* </p>
*
*/
class XMLUTIL_EXPORT PanicHandler
{
public:
/** @name Public Types */
//@{
enum PanicReasons
{
Panic_NoTransService
, Panic_NoDefTranscoder
, Panic_CantFindLib
, Panic_UnknownMsgDomain
, Panic_CantLoadMsgDomain
, Panic_SynchronizationErr
, Panic_SystemInit
, PanicReasons_Count
};
//@}
protected:
/** @name hidden Constructors */
//@{
/** Default constructor */
PanicHandler(){};
public:
/** Destructor */
virtual ~PanicHandler(){};
//@}
/** @name The virtual panic handler interface */
//@{
/**
* Receive notification of panic
*
* This method is called when an unrecoverable error has occurred in the Xerces library.
*
* This method must not return normally, otherwise, the results are undefined.
*
* Ways of handling this call could include throwing an exception or exiting the process.
*
* Once this method has been called, the results of calling any other Xerces API,
* or using any existing Xerces objects are undefined.
*
* @param reason The reason of panic
*
*/
virtual void panic(const PanicHandler::PanicReasons reason) = 0;
//@}
static const char* getPanicReasonString(const PanicHandler::PanicReasons reason);
private:
/* Unimplemented Constructors and operators */
/* Copy constructor */
PanicHandler(const PanicHandler&);
/** Assignment operator */
void operator=(const PanicHandler&);
};
XERCES_CPP_NAMESPACE_END
#endif
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org