gwnavruntime/querysystem/queryqueueblob.h Source File

queryqueueblob.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 
8 #pragma once
9 
12 
13 namespace Kaim
14 {
15 
16 class QueryQueue;
17 
18 class QueryQueueBlob
19 {
20  KY_ROOT_BLOB_CLASS(Runtime, QueryQueueBlob, 0)
21 public:
22  QueryQueueBlob()
23  : m_queueIndex(0)
24  , m_elementId(0)
25  , m_budgetInMilliseconds(0.0f)
26  , m_workingMemoryMaxSizeInBytes(0)
27  {}
28 
29  KyUInt32 m_queueIndex;
30  KyUInt32 m_elementId;
31  KyUInt32 m_queueArrayProcess;
32  KyFloat32 m_budgetInMilliseconds;
33  KyUInt32 m_workingMemoryMaxSizeInBytes;
34  BlobArray<char> m_queueName;
35 
36  // Stats
37  KyUInt32 m_queriesPopped;
38  KyUInt32 m_queriesInQueue;
39  KyFloat32 m_timeSpent;
40  KyFloat32 m_maxTimeSpent;
41  KyFloat32 m_averageTimeSpent;
42  KyUInt32 m_allocatedWorkingMemoryInBytes;
43 };
44 
45 inline void SwapEndianness(Endianness::Target e, QueryQueueBlob& self)
46 {
47  SwapEndianness(e, self.m_queueIndex);
48  SwapEndianness(e, self.m_elementId);
49  SwapEndianness(e, self.m_queueArrayProcess);
50  SwapEndianness(e, self.m_budgetInMilliseconds);
51  SwapEndianness(e, self.m_workingMemoryMaxSizeInBytes);
52  SwapEndianness(e, self.m_queueName);
53 
54  SwapEndianness(e, self.m_queriesPopped);
55  SwapEndianness(e, self.m_queriesInQueue);
56  SwapEndianness(e, self.m_timeSpent);
57  SwapEndianness(e, self.m_maxTimeSpent);
58  SwapEndianness(e, self.m_averageTimeSpent);
59  SwapEndianness(e, self.m_allocatedWorkingMemoryInBytes);
60 }
61 
62 class QueryQueueBlobBuilder : public BaseBlobBuilder< QueryQueueBlob >
63 {
64  KY_CLASS_WITHOUT_COPY(QueryQueueBlobBuilder)
65 public:
66  QueryQueueBlobBuilder(const QueryQueue* queryQueue, KyUInt32 queryQueueArrayIndex, KyUInt32 queryQueueIndex, KyUInt32 queueArrayProcess)
67  : m_queryQueue(queryQueue), m_queryQueueArrayIndex(queryQueueArrayIndex), m_queryQueueIndex(queryQueueIndex), m_queueArrayProcess(queueArrayProcess) {}
68 
69 private:
70  virtual void DoBuild();
71 
72  const QueryQueue* m_queryQueue;
73  KyUInt32 m_queryQueueArrayIndex;
74  KyUInt32 m_queryQueueIndex;
75  KyUInt32 m_queueArrayProcess;
76 };
77 
78 } // namespace Kaim
79 
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:196
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:27
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
float KyFloat32
float
Definition: types.h:32