Program Listing for File HeapMemoryBuffer.h¶
↰ Return to documentation for file (Source\Common\Inc\Memory\HeapMemoryBuffer.h
)
#pragma once
#include "MemoryBuffer.h"
#include "Types.h"
namespace Azura {
namespace Memory {
class HeapMemoryBuffer final : public MemoryBuffer {
using Byte = U8;
public:
explicit HeapMemoryBuffer(U32 blockSize);
HeapMemoryBuffer(U32 blockSize, U32 alignment);
~HeapMemoryBuffer();
// Disabled Copy Ctor
HeapMemoryBuffer(const HeapMemoryBuffer& other) = delete;
// Disabled Copy Assignment
HeapMemoryBuffer& operator=(const HeapMemoryBuffer& other) = delete;
HeapMemoryBuffer(HeapMemoryBuffer&& other) noexcept = default;
HeapMemoryBuffer& operator=(HeapMemoryBuffer&& other) noexcept = default;
void* Allocate(U32 size) override;
void Deallocate(void* address) override;
private:
UPTR AllocateRaw(U32 size);
bool m_isAllocationAligned;
};
} // namespace Memory
} // namespace Azura