Stxxl
1.4.0
|
Block containing elements of fixed length. More...
#include <typed_block.h>
Public Types | |
enum | constants { raw_size = RawSize_, size = Base::size, has_only_data = (raw_size == (size * sizeof(value_type))) } |
typedef T_ | value_type |
typedef value_type & | reference |
typedef const value_type & | const_reference |
typedef value_type * | pointer |
typedef pointer | iterator |
typedef const value_type * | const_pointer |
typedef const_pointer | const_iterator |
typedef BID< raw_size > | bid_type |
Public Member Functions | |
typed_block () | |
request_ptr | write (const bid_type &bid, completion_handler on_cmpl=default_completion_handler()) |
Writes block to the disk(s) ! | |
request_ptr | read (const bid_type &bid, completion_handler on_cmpl=default_completion_handler()) |
Reads block from the disk(s) ! | |
~typed_block () | |
Static Public Member Functions | |
static void * | operator new (size_t bytes) |
static void * | operator new[] (size_t bytes) |
static void * | operator new (size_t, void *ptr) |
static void | operator delete (void *ptr) |
static void | operator delete[] (void *ptr) |
static void | operator delete (void *, void *) |
Private Types | |
typedef expand_struct < block_w_info< T_, RawSize_, NRef_, InfoType_ >, RawSize_ > | Base |
Block containing elements of fixed length.
RawSize_ | size of block in bytes |
T_ | type of block's records |
NRef_ | number of block references (BIDs) that can be stored in the block (default is 0) |
InfoType_ | type of per block information (default is no information - void) |
The data array of type T_ is contained in the parent class stxxl::element_block
, see related information there. The BID array of references is contained in the parent class stxxl::block_w_bids
, see related information there. The "per block information" is contained in the parent class stxxl::block_w_info
, see related information there.
RawSize_
> 2MB object(s) of this type can not be allocated on the stack (as a function variable for example), because Linux POSIX library limits the stack size for the main thread to (2MB - system page size) Definition at line 223 of file typed_block.h.
typedef expand_struct<block_w_info<T_, RawSize_, NRef_, InfoType_>, RawSize_> stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::Base [private] |
Definition at line 226 of file typed_block.h.
typedef BID<raw_size> stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::bid_type |
Reimplemented from stxxl::block_w_bids< T_,((RawSize_-sizeof(BID< RawSize_ >)*NBids_-sizeof(InfoType_))/sizeof(T_)), RawSize_, NBids_ >.
Definition at line 244 of file typed_block.h.
typedef const_pointer stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::const_iterator |
Reimplemented from stxxl::element_block< T_, Size_ >.
Definition at line 235 of file typed_block.h.
typedef const value_type* stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::const_pointer |
Definition at line 234 of file typed_block.h.
typedef const value_type& stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::const_reference |
Reimplemented from stxxl::element_block< T_, Size_ >.
Definition at line 231 of file typed_block.h.
typedef pointer stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::iterator |
Reimplemented from stxxl::element_block< T_, Size_ >.
Definition at line 233 of file typed_block.h.
typedef value_type* stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::pointer |
Reimplemented from stxxl::element_block< T_, Size_ >.
Definition at line 232 of file typed_block.h.
typedef value_type& stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::reference |
Reimplemented from stxxl::element_block< T_, Size_ >.
Definition at line 230 of file typed_block.h.
typedef T_ stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::value_type |
Reimplemented from stxxl::element_block< T_, Size_ >.
Definition at line 229 of file typed_block.h.
enum stxxl::typed_block::constants |
Definition at line 237 of file typed_block.h.
stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::typed_block | ( | ) | [inline] |
Definition at line 246 of file typed_block.h.
References BLOCK_ALIGN, STXXL_STATIC_ASSERT, and STXXL_VERBOSE_TYPED_BLOCK.
stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::~typed_block | ( | ) | [inline] |
Definition at line 352 of file typed_block.h.
References STXXL_VERBOSE_TYPED_BLOCK.
static void stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::operator delete | ( | void * | ptr | ) | [inline, static] |
Definition at line 329 of file typed_block.h.
static void stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::operator delete | ( | void * | , |
void * | |||
) | [inline, static] |
Definition at line 339 of file typed_block.h.
static void stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::operator delete[] | ( | void * | ptr | ) | [inline, static] |
Definition at line 334 of file typed_block.h.
static void* stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::operator new | ( | size_t | bytes | ) | [inline, static] |
Definition at line 288 of file typed_block.h.
static void* stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::operator new | ( | size_t | , |
void * | ptr | ||
) | [inline, static] |
Definition at line 324 of file typed_block.h.
static void* stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::operator new[] | ( | size_t | bytes | ) | [inline, static] |
Definition at line 306 of file typed_block.h.
request_ptr stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::read | ( | const bid_type & | bid, |
completion_handler | on_cmpl = default_completion_handler() |
||
) | [inline] |
Reads block from the disk(s) !
bid | block identifier, points the file(disk) and position ! |
on_cmpl | completion handler ! |
pointer_ptr
object to track status I/O operation after the call Definition at line 281 of file typed_block.h.
References stxxl::file::aread(), FMT_BID, stxxl::BID< SIZE >::offset, stxxl::BID< SIZE >::storage, and STXXL_VERBOSE_BLOCK_LIFE_CYCLE.
request_ptr stxxl::typed_block< RawSize_, T_, NRef_, InfoType_ >::write | ( | const bid_type & | bid, |
completion_handler | on_cmpl = default_completion_handler() |
||
) | [inline] |
Writes block to the disk(s) !
bid | block identifier, points the file(disk) and position ! |
on_cmpl | completion handler ! |
pointer_ptr
object to track status I/O operation after the call Definition at line 269 of file typed_block.h.
References stxxl::file::awrite(), FMT_BID, stxxl::BID< SIZE >::offset, stxxl::BID< SIZE >::storage, and STXXL_VERBOSE_BLOCK_LIFE_CYCLE.
Referenced by stxxl::stream::basic_runs_creator< Input_, CompareType_, BlockSize_, AllocStr_ >::compute_result().