DIRPRICE_DATA GetData() const
{
DIRPRICE_DATA dd;
- dd.hDay = hDay.data();
- dd.hNight = hNight.data();
- dd.mDay = mDay.data();
- dd.mNight = mNight.data();
- dd.noDiscount = noDiscount.data();
- dd.priceDayA = priceDayA.data();
- dd.priceDayB = priceDayB.data();
-
- dd.priceNightA = priceNightA.data();
- dd.priceNightB = priceNightB.data();
- dd.singlePrice = singlePrice.data();
- dd.threshold = threshold.data();
+ hDay.maybeSet(dd.hDay);
+ hNight.maybeSet(dd.hNight);
+ mDay.maybeSet(dd.mDay);
+ mNight.maybeSet(dd.mNight);
+ noDiscount.maybeSet(dd.noDiscount);
+ priceDayA.maybeSet(dd.priceDayA);
+ priceDayB.maybeSet(dd.priceDayB);
+ priceNightA.maybeSet(dd.priceNightA);
+ priceNightB.maybeSet(dd.priceNightB);
+ singlePrice.maybeSet(dd.singlePrice);
+ threshold.maybeSet(dd.threshold);
return dd;
}
double passiveCost;
std::string name;
TARIFF::PERIOD period;
+ TARIFF::CHANGE_POLICY changePolicy;
+ time_t changePolicyTimeout;
TARIFF_CONF()
: fee(0),
traffType(TARIFF::TRAFF_UP_DOWN),
passiveCost(0),
name(),
- period(TARIFF::MONTH)
+ period(TARIFF::MONTH),
+ changePolicy(TARIFF::ALLOW),
+ changePolicyTimeout(0)
{}
- TARIFF_CONF(const std::string & n)
+ explicit TARIFF_CONF(const std::string & n)
: fee(0),
free(0),
traffType(TARIFF::TRAFF_UP_DOWN),
passiveCost(0),
name(n),
- period(TARIFF::MONTH)
+ period(TARIFF::MONTH),
+ changePolicy(TARIFF::ALLOW),
+ changePolicyTimeout(0)
{}
};
//-----------------------------------------------------------------------------
traffType(),
passiveCost(),
name(),
- period()
+ period(),
+ changePolicy(),
+ changePolicyTimeout()
{}
TARIFF_CONF_RES & operator=(const TARIFF_CONF & tc)
passiveCost = tc.passiveCost;
name = tc.name;
period = tc.period;
+ changePolicy = tc.changePolicy;
+ changePolicyTimeout = tc.changePolicyTimeout;
return *this;
}
TARIFF_CONF GetData() const
{
TARIFF_CONF tc;
- tc.fee = fee.data();
- tc.free = free.data();
- tc.name = name.data();
- tc.passiveCost = passiveCost.data();
- tc.traffType = traffType.data();
- tc.period = period.data();
+ fee.maybeSet(tc.fee);
+ free.maybeSet(tc.free);
+ name.maybeSet(tc.name);
+ passiveCost.maybeSet(tc.passiveCost);
+ traffType.maybeSet(tc.traffType);
+ period.maybeSet(tc.period);
+ changePolicy.maybeSet(tc.changePolicy);
+ changePolicyTimeout.maybeSet(tc.changePolicyTimeout);
return tc;
}
RESETABLE<double> passiveCost;
RESETABLE<std::string> name;
RESETABLE<TARIFF::PERIOD> period;
+ RESETABLE<TARIFF::CHANGE_POLICY> changePolicy;
+ RESETABLE<time_t> changePolicyTimeout;
};
//-----------------------------------------------------------------------------
struct TARIFF_DATA
dirPrice(DIR_NUM)
{}
- TARIFF_DATA(const std::string & name)
+ explicit TARIFF_DATA(const std::string & name)
: tariffConf(name),
dirPrice(DIR_NUM)
{}
-
- TARIFF_DATA(const TARIFF_DATA & td)
- : tariffConf(td.tariffConf),
- dirPrice(td.dirPrice)
- {}
-
- TARIFF_DATA & operator=(const TARIFF_DATA & td)
- {
- tariffConf = td.tariffConf;
- dirPrice = td.dirPrice;
- return *this;
- }
};
//-----------------------------------------------------------------------------
struct TARIFF_DATA_RES
dirPrice(DIR_NUM)
{}
+ TARIFF_DATA_RES & operator=(const TARIFF_DATA & td)
+ {
+ tariffConf = td.tariffConf;
+ for (size_t i = 0; i < DIR_NUM; ++i)
+ dirPrice[i] = td.dirPrice[i];
+ return *this;
+ }
+
TARIFF_DATA GetData() const
{
TARIFF_DATA td;