8#ifndef KIS_TILEHASHTABLE_H_
9#define KIS_TILEHASHTABLE_H_
95 bool unlinkTile(qint32 col, qint32 row, qint32 idx);
131template<
class T,
class LockerType>
175 template <
class Helper = LockerType>
176 typename std::enable_if<std::is_same<Helper, QWriteLocker>::value,
void>::type
186 template <
class Helper = LockerType>
187 typename std::enable_if<std::is_same<Helper, QWriteLocker>::value,
void>::type
206 qint32 idx = startIdx;
std::enable_if< std::is_same< Helper, QWriteLocker >::value, void >::type moveCurrentToHashTable(KisTileHashTableTraits< T > *newHashTable)
KisSharedPtr< T > TileTypeSP
qint32 nextNonEmptyList(qint32 startIdx)
std::enable_if< std::is_same< Helper, QWriteLocker >::value, void >::type deleteCurrent()
KisTileHashTableTraits< T > * m_hashTable
KisTileHashTableIteratorTraits(KisTileHashTableTraits< T > *ht)
~KisTileHashTableIteratorTraits()
TileTypeSP getTileMinefieldWalk(qint32 col, qint32 row, qint32 idx)
KisTileData * refAndFetchDefaultTileData() const
static const qint32 TABLE_SIZE
TileTypeSP getReadOnlyTileLazy(qint32 col, qint32 row, bool &existingTile)
TileTypeSP getExistingTile(qint32 col, qint32 row)
void addTile(TileTypeSP tile)
KisTileData * defaultTileData() const
KisTileData * m_defaultTileData
bool deleteTile(TileTypeSP tile)
void debugMaxListLength(qint32 &min, qint32 &max)
void setDefaultTileData(KisTileData *defaultTileData)
KisSharedPtr< T > TileTypeSP
static quint32 calculateHash(qint32 col, qint32 row)
void sanityChecksumCheck()
~KisTileHashTableTraits()
bool tileExists(qint32 col, qint32 row)
KisTileHashTableTraits(KisMementoManager *mm)
qint32 debugChainLen(qint32 idx)
void setDefaultTileDataImp(KisTileData *defaultTileData)
KisTileData * defaultTileDataImp() const
TileTypeSP getTile(qint32 col, qint32 row, qint32 idx)
KisWeakSharedPtr< T > TileTypeWSP
TileTypeSP getTileLazy(qint32 col, qint32 row, bool &newTile)
void linkTile(TileTypeSP tile, qint32 idx)
void debugListLengthDistribution()
KisMementoManager * m_mementoManager
bool unlinkTile(qint32 col, qint32 row, qint32 idx)
KisTileHashTableTraits< KisTile > KisTileHashTable
KisTileHashTableIteratorTraits< KisTile, QWriteLocker > KisTileHashTableIterator
KisTileHashTableIteratorTraits< KisTile, QReadLocker > KisTileHashTableConstIterator
struct Tile * newTile(struct rect r)