Skip to content
Snippets Groups Projects
Commit 172f28b6 authored by Stefan Spettel's avatar Stefan Spettel
Browse files

feat(model): add to_string and validation for UPF info

parent 62405bb0
No related branches found
No related tags found
1 merge request!24Fix wrong ENUM values from Model
......@@ -13,6 +13,7 @@
#include "DnnUpfInfoItem.h"
#include "Helpers.h"
#include "config.hpp"
#include <sstream>
......@@ -29,6 +30,10 @@ DnnUpfInfoItem::DnnUpfInfoItem() {
m_DnaiNwInstanceListIsSet = false;
}
DnnUpfInfoItem::DnnUpfInfoItem(const std::string& dnn) : DnnUpfInfoItem() {
m_Dnn = dnn;
}
void DnnUpfInfoItem::validate() const {
std::stringstream msg;
if (!validate(msg)) {
......@@ -295,4 +300,28 @@ void DnnUpfInfoItem::unsetDnaiNwInstanceList() {
m_DnaiNwInstanceListIsSet = false;
}
std::string DnnUpfInfoItem::to_string(int indent_level) const {
std::string out;
std::string fmt_value = oai::config::get_value_formatter(indent_level);
std::string fmt_value_inner =
oai::config::get_value_formatter(indent_level + 1);
std::string fmt_title = oai::config::get_title_formatter(indent_level);
out.append(fmt::format(fmt_value, "dnn", m_Dnn));
if (m_DnaiListIsSet) {
out.append(fmt::format(fmt_title, "dnai_list:"));
for (const auto& dnai : m_DnaiList) {
out.append(fmt::format(fmt_value_inner, "dnai", dnai));
}
}
if (m_DnaiNwInstanceListIsSet) {
out.append(fmt::format(fmt_title, "dnai_nw_instance_list:"));
for (const auto& nwi : m_DnaiNwInstanceList) {
out.append(fmt::format(fmt_value_inner, nwi.first, nwi.second));
}
}
// TODO other values
return out;
}
} // namespace oai::model::nrf
......@@ -35,6 +35,9 @@ namespace oai::model::nrf {
class DnnUpfInfoItem {
public:
DnnUpfInfoItem();
explicit DnnUpfInfoItem(const std::string& dnn);
virtual ~DnnUpfInfoItem() = default;
/// <summary>
......@@ -110,6 +113,8 @@ class DnnUpfInfoItem {
friend void to_json(nlohmann::json& j, const DnnUpfInfoItem& o);
friend void from_json(const nlohmann::json& j, DnnUpfInfoItem& o);
[[nodiscard]] std::string to_string(int indent_level) const;
protected:
std::string m_Dnn;
......
......@@ -13,6 +13,7 @@
#include "SnssaiUpfInfoItem.h"
#include "Helpers.h"
#include "config.hpp"
#include <sstream>
......@@ -40,6 +41,11 @@ bool SnssaiUpfInfoItem::validate(
const std::string _pathPrefix =
pathPrefix.empty() ? "SnssaiUpfInfoItem" : pathPrefix;
if (!m_SNssai.validate(msg)) {
msg << _pathPrefix << ": SNssai is invalid;";
success = false;
}
/* DnnUpfInfoList */ {
const std::vector<oai::model::nrf::DnnUpfInfoItem>& value =
m_DnnUpfInfoList;
......@@ -130,4 +136,20 @@ void SnssaiUpfInfoItem::unsetRedundantTransport() {
m_RedundantTransportIsSet = false;
}
std::string SnssaiUpfInfoItem::to_string(int indent_level) const {
std::string out;
std::string fmt_title = oai::config::get_title_formatter(indent_level);
out.append(fmt::format(fmt_title, "snssai_upf_info_item:"));
out.append(m_SNssai.to_string(indent_level + 1));
if (!m_DnnUpfInfoList.empty()) {
fmt_title = oai::config::get_title_formatter(indent_level + 1);
out.append(fmt::format(fmt_title, "dnns:"));
for (const auto& dnn : m_DnnUpfInfoList) {
out.append(dnn.to_string(indent_level + 2));
}
}
return out;
}
} // namespace oai::model::nrf
......@@ -80,6 +80,8 @@ class SnssaiUpfInfoItem {
friend void to_json(nlohmann::json& j, const SnssaiUpfInfoItem& o);
friend void from_json(const nlohmann::json& j, SnssaiUpfInfoItem& o);
[[nodiscard]] std::string to_string(int indent_level) const;
protected:
oai::model::common::Snssai m_SNssai;
......
......@@ -13,6 +13,7 @@
#include "UpfInfo.h"
#include "Helpers.h"
#include "config.hpp"
#include <sstream>
......@@ -536,4 +537,18 @@ void UpfInfo::unsetDataForwarding() {
m_DataForwardingIsSet = false;
}
std::string UpfInfo::to_string(int indent_level) const {
std::string out;
std::string fmt_title = oai::config::get_title_formatter(indent_level);
out.append(fmt::format(fmt_title, "upf_info:"));
if (!m_SNssaiUpfInfoList.empty()) {
for (const auto& info : m_SNssaiUpfInfoList) {
out.append(info.to_string(indent_level + 1));
}
}
return out;
// TODO other values
}
} // namespace oai::model::nrf
......@@ -176,6 +176,8 @@ class UpfInfo {
friend void to_json(nlohmann::json& j, const UpfInfo& o);
friend void from_json(const nlohmann::json& j, UpfInfo& o);
[[nodiscard]] std::string to_string(int indent_level) const;
protected:
std::vector<oai::model::nrf::SnssaiUpfInfoItem> m_SNssaiUpfInfoList;
......
......@@ -37,6 +37,10 @@ list(APPEND USED_COMMON_MODEL_SRC_FILES
${COMMON_MODEL_DIR}/Snssai.cpp
${COMMON_MODEL_DIR}/Helpers.cpp
${COMMON_MODEL_DIR}/PduSessionType.cpp
${COMMON_MODEL_DIR}/PduSessionType_anyOf.cpp
${COMMON_MODEL_DIR}/Ipv6Prefix.cpp
${COMMON_MODEL_DIR}/Ipv6Addr.cpp
${COMMON_MODEL_DIR}/AtsssCapability.cpp
)
#set(USED_COMMON_MODEL_SRC_FILES PARENT_SCOPE)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment