diff options
Diffstat (limited to 'video_in_hal/systemservice/version_library/library')
4 files changed, 0 insertions, 724 deletions
diff --git a/video_in_hal/systemservice/version_library/library/Makefile b/video_in_hal/systemservice/version_library/library/Makefile deleted file mode 100755 index 79654a2..0000000 --- a/video_in_hal/systemservice/version_library/library/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# -# @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. -# - -# installed shared library(.so) -INST_SHLIBS := libssver - -# compiled source -libssver_SRCS := ss_ver.cc - -# installed header -INST_HEADERS := version_library.h ss_ver.h - -# additional source path -VPATH += ./src \ - ./include/$(COMPONENT_NAME) - -# additional include path -CPPFLAGS += -I./include - -# linked library -LDFLAGS += -Wl,--no-as-needed -LDLIBS += -Wl,-Bdynamic,--no-as-needed -lNS_FrameworkUnified - -include ../../system_service.mk diff --git a/video_in_hal/systemservice/version_library/library/include/system_service/ss_ver.h b/video_in_hal/systemservice/version_library/library/include/system_service/ss_ver.h deleted file mode 100755 index a78c5ff..0000000 --- a/video_in_hal/systemservice/version_library/library/include/system_service/ss_ver.h +++ /dev/null @@ -1,338 +0,0 @@ -/* - * @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. - */ - -#ifndef VERSION_LIBRARY_LIBRARY_INCLUDE_SYSTEM_SERVICE_SS_VER_H_ -#define VERSION_LIBRARY_LIBRARY_INCLUDE_SYSTEM_SERVICE_SS_VER_H_ - -#include <native_service/frameworkunified_types.h> -#include <string> -#include <algorithm> -#include <map> - -/** - * @file ss_ver.h - * @brief \~english This file supports CSSVer class, This class is a generic CSSVer abstraction - */ -/** @addtogroup BaseSystem - * @{ - */ -/** @addtogroup system_service - * @ingroup BaseSystem - * @{ - */ -/** @addtogroup version_library - * @ingroup system_service - * @{ - */ - -using namespace std; // NOLINT (readability/nolint) - -#define SSVER_VERCHAR_MAX (64) -#define SSVER_DATE_MAX (16) - -/** -* @struct SSVER_PkgInfo -* @brief \~english The structure of version package information -*/ -typedef struct { - char version[SSVER_VERCHAR_MAX]; /*!< \~english Version information (String):*/ - /*!< \~english The termination of string must be "\0"*/ - char date[SSVER_DATE_MAX]; /*!< \~english Date (String):The termination of string must be "\0" */ - /*!< \~english Date (String):Store "\0" when date information does not exist.*/ -} SSVER_PkgInfo; - -typedef std::map<std::string, SSVER_PkgInfo> SSVerPkgList; -typedef SSVerPkgList::const_iterator SSVerPkgListIter; - -/////////////////////////////////////////////////////////////////////////////////////////////////// -// \ingroup SS_SystemManager -/////////////////////////////////////////////////////////////////////////////////////////////////// -// \brief This class is a generic CSSVer abstraction -/////////////////////////////////////////////////////////////////////////////////////////////////// -/** - * @class CSSVer - * \~english @brief Version information set-up/acquisition - * \~english @par Brief Introduction - * Class to provide the function of the version information set-up/acquisition - * - */ -class CSSVer { - private: - SSVerPkgList m_verList; - void dump(void) const; - - public: - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup SS_SystemManager - /// \~english @par Summary - /// Constructor for CSSVer class - /// \~english @param None - /// \~english @retval None - /// \~english @par Preconditions - /// - None - /// \~english @par Changes of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// None - /// \~english @par Classification - /// Public - /// \~english @par Type - /// None - /// \~english @par Detail - /// Creates the instance of CSSVer class. \n - /// This API reads the version information registered in VersionDB and creates the package - /// lists inside a instance. \n - /// This can create some instances at the same time. \n - /// Meanwhile, this does not guarantee the action when some threads - /// inside same process access to same instances. \n - /// It is possible that version information is overwritten from other process but the information overwritten - /// at other process is not reflected into the version information held inside self-instance. - /// By this, it is necessary to recreate an instance to get the latest information. \n - /// \~english @see ~CSSVer - //////////////////////////////////////////////////////////////////////////////////// - CSSVer(); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup SS_SystemManager - /// \~english @par Summary - /// Destructor for CSSVer class - /// \~english @param None - /// \~english @retval None - /// \~english @par Preconditions - /// - None - /// \~english @par Changes of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// None - /// \~english @par Classfication - /// Public - /// \~english @par Type - /// None - /// \~english @par Detail - /// Releases the instance of CSSVer class. - /// \~english @see CSSVer - //////////////////////////////////////////////////////////////////////////////////// - ~CSSVer(); - - // Wrapper - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup SS_SystemManager - /// \~english @par Summary - /// Returns the first iterator of package list. - /// \~english @param None - /// \~english @retval SSVerPkgListIter The first iterator of package list - /// \~english @par - /// The structure of version package information - /// \~english @code - /// #define SSVER_VERCHAR_MAX (64) - /// #define SSVER_DATE_MAX (16) - /// typedef struct{ - /// char version[SSVER_VERCHAR_MAX]; /* Version information (String): The termination of - /// string must be "\0" */ - /// char date[SSVER_DATE_MAX]; /* Date (String): The termination of string must be "\0"*/ - /// /* Store "\0" when date information does not exist. */ - /// }SSVER_PkgInfo; - /// - /// typedef std::map<std::string, SSVER_PkgInfo> SSVerPkgList; /* Package list definition */ - /// typedef SSVerPkgList::const_iterator SSVerPkgListIter; /* Iterator definition of package list */ - /// @endcode - /// \~english @par Preconditions - /// - None - /// \~english @par Changes of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// None - /// \~english @par Classification - /// Public - /// \~english @par Type - /// Sync only(None communication) - /// \~english @par Detail - /// Gets and returns the first iterator of package list from the package list inside an instance. - /// \~english @see end - //////////////////////////////////////////////////////////////////////////////////// - SSVerPkgListIter begin() { - return m_verList.begin(); - } - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup SS_SystemManager - /// \~english @par Summary - /// Returns the end iterator of package list. - /// \~english @param None - /// \~english @retval SSVerPkgListIter The end iterator of package list - /// \~english @par - /// The structure of version package information - /// \~english @code - /// #define SSVER_VERCHAR_MAX (64) - /// #define SSVER_DATE_MAX (16) - /// typedef struct{ - /// char version[SSVER_VERCHAR_MAX]; /* Version information (String): The termination of - /// string must be "\0" */ - /// char date[SSVER_DATE_MAX]; /* Date (String): The termination of string must be "\0" */ - /// /* Store "\0" when date information does not exist. */ - /// }SSVER_PkgInfo; - /// - /// typedef std::map<std::string, SSVER_PkgInfo> SSVerPkgList; /* Package list definition */ - /// typedef SSVerPkgList::const_iterator SSVerPkgListIter; /* Iterator definition of package list */ - /// @endcode - /// \~english @par Preconditions - /// - None - /// \~english @par Changes of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// None - /// \~english @par Classification - /// Public - /// \~english @par Type - /// Sync only(None communication) - /// \~english @par Detail - /// Gets and returns the last iterator of package list from the package list inside a instance. - /// \~english @see begin - //////////////////////////////////////////////////////////////////////////////////// - SSVerPkgListIter end() { - return m_verList.end(); - } - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup SS_SystemManager - /// \~english @par Summary - /// Checks whether data exists in package list or not. - /// \~english @param None - /// \~english @retval bool The possibility of data existence of package list - /// \~english @par - /// - true : Data does not exist - /// - false : Data exists - /// \~english @par Preconditions - /// - None - /// \~english @par Changes of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// None - /// \~english @par Classification - /// Public - /// \~english @par Type - /// Sync only(None communication) - /// \~english @par Detail - /// Returns true when package list is null and return false when data exists. - /// \~english @see None - //////////////////////////////////////////////////////////////////////////////////// - bool empty() { - return m_verList.empty(); - } - - // Setter,getter - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup SS_SystemManager - /// \~english @par Summary - /// Gets the package information of specified package. - /// \~english @param [in] name - /// std::string & - Package name - /// \~english @param [out] p_info - /// SSVER_PkgInfo* - Pointer to the storage area of package information - /// \~english @par - /// The structure of version package information - /// \~english @code - /// #define SSVER_VERCHAR_MAX (64) - /// #define SSVER_DATE_MAX (16) - /// typedef struct{ - /// char version[SSVER_VERCHAR_MAX]; /* Version information (String): The termination of - /// string must be "\0" */ - /// char date[SSVER_DATE_MAX]; /* Date (String): The termination of string must be "\0" */ - /// /* Store "\0" when date information does not exist. */ - /// }SSVER_PkgInfo; - /// - /// typedef std::map<std::string, SSVER_PkgInfo> SSVerPkgList; /* Package list definition */ - /// typedef SSVerPkgList::const_iterator SSVerPkgListIter; /* Iterator definition of package list */ - /// @endcode - /// \~english @retval eFrameworkunifiedStatusOK Succeeded in getting package information - /// \~english @retval eFrameworkunifiedStatusFileLoadError Loading error for file - /// \~english @retval eFrameworkunifiedStatusFail Failed at some process - /// \~english @par Preconditions - /// - None - /// \~english @par Changes of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - Pointer(p_info) to the storage area for package information specified - /// by parameters is NULL. [eFrameworkunifiedStatusFail] - /// - Package information does not exist. [eFrameworkunifiedStatusFileLoadError] - /// - Unexpected error occurs. [eFrameworkunifiedStatusFail] - /// \~english @par Classification - /// Public - /// \~english @par Type - /// Sync only(None communication) - /// \~english @par Detail - /// Returns this package information if the package name specified by parameters exists - /// in the package information list inside an instance. - /// This API reads and returns the package information from package - /// information storing files if it does not exist. \n - /// This adds the package information read from files to the package information list - /// inside an instance. \n - /// When other CSSVer instance (B) adds package from setPkgInfo during creating instance (A), - /// after that, this API can get the package information added by instance (A). - /// \~english @see setPkgInfo - //////////////////////////////////////////////////////////////////////////////////// - EFrameworkunifiedStatus getPkgInfo(const std::string &name, SSVER_PkgInfo* p_info); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup SS_SystemManager - /// \~english @par Summary - /// Sets the package information of specified package. - /// \~english @param [in] name - /// std::string & - Package name - /// \~english @param [in] info - /// SSVER_PkgInfo* - Package information - /// \~english @par - /// The structure of version package information - /// \~english @code - /// #define SSVER_VERCHAR_MAX (64) - /// #define SSVER_DATE_MAX (16) - /// typedef struct{ - /// char version[SSVER_VERCHAR_MAX]; /* Version information (String): The termination of - /// string must be "\0" */ - /// char date[SSVER_DATE_MAX]; /* Date (String): The termination of string must be \ */ - /// /* Store "\0" when date information does not exist. */ - /// }SSVER_PkgInfo; - /// - /// typedef std::map<std::string, SSVER_PkgInfo> SSVerPkgList; /* Package list definition */ - /// typedef SSVerPkgList::const_iterator SSVerPkgListIter; /* Iterator definition of package list */ - /// @endcode - /// \~english @retval eFrameworkunifiedStatusOK Succeeded in setting package information - /// \~english @retval eFrameworkunifiedStatusFail Faild at some process - /// \~english @par Preconditions - /// - None - /// \~english @par Changes of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - Unexpected error occurs [eFrameworkunifiedStatusFail] - /// \~english @par Classification - /// Public - /// \~english @par Type - /// Sync only(None communication) - /// \~english @par Detail - /// Sets the package information specified by parameters and update VersionDB. \n - /// When some package information exists in the package information list inside an instance, - /// this API adds the package information specified by parameters to the package - /// information list inside an instance, - /// and writes the package information specified by parameters in package information storing files. \n - /// When package information does not exist in the package information list inside an instance, - /// this sets the package information specified by parameters to the package information list inside an instance - /// and writes the package information specified by parameters in package information storing files. - /// \~english @see getPkgInfo - //////////////////////////////////////////////////////////////////////////////////// - EFrameworkunifiedStatus setPkgInfo(const std::string &name, SSVER_PkgInfo &info); // NOLINT (readability/nolint) -}; - -#endif // VERSION_LIBRARY_LIBRARY_INCLUDE_SYSTEM_SERVICE_SS_VER_H_ diff --git a/video_in_hal/systemservice/version_library/library/include/system_service/version_library.h b/video_in_hal/systemservice/version_library/library/include/system_service/version_library.h deleted file mode 100755 index f56a259..0000000 --- a/video_in_hal/systemservice/version_library/library/include/system_service/version_library.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// @copyright Copyright (c) 2017-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. -// -/** - * @file version_library.h - * @brief \~english This file include ss_ver.h - */ -/** @addtogroup BaseSystem - * @{ - */ -/** @addtogroup system_service - * @ingroup BaseSystem - * @{ - */ -/** @addtogroup version_library - * @ingroup system_service - * @{ - */ -// Include guard -#ifndef SYSTEMSERVICE_VERSIONLIBRARY_H_ // NOLINT(build/header_guard) -#define SYSTEMSERVICE_VERSIONLIBRARY_H_ - -#include "system_service/ss_ver.h" - -#endif // SYSTEMSERVICE_VERSIONLIBRARY_H_ -/** @}*/ -/** @}*/ -/** @}*/ diff --git a/video_in_hal/systemservice/version_library/library/src/ss_ver.cc b/video_in_hal/systemservice/version_library/library/src/ss_ver.cc deleted file mode 100755 index 70f120c..0000000 --- a/video_in_hal/systemservice/version_library/library/src/ss_ver.cc +++ /dev/null @@ -1,309 +0,0 @@ -/* - * @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. - */ - -#include <sys/stat.h> -#include <sys/types.h> -#include <sys/file.h> -#include <dirent.h> -#include <unistd.h> -#include <fcntl.h> - -#include <native_service/ns_logger_if.h> -#include <system_service/ss_templates.h> - -#include <system_service/ss_ver.h> - -// For DEBUG -#define ZONE_INIT ZONEMASK(10) -#define ZONE_FUNC ZONEMASK(11) -#define ZONE_MEM ZONEMASK(12) -#define ZONE_INFO ZONEMASK(29) -#define ZONE_WARN ZONEMASK(30) -#define ZONE_ERR ZONEMASK(31) - -#define ZONE_DEFAULT ZONE_FUNC - -#define SSVER_TMPDIR "/tmp/ssver" - -// FILE IO -class CPkgInfoIo { - private: - int m_fd; - std::string m_path; - static std::map<std::string, int> m_dbgCnt; // Debug information for exclusive leakage check - - void openFD(const int32_t mode) { - m_fd = open(m_path.c_str(), mode, 0664); // LCOV_EXCL_BR_LINE 11:except,C++ STL - if (m_fd == -1) { - SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h - throw eFrameworkunifiedStatusFail; - } - - // File lock to protect file accesses - SS_ASERT_ERRNO(0 == flock(m_fd, LOCK_EX)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h - // LCOV_EXCL_BR_START 11:Unexpected branch - m_dbgCnt[m_path]++; - SS_ASERT_LOG(m_dbgCnt[m_path] == 1, "%s:%d", m_path.c_str(), // LCOV_EXCL_BR_LINE 15: marco define @ss_templates.h - m_dbgCnt[m_path]); - // LCOV_EXCL_BR_STOP - } - -public: - CPkgInfoIo(const std::string& pkgName) - : m_fd(-1), - m_path(SSVER_TMPDIR) { // LCOV_EXCL_BR_LINE 11:Unexpected branch - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT,__FUNCTION__,"+:%s",pkgName.c_str()); - m_path += "/"; - m_path += pkgName; - - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT,__FUNCTION__,"-"); - } - - ~CPkgInfoIo() { - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "+"); - - // LCOV_EXCL_BR_START 11:Unexpected branch - m_dbgCnt[m_path]--; - SS_ASERT_LOG(m_dbgCnt[m_path] == 0, "%s:%d", m_path.c_str(), // LCOV_EXCL_BR_LINE 15: marco define @ss_templates.h - m_dbgCnt[m_path]); - SS_ASERT_ERRNO(0 == flock(m_fd, LOCK_UN)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h - - if (m_fd != -1) { - SS_ASERT_ERRNO(0 == close(m_fd)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h - } - // LCOV_EXCL_BR_STOP - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "-"); - } - - void putData(SSVER_PkgInfo &info) { // NOLINT (readability/nolint) - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "+"); - openFD(O_RDWR|O_CREAT|O_CLOEXEC); - ssize_t wsz; - wsz = write(m_fd, &info, sizeof(info)); - if (wsz != sizeof(info)) { // LCOV_EXCL_BR_LINE 5:std c lib error process - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failed write(). wsz=%d size=%d errno=%d", // LCOV_EXCL_LINE 5: glibc fail safe - wsz, sizeof(info), errno); // LCOV_EXCL_LINE 5:std c lib error process - throw eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 5:std c lib error process - } - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "-"); - } - - void getData(SSVER_PkgInfo* p_info) { - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "+"); - openFD(O_RDONLY|O_CLOEXEC); - - ssize_t rsz; - rsz = my_read(m_fd, p_info, sizeof(*p_info)); - if (rsz != sizeof(*p_info)) { // LCOV_EXCL_BR_LINE 5:std c lib error process - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failed read(). rsz=%d size=%d", rsz, // LCOV_EXCL_LINE 5:std c lib error process - sizeof(*p_info)); // LCOV_EXCL_LINE 5:std c lib error process - p_info->version[0] = '\0'; // LCOV_EXCL_LINE 5:std c lib error process - p_info->date[0] = '\0'; // LCOV_EXCL_LINE 5:std c lib error process - throw eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 5:std c lib error process - } - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "-"); - } - - int my_read(int fd, void* buf, int size) { - int done = 0; - char *buffer = reinterpret_cast<char*>(buf); - int sz = done; - - while (size > 0) { - done = read(fd, buffer + done, size); - if (done < 0) { // LCOV_EXCL_BR_LINE 5:std c lib error process - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - - SS_ASERT_ERRNO(0); // LCOV_EXCL_LINE 5:std c lib error process - if (errno == EINTR) { // LCOV_EXCL_LINE 5:std c lib error process - continue; - } else { - return done; - } - } else if (done == 0) { // LCOV_EXCL_BR_LINE 5:std c lib error process - return sz; - } - size -= done; - sz += done; - } - return sz; - } -}; - -std::map<std::string, int> CPkgInfoIo::m_dbgCnt; // Actual status - -//================================================================== -// private -//================================================================== -void CSSVer::dump(void) const { // LCOV_EXCL_START 7:debugging process - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - - std::string dumpStr; - dumpStr = "VERINFO DUMP\n"; - - for (SSVerPkgList::const_iterator ite = m_verList.begin(); - ite != m_verList.end(); ite++) { - dumpStr += ite->first; - dumpStr += "\n"; - dumpStr += ite->second.version; - dumpStr += "\n"; - dumpStr += ite->second.date; - dumpStr += "\n"; - } - - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "%s", dumpStr.c_str()); -} -// LCOV_EXCL_STOP - -//================================================================== -// PUBLIC -//================================================================== -CSSVer::CSSVer() { - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "+"); - DIR *dir = NULL; - struct dirent dent, *next; - struct stat statbuf; - - try { - if (stat(SSVER_TMPDIR, &statbuf) != 0) { - mkdir(SSVER_TMPDIR, 0775); - // Because this process is not locked, if multiple processes process at the same time, - // although it may have been created and fail, do not ASSERT it because it is harmless. - } - - // Linux dependency codes - if ((dir = opendir(SSVER_TMPDIR)) == NULL) { // LCOV_EXCL_BR_LINE 5:std c lib error process - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - - SS_ASERT_ERRNO(0); // LCOV_EXCL_LINE 5:std c lib error process - throw eFrameworkunifiedStatusFail; - } - - // LCOV_EXCL_BR_START 11:Unexpected branch - while (0 == readdir_r(dir, &dent, &next) && next) { - if (DT_REG == dent.d_type) { - SSVER_PkgInfo info; - std::string name(dent.d_name); - std::string verInfo; - - CPkgInfoIo pkgIo(name); - pkgIo.getData(&info); - - verInfo += "\nPACKAGE :"; - verInfo += name; - verInfo += "\n"; - verInfo += " VERSION:"; - verInfo += info.version; - verInfo += "\n"; - verInfo += " DATE :"; - verInfo += info.date; - verInfo += "\n"; - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "%s", verInfo.c_str()); - - m_verList.insert(std::make_pair(name, info)); - } - } - SS_ASERT_ERRNO(0 == closedir(dir)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h - // LCOV_EXCL_BR_STOP - } catch (...) { // LCOV_EXCL_START 6:unable to reach - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - - if (dir) { - SS_ASERT_ERRNO(0 == closedir(dir)); - } - } // LCOV_EXCL_STOP - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "-"); -} - -CSSVer::~CSSVer() { - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "+"); - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "-"); -} - -EFrameworkunifiedStatus CSSVer::getPkgInfo(const std::string &name, SSVER_PkgInfo* p_info) { - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "+"); - EFrameworkunifiedStatus versionlibraryRet = eFrameworkunifiedStatusOK; - try { - if (p_info == NULL) { - SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h - throw eFrameworkunifiedStatusFail; - } - - SSVerPkgList::iterator ite = m_verList.find(name); - - if (ite != m_verList.end()) { - // cache hit - *p_info = ite->second; - } else { - // cache miss - std::string path(SSVER_TMPDIR); // LCOV_EXCL_BR_LINE 11:except,C++ STL - path += "/"; - path += name; - - if (access(path.c_str(), F_OK) == 0) { - // cache refresh - CPkgInfoIo pkgIo(name); // LCOV_EXCL_BR_LINE 11:Unexpected branch - pkgIo.getData(p_info); // LCOV_EXCL_BR_LINE 11:except,C++ STL - m_verList.insert(std::make_pair(name, *p_info)); // LCOV_EXCL_BR_LINE 11:except,C++ STL - } else { - throw eFrameworkunifiedStatusFileLoadError; - } - } - } catch (EFrameworkunifiedStatus ee) { - versionlibraryRet = ee; - } catch (...) { // LCOV_EXCL_START 6:unable to reach - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - - versionlibraryRet = eFrameworkunifiedStatusFail; - } // LCOV_EXCL_STOP - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "-"); - return versionlibraryRet; -} - -EFrameworkunifiedStatus CSSVer::setPkgInfo(const std::string &name, SSVER_PkgInfo &info) { - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "+"); - EFrameworkunifiedStatus versionlibraryRet = eFrameworkunifiedStatusOK; - try { - // LCOV_EXCL_BR_START 11:Unexpected branch - SSVerPkgList::iterator ite = m_verList.find(name); - - if (ite == m_verList.end()) { - m_verList.insert(std::make_pair(name, info)); - CPkgInfoIo pkgIo(name); - pkgIo.putData(info); - } else { - ite->second = info; - CPkgInfoIo pkgIo(name); - pkgIo.putData(info); - } - // LCOV_EXCL_BR_STOP - } catch (EFrameworkunifiedStatus ee) { - versionlibraryRet = ee; - } catch (...) { // LCOV_EXCL_START 6:unable to reach - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - - SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h - versionlibraryRet = eFrameworkunifiedStatusFail; - } // LCOV_EXCL_STOP - - FRAMEWORKUNIFIEDLOG(ZONE_DEFAULT, __FUNCTION__, "-"); - return versionlibraryRet; -} // LCOV_EXCL_BR_LINE 10:for the last line - |