GHS
Leader Election Based on GHS Minimum Spanning Tree
static_queue.h
Go to the documentation of this file.
1 
39 #ifndef STATIC_QUEUE_H
40 #define STATIC_QUEUE_H
41 
42 #include "le/errno.h"
43 
47 namespace seque{
48 
59  template<typename T, unsigned int N>
61  {
62  public:
63 
64 
65 
69  StaticQueue();
70  ~StaticQueue();
71 
75  bool is_full() const;
76 
80  bool is_empty() const;
81 
85  unsigned int size() const;
86 
94  le::Errno front(T &out_item) const;
95 
101  le::Errno pop();
102 
117  le::Errno pop(T &out_item);
118 
126  le::Errno push(const T item);
127 
137  le::Errno at(const unsigned int idx, T &out_item ) const;
138 
139  le::Errno clear();
140 
141 
142 
143  private:
144  T circle_buf[N];
145  unsigned int idx_front;
146  unsigned int idx_back;
147  unsigned int count;
148 
149  };
150 
151 
153 
154 }
155 
156 #endif
static_queue_impl.hpp
Static Queue Implementation.
le::Errno
Errno
Definition: errno.h:49
seque::StaticQueue::StaticQueue
StaticQueue()
Definition: static_queue_impl.hpp:43
seque::StaticQueue
a static-sized single-ended queue for use in GhsState
Definition: static_queue.h:60
seque::StaticQueue::at
le::Errno at(const unsigned int idx, T &out_item) const
Definition: static_queue_impl.hpp:126
seque
Definition: static_queue.h:47
seque::StaticQueue::is_empty
bool is_empty() const
Definition: static_queue_impl.hpp:59
seque::StaticQueue::pop
le::Errno pop()
Definition: static_queue_impl.hpp:96
seque::StaticQueue::push
le::Errno push(const T item)
Definition: static_queue_impl.hpp:69
seque::StaticQueue::front
le::Errno front(T &out_item) const
Definition: static_queue_impl.hpp:91
seque::StaticQueue::is_full
bool is_full() const
Definition: static_queue_impl.hpp:54
seque::StaticQueue::size
unsigned int size() const
Definition: static_queue_impl.hpp:64
errno.h
Provides error codes for all classes / functions.