[7297] Fixed profession spells sorting in trainer spell list at client.
[getmangos.git] / dep / ACE_wrappers / ace / Containers_T.inl
blob912c9df8bb8ec2c87da9915930c2fdb9fa99bd7a
1 // -*- C++ -*-
2 //
3 // $Id: Containers_T.inl 80826 2008-03-04 14:51:23Z wotte $
5 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
7 template <class T> ACE_INLINE int
8 ACE_Bounded_Stack<T>::is_empty (void) const
10   ACE_TRACE ("ACE_Bounded_Stack<T>::is_empty");
11   return this->top_ == 0;
14 template <class T> ACE_INLINE int
15 ACE_Bounded_Stack<T>::is_full (void) const
17   ACE_TRACE ("ACE_Bounded_Stack<T>::is_full");
18   return this->top_ >= this->size_;
21 template <class T> ACE_INLINE int
22 ACE_Bounded_Stack<T>::push (const T &new_item)
24   ACE_TRACE ("ACE_Bounded_Stack<T>::push");
25   if (this->is_full () == 0)
26     {
27       this->stack_[this->top_++] = new_item;
28       return 0;
29     }
30   else
31     return -1;
34 template <class T> ACE_INLINE int
35 ACE_Bounded_Stack<T>::pop (T &item)
37   ACE_TRACE ("ACE_Bounded_Stack<T>::pop");
38   if (this->is_empty () == 0)
39     {
40       item = this->stack_[--this->top_];
41       return 0;
42     }
43   else
44     return -1;
47 template <class T> ACE_INLINE int
48 ACE_Bounded_Stack<T>::top (T &item) const
50   ACE_TRACE ("ACE_Bounded_Stack<T>::top");
51   if (this->is_empty () == 0)
52     {
53       item = this->stack_[this->top_ - 1];
54       return 0;
55     }
56   else
57     return -1;
60 template <class T> ACE_INLINE size_t
61 ACE_Bounded_Stack<T>::size (void) const
63   return this->size_;
66 //----------------------------------------
68 template <class T, size_t ACE_SIZE> ACE_INLINE int
69 ACE_Fixed_Stack<T, ACE_SIZE>::is_empty (void) const
71   ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::is_empty");
72   return this->top_ == 0;
75 template <class T, size_t ACE_SIZE> ACE_INLINE int
76 ACE_Fixed_Stack<T, ACE_SIZE>::is_full (void) const
78   ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::is_full");
79   return this->top_ >= this->size_;
82 template <class T, size_t ACE_SIZE> ACE_INLINE int
83 ACE_Fixed_Stack<T, ACE_SIZE>::push (const T &new_item)
85   ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::push");
86   if (this->is_full () == 0)
87     {
88       this->stack_[this->top_++] = new_item;
89       return 0;
90     }
91   else
92     return -1;
95 template <class T, size_t ACE_SIZE> ACE_INLINE int
96 ACE_Fixed_Stack<T, ACE_SIZE>::pop (T &item)
98   ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::pop");
99   if (this->is_empty () == 0)
100     {
101       item = this->stack_[--this->top_];
102       return 0;
103     }
104   else
105     return -1;
108 template <class T, size_t ACE_SIZE> ACE_INLINE int
109 ACE_Fixed_Stack<T, ACE_SIZE>::top (T &item) const
111   ACE_TRACE ("ACE_Fixed_Stack<T, ACE_SIZE>::top");
112   if (this->is_empty () == 0)
113     {
114       item = this->stack_[this->top_ - 1];
115       return 0;
116     }
117   else
118     return -1;
121 template <class T, size_t ACE_SIZE> ACE_INLINE size_t
122 ACE_Fixed_Stack<T, ACE_SIZE>::size (void) const
124   return this->size_;
127 template <class T> ACE_INLINE int
128 ACE_Unbounded_Stack<T>::is_empty (void) const
130   //  ACE_TRACE ("ACE_Unbounded_Stack<T>::is_empty");
131   return this->head_ == this->head_->next_;
134 template <class T> ACE_INLINE int
135 ACE_Unbounded_Stack<T>::top (T &item) const
137   ACE_TRACE ("ACE_Unbounded_Stack<T>::top");
138   if (this->is_empty () == 0)
139     {
140       item = this->head_->next_->item_;
141       return 0;
142     }
143   else
144     return -1;
147 template <class T> ACE_INLINE int
148 ACE_Unbounded_Stack<T>::is_full (void) const
150   ACE_TRACE ("ACE_Unbounded_Stack<T>::is_full");
151   return 0; // ???
154 template <class T> ACE_INLINE size_t
155 ACE_Unbounded_Stack<T>::size (void) const
157   return this->cur_size_;
160 // ---
163 // ---
165 template <class T, size_t ACE_SIZE> ACE_INLINE int
166 ACE_Fixed_Set<T, ACE_SIZE>::is_empty (void) const
168   ACE_TRACE ("ACE_Fixed_Set<T>::is_empty");
169   return this->cur_size_ == 0;
172 template <class T, size_t ACE_SIZE> ACE_INLINE int
173 ACE_Fixed_Set<T, ACE_SIZE>::is_full (void) const
175   ACE_TRACE ("ACE_Fixed_Set<T, ACE_SIZE>::is_full");
176   return this->cur_size_ == this->max_size_;
179 // ---
181 template <class T> ACE_INLINE int
182 ACE_Bounded_Set<T>::is_empty (void) const
184   ACE_TRACE ("ACE_Bounded_Set<T>::is_empty");
185   return this->cur_size_ == 0;
188 template <class T> ACE_INLINE int
189 ACE_Bounded_Set<T>::is_full (void) const
191   ACE_TRACE ("ACE_Bounded_Set<T>::is_full");
192   return this->cur_size_ == this->max_size_;
195 // --
197 template <class T> ACE_INLINE int
198 ACE_Ordered_MultiSet_Iterator<T>::first (void)
200   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::first");
201   current_ = set_.head_;
203   return (current_ ? 1 : 0);
206 template <class T> ACE_INLINE int
207 ACE_Ordered_MultiSet_Iterator<T>::last (void)
209   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::last");
210   current_ = set_.tail_;
212   return (current_ ? 1 : 0);
215 template <class T> ACE_INLINE int
216 ACE_Ordered_MultiSet_Iterator<T>::advance (void)
218   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::advance");
220   current_ = current_ ? current_->next_ : 0;
222   return (current_ ? 1 : 0);
225 template <class T> ACE_INLINE int
226 ACE_Ordered_MultiSet_Iterator<T>::retreat (void)
228   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::retreat");
230   current_ = current_ ? current_->prev_ : 0;
232   return (current_ ? 1 : 0);
235 template <class T> ACE_INLINE int
236 ACE_Ordered_MultiSet_Iterator<T>::done (void) const
238   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::done");
240   return (current_ ? 0 : 1);
243 template <class T> ACE_INLINE void
244 ACE_Ordered_MultiSet_Iterator<T>::dump (void) const
246 #if defined (ACE_HAS_DUMP)
247 // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::dump");
248 #endif /* ACE_HAS_DUMP */
253 // --
255 template <class T> ACE_INLINE int
256 ACE_Ordered_MultiSet<T>::is_empty (void) const
258   ACE_TRACE ("ACE_Ordered_MultiSet<T>::is_empty");
259   return this->cur_size_ > 0 ? 0 : 1;
262 template <class T> ACE_INLINE size_t
263 ACE_Ordered_MultiSet<T>::size (void) const
265 // ACE_TRACE ("ACE_Ordered_MultiSet<T>::size");
266   return this->cur_size_;
269 // ****************************************************************
271 template <class T> ACE_INLINE
272 ACE_Array<T>::ACE_Array (size_t size,
273                          ACE_Allocator *alloc)
274   : ACE_Array_Base<T> (size, alloc)
278 template <class T> ACE_INLINE
279 ACE_Array<T>::ACE_Array (size_t size,
280                          const T &default_value,
281                          ACE_Allocator *alloc)
282   : ACE_Array_Base<T> (size, default_value, alloc)
286 // The copy constructor (performs initialization).
288 template <class T> ACE_INLINE
289 ACE_Array<T>::ACE_Array (const ACE_Array<T> &s)
290    : ACE_Array_Base<T> (s)
294 // Assignment operator (performs assignment).
296 template <class T> ACE_INLINE void
297 ACE_Array<T>::operator= (const ACE_Array<T> &s)
299   // Check for "self-assignment".
301   if (this != &s)
302     this->ACE_Array_Base<T>::operator= (s);
305 // Compare this array with <s> for inequality.
307 template <class T> ACE_INLINE bool
308 ACE_Array<T>::operator!= (const ACE_Array<T> &s) const
310   return !(*this == s);
313 // ****************************************************************
316 // ****************************************************************
318 template <class T> ACE_INLINE void
319 ACE_DLList<T>::operator= (const ACE_DLList<T> &l)
321   *(ACE_DLList_Base *) this = l;
324 template <class T> ACE_INLINE int
325 ACE_DLList<T>::get (T *&item, size_t index)
327   ACE_DLList_Node *node;
328   int result = ACE_DLList_Base::get (node, index);
329   if (result != -1)
330     item = (T *) node->item_;
331   return result;
334 template <class T> ACE_INLINE void
335 ACE_DLList<T>::dump (void) const
337 #if defined (ACE_HAS_DUMP)
338   ACE_DLList_Base::dump ();
339 #endif /* ACE_HAS_DUMP */
342 template <class T> ACE_INLINE int
343 ACE_DLList<T>::remove (ACE_DLList_Node *n)
345   int result = ACE_DLList_Base::remove (n);
346   ACE_DES_FREE (n,
347                 this->allocator_->free,
348                 ACE_DLList_Node);
349   return result;
352 template <class T> ACE_INLINE
353 ACE_DLList<T>::ACE_DLList (ACE_Allocator *alloc)
354   : ACE_DLList_Base (alloc)
358 template <class T> ACE_INLINE
359 ACE_DLList<T>::ACE_DLList (const ACE_DLList<T> &l)
360   : ACE_DLList_Base ((ACE_DLList<T> &) l)
364 template <class T> ACE_INLINE
365 ACE_DLList<T>::~ACE_DLList (void)
367   while (this->delete_head ()) ;
370 template <class T> ACE_INLINE int
371 ACE_DLList_Iterator<T>::remove (void)
373   ACE_DLList_Node *temp = this->ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::next ();
374   this->ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::advance ();
375   return list_->remove (temp);
378 template <class T> ACE_INLINE
379 ACE_DLList_Iterator<T>::ACE_DLList_Iterator (ACE_DLList<T> &l)
380   : ACE_Double_Linked_List_Iterator <ACE_DLList_Node> ((ACE_DLList_Base &)l),
381     list_ (&l)
385 template <class T> ACE_INLINE void
386 ACE_DLList_Iterator<T>::reset (ACE_DLList<T> &l)
388   list_ = &l;
389   this->ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::reset ((ACE_DLList_Base &)l);
392 template <class T> ACE_INLINE int
393 ACE_DLList_Iterator<T>::next (T *&ptr)
395   ACE_DLList_Node *temp =
396     ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::next ();
397   if (temp)
398     ptr = (T *) temp->item_;
399   return temp ? 1 : 0;
402 template <class T> ACE_INLINE T *
403 ACE_DLList_Iterator<T>::next (void) const
405   ACE_DLList_Node *temp = ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::next ();
406   return (T *) (temp ? temp->item_ : 0);
409 template <class T> ACE_INLINE int
410 ACE_DLList_Iterator<T>::advance (void)
412   return this->ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::advance ();
415 template <class T> ACE_INLINE void
416 ACE_DLList_Iterator<T>::dump (void) const
418 #if defined (ACE_HAS_DUMP)
419   ACE_Double_Linked_List_Iterator <ACE_DLList_Node>::dump ();
420 #endif /* ACE_HAS_DUMP */
424 template <class T> ACE_INLINE int
425 ACE_DLList_Reverse_Iterator<T>::remove (void)
427   ACE_DLList_Node *temp = ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::next ();
428   this->ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::advance ();
429   return list_->remove (temp);
432 template <class T> ACE_INLINE
433 ACE_DLList_Reverse_Iterator<T>::ACE_DLList_Reverse_Iterator (ACE_DLList<T> &l)
434   : ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node> ((ACE_DLList_Base &)l),
435     list_ (&l)
439 template <class T> ACE_INLINE void
440 ACE_DLList_Reverse_Iterator<T>::reset (ACE_DLList<T> &l)
442   list_ = &l;
443   this->ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::reset ((ACE_DLList_Base &)l);
446 template <class T> ACE_INLINE int
447 ACE_DLList_Reverse_Iterator<T>::advance (void)
449   return ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::advance ();
452 template <class T> ACE_INLINE int
453 ACE_DLList_Reverse_Iterator<T>::next (T *&ptr)
455   ACE_DLList_Node *temp =
456     ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::next ();
457   if (temp == 0)
458     return 0;
459   ptr = (T *) temp->item_;
460   return 1;
463 template <class T> ACE_INLINE T *
464 ACE_DLList_Reverse_Iterator<T>::next (void) const
466   ACE_DLList_Node *temp = ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::next ();
467   return (T *) (temp ? temp->item_ : 0);
471 template <class T> ACE_INLINE void
472 ACE_DLList_Reverse_Iterator<T>::dump (void) const
474 #if defined (ACE_HAS_DUMP)
475   ACE_Double_Linked_List_Reverse_Iterator <ACE_DLList_Node>::dump ();
476 #endif /* ACE_HAS_DUMP */
479 ACE_END_VERSIONED_NAMESPACE_DECL