90 lines
3.3 KiB
C
90 lines
3.3 KiB
C
|
#ifndef TARIFF_INTERPOLATION_H_INCLUDED
|
||
|
#define TARIFF_INTERPOLATION_H_INCLUDED
|
||
|
|
||
|
#include <QTime>
|
||
|
#include <QString>
|
||
|
|
||
|
struct ATBInterpolation {
|
||
|
|
||
|
enum Type {
|
||
|
NO_INTERPOLATION = 1,
|
||
|
STATIC_WALLCLOCK_TIME_VALUES = 2,
|
||
|
STATIC_TIMEPOINT_AND_DURATION = 3,
|
||
|
DYNAMIC_TIMEPOINT_AND_STATIC_DURATION = 4,
|
||
|
DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_DURATION = 5,
|
||
|
DYNAMIC_ABSTRACT_TIMEPOINT_AND_PRICE = 6,
|
||
|
DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_END_TIME = 7
|
||
|
};
|
||
|
|
||
|
static QString name(int i) {
|
||
|
switch(i) {
|
||
|
case (int)(NO_INTERPOLATION):
|
||
|
return QString("%1: NO_INTERPOLATION").arg(i);
|
||
|
case (int)(STATIC_WALLCLOCK_TIME_VALUES):
|
||
|
return QString("%1: STATIC_WALLCLOCK_TIME_VALUES").arg(i);
|
||
|
case (int)(STATIC_TIMEPOINT_AND_DURATION):
|
||
|
return QString("%1: STATIC_TIMEPOINT_AND_DURATION").arg(i);
|
||
|
case (int)(DYNAMIC_TIMEPOINT_AND_STATIC_DURATION):
|
||
|
return QString("%1: DYNAMIC_TIMEPOINT_AND_STATIC_DURATION").arg(i);
|
||
|
case (int)(DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_DURATION):
|
||
|
return QString("%1: DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_DURATION").arg(i);
|
||
|
case (int)(DYNAMIC_ABSTRACT_TIMEPOINT_AND_PRICE):
|
||
|
return QString("%1: DYNAMIC_ABSTRACT_TIMEPOINT_AND_PRICE").arg(i);
|
||
|
case (int)(DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_END_TIME):
|
||
|
return QString("%1: DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_END_TIME").arg(i);
|
||
|
default:;
|
||
|
}
|
||
|
return "ERROR";
|
||
|
}
|
||
|
|
||
|
explicit ATBInterpolation()
|
||
|
: id(0)
|
||
|
, static_start(QTime())
|
||
|
, static_end(QTime())
|
||
|
, static_start_str(QString())
|
||
|
, static_end_str(QString())
|
||
|
, static_duration(0)
|
||
|
, dynamic_start(QTime())
|
||
|
, dynamic_end(QTime())
|
||
|
, dynamic_start_str(QString())
|
||
|
, dynamic_end_str(QString())
|
||
|
, dynamic_duration(0)
|
||
|
, dynamic_until_price(0) {
|
||
|
}
|
||
|
|
||
|
int id;
|
||
|
QTime static_start;
|
||
|
QTime static_end;
|
||
|
QString static_start_str;
|
||
|
QString static_end_str;
|
||
|
int static_duration;
|
||
|
QTime dynamic_start;
|
||
|
QTime dynamic_end;
|
||
|
QString dynamic_start_str;
|
||
|
QString dynamic_end_str;
|
||
|
int dynamic_duration;
|
||
|
int dynamic_until_price;
|
||
|
|
||
|
friend QDebug operator<<(QDebug debug, ATBInterpolation const &i) {
|
||
|
QDebugStateSaver saver(debug);
|
||
|
|
||
|
debug.nospace()
|
||
|
<< " id: " << name(i.id) << "\n"
|
||
|
<< " static_start: " << i.static_start.toString(Qt::ISODate) << "\n"
|
||
|
<< " static_end: " << i.static_end.toString(Qt::ISODate) << "\n"
|
||
|
<< " static_start_str: " << i.static_start_str << "\n"
|
||
|
<< " static_end_str: " << i.static_end_str << "\n"
|
||
|
<< " static_duration: " << i.static_duration << "\n"
|
||
|
<< " dynamic_start: " << i.dynamic_start.toString(Qt::ISODate) << "\n"
|
||
|
<< " dynamic_end: " << i.dynamic_end.toString(Qt::ISODate) << "\n"
|
||
|
<< " dynamic_start_str: " << i.dynamic_start_str << "\n"
|
||
|
<< " dynamic_end_str: " << i.dynamic_end_str << "\n"
|
||
|
<< " dynamic_duration: " << i.dynamic_duration << "\n"
|
||
|
<< "dynamic_until_price: " << i.dynamic_until_price << "\n";
|
||
|
|
||
|
return debug;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
#endif // TARIFF_INTERPOLATION_H_INCLUDED
|