#include <string>
#include <vector>
-//-----------------------------------------------------------------------------
-enum
-{
- TRAFF_UP = 0,
- TRAFF_DOWN,
- TRAFF_UP_DOWN,
- TRAFF_MAX
-};
//-----------------------------------------------------------------------------
struct DIRPRICE_DATA
{
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;
}
+ void Splice(const DIRPRICE_DATA_RES & rhs)
+ {
+ hDay.splice(rhs.hDay);
+ mDay.splice(rhs.mDay);
+ hNight.splice(rhs.hNight);
+ mNight.splice(rhs.mNight);
+ priceDayA.splice(rhs.priceDayA);
+ priceNightA.splice(rhs.priceNightA);
+ priceDayB.splice(rhs.priceDayB);
+ priceNightB.splice(rhs.priceNightB);
+ threshold.splice(rhs.threshold);
+ singlePrice.splice(rhs.singlePrice);
+ noDiscount.splice(rhs.noDiscount);
+ }
+
RESETABLE<int> hDay;
RESETABLE<int> mDay;
RESETABLE<int> hNight;
//-----------------------------------------------------------------------------
struct TARIFF_CONF
{
- double fee;
- double free;
- int traffType;
- double passiveCost;
- std::string name;
- TARIFF::PERIOD period;
+ double fee;
+ double free;
+ TARIFF::TRAFF_TYPE traffType;
+ double passiveCost;
+ std::string name;
+ TARIFF::PERIOD period;
TARIFF_CONF()
: fee(0),
free(0),
- traffType(TRAFF_UP_DOWN),
+ traffType(TARIFF::TRAFF_UP_DOWN),
passiveCost(0),
name(),
period(TARIFF::MONTH)
TARIFF_CONF(const std::string & n)
: fee(0),
free(0),
- traffType(TRAFF_UP_DOWN),
+ traffType(TARIFF::TRAFF_UP_DOWN),
passiveCost(0),
name(n),
period(TARIFF::MONTH)
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);
return tc;
}
- RESETABLE<double> fee;
- RESETABLE<double> free;
- RESETABLE<int> traffType;
- RESETABLE<double> passiveCost;
- RESETABLE<std::string> name;
- RESETABLE<TARIFF::PERIOD> period;
+ RESETABLE<double> fee;
+ RESETABLE<double> free;
+ RESETABLE<TARIFF::TRAFF_TYPE> traffType;
+ RESETABLE<double> passiveCost;
+ RESETABLE<std::string> name;
+ RESETABLE<TARIFF::PERIOD> period;
};
//-----------------------------------------------------------------------------
struct TARIFF_DATA