A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies > Class Template Reference

#include <Allocator.h>

+ Collaboration diagram for pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >:

Public Member Functions

bool doNotFail ()
 
 ~MultiPolicyAllocator ()
 
void setPolicy (AllocatorPolicy policy)
 
 MultiPolicyAllocator ()
 
 MultiPolicyAllocator (size_t numBytes)
 
void emptyOutBlock (void *here)
 
template<class ObjType >
unsigned getNumObjectsInHomeAllocatorBlock (Handle< ObjType > &forMe)
 
unsigned getNumObjectsInCurrentAllocatorBlock ()
 
unsigned getNumObjectsInAllocatorBlock (void *forMe)
 
size_t getBytesAvailableInCurrentAllocatorBlock ()
 
bool contains (void *whereIn)
 
bool isManaged (void *here)
 
void * getRAM (size_t howMuch)
 
void freeRAM (void *here)
 
void setupBlock (void *where, size_t numBytesIn, bool throwExceptionOnFail)
 
void setupUserSuppliedBlock (void *where, size_t numBytesIn, bool throwExceptionOnFail)
 
template<class ObjType >
void * getAllocationBlock (Handle< ObjType > &forMe)
 
AllocatorState temporarilyUseBlockForAllocations (void *putMeHere, size_t numBytesAvailable)
 
AllocatorState temporarilyUseBlockForAllocations (size_t numBytesAvailable)
 
void restoreAllocationBlock (AllocatorState &restoreMe)
 
std::string printCurrentBlock ()
 
std::string printInactiveBlocks ()
 
void cleanInactiveBlocks ()
 
void cleanInactiveBlocks (size_t size)
 

Private Attributes

PolicyList< FirstPolicy,
OtherPolicies...> 
myPolicies
 
AllocatorState myState
 
std::vector
< InactiveAllocationBlock
allInactives
 

Friends

void makeObjectAllocatorBlock (size_t numBytesIn)
 

Detailed Description

template<typename FirstPolicy, typename... OtherPolicies>
class pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >

Definition at line 407 of file Allocator.h.

Constructor & Destructor Documentation

template<typename FirstPolicy , typename... OtherPolicies>
pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::~MultiPolicyAllocator ( )

Definition at line 450 of file Allocator.cc.

+ Here is the call graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::MultiPolicyAllocator ( )

Definition at line 474 of file Allocator.cc.

template<typename FirstPolicy , typename... OtherPolicies>
pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::MultiPolicyAllocator ( size_t  numBytes)

Definition at line 505 of file Allocator.cc.

Member Function Documentation

template<typename FirstPolicy , typename... OtherPolicies>
void pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::cleanInactiveBlocks ( )
inline

Definition at line 917 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
void pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::cleanInactiveBlocks ( size_t  size)
inline

Definition at line 926 of file Allocator.cc.

template<typename FirstPolicy , typename... OtherPolicies>
bool pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::contains ( void *  whereIn)
inline

Definition at line 543 of file Allocator.cc.

template<typename FirstPolicy , typename... OtherPolicies>
bool pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::doNotFail ( )
inline

Definition at line 444 of file Allocator.cc.

template<typename FirstPolicy , typename... OtherPolicies>
void pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::emptyOutBlock ( void *  here)
inline

Definition at line 596 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
void pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::freeRAM ( void *  here)
inline

Definition at line 632 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
template<class ObjType >
void * pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::getAllocationBlock ( Handle< ObjType > &  forMe)
inline

Definition at line 760 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
size_t pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::getBytesAvailableInCurrentAllocatorBlock ( )
inline

Definition at line 661 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
unsigned pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::getNumObjectsInAllocatorBlock ( void *  forMe)
inline

Definition at line 681 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
unsigned pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::getNumObjectsInCurrentAllocatorBlock ( )
inline

Definition at line 676 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
template<class ObjType >
unsigned pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::getNumObjectsInHomeAllocatorBlock ( Handle< ObjType > &  forMe)

Definition at line 704 of file Allocator.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
void * pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::getRAM ( size_t  howMuch)
inline

Definition at line 557 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
bool pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::isManaged ( void *  here)
inline

Definition at line 577 of file Allocator.cc.

template<typename FirstPolicy , typename... OtherPolicies>
std::string pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::printCurrentBlock ( )
inline

Definition at line 876 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
std::string pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::printInactiveBlocks ( )
inline

Definition at line 888 of file Allocator.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
void pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::restoreAllocationBlock ( AllocatorState restoreMe)
inline

Definition at line 846 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
void pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::setPolicy ( AllocatorPolicy  policy)
inline

Definition at line 536 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
void pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::setupBlock ( void *  where,
size_t  numBytesIn,
bool  throwExceptionOnFail 
)
inline

Definition at line 712 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
void pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::setupUserSuppliedBlock ( void *  where,
size_t  numBytesIn,
bool  throwExceptionOnFail 
)
inline

Definition at line 653 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
AllocatorState pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::temporarilyUseBlockForAllocations ( void *  putMeHere,
size_t  numBytesAvailable 
)
inline

Definition at line 793 of file Allocator.cc.

+ Here is the caller graph for this function:

template<typename FirstPolicy , typename... OtherPolicies>
AllocatorState pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::temporarilyUseBlockForAllocations ( size_t  numBytesAvailable)
inline

Definition at line 814 of file Allocator.cc.

Friends And Related Function Documentation

template<typename FirstPolicy , typename... OtherPolicies>
void makeObjectAllocatorBlock ( size_t  numBytesIn)
friend

Member Data Documentation

template<typename FirstPolicy , typename... OtherPolicies>
std::vector<InactiveAllocationBlock> pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::allInactives
private

Definition at line 416 of file Allocator.h.

template<typename FirstPolicy , typename... OtherPolicies>
PolicyList<FirstPolicy, OtherPolicies...> pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::myPolicies
private

Definition at line 410 of file Allocator.h.

template<typename FirstPolicy , typename... OtherPolicies>
AllocatorState pdb::MultiPolicyAllocator< FirstPolicy, OtherPolicies >::myState
private

Definition at line 412 of file Allocator.h.


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