YAPOG  0.0.1
Yet Another Pokemon Online Game
Queue.hxx
Go to the documentation of this file.
1 #ifndef YAPOG_QUEUE_HXX
2 # define YAPOG_QUEUE_HXX
3 
4 namespace yap
5 {
6  namespace collection
7  {
8  template <typename T>
9  inline Queue<T>::Queue ()
10  : data_ ()
11  {
12  }
13 
14  template <typename T>
15  inline Queue<T>::Queue (const Queue<T>& copy)
16  : data_ (copy.data_)
17  {
18  }
19 
20  template <typename T>
21  inline Queue<T>& Queue<T>::operator= (const Queue<T>& copy)
22  {
23  if (&copy == this)
24  return *this;
25 
26  data_ = copy.data_;
27 
28  return *this;
29  }
30 
31  template <typename T>
32  inline void Queue<T>::Enqueue (const T& data)
33  {
34  data_.push (data);
35  }
36 
37  template <typename T>
38  inline T& Queue<T>::Dequeue (T& data)
39  {
40  data = data_.front ();
41 
42  data_.pop ();
43 
44  return data;
45  }
46 
47  template <typename T>
48  inline bool Queue<T>::IsEmpty () const
49  {
50  return data_.empty ();
51  }
52 
53  template <typename T>
54  inline typename Queue<T>::SizeType Queue<T>::Count () const
55  {
56  return data_.size ();
57  }
58 
59  template <typename T>
60  inline void Queue<T>::Clear ()
61  {
62  InnerType ().swap (data_);
63  }
64  } // namespace collection
65 } // namespace yap
66 
67 #endif // YAPOG_QUEUE_HXX