ZeroTierOne/nonfree/controller/StatusWriter.hpp
Grant Limberg 024824c2fe
Some checks are pending
/ build_macos (push) Waiting to run
/ build_windows (push) Waiting to run
/ Central Controller Build (push) Waiting to run
/ multi-arch-docker (push) Blocked by required conditions
/ build_ubuntu (push) Waiting to run
wire up pubsub outgoing status changes from controller -> CV2
2025-09-05 14:52:16 -07:00

45 lines
944 B
C++

#ifndef STATUS_WRITER_HPP
#define STATUS_WRITER_HPP
#include "../../node/InetAddress.hpp"
#include <string>
namespace ZeroTier {
/**
* Abstract interface for writing status information somewhere.
*
* Implementations might write to a database, a file, or something else.
*/
class StatusWriter {
public:
virtual ~StatusWriter() = default;
virtual void updateNodeStatus(
const std::string& network_id,
const std::string& node_id,
const std::string& os,
const std::string& arch,
const std::string& version,
const InetAddress& address,
int64_t last_seen,
const std::string& target) = 0;
virtual size_t queueLength() const = 0;
virtual void writePending() = 0;
};
struct PendingStatusEntry {
std::string network_id;
std::string node_id;
std::string os;
std::string arch;
std::string version;
InetAddress address;
int64_t last_seen;
std::string target;
};
} // namespace ZeroTier
#endif // STATUS_WRITER_HPP