Xerces-C++ 3.3.0

MemoryManager.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$
20 */
21
22
23#if !defined(XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP)
24#define XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP
25
26#include <xercesc/util/XercesDefs.hpp>
27#include <stdlib.h>
28
29
30 XERCES_CPP_NAMESPACE_BEGIN
31
32
39 class XMLPARSER_EXPORT MemoryManager
40{
41 public:
42 // -----------------------------------------------------------------------
43 // Constructors are hidden, only the virtual destructor is exposed
44 // -----------------------------------------------------------------------
45
48
52 virtual ~MemoryManager()
53 {
54 }
56
57
70 virtual MemoryManager* getExceptionMemoryManager() = 0;
71
72
73 // -----------------------------------------------------------------------
74 // The virtual memory manager interface
75 // -----------------------------------------------------------------------
78
86 virtual void* allocate(XMLSize_t size) = 0;
87
93 virtual void deallocate(void* p) = 0;
94
96
97
98protected :
99 // -----------------------------------------------------------------------
100 // Hidden Constructors
101 // -----------------------------------------------------------------------
104
108 MemoryManager()
109 {
110 }
112
113
114
115 private:
116 // -----------------------------------------------------------------------
117 // Unimplemented constructors and operators
118 // -----------------------------------------------------------------------
119 MemoryManager(const MemoryManager&);
120 MemoryManager& operator=(const MemoryManager&);
121};
122
123 XERCES_CPP_NAMESPACE_END
124
125#endif
XercesDefs.hpp
XMLPARSER_EXPORT
#define XMLPARSER_EXPORT
Definition XercesDefs.hpp:163
XERCES_CPP_NAMESPACE_BEGIN
#define XERCES_CPP_NAMESPACE_BEGIN
Definition XercesDefs.hpp:112
XERCES_CPP_NAMESPACE_END
#define XERCES_CPP_NAMESPACE_END
Definition XercesDefs.hpp:113
XMLSize_t
size_t XMLSize_t
Definition Xerces_autoconf_config.hpp:112
MemoryManager
Configurable memory manager.
Definition MemoryManager.hpp:40
MemoryManager::~MemoryManager
virtual ~MemoryManager()
Default destructor.
Definition MemoryManager.hpp:52
MemoryManager::allocate
virtual void * allocate(XMLSize_t size)=0
This method allocates requested memory.
MemoryManager::MemoryManager
MemoryManager()
Protected default constructor.
Definition MemoryManager.hpp:108
MemoryManager::getExceptionMemoryManager
virtual MemoryManager * getExceptionMemoryManager()=0
This method is called to obtain the memory manager that should be used to allocate memory used in exc...
MemoryManager::deallocate
virtual void deallocate(void *p)=0
This method deallocates memory.