STXXL  1.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stxxl::migrating_stack< CritSize, ExternalStack, InternalStack > Class Template Reference

Detailed Description

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
class stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >

A stack that migrates from internal memory to external when its size exceeds a certain threshold.

For semantics of the methods see documentation of the STL std::stack.

Definition at line 825 of file stack.h.

+ Inheritance diagram for stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >:
+ Collaboration diagram for stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >:

Public Types

enum  { blocks_per_page = cfg::blocks_per_page, block_size = cfg::block_size }
 
typedef ExternalStack::cfg cfg
 
typedef ExternalStack ext_stack_type
 
typedef InternalStack int_stack_type
 
typedef cfg::size_type size_type
 type for sizes (64-bit) More...
 
typedef cfg::value_type value_type
 type of the elements stored in the stack More...
 

Public Member Functions

Constructors/Destructors
 migrating_stack ()
 Default constructor: creates empty stack. More...
 
virtual ~migrating_stack ()
 
Accessor Functions
void swap (migrating_stack &obj)
 
value_typetop ()
 Return mutable reference to the element at the top of the stack. Precondition: stack is not empty(). More...
 
const value_typetop () const
 Return constant reference to the element at the top of the stack. Precondition: stack is not empty(). More...
 
void push (const value_type &val)
 Inserts an element at the top of the stack. Postconditions: size() is incremented by 1, and top() is the inserted element. More...
 
void pop ()
 Removes the element at the top of the stack. Precondition: stack is not empty(). Postcondition: size() is decremented. More...
 
Miscellaneous
bool internal () const
 Returns true if current implementation is internal, otherwise false. More...
 
bool external () const
 Returns true if current implementation is external, otherwise false. More...
 
Capacity
bool empty () const
 Returns true if the stack is empty. More...
 
size_type size () const
 Returns the number of elements contained in the stack. More...
 

Private Types

enum  { critical_size = CritSize }
 

Private Member Functions

template<class stack_type >
 migrating_stack (const stack_type &stack_)
 Copy-construction from a another stack of any type. More...
 
- Private Member Functions inherited from stxxl::noncopyable
 noncopyable ()
 

Private Attributes

ext_stack_typeext_impl
 
int_stack_typeint_impl
 

Member Typedef Documentation

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
typedef ExternalStack::cfg stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::cfg

Definition at line 828 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
typedef ExternalStack stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::ext_stack_type

Definition at line 839 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
typedef InternalStack stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::int_stack_type

Definition at line 838 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
typedef cfg::size_type stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::size_type

type for sizes (64-bit)

Definition at line 832 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
typedef cfg::value_type stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::value_type

type of the elements stored in the stack

Definition at line 830 of file stack.h.

Member Enumeration Documentation

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
anonymous enum
Enumerator
blocks_per_page 
block_size 

Definition at line 833 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
anonymous enum
private
Enumerator
critical_size 

Definition at line 842 of file stack.h.

Constructor & Destructor Documentation

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
template<class stack_type >
stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::migrating_stack ( const stack_type &  stack_)
private

Copy-construction from a another stack of any type.

Warning
not implemented yet!
template<unsigned_type CritSize, class ExternalStack, class InternalStack>
stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::migrating_stack ( )
inline

Default constructor: creates empty stack.

Definition at line 857 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
virtual stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::~migrating_stack ( )
inlinevirtual

Definition at line 861 of file stack.h.

Member Function Documentation

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
bool stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::empty ( ) const
inline

Returns true if the stack is empty.

Definition at line 902 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
bool stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::external ( ) const
inline

Returns true if current implementation is external, otherwise false.

Definition at line 890 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
bool stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::internal ( ) const
inline

Returns true if current implementation is internal, otherwise false.

Definition at line 884 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
void stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::pop ( )
inline

Removes the element at the top of the stack. Precondition: stack is not empty(). Postcondition: size() is decremented.

Definition at line 958 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
void stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::push ( const value_type val)
inline

Inserts an element at the top of the stack. Postconditions: size() is incremented by 1, and top() is the inserted element.

Definition at line 937 of file stack.h.

References UNLIKELY.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
size_type stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::size ( ) const
inline

Returns the number of elements contained in the stack.

Definition at line 908 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
void stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::swap ( migrating_stack< CritSize, ExternalStack, InternalStack > &  obj)
inline
template<unsigned_type CritSize, class ExternalStack, class InternalStack>
value_type& stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::top ( )
inline

Return mutable reference to the element at the top of the stack. Precondition: stack is not empty().

Definition at line 921 of file stack.h.

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
const value_type& stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::top ( ) const
inline

Return constant reference to the element at the top of the stack. Precondition: stack is not empty().

Definition at line 929 of file stack.h.

Member Data Documentation

template<unsigned_type CritSize, class ExternalStack, class InternalStack>
ext_stack_type* stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::ext_impl
private
template<unsigned_type CritSize, class ExternalStack, class InternalStack>
int_stack_type* stxxl::migrating_stack< CritSize, ExternalStack, InternalStack >::int_impl
private

The documentation for this class was generated from the following file: