55 for (std::vector<Entry*>::iterator it = m_buffer.begin(); it != m_buffer.end(); ++it)
delete *it;
67 e = m_buffer.at(page);
70 catch (std::out_of_range&)
76 *data =
new uint8_t[len];
78 memcpy(*data, e->m_pData, len);
85 Entry* e =
new Entry(len, data);
87 if (m_emptyPages.empty())
89 m_buffer.push_back(e);
90 page = m_buffer.size() - 1;
94 page = m_emptyPages.top(); m_emptyPages.pop();
103 e_old = m_buffer.at(page);
106 catch (std::out_of_range&)
111 Entry* e =
new Entry(len, data);
123 e = m_buffer.at(page);
126 catch (std::out_of_range&)
131 m_buffer[page] =
nullptr;
132 m_emptyPages.push(page);
void deleteByteArray(const id_type page) override
void loadByteArray(const id_type page, uint32_t &len, uint8_t **data) override
~MemoryStorageManager() override
void storeByteArray(id_type &page, const uint32_t len, const uint8_t *const data) override
MemoryStorageManager(Tools::PropertySet &)
SIDX_DLL IStorageManager * returnMemoryStorageManager(Tools::PropertySet &in)
SIDX_DLL IStorageManager * createNewMemoryStorageManager()