##// END OF EJS Templates
Updates IDataProvider::requestDataLoading() method's signature...
Updates IDataProvider::requestDataLoading() method's signature The parameters needed for data retrieval are passed to a DataProviderParameters object. For now, it concerns only the list of datetimes to process, but the object will be completed with extra data which may be necessary for certain providers

File last commit:

r396:4c5c8ac48250
r408:49f712bf7e59
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