Document return values
[ACE_TAO.git] / ACE / ace / Node.h
blob523cbec4b3539ed7ddc6ab2c254a92835f78e8be
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file Node.h
7 * @author Doug Schmidt
8 */
9 //=============================================================================
12 #ifndef ACE_NODE_H
13 #define ACE_NODE_H
14 #include /**/ "ace/pre.h"
16 #include /**/ "ace/config-all.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 # pragma once
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
24 // Forward declarations.
25 template <class T, class C> class ACE_Unbounded_Set_Ex;
26 template <class T, class C> class ACE_Unbounded_Set_Ex_Iterator;
27 template <class T, class C> class ACE_Unbounded_Set_Ex_Const_Iterator;
28 template <class T> class ACE_Unbounded_Queue;
29 template <class T> class ACE_Unbounded_Queue_Iterator;
30 template <class T> class ACE_Unbounded_Queue_Const_Iterator;
31 template <class T> class ACE_Unbounded_Stack;
32 template <class T> class ACE_Unbounded_Stack_Iterator;
34 /**
35 * @class ACE_Node
37 * @brief Implementation element in a Queue, Set, and Stack.
39 template<class T, class C = void>
40 class ACE_Node
42 public:
43 friend class ACE_Unbounded_Queue<T>;
44 friend class ACE_Unbounded_Queue_Iterator<T>;
45 friend class ACE_Unbounded_Queue_Const_Iterator<T>;
46 friend class ACE_Unbounded_Set_Ex<T, C>;
47 friend class ACE_Unbounded_Set_Ex_Iterator<T, C>;
48 friend class ACE_Unbounded_Set_Ex_Const_Iterator<T, C>;
49 friend class ACE_Unbounded_Stack<T>;
50 friend class ACE_Unbounded_Stack_Iterator<T>;
52 ~ACE_Node () = default;
54 ACE_ALLOC_HOOK_DECLARE;
56 private:
57 ACE_Node (const T &i, ACE_Node<T, C> *n);
58 ACE_Node (ACE_Node<T, C> *n = nullptr, int = 0);
59 ACE_Node (const ACE_Node<T, C> &n);
60 private:
61 void operator= (const ACE_Node<T, C> &) = delete;
63 private:
64 /// Pointer to next element in the list of ACE_Nodes.
65 ACE_Node<T, C> *next_;
67 /// Current value of the item in this node.
68 T item_;
71 ACE_END_VERSIONED_NAMESPACE_DECL
73 #include "ace/Node.cpp"
75 #include /**/ "ace/post.h"
76 #endif /* ACE_NODE_H */