1 #ifndef gamgee__multiple_variant_iterator__guard
2 #define gamgee__multiple_variant_iterator__guard
34 MultipleVariantIterator(
const std::vector<std::shared_ptr<htsFile>>& variant_files,
const std::vector<std::shared_ptr<bcf_hdr_t>>& variant_headers);
65 std::vector<VariantIndexPair>&
operator*();
76 void fetch_next_vector();
85 std::priority_queue<VariantIteratorIndexPair, std::vector<VariantIteratorIndexPair>, Comparator> m_queue;
88 std::vector<VariantIndexPair> m_variant_vector;
93 #endif // gamgee__multiple_variant_iterator__guard
std::vector< VariantIndexPair > & operator*()
dereference operator (needed by for-each loop)
Definition: multiple_variant_iterator.cpp:16
MultipleVariantIterator & operator=(MultipleVariantIterator &&other)=default
bool operator!=(const MultipleVariantIterator &rhs)
pseudo-inequality operator (needed by for-each loop)
Definition: multiple_variant_iterator.cpp:27
std::pair< Variant, uint32_t > VariantIndexPair
Definition: multiple_variant_iterator.h:15
std::vector< VariantIndexPair > & operator++()
advances the iterator, fetching the next vector
Definition: multiple_variant_iterator.cpp:20
std::pair< std::shared_ptr< VariantIterator >, uint32_t > VariantIteratorIndexPair
Definition: multiple_variant_iterator.h:14
Utility class to enable for-each style iteration in the MultipleVariantReader class.
Definition: multiple_variant_iterator.h:20
MultipleVariantIterator()=default
creates an empty iterator (used for the end() method)
Definition: exceptions.h:9