From 17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d Mon Sep 17 00:00:00 2001 From: Tadao Tanikawa Date: Fri, 20 Nov 2020 23:36:23 +0900 Subject: Re-organized sub-directory by category Since all the sub-directories were placed in the first level, created sub-directories, "hal", "module", and "service" for classification and relocated each component. Signed-off-by: Tadao Tanikawa Change-Id: Ifdf743ac0d1893bd8e445455cf0d2c199a011d5c --- .../client/NS_ConfigParser/src/ns_cfg_writer.cpp | 135 +++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100755 service/native/framework_unified/client/NS_ConfigParser/src/ns_cfg_writer.cpp (limited to 'service/native/framework_unified/client/NS_ConfigParser/src/ns_cfg_writer.cpp') diff --git a/service/native/framework_unified/client/NS_ConfigParser/src/ns_cfg_writer.cpp b/service/native/framework_unified/client/NS_ConfigParser/src/ns_cfg_writer.cpp new file mode 100755 index 0000000..4bf16d5 --- /dev/null +++ b/service/native/framework_unified/client/NS_ConfigParser/src/ns_cfg_writer.cpp @@ -0,0 +1,135 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * 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. + */ + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup tag_NS_ConfigParser +/// \brief This file contains implementation of CCFGWriter class. +/// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// Include Files +//////////////////////////////////////////////////////////////////////////////////////////////////// +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + + +CCFGWriter::CCFGWriter(): m_cFilePath(""), m_pCFGParser(NULL) { // LCOV_EXCL_BR_LINE 11:except branch + FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); +} + +CCFGWriter::CCFGWriter(const std::string &f_c_filepath): m_cFilePath(f_c_filepath), m_pCFGParser(NULL) { + FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "File Path %s", m_cFilePath.c_str()); + + m_pCFGParser = new CCFGParser(m_cFilePath); + + if (NULL == m_pCFGParser) { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Memory allocation error for m_pCFGParser"); + } +} + +CCFGWriter::~CCFGWriter() { + if (NULL != m_pCFGParser) { + delete m_pCFGParser; // LCOV_EXCL_BR_LINE 11:except branch + m_pCFGParser = NULL; + } +} + +EFrameworkunifiedStatus CCFGWriter::ParseFile(const std::string &f_c_filepath) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); + + // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "File Path %s", f_c_filepath.c_str()); + + m_cFilePath.assign(f_c_filepath); + + m_pCFGParser = new(std::nothrow) CCFGParser(); // LCOV_EXCL_BR_LINE 11:except branch + + if (NULL == m_pCFGParser) { // LCOV_EXCL_BR_LINE 5:m_pCFGParser cannot be NULL, because internal logic guarantee + // LCOV_EXCL_START 5:m_pCFGParser cannot be NULL, because internal logic guarantee + AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Memory allocation error for m_pCFGParser"); + l_e_status = eFrameworkunifiedStatusNullPointer; + // LCOV_EXCL_STOP + } else { + l_e_status = m_pCFGParser->CFGParseFile(f_c_filepath); + } + + FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); + return l_e_status; +} + +EFrameworkunifiedStatus CCFGWriter::SetPath(const std::string &f_c_path) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (!f_c_path.empty()) { // LCOV_EXCL_BR_LINE 11:except branch + // set the file path + m_cFilePath.assign(f_c_path); + } else { + l_e_status = eFrameworkunifiedStatusInvldParam; + } + + return l_e_status; +} + +VOID CCFGWriter::SetDataPtr(PVOID f_p_data) { + if (NULL != f_p_data) { + // set the doc pointer + m_pCFGParser = static_cast(f_p_data); + } else { + m_pCFGParser = NULL; + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Data Pointer not set in cfg writer"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" + } +} + +EFrameworkunifiedStatus CCFGWriter::SetValue(const std::string &f_c_key, std::string f_c_value) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pCFGParser && !f_c_key.empty()) { + // set the data in internal CFG structure + l_e_status = m_pCFGParser->CFGSetData(f_c_key, f_c_value); // LCOV_EXCL_BR_LINE 11:except branch + } else { + l_e_status = eFrameworkunifiedStatusInvldParam; + } + + return l_e_status; +} + +EFrameworkunifiedStatus CCFGWriter::SaveData() { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pCFGParser) { + if (0 == access(m_cFilePath.c_str(), W_OK)) { + // save the data permanently in config file + l_e_status = m_pCFGParser->CFGSaveData(m_cFilePath); + } else { + l_e_status = eFrameworkunifiedStatusFail; + } + } else { + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} -- cgit 1.2.3-korg