##// END OF EJS Templates
Uses new iterator in DataSeries.cpp...
Uses new iterator in DataSeries.cpp The code of the old iterator is deleted. The new iterator is now built from the Implementation of DataSeriesIteratorValue :: Impl for a DataSeries

File last commit:

r595:549a850c09e9
r596:96f73c42ec59
Show More
DataSeriesIterator.cpp
75 lines | 1.5 KiB | text/x-c | CppLexer
/ core / src / Data / DataSeriesIterator.cpp
Alexandre Leroux
Defines an iterator for a data series...
r595 #include "Data/DataSeriesIterator.h"
DataSeriesIteratorValue::DataSeriesIteratorValue(
std::unique_ptr<DataSeriesIteratorValue::Impl> impl)
: m_Impl{std::move(impl)}
{
}
DataSeriesIteratorValue::DataSeriesIteratorValue(const DataSeriesIteratorValue &other)
: m_Impl{other.m_Impl->clone()}
{
}
DataSeriesIteratorValue &DataSeriesIteratorValue::operator=(DataSeriesIteratorValue other)
{
std::swap(m_Impl, other.m_Impl);
return *this;
}
bool DataSeriesIteratorValue::equals(const DataSeriesIteratorValue &other) const
{
return m_Impl->equals(*other.m_Impl);
}
void DataSeriesIteratorValue::next()
{
m_Impl->next();
}
void DataSeriesIteratorValue::prev()
{
m_Impl->prev();
}
double DataSeriesIteratorValue::x() const
{
return m_Impl->x();
}
double DataSeriesIteratorValue::value() const
{
return m_Impl->value();
}
double DataSeriesIteratorValue::value(int componentIndex) const
{
return m_Impl->value(componentIndex);
}
DataSeriesIterator::DataSeriesIterator(DataSeriesIteratorValue value)
: m_CurrentValue{std::move(value)}
{
}
DataSeriesIterator &DataSeriesIterator::operator++()
{
m_CurrentValue.next();
return *this;
}
DataSeriesIterator &DataSeriesIterator::operator--()
{
m_CurrentValue.prev();
return *this;
}
bool DataSeriesIterator::operator==(const DataSeriesIterator &other) const
{
return m_CurrentValue.equals(other.m_CurrentValue);
}
bool DataSeriesIterator::operator!=(const DataSeriesIterator &other) const
{
return !(*this == other);
}