25#include <osl/diagnose.h>
62 virtual void allocate_Impl (
void ** ppPage, sal_uInt16 * pnSize)
override;
68PageData::Allocator_Impl::Allocator_Impl()
69 : m_page_cache(nullptr), m_page_size(0)
75 char name[RTL_CACHE_NAME_LENGTH + 1];
76 std::size_t
size = sal::static_int_cast<std::size_t>(nPageSize);
79 m_page_cache = rtl_cache_create (
name,
size, 0,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr, 0);
83 m_page_size = nPageSize;
89 rtl_cache_destroy(m_page_cache);
90 m_page_cache =
nullptr;
95 OSL_PRECOND((ppPage !=
nullptr) && (pnSize !=
nullptr),
"contract violation");
96 if ((ppPage !=
nullptr) && (pnSize !=
nullptr))
98 *ppPage = rtl_cache_alloc(m_page_cache);
99 *pnSize = m_page_size;
105 OSL_PRECOND(pPage !=
nullptr,
"contract violation");
106 rtl_cache_free(m_page_cache, pPage);
113 if (!xAllocator.is())
116 rxAllocator = &*xAllocator;
117 return xAllocator->initialize (nPageSize);
virtual ~OStorePageObject()
Destruction.
Allocator_Impl & operator=(const Allocator_Impl &)=delete
Allocator_Impl()
Construction (two phase).
virtual ~Allocator_Impl() override
virtual void allocate_Impl(void **ppPage, sal_uInt16 *pnSize) override
PageData::Allocator implementation.
storeError initialize(sal_uInt16 nPageSize)
virtual void deallocate_Impl(void *pPage) override
Allocator_Impl(const Allocator_Impl &)=delete
rtl_cache_type * m_page_cache
static storeError createInstance(rtl::Reference< PageData::Allocator > &rxAllocator, sal_uInt16 nPageSize)
Old OStorePageCache implementation.
sal_uInt16 size() const
size.
storeError
Error Code enumeration.