7 #ifndef _HALCOLUMNITERATOR_H
8 #define _HALCOLUMNITERATOR_H
14 #include "halDNAIterator.h"
15 #include "halSequence.h"
34 struct SequenceLess {
bool operator()(
const hal::Sequence* s1,
42 typedef std::vector<hal::DNAIteratorConstPtr> DNASet;
43 typedef std::map<const hal::Sequence*, DNASet*, SequenceLess> ColumnMap;
47 virtual void toRight()
const = 0;
58 virtual void toSite(hal_index_t columnIndex,
59 hal_index_t lastIndex,
60 bool clearCache =
false)
const = 0;
103 virtual void print(std::ostream& os)
const = 0;
106 friend class counted_ptr<ColumnIterator>;
107 friend class counted_ptr<const ColumnIterator>;
108 virtual ~ColumnIterator() = 0;
111 inline ColumnIterator::~ColumnIterator() {}
113 inline std::ostream& operator<<(std::ostream& os,
const ColumnIterator& cit)
virtual bool lastColumn() const =0
virtual const Genome * getGenome() const =0
Definition: halGenome.h:24
virtual hal_index_t getStartPosition() const =0
virtual bool isCanonicalOnRef() const =0
virtual void defragment() const =0
Definition: halColumnIterator.h:26
virtual const hal::Genome * getReferenceGenome() const =0
virtual void print(std::ostream &os) const =0
virtual hal_index_t getReferenceSequencePosition() const =0
virtual const ColumnMap * getColumnMap() const =0
virtual hal_index_t getArrayIndex() const =0
virtual void toRight() const =0
Definition: halSequence.h:20
virtual const hal::Sequence * getReferenceSequence() const =0
virtual void toSite(hal_index_t columnIndex, hal_index_t lastIndex, bool clearCache=false) const =0