#include <GaudiKernel/Allocator.h>
Collaboration diagram for GaudiUtils::Allocator< Type >:
Public Types | |
typedef Type | value_type |
typedef size_t | size_type |
typedef ptrdiff_t | difference_type |
typedef Type * | pointer |
typedef const Type * | const_pointer |
typedef Type & | reference |
typedef const Type & | const_reference |
Public Member Functions | |
Allocator () throw () | |
Constructor. | |
~Allocator () throw () | |
destructor | |
Type * | MallocSingle () |
Malloc and Free methods to be used when overloading new and delete operators in the client <Type> object. | |
void | FreeSingle (Type *anElement) |
void | ResetStorage () |
Returns allocated storage to the free store, resets allocator and page sizes. | |
size_t | GetAllocatedSize () const |
Returns the size of the total memory allocated. | |
template<class U> | |
Allocator (const Allocator< U > &right) throw () | |
Copy constructor. | |
pointer | address (reference r) const |
Returns the address of values. | |
const_pointer | address (const_reference r) const |
pointer | allocate (size_type n, void *hint=0) |
Allocates space for n elements of type Type, but does not initialise. | |
void | deallocate (pointer p, size_type n) |
Deallocates n elements of type Type, but doesn't destroy. | |
void | construct (pointer p, const Type &val) |
Initialises *p by val. | |
void | destroy (pointer p) |
Destroy *p but doesn't deallocate. | |
size_type | max_size () const throw () |
Returns the maximum number of elements that can be allocated. | |
Private Attributes | |
GaudiUtils::AllocatorPool | mem |
Classes | |
struct | rebind |
The class is importen from Geant4 project
Definition at line 74 of file Allocator.h.
typedef Type GaudiUtils::Allocator< Type >::value_type |
Definition at line 108 of file Allocator.h.
typedef size_t GaudiUtils::Allocator< Type >::size_type |
Definition at line 109 of file Allocator.h.
typedef ptrdiff_t GaudiUtils::Allocator< Type >::difference_type |
Definition at line 110 of file Allocator.h.
typedef Type* GaudiUtils::Allocator< Type >::pointer |
Definition at line 111 of file Allocator.h.
typedef const Type* GaudiUtils::Allocator< Type >::const_pointer |
Definition at line 112 of file Allocator.h.
typedef Type& GaudiUtils::Allocator< Type >::reference |
Definition at line 113 of file Allocator.h.
typedef const Type& GaudiUtils::Allocator< Type >::const_reference |
Definition at line 114 of file Allocator.h.
GaudiUtils::Allocator< Type >::Allocator | ( | ) | throw () |
GaudiUtils::Allocator< Type >::~Allocator | ( | ) | throw () |
GaudiUtils::Allocator< Type >::Allocator | ( | const Allocator< U > & | right | ) | throw () [inline] |
Type * GaudiUtils::Allocator< Type >::MallocSingle | ( | ) | [inline] |
Malloc and Free methods to be used when overloading new and delete operators in the client <Type> object.
Definition at line 207 of file Allocator.h.
void GaudiUtils::Allocator< Type >::FreeSingle | ( | Type * | anElement | ) | [inline] |
void GaudiUtils::Allocator< Type >::ResetStorage | ( | ) | [inline] |
Returns allocated storage to the free store, resets allocator and page sizes.
Note: contents in memory are lost using this call !
Definition at line 228 of file Allocator.h.
00229 { 00230 // Clear all allocated storage and return it to the free store 00231 // 00232 mem.Reset(); 00233 return; 00234 }
size_t GaudiUtils::Allocator< Type >::GetAllocatedSize | ( | ) | const [inline] |
pointer GaudiUtils::Allocator< Type >::address | ( | reference | r | ) | const [inline] |
const_pointer GaudiUtils::Allocator< Type >::address | ( | const_reference | r | ) | const [inline] |
pointer GaudiUtils::Allocator< Type >::allocate | ( | size_type | n, | |
void * | hint = 0 | |||
) | [inline] |
Allocates space for n elements of type Type, but does not initialise.
Definition at line 126 of file Allocator.h.
00127 { 00128 // Allocates space for n elements of type Type, but does not initialise 00129 // 00130 Type* mem_alloc = 0; 00131 if (n == 1) 00132 mem_alloc = MallocSingle(); 00133 else 00134 mem_alloc = static_cast<Type*>(::operator new(n*sizeof(Type))); 00135 return mem_alloc; 00136 }
void GaudiUtils::Allocator< Type >::deallocate | ( | pointer | p, | |
size_type | n | |||
) | [inline] |
Deallocates n elements of type Type, but doesn't destroy.
Definition at line 139 of file Allocator.h.
00140 { 00141 // Deallocates n elements of type Type, but doesn't destroy 00142 // 00143 if (n == 1) 00144 FreeSingle(p); 00145 else 00146 ::operator delete((void*)p); 00147 return; 00148 }
void GaudiUtils::Allocator< Type >::construct | ( | pointer | p, | |
const Type & | val | |||
) | [inline] |
Initialises *p by val.
Definition at line 151 of file Allocator.h.
00151 { new((void*)p) Type(val); }
void GaudiUtils::Allocator< Type >::destroy | ( | pointer | p | ) | [inline] |
size_type GaudiUtils::Allocator< Type >::max_size | ( | ) | const throw () [inline] |
Returns the maximum number of elements that can be allocated.
Definition at line 156 of file Allocator.h.
00157 { 00158 // Returns the maximum number of elements that can be allocated 00159 // 00160 return 2147483647/sizeof(Type); 00161 }
GaudiUtils::AllocatorPool GaudiUtils::Allocator< Type >::mem [private] |
Definition at line 169 of file Allocator.h.