22 m_instance = std::make_shared<S3HeaderCache>();
30 std::unique_lock<std::mutex> lock(m_mutex);
32 if(m_maxCacheEntries<=0)
return result;
33 CacheType::const_iterator iter = m_cache.find(key);
35 if(iter != m_cache.end())
37 filesize = iter->second->m_filesize;
46 std::unique_lock<std::mutex> lock(m_mutex);
47 if(m_maxCacheEntries<=0)
return;
48 CacheType::const_iterator iter = m_cache.find(key);
50 if(iter != m_cache.end())
52 iter->second->m_filesize = node->m_filesize;
56 if((
ossim_int64)m_cache.size() >= m_maxCacheEntries)
60 m_cache.insert( std::make_pair(key, node) );
61 m_cacheTime.insert( std::make_pair(node->m_timestamp, key) );
69 if(m_cacheTime.empty())
return;
77 CacheTimeIndexType::iterator iter = m_cacheTime.begin();
81 m_cache.erase(iter->second);
82 iter = m_cacheTime.erase(iter);
This code was derived from https://gist.github.com/mshockwave.