/* -*- C++ -*- */ //============================================================================= /** * @file Node.h * * $Id$ * * @author Doug Schmidt */ //============================================================================= #ifndef ACE_NODE_H #define ACE_NODE_H #include /**/ "ace/pre.h" #include "ace/config-all.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ // Forward declarations. template class ACE_Unbounded_Set; template class ACE_Unbounded_Set_Iterator; template class ACE_Unbounded_Set_Const_Iterator; template class ACE_Unbounded_Set_Ex; template class ACE_Unbounded_Set_Ex_Iterator; template class ACE_Unbounded_Set_Ex_Const_Iterator; template class ACE_Unbounded_Queue; template class ACE_Unbounded_Queue_Iterator; template class ACE_Unbounded_Queue_Const_Iterator; template class ACE_Unbounded_Stack; template class ACE_Unbounded_Stack_Iterator; /** * @class ACE_Node * * @brief Implementation element in a Queue, Set, and Stack. */ template class ACE_Node { public: friend class ACE_Unbounded_Queue; friend class ACE_Unbounded_Queue_Iterator; friend class ACE_Unbounded_Queue_Const_Iterator; friend class ACE_Unbounded_Set; friend class ACE_Unbounded_Set_Iterator; friend class ACE_Unbounded_Set_Const_Iterator; friend class ACE_Unbounded_Set_Ex; friend class ACE_Unbounded_Set_Ex_Iterator; friend class ACE_Unbounded_Set_Ex_Const_Iterator; friend class ACE_Unbounded_Stack; friend class ACE_Unbounded_Stack_Iterator; # if ! defined (ACE_HAS_BROKEN_NOOP_DTORS) /// This isn't necessary, but it keeps some compilers happy. ~ACE_Node (void); # endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */ private: // = Initialization methods ACE_Node (const T &i, ACE_Node *n); ACE_Node (ACE_Node *n = 0, int = 0); ACE_Node (const ACE_Node &n); /// Pointer to next element in the list of s. ACE_Node *next_; /// Current value of the item in this node. T item_; /// Flag that indicates whether this node is deleted. int deleted_; }; #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) #include "ace/Node.cpp" #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) #pragma implementation ("Node.cpp") #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ #include /**/ "ace/post.h" #endif /* ACE_NODE_H */