##// END OF EJS Templates
Remove connection for progress from NC -> VC to NC -> Provider.
Remove connection for progress from NC -> VC to NC -> Provider.

File last commit:

r396:4c5c8ac48250
r425:d987dda795cf
Show More
IDataSeries.h
69 lines | 1.8 KiB | text/x-c | CLexer
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 #ifndef SCIQLOP_IDATASERIES_H
#define SCIQLOP_IDATASERIES_H
Alexandre Leroux
Centralization of qregistermetatype management
r308 #include <Common/MetaTypes.h>
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125
#include <memory>
Add merge API and implement it for the DataSeries
r233 #include <QString>
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 template <int Dim>
class ArrayData;
Alexandre Leroux
Replaces QString unit by a new struct...
r177 struct Unit {
explicit Unit(const QString &name = {}, bool timeUnit = false)
: m_Name{name}, m_TimeUnit{timeUnit}
{
}
Alexandre Leroux
Units tests structure
r396 inline bool operator==(const Unit &other) const
{
return std::tie(m_Name, m_TimeUnit) == std::tie(other.m_Name, other.m_TimeUnit);
}
inline bool operator!=(const Unit &other) const { return !(*this == other); }
Alexandre Leroux
Replaces QString unit by a new struct...
r177 QString m_Name; ///< Unit name
bool m_TimeUnit; ///< The unit is a unit of time
};
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 /**
* @brief The IDataSeries aims to declare a data series.
*
* A data series is an entity that contains at least :
* - one dataset representing the x-axis
* - one dataset representing the values
*
* Each dataset is represented by an ArrayData, and is associated with a unit.
*
* An ArrayData can be unidimensional or two-dimensional, depending on the implementation of the
* IDataSeries. The x-axis dataset is always unidimensional.
*
* @sa ArrayData
*/
class IDataSeries {
public:
virtual ~IDataSeries() noexcept = default;
/// Returns the x-axis dataset
virtual std::shared_ptr<ArrayData<1> > xAxisData() = 0;
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310 /// Returns the x-axis dataset (as const)
virtual const std::shared_ptr<ArrayData<1> > xAxisData() const = 0;
Alexandre Leroux
Replaces QString unit by a new struct...
r177 virtual Unit xAxisUnit() const = 0;
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125
Alexandre Leroux
Replaces QString unit by a new struct...
r177 virtual Unit valuesUnit() const = 0;
Add merge API and implement it for the DataSeries
r233
virtual void merge(IDataSeries *dataSeries) = 0;
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310
virtual std::unique_ptr<IDataSeries> clone() const = 0;
Add current progression for thread fix
r364
virtual void lockRead() = 0;
virtual void lockWrite() = 0;
virtual void unlock() = 0;
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 };
Add merge API and implement it for the DataSeries
r233 // Required for using shared_ptr in signals/slots
Alexandre Leroux
Centralization of qregistermetatype management
r308 SCIQLOP_REGISTER_META_TYPE(IDATASERIES_PTR_REGISTRY, std::shared_ptr<IDataSeries>)
Add merge API and implement it for the DataSeries
r233
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 #endif // SCIQLOP_IDATASERIES_H