22 #ifndef __XPATH2MEMORYMANAGER_HPP
23 #define __XPATH2MEMORYMANAGER_HPP
29 #include <xqilla/framework/XQillaExport.hpp>
33 XERCES_CPP_NAMESPACE_BEGIN
36 XERCES_CPP_NAMESPACE_END
39 class VariableTypeStore;
42 class CollationHelper;
44 class ATDecimalOrDerived;
53 virtual void reset() = 0;
56 virtual const XMLCh* getPooledString(
const XMLCh *src) = 0;
57 virtual const XMLCh* getPooledString(
const XMLCh *src,
unsigned int length) = 0;
58 virtual const XMLCh* getPooledString(
const char *src) = 0;
61 #if _XERCES_VERSION >= 30000
62 virtual void* allocate(XMLSize_t numElements) = 0;
64 virtual void* allocate(
size_t numElements) = 0;
66 virtual void deallocate(
void* p) = 0;
69 virtual Collation* createCollation(CollationHelper* helper) = 0;
72 virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode) = 0;
75 virtual VariableTypeStore* createVariableTypeStore() = 0;
78 virtual ATDecimalOrDerived* createInteger(
int value) = 0;
80 virtual void dumpStatistics()
const = 0;
81 virtual size_t getAllocatedObjectCount()
const = 0;
82 virtual size_t getTotalAllocatedMemory()
const = 0;
83 virtual const StringPool *getStringPool()
const = 0;
98 template <
class _Tp1>
struct rebind {
133 return _n != 0 ?
static_cast<pointer>(malloc(_n*
sizeof(_Tp))) : 0;
151 new ((
void *)_p) _Tp(_v);
170 XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager*
_memMgr;
179 inline void *
operator new(
size_t amt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
185 inline void operator delete(
void* ptr, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
187 memMgr->deallocate(ptr);
210 operator TYPE*()
const
263 operator TYPE*()
const
315 operator TYPE*()
const
352 AutoDeallocate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr,
size_t size =
sizeof(TYPE))
353 : p_(0), mmgr_(mmgr) {
357 : p_(p), mmgr_(mmgr) {}
372 operator TYPE*()
const
404 XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr_;
407 #endif //__XPATH2MEMORYMANAGER_HPP