IRC_SERVER
By @hyunjunk (hyunjun2372@gmail.com)
Loading...
Searching...
No Matches
IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk > Class Template Reference

Base class for memory pooling with new/delete operator overloading. More...

#include <FlexibleMemoryPoolingBase.hpp>

Public Member Functions

void * operator new (size_t size)
 
void operator delete (void *ptr)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *ptr, size_t size)
 

Private Member Functions

void * operator new[] (size_t size)
 Unavailable new/delete for array.
 
void operator delete[] (void *ptr)
 Unavailable new/delete for array.
 

Static Private Attributes

static FlexibleFixedMemoryPool< DerivedType, MinNumDataPerChunk > & mPool = *(new FlexibleFixedMemoryPool<DerivedType, MinNumDataPerChunk>)
 Use reference for prevent the error of sizeof to incomplete-type T Reference : https://stackoverflow.com/questions/47462707/static-class-template-member-invalid-application-of-sizeof-to-incomplete-type.
 

Detailed Description

template<typename DerivedType, size_t MinNumDataPerChunk = 64>
class IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk >

Base class for memory pooling with new/delete operator overloading.

How to use:

class MyClass : public MemoryPoolingBase<MyClass>
{
public:
int a;
int b;
int c;
};
// You can also set MinNumDataPerChunk template parameter
template <typename T>
struct ControlBlock : public FlexibleMemoryPoolingBase<ControlBlock<T>, 128>;
int main()
{
// Allocate MyClass object from the pool
MyClass* p = new MyClass;
// Deallocate MyClass object to the pool
delete p;
}
Base class for memory pooling with new/delete operator overloading.
Definition FlexibleMemoryPoolingBase.hpp:39
int main(int argc, char **argv)
Definition main.cpp:7
Template Parameters
DerivedTypeType of the derived class
MinNumDataPerChunkMinimum number of data to allocate per chunk

Member Function Documentation

◆ operator new() [1/2]

template<typename DerivedType , size_t MinNumDataPerChunk = 64>
void * IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk >::operator new ( size_t size)
inline

◆ operator delete() [1/2]

template<typename DerivedType , size_t MinNumDataPerChunk = 64>
void IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk >::operator delete ( void * ptr)
inline

◆ operator new() [2/2]

template<typename DerivedType , size_t MinNumDataPerChunk = 64>
void * IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk >::operator new ( size_t size,
void * ptr )
inline

◆ operator delete() [2/2]

template<typename DerivedType , size_t MinNumDataPerChunk = 64>
void IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk >::operator delete ( void * ptr,
size_t size )
inline

◆ operator new[]()

template<typename DerivedType , size_t MinNumDataPerChunk = 64>
void * IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk >::operator new[] ( size_t size)
private

Unavailable new/delete for array.

◆ operator delete[]()

template<typename DerivedType , size_t MinNumDataPerChunk = 64>
void IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk >::operator delete[] ( void * ptr)
private

Unavailable new/delete for array.

Member Data Documentation

◆ mPool

template<typename DerivedType , size_t MinNumDataPerChunk>
FlexibleFixedMemoryPool< DerivedType, MinNumDataPerChunk > & IRCCore::FlexibleMemoryPoolingBase< DerivedType, MinNumDataPerChunk >::mPool = *(new FlexibleFixedMemoryPool<DerivedType, MinNumDataPerChunk>)
staticprivate

Use reference for prevent the error of sizeof to incomplete-type T Reference : https://stackoverflow.com/questions/47462707/static-class-template-member-invalid-application-of-sizeof-to-incomplete-type.


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