STXXL  1.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Block Management Layer

Group of classes which help controlling external memory space, managing disks, and allocating and deallocating blocks of external storage. More...

+ Collaboration diagram for Block Management Layer:

Modules

 Allocation Functors
 Standard allocation strategies encapsulated in functors.
 
 Block Scheduling Sublayer
 Group of classes which help in scheduling sequences of read and write requests via prefetching and buffered writing.
 
 Internals
 Internals and support classes.
 

Namespaces

 stxxl::helper
 
 stxxl::mng_local
 Block Manager Internals.
 

Classes

class  stxxl::array_of_sequences_iterator< array_type, value_type, modulo >
 
struct  stxxl::BID< SIZE >
 Block identifier class. More...
 
struct  stxxl::BID< 0 >
 Specialization of block identifier class (BID) for variable size block size. More...
 
class  stxxl::BIDArray< BLK_SIZE >
 
class  stxxl::block_manager
 Block manager class. More...
 
class  stxxl::blocked_index< modulo >
 
class  stxxl::config
 Access point to disks properties. Since 1.4.0: no config files are read automatically! More...
 
class  stxxl::disk_allocator
 
class  stxxl::disk_config
 Encapsulate the configuration of one "disk". The disk is actually a file I/O object which block_manager uses to read/write blocks. More...
 
struct  stxxl::element_iterator_traits< BlockType >
 
struct  stxxl::two2one_dim_array_adapter_base< one_dim_array_type, data_type, pos_type >
 
class  stxxl::typed_block< RawSize, Type, NRef, MetaInfoType >
 Block containing elements of fixed length. More...
 

Macros

#define BLOCK_ADAPTOR_OPERATORS(two_to_one_dim_array_adaptor_base)
 
#define STXXL_ADAPTOR_ARITHMETICS(pos)
 
#define STXXL_DEFAULT_BLOCK_SIZE(type)   (2 * 1024 * 1024)
 

Functions

template<unsigned BLK_SIZE>
void stxxl::block_manager::delete_block (const BID< BLK_SIZE > &bid)
 Deallocates a block. More...
 
template<class BIDIteratorClass >
void stxxl::block_manager::delete_blocks (const BIDIteratorClass &bidbegin, const BIDIteratorClass &bidend)
 Deallocates blocks. More...
 
template<typename BlockType >
element_iterator_traits
< BlockType >
::element_iterator 
stxxl::make_element_iterator (BlockType *blocks, unsigned_type offset)
 
template<class BIDType , class DiskAssignFunctor , class OutputIterator >
void stxxl::block_manager::new_blocks_int (const unsigned_type nblocks, const DiskAssignFunctor &functor, unsigned_type offset, OutputIterator out)
 
template<unsigned blk_sz>
bool stxxl::operator!= (const BID< blk_sz > &a, const BID< blk_sz > &b)
 
template<unsigned blk_sz>
std::ostream & stxxl::operator<< (std::ostream &s, const BID< blk_sz > &bid)
 
template<unsigned blk_sz>
bool stxxl::operator== (const BID< blk_sz > &a, const BID< blk_sz > &b)
 

Detailed Description

Group of classes which help controlling external memory space, managing disks, and allocating and deallocating blocks of external storage.

Macro Definition Documentation

#define BLOCK_ADAPTOR_OPERATORS (   two_to_one_dim_array_adaptor_base)

Definition at line 236 of file adaptor.h.

#define STXXL_ADAPTOR_ARITHMETICS (   pos)

Definition at line 139 of file adaptor.h.

#define STXXL_DEFAULT_BLOCK_SIZE (   type)    (2 * 1024 * 1024)

Definition at line 270 of file block_manager.h.

Referenced by stxxl::deque< ValueType, VectorType >::clear().

Function Documentation

template<unsigned BLK_SIZE>
void stxxl::block_manager::delete_block ( const BID< BLK_SIZE > &  bid)
template<class BIDIteratorClass >
void stxxl::block_manager::delete_blocks ( const BIDIteratorClass &  bidbegin,
const BIDIteratorClass &  bidend 
)

Deallocates blocks.

Deallocates blocks in the range [ bidbegin, bidend)

Parameters
bidbeginiterator object of bid_iterator concept
bidenditerator object of bid_iterator concept

Definition at line 258 of file block_manager.h.

Referenced by stxxl::stream::basic_runs_creator< Input_, CompareType_, BlockSize_, AllocStr_ >::compute_result(), stxxl::stream::sorted_runs< TriggerEntryType, CompareType >::deallocate_blocks(), and stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::~sequence_state().

template<class BIDType , class DiskAssignFunctor , class OutputIterator >
void stxxl::block_manager::new_blocks_int ( const unsigned_type  nblocks,
const DiskAssignFunctor &  functor,
unsigned_type  offset,
OutputIterator  out 
)
template<unsigned blk_sz>
bool stxxl::operator!= ( const BID< blk_sz > &  a,
const BID< blk_sz > &  b 
)
template<unsigned blk_sz>
std::ostream& stxxl::operator<< ( std::ostream &  s,
const BID< blk_sz > &  bid 
)

Definition at line 126 of file bid.h.

template<unsigned blk_sz>
bool stxxl::operator== ( const BID< blk_sz > &  a,
const BID< blk_sz > &  b 
)