Classes | Modules | Functions

Block management layer

Collaboration diagram for Block management layer:

Classes

struct  BID< SIZE >
 Block identifier class. More...
struct  BID< 0 >
 Specialization of block identifier class (BID) for variable size block size. More...
class  element_block< T, Size_ >
 Contains data elements for stxxl::typed_block , not intended for direct use. More...
class  block_w_bids< T, Size_, RawSize_, NBids_ >
 Contains BID references for stxxl::typed_block , not intended for direct use. More...
class  block_w_info< T_, RawSize_, NBids_, InfoType_ >
 Contains per block information for stxxl::typed_block , not intended for direct use. More...
class  typed_block< RawSize_, T_, NRef_, InfoType_ >
 Block containing elements of fixed length. More...
class  config
 Access point to disks properties. More...
class  block_manager
 Block manager class. More...

Modules

 Block scheduling sublayer
 Allocation functors

Functions

template<class DiskAssgnFunctor , class BIDIteratorClass >
void block_manager::new_blocks (DiskAssgnFunctor functor, BIDIteratorClass bidbegin, BIDIteratorClass bidend)
 Allocates new blocks.
template<unsigned BLK_SIZE>
void block_manager::delete_block (const BID< BLK_SIZE > &bid)
 Deallocates a block.
template<class BIDIteratorClass >
void block_manager::delete_blocks (const BIDIteratorClass &bidbegin, const BIDIteratorClass &bidend)
 Deallocates blocks.

Detailed Description

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


Function Documentation

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

Deallocates blocks.

Deallocates blocks in the range [ bidbegin, bidend)

Parameters:
bidbegin iterator object of bid_iterator concept
bidend iterator object of bid_iterator concept

References block_manager::delete_block().

template<class DiskAssgnFunctor , class BIDIteratorClass >
void block_manager::new_blocks ( DiskAssgnFunctor  functor,
BIDIteratorClass  bidbegin,
BIDIteratorClass  bidend 
) [inherited]

Allocates new blocks.

Allocates new blocks according to the strategy given by functor and stores block identifiers to the range [ bidbegin, bidend)

Parameters:
functor object of model of allocation_strategy concept
bidbegin bidirectional BID iterator object
bidend bidirectional BID iterator object

Referenced by stream::runs_creator< from_sorted_sequences< ValueType_ >, Cmp_, BlockSize_, AllocStr_ >::finish(), ksort(), stream::runs_creator< from_sorted_sequences< ValueType_ >, Cmp_, BlockSize_, AllocStr_ >::push(), stream::runs_creator< use_push< ValueType_ >, Cmp_, BlockSize_, AllocStr_ >::push(), queue< ValTp, BlkSz, AllocStr, SzTp >::push(), and sort().