2026-06-17 13:50:44 -07:00
|
|
|
/* (c) ZeroTier, Inc.
|
|
|
|
|
* See LICENSE.txt in nonfree/
|
|
|
|
|
*/
|
|
|
|
|
|
2025-09-08 16:01:50 -07:00
|
|
|
#include "ControllerChangeNotifier.hpp"
|
|
|
|
|
|
|
|
|
|
#include "PubSubWriter.hpp"
|
|
|
|
|
|
|
|
|
|
namespace ZeroTier {
|
|
|
|
|
|
2025-09-18 09:33:04 -07:00
|
|
|
PubSubChangeNotifier::PubSubChangeNotifier(
|
|
|
|
|
std::string controllerID,
|
|
|
|
|
std::string project,
|
|
|
|
|
std::string memberChangeTopic,
|
|
|
|
|
std::string networkChangeTopic)
|
2025-09-08 16:01:50 -07:00
|
|
|
: ControllerChangeNotifier()
|
2025-09-18 09:33:04 -07:00
|
|
|
, _networkChangeWriter(std::make_shared<PubSubWriter>(project, networkChangeTopic, controllerID))
|
|
|
|
|
, _memberChangeWriter(std::make_shared<PubSubWriter>(project, memberChangeTopic, controllerID))
|
2025-09-08 16:01:50 -07:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PubSubChangeNotifier::~PubSubChangeNotifier()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PubSubChangeNotifier::notifyNetworkChange(
|
|
|
|
|
const nlohmann::json& oldNetwork,
|
|
|
|
|
const nlohmann::json& newNetwork,
|
|
|
|
|
const std::string& frontend)
|
|
|
|
|
{
|
2025-09-18 09:33:04 -07:00
|
|
|
_networkChangeWriter->publishNetworkChange(oldNetwork, newNetwork, frontend);
|
2025-09-08 16:01:50 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PubSubChangeNotifier::notifyMemberChange(
|
|
|
|
|
const nlohmann::json& oldMember,
|
2026-05-13 11:01:39 -07:00
|
|
|
const nlohmann::json& newMember,
|
2025-09-08 16:01:50 -07:00
|
|
|
const std::string& frontend)
|
|
|
|
|
{
|
2025-09-18 09:33:04 -07:00
|
|
|
_memberChangeWriter->publishMemberChange(oldMember, newMember, frontend);
|
2025-09-08 16:01:50 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace ZeroTier
|