diff options
author | 2020-11-20 23:36:23 +0900 | |
---|---|---|
committer | 2020-11-22 09:02:55 +0900 | |
commit | 17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d (patch) | |
tree | 582a9768558d9eaf261ca5df6136e9de54c95816 /service/native/framework_unified/client/NS_ConfigParser/src/ns_config_writer.cpp | |
parent | 9e86046cdb356913ae026f616e5bf17f6f238aa5 (diff) |
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 <tanikawa.tadao@jp.panasonic.com>
Change-Id: Ifdf743ac0d1893bd8e445455cf0d2c199a011d5c
Diffstat (limited to 'service/native/framework_unified/client/NS_ConfigParser/src/ns_config_writer.cpp')
-rwxr-xr-x | service/native/framework_unified/client/NS_ConfigParser/src/ns_config_writer.cpp | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/service/native/framework_unified/client/NS_ConfigParser/src/ns_config_writer.cpp b/service/native/framework_unified/client/NS_ConfigParser/src/ns_config_writer.cpp new file mode 100755 index 0000000..601500d --- /dev/null +++ b/service/native/framework_unified/client/NS_ConfigParser/src/ns_config_writer.cpp @@ -0,0 +1,227 @@ +/* + * @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 CNSConfigWriter class. +/// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// Include Files +//////////////////////////////////////////////////////////////////////////////////////////////////// +#include <native_service/ns_config_parser_if.h> +#include <native_service/ns_writer.h> +#include <dlfcn.h> +#include <sstream> +#include <cstring> +#include <string> +#include "ns_cfg_writer.h" +#include "ns_config_parser_frameworkunifiedlog.h" + + +CNSConfigWriter::CNSConfigWriter(): m_pWriter(NULL) { +} + +CNSConfigWriter::CNSConfigWriter(const std::string &f_c_filepath): m_pWriter(NULL) { + FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "File Path %s", f_c_filepath.c_str()); + + Parse(f_c_filepath); +} + +CNSConfigWriter::CNSConfigWriter(const std::string &f_c_filepath, BOOL f_b_noload): m_pWriter(NULL) { + FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "File Path %s", f_c_filepath.c_str()); + + Create(f_c_filepath); +} + +CNSConfigWriter::~CNSConfigWriter() { + FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "Destructor"); + + if (NULL != m_pWriter) { + delete m_pWriter; // LCOV_EXCL_BR_LINE 11:except branch + m_pWriter = NULL; + } + // TODO(my_username): dlclose. +} + +EFrameworkunifiedStatus CNSConfigWriter::Parse(const std::string &f_c_filepath) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pWriter) { + delete m_pWriter; // LCOV_EXCL_BR_LINE 11:except branch + m_pWriter = NULL; + } + + // create parser object depending on file extension + if (std::strstr(f_c_filepath.c_str(), ".cfg") != NULL) { + m_pWriter = new(std::nothrow) CCFGWriter(); // LCOV_EXCL_BR_LINE 11:except branch + } else { + // LCOV_EXCL_BR_START 15:marco defined in "native_service/ns_logger_if.h" + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Not CFG"); + // LCOV_EXCL_BR_STOP + } + + if (NULL != m_pWriter) { + l_e_status = m_pWriter->ParseFile(f_c_filepath); + } else { + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} + +EFrameworkunifiedStatus CNSConfigWriter::Create(const std::string &f_c_filepath) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pWriter) { + delete m_pWriter; // LCOV_EXCL_BR_LINE 11:except branch + m_pWriter = NULL; + } + + // create parser object depending on file extension + if (std::strstr(f_c_filepath.c_str(), ".cfg") != NULL) { + m_pWriter = new(std::nothrow) CCFGWriter(); // LCOV_EXCL_BR_LINE 11:except branch + } else { + // LCOV_EXCL_BR_START 15:marco defined in "native_service/ns_logger_if.h" + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Not CFG"); + // LCOV_EXCL_BR_STOP + l_e_status = eFrameworkunifiedStatusFail; + } + + if (NULL != m_pWriter) { + l_e_status = m_pWriter->SetPath(f_c_filepath); + } else { + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} + +VOID CNSConfigWriter::SetDataPtr(PVOID f_p_data) { + if (NULL != m_pWriter) { + m_pWriter->SetDataPtr(f_p_data); + } else { + // LCOV_EXCL_BR_START 15:marco defined in "native_service/ns_logger_if.h" + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "m_pWriter is NULL"); + // LCOV_EXCL_BR_STOP + } +} + +EFrameworkunifiedStatus CNSConfigWriter::Save() { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pWriter) { + // save the updated config file + l_e_status = m_pWriter->SaveData(); + } else { + // LCOV_EXCL_BR_START 15:marco defined in "native_service/ns_logger_if.h" + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Config Writer (m_pWriter) is NULL"); + // LCOV_EXCL_BR_STOP + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} + +EFrameworkunifiedStatus CNSConfigWriter::SetBool(const std::string &f_c_key, BOOL f_b_value) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pWriter) { + std::string l_c_temp = ""; + + if (TRUE == f_b_value) { + l_c_temp = "TRUE"; + l_e_status = m_pWriter->SetValue(f_c_key, l_c_temp); // LCOV_EXCL_BR_LINE 11:except branch + } else if (FALSE == f_b_value) { // LCOV_EXCL_BR_LINE 11:except branch + l_c_temp = "FALSE"; + l_e_status = m_pWriter->SetValue(f_c_key, l_c_temp); // LCOV_EXCL_BR_LINE 11:except branch + } else { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "received bool value is not proper:: %d", f_b_value); + l_e_status = eFrameworkunifiedStatusInvldParam; + } + } else { + // LCOV_EXCL_BR_START 15:marco defined in "native_service/ns_logger_if.h" + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Config Writer (m_pWriter) is NULL"); + // LCOV_EXCL_BR_STOP + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} + +EFrameworkunifiedStatus CNSConfigWriter::Set(const std::string &f_cKey, F_64 f_f_value) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pWriter) { + std::stringstream l_cStream; + l_cStream << f_f_value; + + l_e_status = m_pWriter->SetValue(f_cKey, l_cStream.str()); // LCOV_EXCL_BR_LINE 11:except branch + } else { + // LCOV_EXCL_BR_START 15:marco defined in "native_service/ns_logger_if.h" + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Config Writer (m_pWriter) is NULL"); + // LCOV_EXCL_BR_STOP + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} + +EFrameworkunifiedStatus CNSConfigWriter::Set(const std::string &f_cKey, F_32 f_fValue) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pWriter) { // LCOV_EXCL_BR_LINE 11:except branch + std::stringstream l_cStream; + l_cStream << f_fValue; + + l_e_status = m_pWriter->SetValue(f_cKey, l_cStream.str()); // LCOV_EXCL_BR_LINE 11:except branch + } else { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Config Writer (m_pWriter) is NULL"); + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} + +EFrameworkunifiedStatus CNSConfigWriter::Set(const std::string &f_cKey, SI_32 f_si_value) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pWriter) { + std::stringstream l_cStream; + l_cStream << f_si_value; // LCOV_EXCL_BR_LINE 11:except branch + + l_e_status = m_pWriter->SetValue(f_cKey, l_cStream.str()); // LCOV_EXCL_BR_LINE 11:except branch + } else { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Config Writer (m_pWriter) is NULL"); // LCOV_EXCL_BR_LINE 11:except branch + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} + +EFrameworkunifiedStatus CNSConfigWriter::Set(const std::string &f_cKey, const std::string &f_s_value) { + EFrameworkunifiedStatus l_e_status = eFrameworkunifiedStatusOK; + + if (NULL != m_pWriter) { + l_e_status = m_pWriter->SetValue(f_cKey, f_s_value); // LCOV_EXCL_BR_LINE 11:except branch + } else { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Config Writer (m_pWriter) is NULL"); // LCOV_EXCL_BR_LINE 11:except branch + l_e_status = eFrameworkunifiedStatusNullPointer; + } + + return l_e_status; +} |