summaryrefslogtreecommitdiff
path: root/ace/Stack.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Stack.h')
-rw-r--r--ace/Stack.h285
1 files changed, 0 insertions, 285 deletions
diff --git a/ace/Stack.h b/ace/Stack.h
deleted file mode 100644
index 3b8e85a6ecd..00000000000
--- a/ace/Stack.h
+++ /dev/null
@@ -1,285 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Stack.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (ACE_STACK_H)
-#define ACE_STACK_H
-
-#include "ace/ACE.h"
-
-template <class T>
-class ACE_Bounded_Stack
- // = TITLE
- // Implement a generic LIFO abstract data type.
- //
- // = DESCRIPTION
- // This implementation of a Stack uses a bounded array
- // that is allocated dynamically.
-{
-public:
- // = Initialization, assignemnt, and termination methods.
- ACE_Bounded_Stack (size_t size);
- // Initialize a new stack so that it is empty.
-
- ACE_Bounded_Stack (const ACE_Bounded_Stack<T> &s);
- // The copy constructor (performs initialization).
-
- void operator= (const ACE_Bounded_Stack<T> &s);
- // Assignment operator (performs assignment).
-
- ~ACE_Bounded_Stack (void);
- // Perform actions needed when stack goes out of scope.
-
- // = Classic Stack operations.
-
- void push (const T &new_item);
- // Place a new item on top of the stack. Does not check if the
- // stack is full.
-
- void pop (T &item);
- // Remove and return the top stack item. Does not check if stack
- // is full.
-
- void top (T &item) const;
- // Return top stack item without removing it. Does not check if
- // stack is empty.
-
- // = Check boundary conditions for Stack operations.
-
- int is_empty (void) const;
- // Returns 1 if the stack is empty, otherwise returns 0.
-
- int is_full (void) const;
- // Returns 1 if the stack is full, otherwise returns 0.
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- 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.
-};
-
-//----------------------------------------
-
-template <class T, size_t SIZE>
-class ACE_Fixed_Stack
- // = TITLE
- // Implement a generic LIFO abstract data type.
- //
- // = DESCRIPTION
- // This implementation of a Stack uses a fixed array
- // with the size fixed at instantiation time.
-{
-public:
- // = Initialization, assignemnt, and termination methods.
- ACE_Fixed_Stack (void);
- // Initialize a new stack so that it is empty.
-
- ACE_Fixed_Stack (const ACE_Fixed_Stack<T, SIZE> &s);
- // The copy constructor (performs initialization).
-
- void operator= (const ACE_Fixed_Stack<T, SIZE> &s);
- // Assignment operator (performs assignment).
-
- ~ACE_Fixed_Stack (void);
- // Perform actions needed when stack goes out of scope.
-
- // = Classic Stack operations.
-
- void push (const T &new_item);
- // Place a new item on top of the stack. Does not check if the
- // stack is full.
-
- void pop (T &item);
- // Remove and return the top stack item. Does not check if stack
- // is full.
-
- void top (T &item) const;
- // Return top stack item without removing it. Does not check if
- // stack is empty.
-
- // = Check boundary conditions for Stack operations.
-
- int is_empty (void) const;
- // Returns 1 if the stack is empty, otherwise returns 0.
-
- int is_full (void) const;
- // Returns 1 if the stack is full, otherwise returns 0.
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- size_t size_;
- // Size of the dynamically allocated data.
-
- size_t top_;
- // Keeps track of the current top of stack.
-
- T stack_[SIZE];
- // Holds the stack's contents.
-};
-
-//----------------------------------------
-
-// Forward declaration (use the "Cheshire Cat" approach to information
-// hiding).
-template <class T>
-class ACE_Stack_Node;
-
-template <class T>
-class ACE_Unbounded_Stack
- // = TITLE
- // Implement a generic LIFO abstract data type.
- //
- // = DESCRIPTION
- // This implementation of an unbounded Stack uses a linked list.
-{
-public:
- // = Initialization, assignemnt, and termination methods.
- ACE_Unbounded_Stack (void);
- // Initialize a new stack so that it is empty.
-
- ACE_Unbounded_Stack (const ACE_Unbounded_Stack<T> &s);
- // The copy constructor (performs initialization).
-
- void operator= (const ACE_Unbounded_Stack<T> &s);
- // Assignment operator (performs assignment).
-
- ~ACE_Unbounded_Stack (void);
- // Perform actions needed when stack goes out of scope.
-
- // = Classic Stack operations.
-
- void push (const T &new_item);
- // Place a new item on top of the stack. Does not check if the
- // stack is full.
-
- void pop (T &item);
- // Remove and return the top stack item. Does not check if stack
- // is full.
-
- void top (T &item) const;
- // Return top stack item without removing it. Does not check if
- // stack is empty.
-
- // = Check boundary conditions for Stack operations.
-
- int is_empty (void) const;
- // Returns 1 if the stack is empty, otherwise returns 0.
-
- int is_full (void) const;
- // Returns 1 if the stack is full, otherwise returns 0.
-
- static void delete_free_list (void);
- // Returns all dynamic memory on the free list to the free store.
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- void delete_all_nodes (void);
- // Delete all the nodes in the stack.
-
- void copy_all_nodes (const ACE_Unbounded_Stack<T> &s);
- // Copy all nodes from <s> to <this>.
-
- ACE_Stack_Node<T> *head_;
- // Head of the linked list of Nodes.
-
- ACE_Stack_Node<T> *last_resort_;
- // Use this node when all memory is exhausted...
-};
-
-// Forward declaration (use the "Cheshire Cat" approach to information
-// hiding).
-template <class T>
-class ACE_Queue_Node;
-
-template <class TYPE>
-class ACE_Unbounded_Queue
- // = TITLE
- // A Queue of "infinite" length.
-
- // = DESCRIPTION
- // Implemented using dynamic memory...
-{
-public:
- ACE_Unbounded_Queue (void);
- // construction.
-
- ~ACE_Unbounded_Queue (void);
- // construction.
-
- int enqueue (const TYPE &new_item);
- // Addes <new_item> to the queue. Returns 0 on success -1 on failure.
-
- int dequeue (TYPE &item);
- // Removes and returns the first <item> on the queue. Returns 0 on
- // success -1 if nothing was found.
-
- int peek (TYPE &item);
- // Returns the first <item> on the queue without removing it.
- // Returns 0 on success -1 if nothing was found.
-
- int size (void) const;
- // The size of the queue
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
- ACE_Queue_Node<TYPE> *head_;
- // Head of the Queue.
-
- ACE_Queue_Node<TYPE> *tail_;
- // Tail of the Queue.
-
- size_t cur_size_;
- // Current size of the queue.
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Stack.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Stack.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Stack.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_STACK_H */