Bifrost
UnitigIterator.hpp
Go to the documentation of this file.
1 #ifndef BIFROST_UNITIG_ITERATOR_HPP
2 #define BIFROST_UNITIG_ITERATOR_HPP
3 
4 #include "UnitigMap.hpp"
5 #include "KmerHashTable.hpp"
6 #include "CompressedCoverage.hpp"
7 
13 template<typename U, typename G> class CompactedDBG;
14 
35 template<typename Unitig_data_t = void, typename Graph_data_t = void, bool is_const = false>
36 class unitigIterator : public std::iterator<std::input_iterator_tag, UnitigMap<Unitig_data_t, Graph_data_t, is_const>, int> {
37 
38  typedef Unitig_data_t U;
39  typedef Graph_data_t G;
40 
41  public:
42 
43  typedef typename std::conditional<is_const, const CompactedDBG<U, G>*, CompactedDBG<U, G>*>::type CompactedDBG_ptr_t;
44 
49 
55  unitigIterator(CompactedDBG_ptr_t cdbg_);
56 
61 
66 
71 
76  bool operator==(const unitigIterator& o) const;
77 
82  bool operator!=(const unitigIterator& o) const;
83 
88 
93 
94  private:
95 
96  size_t i;
97 
98  size_t v_unitigs_sz;
99  size_t v_kmers_sz;
100  size_t h_kmers_ccov_sz;
101  size_t sz;
102 
103  bool invalid;
104 
105  typename KmerHashTable<CompressedCoverage_t<U>>::const_iterator it_h_kmers_ccov;
106 
108 
109  CompactedDBG_ptr_t cdbg;
110 };
111 
112 #include "UnitigIterator.tcc"
113 
114 #endif
unitigIterator::unitigIterator
unitigIterator(const unitigIterator &o)
Copy constructor.
unitigIterator::operator++
unitigIterator operator++(int)
Postfix increment, iterate over the next unitig.
UnitigMap.hpp
UnitigMap type interface.
UnitigMap
Contain all the information for the mapping of a k-mer or a sequence to a unitig of a Compacted de Br...
Definition: UnitigMap.hpp:92
unitigIterator::operator++
unitigIterator & operator++()
Prefix increment, iterate over the next unitig.
unitigIterator::unitigIterator
unitigIterator()
Constructor.
unitigIterator::operator->
const UnitigMap< U, G, is_const > * operator->() const
Dereference operator.
unitigIterator::operator*
const UnitigMap< U, G, is_const > & operator*() const
Indirection operator.
unitigIterator::operator!=
bool operator!=(const unitigIterator &o) const
Inequality operator: check if two unitigIterator are different.
unitigIterator::operator==
bool operator==(const unitigIterator &o) const
Equality operator: check if two unitigIterator are the same.
unitigIterator
Iterator for the unitigs of a Compacted de Bruijn graph.
Definition: UnitigIterator.hpp:36
unitigIterator::unitigIterator
unitigIterator(CompactedDBG_ptr_t cdbg_)
Constructor.
CompactedDBG
Represent a Compacted de Bruijn graph.
Definition: CompactedDBG.hpp:313