CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
Loading...
Searching...
No Matches
cmlabs::utils::WaitQueuePointer< T > Class Template Reference

WaitQueue specialization for owned heap pointers: clear()/destructor delete remaining entries. More...

#include <Utils.h>

Inheritance diagram for cmlabs::utils::WaitQueuePointer< T >:
[legend]
Collaboration diagram for cmlabs::utils::WaitQueuePointer< T >:
[legend]

Public Member Functions

 WaitQueuePointer ()
virtual ~WaitQueuePointer ()
waitForAndTakeFirst (uint32 timeoutMS)
 Convenience overload: dequeue with timeout, returning NULL instead of using an out-parameter.
virtual bool clear ()
 Delete every queued pointer and empty the queue.
Public Member Functions inherited from cmlabs::utils::WaitQueue< T >
 WaitQueue ()
virtual ~WaitQueue ()
bool add (T entry)
 Append an entry and wake one waiting consumer.
uint32 getCount ()
 Number of queued entries.
bool peekFirst (T &first)
 Copy the front entry without removing it.
bool takeFirst (T &first)
 Remove and return the front entry.
bool waitForAndPeekFirst (T &first, uint32 timeoutMS)
 Block up to timeoutMS for an entry and peek it without removal.
bool waitForAndTakeFirst (T &first, uint32 timeoutMS)
 Block up to timeoutMS for an entry and dequeue it.

Additional Inherited Members

Protected Attributes inherited from cmlabs::utils::WaitQueue< T >
Mutex mutex
Semaphore semaphore
std::queue< T > internalQueue

Detailed Description

template<typename T>
class cmlabs::utils::WaitQueuePointer< T >

WaitQueue specialization for owned heap pointers: clear()/destructor delete remaining entries.

Template Parameters
TPointer type (e.g. Message*). NULL is returned on timeout, so NULL must not be a valid element.

Definition at line 823 of file Utils.h.

Constructor & Destructor Documentation

◆ WaitQueuePointer()

template<typename T>
cmlabs::utils::WaitQueuePointer< T >::WaitQueuePointer ( )
inline

Definition at line 825 of file Utils.h.

◆ ~WaitQueuePointer()

template<typename T>
virtual cmlabs::utils::WaitQueuePointer< T >::~WaitQueuePointer ( )
inlinevirtual

Definition at line 826 of file Utils.h.

References clear().

Member Function Documentation

◆ clear()

template<typename T>
virtual bool cmlabs::utils::WaitQueuePointer< T >::clear ( )
inlinevirtual

Delete every queued pointer and empty the queue.

Returns
true on success.

Reimplemented from cmlabs::utils::WaitQueue< T >.

Definition at line 839 of file Utils.h.

References cmlabs::utils::WaitQueue< T >::internalQueue, and cmlabs::utils::WaitQueue< T >::mutex.

Referenced by ~WaitQueuePointer().

◆ waitForAndTakeFirst()

template<typename T>
T cmlabs::utils::WaitQueuePointer< T >::waitForAndTakeFirst ( uint32 timeoutMS)
inline

Convenience overload: dequeue with timeout, returning NULL instead of using an out-parameter.

Parameters
timeoutMSMax wait in ms.
Returns
Front pointer (ownership transferred) or NULL on timeout.

Definition at line 830 of file Utils.h.

References cmlabs::utils::WaitQueue< T >::waitForAndTakeFirst().


The documentation for this class was generated from the following file:
  • /home/ubuntu/c/partner/psyclone2/CMSDK/include/Utils.h