20 #ifndef __XPATH2MEMORYMANAGER_HPP 21 #define __XPATH2MEMORYMANAGER_HPP 27 #include <xqilla/framework/XQillaExport.hpp> 31 XERCES_CPP_NAMESPACE_BEGIN
34 XERCES_CPP_NAMESPACE_END
37 class VariableTypeStore;
40 class CollationHelper;
42 class ATDecimalOrDerived;
51 virtual void reset() = 0;
54 virtual const XMLCh* getPooledString(
const XMLCh *src) = 0;
55 virtual const XMLCh* getPooledString(
const XMLCh *src,
unsigned int length) = 0;
56 virtual const XMLCh* getPooledString(
const char *src) = 0;
59 #if _XERCES_VERSION >= 30000 60 virtual void* allocate(XMLSize_t numElements) = 0;
62 virtual void* allocate(
size_t numElements) = 0;
64 virtual void deallocate(
void* p) = 0;
67 virtual Collation* createCollation(CollationHelper* helper) = 0;
70 virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode) = 0;
73 virtual VariableTypeStore* createVariableTypeStore() = 0;
76 virtual ATDecimalOrDerived* createInteger(
int value) = 0;
78 virtual void dumpStatistics()
const = 0;
79 virtual size_t getAllocatedObjectCount()
const = 0;
80 virtual size_t getTotalAllocatedMemory()
const = 0;
81 virtual const StringPool *getStringPool()
const = 0;
96 template <
class _Tp1>
struct rebind {
126 return (pointer)_singleton;
129 return _n != 0 ?
static_cast<pointer
>(_memMgr->allocate(_n*
sizeof(_Tp))) : 0;
131 return _n != 0 ?
static_cast<pointer
>(malloc(_n*
sizeof(_Tp))) : 0;
140 _memMgr->deallocate(_p);
149 new ((
void *)_p) _Tp(_v);
182 char _singleton[
sizeof(_Tp)];
183 XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager*
_memMgr;
192 inline void *
operator new(
size_t amt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
198 inline void operator delete(
void* ptr, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
200 memMgr->deallocate(ptr);
223 operator TYPE*()
const 276 operator TYPE*()
const 328 operator TYPE*()
const 365 AutoDeallocate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr,
size_t size =
sizeof(TYPE))
366 : p_(0), mmgr_(mmgr) {
367 p_ = (TYPE*)mmgr_->allocate(size);
370 : p_(p), mmgr_(mmgr) {}
374 mmgr_->deallocate((
void*)p_);
385 operator TYPE*()
const 408 mmgr_->deallocate((
void*)p_);
417 XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr_;
420 #endif //__XPATH2MEMORYMANAGER_HPP XQillaAllocator(xercesc::MemoryManager *memMgr)
Definition: XPath2MemoryManager.hpp:106
Definition: XPath2MemoryManager.hpp:362
TYPE * swap(TYPE *p)
Definition: XPath2MemoryManager.hpp:399
TYPE * adopt()
Definition: XPath2MemoryManager.hpp:336
_Tp value_type
Definition: XPath2MemoryManager.hpp:94
Definition: XPath2MemoryManager.hpp:45
~AutoDeleteArray()
Definition: XPath2MemoryManager.hpp:315
TYPE * adopt()
Definition: XPath2MemoryManager.hpp:284
void deallocate(void *_p, size_t _n)
Definition: XPath2MemoryManager.hpp:134
Definition: XPath2MemoryManager.hpp:85
TYPE & operator*() const
Definition: XPath2MemoryManager.hpp:268
TYPE * operator->() const
Definition: XPath2MemoryManager.hpp:381
Definition: XPath2MemoryManager.hpp:310
~AutoDelete()
Definition: XPath2MemoryManager.hpp:263
void construct(pointer _p, const_reference _v)
Definition: XPath2MemoryManager.hpp:147
xercesc::MemoryManager * _memMgr
Definition: XPath2MemoryManager.hpp:183
TYPE * operator->() const
Definition: XPath2MemoryManager.hpp:324
TYPE * swap(TYPE *p)
Definition: XPath2MemoryManager.hpp:237
TYPE * swap(TYPE *p)
Definition: XPath2MemoryManager.hpp:342
bool operator!=(const XQillaAllocator< _Tp > &o) const
Definition: XPath2MemoryManager.hpp:172
_Tp & reference
Definition: XPath2MemoryManager.hpp:92
AutoRelease(TYPE *p)
Definition: XPath2MemoryManager.hpp:207
virtual ~XPath2MemoryManager()
Definition: XPath2MemoryManager.hpp:48
virtual void * allocate(XMLSize_t size)=0
This method allocates requested memory.
size_type max_size(size_type) const
Definition: XPath2MemoryManager.hpp:162
AutoDeallocate(xercesc::MemoryManager *mmgr, size_t size=sizeof(TYPE))
Definition: XPath2MemoryManager.hpp:365
AutoDeleteArray(TYPE *p)
Definition: XPath2MemoryManager.hpp:313
The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional...
Definition: XQillaNSResolver.hpp:38
AutoDeallocate(TYPE *p, xercesc::MemoryManager *mmgr)
Definition: XPath2MemoryManager.hpp:369
void destroy(pointer _p)
Definition: XPath2MemoryManager.hpp:152
size_t size_type
Definition: XPath2MemoryManager.hpp:88
const _Tp & const_reference
Definition: XPath2MemoryManager.hpp:93
_Tp * pointer
Definition: XPath2MemoryManager.hpp:90
TYPE * operator->() const
Definition: XPath2MemoryManager.hpp:272
ptrdiff_t difference_type
Definition: XPath2MemoryManager.hpp:89
Definition: XPath2MemoryManager.hpp:204
bool operator==(const XQillaAllocator< _Tp > &o) const
Definition: XPath2MemoryManager.hpp:167
TYPE * adopt()
Definition: XPath2MemoryManager.hpp:231
TYPE * swap(TYPE *p)
Definition: XPath2MemoryManager.hpp:290
TYPE * adopt()
Definition: XPath2MemoryManager.hpp:393
bool operator!=(XQillaAllocator< _Tp > &o)
Definition: XPath2MemoryManager.hpp:177
pointer allocate(size_t _n, const void *=0)
Definition: XPath2MemoryManager.hpp:123
TYPE & operator*() const
Definition: XPath2MemoryManager.hpp:215
Definition: XPath2MemoryManager.hpp:96
TYPE & operator*() const
Definition: XPath2MemoryManager.hpp:377
~AutoDeallocate()
Definition: XPath2MemoryManager.hpp:371
~AutoRelease()
Definition: XPath2MemoryManager.hpp:209
TYPE * operator->() const
Definition: XPath2MemoryManager.hpp:219
XQillaAllocator(const XQillaAllocator< _Tp > &o)
Definition: XPath2MemoryManager.hpp:112
size_type max_size() const
Definition: XPath2MemoryManager.hpp:157
XQillaAllocator()
Definition: XPath2MemoryManager.hpp:101
const _Tp * const_pointer
Definition: XPath2MemoryManager.hpp:91
AutoDelete(TYPE *p)
Definition: XPath2MemoryManager.hpp:261
TYPE & operator*() const
Definition: XPath2MemoryManager.hpp:320
XQillaAllocator< _Tp1 > other
Definition: XPath2MemoryManager.hpp:97
Definition: XPath2MemoryManager.hpp:258