#include <genesis/population/format/sync_input_stream.hpp>
Iterate an input source and parse it as a sync file.
This simple wrapper allows easy iteration through the records/lines of an sync file as defined by PoPoolation2, line by line. See SyncReader for details.
Basic usage:
auto it = SyncInputStream( utils::from_file( infile )); while( it ) { // work with it->... ++it; }
or
for( auto it = SyncInputStream( utils::from_file( infile )); it; ++it ) { // work with it->... }
both allow to iterate each line in the file.
Additionally, filtering of which samples (by index) to include can be provided, as a bool vector that is true
at the indices to consider. The filter does not need to contain the same number of values as the Variant/line has samples. If it is shorter, all samples after its last index will be ignored. If it is longer, the remaining entries are not used as a filter.
Definition at line 74 of file sync_input_stream.hpp.
Public Member Functions | |
SyncInputStream ()=default | |
Create a default instance, with no input. More... | |
SyncInputStream (self_type &&)=default | |
SyncInputStream (self_type const &)=default | |
SyncInputStream (std::shared_ptr< utils::BaseInputSource > source, std::vector< bool > const &sample_filter, SyncReader const &reader={}) | |
Create an instance that reads from an input source, using only the samples at the indices where the sample_filter is true, and optionally take a SyncReader with settings to be used. More... | |
SyncInputStream (std::shared_ptr< utils::BaseInputSource > source, SyncReader const &reader={}) | |
Create an instance that reads from an input source, and optionally take a SyncReader with settings to be used. More... | |
~SyncInputStream ()=default | |
std::vector< std::string > const & | get_sample_names () const |
bool | good () const |
void | increment () |
operator bool () const | |
Return true iff dereferencing is valid, i.e., iff there is a line/record available. More... | |
bool | operator!= (self_type const &it) const |
Variant & | operator* () |
Variant const & | operator* () const |
self_type & | operator++ () |
self_type & | operator++ (int) |
Variant * | operator-> () |
Variant const * | operator-> () const |
self_type & | operator= (self_type &&)=default |
self_type & | operator= (self_type const &)=default |
bool | operator== (self_type const &it) const |
Variant & | variant () |
Variant const & | variant () const |
Public Types | |
using | const_reference = value_type const & |
using | difference_type = std::ptrdiff_t |
using | iterator_category = std::input_iterator_tag |
using | pointer = value_type * |
using | reference = value_type & |
using | self_type = SyncInputStream |
using | value_type = Variant |
|
default |
Create a default instance, with no input.
|
inlineexplicit |
Create an instance that reads from an input source, and optionally take a SyncReader with settings to be used.
Definition at line 103 of file sync_input_stream.hpp.
|
inline |
Create an instance that reads from an input source, using only the samples at the indices where the sample_filter
is true, and optionally take a SyncReader with settings to be used.
Definition at line 127 of file sync_input_stream.hpp.
|
default |
|
default |
|
default |
|
inline |
Definition at line 172 of file sync_input_stream.hpp.
|
inline |
Definition at line 163 of file sync_input_stream.hpp.
|
inline |
Definition at line 223 of file sync_input_stream.hpp.
|
inlineexplicit |
Return true iff dereferencing is valid, i.e., iff there is a line/record available.
Definition at line 158 of file sync_input_stream.hpp.
|
inline |
Definition at line 255 of file sync_input_stream.hpp.
|
inline |
Definition at line 202 of file sync_input_stream.hpp.
|
inline |
Definition at line 197 of file sync_input_stream.hpp.
|
inline |
Definition at line 211 of file sync_input_stream.hpp.
|
inline |
Definition at line 217 of file sync_input_stream.hpp.
|
inline |
Definition at line 192 of file sync_input_stream.hpp.
|
inline |
Definition at line 187 of file sync_input_stream.hpp.
|
inline |
Definition at line 250 of file sync_input_stream.hpp.
|
inline |
Definition at line 182 of file sync_input_stream.hpp.
|
inline |
Definition at line 177 of file sync_input_stream.hpp.
using const_reference = value_type const& |
Definition at line 86 of file sync_input_stream.hpp.
using difference_type = std::ptrdiff_t |
Definition at line 87 of file sync_input_stream.hpp.
using iterator_category = std::input_iterator_tag |
Definition at line 88 of file sync_input_stream.hpp.
using pointer = value_type* |
Definition at line 84 of file sync_input_stream.hpp.
using reference = value_type& |
Definition at line 85 of file sync_input_stream.hpp.
using self_type = SyncInputStream |
Definition at line 82 of file sync_input_stream.hpp.
using value_type = Variant |
Definition at line 83 of file sync_input_stream.hpp.