gwnavruntime/querysystem/workingmemcontainers/workingmemcontainerbase.h Source File
Go to the documentation of this file.
8 #ifndef Navigation_WorkingMemContainerBase_H
9 #define Navigation_WorkingMemContainerBase_H
16 class WorkingMemContainerBase
19 WorkingMemContainerBase() : m_workingMemory(
KY_NULL), m_bufferIdx(BufferIndex_Invalid) {}
20 WorkingMemContainerBase(WorkingMemory* workingMemory);
22 KyResult Init(WorkingMemory* workingMemory);
24 ~WorkingMemContainerBase();
26 bool IsInitialized()
const;
27 void* GetBuffer()
const;
29 void* Resize(
KyUInt32 newMinByteSize = 0);
30 void ReleaseMemory(
void* memory);
35 WorkingMemory* m_workingMemory;
36 BufferIndex m_bufferIdx;
39 KY_INLINE WorkingMemContainerBase::WorkingMemContainerBase(WorkingMemory* workingMemory) : m_workingMemory(
KY_NULL), m_bufferIdx(BufferIndex_Invalid) { Init(workingMemory); }
41 KY_INLINE
KyResult WorkingMemContainerBase::Init(WorkingMemory* workingMemory)
45 BufferIndex bufferIdx = workingMemory->TakeUsageOfFirstUnusedBufferIdx();
47 if(bufferIdx == BufferIndex_Invalid)
50 m_workingMemory = workingMemory;
51 m_bufferIdx = bufferIdx;
53 if (workingMemory->GetBuffer(bufferIdx) ==
KY_NULL)
55 if (workingMemory->ResizeBuffer(bufferIdx) ==
KY_NULL)
64 KY_INLINE
bool WorkingMemContainerBase::IsInitialized()
const {
return m_workingMemory !=
KY_NULL; }
65 KY_INLINE
void* WorkingMemContainerBase::GetBuffer()
const {
return m_workingMemory->GetBuffer(m_bufferIdx); }
66 KY_INLINE
KyUInt32 WorkingMemContainerBase::GetBufferSize()
const {
return m_workingMemory->GetBufferSize(m_bufferIdx); }
68 KY_INLINE
void* WorkingMemContainerBase::Resize(
KyUInt32 newMinByteSize) {
return m_workingMemory->ResizeBuffer(m_bufferIdx, newMinByteSize); }
70 KY_INLINE
void WorkingMemContainerBase::ReleaseMemory(
void* memory) { m_workingMemory->ReleaseMemory(memory); }
72 KY_INLINE
void WorkingMemContainerBase::ReleaseBuffer()
76 m_workingMemory->ReleaseBuffer(m_bufferIdx);
79 m_bufferIdx = BufferIndex_Invalid;
83 KY_INLINE WorkingMemContainerBase::~WorkingMemContainerBase()
90 #endif //Navigation_WorkingMemContainerBase_H
KyInt32 KyResult
Defines a type that can be returned by methods or functions in the Gameware Navigation SDK to indicat...
Definition: types.h:254
#define KY_NULL
Null value.
Definition: types.h:247
Definition: gamekitcrowddispersion.h:20
#define KY_SUCCESS
Shorthand for Kaim::Result::Success.
Definition: types.h:273
#define KY_ERROR
Shorthand for Kaim::Result::Failure.
Definition: types.h:272
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36