#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.