2 * Copyright 2001-2006 Internet2
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
23 #if !defined(__xmltooling_exceptions_h__)
\r
24 #define __xmltooling_exceptions_h__
\r
27 #include <xmltooling/base.h>
\r
29 #define DECL_XMLTOOLING_EXCEPTION(type) \
\r
30 class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) type : public XMLToolingException { \
\r
32 type(const char* const msg) : XMLToolingException(msg) {} \
\r
33 type(const std::string& msg) : XMLToolingException(msg) {} \
\r
34 virtual ~type() {} \
\r
37 namespace xmltooling {
\r
40 * Base exception class.
\r
41 * std::exception seems to be inconsistently defined, so this is just
\r
42 * a substitute base class.
\r
44 class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) XMLToolingException
\r
47 XMLToolingException() {}
\r
48 virtual ~XMLToolingException() {}
\r
49 XMLToolingException(const char* const msg) : m_msg(msg) {}
\r
50 XMLToolingException(const std::string& msg) : m_msg(msg) {}
\r
51 virtual const char* what() const { return m_msg.c_str(); }
\r
56 DECL_XMLTOOLING_EXCEPTION(XMLParserException);
\r
57 DECL_XMLTOOLING_EXCEPTION(XMLObjectException);
\r
61 #endif /* __xmltooling_exceptions_h__ */
\r