Line data Source code
1 : // file : xsd/cxx/xml/std-memory-manager.hxx
2 : // copyright : Copyright (c) 2005-2017 Code Synthesis Tools CC
3 : // license : GNU GPL v2 + exceptions; see accompanying LICENSE file
4 :
5 : #ifndef XSD_CXX_XML_STD_MEMORY_MANAGER_HXX
6 : #define XSD_CXX_XML_STD_MEMORY_MANAGER_HXX
7 :
8 : #include <new> // operator new, delete
9 : #include <xercesc/framework/MemoryManager.hpp>
10 :
11 : namespace xsd
12 : {
13 : namespace cxx
14 : {
15 : namespace xml
16 : {
17 : class std_memory_manager: public xercesc::MemoryManager
18 : {
19 : public:
20 : // Xerces-C++ MemoryManager interface.
21 : //
22 : virtual void*
23 0 : allocate(XMLSize_t size)
24 : {
25 0 : return operator new (size);
26 : }
27 :
28 : virtual void
29 0 : deallocate(void* p)
30 : {
31 0 : if (p)
32 0 : operator delete (p);
33 0 : }
34 :
35 : virtual xercesc::MemoryManager*
36 0 : getExceptionMemoryManager()
37 : {
38 0 : return xercesc::XMLPlatformUtils::fgMemoryManager;
39 : }
40 :
41 : // Standard deleter interface.
42 : //
43 : void
44 0 : operator() (void* p) const
45 : {
46 0 : if (p)
47 0 : operator delete (p);
48 0 : }
49 : };
50 : }
51 : }
52 : }
53 :
54 : #endif // XSD_CXX_XML_STD_MEMORY_MANAGER_HXX
|