14USERVER_NAMESPACE_BEGIN
20struct UpdateStatistics final {
21 std::atomic<std::size_t> update_attempt_count{0};
22 std::atomic<std::size_t> update_no_changes_count{0};
23 std::atomic<std::size_t> update_failures_count{0};
25 std::atomic<std::size_t> documents_read_count{0};
26 std::atomic<std::size_t> documents_parse_failures{0};
28 std::atomic<std::chrono::steady_clock::time_point> last_update_start_time{{}};
29 std::atomic<std::chrono::steady_clock::time_point>
30 last_successful_update_start_time{{}};
31 std::atomic<std::chrono::milliseconds> last_update_duration{{}};
35 const UpdateStatistics& stats);
37struct Statistics final {
38 UpdateStatistics full_update;
39 UpdateStatistics incremental_update;
40 std::atomic<std::size_t> documents_current_count{0};
62 void Finish(std::size_t documents_count);
80 impl::Statistics& stats_;
81 impl::UpdateStatistics& update_stats_;
82 bool finished_{
false};
83 const std::chrono::steady_clock::time_point update_start_time_;