CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Attributes
LayerHitMapCache::SimpleCache Class Reference

Public Types

using KeyType = int
 
using ValueType = RecHitsSortedInPhi
 

Public Member Functions

void add (KeyType key, ValueType *value)
 add object to cache. It is caller responsibility to check that object is not yet there. More...
 
void clear ()
 emptify cache, delete values associated to Key More...
 
void extend (const SimpleCache &other)
 
const ValueTypeget (KeyType key) const
 
SimpleCacheoperator= (const SimpleCache &)=delete
 
SimpleCacheoperator= (SimpleCache &&)=default
 
void resize (int size)
 
 SimpleCache (unsigned int initSize)
 
 SimpleCache (const SimpleCache &)=delete
 
 SimpleCache (SimpleCache &&)=default
 
 ~SimpleCache ()
 

Private Attributes

std::vector< mayown_ptr
< ValueType > > 
theContainer
 

Detailed Description

Definition at line 16 of file LayerHitMapCache.h.

Member Typedef Documentation

Definition at line 19 of file LayerHitMapCache.h.

Definition at line 18 of file LayerHitMapCache.h.

Constructor & Destructor Documentation

LayerHitMapCache::SimpleCache::SimpleCache ( unsigned int  initSize)
inline

Definition at line 20 of file LayerHitMapCache.h.

20 : theContainer(initSize) {}
std::vector< mayown_ptr< ValueType > > theContainer
LayerHitMapCache::SimpleCache::SimpleCache ( const SimpleCache )
delete
LayerHitMapCache::SimpleCache::SimpleCache ( SimpleCache &&  )
default
LayerHitMapCache::SimpleCache::~SimpleCache ( )
inline

Definition at line 25 of file LayerHitMapCache.h.

References clear().

25 { clear(); }
void clear()
emptify cache, delete values associated to Key

Member Function Documentation

void LayerHitMapCache::SimpleCache::add ( KeyType  key,
ValueType value 
)
inline

add object to cache. It is caller responsibility to check that object is not yet there.

Definition at line 29 of file LayerHitMapCache.h.

References submitPVResolutionJobs::key, resize(), and theContainer.

Referenced by LayerHitMapCache::add(), and counter.Counter::register().

29  {
30  if (key >= int(theContainer.size()))
31  resize(key + 1);
32  theContainer[key].reset(value);
33  }
std::vector< mayown_ptr< ValueType > > theContainer
tuple key
prepare the HTCondor submission files and eventually submit them
void LayerHitMapCache::SimpleCache::clear ( void  )
inline

emptify cache, delete values associated to Key

Definition at line 51 of file LayerHitMapCache.h.

References theContainer, and findQualityFiles::v.

Referenced by LayerHitMapCache::clear(), and ~SimpleCache().

51  {
52  for (auto& v : theContainer) {
53  v.reset();
54  }
55  }
std::vector< mayown_ptr< ValueType > > theContainer
void LayerHitMapCache::SimpleCache::extend ( const SimpleCache other)
inline

Definition at line 34 of file LayerHitMapCache.h.

References cms::cuda::assert(), get(), mps_fire::i, resize(), findQualityFiles::size, theContainer, and findQualityFiles::v.

Referenced by MatrixUtil.WF::__init__(), and LayerHitMapCache::extend().

34  {
35  // N.B. Here we assume that the lifetime of 'other' is longer than of 'this'.
36  if (other.theContainer.size() > theContainer.size())
37  resize(other.theContainer.size());
38 
39  for (size_t i = 0, size = other.theContainer.size(); i != size; ++i) {
40  assert(get(i) == nullptr); // We don't want to override any existing value
41  auto v = other.get(i);
42  if (v) {
43  // pass by reference to denote that we don't own it
44  theContainer[i].reset(*(other.get(i)));
45  } else {
46  theContainer[i].reset();
47  }
48  }
49  }
std::vector< mayown_ptr< ValueType > > theContainer
assert(be >=bs)
tuple size
Write out results.
const ValueType* LayerHitMapCache::SimpleCache::get ( KeyType  key) const
inline
SimpleCache& LayerHitMapCache::SimpleCache::operator= ( const SimpleCache )
delete
SimpleCache& LayerHitMapCache::SimpleCache::operator= ( SimpleCache &&  )
default
void LayerHitMapCache::SimpleCache::resize ( int  size)
inline

Definition at line 26 of file LayerHitMapCache.h.

References theContainer.

Referenced by add(), and extend().

26 { theContainer.resize(size); }
std::vector< mayown_ptr< ValueType > > theContainer
tuple size
Write out results.

Member Data Documentation

std::vector<mayown_ptr<ValueType> > LayerHitMapCache::SimpleCache::theContainer
private

Definition at line 58 of file LayerHitMapCache.h.

Referenced by add(), clear(), extend(), get(), and resize().