Protium
Math and Design Features
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros Pages
Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy > Class Template Reference

Base class for small objects to be used in the small object allocation scheme. More...

#include <SmallObject.h>

Public Types

typedef
Protium::Allocation::SmallObjectAllocator
< ThreadPolicy, chunkSize,
maxSmallObjectSize,
objectAlignSize,
LifetimePolicy > 
ObjAllocator
 Type of allocator to host the allocator singleton. More...
 

Static Public Member Functions

static void operator delete (void *p, std::size_t size) throw ()
 
static void operator delete (void *p, const std::nothrow_t &) throw ()
 
static void operator delete (void *p, void *place)
 
static void operator delete[] (void *p, std::size_t size) throw ()
 
static void operator delete[] (void *p, const std::nothrow_t &) throw ()
 
static void operator delete[] (void *p, void *place)
 
static void * operator new (std::size_t size) throw ( std::bad_alloc )
 
static void * operator new (std::size_t size, const std::nothrow_t &) throw ()
 
static void * operator new (std::size_t size, void *place)
 
static void * operator new[] (std::size_t size) throw ( std::bad_alloc )
 
static void * operator new[] (std::size_t size, const std::nothrow_t &) throw ()
 
static void * operator new[] (std::size_t size, void *place)
 

Protected Member Functions

 SmallObjectBase (void)
 
 SmallObjectBase (const SmallObjectBase &)
 
 ~SmallObjectBase ()
 
SmallObjectBaseoperator= (const SmallObjectBase &)
 

Private Types

typedef
ObjAllocator::AllocatorSingleton 
AllocatorSingleton
 
typedef ThreadPolicy
< ObjAllocator, MutexPolicy > 
ThreadType
 

Detailed Description

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
class Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >

Base class for small objects to be used in the small object allocation scheme.

Parameters
ThreadPolicyInclude threading policy here from ThreadingPolicy.h
chunkSizedefines the size of chunks
maxSmallObjectSizeobjects exceeding this size will default to standard alloction (new or malloc)
objectAlignSizeused by allocator for default object alignment
LifetimePolicyDetermines the lifetime of the allocator singleton from DeletionPolicies.h
MutexPolicyDetermines the mutex type to be used. (see Mutex.h)

Use as a base class for small objects in order to utilize the SmallObjectAllocator.

Definition at line 31 of file SmallObject.h.

Member Typedef Documentation

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
typedef ObjAllocator::AllocatorSingleton Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::AllocatorSingleton
private

Definition at line 40 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
typedef Protium::Allocation::SmallObjectAllocator< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy > Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::ObjAllocator

Type of allocator to host the allocator singleton.

Definition at line 35 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
typedef ThreadPolicy< ObjAllocator, MutexPolicy > Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::ThreadType
private

Definition at line 39 of file SmallObject.h.

Constructor & Destructor Documentation

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::SmallObjectBase ( void  )
inlineprotected

Definition at line 109 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::SmallObjectBase ( const SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy > &  )
inlineprotected

Definition at line 110 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::~SmallObjectBase ( )
inlineprotected

Definition at line 113 of file SmallObject.h.

Member Function Documentation

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator delete ( void *  p,
std::size_t  size 
)
throw (
)
inlinestatic

Definition at line 60 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator delete ( void *  p,
const std::nothrow_t &   
)
throw (
)
inlinestatic

Definition at line 66 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator delete ( void *  p,
void *  place 
)
inlinestatic

Definition at line 72 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator delete[] ( void *  p,
std::size_t  size 
)
throw (
)
inlinestatic

Definition at line 92 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator delete[] ( void *  p,
const std::nothrow_t &   
)
throw (
)
inlinestatic

Definition at line 98 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator delete[] ( void *  p,
void *  place 
)
inlinestatic

Definition at line 104 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void* Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator new ( std::size_t  size)
throw (std::bad_alloc
)
inlinestatic

Definition at line 44 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void* Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator new ( std::size_t  size,
const std::nothrow_t &   
)
throw (
)
inlinestatic

Definition at line 50 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void* Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator new ( std::size_t  size,
void *  place 
)
inlinestatic

Definition at line 56 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void* Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator new[] ( std::size_t  size)
throw (std::bad_alloc
)
inlinestatic

Definition at line 76 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void* Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator new[] ( std::size_t  size,
const std::nothrow_t &   
)
throw (
)
inlinestatic

Definition at line 82 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
static void* Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator new[] ( std::size_t  size,
void *  place 
)
inlinestatic

Definition at line 88 of file SmallObject.h.

template<template< class, class > class ThreadPolicy, std::size_t chunkSize, std::size_t maxSmallObjectSize, std::size_t objectAlignSize, template< class > class LifetimePolicy, class MutexPolicy>
SmallObjectBase& Protium::Allocation::SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy >::operator= ( const SmallObjectBase< ThreadPolicy, chunkSize, maxSmallObjectSize, objectAlignSize, LifetimePolicy, MutexPolicy > &  )
inlineprotected

Definition at line 111 of file SmallObject.h.