#pragma once #include #include #include #include #include "navparse.hh" #include struct InfluxPusher { typedef std::variant var_t; explicit InfluxPusher(std::string_view dbname); void addValueObserver(int src, std::string_view name, const std::initializer_list>& values, double t, std::optional satid=std::optional()); void addValue(const SatID& id, std::string_view name, const std::initializer_list>& values, double t, std::optional src = std::optional(), std::optional tag = std::optional("src")); void addValue(const vector>& tags, string_view name, const initializer_list>& values, double t); void checkSend(); void doSend(const std::set& buffer); ~InfluxPusher(); std::set d_buffer; void queueValue(const std::string& line); time_t d_lastsent{0}; string d_dbname; bool d_mute{false}; int64_t d_nummsmts{0}; int64_t d_numvalues{0}; int64_t d_numdedupmsmts{0}; map d_msmtmap; };