Bug 1163445: Part4. Add IntervalSet::SetFuzz method. r=mattwoodrow

Will be required for fuzzy search in MediaSource until full conversion to
Interval/IntervalSet.
This commit is contained in:
Jean-Yves Avenard 2015-05-18 16:13:20 +10:00
Родитель 640e48194f
Коммит e6216240f5
1 изменённых файлов: 14 добавлений и 2 удалений

Просмотреть файл

@ -193,6 +193,11 @@ public:
return mStart == mEnd; return mStart == mEnd;
} }
void SetFuzz(const T& aFuzz)
{
mFuzz = aFuzz;
}
T mStart; T mStart;
T mEnd; T mEnd;
T mFuzz; T mFuzz;
@ -505,7 +510,7 @@ public:
} }
// Shift all values by aOffset. // Shift all values by aOffset.
void Shift(T aOffset) void Shift(const T& aOffset)
{ {
for (auto& interval : mIntervals) { for (auto& interval : mIntervals) {
interval.mStart += aOffset; interval.mStart += aOffset;
@ -513,9 +518,16 @@ public:
} }
} }
void SetFuzz(const T& aFuzz) {
for (auto& interval : mIntervals) {
interval.SetFuzz(aFuzz);
}
Normalize();
}
static const IndexType NoIndex = IndexType(-1); static const IndexType NoIndex = IndexType(-1);
IndexType Find(T aValue) const IndexType Find(const T& aValue) const
{ {
for (IndexType i = 0; i < mIntervals.Length(); i++) { for (IndexType i = 0; i < mIntervals.Length(); i++) {
if (mIntervals[i].Contains(aValue)) { if (mIntervals[i].Contains(aValue)) {