// Copyright 2019 Florian Uhligd #pragma once #include "TimesliceSource.hpp" #include "log.hpp" #include #include #include #include class TimesliceInputArchiveInterface { public: TimesliceInputArchiveInterface(std::string); TimesliceInputArchiveInterface(const TimesliceInputArchiveInterface&) = delete; void operator=(const TimesliceInputArchiveInterface&) = delete; ~TimesliceInputArchiveInterface(); std::unique_ptr GetNextTimeslice(); private: void InitTimesliceArchiveInterface(); void CreateInputFileList(std::string); bool OpenNextFile(int); void run(); std::vector> source_; std::vector> InputFileList; std::vector> timesliceCont; std::set> sortedSource_; logging::OstreamLog status_log_{status}; logging::OstreamLog debug_log_{debug}; std::chrono::high_resolution_clock::time_point time_begin_; };