Thrill  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
buf_istream_reverse< BlockType, BidIteratorType > Class Template Reference

Detailed Description

template<typename BlockType, typename BidIteratorType>
class foxxll::buf_istream_reverse< BlockType, BidIteratorType >

Buffered input stream, reading the items in the blocks in reverse order.

Reads data records from the stream of blocks in reverse order.

Remarks
Reading performed in the background, i.e. with overlapping of I/O and computation

Definition at line 37 of file buf_istream_reverse.hpp.

+ Collaboration diagram for buf_istream_reverse< BlockType, BidIteratorType >:

#include <buf_istream_reverse.hpp>

Public Types

using bid_iterator_type = BidIteratorType
 
using bid_vector_type = BIDArray< block_type::raw_size >
 
using block_type = BlockType
 
using reference = typename block_type::reference
 
using self_type = buf_istream_reverse< block_type, bid_iterator_type >
 

Public Member Functions

 buf_istream_reverse (bid_iterator_type begin, bid_iterator_type end, size_t nbuffers)
 
 buf_istream_reverse (const buf_istream_reverse &)=delete
 non-copyable: delete copy-constructor More...
 
 ~buf_istream_reverse ()
 Frees used internal objects. More...
 
reference current ()
 Returns reference to the current record in the stream. More...
 
reference operator* ()
 Returns reference to the current record in the stream. More...
 
self_typeoperator++ ()
 
buf_istream_reverseoperator= (const buf_istream_reverse &)=delete
 non-copyable: delete assignment operator More...
 
self_typeoperator>> (reference record)
 

Protected Types

using prefetcher_type = block_prefetcher< block_type, typename bid_vector_type::iterator >
 

Protected Attributes

bid_vector_type bids_
 
block_typecurrent_blk
 
size_t current_elem
 
bool not_finished
 
size_t * prefetch_seq
 
prefetcher_typeprefetcher
 

Private Member Functions

 buf_istream_reverse ()
 

Member Typedef Documentation

using bid_iterator_type = BidIteratorType

Definition at line 41 of file buf_istream_reverse.hpp.

using bid_vector_type = BIDArray<block_type::raw_size>

Definition at line 45 of file buf_istream_reverse.hpp.

using block_type = BlockType

Definition at line 40 of file buf_istream_reverse.hpp.

Definition at line 51 of file buf_istream_reverse.hpp.

using reference = typename block_type::reference

Definition at line 62 of file buf_istream_reverse.hpp.

Constructor & Destructor Documentation

buf_istream_reverse ( )
inlineprivate

Definition at line 48 of file buf_istream_reverse.hpp.

buf_istream_reverse ( const buf_istream_reverse< BlockType, BidIteratorType > &  )
delete

non-copyable: delete copy-constructor

Member Function Documentation

reference current ( )
inline

Returns reference to the current record in the stream.

Definition at line 135 of file buf_istream_reverse.hpp.

References buf_istream_reverse< BlockType, BidIteratorType >::current_blk, and buf_istream_reverse< BlockType, BidIteratorType >::current_elem.

reference operator* ( )
inline

Returns reference to the current record in the stream.

Definition at line 141 of file buf_istream_reverse.hpp.

References buf_istream_reverse< BlockType, BidIteratorType >::current_blk, and buf_istream_reverse< BlockType, BidIteratorType >::current_elem.

buf_istream_reverse& operator= ( const buf_istream_reverse< BlockType, BidIteratorType > &  )
delete

non-copyable: delete assignment operator

self_type& operator>> ( reference  record)
inline

Input stream operator, reads in record.

Parameters
recordreference to the block record type, contains value of the next record in the stream after the call of the operator
Returns
reference to itself (stream object)

Definition at line 109 of file buf_istream_reverse.hpp.

References block_prefetcher< BlockType, BidIteratorType >::block_consumed(), buf_istream_reverse< BlockType, BidIteratorType >::current_blk, buf_istream_reverse< BlockType, BidIteratorType >::current_elem, buf_istream_reverse< BlockType, BidIteratorType >::not_finished, buf_istream_reverse< BlockType, BidIteratorType >::prefetcher, and UNLIKELY.

Member Data Documentation


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