28#include <unordered_map>
63 StringsCaseInsensitive
121 std::unordered_map<ScSortedRangeCache::HashKey, std::unique_ptr<ScSortedRangeCache>,
size_t hashStartColumn() const
Hash start column and start and end rows.
Sorted cache for one range used with interpreter functions such as VLOOKUP and MATCH.
ScSortedRangeCache & operator=(const ScSortedRangeCache &)=delete
SCROW rowForIndex(size_t index) const
std::vector< SCROW > mSortedRows
std::vector< size_t > mRowToIndex
virtual void Notify(const SfxHint &rHint) override
Remove from document structure and delete (!) cache on modify hint.
ScQueryEntry::QueryType mQueryType
bool isValid() const
Returns if the cache is usable.
ScSortedRangeCache(ScDocument *pDoc, const ScRange &rRange, const ScQueryParam ¶m, ScInterpreterContext *context, bool invalid=false)
MUST be new'd because Notify() deletes.
HashKey getHashKey() const
static HashKey makeHashKey(const ScRange &range, const ScQueryParam ¶m)
const std::vector< SCROW > & sortedRows() const
const ScRange & getRange() const
size_t indexForRow(SCROW row) const
ScSortedRangeCache(const ScSortedRangeCache &)=delete
std::enable_if_t<(sizeof(N)==4)> hash_combine(N &nSeed, T const *pValue, size_t nCount)
std::unordered_map< ScSortedRangeCache::HashKey, std::unique_ptr< ScSortedRangeCache >, ScSortedRangeCache::Hash > aCacheMap
ScQueryEntry::QueryType queryType
bool operator==(const HashKey &other) const
size_t operator()(const HashKey &key) const