7 #ifndef _HALTOPSEGMENTITERATOR_H
8 #define _HALTOPSEGMENTITERATOR_H
12 #include "halSegmentIterator.h"
13 #include "halTopSegment.h"
27 virtual TopSegmentIteratorPtr
copy() = 0;
30 virtual TopSegmentIteratorConstPtr
copy()
const = 0;
35 virtual void copy(TopSegmentIteratorConstPtr ts)
const = 0;
40 virtual void toChild(BottomSegmentIteratorConstPtr bs,
41 hal_size_t child)
const = 0;
46 virtual void toChildG(BottomSegmentIteratorConstPtr bs,
47 const Genome* childGenome)
const = 0;
53 virtual void toParseUp(BottomSegmentIteratorConstPtr bs)
const = 0;
64 virtual bool equals(TopSegmentIteratorConstPtr other)
const = 0;
72 friend class counted_ptr<TopSegmentIterator>;
73 friend class counted_ptr<const TopSegmentIterator>;
74 virtual ~TopSegmentIterator() = 0;
77 inline TopSegmentIterator::~TopSegmentIterator() {}
79 inline bool operator==(TopSegmentIteratorConstPtr p1,
80 TopSegmentIteratorConstPtr p2)
82 if (p1.get() == NULL || p2.get() == NULL)
84 return p1.get() == NULL && p2.get() == NULL;
86 return p1->equals(p2);
89 inline bool operator!=(TopSegmentIteratorConstPtr p1,
90 TopSegmentIteratorConstPtr p2)
Definition: halGenome.h:24
virtual void toNextParalogy() const =0
virtual TopSegment * getTopSegment()=0
Definition: halTopSegment.h:18
virtual bool equals(TopSegmentIteratorConstPtr other) const =0
Definition: halSegmentIterator.h:20
Definition: halTopSegmentIterator.h:22
virtual TopSegmentIteratorPtr copy()=0
virtual void toChild(BottomSegmentIteratorConstPtr bs, hal_size_t child) const =0
virtual void toChildG(BottomSegmentIteratorConstPtr bs, const Genome *childGenome) const =0
virtual void toParseUp(BottomSegmentIteratorConstPtr bs) const =0