blob: 1a38e6daac8c47f1d4ec737b656c29abf558c603 [file] [log] [blame]
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2019 VMware, Inc. or its affiliates.
//
// @filename:
// CMemoryPoolPallocManager.h
//
// @doc:
// MemoryPoolManager implementation that creates
// CMemoryPoolPalloc memory pools
//
//---------------------------------------------------------------------------
#ifndef GPDXL_CMemoryPoolPallocManager_H
#define GPDXL_CMemoryPoolPallocManager_H
#include "gpos/base.h"
#include "gpos/memory/CMemoryPoolManager.h"
namespace gpos
{
// memory pool manager that uses GPDB memory contexts
class CMemoryPoolPallocManager : public CMemoryPoolManager
{
private:
public:
CMemoryPoolPallocManager(const CMemoryPoolPallocManager &) = delete;
// ctor
CMemoryPoolPallocManager(CMemoryPool *internal,
EMemoryPoolType memory_pool_type);
// allocate new memorypool
CMemoryPool *NewMemoryPool() override;
// free allocation
void DeleteImpl(void *ptr, CMemoryPool::EAllocationType eat) override;
// get user requested size of allocation
ULONG UserSizeOfAlloc(const void *ptr) override;
static void Init();
};
} // namespace gpos
#endif // !GPDXL_CMemoryPoolPallocManager_H
// EOF