Migrate to libyang2
libnetconf2: getSchema and getConfig were no longer used in netconf-cli,
so I deleted them. They can get readded once the bindings get split into
a separate project.
sysrepo_access: Some sr_val stuff was removed.
YangSchema: type descriptions are not available
availableNodes returns only input nodes for RPC nodes
impl_getSchemaNode: no longer disables error printing
libyang: No longer supports leafrefs without the leaf it points to.
Depends-on: https://cesnet-gerrit-czechlight/c/CzechLight/dependencies/+/5171
Depends-on: https://gerrit.cesnet.cz/c/CzechLight/dependencies/+/5171
Change-Id: Ie49381a003a61a7bb028be7b2fa1d9d926ac4e58
diff --git a/src/yang_access.hpp b/src/yang_access.hpp
index 64538f0..aab5d81 100644
--- a/src/yang_access.hpp
+++ b/src/yang_access.hpp
@@ -7,6 +7,7 @@
#pragma once
+#include <libyang-cpp/Context.hpp>
#include "datastore_access.hpp"
/*! \class YangAccess
@@ -40,7 +41,7 @@
std::shared_ptr<Schema> schema() override;
- void enableFeature(const std::string& module, const std::string& feature);
+ void setEnabledFeatures(const std::string& module, const std::vector<std::string>& features);
[[nodiscard]] std::string dump(const DataFormat format) const override;
void loadModule(const std::string& name);
@@ -57,8 +58,7 @@
void impl_removeNode(const std::string& path);
void validate();
- std::unique_ptr<ly_ctx, void (*)(ly_ctx*)> m_ctx;
- std::unique_ptr<lyd_node, void (*)(lyd_node*)> m_datastore;
+ libyang::Context m_ctx;
+ std::optional<libyang::DataNode> m_datastore;
std::shared_ptr<YangSchema> m_schema;
- const int m_validation_mode;
};