Khangai Robot Play - Naive  01
THe naive play of the Khangai Robot
queue_custom.h
Go to the documentation of this file.
1 /*
2  * queue.h
3  *
4  * Created : 11/16/2018
5  * Author : n-is
6  * email : 073bex422.nischal@pcampus.edu.np
7  */
8 
9 #ifndef _QUEUE_CUSTOM_H_
10 #define _QUEUE_CUSTOM_H_
11 
12 #include "stm32f4xx_hal.h"
13 
14 template <class T, size_t q_size>
15 class Queue
16 {
17 public:
18  Queue():head_(0), tail_(0), curr_size_(0) { }
19  Queue(Queue &&) = default;
20  Queue(const Queue &) = default;
21  Queue &operator=(Queue &&) = default;
22  Queue &operator=(const Queue &) = default;
23  ~Queue() { }
24 
25  void insert(T elem) {
26  ++curr_size_;
27  queue_[head_++] = elem;
28  head_ %= q_size;
29  }
30 
31  T lookup() {
32  // if( curr_size_ ) {
33  --curr_size_;
34  T elem = queue_[tail_++];
35  tail_ %= q_size;
36  return elem;
37  // }
38  // return 0;
39  }
40 
41  uint32_t length() const { return curr_size_; }
42 
43  bool is_Empty() const { return length() == 0; }
44 
45 private:
46  uint32_t head_, tail_, curr_size_;
47  T queue_[q_size];
48 };
49 
50 #endif // !_QUEUE_CUSTOM_H_
uint32_t curr_size_
Definition: queue_custom.h:46
void insert(T elem)
Definition: queue_custom.h:25
Queue & operator=(Queue &&)=default
~Queue()
Definition: queue_custom.h:23
uint32_t head_
Definition: queue_custom.h:46
T lookup()
Definition: queue_custom.h:31
uint32_t tail_
Definition: queue_custom.h:46
T queue_[q_size]
Definition: queue_custom.h:47
bool is_Empty() const
Definition: queue_custom.h:43
uint32_t length() const
Definition: queue_custom.h:41
Definition: queue_custom.h:15
Queue()
Definition: queue_custom.h:18