|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef CALOEVENT_CALOPREFETCH_H
8 #define CALOEVENT_CALOPREFETCH_H
45 template <
typename Iter>
49 if (++iter != endIter) {
52 if (++iter != endIter) {
54 CxxUtils::prefetchObj<CaloCell>(*iter);
70 template <
typename Iter>
75 if (++iter != endIter) {
83 if (++iter != endIter) {
85 CxxUtils::prefetchObj<CaloCell>(*iter);
101 template <
class T,
class ALLOC,
int COUNT=1>
113 for (
int i = 0;
i != COUNT; ++
i) {
116 for (
int i = 0;
i != COUNT; ++
i) {
117 CxxUtils::prefetchN<sizeof(T)>(
m_buf[
i]);
129 CxxUtils::prefetchN<sizeof(T)>(
m_buf[COUNT-1]);
138 for (
int i = 0;
i != COUNT; ++
i) {
141 for (
int i = 0;
i != COUNT; ++
i) {
142 CxxUtils::prefetchN<sizeof(T)>(
m_buf[
i]);
153 #endif // CALOEVENT_CALOPREFETCH_H
Wrapper for SG::ArenaHandle with pre-fetching.
User interface for allocating memory.
User interface for allocating memory. See Arena.h for an overview of the arena-based memory allocator...
void * allocate()
Allocate a new element.
void erase()
Free all allocated elements and release memory back to the system (of this type in the current Arena)...
This software was developed for the ATLAS project.
std::pair< std::vector< unsigned int >, bool > res
SG::ArenaHandle< T, ALLOC > Base
void * allocate()
Return space for new element, then allocate and prefetch one more.
void prefetchObj(const T *ptr)
Generic prefetch of the object of specific types (sizes).
ArenaHandlePrefetch()
Make.
void nextDDE(Iter iter, Iter endIter)
Prefetch next CaloDDE.
Functions to prefetch blocks of memory.
void erase()
Free all allocated elements.