##// 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:

r408:49f712bf7e59
r408:49f712bf7e59
Show More
CosinusProvider.cpp
48 lines | 1.5 KiB | text/x-c | CppLexer
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r128 #include "CosinusProvider.h"
#include <Data/DataProviderParameters.h>
#include <Data/ScalarSeries.h>
Add cmath header missing
r135 #include <cmath>
Fix the cosinus bug....
r298 #include <QDateTime>
Add current progression for thread fix
r364 #include <QThread>
Fix the cosinus bug....
r298
The cosinus provider can now handle data request
r231 Q_LOGGING_CATEGORY(LOG_CosinusProvider, "CosinusProvider")
Alexandre Leroux
Updates IDataProvider::requestDataLoading() method's signature...
r408 std::shared_ptr<IDataSeries> CosinusProvider::retrieveData(const SqpDateTime &dateTime) const
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r128 {
Fix the cosinus bug....
r298 auto dataIndex = 0;
The cosinus provider can now handle data request
r231
// Gets the timerange from the parameters
Fix the cosinus bug....
r298 double freq = 100.0;
double start = dateTime.m_TStart * freq; // 100 htz
double end = dateTime.m_TEnd * freq; // 100 htz
The cosinus provider can now handle data request
r231
// We assure that timerange is valid
if (end < start) {
std::swap(start, end);
}
// Generates scalar series containing cosinus values (one value per second)
auto scalarSeries
= std::make_shared<ScalarSeries>(end - start, Unit{QStringLiteral("t"), true}, Unit{});
for (auto time = start; time < end; ++time, ++dataIndex) {
Fix the cosinus bug....
r298 const auto timeOnFreq = time / freq;
scalarSeries->setData(dataIndex, timeOnFreq, std::cos(timeOnFreq));
The cosinus provider can now handle data request
r231 }
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r128 return scalarSeries;
}
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310
Alexandre Leroux
Updates IDataProvider::requestDataLoading() method's signature...
r408 void CosinusProvider::requestDataLoading(QUuid token, const DataProviderParameters &parameters)
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310 {
Change info to debug on thread display log
r367 qCDebug(LOG_CosinusProvider()) << "CosinusProvider::requestDataLoading"
<< QThread::currentThread()->objectName();
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310 // NOTE: Try to use multithread if possible
Alexandre Leroux
Updates IDataProvider::requestDataLoading() method's signature...
r408 const auto times = parameters.m_Times;
for (const auto &dateTime : qAsConst(times)) {
auto scalarSeries = this->retrieveData(dateTime);
Alexandre Leroux
Transits tokens in provider requests
r376 emit dataProvided(token, scalarSeries, dateTime);
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310 }
}