libosmscout  1.1.1
Signals | Public Member Functions | List of all members
osmscout::TileCache Class Reference

#include <libosmscout-client-qt/include/osmscout/TileCache.h>

Inheritance diagram for osmscout::TileCache:
Inheritance graph
[legend]
Collaboration diagram for osmscout::TileCache:
Collaboration graph
[legend]

Signals

void tileRequested (uint32_t zoomLevel, uint32_t x, uint32_t y)
 

Public Member Functions

 TileCache (size_t cacheSize)
 
 ~TileCache () override
 
void clearPendingRequests ()
 
bool startRequestProcess (uint32_t zoomLevel, uint32_t x, uint32_t y)
 
void mergeAndStartRequests (uint32_t zoomLevel, uint32_t xtile, uint32_t ytile, uint32_t &xFrom, uint32_t &xTo, uint32_t &yFrom, uint32_t &yTo, uint32_t maxWidth, uint32_t maxHeight)
 
bool isRequestQueueEmpty () const
 
bool request (uint32_t zoomLevel, uint32_t x, uint32_t y)
 
bool reemitRequests ()
 
bool contains (uint32_t zoomLevel, uint32_t x, uint32_t y)
 
bool containsRequest (uint32_t zoomLevel, uint32_t x, uint32_t y)
 
TileCacheVal get (uint32_t zoomLevel, uint32_t x, uint32_t y)
 
bool invalidate (osmscout::GeoBox box=osmscout::GeoBox())
 
bool removeRequest (uint32_t zoomLevel, uint32_t x, uint32_t y)
 
void put (uint32_t zoomLevel, uint32_t x, uint32_t y, QImage image, size_t epoch=0)
 
void cleanupCache ()
 
size_t getEpoch () const
 
void incEpoch ()
 

Detailed Description

Cache have to be locked by its mutex() while access. It owns all inserted tiles and it is responsible for its release

Constructor & Destructor Documentation

◆ TileCache()

osmscout::TileCache::TileCache ( size_t  cacheSize)

◆ ~TileCache()

osmscout::TileCache::~TileCache ( )
override

Member Function Documentation

◆ cleanupCache()

void osmscout::TileCache::cleanupCache ( )

◆ clearPendingRequests()

void osmscout::TileCache::clearPendingRequests ( )

remove all pending requests TODO: in case of multiple map widgets, add some id to avoid removing requests of another widget

◆ contains()

bool osmscout::TileCache::contains ( uint32_t  zoomLevel,
uint32_t  x,
uint32_t  y 
)

◆ containsRequest()

bool osmscout::TileCache::containsRequest ( uint32_t  zoomLevel,
uint32_t  x,
uint32_t  y 
)

◆ get()

TileCacheVal osmscout::TileCache::get ( uint32_t  zoomLevel,
uint32_t  x,
uint32_t  y 
)

◆ getEpoch()

size_t osmscout::TileCache::getEpoch ( ) const
inline

◆ incEpoch()

void osmscout::TileCache::incEpoch ( )
inline

◆ invalidate()

bool osmscout::TileCache::invalidate ( osmscout::GeoBox  box = osmscout::GeoBox())
Parameters
box
Returns

◆ isRequestQueueEmpty()

bool osmscout::TileCache::isRequestQueueEmpty ( ) const

◆ mergeAndStartRequests()

void osmscout::TileCache::mergeAndStartRequests ( uint32_t  zoomLevel,
uint32_t  xtile,
uint32_t  ytile,
uint32_t &  xFrom,
uint32_t &  xTo,
uint32_t &  yFrom,
uint32_t &  yTo,
uint32_t  maxWidth,
uint32_t  maxHeight 
)

◆ put()

void osmscout::TileCache::put ( uint32_t  zoomLevel,
uint32_t  x,
uint32_t  y,
QImage  image,
size_t  epoch = 0 
)

◆ reemitRequests()

bool osmscout::TileCache::reemitRequests ( )

trigger request signal for all pending requests

◆ removeRequest()

bool osmscout::TileCache::removeRequest ( uint32_t  zoomLevel,
uint32_t  x,
uint32_t  y 
)

Remove pending request

Parameters
zoomLevel
x
y
Returns
true if there was such request

◆ request()

bool osmscout::TileCache::request ( uint32_t  zoomLevel,
uint32_t  x,
uint32_t  y 
)

try to create new tile request. If this request don't exists already, it emit signal tileRequested and return true. Otherwise false.

◆ startRequestProcess()

bool osmscout::TileCache::startRequestProcess ( uint32_t  zoomLevel,
uint32_t  x,
uint32_t  y 
)

◆ tileRequested

void osmscout::TileCache::tileRequested ( uint32_t  zoomLevel,
uint32_t  x,
uint32_t  y 
)
signal

The documentation for this class was generated from the following file: