13#ifndef ATHENAKERNEL_THINNINGCACHE_H
14#define ATHENAKERNEL_THINNINGCACHE_H
21#include <unordered_map>
90 const std::vector<sgkey_t>& sgkeys,
152 typedef std::unordered_map<std::string, ThinningInfo>
map_t;
160 std::vector<std::unique_ptr<ThinningDecisionBase> >
m_owned;
175 const std::vector<sgkey_t>& sgkeys,
Variable-sized bitset allowing (mostly) concurrent access.
Hold thinning decisions for one container.
Hold thinning/slimming information for a given object.
Variable-sized bitset allowing (mostly) concurrent access.
Define interface for doing TrigNavigation thinning.
Cache thinning decisions for converters.
SGKeyMap< ThinningInfo > sgmap_t
Mapping by hashed SG key.
std::vector< std::unique_ptr< ThinningDecisionBase > > m_owned
List of decision objects we've copied in order to handle merges.
const ThinningInfo * thinningInfo(const std::string &key) const
Return thinning information for key.
const ThinningDecisionBase * thinning(const std::string &key) const
Return thinning for key.
bool empty() const
Test to see if there's any thinning defined.
std::unordered_map< std::string, ThinningInfo > map_t
Mapping by string SG key.
const ITrigNavigationThinningSvc * trigNavigationThinningSvc() const
Return the TrigNavigation helper for this stream, or nullptr.
void setVetoed(const std::string &key, const CxxUtils::ConcurrentBitset &vetoed)
Set vetoed variable information one object.
void setTrigNavigationThinningSvc(const ITrigNavigationThinningSvc *thinning)
Set the TrigNavigation helper for this stream.
void clear()
Clear the cache.
const ITrigNavigationThinningSvc * m_trigNavigationThinningSvc
Optional TrigNavigation thinning helper for this stream.
void lockOwned()
Lock all the ThinningDecisionBase objects that we own.
void setCompression(const std::string &key, const ThinningInfo::compression_map_t &compression)
Set lossy float compression information for the object.
void addThinning(const std::string &key, const std::vector< sgkey_t > &sgkeys, const ThinningDecisionBase *thinning, bool unique=false)
Add thinning information for one object.
Hold thinning decisions for one container.
Hold thinning/slimming information for a given object.
std::map< unsigned int, CxxUtils::ConcurrentBitset > compression_map_t
This map holds a set of auxids to be lossy compressed for each compression level (nmantissa).
A set of aux data identifiers.
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
std::unordered_map< sgkey_t, T > SGKeyMap
A map using sgkey_t as a key.