#ifndef TARIFF_IMPL_H
#define TARIFF_IMPL_H
-#include <ctime>
+#include "stg/tariff.h"
+#include "stg/os_int.h"
+#include "stg/tariff_conf.h"
#include <string>
#include <list>
-#include "stg/tariff.h"
-#include "stg/os_int.h"
-#include "stg/tariff_conf.h"
+#include <ctime>
#define TARIFF_DAY 0
#define TARIFF_NIGHT 1
: TARIFF(),
tariffData()
{}
- TARIFF_IMPL(const std::string & name)
+ explicit TARIFF_IMPL(const std::string & name)
: TARIFF(),
tariffData(name)
{}
- TARIFF_IMPL(const TARIFF_DATA & td)
+ explicit TARIFF_IMPL(const TARIFF_DATA & td)
: TARIFF(),
tariffData(td)
{}
- TARIFF_IMPL(const TARIFF_IMPL & t)
- : TARIFF(),
- tariffData(t.tariffData)
- {}
virtual ~TARIFF_IMPL() {}
double GetPriceWithTraffType(uint64_t up,
double GetFee() const { return tariffData.tariffConf.fee; }
double GetFree() const { return tariffData.tariffConf.free; }
PERIOD GetPeriod() const { return tariffData.tariffConf.period; }
+ CHANGE_POLICY GetChangePolicy() const { return tariffData.tariffConf.changePolicy; }
+ time_t GetChangePolicyTimeout() const { return tariffData.tariffConf.changePolicyTimeout; }
void Print() const;
TARIFF_IMPL & operator=(const TARIFF_IMPL & t);
bool operator==(const TARIFF_IMPL & rhs) const { return GetName() == rhs.GetName(); }
bool operator!=(const TARIFF_IMPL & rhs) const { return GetName() != rhs.GetName(); }
+ std::string TariffChangeIsAllowed(const TARIFF & to, time_t currentTime) const;
private:
TARIFF_DATA tariffData;