Quark  0.1
DiffRange.h++
Go to the documentation of this file.
1 
2 #ifndef __libquark_diff_DiffRange_hxx
3 #define __libquark_diff_DiffRange_hxx
4 
5 #include <QDebug>
6 
7 #include <quark/Quark.h++>
8 
9 namespace quark {
10 namespace diff {
11 
17 class DiffRange
18 {
19  public:
20 
22  : _startIndex(0)
23  , _length(0)
24  { }
25 
27  : _startIndex(startIndex)
28  , _length(length)
29  { }
30 
32  { }
33 
34  inline void setRange(int startIndex, int length)
35  {
36  _startIndex = startIndex;
37  _length = length;
38  }
39 
40  inline int startIndex() const
41  { return(_startIndex); }
42 
43  inline int endIndex() const
44  { return(_startIndex + ((_length > 0) ? (_length - 1) : 0)); }
45 
46  inline void setLength(int length)
47  { _length = length; }
48 
49  inline int length() const
50  { return(_length); }
51 
52  inline bool isEmpty() const
53  { return(_length == 0); }
54 
55  inline bool isValid() const
56  { return(_startIndex > 0); }
57 
58  inline bool containsIndex(int index) const
59  { return((index >= _startIndex) && (index <= endIndex())); }
60 
61  private:
62 
63  int _startIndex;
64  int _length;
65 };
66 
67 } // namespace diff
68 } // namespace quark
69 
70 inline QDebug operator<<(QDebug dbg, const quark::diff::DiffRange& range)
71 {
72  if(range.isValid())
73  {
74  dbg.nospace();
75  if(!range.isEmpty())
76  dbg << range.startIndex() << '-' << range.endIndex();
77  else
78  dbg << '@' << range.startIndex();
79  }
80 
81  return(dbg);
82 }
83 
84 #endif // __libquark_diff_DiffRange_hxx
int startIndex() const
Definition: DiffRange.h++:40
bool isValid() const
Definition: DiffRange.h++:55
TODO: rewrite comment A range of elements in a DiffSequence.
Definition: DiffRange.h++:17
~DiffRange()
Definition: DiffRange.h++:31
bool containsIndex(int index) const
Definition: DiffRange.h++:58
int length() const
Definition: DiffRange.h++:49
void setRange(int startIndex, int length)
Definition: DiffRange.h++:34
DiffRange()
Definition: DiffRange.h++:21
void setLength(int length)
Definition: DiffRange.h++:46
Definition: BarChartView.h++:6
bool isEmpty() const
Definition: DiffRange.h++:52
int endIndex() const
Definition: DiffRange.h++:43
DiffRange(int startIndex, int length)
Definition: DiffRange.h++:26
QDebug operator<<(QDebug dbg, const quark::diff::DiffRange &range)
Definition: DiffRange.h++:70