blob: 0102d1bc8dfcb2aabe1533f2ab3743260ac2c273 [file] [log] [blame]
/*
* Copyright (C) 2018 CESNET, https://photonics.cesnet.cz/
* Copyright (C) 2018 FIT CVUT, https://fit.cvut.cz/
*
* Written by Václav Kubernát <kubervac@fit.cvut.cz>
*
*/
#pragma once
#include <optional>
#include <memory>
namespace sysrepo {
class Callback;
class Connection;
class Session;
class Subscribe;
}
class YangSchema;
class Recorder {
public:
virtual ~Recorder();
virtual void write(const std::string& xpath, const std::optional<std::string>& oldValue, const std::optional<std::string>& newValue) = 0;
};
class SysrepoSubscription {
public:
SysrepoSubscription(const std::string& moduleName, Recorder* rec = nullptr);
private:
std::shared_ptr<sysrepo::Connection> m_connection;
std::shared_ptr<sysrepo::Session> m_session;
std::shared_ptr<YangSchema> m_schema;
std::shared_ptr<sysrepo::Callback> m_callback;
std::shared_ptr<sysrepo::Subscribe> m_subscription;
};