LCOV - code coverage report
Current view: top level - libs/bsw/asyncImpl/include/async - QueueNode.h (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 16 16
Test Date: 2026-02-24 11:21:15 Functions: 100.0 % 11 11

            Line data    Source code
       1              : // Copyright 2024 Accenture.
       2              : 
       3              : /**
       4              :  * \ingroup async
       5              :  */
       6              : #pragma once
       7              : 
       8              : namespace async
       9              : {
      10              : template<typename T>
      11              : class QueueNode
      12              : {
      13              : public:
      14              :     QueueNode();
      15              : 
      16              :     bool isEnqueued() const;
      17              : 
      18              :     T* getNext() const;
      19              :     void setNext(T* next);
      20              : 
      21              :     void enqueue();
      22              :     T* dequeue();
      23              : 
      24              : private:
      25              :     T* _next;
      26              : };
      27              : 
      28              : /**
      29              :  * Inline implementations.
      30              :  */
      31              : template<typename T>
      32           35 : inline QueueNode<T>::QueueNode() : _next(reinterpret_cast<T*>(1U))
      33           35 : {}
      34              : 
      35              : template<typename T>
      36           43 : inline bool QueueNode<T>::isEnqueued() const
      37              : {
      38           43 :     return _next != reinterpret_cast<T*>(1U);
      39              : }
      40              : 
      41              : template<typename T>
      42            7 : inline T* QueueNode<T>::getNext() const
      43              : {
      44            7 :     return _next;
      45              : }
      46              : 
      47              : template<typename T>
      48           14 : inline void QueueNode<T>::setNext(T* const next)
      49              : {
      50           14 :     _next = next;
      51           14 : }
      52              : 
      53              : template<typename T>
      54           24 : inline void QueueNode<T>::enqueue()
      55              : {
      56           24 :     _next = nullptr;
      57           24 : }
      58              : 
      59              : template<typename T>
      60           21 : inline T* QueueNode<T>::dequeue()
      61              : {
      62           21 :     T* const prevNext = _next;
      63           21 :     _next             = reinterpret_cast<T*>(1U);
      64           21 :     return prevNext;
      65              : }
      66              : 
      67              : } // namespace async
        

Generated by: LCOV version 2.0-1