#include <ace/Stack.h> template<class T> class ACE_Unbounded_Stack {
public:
ACE_Unbounded_Stack (void);
ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s);
void operator= (const ACE_Unbounded_Stack<T> &s);
~ACE_Unbounded_Stack (void);
void push (const T &new_item);
void pop (T &item);
void top (T &item) const;
int is_empty (void) const;
int is_full (void) const;
static void delete_free_list (void);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
void delete_all_nodes (void);
void copy_all_nodes (const ACE_Unbounded_Stack<T> &s);
ACE_Stack_Node<T> *head_;
ACE_Stack_Node<T> *last_resort_;
};
ACE_Unbounded_Stack (void);
ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s);
void operator= (const ACE_Unbounded_Stack<T> &s);
~ACE_Unbounded_Stack (void);
void push (const T &new_item);
void pop (T &item);
void top (T &item) const;
int is_empty (void) const;
int is_full (void) const;
static void delete_free_list (void);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;