ACE
6.0.6

Implement a generic LIFO abstract data type. More...
#include <Containers_T.h>
Public Member Functions  
ACE_Bounded_Stack (size_t size)  
Initialize a new empty stack with the provided size..  
ACE_Bounded_Stack (const ACE_Bounded_Stack< T > &s)  
Initialize the stack to be a copy of the stack provided.  
void  operator= (const ACE_Bounded_Stack< T > &s) 
Assignment operator.  
~ACE_Bounded_Stack (void)  
Perform actions needed when stack goes out of scope.  
int  push (const T &new_item) 
Add an element to the top of the stack.  
int  pop (T &item) 
Remove an item from the top of stack.  
int  top (T &item) const 
Examine the contents of the top of stack.  
int  is_empty (void) const 
Returns 1 if the container is empty, otherwise returns 0.  
int  is_full (void) const 
Returns 1 if the container is full, otherwise returns 0.  
size_t  size (void) const 
The number of items in the stack.  
void  dump (void) const 
Dump the state of an object.  
Public Attributes  
ACE_ALLOC_HOOK_DECLARE  
Declare the dynamic allocation hooks.  
Private Attributes  
size_t  size_ 
Size of the dynamically allocated data.  
size_t  top_ 
Keeps track of the current top of stack.  
T *  stack_ 
Holds the stack's contents. 
Implement a generic LIFO abstract data type.
This implementation of a Stack uses a bounded array that is allocated dynamically. The Stack interface provides the standard constant time push, pop, and top operations.
Requirements and Performance Characteristics
ACE_Bounded_Stack::ACE_Bounded_Stack  (  size_t  size  ) 
Initialize a new empty stack with the provided size..
Initialize and allocate space for a new Bounded_Stack with the provided size.
ACE_Bounded_Stack::ACE_Bounded_Stack  (  const ACE_Bounded_Stack< T > &  s  ) 
Initialize the stack to be a copy of the stack provided.
Initialize the stack to be an exact copy of the Bounded_Stack provided as a parameter.
ACE_Bounded_Stack::~ACE_Bounded_Stack  (  void  ) 
Perform actions needed when stack goes out of scope.
Deallocate the memory used by the Bounded_Stack.
void ACE_Bounded_Stack::dump  (  void  )  const 
Dump the state of an object.
int ACE_Bounded_Stack::is_empty  (  void  )  const [inline] 
Returns 1 if the container is empty, otherwise returns 0.
Performs constant time check to determine if the stack is empty.
int ACE_Bounded_Stack::is_full  (  void  )  const [inline] 
Returns 1 if the container is full, otherwise returns 0.
Performs constant time check to determine if the stack is at capacity.
void ACE_Bounded_Stack::operator=  (  const ACE_Bounded_Stack< T > &  s  ) 
Assignment operator.
Perform a deep copy operation using the Bounded_Stack parameter. If the capacity of the lhs isn't sufficient for the rhs, then the underlying data structure will be reallocated to accomadate the larger number of elements.
int ACE_Bounded_Stack::pop  (  T &  item  )  [inline] 
Remove an item from the top of stack.
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.
int ACE_Bounded_Stack::push  (  const T &  new_item  )  [inline] 
Add an element to the top of the stack.
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.
size_t ACE_Bounded_Stack::size  (  void  )  const [inline] 
The number of items in the stack.
Return the number of items currently in the stack.
int ACE_Bounded_Stack::top  (  T &  item  )  const [inline] 
Examine the contents of the top of stack.
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.
Declare the dynamic allocation hooks.
size_t ACE_Bounded_Stack::size_ [private] 
Size of the dynamically allocated data.
T* ACE_Bounded_Stack::stack_ [private] 
Holds the stack's contents.
size_t ACE_Bounded_Stack::top_ [private] 
Keeps track of the current top of stack.