#ifndef __DumpCandles_h_ #define __DumpCandles_h_ #include "DataFormats.h" #include "../misc_framework/AccumulateInsert.h" #include "../data_framework/MarketHours.h" #include "../../shared/DatabaseWithRetry.h" #include "../../shared/DatabaseSupport.h" #include "../../shared/MiscSupport.h" class DumpCandles { private: time_t _cutoff; AccumulateInsert _dailyData, _intradayData; DatabaseWithRetry _database; void dumpIntraday(const std::string &symbol, const double high, const double low, const double close, const time_t endTime, const int minutes, AccumulateInsert &sendTo); public: DumpCandles(const std::string &db_name, const int daysOfHistory) : _dailyData("REPLACE INTO candles_d(symbol, date, open, close)"), _intradayData("REPLACE INTO candles_5m(symbol, end_time, last_price, high, low)"), _database(db_name, "request_history") { _cutoff = midnight(time(NULL) - 12 * MARKET_HOURS_HOUR - daysOfHistory * 24 * MARKET_HOURS_HOUR); } ~DumpCandles() { sendData(_dailyData); sendData(_intradayData); } void sendData(AccumulateInsert &data); void newData(AccumulateInsert &accumulatedData, std::string newData); void addData(const std::string &symbol, const BarList &data1MinAdjusted, const BarList &data1DayAdjusted, const CorporateActions &corporateActions); }; #endif