Gaudi Framework, version v25r0

Home   Generated: Mon Feb 17 2014
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
GaudiUtils::Allocator< Type > Class Template Reference

Allocator. More...

#include <GaudiKernel/Allocator.h>

Collaboration diagram for GaudiUtils::Allocator< Type >:
Collaboration graph
[legend]

Classes

struct  rebind
 

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 *=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
 

Detailed Description

template<class Type>
class GaudiUtils::Allocator< Type >

Allocator.

The class is imported from Geant4 project

Date
2006-02-10

Definition at line 71 of file Allocator.h.

Member Typedef Documentation

template<class Type>
typedef const Type* GaudiUtils::Allocator< Type >::const_pointer

Definition at line 109 of file Allocator.h.

template<class Type>
typedef const Type& GaudiUtils::Allocator< Type >::const_reference

Definition at line 111 of file Allocator.h.

template<class Type>
typedef ptrdiff_t GaudiUtils::Allocator< Type >::difference_type

Definition at line 107 of file Allocator.h.

template<class Type>
typedef Type* GaudiUtils::Allocator< Type >::pointer

Definition at line 108 of file Allocator.h.

template<class Type>
typedef Type& GaudiUtils::Allocator< Type >::reference

Definition at line 110 of file Allocator.h.

template<class Type>
typedef size_t GaudiUtils::Allocator< Type >::size_type

Definition at line 106 of file Allocator.h.

template<class Type>
typedef Type GaudiUtils::Allocator< Type >::value_type

Definition at line 105 of file Allocator.h.

Constructor & Destructor Documentation

template<class Type >
GaudiUtils::Allocator< Type >::Allocator ( ) throw ()

Constructor.

Definition at line 185 of file Allocator.h.

: mem(sizeof(Type))
{
}
template<class Type >
GaudiUtils::Allocator< Type >::~Allocator ( ) throw ()

destructor

Definition at line 195 of file Allocator.h.

{
}
template<class Type>
template<class U >
GaudiUtils::Allocator< Type >::Allocator ( const Allocator< U > &  right) throw ()
inline

Copy constructor.

Definition at line 115 of file Allocator.h.

: mem(right.mem) {}

Member Function Documentation

template<class Type>
pointer GaudiUtils::Allocator< Type >::address ( reference  r) const
inline

Returns the address of values.

Definition at line 119 of file Allocator.h.

{ return &r; }
template<class Type>
const_pointer GaudiUtils::Allocator< Type >::address ( const_reference  r) const
inline

Definition at line 120 of file Allocator.h.

{ return &r; }
template<class Type>
pointer GaudiUtils::Allocator< Type >::allocate ( size_type  n,
void *  = 0 
)
inline

Allocates space for n elements of type Type, but does not initialise.

Definition at line 123 of file Allocator.h.

{
// Allocates space for n elements of type Type, but does not initialise
//
Type* mem_alloc = 0;
if (n == 1)
mem_alloc = MallocSingle();
else
mem_alloc = static_cast<Type*>(::operator new(n*sizeof(Type)));
return mem_alloc;
}
template<class Type>
void GaudiUtils::Allocator< Type >::construct ( pointer  p,
const Type &  val 
)
inline

Initialises *p by val.

Definition at line 148 of file Allocator.h.

{ new((void*)p) Type(val); }
template<class Type>
void GaudiUtils::Allocator< Type >::deallocate ( pointer  p,
size_type  n 
)
inline

Deallocates n elements of type Type, but doesn't destroy.

Definition at line 136 of file Allocator.h.

{
// Deallocates n elements of type Type, but doesn't destroy
//
if (n == 1)
else
::operator delete((void*)p);
return;
}
template<class Type>
void GaudiUtils::Allocator< Type >::destroy ( pointer  p)
inline

Destroy *p but doesn't deallocate.

Definition at line 150 of file Allocator.h.

{ p->~Type(); }
template<class Type >
void GaudiUtils::Allocator< Type >::FreeSingle ( Type *  anElement)
inline

Definition at line 214 of file Allocator.h.

{
mem.Free(anElement);
return;
}
template<class Type >
size_t GaudiUtils::Allocator< Type >::GetAllocatedSize ( ) const
inline

Returns the size of the total memory allocated.

Definition at line 238 of file Allocator.h.

{
return mem.Size();
}
template<class Type >
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 204 of file Allocator.h.

{
return static_cast<Type*>(mem.Alloc());
}
template<class Type>
size_type GaudiUtils::Allocator< Type >::max_size ( ) const throw ()
inline

Returns the maximum number of elements that can be allocated.

Definition at line 153 of file Allocator.h.

{
// Returns the maximum number of elements that can be allocated
//
return 2147483647/sizeof(Type);
}
template<class Type >
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 225 of file Allocator.h.

{
// Clear all allocated storage and return it to the free store
//
return;
}

Member Data Documentation

template<class Type>
GaudiUtils::AllocatorPool GaudiUtils::Allocator< Type >::mem
private

Definition at line 166 of file Allocator.h.


The documentation for this class was generated from the following file:

Generated at Mon Feb 17 2014 14:38:20 for Gaudi Framework, version v25r0 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004