Xerces-C++ 3.2.0

SAXException.hpp
Go to the documentation of this file.
1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 /*
19 * $Id: SAXException.hpp 527149 2007-04-10 14:56:39Z amassari $
20 */
21
22 #if !defined(XERCESC_INCLUDE_GUARD_SAXEXCEPTION_HPP)
23 #define XERCESC_INCLUDE_GUARD_SAXEXCEPTION_HPP
24
25 #include <xercesc/util/XMLString.hpp>
26 #include <xercesc/util/XMLUni.hpp>
27 #include <xercesc/util/XMemory.hpp>
28
29 XERCES_CPP_NAMESPACE_BEGIN
30
31
51 class SAX_EXPORT SAXException : public XMemory
52 {
53 public:
60 SAXException(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) :
61
62 fMsg(XMLString::replicate(XMLUni::fgZeroLenString, manager))
63 , fMemoryManager(manager)
64 {
65 }
66
74 SAXException(const XMLCh* const msg,
75 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) :
76
77 fMsg(XMLString::replicate(msg, manager))
78 , fMemoryManager(manager)
79 {
80 }
81
89 SAXException(const char* const msg,
90 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) :
91
92 fMsg(XMLString::transcode(msg, manager))
93 , fMemoryManager(manager)
94 {
95 }
96
102 SAXException(const SAXException& toCopy) :
103 XMemory(toCopy)
104 , fMsg(XMLString::replicate(toCopy.fMsg, toCopy.fMemoryManager))
105 , fMemoryManager(toCopy.fMemoryManager)
106 {
107 }
108
110 virtual ~SAXException()
111 {
112 fMemoryManager->deallocate(fMsg);//delete [] fMsg;
113 }
114
116
117
125 SAXException& operator=(const SAXException& toCopy)
126 {
127 if (this == &toCopy)
128 return *this;
129
130 fMemoryManager->deallocate(fMsg);//delete [] fMsg;
131 fMsg = XMLString::replicate(toCopy.fMsg, toCopy.fMemoryManager);
132 fMemoryManager = toCopy.fMemoryManager;
133 return *this;
134 }
136
143 virtual const XMLCh* getMessage() const
144 {
145 return fMsg;
146 }
148
149
150 protected :
151 // -----------------------------------------------------------------------
152 // Protected data members
153 //
154 // fMsg
155 // This is the text of the error that is being thrown.
156 // -----------------------------------------------------------------------
157 XMLCh* fMsg;
158 MemoryManager* fMemoryManager;
159 };
160
161 class SAX_EXPORT SAXNotSupportedException : public SAXException
162 {
163
164 public:
165 SAXNotSupportedException(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
166
174 SAXNotSupportedException(const XMLCh* const msg,
175 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
176
184 SAXNotSupportedException(const char* const msg,
185 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
186
192 SAXNotSupportedException(const SAXException& toCopy);
193 };
194
195 class SAX_EXPORT SAXNotRecognizedException : public SAXException
196 {
197 public:
198 SAXNotRecognizedException(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
199
207 SAXNotRecognizedException(const XMLCh* const msg,
208 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
209
217 SAXNotRecognizedException(const char* const msg,
218 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
219
225 SAXNotRecognizedException(const SAXException& toCopy);
226 };
227
228 XERCES_CPP_NAMESPACE_END
229
230 #endif
XMLString::replicate
static char * replicate(const char *const toRep, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
Replicates a string NOTE: The returned buffer is allocated with the MemoryManager.
XMemory
This class makes it possible to override the C++ memory management by adding new/delete operators to ...
Definition: XMemory.hpp:40
XMLPlatformUtils::fgMemoryManager
static MemoryManager * fgMemoryManager
The configurable memory manager.
Definition: PlatformUtils.hpp:121
SAXException::SAXException
SAXException(const XMLCh *const msg, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
Create a new SAXException.
Definition: SAXException.hpp:74
SAX_EXPORT
#define SAX_EXPORT
Definition: XercesDefs.hpp:164
SAXNotSupportedException
Definition: SAXException.hpp:161
SAXException::SAXException
SAXException(const char *const msg, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
Create a new SAXException.
Definition: SAXException.hpp:89
XMLUni
Definition: XMLUni.hpp:44
SAXException::SAXException
SAXException(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
Default constructor.
Definition: SAXException.hpp:60
SAXException::fMemoryManager
MemoryManager * fMemoryManager
Definition: SAXException.hpp:158
MemoryManager
Configurable memory manager.
Definition: MemoryManager.hpp:39
XMLCh
uint16_t XMLCh
Definition: Xerces_autoconf_config.hpp:118
XERCES_CPP_NAMESPACE_BEGIN
#define XERCES_CPP_NAMESPACE_BEGIN
Definition: XercesDefs.hpp:112
SAXException::SAXException
SAXException(const SAXException &toCopy)
Copy constructor.
Definition: SAXException.hpp:102
XMLString.hpp
XERCES_CPP_NAMESPACE_END
#define XERCES_CPP_NAMESPACE_END
Definition: XercesDefs.hpp:113
XMLUni.hpp
XMLString
Class for representing native character strings and handling common string operations.
Definition: XMLString.hpp:45
SAXException::~SAXException
virtual ~SAXException()
Destructor.
Definition: SAXException.hpp:110
SAXNotRecognizedException
Definition: SAXException.hpp:195
SAXException::getMessage
virtual const XMLCh * getMessage() const
Get the contents of the message.
Definition: SAXException.hpp:143
SAXException
Encapsulate a general SAX error or warning.
Definition: SAXException.hpp:51
XMemory.hpp
SAXException::operator=
SAXException & operator=(const SAXException &toCopy)
Assignment operator.
Definition: SAXException.hpp:125
SAXException::fMsg
XMLCh * fMsg
Definition: SAXException.hpp:157