Thrill  0.1

Detailed Description

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

Buffered input stream.

Reads data records from the stream of blocks.

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

Definition at line 37 of file buf_istream.hpp.

+ Collaboration diagram for buf_istream< BlockType, BidIteratorType >:

#include <buf_istream.hpp>

Public Types

using bid_iterator_type = BidIteratorType
 
using block_type = BlockType
 
using reference = typename block_type::reference
 
using self_type = buf_istream< block_type, bid_iterator_type >
 

Public Member Functions

 buf_istream (bid_iterator_type begin, bid_iterator_type end, size_t nbuffers)
 
 buf_istream (const buf_istream &)=delete
 non-copyable: delete copy-constructor More...
 
 ~buf_istream ()
 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_istreamoperator= (const buf_istream &)=delete
 non-copyable: delete assignment operator More...
 
self_typeoperator>> (reference record)
 

Protected Types

using prefetcher_type = block_prefetcher< block_type, bid_iterator_type >
 

Protected Attributes

block_typecurrent_blk
 
size_t current_elem
 
bool not_finished
 
size_t * prefetch_seq
 
prefetcher_typeprefetcher
 

Private Member Functions

 buf_istream ()
 

Member Typedef Documentation

◆ bid_iterator_type

using bid_iterator_type = BidIteratorType

Definition at line 41 of file buf_istream.hpp.

◆ block_type

using block_type = BlockType

Definition at line 40 of file buf_istream.hpp.

◆ prefetcher_type

Definition at line 47 of file buf_istream.hpp.

◆ reference

using reference = typename block_type::reference

Definition at line 57 of file buf_istream.hpp.

◆ self_type

Definition at line 58 of file buf_istream.hpp.

Constructor & Destructor Documentation

◆ buf_istream() [1/3]

buf_istream ( )
inlineprivate

◆ buf_istream() [2/3]

buf_istream ( bid_iterator_type  begin,
bid_iterator_type  end,
size_t  nbuffers 
)
inline

Constructs input stream object.

Parameters
beginbid_iterator pointing to the first block of the stream
endbid_iterator pointing to the ( last + 1 ) block of the stream
nbuffersnumber of buffers for internal use

Definition at line 64 of file buf_istream.hpp.

References buf_istream< BlockType, BidIteratorType >::buf_istream(), foxxll::compute_prefetch_schedule(), config::disks_number(), singleton< config >::get_instance(), max(), config::max_device_id(), buf_istream< BlockType, BidIteratorType >::operator=(), and block_prefetcher< BlockType, BidIteratorType >::pull_block().

◆ buf_istream() [3/3]

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

non-copyable: delete copy-constructor

◆ ~buf_istream()

~buf_istream ( )
inline

Member Function Documentation

◆ current()

reference current ( )
inline

Returns reference to the current record in the stream.

Definition at line 122 of file buf_istream.hpp.

References buf_istream< BlockType, BidIteratorType >::current_elem.

◆ operator*()

reference operator* ( )
inline

Returns reference to the current record in the stream.

Definition at line 128 of file buf_istream.hpp.

References buf_istream< BlockType, BidIteratorType >::current_elem.

◆ operator++()

self_type& operator++ ( )
inline

Moves to the next record in the stream.

Returns
reference to itself after the advance

Definition at line 135 of file buf_istream.hpp.

References block_prefetcher< BlockType, BidIteratorType >::block_consumed(), and TLX_UNLIKELY.

◆ operator=()

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

non-copyable: delete assignment operator

Referenced by buf_istream< BlockType, BidIteratorType >::buf_istream().

◆ 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 100 of file buf_istream.hpp.

References block_prefetcher< BlockType, BidIteratorType >::block_consumed(), and TLX_UNLIKELY.

Member Data Documentation

◆ current_blk

block_type* current_blk
protected

Definition at line 50 of file buf_istream.hpp.

◆ current_elem

size_t current_elem
protected

◆ not_finished

bool not_finished
protected

Definition at line 53 of file buf_istream.hpp.

◆ prefetch_seq

size_t* prefetch_seq
protected

◆ prefetcher

prefetcher_type* prefetcher
protected

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