43 m_max_memory(100 * 1024L * 1024L), m_total_memory_used(0) {
53 boost::lock_guard<boost::shared_mutex> wr_lock(
m_mutex);
63 boost::lock_guard<boost::shared_mutex> wr_lock(
m_mutex);
75 boost::shared_lock<boost::shared_mutex> shared_rd_lock(
m_mutex);
82 return std::dynamic_pointer_cast<ImageTile>(it->second);
91 boost::upgrade_lock<boost::shared_mutex> upgrade_lock(
m_mutex);
94 boost::upgrade_to_unique_lock<boost::shared_mutex>
unique_lock(upgrade_lock);
95 mit =
m_mutex_map.emplace(src_ptr, std::make_shared<boost::mutex>()).first;
104 TileKey key{std::static_pointer_cast<const ImageSource>(source),
x,
y};
117 boost::lock_guard<boost::mutex> img_lock(*img_mutex);
125 tile = source->getImageTile(
x,
y,
130 boost::lock_guard<boost::shared_mutex> wr_lock(
m_mutex);
131 addTile(key, std::static_pointer_cast<ImageTile>(tile));
144 boost::lock_guard<boost::shared_mutex> wr_lock(
m_mutex);
166 tile->saveIfModified();