CMS 3D CMS Logo

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.

References operator=().

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 crabWrapper::key, resize(), and theContainer.

Referenced by LayerHitMapCache::add(), LayerHitMapCache::operator()(), 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
Definition: value.py:1
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 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  }
size
Write out results.
std::vector< mayown_ptr< ValueType > > theContainer
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

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().