00001 /*00002 * Licensed to the Apache Software Foundation (ASF) under one or more00003 * contributor license agreements. See the NOTICE file distributed with00004 * this work for additional information regarding copyright ownership.00005 * The ASF licenses this file to You under the Apache License, Version 2.000006 * (the "License"); you may not use this file except in compliance with00007 * the License. You may obtain a copy of the License at00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.000010 * 00011 * Unless required by applicable law or agreed to in writing, software00012 * distributed under the License is distributed on an "AS IS" BASIS,00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.00014 * See the License for the specific language governing permissions and00015 * limitations under the License.00016 */00017
00018 /*00019 * $Id: MemoryManager.hpp 568078 2007-08-21 11:43:25Z amassari $00020 */00021
00022
00023 #if !defined(MEMORYMANAGER_HPP)00024#define MEMORYMANAGER_HPP00025
00026 #include <xercesc/util/XercesDefs.hpp>00027 #include <stdlib.h>00028
00029
00030 XERCES_CPP_NAMESPACE_BEGIN00031
00032
00039class MemoryManager00040 {
00041 public:
00042 // -----------------------------------------------------------------------00043 // Constructors are hidden, only the virtual destructor is exposed00044 // -----------------------------------------------------------------------00045
00048
00052virtual ~MemoryManager()
00053 {
00054 }
00056
00057
00058 // -----------------------------------------------------------------------00059 // The virtual memory manager interface00060 // -----------------------------------------------------------------------00063
00071 virtualvoid* allocate(size_t size) = 0;
00072
00078 virtualvoid deallocate(void* p) = 0;
00079
00081
00082
00083 protected :
00084 // -----------------------------------------------------------------------00085 // Hidden Constructors00086 // -----------------------------------------------------------------------00089
00093MemoryManager()
00094 {
00095 }
00097
00098
00099
00100 private:
00101 // -----------------------------------------------------------------------00102 // Unimplemented constructors and operators00103 // -----------------------------------------------------------------------00104 MemoryManager(constMemoryManager&);
00105 MemoryManager& operator=(constMemoryManager&);
00106 };
00107
00108 XERCES_CPP_NAMESPACE_END00109
00110 #endif