7#ifndef __KIS_CHUNK_LIST_H
8#define __KIS_CHUNK_LIST_H
11#include "kritaimage_export.h"
13#define MiB (1ULL << 20)
15#define DEFAULT_STORE_SIZE (4096*MiB)
16#define DEFAULT_SLAB_SIZE (64*MiB)
21#ifdef DEBUG_SLAB_FAILS
23#define WINDOW_SIZE 2000
24#define DECLARE_FAIL_COUNTER() quint64 __failCount
25#define INIT_FAIL_COUNTER() __failCount = 0
26#define START_COUNTING() quint64 __numSteps = 0
27#define REGISTER_STEP() if(++__numSteps > WINDOW_SIZE) {__numSteps=0; __failCount++;}
28#define REGISTER_FAIL() __failCount++
29#define DEBUG_FAIL_COUNTER() qInfo() << "Slab fail count:\t" << __failCount
33#define DECLARE_FAIL_COUNTER()
34#define INIT_FAIL_COUNTER()
35#define START_COUNTING()
36#define REGISTER_STEP()
37#define REGISTER_FAIL()
38#define DEBUG_FAIL_COUNTER()
54 setChunk(begin, size);
57 inline void setChunk(quint64 begin, quint64 size) {
59 m_end = begin + size - 1;
62 inline quint64
size()
const {
63 return m_end - m_begin +1;
74 return m_begin == other.
m_begin;
87 : m_iterator(iterator)
92 return m_iterator->m_begin;
95 inline quint64
end()
const {
96 return m_iterator->m_end;
99 inline quint64
size()
const {
100 return m_iterator->size();
124 return m_list.size();
131 bool sanityCheck(
bool pleaseCrash =
true);
132 qreal debugFragmentation(
bool toStderr =
true);
bool operator==(const KisRegion &lhs, const KisRegion &rhs)
quint64 numChunks() const
KisChunkDataListIterator m_iterator
KisChunkData(quint64 begin, quint64 size)
void setChunk(quint64 begin, quint64 size)
KisChunkDataListIterator m_iterator
const KisChunkData & data()
KisChunk(KisChunkDataListIterator iterator)
KisChunkDataListIterator position()
QLinkedList< KisChunkData > KisChunkDataList
#define DEFAULT_STORE_SIZE
#define DEFAULT_SLAB_SIZE
KisChunkDataList::iterator KisChunkDataListIterator
#define DECLARE_FAIL_COUNTER()