2template <
typename MetaDataType>
8template <
typename MetaDataType>
12 m_Queue = rhs.m_Queue;
15template <
typename MetaDataType>
21template <
typename MetaDataType>
24 m_Queue = rhs.m_Queue;
27template <
typename MetaDataType>
30 return m_Queue[uiIndex];
33template <
typename MetaDataType>
36 return m_Queue[uiIndex];
39template <
typename MetaDataType>
42 return m_Queue.GetCount();
45template <
typename MetaDataType>
48 return m_Queue.IsEmpty();
51template <
typename MetaDataType>
57template <
typename MetaDataType>
60 m_Queue.Reserve(uiCount);
63template <
typename MetaDataType>
69template <
typename MetaDataType>
73 entry.m_pMessage = pMessage;
74 entry.m_MetaData = metaData;
79 m_Queue.PushBack(entry);
83template <
typename MetaDataType>
88 if (!m_Queue.IsEmpty())
90 Entry& entry = m_Queue.PeekFront();
91 out_pMessage = entry.m_pMessage;
92 out_metaData = entry.m_MetaData;
101template <
typename MetaDataType>
106 if (!m_Queue.IsEmpty())
108 Entry& entry = m_Queue.PeekFront();
109 out_pMessage = entry.m_pMessage;
110 out_metaData = entry.m_MetaData;
118template <
typename MetaDataType>
121 return m_Queue.PeekFront();
124template <
typename MetaDataType>
130template <
typename MetaDataType>
131template <
typename Comparer>
134 m_Queue.Sort(comparer);
137template <
typename MetaDataType>
143template <
typename MetaDataType>
150template <
typename MD,
typename A>
156template <
typename MD,
typename A>
162template <
typename MD,
typename A>
168template <
typename MD,
typename A>
174template <
typename MD,
typename A>
180template <
typename MD,
typename A>
Base class for all memory allocators.
Definition Allocator.h:23
Base class for all message types. Each message type has it's own id which is used to dispatch message...
Definition Message.h:22
Implementation of a message queue on top of a deque.
Definition MessageQueue.h:18
void operator=(const plMessageQueueBase &rhs)
Assignment operator.
Definition MessageQueue_inl.h:22
bool TryDequeue(plMessage *&out_pMessage, MetaDataType &out_metaData)
Dequeues the first element if the queue is not empty and returns true. Returns false if the queue is ...
Definition MessageQueue_inl.h:84
void Compact()
Tries to compact the array to avoid wasting memory.The resulting capacity is at least 'GetCount' (no ...
Definition MessageQueue_inl.h:64
bool IsEmpty() const
Returns true, if the queue does not contain any elements.
Definition MessageQueue_inl.h:46
void Dequeue()
Removes the first element from the queue. Not thread safe.
Definition MessageQueue_inl.h:125
void Clear()
Destructs all elements and sets the count to zero. Does not deallocate any data.
Definition MessageQueue_inl.h:52
~plMessageQueueBase()
Destructor.
Definition MessageQueue_inl.h:16
void Enqueue(plMessage *pMessage, const MetaDataType &metaData)
Enqueues the given message and meta-data. This method is thread safe.
Definition MessageQueue_inl.h:70
void Lock()
Acquires an exclusive lock on the queue. Do not use this method directly but use plLock instead.
Definition MessageQueue_inl.h:138
plUInt32 GetCount() const
Returns the number of active elements in the queue.
Definition MessageQueue_inl.h:40
bool TryPeek(plMessage *&out_pMessage, MetaDataType &out_metaData)
Gives the first element if the queue is not empty and returns true. Returns false if the queue is emp...
Definition MessageQueue_inl.h:102
Entry & operator[](plUInt32 uiIndex)
Returns the element at the given index. Not thread safe.
Definition MessageQueue_inl.h:28
void Reserve(plUInt32 uiCount)
Expands the queue so it can at least store the given capacity.
Definition MessageQueue_inl.h:58
void Unlock()
Releases a lock that has been previously acquired. Do not use this method directly but use plLock ins...
Definition MessageQueue_inl.h:144
plMessageQueueBase(plAllocator *pAllocator)
No memory is allocated during construction.
Definition MessageQueue_inl.h:3
Entry & Peek()
Returns the first element in the queue. Not thread safe.
Definition MessageQueue_inl.h:119
void Sort(const Comparer &comparer)
Sort with explicit comparer. Not thread safe.
Definition MessageQueue.h:97
Definition MessageQueue.h:21