X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fmodel%2FXAppConfig.cpp;fp=src%2Fmodel%2FXAppConfig.cpp;h=a5402dbde5629506cc6bd6315db10912490e7a59;hb=e64778dac480d66d93449efd3e9767cea4f980f9;hp=0000000000000000000000000000000000000000;hpb=56044b79a2282e50a8c271b36289b1724cb40cd8;p=ric-plt%2Fxapp-frame-cpp.git diff --git a/src/model/XAppConfig.cpp b/src/model/XAppConfig.cpp new file mode 100644 index 0000000..a5402db --- /dev/null +++ b/src/model/XAppConfig.cpp @@ -0,0 +1,62 @@ +/* +# ================================================================================== +# Copyright (c) 2020 HCL Technologies Limited. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ================================================================================== +*/ +#include"XAppConfig.h" +namespace xapp { + namespace model { + void from_json(const nlohmann::json& j, XAppConfig& ref) { + std::cout << __PRETTY_FUNCTION__ << std::endl; + ref.validate_json(j); + j.at("metadata").get_to(ref.m_ConfigMetadata); + j.at("config").get_to(ref.config); + + } + void from_json(const nlohmann::json& j, std::vector& ref) { + for (auto& element : j) { + XAppConfig tmp; + tmp.validate_json(element); + for (auto& val : element.items()) + { + if (val.key() == "metadata") { + tmp.m_ConfigMetadata.ConfigType = val.value()["configType"]; + tmp.m_ConfigMetadata.XappName = val.value()["xappName"]; + } + else if (val.key() == "config") { + tmp.config = val.value(); + } + } + ref.push_back(tmp); + } + } + + void to_json(nlohmann::json& j, const XAppConfig& ref) { + j = nlohmann::json{ + {"metadata",{{"configType",ref.m_ConfigMetadata.ConfigType},{"xappName",ref.m_ConfigMetadata.XappName}}}, + {"config",ref.config} + }; + } + + void to_json(nlohmann::json& j, const std::vector& ref) { + for (int i = 0; i < ref.size(); i++) + { + nlohmann::json tmp_j; + to_json(tmp_j, ref[i]); + j += tmp_j; + } + } + } +} \ No newline at end of file