Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_Unbounded_Stack Class Template Reference

Implement a generic LIFO abstract data type. More...

#include <Containers_T.h>

Collaboration diagram for ACE_Unbounded_Stack:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ACE_Unbounded_Stack_Iterator<
T > 
ITERATOR

Public Methods

 ACE_Unbounded_Stack (ACE_Allocator *alloc=0)
 Initialize a new stack so that it is empty. Use user defined allocation strategy if specified. More...

 ACE_Unbounded_Stack (const ACE_Unbounded_Stack< T > &s)
 The copy constructor (performs initialization). More...

void operator= (const ACE_Unbounded_Stack< T > &s)
 Assignment operator (performs assignment). More...

 ~ACE_Unbounded_Stack (void)
 Perform actions needed when stack goes out of scope. More...

int push (const T &new_item)
int pop (T &item)
int top (T &item) const
int is_empty (void) const
 Returns 1 if the container is empty, otherwise returns 0. More...

int is_full (void) const
 Returns 1 if the container is full, otherwise returns 0. More...

int insert (const T &new_item)
int remove (const T &item)
 Remove <item> from the Stack. Returns 0 if it removes the item, -1 if it can't find the item, and -1 if a failure occurs. More...

int find (const T &item) const
 Finds if <item> occurs the set. Returns 0 if finds, else -1. More...

size_t size (void) const
 The number of items in the stack. More...

void dump (void) const
 Dump the state of an object. More...


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...


Private Methods

void delete_all_nodes (void)
 Delete all the nodes in the stack. More...

void copy_all_nodes (const ACE_Unbounded_Stack< T > &s)
 Copy all nodes from <s> to <this>. More...


Private Attributes

ACE_Node< T > * head_
 Head of the linked list of Nodes. More...

size_t cur_size_
 Current size of the stack. More...

ACE_Allocatorallocator_
 Allocation strategy of the stack. More...


Friends

class ACE_Unbounded_Stack_Iterator< T >

Detailed Description

template<class T>
class ACE_Unbounded_Stack< T >

Implement a generic LIFO abstract data type.

This implementation of an unbounded Stack uses a linked list. If you use the <insert> or <remove> methods you should keep in mind that duplicate entries aren't allowed. In general, therefore, you should avoid the use of these methods since they aren't really part of the ADT stack.


Member Typedef Documentation

template<class T>
typedef ACE_Unbounded_Stack_Iterator<T> ACE_Unbounded_Stack::ITERATOR
 


Constructor & Destructor Documentation

template<class T>
ACE_Unbounded_Stack< T >::ACE_Unbounded_Stack ACE_Allocator   alloc = 0
 

Initialize a new stack so that it is empty. Use user defined allocation strategy if specified.

template<class T>
ACE_Unbounded_Stack< T >::ACE_Unbounded_Stack const ACE_Unbounded_Stack< T > &    s
 

The copy constructor (performs initialization).

template<class T>
ACE_Unbounded_Stack< T >::~ACE_Unbounded_Stack void   
 

Perform actions needed when stack goes out of scope.


Member Function Documentation

template<class T>
void ACE_Unbounded_Stack< T >::copy_all_nodes const ACE_Unbounded_Stack< T > &    s [private]
 

Copy all nodes from <s> to <this>.

template<class T>
void ACE_Unbounded_Stack< T >::delete_all_nodes void    [private]
 

Delete all the nodes in the stack.

template<class T>
void ACE_Unbounded_Stack< T >::dump void    const
 

Dump the state of an object.

template<class T>
int ACE_Unbounded_Stack< T >::find const T &    item const
 

Finds if <item> occurs the set. Returns 0 if finds, else -1.

template<class T>
int ACE_Unbounded_Stack< T >::insert const T &    item
 

Insert <new_item> into the Stack at the head (but doesn't allow duplicates). Returns -1 if failures occur, 1 if item is already present (i.e., no duplicates are allowed), else 0.

template<class T>
ACE_INLINE int ACE_Unbounded_Stack< T >::is_empty void    const
 

Returns 1 if the container is empty, otherwise returns 0.

template<class T>
ACE_INLINE int ACE_Unbounded_Stack< T >::is_full void    const
 

Returns 1 if the container is full, otherwise returns 0.

template<class T>
void ACE_Unbounded_Stack< T >::operator= const ACE_Unbounded_Stack< T > &    s
 

Assignment operator (performs assignment).

template<class T>
int ACE_Unbounded_Stack< T >::pop T &    item
 

Remove and return the top stack item. Returns -1 if the stack is already empty, 0 if the stack is not already empty, and -1 if failure occurs.

template<class T>
int ACE_Unbounded_Stack< T >::push const T &    new_item
 

Place a new item on top of the stack. Returns -1 if the stack is already full, 0 if the stack is not already full, and -1 if failure occurs.

template<class T>
int ACE_Unbounded_Stack< T >::remove const T &    item
 

Remove <item> from the Stack. Returns 0 if it removes the item, -1 if it can't find the item, and -1 if a failure occurs.

template<class T>
ACE_INLINE size_t ACE_Unbounded_Stack< T >::size void    const
 

The number of items in the stack.

template<class T>
ACE_INLINE int ACE_Unbounded_Stack< T >::top T &    item const
 

Return top stack item without removing it. Returns -1 if the stack is already empty, 0 if the stack is not already empty, and -1 if failure occurs.


Friends And Related Function Documentation

template<class T>
friend class ACE_Unbounded_Stack_Iterator< T > [friend]
 


Member Data Documentation

template<class T>
ACE_Unbounded_Stack::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

template<class T>
ACE_Allocator* ACE_Unbounded_Stack::allocator_ [private]
 

Allocation strategy of the stack.

template<class T>
size_t ACE_Unbounded_Stack::cur_size_ [private]
 

Current size of the stack.

template<class T>
ACE_Node<T>* ACE_Unbounded_Stack::head_ [private]
 

Head of the linked list of Nodes.


The documentation for this class was generated from the following files:
Generated on Sun Feb 17 17:44:39 2002 for ACE by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001