summaryrefslogtreecommitdiffstats
path: root/nsframework/notification_persistent_service/server/src
diff options
context:
space:
mode:
authorTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2020-11-20 23:36:23 +0900
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2020-11-22 09:02:55 +0900
commit17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d (patch)
tree582a9768558d9eaf261ca5df6136e9de54c95816 /nsframework/notification_persistent_service/server/src
parent9e86046cdb356913ae026f616e5bf17f6f238aa5 (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 'nsframework/notification_persistent_service/server/src')
-rwxr-xr-xnsframework/notification_persistent_service/server/src/app_states.cpp2684
-rwxr-xr-xnsframework/notification_persistent_service/server/src/notificationpersistentservice_application.cpp258
-rwxr-xr-xnsframework/notification_persistent_service/server/src/notificationpersistentservice_main.cpp131
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp.cpp1149
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_archive.cpp846
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_binary_accesser.cpp649
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_copy_worker.cpp1153
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_fs_directory.cpp232
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_handlelist.cpp149
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_nor_persistence_worker_thread.cpp747
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_notification.cpp485
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_notification_manager.cpp1558
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_notification_receiver.cpp50
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_persist_file.cpp100
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_persist_folder.cpp96
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_persistence.cpp743
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_persistence_manager.cpp1132
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_persistent_data.cpp58
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_personalization_manager.cpp181
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_registry_entry.cpp333
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_regular_notification.cpp158
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_state_nor_persistence_notification.cpp305
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_state_notification.cpp402
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_state_persistence_notification.cpp87
-rwxr-xr-xnsframework/notification_persistent_service/server/src/ns_npp_state_persistence_user_notification.cpp61
25 files changed, 0 insertions, 13747 deletions
diff --git a/nsframework/notification_persistent_service/server/src/app_states.cpp b/nsframework/notification_persistent_service/server/src/app_states.cpp
deleted file mode 100755
index c54508b..0000000
--- a/nsframework/notification_persistent_service/server/src/app_states.cpp
+++ /dev/null
@@ -1,2684 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of internal transitions of state machine
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include <unistd.h>
-#include <native_service/ns_np_service.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <native_service/ns_np_service_notification.h>
-#include <string>
-#include <vector>
-#include "app_states.h"
-#include "ns_npp.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_notification_manager.h"
-#include "ns_npp_persistence_manager.h"
-#include "ns_npp_persistent_data.h"
-#include "ns_npp_personalization_manager.h"
-
-
-#ifdef NPP_PROFILEINFO_ENABLE
-#include <ns_npp_profiling_protocols_internal.h>
-#endif
-
-#ifdef AGL_STUB
-#include <other_service/strlcpy.h>
-#endif
-
-static size_t NppUIToA(unsigned int value, char *buf) {
- static const char c[] = "0123456789";
- char b[12];
- char *p = b + sizeof(b);
- int i = 0;
-
- *--p = '\0';
- do {
- *--p = c[value % 10];
- value /= 10;
- ++i;
- } while (value);
- strcpy(buf, p); // NOLINT (runtime/printf)
-
- return i;
-}
-
-static size_t NppStrlcpy(char *dst, const char *src, size_t siz) {
- size_t ret = strlen(src);
-
- if (siz) { // LCOV_EXCL_BR_LINE 6: siz can't be 0
- size_t len = (ret >= siz) ? siz - 1 : ret;
- memcpy(dst, src, len);
- dst[len] = '\0';
- }
- return ret;
-}
-
-#define NPP_SET_FIXSTR(buf, str) \
- do { \
- strcpy(buf, str); /* NOLINT (runtime/printf) */ \
- buf += sizeof(str) - 1; \
- } while (0)
-
-#define NPP_SET_VARSTR(buf, str, siz) \
- buf += NppStrlcpy(buf, str, siz)
-
-extern CHAR g_csendreadyackto[];
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPRegisterNotifications
-/// The state machine executes this transition when event for registering notification is triggered.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPRegisterNotifications) { // NOLINT (readability/naming)
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
- NC_register_multiple_notif_msg *l_pMsg = NULL;
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get app name of message source
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- UI_32 l_uiMsgLength = FrameworkunifiedGetMsgLength(l_pHApp);
-
- if (l_uiMsgLength <= 0) { // LCOV_EXCL_BR_LINE 6: l_uiMsgLength must be greater than 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't register notifications. Invalid message length received."); // LCOV_EXCL_LINE 6: l_uiMsgLength must be greater than 0 // NOLINT[whitespace/line_length]
- } else {
- std::vector<CHAR> l_vData = std::vector<CHAR>(l_uiMsgLength);
-
- // get the received data
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(
- l_pHApp, &l_vData[0], static_cast<UI_32>(l_vData.size()), eSMRRelease))) {
- l_pMsg = reinterpret_cast<NC_register_multiple_notif_msg *>(&l_vData[0]);
-
- if (NULL != l_pMsg) { // LCOV_EXCL_BR_LINE 6: l_pMsg can't be NULL
- NC_register_notif_msg *l_pEventInfo = NULL;
-
- // register all the notifications
- for (UI_32 l_uiCount = 0;
- l_uiCount < l_pMsg->numNotifications;
- ++l_uiCount) {
- l_pEventInfo = &l_pMsg->notifierList[l_uiCount];
-
- if (NULL != l_pEventInfo) { // LCOV_EXCL_BR_LINE 6: l_pEventInfo can't be NULL
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "Register Notfn request, src=%s, name=%s, len=%d, type=%d",
- l_cMsgSource, l_pEventInfo->notificationName, l_pEventInfo->maxLength, l_pEventInfo->persType);
-
- // register the notification
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceServiceOnRegisterEvents(l_cMsgSource,
- l_pEventInfo->notificationName,
- l_pEventInfo->maxLength,
- l_pEventInfo->persType)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in NotificationpersistentserviceServiceOnRegisterEvents :: %s", l_pEventInfo->notificationName);
- }
- } else {
- // LCOV_EXCL_START 6: l_pEventInfo can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't register notification from source %s. l_pEventInfo is NULL", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid src mq"); // LCOV_EXCL_LINE 6: l_pMsg can't be NULL
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't register notifications from source %s, Unable to get message data. Error Status: 0x%x",
- l_cMsgSource, l_estatus);
- }
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pNotificationManager is NULL"); // LCOV_EXCL_LINE 6: l_pNotificationManager can't be NULL // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPSubscribeToNotification
-/// The state machine executes this transition when event for subscribing single notification is
-/// triggered.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPSubscribeToNotification) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
- NC_subscribe_msg l_objSubscribeMsg;
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- if (FrameworkunifiedGetMsgLength(l_pHApp) == sizeof(NC_subscribe_msg)) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- // get the data received
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_objSubscribeMsg), sizeof(NC_subscribe_msg), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
-#ifdef NPP_PERFORMANCE_ANALYZE_ENABLE
- char buf[128];
- char *p = buf;
- NPP_SET_FIXSTR(p, "Subscribing Notfn request, src=");
- NPP_SET_VARSTR(p, l_cMsgSource, sizeof(buf) - (p - buf));
- NPP_SET_FIXSTR(p, ", name=");
- strcpy(p, l_objSubscribeMsg.notificationName); // NOLINT (runtime/printf)
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, buf);
- /* FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- * "Subscribing Notfn request, src=%s, name=%s",
- * l_cMsgSource, l_objSubscribeMsg.notificationName);*/
-#endif // ifdef NPP_PERFORMANCE_ANALYZE_ENABLE
-
- // subscribe for notification
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceServiceOnSubscribeToEvent(
- l_cMsgSource,
- l_objSubscribeMsg.notificationName)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in NotificationpersistentserviceServiceOnSubscribeToEvent :: %s", l_objSubscribeMsg.notificationName);
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't subscribe to notification from source %s. Unable to get msg data, status: 0x%x",
- l_cMsgSource, l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't subscribe to notification from source %s. Invalid message length received.",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't subscribe to notification from source %s. l_pNotificationManager is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPSubscribeToNotifications
-/// The state machine executes this transition when event for subscribing multiple notification is
-/// triggered.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPSubscribeToNotifications) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
- NC_subscribe_multiple_notif_msg *l_pMsg = NULL;
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- UI_32 l_uiMsgLength = FrameworkunifiedGetMsgLength(l_pHApp);
-
- if (l_uiMsgLength <= 0) { // LCOV_EXCL_BR_LINE 6: l_uiMsgLength must be greater than 0
- // LCOV_EXCL_START 6: l_uiMsgLength must be greater than 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid msg len");
- // LCOV_EXCL_STOP
- } else {
- std::vector<CHAR> l_vData = std::vector<CHAR>(l_uiMsgLength);
-
- // get the data received
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, &l_vData[0], static_cast<UI_32>(l_vData.size()), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- l_pMsg = reinterpret_cast<NC_subscribe_multiple_notif_msg *>(&l_vData[0]);
-
- if (NULL != l_pMsg) { // LCOV_EXCL_BR_LINE 6: l_pMsg can't be NULL
- NC_subscribe_msg *l_pEventInfo = NULL;
-
- // subscribe to multiple notifications
- for (UI_32 l_uiCount = 0;
- l_uiCount < l_pMsg->numNotifications;
- ++l_uiCount) {
- l_pEventInfo = &l_pMsg->notificationList[l_uiCount];
-
- if (NULL != l_pEventInfo) { // LCOV_EXCL_BR_LINE 6: l_pEventInfo can't be NULL
-#ifdef NPP_PERFORMANCE_ANALYZE_ENABLE
- char buf[128];
- char *p = buf;
- NPP_SET_FIXSTR(p, "Subscribe Notfn request, src=");
- NPP_SET_VARSTR(p, l_cMsgSource, sizeof(buf) - (p - buf));
- NPP_SET_FIXSTR(p, ", name=");
- strcpy(p, l_pEventInfo->notificationName); // NOLINT (runtime/printf)
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, buf);
- /* FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- "Subscribe Notfn request, src=%s, name=%s",
- l_cMsgSource,
- l_pEventInfo->notificationName);*/
-#endif // ifdef NPP_PERFORMANCE_ANALYZE_ENABLE
-
- // subscribe to notification
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceServiceOnSubscribeToEvent(
- l_cMsgSource,
- l_pEventInfo->notificationName)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in NotificationpersistentserviceServiceOnSubscribeToEvent :: %s", l_pEventInfo->notificationName);
- }
- } else {
- // LCOV_EXCL_START 6: l_pEventInfo can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Unable to subscribe to notifications from source %s, l_pEventInfo is NULL", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pMsg can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Unable to subscribe to notifications from source %s, Invalid src mq", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
-
- l_vData.clear();
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Unable to subscribe to notifications from source %s, error retrieving message data, status: 0x%x",
- l_cMsgSource,
- l_estatus);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Unable to subscribe to notifications from source %s, l_pNotificationManager is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPPublishNotification
-/// The state machine executes this transition when event for publishing notification is triggered.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPPublishNotification) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
-
- CHAR l_cData[MAX_SYS_INFO_SIZE];
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get the app name of message source
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- // retrieve notification name
- FrameworkunifiedGetSystemInfo(l_pHApp, l_cData);
-
- UI_32 l_uiMsgLength = FrameworkunifiedGetMsgLength(l_pHApp);
-
- char buf[144];
- char *p = buf;
- NPP_SET_FIXSTR(p, "Publish Notfn request, src=");
- NPP_SET_VARSTR(p, l_cMsgSource, sizeof(buf) - (p - buf));
- NPP_SET_FIXSTR(p, ", name=");
- NPP_SET_VARSTR(p, l_cData, sizeof(buf) - (p - buf));
- NPP_SET_FIXSTR(p, ", len=");
- NppUIToA(l_uiMsgLength, p);
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, buf);
- /* FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- "Publish Notfn request, src=%s, name=%s, len=%d",
- l_cMsgSource, l_cData, l_uiMsgLength);*/
-
- if (0 != l_uiMsgLength) {
- std::vector<CHAR> pMsgData = std::vector<CHAR>(l_uiMsgLength);
-
- // get the received data
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, &pMsgData[0], static_cast<UI_32>(pMsgData.size()), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // publish the notification
- (VOID)l_pNotificationManager->NotificationpersistentserviceServiceOnPublishEvent(l_cMsgSource, l_cData,
- (PVOID)&pMsgData[0], l_uiMsgLength);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't publish notification from source %s, Unable to get messsage data, Error Status: 0x%x",
- l_cMsgSource, l_estatus);
- // LCOV_EXCL_STOP 4: NSFW error case
- }
- } else {
- // publish the notification
- (VOID)l_pNotificationManager->NotificationpersistentserviceServiceOnPublishEvent(l_cMsgSource, l_cData, NULL, l_uiMsgLength);
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't publish notification from source %s. l_pNotificationManager is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPUnSubscribeFromNotification
-/// The state machine executes this transition when event for unsubscribing notification is triggered.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPUnSubscribeFromNotification) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
- NC_unsubscribe_frm_notif_msg unsubscribeMsg;
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get the msg source name
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 200: l_pNotificationManager can't be NULL
- if (FrameworkunifiedGetMsgLength(l_pHApp) == sizeof(NC_unsubscribe_frm_notif_msg)) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- // get the received data
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&unsubscribeMsg), sizeof(NC_unsubscribe_frm_notif_msg), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Source: %s is unsubscribing from notification: %s", l_cMsgSource,
- unsubscribeMsg.notificationName);
-
- // unsubscribe from notification
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceServiceOnUnSubscribeFromEvent(
- l_cMsgSource,
- unsubscribeMsg.notificationName)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in NotificationpersistentserviceServiceOnUnSubscribeFromEvent :: %s",
- unsubscribeMsg.notificationName);
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "%s is unable to subscribe from notification, error getting message data, status: 0x%x",
- l_cMsgSource, l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unsubscribe to notification from source %s, Invalid Message size received.",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unsubscribe to notification from source %s, l_pNotificationManager is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPUnSubscribeFromNotification
-/// The state machine executes this transition when event for unsubscribing notification is triggered.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPUnSubscribeFromNotifications) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
- NC_unsubscribe_multiple_notif_msg *l_pMsg = NULL;
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- UI_32 l_uiMsgLength = FrameworkunifiedGetMsgLength(l_pHApp);
-
- if (l_uiMsgLength <= 0) { // LCOV_EXCL_BR_LINE 6: l_uiMsgLength must be greater than 0
- // LCOV_EXCL_START 6: l_uiMsgLength must be greater than 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unsubscribe from notifications from source %s. Invalid message length received",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- } else {
- std::vector<CHAR> l_vData = std::vector<CHAR>(l_uiMsgLength);
-
- // get the data received
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, &l_vData[0], static_cast<UI_32>(l_vData.size()), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- l_pMsg = reinterpret_cast<NC_unsubscribe_multiple_notif_msg *>(&l_vData[0]);
-
- if (NULL != l_pMsg) { // LCOV_EXCL_BR_LINE 6: l_pMsg can't be NULL
- NC_unsubscribe_frm_notif_msg *l_pEventInfo = NULL;
-
- // subscribe to multiple notifications
- for (UI_32 l_uiCount = 0;
- l_uiCount < l_pMsg->numNotifications;
- ++l_uiCount) {
- l_pEventInfo = &l_pMsg->notificationList[l_uiCount];
-
- if (NULL != l_pEventInfo) { // LCOV_EXCL_BR_LINE 6: l_pEventInfo can't be NULL
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Source: %s is unsubscribing from notification: %s", l_cMsgSource,
- l_pEventInfo->notificationName);
-
- // unsubscribe from notification
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceServiceOnUnSubscribeFromEvent(
- l_cMsgSource,
- l_pEventInfo->notificationName)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in NotificationpersistentserviceServiceOnUnSubscribeFromEvent :: %s", l_pEventInfo->notificationName);
- }
-
- } else {
- // LCOV_EXCL_START 6: l_pEventInfo can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unsubscribe from notifications from source %s. l_pEventInfo is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pMsg can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unsubscribe from notifications from source %s. Invalid src mq", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
-
- l_vData.clear();
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unsubscribe from notifications from source %s, error getting message data, status: 0x%x",
- l_cMsgSource,
- l_estatus);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unsubscribe from notifications from source %s. l_pNotificationManager is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPUnRegisterNotifications
-/// The state machine executes this transition when event for unregistering notifications is triggered.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPUnRegisterNotifications) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
- NC_unregister_multiple_notif_msg *l_pMsg = NULL;
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get the source name
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- UI_32 l_uiMsgLength = FrameworkunifiedGetMsgLength(l_pHApp);
-
- if (l_uiMsgLength <= 0) { // LCOV_EXCL_BR_LINE 6: l_uiMsgLength must be greater than 0
- // LCOV_EXCL_START 6: l_uiMsgLength must be greater than 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unregister to notifications from source %s. Invalid message length received.",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- } else {
- std::vector<CHAR>l_vData = std::vector<CHAR>(l_uiMsgLength);
-
- // get the received data
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, &l_vData[0], static_cast<UI_32>(l_vData.size()), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- l_pMsg = reinterpret_cast<NC_unregister_multiple_notif_msg *>(&l_vData[0]);
-
- // unregister multiple notifications
- if (NULL != l_cMsgSource && NULL != l_pMsg) { // LCOV_EXCL_BR_LINE 6: l_cMsgSource and l_pMsg can't be NULL
- NC_unregister_notif_msg *l_pEventInfo = NULL;
-
- for (UI_32 l_uiCount = 0;
- l_uiCount < l_pMsg->numNotifications;
- ++l_uiCount) {
- l_pEventInfo = &l_pMsg->notificationList[l_uiCount];
-
- if (NULL != l_pEventInfo) { // LCOV_EXCL_BR_LINE 6: l_pEventInfo can't be NULL
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Source %s is unregistering to notification %s", l_cMsgSource,
- l_pEventInfo->notificationName);
-
- // unregister notification
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceServiceOnUnRegisterEvents(
- l_cMsgSource,
- l_pEventInfo->notificationName)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in NotificationpersistentserviceServiceOnUnRegisterEvents :: %s", l_pEventInfo->notificationName);
- }
- } else {
- // LCOV_EXCL_START 6: l_pEventInfo can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unregister to notifications from source %s, l_pEventInfo is NULL", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_cMsgSource and l_pMsg can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unregister to notificationsfrom source %s, Invalid src mq ", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
-
- l_vData.clear();
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unregister to notifications from source %s, Unable to get message data, status: 0x%x",
- l_cMsgSource, l_estatus);
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't unregister to notifications from source %s, l_pNotificationManager is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPReadPersistedData
-/// The state machine executes this transition when event for getting notification's persistent data
-/// is triggered.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPReadPersistedData) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
- NC_get_pers_data_msg l_tMsg;
-
- l_tMsg.notificationName[0] = '\0';
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- if (FrameworkunifiedGetMsgLength(l_pHApp) == sizeof(NC_get_pers_data_msg)) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- // get the message data received
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(NC_get_pers_data_msg), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Source %s is requesting to read data for persistent notification %s",
- l_cMsgSource, l_tMsg.notificationName);
- // get persistent data related to notification
- if (eFrameworkunifiedStatusOK != (l_estatus = l_pNotificationManager->NotificationpersistentserviceServiceOnGetPersistentData(
- l_tMsg.notificationName,
- l_cMsgSource))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in NotificationpersistentserviceServiceOnGetPersistentData :: %s", l_tMsg.notificationName);
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't read persistent data for source %s, Error getting message data, status: 0x%x",
- l_cMsgSource, l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't read persistent data for source %s. Invalid Message size received.",
- l_cMsgSource);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't read persistent data for source %s. l_pNotificationManager is NULL",
- l_cMsgSource);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- // if any error occurs while reading persistent data, send failed ack to the requestor
- if (eFrameworkunifiedStatusOK != l_estatus) {
- HANDLE l_hReceiverMq = McOpenSender(l_cMsgSource);
- if (NULL != l_hReceiverMq) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- NC_get_persdata_failed_ack gpdFailed = {};
- std::strncpy(&gpdFailed.notificationName[0], l_tMsg.notificationName, MAX_STRING_SIZE_NOTIFICATION);
-
- // send the failure ack to requester
- l_estatus = McSend(l_hReceiverMq, AppName, NPS_GET_PERS_DATA_FAILED_ACK, sizeof(gpdFailed), &gpdFailed); // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- "Sent NPS_GET_PERS_DATA_FAILED_ACK to %s. Status: %d.",
- l_cMsgSource, l_estatus);
-
- McClose(l_hReceiverMq);
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in opening sender queue of %s. Can't send NPS_GET_PERS_DATA_FAILED_ACK",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPPublishImmediateNotification
-/// This transition is executed when service updates the immediate notification data
-/// using synchronous API
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPPublishImmediateNotification) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- // get the app name of message source
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
- CHKNULL(l_pNotificationManager);
-
- CHAR l_cNotfName[MAX_SYS_INFO_SIZE] = {};
-
- // retrieve notification name
- (VOID)FrameworkunifiedGetSystemInfo(l_pHApp, l_cNotfName);
-
- UI_32 l_uiMsgLength = FrameworkunifiedGetMsgLength(l_pHApp);
-
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- "Warning::Notification %s published using sync API by %s, Data length: %d",
- l_cNotfName,
- l_cMsgSource, l_uiMsgLength);
-
- if (0 != l_uiMsgLength) {
- std::vector<CHAR> pMsgData = std::vector<CHAR>(l_uiMsgLength);
-
- // get the received data
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, &pMsgData[0], l_uiMsgLength, eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // publish the notification
- (VOID)l_pNotificationManager->NotificationpersistentservicePublishImmediateNotification(l_cMsgSource, l_cNotfName, (PVOID)&pMsgData[0],
- l_uiMsgLength);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't publish notification %s from source %s, Unable to get messsage data, Error Status: 0x%x",
- l_cNotfName,
- l_cMsgSource, l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // publish the notification
- (VOID)l_pNotificationManager->NotificationpersistentservicePublishImmediateNotification(l_cMsgSource, l_cNotfName, NULL, l_uiMsgLength);
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- f_pSourceState = NULL;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPPersistentSync
-/// Processing which synchronizes by NPPService (syncfs)
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPPersistentSync) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- if (TRUE == l_pnsnpp->Syncfs()) { // LCOV_EXCL_BR_LINE 6: always return true
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "syncfs are processed."); // LCOV_EXCL_LINE 6: always return true
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPReleaseFileAck) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
-
- NSP_CopyStatusResponse l_tCpStatus = {};
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
-
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, (PVOID)&l_tCpStatus, sizeof(l_tCpStatus), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s for tag: %s sender: %s, persist type:%d",
- (l_tCpStatus.m_bpersistencechk ? "Successful copy" : "Non-Successful copy"),
- l_tCpStatus.m_cpersistenttag, l_tCpStatus.m_crequesterappname, l_tCpStatus.m_eloadtype);
-
- if (LOADTYPE_LOAD == l_tCpStatus.m_eloadtype) { // ack for load file/folder
- HANDLE hMq = NULL;
- NC_LoadPersistedAck l_tMsgAck = {};
-
- // HANDLE hMq = McOpenSender(l_tCpStatus.sender);
- hMq = FrameworkunifiedMcOpenSender(l_pHApp, l_tCpStatus.m_crequesterappname);
-
- // send NC_LoadPersistedAck to the requester
- l_tMsgAck.eStatus = (TRUE == l_tCpStatus.m_bpersistencechk) ? eFrameworkunifiedStatusOK : eFrameworkunifiedStatusFail;
-
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- strlcpy(l_tMsgAck.cTag, l_tCpStatus.m_cpersistenttag, sizeof(l_tMsgAck.cTag));
-#endif
-
- if (NULL == hMq) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // catastrophic failure!
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "McOpenSender failed for %s ", l_tCpStatus.m_crequesterappname); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- } else {
- if (ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE == l_tCpStatus.m_epersisttype) {
- // send ack to requester for file successfully persisted
- if (eFrameworkunifiedStatusOK != FrameworkunifiedSendMsg(hMq, NPS_GET_PERS_FILE_ACK, sizeof(l_tMsgAck), &l_tMsgAck)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "ERROR :: Sending NPS_GET_PERS_FILE_ACK message to %s", l_tCpStatus.m_crequesterappname);
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- "NPS_GET_PERS_FILE_ACK is sent to %s for file tag %s and load status: %d.",
- l_tCpStatus.m_crequesterappname, l_tMsgAck.cTag, l_tMsgAck.eStatus);
- }
- } else if (ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER == l_tCpStatus.m_epersisttype) { // LCOV_EXCL_BR_LINE 6: m_epersisttype must be ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE or ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER // NOLINT[whitespace/line_length]
- // send ack to requester for folder successfully persisted
- if (eFrameworkunifiedStatusOK != FrameworkunifiedSendMsg(hMq, NPS_GET_PERS_FOLDER_ACK, sizeof(l_tMsgAck), &l_tMsgAck)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "ERROR :: Sending NPS_GET_PERS_FOLDER_ACK message to %s", l_tCpStatus.m_crequesterappname);
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- "NPS_GET_PERS_FOLDER_ACK is sent to %s for folder tag %s and load status: %d.",
- l_tCpStatus.m_crequesterappname, l_tMsgAck.cTag, l_tMsgAck.eStatus);
- }
- } else {
- // do nothing
- }
- // close mq
- FrameworkunifiedMcClose(hMq);
- hMq = NULL;
- }
- }
-
- // Update registry
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
- if (l_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: unexpected branch can't be NULL
- l_pPersistenceManager->AckReceivedFromWorker(l_tCpStatus.m_crequesterappname,
- l_tCpStatus.m_cpersistenttag,
- l_tCpStatus.m_epersisttype,
- l_tCpStatus.m_bpersistencechk,
- l_tCpStatus.m_eloadtype);
- }
-
- if (LOADTYPE_RELEASE == l_tCpStatus.m_eloadtype) {
- f_pSourceState->FrameworkunifiedPostEvent(EVENT(evCheckAllFilesPersisted));
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "ERROR ::invalid length FrameworkunifiedGetMsgDataOfSize expected(%ld)", static_cast<long int>(sizeof(l_tCpStatus))); // NOLINT (runtime/int)
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnSaveDataAck) { // LCOV_EXCL_START 6: unused code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnUserChange
-/// The state machine executes this transition when event to set or change personality is received
-/// from the system.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnUserChange) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- try {
- CHKNULL(f_pSourceState);
- NC_User l_tMsg;
- std::string l_cCurrentUsername;
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- // TODO(my_username): Only accept user change from authorized app. Compare l_cMsgSource with authorized source.
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(NC_User), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- if (NULL != l_pnsnpp) { // LCOV_EXCL_BR_LINE 6: l_pnsnpp can't be NULL
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
- CnotificationpersistentservicePersonalizationManager *l_pPersonalizationManager = l_pnsnpp->m_pPersonalizationManager;
-
- if (NULL != l_pPersonalizationManager) { // LCOV_EXCL_BR_LINE 6: l_pPersonalizationManager can't be NULL
- l_pPersonalizationManager->NotificationpersistentserviceGetPersonality(l_cCurrentUsername);
- }
-
- // writes the temporary user files and folders to permanent memory
- if (NULL != l_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager can't be NULL
- if (!l_cCurrentUsername.empty()) { // LCOV_EXCL_BR_LINE 6: double check, l_cCurrentUsername can't be empty
- if (eFrameworkunifiedStatusOK != l_pPersistenceManager->NotificationpersistentservicePersistAllUserRequests()) { // LCOV_EXCL_BR_LINE 6: NotificationpersistentservicePersistAllUserRequests will always return ok // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while persisting user files and folders."); // LCOV_EXCL_LINE 6: NotificationpersistentservicePersistAllUserRequests will always return ok // NOLINT[whitespace/line_length]
- }
- }
- }
-
- // save the user persistent notification data
- if (eFrameworkunifiedStatusOK != l_pnsnpp->NotificationpersistentserviceSaveNotificationPersistentData(eFrameworkunifiedPersistedStateUserVar)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while NotificationpersistentserviceSaveNotificationPersistentData");
- }
- }
-
- // set new personality
- SetPersonality(l_pHApp, l_tMsg);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__,
- "Cannot set new personality, error getting message data, status: 0x%x", l_estatus);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-// ===========Shutdown
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnShutdownTimeout) { // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-// LCOV_EXCL_STOP
-
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceCheckAllReleaseRequestsProcessed) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
- CHKNULL(l_pPersistenceManager);
- if (TRUE == l_pPersistenceManager->HaveAllReleaseRequestsPersisted()) { // LCOV_EXCL_BR_LINE 6: always return ok
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "All release requests are processed.");
- f_pSourceState->FrameworkunifiedPostEvent(EVENT(evIdle));
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceReInitShutdownTimer) { // LCOV_EXCL_START 8: not be used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-// LCOV_EXCL_STOP
-
-CsNotificationpersistentserviceNPPStart::CsNotificationpersistentserviceNPPStart(std::string f_strName): CFrameworkunifiedOrthogonalState(f_strName) {
-}
-
-CsNotificationpersistentserviceNPPStart::~CsNotificationpersistentserviceNPPStart() { // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CsNotificationpersistentserviceNPPStart::FrameworkunifiedOnEntry(CEventDataPtr f_peventdata) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
-
- try {
- HANDLE l_pHApp = FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // Get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- NC_User l_tMsg = {};
-
- // register the user change notification
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceServiceOnRegisterEvents(AppName, // LCOV_EXCL_BR_LINE 6: always return ok // NOLINT[whitespace/line_length]
- NTFY_NPPService_UserChange,
- sizeof(NC_User),
- eFrameworkunifiedPersistedStateVar)) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in user change notification registration."); // LCOV_EXCL_LINE 6: always return ok // NOLINT[whitespace/line_length]
- }
-
- // Set initial user. By default, NS_NPPService will set the current user as last user. If no
- // last user found set the default user.
- UI_32 l_uiUserNotificationDataSize = 0;
- EFrameworkunifiedStatus l_eGetNotificationDataStatus = eFrameworkunifiedStatusFail;
- l_eGetNotificationDataStatus = l_pNotificationManager->NPGetPersistentNotificationData(
- NTFY_NPPService_UserChange,
- (PVOID)&l_tMsg,
- sizeof(l_tMsg));
-
- if ((eFrameworkunifiedStatusOK != l_eGetNotificationDataStatus) || (l_uiUserNotificationDataSize <= 0)) {
- // set default user
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- strlcpy(l_tMsg.cUsername, DEFAULTUSERNAME, sizeof(l_tMsg.cUsername));
-#endif
- }
-
- l_estatus = SetPersonality(l_pHApp, l_tMsg);
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return l_estatus;
-}
-
-EFrameworkunifiedStatus SetPersonality(HANDLE l_pHApp, NC_User &f_tMsg) { // NOLINT (runtime/references)
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- if (NULL != l_pnsnpp) { // LCOV_EXCL_BR_LINE 6: l_pnsnpp can't be NULL
- // Get the instance of personalization manager
- CnotificationpersistentservicePersonalizationManager *l_pNotificationpersistentservicePersonalizationManager = l_pnsnpp->m_pPersonalizationManager;
-
- if (NULL != l_pNotificationpersistentservicePersonalizationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationpersistentservicePersonalizationManager can't be NULL
- // send msg to all notificationpersistentservice apps that user has change.
- // register user change notification
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Personality :: %s", f_tMsg.cUsername);
-
- if (eFrameworkunifiedStatusOK != (l_estatus = l_pNotificationpersistentservicePersonalizationManager->NotificationpersistentserviceSetPersonality(f_tMsg.cUsername))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Personality not set in Personality Manager :: user : %s", f_tMsg.cUsername);
- } else {
- // Get the instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
- if (NULL != l_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager can't be NULL
- l_pPersistenceManager->SetUserPersistentPath(f_tMsg.cUsername);
-
- // save the user persistent notification data
- if (eFrameworkunifiedStatusOK != l_pnsnpp->NotificationpersistentserviceLoadPersistentNotificationData(eFrameworkunifiedPersistedStateUserVar)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while loading user specific notification data.");
- }
-
- // Get instance of notification manager
- CNotificationManager *l_pNotificationManager = NULL;
- l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- // publish the user change notification
- if (eFrameworkunifiedStatusOK != (l_estatus = l_pNotificationManager->NotificationpersistentserviceServiceOnPublishEvent(AppName, NTFY_NPPService_UserChange, (PVOID)&f_tMsg, sizeof(f_tMsg)))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in publish user change event."); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- }
- }
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pNotificationpersistentservicePersonalizationManager is NULL"); // LCOV_EXCL_LINE 6: l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return l_estatus;
-}
-
-EFrameworkunifiedStatus CsNotificationpersistentserviceNPPStart:: FrameworkunifiedOnExit(CEventDataPtr f_peventdata) { // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return eFrameworkunifiedStatusOK;
- // LCOV_EXCL_STOP
-}
-
-CsNotificationpersistentserviceShutdownDataSave::CsNotificationpersistentserviceShutdownDataSave(std::string f_strName): CFrameworkunifiedLeafState(f_strName) {
-}
-
-CsNotificationpersistentserviceShutdownDataSave::~CsNotificationpersistentserviceShutdownDataSave() { // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CsNotificationpersistentserviceShutdownDataSave::FrameworkunifiedOnEntry(CEventDataPtr f_peventdata) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
-
- HANDLE l_pHApp = FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- m_cShutdownRequestor = l_cMsgSource;
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "NS_NPP received STOP message from %s.", l_cMsgSource);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- if (NULL != l_pnsnpp) { // LCOV_EXCL_BR_LINE 6: can't be NULL
- CShutDownMsgData *l_pMsgData = dynamic_cast<CShutDownMsgData *>(f_peventdata.get());
- CHKNULL(l_pMsgData);
-
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Shutdown Type=%d, Data received with shutdown message:: %x",
- l_pMsgData->m_eShutdownType, l_pMsgData->m_uiMsgData);
-
- // save the persistent data on shutdown
- if (eFrameworkunifiedStatusOK != l_pnsnpp->NotificationpersistentservicePersistAll(l_pMsgData->m_eShutdownType, l_pMsgData->m_uiMsgData)) { // LCOV_EXCL_BR_LINE 6: always return ok // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in NotificationpersistentserviceOnSavePersistentData"); // LCOV_EXCL_LINE 6: always return ok
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-EFrameworkunifiedStatus CsNotificationpersistentserviceShutdownDataSave:: FrameworkunifiedOnExit(CEventDataPtr f_peventdata) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- try {
- HANDLE l_pHApp = FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
- CHKNULL(l_pPersistenceManager);
-
- l_pPersistenceManager->ResetPersistFlag();
-
- // before sending shutdown ack, synchronize all the modified block buffers by NPPService for writing
- l_pnsnpp->Syncfs();
-
- // Send shutdown ack response to requester
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Sending shutdown complete message to requestor %s.",
- m_cShutdownRequestor.c_str());
- HANDLE hMq = FrameworkunifiedMcOpenSender(l_pHApp, m_cShutdownRequestor.c_str());
- if (NULL != hMq) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- if (eFrameworkunifiedStatusOK != FrameworkunifiedSendMsg(hMq, NPS_NPP_STOP_ACK, 0, NULL)) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error sending shutdown complete message to requestor %s.",
- m_cShutdownRequestor.c_str());
- // LCOV_EXCL_STOP
- }
- FrameworkunifiedMcClose(hMq);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in OpenSender for requestor %s.", m_cShutdownRequestor.c_str()); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnRegisterPersistentFile
-/// The state machine executes this transition when event for registering persistent file tag is
-/// received.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnRegisterPersistentFile) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
- NC_RegisterPersistentFileMsg l_tMsg = {};
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
-
- if (NULL != l_pPersistenceManager && NULL != l_cMsgSource) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager and l_cMsgSource can't be NULL // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(l_tMsg), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- std::string l_cName;
- l_cName = l_tMsg.cFileTag;
-
- if (eFrameworkunifiedStatusOK != l_pPersistenceManager->NotificationpersistentserviceRegister(l_cMsgSource, // LCOV_EXCL_BR_LINE 6: always return ok
- l_tMsg.cFileTag,
- ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE,
- // l_tMsg.eRegisterType,
- l_tMsg.bIsUserFile)) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in Registering Persitence File :: %s", l_tMsg.cFileTag); // LCOV_EXCL_LINE 6: always return ok // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Registered File %s as TO BE PERSISTED for %s",
- l_tMsg.cFileTag, l_cMsgSource);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't register persistent file. Invalid message size received."); // LCOV_EXCL_LINE 6: l_pPersistenceManager and l_cMsgSource can't be NULL // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't register persistent file. l_pPersistenceManager is NULL"); // LCOV_EXCL_LINE 6: l_pPersistenceManager and l_cMsgSource can't be NULL // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnReleasePersistentFile
-/// The state machine executes this transition when event for releasing persistent file tag is
-/// received.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnReleasePersistentFile) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
-
- // Check if persistence has been disabled than return immediately
- if (TRUE == CPersistenceManager::m_bPersistenceDisabled) { // LCOV_EXCL_BR_LINE 6: custom command line options
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return f_pSourceState; // LCOV_EXCL_LINE 6: custom command line options
- }
-
- CHKNULL(f_pSourceState);
- NC_ReleasePersistentFileMsg l_tMsg = {};
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get the instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
- // get the instance of persistence manager
- CnotificationpersistentservicePersonalizationManager *l_pNotificationpersistentservicePersonalizationManager = l_pnsnpp->m_pPersonalizationManager;
-
- if (NULL != l_pPersistenceManager && NULL != l_cMsgSource && NULL != l_pNotificationpersistentservicePersonalizationManager) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager, l_cMsgSource and l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(l_tMsg), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- // Check if the filetag is registered as user specific persistence
- if (TRUE == l_pPersistenceManager->IsUserPersistence(l_tMsg.cFileTag, ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE)) {
- if (!l_pNotificationpersistentservicePersonalizationManager->NotificationpersistentserviceIsValidPersonality(l_tMsg.cUsername)) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
- }
- }
-
- if (eFrameworkunifiedStatusOK != l_pPersistenceManager->NotificationpersistentserviceRelease(l_cMsgSource,
- l_tMsg.cFileTag,
- l_tMsg.cFilePath,
- l_tMsg.eFrameworkunifiedReleaseType, // NOLINT (readability/naming)
- ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE,
- l_tMsg.cUsername)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in releasing persitence file :: %s", l_tMsg.cFileTag);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Release file %s to tag %s for source %s",
- l_tMsg.cFilePath, l_tMsg.cFileTag, l_cMsgSource);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't release persistent file. Invalid message size received"); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't release persistent file. l_pPersistenceManager is NULL"); // LCOV_EXCL_LINE 6: l_pPersistenceManager, l_cMsgSource and l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnLoadPersistentFile
-/// The state machine executes this transition when event for loading persistent file is received.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnLoadPersistentFile) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
- NC_LoadPersistedFileMsg l_tMsg = {};
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- CnotificationpersistentservicePersonalizationManager *l_pNotificationpersistentservicePersonalizationManager = l_pnsnpp->m_pPersonalizationManager;
- // get the instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
- if (NULL != l_pPersistenceManager && NULL != l_cMsgSource && NULL != l_pNotificationpersistentservicePersonalizationManager) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager, l_cMsgSource and l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(l_tMsg), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Load file %s that was PERSISTED by %s with tag %s",
- l_tMsg.cFilePath, l_cMsgSource, l_tMsg.cFileTag);
-
- // Check if the filetag is registered as user specific persistence
- if (TRUE == l_pPersistenceManager->IsUserPersistence(l_tMsg.cFileTag, ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE)) {
- if (!l_pNotificationpersistentservicePersonalizationManager->NotificationpersistentserviceIsValidPersonality(l_tMsg.cUsername)) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
- }
- }
-
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- NC_LoadPersistedAck l_tMsgAck = {};
-
- HANDLE l_hMq = FrameworkunifiedMcOpenSender(l_pHApp, l_cMsgSource);
-
- if (NULL != l_hMq) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- //// Check if persistence has been disabled than send positive acknowledgement to the application
- if (TRUE == CPersistenceManager::m_bPersistenceDisabled) { // LCOV_EXCL_BR_LINE 6: custom command line options // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: custom command line options
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_tMsgAck.eStatus = eFrameworkunifiedStatusOK;
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- strlcpy(l_tMsgAck.cTag, l_tMsg.cFileTag, sizeof(l_tMsgAck.cTag));
-#endif
-
- // send ack to requester
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedSendMsg(l_hMq, NPS_GET_PERS_FILE_ACK, sizeof(l_tMsgAck), &l_tMsgAck))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: FrameworkunifiedSendMsg returned l_estatus=%d", l_estatus);
- }
- // LCOV_EXCL_STOP
- } else {
- if (eFrameworkunifiedStatusOK != (l_estatus = l_pPersistenceManager->NotificationpersistentserviceLoad(l_cMsgSource,
- l_tMsg.cFileTag,
- l_tMsg.cFilePath,
- ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE,
- l_tMsg.cUsername))) {
- if (eFrameworkunifiedStatusFileLoadSuccess == l_estatus) { // LCOV_EXCL_BR_LINE 6: l_estatus can't be eFrameworkunifiedStatusFileLoadSuccess // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_tMsgAck.eStatus = eFrameworkunifiedStatusOK; // LCOV_EXCL_LINE 6: l_estatus can't be eFrameworkunifiedStatusFileLoadSuccess
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in Loading Persitence File :: %s", l_tMsg.cFileTag);
-
- // return error to requester
- l_tMsgAck.eStatus = l_estatus;
- }
-
- std::strncpy(l_tMsgAck.cTag, l_tMsg.cFileTag, (MAX_PATH_LENGTH - 1));
-
- // send ack to requester
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedSendMsg(l_hMq, NPS_GET_PERS_FILE_ACK, sizeof(l_tMsgAck), &l_tMsgAck))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: FrameworkunifiedSendMsg returned l_estatus=%d", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- }
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "NPS_GET_PERS_FILE_ACK is sent to %s. File load status: %d, "
- "message sent status: %d ", l_cMsgSource, l_tMsgAck.eStatus, l_estatus);
- }
- }
-
- FrameworkunifiedMcClose(l_hMq);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // catastrophic failure!
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "McOpenSender failed for %s", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't load persistent file. Invalid message size received."); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't load persistent file. l_pNotificationManager is NULL"); // LCOV_EXCL_LINE 6: l_pPersistenceManager, l_cMsgSource and l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnRegisterPersistentFolder
-/// The state machine executes this transition when event for registering persistent folder tag is
-/// received.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnRegisterPersistentFolder) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
- NC_RegisterPersistentFolderMsg l_tMsg = {};
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
- if (NULL != l_pPersistenceManager && NULL != l_cMsgSource) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager and l_cMsgSource can't be NULL // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, // LCOV_EXCL_BR_LINE 4: NSFW error case
- static_cast<PVOID>(&l_tMsg),
- sizeof(l_tMsg),
- eSMRRelease)) {
- std::string l_cName;
- l_cName = l_tMsg.cFolderTag;
-
- if (eFrameworkunifiedStatusOK != l_pPersistenceManager->NotificationpersistentserviceRegister(l_cMsgSource, // LCOV_EXCL_BR_LINE 6: always return ok
- l_tMsg.cFolderTag,
- ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER,
- // l_tMsg.eRegisterType,
- l_tMsg.bIsUserFolder)) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in Registering Persitence Folder :: %s", l_tMsg.cFolderTag); // LCOV_EXCL_LINE 6: always return ok // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Registered Folder %s as TO BE PERSISTED for %s",
- l_tMsg.cFolderTag, l_cMsgSource);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't register persistent folder. Invalid message size received.");
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't register persistent folder.. l_pPersistenceManager is NULL"); // LCOV_EXCL_LINE 6: l_pPersistenceManager and l_cMsgSource can't be NULL // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnLoadPersistentFolder
-/// The state machine executes this transition when event for loading persistent folder is received.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnLoadPersistentFolder) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
- NC_LoadPersistedFolderMsg l_tMsg = {};
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- CnotificationpersistentservicePersonalizationManager *l_pNotificationpersistentservicePersonalizationManager = l_pnsnpp->m_pPersonalizationManager;
-
- // get the instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
- if (NULL != l_pPersistenceManager && NULL != l_cMsgSource && NULL != l_pNotificationpersistentservicePersonalizationManager) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager, l_cMsgSource and l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(l_tMsg), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Load folder %s that was PERSISTED by %s with tag %s",
- l_tMsg.cFolderPath, l_cMsgSource, l_tMsg.cFolderTag);
-
- // Check if the foldertag is registered as user specific persistence
- if (TRUE == l_pPersistenceManager->IsUserPersistence(l_tMsg.cFolderTag, ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER)) {
- if (!l_pNotificationpersistentservicePersonalizationManager->NotificationpersistentserviceIsValidPersonality(l_tMsg.cUsername)) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
- }
- }
-
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- NC_LoadPersistedAck l_tMsgAck = {};
- HANDLE l_hMq = NULL;
- l_hMq = FrameworkunifiedMcOpenSender(l_pHApp, l_cMsgSource);
-
- if (NULL != l_hMq) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- //// Check if persistence has been disabled than send positive acknowledgement to the application
- if (TRUE == CPersistenceManager::m_bPersistenceDisabled) { // LCOV_EXCL_BR_LINE 6: custom command line options // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: custom command line options
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_tMsgAck.eStatus = eFrameworkunifiedStatusOK;
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- strlcpy(l_tMsgAck.cTag, l_tMsg.cFolderTag, sizeof(l_tMsgAck.cTag));
-#endif
-
- // send ack to requester
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedSendMsg(l_hMq,
- NPS_GET_PERS_FOLDER_ACK,
- sizeof(l_tMsgAck), &l_tMsgAck))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: FrameworkunifiedSendMsg returned l_estatus=%d", l_estatus);
- }
- // LCOV_EXCL_STOP
- } else {
- if (eFrameworkunifiedStatusOK != (l_estatus = l_pPersistenceManager->NotificationpersistentserviceLoad(l_cMsgSource,
- l_tMsg.cFolderTag,
- l_tMsg.cFolderPath,
- ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER,
- l_tMsg.cUsername))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in Loading Persitence Folder :: %s", l_tMsg.cFolderTag);
-
- // return error to requester
- l_tMsgAck.eStatus = l_estatus;
- std::strncpy(l_tMsgAck.cTag, l_tMsg.cFolderTag, (MAX_PATH_LENGTH - 1));
-
- // send ack to requester
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedSendMsg(l_hMq, // LCOV_EXCL_BR_LINE 4: NSFW error case
- NPS_GET_PERS_FOLDER_ACK,
- sizeof(l_tMsgAck), &l_tMsgAck))) {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: FrameworkunifiedSendMsg returned l_estatus=%d", l_estatus);
- // LCOV_EXCL_STOP
- }
- }
- }
- FrameworkunifiedMcClose(l_hMq);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't send ack NPS_GET_PERS_FOLDER_ACK. McOpenSender failed for %s ", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't load persistent folder. Invalid message size received.");
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't load persistent folder. l_pNotificationManager is NULL"); // LCOV_EXCL_LINE 6: l_pPersistenceManager, l_cMsgSource and l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnReleasePersistentFolder
-/// The state machine executes this transition when event for releasing persistent folder tag is
-/// received.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnReleasePersistentFolder) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
-
- // Check if persistence has been disabled than return immediately
- if (TRUE == CPersistenceManager::m_bPersistenceDisabled) { // LCOV_EXCL_BR_LINE 6: custom command line options
- // LCOV_EXCL_START 6: custom command line options
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
- // LCOV_EXCL_STOP
- }
-
- NC_ReleasePersistentFolderMsg l_tMsg = {};
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get the instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
- CnotificationpersistentservicePersonalizationManager *l_pNotificationpersistentservicePersonalizationManager = l_pnsnpp->m_pPersonalizationManager;
-
- if (NULL != l_pPersistenceManager && NULL != l_cMsgSource && NULL != l_pNotificationpersistentservicePersonalizationManager) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager, l_cMsgSource and l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(l_tMsg), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // Check if the foldertag is registered as user specific persistence
- if (TRUE == l_pPersistenceManager->IsUserPersistence(l_tMsg.cFolderTag, ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER)) {
- if (!l_pNotificationpersistentservicePersonalizationManager->NotificationpersistentserviceIsValidPersonality(l_tMsg.cUsername)) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
- }
- }
- if (eFrameworkunifiedStatusOK != l_pPersistenceManager->NotificationpersistentserviceRelease(l_cMsgSource,
- l_tMsg.cFolderTag,
- l_tMsg.cFolderPath,
- l_tMsg.eFrameworkunifiedReleaseType, // NOLINT (readability/naming)
- ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER,
- l_tMsg.cUsername)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in releasing persitence folder :: %s", l_tMsg.cFolderTag);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Release Folder %s to tag %s for source %s",
- l_tMsg.cFolderPath, l_tMsg.cFolderTag, l_cMsgSource);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't release persistent folder. Invalid message size received.");
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't release persistent folder. l_pPersistenceManager is NULL"); // LCOV_EXCL_LINE 6: l_pPersistenceManager, l_cMsgSource and l_pNotificationpersistentservicePersonalizationManager can't be NULL // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPGetReadyStatus
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPGetReadyStatus) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
-
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- HANDLE l_hMq = FrameworkunifiedMcOpenSender(l_pHApp, l_cMsgSource);
- if (NULL != l_hMq) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- // send ack to requester
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedSendMsg(l_hMq, NPS_GET_READYSTATUS_ACK, 0, NULL))) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __PRETTY_FUNCTION__, "NPP ready status sent to %s.", l_cMsgSource);
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__, "Error sending NPS_GET_READYSTATUS_ACK to %s, status: %d", l_cMsgSource,
- l_estatus);
- // LCOV_EXCL_STOP
- }
-
- FrameworkunifiedMcClose(l_hMq);
- l_hMq = NULL;
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // catastrophic failure!
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "McOpenSender failed for %s ", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPRegisterImmediateNotifications) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
- NC_register_multiple_immediate_notif_msg *l_pMsg = NULL;
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
-
- // get app name of message source
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- UI_32 l_uiMsgLength = FrameworkunifiedGetMsgLength(l_pHApp);
-
- if (l_uiMsgLength <= 0) { // LCOV_EXCL_BR_LINE 6: l_uiMsgLength must be greater than 0
- // LCOV_EXCL_START 6: l_uiMsgLength must be greater than 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't register immediate persistence notification from source %s. Invalid message length.",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- } else {
- std::vector<CHAR> l_vData = std::vector<CHAR>(l_uiMsgLength);
-
- // get the received data
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, &l_vData[0], static_cast<UI_32>(l_vData.size()), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- l_pMsg = reinterpret_cast<NC_register_multiple_immediate_notif_msg *>(&l_vData[0]);
-
- if (NULL != l_pMsg) { // LCOV_EXCL_BR_LINE 5: reinterpret_cast's error case.
- NC_register_immediate_notif_msg *l_pEventInfo = NULL;
- UI_32 l_uiCount;
- // register all the notifications
- for (l_uiCount = 0 ; l_uiCount < l_pMsg->numNotifications; ++l_uiCount) {
- l_pEventInfo = &l_pMsg->notifierList[l_uiCount];
-
- if (NULL != l_pEventInfo) { // LCOV_EXCL_BR_LINE 6: l_pEventInfo can't be NULL
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Register immediate persistence notification: "
- "NotificationName[%d] = %s, data length = %d ",
- l_uiCount, l_pEventInfo->notificationName, l_pEventInfo->maxLength);
-
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceServiceOnRegisterEvents(l_cMsgSource,
- l_pEventInfo->notificationName,
- l_pEventInfo->maxLength,
- l_pEventInfo->persType,
- l_pEventInfo->delay)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in NotificationpersistentserviceServiceOnRegisterEvents :: %s", l_pEventInfo->notificationName);
- }
- } else {
- // LCOV_EXCL_START 6: l_pEventInfo can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't register immediate persistence notification from source %s. l_pEventInfo is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 5: reinterpret_cast's error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't register immediate persistence notification from source %s. Invalid src mq",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't register immediate persistence notification from source %s, "
- "Error getting message data, status: 0x%x",
- l_cMsgSource, l_estatus);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't register immediate persistence notification from source %s. "
- "l_pNotificationManager is NULL", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPClearPersistedData
-/// Deletes NPS Persistent Data and sends the ack back to requester
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPClearPersistedData) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
-
- // requeter MsgQ handle for sending Ack
- HANDLE hRequesterAck = NULL;
-
- // Application Handle
- HANDLE l_pHApp = NULL;
-
- // Received request data
- NC_ClearPersistedDataReq l_tMsg = {};
-
- // Ack structure
- NC_ClearPersisteDatadAck l_tMsgAck = {};
-
- // requester name
- PCSTR pRequester = NULL;
-
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
-
- l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- pRequester = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(pRequester);
-
- if (sizeof(NC_ClearPersistedDataReq) == FrameworkunifiedGetMsgLength(l_pHApp)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, (PVOID)(&l_tMsg), sizeof(NC_ClearPersistedDataReq), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Request for deleting the persistent data of type %d received from %s",
- l_tMsg.ePersistenceData, pRequester);
-
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
- CHKNULL(l_pPersistenceManager);
-
- l_estatus = l_pPersistenceManager->ClearPersistenceData(l_tMsg.ePersistenceData);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedGetMsgDataOfSize Error");
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't delete persistent data. Invalid message size received.");
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- f_pSourceState = NULL;
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- // sending acknowledgement to the requester
-
- // create the requestor handle to send the ack
- hRequesterAck = FrameworkunifiedMcOpenSender(l_pHApp,
- pRequester);
-
- if (NULL != hRequesterAck) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- // set the status
- l_tMsgAck.eStatus = l_estatus;
-
- // send NC_ClearPersisteDatadAck to the requester
- if (eFrameworkunifiedStatusOK != FrameworkunifiedSendMsg(hRequesterAck, // LCOV_EXCL_BR_LINE 4: NSFW error case
- NPS_DELETE_PERSISTED_DATA_ACK,
- sizeof(l_tMsgAck),
- &l_tMsgAck)) {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Error sending NPS_GET_PERS_FILE_ACK message to %s", pRequester);
- // LCOV_EXCL_STOP
- }
-
- // close handle
- FrameworkunifiedMcClose(hRequesterAck);
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "FrameworkunifiedMcOpenSender failed for %s ", pRequester);
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPSetDefaultPersistentData
-/// Sets the default value of the persistent notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPSetDefaultPersistentData) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
-
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL
- UI_32 l_uiMsgLength = FrameworkunifiedGetMsgLength(l_pHApp);
-
- CHAR l_cNotificationName[MAX_SYS_INFO_SIZE] = {};
-
- // retrieve notification name
- FrameworkunifiedGetSystemInfo(l_pHApp, l_cNotificationName);
-
- if (0 != std::strlen(l_cNotificationName)) { // LCOV_EXCL_BR_LINE 6: double check, l_cNotificationName can't be empty // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- "Set default value request for Notification:: %s from :: %s", l_cNotificationName,
- l_cMsgSource);
-
- if (0 != l_uiMsgLength) {
- std::vector<CHAR> pMsgData = std::vector<CHAR>(l_uiMsgLength);
-
- // get the received data
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, &pMsgData[0], static_cast<UI_32>(pMsgData.size()), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // set the default notification data
- if (eFrameworkunifiedStatusOK != l_pNotificationManager->NotificationpersistentserviceSetDefaultPersistentNotificationData(l_cNotificationName,
- (PVOID)&pMsgData[0],
- l_uiMsgLength)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in NotificationpersistentserviceSetDefaultPersistentNotificationData :: %s", l_cNotificationName);
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Unable to set default persistent notification data for %s, "
- "Error retrieving data from message, status: 0x%x",
- l_cNotificationName, l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Not setting default persistent notification data for %s, Data length received is %d",
- l_cNotificationName, l_uiMsgLength);
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_cNotificationName can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Unable to Set DefaultPersistentNotificationData from source %s, Notification name is blank",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't set default value for notification from source %s, l_pNotificationManager is NULL", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPSetNotfnPersistentType
-/// Sets the persist type of notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPSetNotfnPersistentType) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
-
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- CHAR l_cNotificationName[MAX_SYS_INFO_SIZE] = {};
-
- // retrieve notification name
- FrameworkunifiedGetSystemInfo(l_pHApp,
- l_cNotificationName);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
-
- if (NULL != l_pNotificationManager && 0 != std::strlen(l_cNotificationName)) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager can't be NULL, l_cNotificationName can't be empty // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Set persist type request for Notification:: %s", l_cNotificationName);
-
- EFrameworkunifiedPersistCategory ePersistCategory = eFrameworkunifiedUserData;
-
- // get the received data
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(l_pHApp, &ePersistCategory, sizeof(EFrameworkunifiedPersistCategory), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // set the notification persist type
- if (eFrameworkunifiedStatusOK != (l_estatus = l_pNotificationManager->NotificationpersistentserviceSetPersistentCategory(l_cNotificationName, // LCOV_EXCL_BR_LINE 6: always return ok // NOLINT[whitespace/line_length]
- ePersistCategory))) {
- // LCOV_EXCL_START 6: always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in Setting PersistentType for notification :: %s, Status: 0x%x",
- l_cNotificationName, l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in getting the PersistentType message data for notification :: %s, Status: 0x%x",
- l_cNotificationName, l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager can't be NULL, l_cNotificationName can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't set persist type for notification :: %s", l_cNotificationName);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPSetFilePersistentType
-/// Sets the persist type of file
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPSetFilePersistentType) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
-
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
- if (NULL != l_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager can't be NULL
- NC_SetFilePersistType l_tMsg = {};
-
- // get the received data
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(l_tMsg), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- if (0 != std::strlen(l_tMsg.cTag)) { // LCOV_EXCL_BR_LINE 6: double check, l_tMsg.cTag can't be empty
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- "Set persist type request for file tag:: %s from %s", l_tMsg.cTag, l_cMsgSource);
-
- // set the file persist type
- if (eFrameworkunifiedStatusOK != l_pPersistenceManager->NotificationpersistentserviceSetPersistentCategory(l_cMsgSource,
- l_tMsg.cTag,
- l_tMsg.ePersistType,
- ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in Setting FilePersistentType for tag:: %s for request from:: %s", l_tMsg.cTag,
- l_cMsgSource);
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_tMsg.cTag can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "set file persistent type request for NULL file tag from source:: %s", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pPersistenceManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't process request for setting persist type for file from source: %s, l_pPersistenceManager is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPSetFolderPersistentType
-/// Sets the persist type of folder
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPSetFolderPersistentType) {
- try {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
-
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
- if (NULL != l_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: l_pPersistenceManager can't be NULL
- NC_SetFolderPersistType l_tMsg = {};
-
- // get the received data
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tMsg), sizeof(l_tMsg), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- if (0 != std::strlen(l_tMsg.cTag)) { // LCOV_EXCL_BR_LINE 6: double check, l_tMsg.cTag can't be empty
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Set persist type request for folder tag:: %s", l_tMsg.cTag);
-
- // set the file persist type
- if (eFrameworkunifiedStatusOK != l_pPersistenceManager->NotificationpersistentserviceSetPersistentCategory(l_cMsgSource,
- l_tMsg.cTag,
- l_tMsg.ePersistType,
- ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error in Setting FolderPersistentType for tag:: %s for request from:: %s", l_tMsg.cTag,
- l_cMsgSource);
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_tMsg.cTag can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "set file persistent type request for NULL folder tag from source:: %s", l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pPersistenceManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't process request for setting persist type for folder from source: %s, l_pPersistenceManager is NULL",
- l_cMsgSource);
- // LCOV_EXCL_STOP
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPShutdown
-/// Internal transition when NPP receives shutdown message
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPShutdown) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- try {
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- NC_StopMsgData l_tStopMsgData = {};
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_tStopMsgData), sizeof(l_tStopMsgData), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // make a transition to sNotificationpersistentserviceShutdownDataSave state and pass the message data through event
- CShutDownMsgData *l_pMsgData = new(std::nothrow) CShutDownMsgData(EVENT(evNPShutdownDataSave),
- l_tStopMsgData.eShutdownType,
- l_tStopMsgData.uiStopMsgData);
- CHKNULL(l_pMsgData);
-
- CEventDataPtr l_pData(l_pMsgData);
- f_pSourceState->FrameworkunifiedPostEvent(l_pData);
-
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Shutdown Message received from %s with data: %d", l_cMsgSource,
- l_tStopMsgData.uiStopMsgData);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't process shutdown request from:: %s, Invalid message data", l_cMsgSource); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- f_pSourceState = NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnNPNorDataSaveAck
-/// Internal transition when NPP receives shutdown ack message nor worker thread
-////////////////////////////////////////////////////////////////////////////////////////////////////
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPNorDataSaveAck) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- try {
- // data received with ack
- UI_32 l_uiPersistCategoryFlag = 0;
-
- CHKNULL(f_pSourceState);
-
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CHKNULL(l_pNotificationpersistentserviceHSM);
-
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
- CHKNULL(l_pPersistenceManager);
-
- l_pPersistenceManager->SetImmediateDataPersistedStatus(TRUE);
-
- if (eFrameworkunifiedStatusOK == FrameworkunifiedGetMsgDataOfSize(l_pHApp, static_cast<PVOID>(&l_uiPersistCategoryFlag), sizeof(l_uiPersistCategoryFlag), eSMRRelease)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "ShutdownAck received from %s with data: %d", l_cMsgSource,
- l_uiPersistCategoryFlag);
- }
-
- // depending on the flag delete the persisted data from persistent memory
- // which are not to be persisted during shutdown
- l_pnsnpp->DeletePersistedDataFolder(l_uiPersistCategoryFlag);
-
- if (TRUE == l_pPersistenceManager->HaveAllReleaseRequestsPersisted()) { // LCOV_EXCL_BR_LINE 6: always return ok
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "All release requests are processed.");
- f_pSourceState->FrameworkunifiedPostEvent(EVENT(evIdle));
- }
- } catch (std::exception &e) { // LCOV_EXCL_START 5: exception error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- f_pSourceState = NULL;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-CsNotificationpersistentservicePersistenceReady::CsNotificationpersistentservicePersistenceReady(std::string f_strName): CFrameworkunifiedLeafState(f_strName) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
-}
-
-CsNotificationpersistentservicePersistenceReady::~CsNotificationpersistentservicePersistenceReady() { // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CsNotificationpersistentservicePersistenceReady::FrameworkunifiedOnEntry(CEventDataPtr f_peventdata) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
-
- HANDLE l_pHApp = FrameworkunifiedGetAppHandle();
-
- if (NULL != l_pHApp) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- HANDLE l_hMq = FrameworkunifiedMcOpenSender(l_pHApp, g_csendreadyackto);
-
- if (NULL != l_hMq) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- // send ack to requester
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedSendMsg(l_hMq, NPS_NPP_READY_EVENT, 0, NULL))) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __PRETTY_FUNCTION__, "NPP ready status sent to %s.", g_csendreadyackto);
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__, "Error sending NPS_NPP_READY_EVENT to %s, status: %d", g_csendreadyackto,
- l_estatus);
- // LCOV_EXCL_STOP
- }
- FrameworkunifiedMcClose(l_hMq);
- l_hMq = NULL;
- } else {
- // catastrophic failure!
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__, "McOpenSender failed for %s ", g_csendreadyackto); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-EFrameworkunifiedStatus CsNotificationpersistentservicePersistenceReady::FrameworkunifiedOnExit(CEventDataPtr f_peventdata) { // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
- // LCOV_EXCL_STOP
-}
-
-#ifdef NPP_PROFILEINFO_ENABLE
-
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPProfileNotifications) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- try {
- CHKNULL(f_pSourceState);
-
- // get the application handle
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- // get the statemachine pointer of application
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- // get the message source name
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get the message queue handle for sending the response
- HANDLE hSrcMqHandle = FrameworkunifiedMcOpenSender(l_pHApp, l_cMsgSource);
- CHKNULL(hSrcMqHandle);
-
- // get instance of notification manager
- CNotificationManager *l_pNotificationManager = l_pnsnpp->m_pNotificationManager;
- CHKNULL(l_pNotificationManager);
-
- std::string l_cNotificationProfileInfo = "";
-
- // get the data from notification manager
- if (eFrameworkunifiedStatusOK == l_pNotificationManager->GetNotificationProfilingData(l_cNotificationProfileInfo)) {
- UI_32 l_uiLength = l_cNotificationProfileInfo.size();
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "FrameworkunifiedSendMsg NPS_PROFILE_NOTIFICATION_RESP Msg Length: %d", l_uiLength);
-
- PCHAR l_pData = new CHAR[l_uiLength];
- std::memset(l_pData, '0', l_uiLength);
-
- std::strncpy(l_pData, l_cNotificationProfileInfo.c_str(), l_cNotificationProfileInfo.size());
-
- if (eFrameworkunifiedStatusOK != FrameworkunifiedSendMsg(hSrcMqHandle,
- NPS_PROFILE_NOTIFICATION_RESP,
- l_uiLength,
- l_pData)) {
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__,
- "FrameworkunifiedSendMsg NPS_PROFILE_NOTIFICATION_RESP for Notification Profiling failed.");
- }
-
- delete[] l_pData;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Failed to get Notification profiling data from NSNPP.");
- }
- } catch (std::exception &e) {
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- f_pSourceState = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-IMPLEMENT_INTERNALTRANSITION(NotificationpersistentserviceOnNPProfilePersistence) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "+");
- try {
- CHKNULL(f_pSourceState);
-
- // get the application handle
- HANDLE l_pHApp = f_pSourceState->FrameworkunifiedGetAppHandle();
- CHKNULL(l_pHApp);
-
- // get the statemachine pointer of application
- CFrameworkunifiedHSM *l_pNotificationpersistentserviceHSM = FrameworkunifiedGetStateMachine(l_pHApp);
- CNSNPP *l_pnsnpp = static_cast<CNSNPP *>(l_pNotificationpersistentserviceHSM);
- CHKNULL(l_pnsnpp);
-
- // get the message source name
- PCSTR l_cMsgSource = FrameworkunifiedGetMsgSrc(l_pHApp);
- CHKNULL(l_cMsgSource);
-
- // get the message queue handle for sending the response
- HANDLE hSrcMqHandle = FrameworkunifiedMcOpenSender(l_pHApp, l_cMsgSource);
- CHKNULL(hSrcMqHandle);
-
- // get instance of persistence manager
- CPersistenceManager *l_pPersistenceManager = l_pnsnpp->m_pPersistenceManager;
-
- CHKNULL(l_pPersistenceManager);
-
- std::string l_cPersistenceProfileInfo = "";
-
- if (eFrameworkunifiedStatusOK == l_pPersistenceManager->GetPersistenceProfilingData(l_cPersistenceProfileInfo)) {
- UI_32 l_uiLength = l_cPersistenceProfileInfo.size();
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "FrameworkunifiedSendMsg NPS_PROFILE_PERSISTENCE_RESP Msg Length: %d", l_uiLength);
-
- PCHAR l_pData = new CHAR[l_uiLength];
- std::memset(l_pData, '0', l_uiLength);
-
- std::strncpy(l_pData, l_cPersistenceProfileInfo.c_str(), l_cPersistenceProfileInfo.size());
-
- if (eFrameworkunifiedStatusOK != FrameworkunifiedSendMsg(hSrcMqHandle,
- NPS_PROFILE_PERSISTENCE_RESP,
- l_uiLength,
- l_pData)) {
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "FrameworkunifiedSendMsg NPS_PROFILE_PERSISTENCE_RESP for Persistence Profiling failed.");
- }
-
- delete[] l_pData;
- }
- } catch (std::exception &e) {
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Exception %s", e.what());
- f_pSourceState = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __PRETTY_FUNCTION__, "-");
- return f_pSourceState;
-}
-
-#endif
diff --git a/nsframework/notification_persistent_service/server/src/notificationpersistentservice_application.cpp b/nsframework/notification_persistent_service/server/src/notificationpersistentservice_application.cpp
deleted file mode 100755
index c1b97f9..0000000
--- a/nsframework/notification_persistent_service/server/src/notificationpersistentservice_application.cpp
+++ /dev/null
@@ -1,258 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief
-///
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <native_service/frameworkunified_application.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <native_service/ns_np_service_notification.h>
-
-#include "app_states.h"
-#include "ns_npp.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_persistence_manager.h"
-
-using std::malloc;
-
-#ifdef NPP_PROFILEINFO_ENABLE
-#include "ns_npp_profiling_protocols_internal.h"
-#endif
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : FrameworkunifiedOnInitialization
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnInitialization(HANDLE happ) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != happ) { // LCOV_EXCL_BR_LINE 4: happ can't be null
- FrameworkunifiedProtocolEvent ns_npp_protocol_handlers[] = {
- {NPS_REGISTER_EV_REQ, EVENT(evNPRegisterNotifications)},
- {NPS_PUBLISH_EV_REQ, EVENT(evNPPublishNotification)},
- {NPS_SUBSCRIBE_TO_EV_REQ, EVENT(evNPSubscribeToNotification)},
- {NPS_BATCH_SUBSCRIBE_TO_EV_REQ, EVENT(evNPSubscribeToNotifications)},
- {NPS_UNSUBSCRIBE_FROM_EV_REQ, EVENT(evNPUnSubscribeFromNotification)},
- {NPS_UNREGISTER_EV_REQ, EVENT(evNPUnRegisterNotifications)},
- {NPS_GET_PERS_DATA_REQ, EVENT(evNPReadPersistedData)},
- {NPS_SET_PERSIST_FILE_PATH_REQ, EVENT(evNPRegisterPersistentFile)},
- {NPS_RELEASE_PERS_FILE_REQ, EVENT(evNPReleasePersistentFile)},
- {NPS_GET_PERS_FILE_REQ, EVENT(evNPLoadPersistentFile)},
- {NPS_SET_PERSIST_FOLDER_PATH_REQ, EVENT(evNPRegisterPersistentFolder)},
- {NPS_GET_PERS_FOLDER_REQ, EVENT(evNPLoadPersistentFolder)},
- {NPS_RELEASE_PERS_FOLDER_REQ, EVENT(evNPReleasePersistentFolder)},
- {NPS_CHANGE_PERSONALITY_REQ, EVENT(evUserChange)},
- {NPS_NPP_STOP_REQ, EVENT(evShutdown)},
- {NPS_BATCH_UNSUBSCRIBE_FROM_EV_REQ, EVENT(evNPUnSubscribeFromNotifications)},
- {NPS_GET_READYSTATUS_REQ, EVENT(evNPGetReadyStatus)},
- {NPS_REGISTER_NOR_EV_REQ, EVENT(evNPRegisterImmediateNotifications)},
- {NPS_DELETE_PERSISTED_DATA_REQ, EVENT(evNPClearPersistedData)},
- {NPS_SET_DEFAULT_PERS_DATA, EVENT(evNPSetDefaultPersistentData)},
- {NPS_SET_NOTFN_PERSISTENT_TYPE, EVENT(evNPSetNotfnPersistentType)},
- {NPS_SET_FILE_PERSISTENT_TYPE, EVENT(evNPSetFilePersistentType)},
- {NPS_SET_FOLDER_PERSISTENT_TYPE, EVENT(evNPSetFolderPersistentType)},
- {NPS_SYNCHRONOUS_WRITE_NOTIFY_REQ, EVENT(evNPPublishImmediateNotification)},
- {NPS_NPP_SYNC_REQ, EVENT(evNPPersistentSync)}
- };
-
-#ifdef NPP_PROFILEINFO_ENABLE
-
- FrameworkunifiedProtocolEvent ns_npp_profile_protocol_handlers[] = {
- {NPS_PROFILE_NOTIFICATION_REQ, EVENT(evNPProfileNotification)},
- {NPS_PROFILE_PERSISTENCE_REQ, EVENT(evNPProfilePersistence)},
- };
-
- if (eFrameworkunifiedStatusOK == FrameworkunifiedAttachHSMEventsToDispatcher(happ,
- "NSProfileUtil",
- ns_npp_profile_protocol_handlers,
- _countof(ns_npp_profile_protocol_handlers))) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Profile info messages are attached to events");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failed to attach profile info messages to events");
- }
-
-#endif
-
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedAttachHSMEventsToDispatcher(happ, FRAMEWORKUNIFIED_ANY_SOURCE, ns_npp_protocol_handlers, static_cast<UI_32>(_countof(ns_npp_protocol_handlers))))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- CNSNPP *l_pnsnpp = new(std::nothrow) CNSNPP(happ);
- if (NULL != l_pnsnpp) { // LCOV_EXCL_BR_LINE 5: new's error case.
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "l_pnsnpp object created");
-
- if (eFrameworkunifiedStatusOK == (l_estatus = l_pnsnpp->Init(happ))) { // LCOV_EXCL_BR_LINE 200: can't test
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "l_pnsnpp object initialized");
-
- if (eFrameworkunifiedStatusOK == (l_estatus = l_pnsnpp->FrameworkunifiedCreate())) { // LCOV_EXCL_BR_LINE 200: the result of l_pnsnpp->FrameworkunifiedCreate() is always eFrameworkunifiedStatusOK // NOLINT[whitespace/line_length]
- FrameworkunifiedSetStateMachine(happ, l_pnsnpp);
-
- l_pnsnpp->FrameworkunifiedStart();
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "NSNPP statemachine not created, status: 0x%x", l_estatus); // LCOV_EXCL_LINE 200: the result of l_pnsnpp->FrameworkunifiedCreate() is always eFrameworkunifiedStatusOK // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 200: can't test
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pnsnpp object initialization error, status: %d", l_estatus);
-
- // de-initialize the partially initialize object
- l_pnsnpp->DeInit(happ);
-
- delete l_pnsnpp;
- l_pnsnpp = NULL;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 5: malloc's error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pnsnpp object not created");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedAttachHSMEventsToDispatcher Failed Status:0x%x ", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 4: happ can't be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Application handle happ is NULL");
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnDestroy(HANDLE happ) { // LCOV_EXCL_START 14: Resident process, not called by NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : FrameworkunifiedOnDebugDump
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnDebugDump(HANDLE happ) { // LCOV_EXCL_START 7: debug code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "+", __FUNCTION__);
- /// << Dump internal tables!
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "-", __FUNCTION__);
- return eFrameworkunifiedStatusOK;
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus FrameworkunifiedCreateStateMachine(HANDLE happ) {
- return eFrameworkunifiedStatusOK;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedSSFrameworkInterface(HANDLE happ) {
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : FrameworkunifiedOnStart
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnStart(HANDLE happ) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "+", __FUNCTION__);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "-", __FUNCTION__);
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : FrameworkunifiedOnStop
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnStop(HANDLE happ) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "+", __FUNCTION__);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "-", __FUNCTION__);
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : FrameworkunifiedOnPreStart
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnPreStart(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "+", __FUNCTION__);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "-", __FUNCTION__);
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : FrameworkunifiedOnPreStop
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnPreStop(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "+", __FUNCTION__);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "-", __FUNCTION__);
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : FrameworkunifiedOnBackgroundStart
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStart(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "+", __FUNCTION__);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "-", __FUNCTION__);
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : FrameworkunifiedOnBackgroundStop
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStop(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "+", __FUNCTION__);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, "-", __FUNCTION__);
- return eFrameworkunifiedStatusOK;
-}
-
-extern const FrameworkunifiedDefaultCallbackHandler kDefaultCbHandler = { // NOLINT (readability/naming)
- FrameworkunifiedOnInitialization,
- FrameworkunifiedOnDestroy,
- FrameworkunifiedOnStart,
- FrameworkunifiedOnStop,
- FrameworkunifiedOnPreStart,
- FrameworkunifiedOnPreStop,
- FrameworkunifiedOnBackgroundStart,
- FrameworkunifiedOnBackgroundStop,
- FrameworkunifiedOnDebugDump,
- FrameworkunifiedCreateStateMachine,
- FrameworkunifiedSSFrameworkInterface
-}; // LCOV_EXCL_BR_LINE 10: The final line
diff --git a/nsframework/notification_persistent_service/server/src/notificationpersistentservice_main.cpp b/nsframework/notification_persistent_service/server/src/notificationpersistentservice_main.cpp
deleted file mode 100755
index fd963c5..0000000
--- a/nsframework/notification_persistent_service/server/src/notificationpersistentservice_main.cpp
+++ /dev/null
@@ -1,131 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief
-///
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <native_service/ns_version.h>
-#include <native_service/ns_version_if.h>
-#include <native_service/frameworkunified_dispatcher.h>
-#include <native_service/frameworkunified_framework_if.h>
-
-#include <stdlib.h>
-#include <cstdlib>
-#include <iostream>
-
-#include "ns_npp.h" // for static members. Set thread prio.
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_persistence_manager.h" // for static members. Set enable/disable persistence feature.
-
-const CHAR AppName[] = FRAMEWORKUNIFIED_NS_NPSERVICE; // NOLINT (readability/naming)
-CHAR g_csendreadyackto[MAX_QUEUE_NAME_SIZE];
-
-CFrameworkunifiedVersion g_FrameworkunifiedVersion(MAJORNO, MINORNO, REVISION); // NOLINT (readability/naming)
-
-// Argument Parser for NSNPP
-EFrameworkunifiedStatus NPPArgumentParser(SI_32 f_iargument, PCHAR f_pargumentvalue);
-
-FRAMEWORKUNIFIEDLOGPARAM g_FrameworkunifiedLogParams = { // NOLINT (readability/naming)
- FRAMEWORKUNIFIEDLOGOPTIONS,
- {
- ZONE_TEXT_10, ZONE_TEXT_11, ZONE_TEXT_12,
- ZONE_TEXT_13, ZONE_TEXT_14, ZONE_TEXT_15,
- ZONE_TEXT_16, ZONE_TEXT_17, ZONE_TEXT_18,
- ZONE_TEXT_19, ZONE_TEXT_20, ZONE_TEXT_21,
- ZONE_TEXT_22, ZONE_TEXT_23, ZONE_TEXT_24,
- ZONE_TEXT_25, ZONE_TEXT_26, ZONE_TEXT_27,
- ZONE_TEXT_28, ZONE_TEXT_29, ZONE_TEXT_30,
- ZONE_TEXT_31,
- },
- FRAMEWORKUNIFIEDLOGZONES
-};
-
-extern const FrameworkunifiedDefaultCallbackHandler kDefaultCbHandler;
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Function : main
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-int main(int argc, char *argv[]) {
- FRAMEWORKUNIFIED_SET_ZONES();
- CustomCommandLineOptions l_tcmdlineoptions = { "i:e:w:fa:v:", NULL, NPPArgumentParser};
- EFrameworkunifiedStatus l_estatus = FrameworkunifiedDispatcherWithArguments(AppName, argc, argv, &kDefaultCbHandler, &l_tcmdlineoptions);
-
- return static_cast<SI_32>(l_estatus);
-}
-
-EFrameworkunifiedStatus NPPArgumentParser(SI_32 f_iargument, PCHAR f_pargumentvalue) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- SI_32 l_iTmpArgValue = 0;
- switch (f_iargument) { // LCOV_EXCL_BR_LINE 8: cannot test
- // Disable Persistence
- case 'f': {
- CPersistenceManager::m_bPersistenceDisabled = TRUE;
- break;
- }
- case 'i': {
- l_iTmpArgValue = atoi(f_pargumentvalue);
- if (l_iTmpArgValue > 0) { // LCOV_EXCL_BR_LINE 8: cannot test
- CNSNPP::m_siImmediatePersistenceThreadPrio = l_iTmpArgValue;
- }
- break;
- }
- case 'e': {
- l_iTmpArgValue = atoi(f_pargumentvalue);
- if (l_iTmpArgValue > 0) { // LCOV_EXCL_BR_LINE 8: cannot test
- CNSNPP::m_siReadThreadPrio = l_iTmpArgValue;
- }
- break;
- }
- case 'w': {
- l_iTmpArgValue = atoi(f_pargumentvalue);
- if (l_iTmpArgValue > 0) { // LCOV_EXCL_BR_LINE 8: cannot test
- CNSNPP::m_siWriteThreadPrio = l_iTmpArgValue;
- }
- break;
- }
- case 'a': {
- std::memset(g_csendreadyackto, 0, MAX_QUEUE_NAME_SIZE);
- std::strncpy(g_csendreadyackto, f_pargumentvalue, (MAX_QUEUE_NAME_SIZE - 1));
- break;
- }
- case 'v': {
- l_iTmpArgValue = atoi(f_pargumentvalue);
- CNSNPP::m_siCRCCheckCount = static_cast<UI_16>(l_iTmpArgValue);
- break;
- }
-
- default:
- l_estatus = eFrameworkunifiedStatusFail;
- break;
- }
- return l_estatus;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp.cpp b/nsframework/notification_persistent_service/server/src/ns_npp.cpp
deleted file mode 100755
index 25b6443..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp.cpp
+++ /dev/null
@@ -1,1149 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief
-///
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <time.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <dirent.h>
-#include <sys/stat.h>
-#include <sys/timeb.h>
-#include <sys/types.h>
-
-#include <native_service/frameworkunified_sm_leafstate.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <native_service/ns_np_service_protocol.h>
-
-#include <string>
-#include <vector>
-
-#include <native_service/ns_np_service_nor_persistence_internal.h>
-#include "app_states.h"
-#include "ns_npp.h"
-#include "ns_npp_types.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_threads.h"
-#include "ns_npp_copy_worker.h"
-#include "ns_npp_fs_directory.h"
-#include "ns_npp_persist_folder.h"
-#include "ns_npp_persistent_data.h"
-#include "ns_npp_persistence_manager.h"
-#include "ns_npp_notification_manager.h"
-#include "ns_npp_personalization_manager.h"
-#include "ns_npp_nor_persistence_worker_thread.h"
-
-#define NPP_VERSION_INVALID 255
-#define NPP_VERSION_0 0
-#define NPP_VERSION_1 1
-
-#define NPP_CONNECT_DEFAULTSTATE(parent, child) \
- FrameworkunifiedConnect(l_p## parent, l_p## child, TRUE);
-
-#define NPP_CONNECT_STATE(parent, child) \
- FrameworkunifiedConnect(l_p## parent, l_p## child);
-
-#define NPP_CONNECT_DEFERREDEVENT(state, eventid, reaction) \
- FrameworkunifiedConnect(l_p## state, _## eventid, l_pTrn## reaction, #eventid, TRUE); \
-
-#define NPP_CONNECT_EVENT(state, eventid, reaction) \
- FrameworkunifiedConnect(l_p## state, _## eventid, l_pTrn## reaction, #eventid);
-
-#define NPP_CONNECTROOT(state) \
- FrameworkunifiedConnect(l_p## state);
-
-#define NPP_CONNECT_ORTHOGONAL_REGION(orthogonalstate, orthogonalregion) \
- FrameworkunifiedConnectOrthogonal(l_p## orthogonalstate, l_p## orthogonalregion);
-
-#define NPP_CREATE_STATE(class_name) \
- C## class_name *l_p## class_name = new (std::nothrow) C## class_name(#class_name);
-
-#define NPP_PRINTSTATEMACHINE() \
- FrameworkunifiedPrintAllStates();
-
-// typedef of vector of CNotificationsToPersist
-typedef std::vector<CNotificationsToPersist *> Persistent_Notification_List_Type;
-
-// iterator for CNotificationsToPersist vector
-typedef Persistent_Notification_List_Type::iterator Persistent_Notification_List_Iterator;
-
-// initialize static variables
-SI_32 CNSNPP::m_siWriteThreadPrio = NS_NPP_WRITE_THREAD_PRIO;
-SI_32 CNSNPP::m_siReadThreadPrio = NS_NPP_READ_THREAD_PRIO;
-SI_32 CNSNPP::m_siImmediatePersistenceThreadPrio = NS_NPP_IMMEDIATE_PERSIST_THREAD_PRIO;
-UI_16 CNSNPP::m_siCRCCheckCount = 0;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CNSNPP
-/// Class Constructor
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNSNPP::CNSNPP(PVOID f_happ) : CFrameworkunifiedHSM(f_happ),
- m_cReadThreadName(NS_NPP_READ_THREAD_NAME),
- m_cWriteThreadName(NS_NPP_WRITE_THREAD_NAME),
- m_cImmediatePersistenceThreadName(NS_NPP_IMMEDIATE_PERSIST_THREAD_NAME) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- m_hNSReadThread = NULL;
- m_hNSWriteThread = NULL;
- m_hNSImmediatePersistenceThread = NULL;
-
- m_pNotificationManager = NULL;
- m_pPersonalizationManager = NULL;
- m_pPersistenceManager = NULL;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CNSNPP
-/// Class Destructor
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNSNPP::~CNSNPP() { // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_pNotificationManager) {
- delete m_pNotificationManager;
- m_pNotificationManager = NULL;
- }
-
- if (NULL != m_pPersonalizationManager) {
- delete m_pPersonalizationManager;
- m_pPersonalizationManager = NULL;
- }
- if (NULL != m_pPersistenceManager) {
- delete m_pPersistenceManager;
- m_pPersistenceManager = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Init
-/// This function is used to allocate dynamic memory for member variables of this class after
-/// creation of object.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::Init(HANDLE f_happ) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FrameworkunifiedProtocolEvent ns_npp_internal_protocol_handlers[] = {
- {CP_WRK_NTFY, EVENT(evNPReleaseLoadAck)}
- };
-
- FrameworkunifiedProtocolEvent immediate_thread_protocol_handlers[] = {
- {NOR_PERSISTENCE_ONSHUTDOWN_ACK, EVENT(evNPNorShutdownAck)},
- };
-
- UI_32 l_uiNPPVersion = NPP_VERSION_INVALID;
-
- // initialize Notification Manager
- m_pNotificationManager = new(std::nothrow) CNotificationManager();
- // initialize Personalization Manager
- m_pPersonalizationManager = new(std::nothrow) CnotificationpersistentservicePersonalizationManager();
- // initialize Persistence Manager
- m_pPersistenceManager = new(std::nothrow) CPersistenceManager();
-
- if ((NULL == f_happ) || (NULL == m_pNotificationManager) || (NULL == m_pPersonalizationManager) || (NULL == m_pPersistenceManager)) { // LCOV_EXCL_BR_LINE 5: f_happ, m_pNotificationManager, m_pPersonalizationManager, m_pPersistenceManager can't be NULL // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 5: f_happ, m_pNotificationManager, m_pPersonalizationManager, m_pPersistenceManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "f_happ or m_pNotificationManager or m_pPersonalizationManager or m_pPersistenceManager is NULL");
-
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- } else {
- if ((eFrameworkunifiedStatusOK != FrameworkunifiedAttachCallbackToDispatcher( // LCOV_EXCL_BR_LINE 4: NSFW error case
- f_happ, m_cReadThreadName.c_str(),
- CP_WRK_ACK_CMD_COMPLETE,
- NPServiceOnCpWorkerAckCmd))
- || (eFrameworkunifiedStatusOK != FrameworkunifiedAttachCallbackToDispatcher(
- f_happ, m_cWriteThreadName.c_str(),
- CP_WRK_ACK_CMD_COMPLETE,
- NPServiceOnCpWorkerAckCmd))
- || (eFrameworkunifiedStatusOK != FrameworkunifiedAttachHSMEventsToDispatcher(
- f_happ, m_cWriteThreadName.c_str(),
- ns_npp_internal_protocol_handlers,
- static_cast<UI_32>(_countof(ns_npp_internal_protocol_handlers))))
- || (eFrameworkunifiedStatusOK != FrameworkunifiedAttachHSMEventsToDispatcher(
- f_happ, m_cReadThreadName.c_str(),
- ns_npp_internal_protocol_handlers,
- static_cast<UI_32>(_countof(ns_npp_internal_protocol_handlers))))
- || (eFrameworkunifiedStatusOK != FrameworkunifiedAttachHSMEventsToDispatcher(
- f_happ, m_cImmediatePersistenceThreadName.c_str(),
- immediate_thread_protocol_handlers,
- static_cast<UI_32>(_countof(immediate_thread_protocol_handlers))))) {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Attaching callbacks and events failed for protocols CP_WRK_ACK_CMD_COMPLETE, CP_WRK_NTFY");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- l_estatus = CreateAndStartChildThreads(f_happ);
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- if (NPP_VERSION_INVALID != (l_uiNPPVersion = GetNSNPPVersion())) { // LCOV_EXCL_BR_LINE 6: l_uiNPPVersion can't be NPP_VERSION_INVALID // NOLINT[whitespace/line_length]
- if (NPP_VERSION_0 == l_uiNPPVersion) {
- l_estatus = SwitchToFileStructureVersion1(l_uiNPPVersion + 1);
-
- l_estatus = SwitchToFileStructureVersion2(l_uiNPPVersion + 2);
- } else if (NPP_VERSION_1 == l_uiNPPVersion) { // LCOV_EXCL_BR_LINE 200: cannot test code in init sequence
- // LCOV_EXCL_START 200: cannot test code in init sequence
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = SwitchToFileStructureVersion2(l_uiNPPVersion + 1);
-
- // send the message to write worker thread to delete the persistent
- /// which was requested for deletion during previous shutdown
- l_estatus = FrameworkunifiedSendChild(f_happ, m_hNSWriteThread, CMD_DELETE_OLD_DATA, 0, NULL);
- // LCOV_EXCL_STOP
- } else {
- // send the message to write worker thread to delete the persistent
- /// which was requested for deletion during previous shutdown
- l_estatus = FrameworkunifiedSendChild(f_happ, m_hNSWriteThread, CMD_DELETE_OLD_DATA, 0, NULL);
- }
-
- // Try to load persisted notification data
- NotificationpersistentserviceLoadPersistentNotificationData(eFrameworkunifiedPersistedStateVar);
-
- // load immediate persistence data as the respective thread is now started.
- NotificationpersistentserviceLoadPersistentNotificationData(eFrameworkunifiedImmediatePersistedStateVar);
- } else {
- // LCOV_EXCL_START 6: l_uiNPPVersion can't be NPP_VERSION_INVALID
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid version of NPPService");
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in creating child threads of NPPService"); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// DeInit
-/// This function is used to deinitialize the NPP object
-////////////////////////////////////////////////////////////////////////////////////////////////////
-VOID CNSNPP::DeInit(HANDLE f_happ) { // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_pNotificationManager) {
- delete m_pNotificationManager;
- m_pNotificationManager = NULL;
- }
-
- if (NULL != m_pPersonalizationManager) {
- delete m_pPersonalizationManager;
- m_pPersonalizationManager = NULL;
- }
-
- if (NULL != m_pPersistenceManager) {
- delete m_pPersistenceManager;
- m_pPersistenceManager = NULL;
- }
-
- if (NULL != f_happ) {
- EFrameworkunifiedStatus eStatus;
-
- if (NULL != m_hNSReadThread) {
- if (eFrameworkunifiedStatusOK != (eStatus = FrameworkunifiedStopChildThread(f_happ, m_hNSReadThread, 0, NULL))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedStopChildThread Read Thread Failed. status=%d", eStatus);
- }
- if (eFrameworkunifiedStatusOK != (eStatus = FrameworkunifiedDestroyChildThread(f_happ, m_hNSReadThread))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedDestroyChildThread Read Thread Failed. status=%d", eStatus);
- }
- m_hNSReadThread = NULL;
- }
-
- if (NULL != m_hNSWriteThread) {
- if (eFrameworkunifiedStatusOK != (eStatus = FrameworkunifiedStopChildThread(f_happ, m_hNSWriteThread, 0, NULL))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedStopChildThread Write Thread Failed. status=%d", eStatus);
- }
- if (eFrameworkunifiedStatusOK != (eStatus = FrameworkunifiedDestroyChildThread(f_happ, m_hNSWriteThread))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedDestroyChildThread Write Thread Failed. status=%d", eStatus);
- }
- m_hNSWriteThread = NULL;
- }
-
- if (NULL != m_hNSImmediatePersistenceThread) {
- if (eFrameworkunifiedStatusOK != (eStatus = FrameworkunifiedStopChildThread(f_happ, m_hNSImmediatePersistenceThread, 0, NULL))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedStopChildThread ImmidatePersistence Thread Failed. status=%d", eStatus);
- }
- if (eFrameworkunifiedStatusOK != (eStatus = FrameworkunifiedDestroyChildThread(f_happ, m_hNSImmediatePersistenceThread))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedDestroyChildThread ImmidatePersistence Thread Failed. status=%d", eStatus);
- }
- m_hNSImmediatePersistenceThread = NULL;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// SwitchToFileStructureVersion1
-/// Copy all the user data from old persistent path to new persistent path i.e. UserData folder
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::SwitchToFileStructureVersion1(const UI_32 f_uinppversion) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- std::string l_cSrcPath = "";
- std::string l_cDestPath = "";
-
- std::string l_cNSNPSPath = CPersistence::GetStoragePath();
- std::string l_cUserDataPath = "";
-
- if (CFSDirectory::DoesDirecotryExist(l_cNSNPSPath)) { // LCOV_EXCL_BR_LINE 6: l_cNSNPSPath must exist
- DIR *l_pdir = NULL;
-
- struct dirent *l_pdirent = NULL;
-
- l_pdir = opendir(l_cNSNPSPath.c_str());
-
- if (NULL != l_pdir) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- if (l_cNSNPSPath[l_cNSNPSPath.length() - 1] != '/') { // LCOV_EXCL_BR_LINE 6: l_cNSNPSPath must has '/'
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_cNSNPSPath.append("/"); // LCOV_EXCL_LINE 6: l_cNSNPSPath must has '/'
- }
-
- // set the userdata folder path
- l_cUserDataPath.assign(l_cNSNPSPath);
- l_cUserDataPath.append(USERDATADIR);
- l_cUserDataPath.append(ALLUSERAPPDATADIR);
-
- // create the userdata directory
- if (!CFSDirectory::DoesDirecotryExist(l_cUserDataPath)) {
- l_estatus = CFSDirectory::CreateDirectory(l_cUserDataPath);
- }
-
- // if directory successfully created or is already present on target
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 6: l_estatus must be eFrameworkunifiedStatusOK
- while (NULL != (l_pdirent = readdir(l_pdir))) {
- if (0 != std::strcmp(l_pdirent->d_name, ".") &&
- 0 != std::strcmp(l_pdirent->d_name, "..") &&
- 0 != std::strcmp(l_pdirent->d_name, AppName) &&
- 0 != std::strcmp(l_pdirent->d_name, USERDATA)) {
- l_cSrcPath.assign(l_cNSNPSPath.c_str());
- l_cSrcPath.append(l_pdirent->d_name);
-
- if (CFSDirectory::IsDirectory(l_cSrcPath)) { // LCOV_EXCL_BR_LINE 6: cannot test in init sequence
- l_cDestPath.assign(l_cUserDataPath);
- l_cDestPath.append(l_pdirent->d_name);
-
- // move the old app user data to the UserData fodler
- if (0 != rename(l_cSrcPath.c_str(), l_cDestPath.c_str())) { // LCOV_EXCL_BR_LINE 6: rename must return ok // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: rename must return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error renaming folder %s to %s",
- l_cSrcPath.c_str(), l_cDestPath.c_str());
- // LCOV_EXCL_STOP
- }
- }
- }
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to create directory:: %s", l_cDestPath.c_str()); // LCOV_EXCL_LINE 6: l_estatus must be eFrameworkunifiedStatusOK // NOLINT[whitespace/line_length]
- }
-
- closedir(l_pdir); // close the directory
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pdir is NULL");
- // LCOV_EXCL_STOP
- }
- }
-
- l_estatus = SetNSNPPVersion(static_cast<UI_8>(f_uinppversion));
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// SwitchToFileStructureVersion2
-/// Move immediate notification data files from IMMEDIATE_PERSISTENCE_STORAGE_V1 to
-/// IMMEDIATE_PERSISTENCE_STORAGE_V2/AllUserAppData/UserData
-//// ////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::SwitchToFileStructureVersion2(const UI_32 f_uinppversion) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // immediate notification persistent path for NPPService version 1
- std::string l_cSrcDir = IMMEDIATE_PERSISTENCE_STORAGE_V1;
-
- // immediate notification persistent path for NPPService version 2
- std::string l_cDestDir = IMMEDIATE_PERSISTENCE_STORAGE_V2;
- l_cDestDir.append(USERDATADIR);
- l_cDestDir.append(ALLUSERAPPDATADIR);
- l_cDestDir.append(IMMEDIATEDATADIR);
-
- if (eFrameworkunifiedStatusOK == (l_estatus = SynchronousMovePersistentData(l_cSrcDir.c_str(), l_cDestDir.c_str()))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- if (!CFSDirectory::RemoveDirectory(l_cSrcDir)) { // LCOV_EXCL_BR_LINE 6: cannot test in init sequence
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Error deleting old immediate pers. dir %s", l_cSrcDir.c_str());
- }
-
- l_estatus = SetNSNPPVersion(static_cast<UI_8>(f_uinppversion));
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "SynchronousMovePersistentData faiure, status=%d", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////
-/// GetNSNPPVersion
-/// Get the version of NSNPP from version.txt
-///////////////////////////////////////////////////////////////////////////////////////////
-UI_32 CNSNPP::GetNSNPPVersion() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- UI_32 l_uiVersion = NPP_VERSION_INVALID;
- CHAR l_cVerStr[3] = {};
- FILE *l_pFile = NULL;
-
- std::string l_cVersion = CPersistence::GetStoragePath();
- if (l_cVersion[l_cVersion.length() - 1] != '/') { // LCOV_EXCL_BR_LINE 6: must has '/'
- l_cVersion += "/";
- }
- l_cVersion.append(VERSION_TXT);
-
- if (NULL != (l_pFile = fopen(l_cVersion.c_str(), "r"))) {
- // read the version from file
- if (NULL == fgets(l_cVerStr, 2, l_pFile)) { // LCOV_EXCL_BR_LINE 6: can't return NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "File empty: %s", l_cVersion.c_str()); // LCOV_EXCL_LINE 6: can't return NULL
- } else {
- errno = EOK;
- l_uiVersion = static_cast<UI_32>(strtol(l_cVerStr, NULL, 10));
-
- if (EOK != errno) { // LCOV_EXCL_BR_LINE 6: errno always is EOK
- // LCOV_EXCL_START 6: errno always is EOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Error converting string %s to hex, errno=%d", l_cVerStr, errno);
- l_uiVersion = NPP_VERSION_0;
- // LCOV_EXCL_STOP
- }
- }
-
- fclose(l_pFile);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to open file: %s, errno=%d", l_cVersion.c_str(), errno);
- l_uiVersion = NPP_VERSION_0;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_uiVersion;
-}
-///////////////////////////////////////////////////////////////////////////////////////////
-/// Syncfs
-/// Syncfs is carried out.
-///
-/// \param
-///
-/// \return EFrameworkunifiedStatus
-/// EFrameworkunifiedStatus - Returns status of operation
-///
-///////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::Syncfs() {
- int dfd;
-
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- std::string l_cPath = CPersistence::GetStoragePath();
-
- // create the file
- dfd = open(l_cPath.c_str(), O_RDONLY | O_DIRECTORY);
- if (-1 != dfd) {
- // syncfs()
- if (syncfs(dfd) < 0) { // LCOV_EXCL_BR_LINE 5: syncfs's error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to syncfs: %s errno=%d", l_cPath.c_str(), errno); // LCOV_EXCL_LINE 5: syncfs's error case. // NOLINT[whitespace/line_length]
- }
- close(dfd);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to open file: %s serrno=%d", l_cPath.c_str(), errno);
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-///////////////////////////////////////////////////////////////////////////////////////////
-/// SetNSNPPVersion
-/// Set the version of NSNPP in version.txt
-///////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::SetNSNPPVersion(UI_8 f_uiversion) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FILE *l_pFile = NULL;
-
- std::string l_cVersion = CPersistence::GetStoragePath();
- if (l_cVersion[l_cVersion.length() - 1] != '/') { // LCOV_EXCL_BR_LINE 6: must has '/'
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_cVersion += "/"; // LCOV_EXCL_LINE 6: must has '/'
- }
- if (!CFSDirectory::DoesDirecotryExist(l_cVersion)) {
- CFSDirectory::CreateDirectory(l_cVersion);
- }
-
- l_cVersion.append(VERSION_TXT);
-
- // create the file and write
- l_pFile = fopen(l_cVersion.c_str(), "w");
- if (NULL != l_pFile) { // LCOV_EXCL_BR_LINE 6: l_pFile can't be NULL
- // write the version to file
- fprintf(l_pFile, "%d", f_uiversion);
- fclose(l_pFile);
- } else {
- // LCOV_EXCL_START 6: l_pFile can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to open file: %s", l_cVersion.c_str());
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// FrameworkunifiedCreate
-/// In this function, states and events of StateMachine are created and connected.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::FrameworkunifiedCreate(PVOID f_peventdata) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // ========Create states
- NPP_CREATE_STATE(sNotificationpersistentserviceNPPRoot)
- NPP_CREATE_STATE(sNotificationpersistentserviceNPPStart)
- NPP_CREATE_STATE(sNotificationpersistentserviceNPPError)
-
- CREATE_ORTHOGONALREGION(sNotificationpersistentservicePersistence)
- CREATE_ORTHOGONALREGION(sNotificationpersistentserviceShutdown)
- CREATE_ORTHOGONALREGION(sNotificationpersistentserviceNotification)
-
- NPP_CREATE_STATE(sNotificationpersistentservicePersistenceReady)
- NPP_CREATE_STATE(sNotificationpersistentservicePersistenceError)
-
- NPP_CREATE_STATE(sNotificationpersistentserviceNotificationReady)
- NPP_CREATE_STATE(sNotificationpersistentserviceNotificationError)
-
- NPP_CREATE_STATE(sNotificationpersistentserviceShutdownIdle)
- NPP_CREATE_STATE(sNotificationpersistentserviceShutdownDataSave)
-
- // ========Connect states
- NPP_CONNECT_DEFAULTSTATE(sNotificationpersistentserviceNPPRoot, sNotificationpersistentserviceNPPStart)
- NPP_CONNECT_STATE(sNotificationpersistentserviceNPPRoot, sNotificationpersistentserviceNPPStart)
- NPP_CONNECT_STATE(sNotificationpersistentserviceNPPRoot, sNotificationpersistentserviceNPPError)
-
- NPP_CONNECT_ORTHOGONAL_REGION(sNotificationpersistentserviceNPPStart, sNotificationpersistentservicePersistence)
- NPP_CONNECT_ORTHOGONAL_REGION(sNotificationpersistentserviceNPPStart, sNotificationpersistentserviceShutdown)
- NPP_CONNECT_ORTHOGONAL_REGION(sNotificationpersistentserviceNPPStart, sNotificationpersistentserviceNotification)
-
- NPP_CONNECT_DEFAULTSTATE(sNotificationpersistentservicePersistence, sNotificationpersistentservicePersistenceReady)
- NPP_CONNECT_STATE(sNotificationpersistentservicePersistence, sNotificationpersistentservicePersistenceError)
-
- NPP_CONNECT_DEFAULTSTATE(sNotificationpersistentserviceShutdown, sNotificationpersistentserviceShutdownIdle)
- NPP_CONNECT_STATE(sNotificationpersistentserviceShutdown, sNotificationpersistentserviceShutdownDataSave)
-
- NPP_CONNECT_DEFAULTSTATE(sNotificationpersistentserviceNotification, sNotificationpersistentserviceNotificationReady)
- NPP_CONNECT_STATE(sNotificationpersistentserviceNotification, sNotificationpersistentserviceNotificationError)
-
- // ========Create external transitions
- CREATE_EXTERNALTRANSITION(sNotificationpersistentserviceNPPStart)
- CREATE_EXTERNALTRANSITION(sNotificationpersistentserviceNPPError)
- CREATE_EXTERNALTRANSITION(sNotificationpersistentservicePersistenceReady)
- CREATE_EXTERNALTRANSITION(sNotificationpersistentservicePersistenceError)
- CREATE_EXTERNALTRANSITION(sNotificationpersistentserviceShutdownIdle)
- CREATE_EXTERNALTRANSITION(sNotificationpersistentserviceShutdownDataSave)
- CREATE_EXTERNALTRANSITION(sNotificationpersistentserviceNotificationReady)
- CREATE_EXTERNALTRANSITION(sNotificationpersistentserviceNotificationError)
-
- // ========Create internal transitions
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPReadPersistedData)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPReleaseFileAck)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnUserChange)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPNorDataSaveAck)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnRegisterPersistentFile)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnReleasePersistentFile)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnLoadPersistentFile)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnRegisterPersistentFolder)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnLoadPersistentFolder)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnReleasePersistentFolder)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPSetFilePersistentType)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPSetFolderPersistentType)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPPersistentSync)
-
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPShutdown)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnShutdownTimeout)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceCheckAllReleaseRequestsProcessed)
-
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPPublishNotification)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPRegisterNotifications)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPSubscribeToNotification)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPSubscribeToNotifications)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPUnRegisterNotifications)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPUnSubscribeFromNotification)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPUnSubscribeFromNotifications)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPGetReadyStatus)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPRegisterImmediateNotifications)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPClearPersistedData)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPSetDefaultPersistentData)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPSetNotfnPersistentType)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPPublishImmediateNotification)
-
-#ifdef NPP_PROFILEINFO_ENABLE
-
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPProfileNotifications)
- CREATE_INTERNALTRANSITION(NotificationpersistentserviceOnNPProfilePersistence)
-
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPProfileNotification, NotificationpersistentserviceOnNPProfileNotifications)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPProfilePersistence, NotificationpersistentserviceOnNPProfilePersistence)
-
-#endif
-
- // ========Connect events
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNPPRoot, evNPClearPersistedData, NotificationpersistentserviceOnNPClearPersistedData)
-
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNPPStart, evError, sNotificationpersistentserviceNPPError)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNPPError, evReady, sNotificationpersistentserviceNPPStart)
-
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evError, sNotificationpersistentservicePersistenceError)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceError, evReady, sNotificationpersistentservicePersistenceReady)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPReadPersistedData, NotificationpersistentserviceOnNPReadPersistedData)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPReleaseLoadAck, NotificationpersistentserviceOnNPReleaseFileAck)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPRegisterPersistentFile, NotificationpersistentserviceOnRegisterPersistentFile)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPReleasePersistentFile, NotificationpersistentserviceOnReleasePersistentFile)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPLoadPersistentFile, NotificationpersistentserviceOnLoadPersistentFile)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPRegisterPersistentFolder, NotificationpersistentserviceOnRegisterPersistentFolder)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPLoadPersistentFolder, NotificationpersistentserviceOnLoadPersistentFolder)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPReleasePersistentFolder, NotificationpersistentserviceOnReleasePersistentFolder)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPGetReadyStatus, NotificationpersistentserviceOnNPGetReadyStatus)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPSetFilePersistentType, NotificationpersistentserviceOnNPSetFilePersistentType)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPSetFolderPersistentType, NotificationpersistentserviceOnNPSetFolderPersistentType)
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evNPPersistentSync, NotificationpersistentserviceOnNPPersistentSync)
-
- NPP_CONNECT_EVENT(sNotificationpersistentservicePersistenceReady, evUserChange, NotificationpersistentserviceOnUserChange)
-
- NPP_CONNECT_EVENT(sNotificationpersistentserviceShutdownIdle, evShutdown, NotificationpersistentserviceOnNPShutdown)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceShutdownIdle, evNPShutdownDataSave, sNotificationpersistentserviceShutdownDataSave)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceShutdownDataSave, evIdle, sNotificationpersistentserviceShutdownIdle)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceShutdownDataSave, evShutdownTimeout, NotificationpersistentserviceOnShutdownTimeout)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceShutdownDataSave, evCheckAllFilesPersisted, NotificationpersistentserviceCheckAllReleaseRequestsProcessed)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceShutdownDataSave, evNPNorShutdownAck, NotificationpersistentserviceOnNPNorDataSaveAck)
-
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evError, sNotificationpersistentserviceNotificationError)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationError, evReady, sNotificationpersistentserviceNotificationReady)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPPublishNotification, NotificationpersistentserviceOnNPPublishNotification)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPRegisterNotifications, NotificationpersistentserviceOnNPRegisterNotifications)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPSubscribeToNotification, NotificationpersistentserviceOnNPSubscribeToNotification)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPSubscribeToNotifications, NotificationpersistentserviceOnNPSubscribeToNotifications)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPUnRegisterNotifications, NotificationpersistentserviceOnNPUnRegisterNotifications)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPUnSubscribeFromNotification, NotificationpersistentserviceOnNPUnSubscribeFromNotification)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPUnSubscribeFromNotifications, NotificationpersistentserviceOnNPUnSubscribeFromNotifications)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPRegisterImmediateNotifications, NotificationpersistentserviceOnNPRegisterImmediateNotifications)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPSetDefaultPersistentData, NotificationpersistentserviceOnNPSetDefaultPersistentData)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPSetNotfnPersistentType, NotificationpersistentserviceOnNPSetNotfnPersistentType)
- NPP_CONNECT_EVENT(sNotificationpersistentserviceNotificationReady, evNPPublishImmediateNotification, NotificationpersistentserviceOnNPPublishImmediateNotification)
-
- NPP_CONNECTROOT(sNotificationpersistentserviceNPPRoot)
-
- NPP_PRINTSTATEMACHINE() // NOLINT (whitespace/empty_if_body)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentservicePersistAll
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::NotificationpersistentservicePersistAll(EFrameworkunifiedShutdownType f_eshutdowntype, UI_32 f_uinotificationpersistentservicepersistcategoryflag) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (eFrameworkunifiedQuickShutdown == f_eshutdowntype) {
- if (NULL != m_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: m_pPersistenceManager can't be NULL
- // set all file persisted status as TRUE
- m_pPersistenceManager->SetFilePersistedStatus(TRUE);
-
- // send request to immediate persistence thread to stop all the immediate notification timer
- m_pPersistenceManager->PersistNORData(f_eshutdowntype, f_uinotificationpersistentservicepersistcategoryflag);
- }
- } else {
- if (eFrameworkunifiedNormalShutdown == f_eshutdowntype) {
- f_uinotificationpersistentservicepersistcategoryflag = 0x0;
- }
-
- // save global notification data of persisted state notification
- if (eFrameworkunifiedStatusOK != NotificationpersistentserviceSaveNotificationPersistentData(eFrameworkunifiedPersistedStateVar, f_uinotificationpersistentservicepersistcategoryflag)) { // LCOV_EXCL_BR_LINE 6: NotificationpersistentserviceSaveNotificationPersistentData will always return ok // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: NotificationpersistentserviceSaveNotificationPersistentData will always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while saving notification persistent data.");
- // LCOV_EXCL_STOP
- }
-
- // save user notification data for the current user
- if (eFrameworkunifiedStatusOK != NotificationpersistentserviceSaveNotificationPersistentData(eFrameworkunifiedPersistedStateUserVar, f_uinotificationpersistentservicepersistcategoryflag)) { // LCOV_EXCL_BR_LINE 6: NotificationpersistentserviceSaveNotificationPersistentData will always return ok // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: NotificationpersistentserviceSaveNotificationPersistentData will always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while saving user notification persistent data.");
- // LCOV_EXCL_STOP
- }
-
- // NOR data is saved immediately,
- // but during shutdown it can be possible that because of delay in consecutive save to NOR
- // the latest data may not get persisted. So if we get shutdown we will need to persist the data immediately.
- if (NULL != m_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: m_pPersistenceManager can't be NULL
- m_pPersistenceManager->PersistNORData(f_eshutdowntype, f_uinotificationpersistentservicepersistcategoryflag);
- }
-
- // delete all persistent files and folders for all applications
- if ((eFrameworkunifiedUserData | eFrameworkunifiedFactoryData | eFrameworkunifiedFactoryCustomerData | eFrameworkunifiedDealerData) == f_uinotificationpersistentservicepersistcategoryflag) {
- if (NULL != m_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: m_pPersistenceManager can't be NULL
- m_pPersistenceManager->SetFilePersistedStatus(TRUE);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 6: m_pPersistenceManager can't be NULL
- }
- } else {
- // writes the temporary global and user files to permanent memory
- if (m_pPersistenceManager) { // LCOV_EXCL_BR_LINE 6: m_pPersistenceManager can't be NULL
- if (eFrameworkunifiedStatusOK == m_pPersistenceManager->PersistAllReleaseRequests(f_uinotificationpersistentservicepersistcategoryflag)) { // LCOV_EXCL_BR_LINE 6: PersistAllReleaseRequests will always return ok // NOLINT[whitespace/line_length]
- // this is needed to check in case when there are no file to persist
- if (TRUE == m_pPersistenceManager->HaveAllReleaseRequestsPersisted()) { // LCOV_EXCL_BR_LINE 6: HaveAllReleaseRequestsPersisted will always return ok // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: HaveAllReleaseRequestsPersisted will always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "All file release requests processed");
- m_pPersistenceManager->SetFilePersistedStatus(TRUE);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: PersistAllReleaseRequests will always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while persisting temporary files.");
- // LCOV_EXCL_STOP
- }
- }
- }
- }
-
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// DeletePersistedDataFolder
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::DeletePersistedDataFolder(UI_32 f_uinotificationpersistentservicepersistcategoryflag) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- struct timeb timebuf;
- struct tm *theTime;
-
- ftime(&timebuf);
- theTime = gmtime(&timebuf.time); // NOLINT (runtime/threadsafe_fn)
-
- // get the current date and time to append to the folder name
- PCHAR l_cDateTime = new CHAR[MAX_STRING_SIZE_TAG];
- snprintf(l_cDateTime, MAX_STRING_SIZE_TAG, "_%02d%02d%02d_%02d%02d%02d", theTime->tm_mon + 1, theTime->tm_mday,
- theTime->tm_year + 1900, theTime->tm_hour, theTime->tm_min, theTime->tm_sec);
-
- std::string l_cBasePath = CPersistence::GetStoragePath();
- std::string l_cSrcPath = "";
- std::string l_cDestPath = "";
-
- if (eFrameworkunifiedUserData == (eFrameworkunifiedUserData & f_uinotificationpersistentservicepersistcategoryflag)) {
- l_cSrcPath.assign(l_cBasePath);
- l_cSrcPath.append(USERDATA);
-
- if (CFSDirectory::DoesDirecotryExist(l_cSrcPath)) {
- l_cDestPath.assign(l_cSrcPath);
- l_cDestPath.append(l_cDateTime);
-
- // instead of deleting the data, rename the persistence folder before shutdown
- if (0 != rename(l_cSrcPath.c_str(), l_cDestPath.c_str())) { // LCOV_EXCL_BR_LINE 6: rename must return ok
- // LCOV_EXCL_START 6: rename must return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error renaming folder %s to %s, errno = %d",
- l_cSrcPath.c_str(),
- l_cDestPath.c_str(),
- errno);
- // LCOV_EXCL_STOP
- }
- }
- }
- if (eFrameworkunifiedFactoryData == (eFrameworkunifiedFactoryData & f_uinotificationpersistentservicepersistcategoryflag)) {
- l_cSrcPath.assign(l_cBasePath);
- l_cSrcPath.append(FACTORYDATA);
-
- if (CFSDirectory::DoesDirecotryExist(l_cSrcPath)) {
- l_cDestPath.assign(l_cSrcPath);
- l_cDestPath.append(l_cDateTime);
-
- // instead of deleting the data, rename the persistence folder before shutdown
- if (0 != rename(l_cSrcPath.c_str(), l_cDestPath.c_str())) { // LCOV_EXCL_BR_LINE 6: rename must return ok
- // LCOV_EXCL_START 6: rename must return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error renaming folder %s to %s, errno = %d",
- l_cSrcPath.c_str(),
- l_cDestPath.c_str(),
- errno);
- // LCOV_EXCL_STOP
- }
- }
- }
- if (eFrameworkunifiedFactoryCustomerData == (eFrameworkunifiedFactoryCustomerData & f_uinotificationpersistentservicepersistcategoryflag)) {
- l_cSrcPath.assign(l_cBasePath);
- l_cSrcPath.append(FACTORYCUSTOMERDATA);
-
- if (CFSDirectory::DoesDirecotryExist(l_cSrcPath)) {
- l_cDestPath.assign(l_cSrcPath);
- l_cDestPath.append(l_cDateTime);
-
- // instead of deleting the data, rename the persistence folder before shutdown
- if (0 != rename(l_cSrcPath.c_str(), l_cDestPath.c_str())) { // LCOV_EXCL_BR_LINE 6: rename must return ok
- // LCOV_EXCL_START 6: rename must return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error renaming folder %s to %s, errno = %d",
- l_cSrcPath.c_str(),
- l_cDestPath.c_str(),
- errno);
- // LCOV_EXCL_STOP
- }
- }
- }
- if (eFrameworkunifiedDealerData == (eFrameworkunifiedDealerData & f_uinotificationpersistentservicepersistcategoryflag)) {
- l_cSrcPath.assign(l_cBasePath);
- l_cSrcPath.append(DEALERDATA);
-
- if (CFSDirectory::DoesDirecotryExist(l_cSrcPath)) {
- l_cDestPath.assign(l_cSrcPath);
- l_cDestPath.append(l_cDateTime);
-
- // instead of deleting the data, rename the persistence folder before shutdown
- if (0 != rename(l_cSrcPath.c_str(), l_cDestPath.c_str())) { // LCOV_EXCL_BR_LINE 6: rename must return ok
- // LCOV_EXCL_START 6: rename must return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error renaming folder %s to %s, errno = %d",
- l_cSrcPath.c_str(),
- l_cDestPath.c_str(),
- errno);
- // LCOV_EXCL_STOP
- }
- }
- }
-
- if (NULL != l_cDateTime) { // LCOV_EXCL_BR_LINE 6: l_cDateTime can't be NULL
- delete[] l_cDateTime;
- l_cDateTime = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceSaveNotificationPersistentData
-/// In this function, all the data related to persistent notification is retrieved from
-/// notification manager and stored in persistent file by persistent manager.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::NotificationpersistentserviceSaveNotificationPersistentData(EFrameworkunifiedNotificationType f_epersistenttype,
- UI_32 f_uinotificationpersistentservicepersistcategoryflag) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- // pointer of Notification Manager
- CNotificationManager *l_pNotificationManager = NULL;
-
- // pointer of Persistence Manager
- CPersistenceManager *l_pCNotificationpersistentservicePersistenceManager = NULL;
-
- Persistent_Notification_List_Type *l_vPersistentNotificationList = NULL;
-
- // get the instance of notification manager
- l_pNotificationManager = m_pNotificationManager;
-
- // get the instance of persistence manager
- l_pCNotificationpersistentservicePersistenceManager = m_pPersistenceManager;
-
- if (NULL != l_pNotificationManager && NULL != l_pCNotificationpersistentservicePersistenceManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager and l_pCNotificationpersistentservicePersistenceManager can't be NULL // NOLINT[whitespace/line_length]
- // create new vector to retrieve persistent notification data
- l_vPersistentNotificationList = new(std::nothrow) Persistent_Notification_List_Type();
-
- if (NULL != l_vPersistentNotificationList) { // LCOV_EXCL_BR_LINE 5: l_vPersistentNotificationList can't be NULL
- // get all the persistent notification data in vector from notification manager
- l_pNotificationManager->NotificationpersistentserviceGetPersistentNotificationData(l_vPersistentNotificationList,
- f_epersistenttype,
- f_uinotificationpersistentservicepersistcategoryflag);
- } else {
- // LCOV_EXCL_START 5: l_vPersistentNotificationList can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_vPersistentNotificationList is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- if (NULL != l_vPersistentNotificationList) { // LCOV_EXCL_BR_LINE 5: l_vPersistentNotificationList can't be NULL
- if (eFrameworkunifiedPersistedStateVar == f_epersistenttype) {
- // save persistent notification data from vector to file
- l_estatus = l_pCNotificationpersistentservicePersistenceManager->NotificationpersistentserviceSaveNotificationData(l_vPersistentNotificationList);
- } else if (eFrameworkunifiedPersistedStateUserVar == f_epersistenttype) { // LCOV_EXCL_BR_LINE 200: f_epersistenttype must be eFrameworkunifiedPersistedStateVar or eFrameworkunifiedPersistedStateUserVar // NOLINT[whitespace/line_length]
- l_estatus = l_pCNotificationpersistentservicePersistenceManager->NotificationpersistentserviceSaveUserNotificationData(l_vPersistentNotificationList);
- } else {
- // LCOV_EXCL_START 200: f_epersistenttype must be eFrameworkunifiedPersistedStateVar or eFrameworkunifiedPersistedStateUserVar
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Save data for %d PersistentVarType not supported", f_epersistenttype);
- // LCOV_EXCL_STOP
- }
-
-
- // delete the locally created vector
- if (!l_vPersistentNotificationList->empty()) {
- for (UI_32 l_uiCount = 0;
- l_uiCount < l_vPersistentNotificationList->size();
- l_uiCount++) {
- if (NULL != l_vPersistentNotificationList->at(l_uiCount)) { // LCOV_EXCL_BR_LINE 6: can't be NULL
- delete l_vPersistentNotificationList->at(l_uiCount);
- }
- }
-
- // clear the vector
- l_vPersistentNotificationList->clear();
- }
-
- delete l_vPersistentNotificationList;
- l_vPersistentNotificationList = NULL;
- } else {
- // LCOV_EXCL_START 5: l_vPersistentNotificationList can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_vPersistentNotificationList is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager and l_pCNotificationpersistentservicePersistenceManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pNotificationManager is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceOnLoadPersistentData
-/// In this transition, persistent file is loaded by persistent manager and
-/// persistent notifications and its data is stored by notification manager.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::NotificationpersistentserviceLoadPersistentNotificationData(EFrameworkunifiedNotificationType f_epersistenttype) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- // pointer of Notification Manager
- CNotificationManager *l_pNotificationManager = NULL;
-
- // pointer of Persistence Manager
- CPersistenceManager *l_pNotificationpersistentservicePersistenceManager = NULL;
-
- // iterator of CNotificationToPersist vector
- Persistent_Notification_List_Type *l_vPersistentNotificationList = NULL;
-
- // get the instance of notification manager
- l_pNotificationManager = m_pNotificationManager;
-
- // get the instance of persistent manager
- l_pNotificationpersistentservicePersistenceManager = m_pPersistenceManager;
-
- // create new vector for persistent notifications
- l_vPersistentNotificationList = new(std::nothrow) Persistent_Notification_List_Type();
-
- if (NULL != l_vPersistentNotificationList) { // LCOV_EXCL_BR_LINE 5: l_vPersistentNotificationList can't be NULL
- if (NULL != l_pNotificationManager && NULL != l_pNotificationpersistentservicePersistenceManager) { // LCOV_EXCL_BR_LINE 6: l_pNotificationManager and l_pNotificationpersistentservicePersistenceManager can't be NULL // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedPersistedStateVar == f_epersistenttype) {
- // read persistent notification data from file and store in vector
- l_estatus = l_pNotificationpersistentservicePersistenceManager->NotificationpersistentserviceReadNotificationData(l_vPersistentNotificationList);
- } else if (eFrameworkunifiedPersistedStateUserVar == f_epersistenttype) {
- l_estatus = l_pNotificationpersistentservicePersistenceManager->NotificationpersistentserviceReadUserNotificationData(l_vPersistentNotificationList);
- } else if (eFrameworkunifiedImmediatePersistedStateVar == f_epersistenttype) { // LCOV_EXCL_BR_LINE 200: f_epersistenttype must be eFrameworkunifiedPersistedStateVar or eFrameworkunifiedPersistedStateUserVar or eFrameworkunifiedImmediatePersistedStateVar // NOLINT[whitespace/line_length]
- l_estatus = l_pNotificationpersistentservicePersistenceManager->NotificationpersistentserviceReadNorNotificationData(l_vPersistentNotificationList);
- } else {
- // LCOV_EXCL_START 200: f_epersistenttype must be eFrameworkunifiedPersistedStateVar or eFrameworkunifiedPersistedStateUserVar or eFrameworkunifiedImmediatePersistedStateVar // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Read data for %d PersistentVarType not supported", f_epersistenttype);
- // LCOV_EXCL_STOP
- }
-
- if (0 < l_vPersistentNotificationList->size()) {
- // send the notification list to notification manager
- l_estatus = l_pNotificationManager->NotificationpersistentserviceSetPersistentNotificationData(l_vPersistentNotificationList);
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationManager and l_pNotificationpersistentservicePersistenceManager can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pNotificationManager or l_pNotificationpersistentservicePersistenceManager is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- if (!l_vPersistentNotificationList->empty()) {
- for (UI_32 l_uiCount = 0;
- l_uiCount < l_vPersistentNotificationList->size();
- l_uiCount++) {
- if (NULL != l_vPersistentNotificationList->at(l_uiCount)) { // LCOV_EXCL_BR_LINE 6: can't be NULL
- delete l_vPersistentNotificationList->at(l_uiCount);
- }
- }
-
- // clear the vector
- l_vPersistentNotificationList->clear();
- }
-
- delete l_vPersistentNotificationList;
- l_vPersistentNotificationList = NULL;
- } else {
- // LCOV_EXCL_START 5: l_vPersistentNotificationList can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Memory allocation error for l_vPersistentNotificationList");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CreateAndStartChildThreads
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNSNPP::CreateAndStartChildThreads(HANDLE f_happ) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (NULL == f_happ) { // LCOV_EXCL_BR_LINE 6: f_happ can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 6: f_happ can't be NULL
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 6: l_estatus is eFrameworkunifiedStatusOK
- // create reader thread
- if (NULL != (m_hNSReadThread = FrameworkunifiedCreateChildThreadWithPriority(f_happ, m_cReadThreadName.c_str(), NSPCopyWorkerOnStart, NSPCopyWorkerOnStop, CNSNPP::m_siReadThreadPrio))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Thread %s created, Prio=%d",
- m_cReadThreadName.c_str(),
- CNSNPP::m_siReadThreadPrio);
-
- // start the reader thread
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedStartChildThread(f_happ, m_hNSReadThread, 0, NULL))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- m_pPersistenceManager->SetReadThreadHandle(m_hNSReadThread);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Fail to Start Read Worker thread. Status:0x%x", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error creating NPP Read Worker thread");
- // LCOV_EXCL_STOP
- }
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 6: l_estatus is eFrameworkunifiedStatusOK
- // create writer thread
- if (NULL != (m_hNSWriteThread = FrameworkunifiedCreateChildThreadWithPriority(f_happ, m_cWriteThreadName.c_str(), NSPCopyWorkerOnStart, NSPCopyWorkerOnStop, CNSNPP::m_siWriteThreadPrio))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Thread %s created, Prio=%d",
- m_cWriteThreadName.c_str(),
- CNSNPP::m_siWriteThreadPrio);
-
- // start the writer thread
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedStartChildThread(f_happ, m_hNSWriteThread, 0, NULL))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- m_pPersistenceManager->SetWriteThreadHandle(m_hNSWriteThread);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Fail to Start Write Worker thread. Status:0x%x", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error creating NPP Write Worker thread");
- // LCOV_EXCL_STOP
- }
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 6: l_estatus is eFrameworkunifiedStatusOK
- // create immediate Persistence thread
- if (NULL != (m_hNSImmediatePersistenceThread = FrameworkunifiedCreateChildThreadWithPriority(f_happ, m_cImmediatePersistenceThreadName.c_str(), NSPNorPersistenceWorkerOnStart, NSPNorPersistenceWorkerOnStop, CNSNPP::m_siImmediatePersistenceThreadPrio))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Thread %s created, Prio=%d", m_cImmediatePersistenceThreadName.c_str(),
- CNSNPP::m_siImmediatePersistenceThreadPrio);
-
- // start the immediate Persistence thread
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedStartChildThread(f_happ, m_hNSImmediatePersistenceThread, 0, NULL))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- m_pPersistenceManager->SetNorPersistenceThreadHandle(m_hNSImmediatePersistenceThread);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Fail to Start immediate persistence thread. Status:0x%x", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error creating NPP immediate persistence Worker thread");
- // LCOV_EXCL_STOP
- }
- }
-
- return l_estatus;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_archive.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_archive.cpp
deleted file mode 100755
index b54faeb..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_archive.cpp
+++ /dev/null
@@ -1,846 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains the implementation for archiving and extracting files and folders.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#ifdef AGL_STUB
-#include <other_service/strlcpy.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <zlib.h>
-#include <dirent.h>
-#include <zconf.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <libtar_listhash.h>
-#include <string>
-#include <utility>
-#include <vector>
-
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_fs_directory.h"
-#include "ns_npp_copy_worker.h"
-
-
-tartype_t g_gztype = { (openfunc_t) OpenArchive, (closefunc_t) CloseArchive,
- (readfunc_t) ReadArchive, (writefunc_t) WriteArchive
- };
-
-GZFiles g_gzfiles;
-
-// CHUNK Size 256 Kb
-// Buffer size for feeding data to and pulling data from the zlib routines
-const size_t kChunkSize = 1U << 18;
-// buff size 32KB
-const size_t kBufSize = 1U << 15;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CArchive
-/// Constructor of CArchive class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CCopyWorker::CArchive::CArchive() {
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CArchive
-/// Destructor of CArchive class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CCopyWorker::CArchive::~CArchive() {
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// FolderOperation
-/// Method to perform archive or extract operations
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CArchive::Archive(NSP_CopyInfoCmd &f_tarchiveinfocmd,
- NSP_CopyStatusResponse &f_tarchivestatusresponse) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- std::string l_pSourcePath = f_tarchiveinfocmd.m_csourcepath;
- std::string l_pDestPath = f_tarchiveinfocmd.m_cdestinationpath;
-
- if (!l_pSourcePath.empty() || !l_pDestPath.empty()) { // LCOV_EXCL_BR_LINE 6: double check, l_pSourcePath and l_pDestPath can't be empty // NOLINT[whitespace/line_length]
- size_t l_ifound = l_pDestPath.rfind("/");
- // get string from start to last occurrence of '/'. Which will return directory path
- std::string l_cOutDirPath = l_pDestPath.substr(0, l_ifound);
- // check for load file or release file
- if (LOADTYPE_RELEASE == f_tarchiveinfocmd.m_eloadtype) {
- if (CFSDirectory::DoesDirecotryExist(l_pSourcePath)) {
- // check if destination directory exist
- if (!CFSDirectory::DoesDirecotryExist(l_cOutDirPath)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "%s DOESN'T exist, Creating...",
- l_cOutDirPath.c_str());
- l_estatus = CFSDirectory::CreateDirectory(l_cOutDirPath);
- }
- // Create archive
- if (eFrameworkunifiedStatusOK == (l_estatus = CreateTar(l_pSourcePath, l_pDestPath, // LCOV_EXCL_BR_LINE 6: CreateTar always return eFrameworkunifiedStatusOK // NOLINT[whitespace/line_length]
- f_tarchivestatusresponse))) {
- // sync tar file to persistent memory
- SI_32 l_iTarHandle = LIBTARFAIL;
- if (LIBTARFAIL != (l_iTarHandle = open(l_pDestPath.c_str() , O_RDONLY))) {
- struct stat l_objStat;
- if (-1 != fstat(l_iTarHandle , &l_objStat)) { // LCOV_EXCL_BR_LINE 6: fstat always return ok
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO3, __FUNCTION__, "Bytes written in NAND memory, %ld, file=%s", l_objStat.st_size,
- l_pDestPath.c_str());
- }
-
- close(l_iTarHandle);
- } else {
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- // LCOV_EXCL_START 6: CreateTar always return eFrameworkunifiedStatusOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Create tar Failed.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "CP_WRK_FAILURE_SRC_NOT_FND for %s ",
- l_pSourcePath.c_str());
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- // check if destination directory exist
- if (!CFSDirectory::DoesDirecotryExist(l_pDestPath)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "%s DOESN'T exist, Creating...",
- l_pDestPath.c_str());
- l_estatus = CFSDirectory::CreateDirectory(l_pDestPath);
- }
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 6: l_estatus will be always eFrameworkunifiedStatusOK
- // Extract archive
- l_estatus = ExtractTar(l_pSourcePath, l_pDestPath, f_tarchivestatusresponse);
- }
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_pSourcePath and l_pDestPath can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source path or Dest Path empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// CreateTar
-/// Method to create tar
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CArchive::CreateTar(const std::string &f_csourepath,
- const std::string &f_cdestpath,
- NSP_CopyStatusResponse &f_tarchivestatusresponse) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- std::string l_cDestPath = f_cdestpath;
- std::string l_pcRootDirPath = f_csourepath;
-
- libtar_list_t *l_pLibTarList = NULL;
- l_pLibTarList = libtar_list_new(LIST_QUEUE, NULL);
- libtar_list_add(l_pLibTarList, (void *)l_pcRootDirPath.c_str()); // NOLINT (readability/casting)
-
- if (!l_cDestPath.empty() || !l_pcRootDirPath.empty()) { // LCOV_EXCL_BR_LINE 6: double check, l_cDestPath and l_pcRootDirPath cannot be empty // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK != Create(l_cDestPath, l_pcRootDirPath, l_pLibTarList)) { // LCOV_EXCL_BR_LINE 6: Create always return eFrameworkunifiedStatusOK // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: Create always return eFrameworkunifiedStatusOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // not copied properly so remove temporary file
- if (TRUE == CFSDirectory::RemoveDirectory(l_cDestPath)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Delete persistent directory successful.");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Delete persistent directory unsuccessful.");
- }
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Archiving fails for %s to %s", l_pcRootDirPath.c_str(),
- l_cDestPath.c_str());
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "Folder archived %s ", l_cDestPath.c_str());
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Source Path %s", l_pcRootDirPath.c_str());
-
- if (TRUE == CFSDirectory::RemoveDirectory(l_pcRootDirPath)) { // LCOV_EXCL_BR_LINE 6: always return true
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Delete temporary directory successful.");
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Delete temporary directory unsuccessful."); // LCOV_EXCL_LINE 6: always return true // NOLINT[whitespace/line_length]
- }
- l_estatus = eFrameworkunifiedStatusOK;
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_cDestPath and l_pcRootDirPath cannot be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source path or Dest Path empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- libtar_list_free(l_pLibTarList, NULL);
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// ExtractTar
-/// Method to extract tar
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CArchive::ExtractTar(const std::string &f_csourepath,
- const std::string &f_cdestpath,
- NSP_CopyStatusResponse &f_tarchivestatusresponse) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- std::string l_pcTarFileDestPath = f_cdestpath;
- std::string l_pcRootDirPath = f_csourepath;
-
- if (!l_pcTarFileDestPath.empty() || !l_pcRootDirPath.empty()) { // LCOV_EXCL_BR_LINE 6: double check, l_pcTarFileDestPath and l_pcRootDirPath can't be empty // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK != Extract(l_pcRootDirPath, l_pcTarFileDestPath)) {
- // not copied properly so remove temporary file
- if (TRUE == CFSDirectory::RemoveDirectory(l_pcTarFileDestPath)) { // LCOV_EXCL_BR_LINE 6: RemoveDirectory always return true // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Delete retrieved directory successful.");
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Delete retrieved directory unsuccessful."); // LCOV_EXCL_LINE 6: RemoveDirectory always return true // NOLINT[whitespace/line_length]
- }
-
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "ABORT WAS CALLED!");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Extraction fails for %s to %s",
- l_pcTarFileDestPath.c_str(), l_pcTarFileDestPath.c_str());
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "Folder extracted %s ", l_pcTarFileDestPath.c_str());
- l_estatus = eFrameworkunifiedStatusOK;
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_pcTarFileDestPath and l_pcRootDirPath can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source path or Dest Path empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// Create
-/// Method to create tar
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CArchive::Create(std::string &f_pctarfiledestpath,
- std::string &f_pcrootdirpath,
- libtar_list_t *f_plibtarlist) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (FILEERROR == access(f_pcrootdirpath.c_str(), R_OK)) { // LCOV_EXCL_BR_LINE 6: access always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 6: access always return ok
- }
-
- TAR *l_pTarInfo = NULL;
- CHAR l_cBuffer[MAX_PATH_LENGTH];
- libtar_listptr_t l_pTarListPtr;
-
- PCHAR l_pcTarFileDestPath = const_cast<PCHAR >(f_pctarfiledestpath.c_str());
- PCHAR l_pcRootDirPath = const_cast<PCHAR >(f_pcrootdirpath.c_str());
-
- CHAR l_temp[] = "/";
-
- if (l_pcTarFileDestPath || l_pcRootDirPath) { // LCOV_EXCL_BR_LINE 6: double check, l_pcTarFileDestPath and l_pcRootDirPath can't be NULL // NOLINT[whitespace/line_length]
- // open tar archive
- if (LIBTARFAIL == (tar_open(&l_pTarInfo, l_pcTarFileDestPath, &g_gztype, O_WRONLY | O_CREAT, // LCOV_EXCL_BR_LINE 6: tar_open always return ok // NOLINT[whitespace/line_length]
- TARMODE, TAR_GNU))) {
- // LCOV_EXCL_START 6: tar_open always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "tar_open(): %s", std::strerror(errno));
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- libtar_listptr_reset(&l_pTarListPtr);
-
- while (libtar_list_next(f_plibtarlist, &l_pTarListPtr) != LIBTARSUCCESS) {
- if (l_pcRootDirPath[0] != '/') { // LCOV_EXCL_BR_LINE 6: l_pcRootDirPath must begin with '/'
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "%s", l_pcRootDirPath); // LCOV_EXCL_LINE 6: l_pcRootDirPath must begin with '/' // NOLINT[whitespace/line_length]
- } else {
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- strlcpy(l_cBuffer, l_pcRootDirPath, sizeof(l_cBuffer));
-#endif
- }
-
- if (tar_append_tree(l_pTarInfo, l_cBuffer, l_temp) != LIBTARSUCCESS) { // LCOV_EXCL_BR_LINE 6: tar_append_tree always return ok // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: tar_append_tree always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__,
- "tar_append_tree(\"%s\", \"%s\"): %s", l_cBuffer,
- l_temp, std::strerror(errno));
- tar_close(l_pTarInfo);
- return eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- }
- if (tar_append_eof(l_pTarInfo) != LIBTARSUCCESS) { // LCOV_EXCL_BR_LINE 6: tar_append_eof always return ok
- // LCOV_EXCL_START 6: tar_append_eof always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "tar_append_eof(): %s", std::strerror(errno));
- tar_close(l_pTarInfo);
- return eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- if (tar_close(l_pTarInfo) != LIBTARSUCCESS) { // LCOV_EXCL_BR_LINE 6: tar_close always return ok
- // LCOV_EXCL_START 6: tar_close always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "tar_close(): %s", std::strerror(errno));
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_pcTarFileDestPath and l_pcRootDirPath can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source path or Dest Path empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// create
-/// Method to extract tar
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CArchive::Extract(std::string &f_pcrootdirpath, std::string &f_pctarfiledestpath) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (FILEERROR == access(f_pcrootdirpath.c_str(), R_OK)) { // LCOV_EXCL_BR_LINE 6: access always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 6: access always return ok
- }
-
- PCHAR l_pcRootDirPath = const_cast<PCHAR >(f_pcrootdirpath.c_str());
- PCHAR l_pcTarFileDestPath = const_cast<PCHAR >(f_pctarfiledestpath.c_str());
-
- TAR *l_pTarInfo = NULL;
-
- if (l_pcRootDirPath || l_pcTarFileDestPath) { // LCOV_EXCL_BR_LINE 6: double check, l_pcRootDirPath and l_pcTarFileDestPath can't be NULL // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Extraction open for %s to ", l_pcRootDirPath);
-
- if (LIBTARFAIL == (tar_open(&l_pTarInfo, l_pcRootDirPath, &g_gztype, O_RDONLY, LIBTARSUCCESS, TAR_GNU))) { // LCOV_EXCL_BR_LINE 6: tar_open always return ok // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: tar_open always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "tar_open(): %s", std::strerror(errno));
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- if (LIBTARSUCCESS != tar_extract_all(l_pTarInfo, l_pcTarFileDestPath)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "tar_extract_all(): %s", std::strerror(errno));
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- if (LIBTARSUCCESS != tar_close(l_pTarInfo)) { // LCOV_EXCL_BR_LINE 6: tar_close always return ok
- // LCOV_EXCL_START 6: tar_close always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "tar_close(): %s", std::strerror(errno));
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_pcRootDirPath and l_pcTarFileDestPath can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source path or Dest Path empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-SI_32 OpenArchive(PCHAR f_pcpathname, SI_32 f_sioflags, SI_32 f_simode) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- gzFile l_gzfile = Z_NULL;
- SI_32 l_sifiledescriptor = LIBTARFAIL;
- if (f_pcpathname) { // LCOV_EXCL_BR_LINE 6: double check, f_pcpathname can't be NULL
- PCHAR l_pcgzoflags;
-
- switch (f_sioflags & O_ACCMODE) {
- case O_WRONLY: {
- l_pcgzoflags = (PCHAR)"wb";
- break;
- }
- case O_RDONLY: {
- l_pcgzoflags = (PCHAR)"rb";
- break;
- }
- case O_RDWR:
- default: {
- // LCOV_EXCL_START 6: must be O_WRONLY or O_RDONLY
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- errno = EINVAL;
- return LIBTARFAIL;
- // LCOV_EXCL_STOP
- }
- }
-
- l_sifiledescriptor = open(f_pcpathname, f_sioflags, f_simode);
-
- if (LIBTARFAIL == l_sifiledescriptor) { // LCOV_EXCL_BR_LINE 6: l_sifiledescriptor always be ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return LIBTARFAIL; // LCOV_EXCL_LINE 6: l_sifiledescriptor always be ok
- }
-
- if (((f_sioflags & O_CREAT) && fchmod(l_sifiledescriptor, f_simode))) { // LCOV_EXCL_BR_LINE 6: always be ok
- // LCOV_EXCL_START 6: always be ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- close(l_sifiledescriptor);
- return LIBTARFAIL;
- // LCOV_EXCL_STOP
- }
-
- l_gzfile = gzdopen(l_sifiledescriptor, l_pcgzoflags);
- if (!l_gzfile) { // LCOV_EXCL_BR_LINE 6: l_gzfile always be not null
- // LCOV_EXCL_START 6: l_gzfile always be not null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- close(l_sifiledescriptor);
-
- errno = ENOMEM;
- return LIBTARFAIL;
- // LCOV_EXCL_STOP
- } else {
- g_gzfiles.insert(std::make_pair(l_sifiledescriptor, l_gzfile));
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source Path empty."); // LCOV_EXCL_LINE 6: double check, f_pcpathname can't be NULL // NOLINT[whitespace/line_length]
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_sifiledescriptor;
-}
-
-int CloseArchive(int fd) {
- int ret;
- gzFile gzfile = Z_NULL;
-
- /* checks */
- if (g_gzfiles.empty()) { // LCOV_EXCL_BR_LINE 6: g_gzfiles always be not empty
- // LCOV_EXCL_START 6: g_gzfiles always be not empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- errno = EBADF;
- return -1;
- // LCOV_EXCL_STOP
- }
-
- GZFiles::iterator gzfiles_it = g_gzfiles.find(fd);
- if (gzfiles_it == g_gzfiles.end()) { // LCOV_EXCL_BR_LINE 6: fd will always be found
- // LCOV_EXCL_START 6: fd will always be found
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- errno = EINVAL;
- return -1;
- // LCOV_EXCL_STOP
- }
-
- /* call zlib */
- gzfile = gzfiles_it->second;
- ret = gzclose(gzfile);
-
- /* remove gzFile* association from our list */
- g_gzfiles.erase(gzfiles_it);
-
- return ret;
-}
-
-ssize_t ReadArchive(int fd, void *buf, size_t count) {
- gzFile gzfile = Z_NULL;
-
- if (g_gzfiles.empty()) { // LCOV_EXCL_BR_LINE 6: g_gzfiles always be not empty
- // LCOV_EXCL_START 6: g_gzfiles always be not empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- errno = EBADF;
- return -1;
- // LCOV_EXCL_STOP
- }
-
- GZFiles::iterator gzfiles_it = g_gzfiles.find(fd);
- if (gzfiles_it == g_gzfiles.end()) { // LCOV_EXCL_BR_LINE 6: fd will always be found
- // LCOV_EXCL_START 6: fd will always be found
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- errno = EINVAL;
- return -1;
- // LCOV_EXCL_STOP
- }
-
- gzfile = gzfiles_it->second;
- return gzread(gzfile, buf, static_cast<UI_32>(count));
-}
-
-ssize_t WriteArchive(int fd, const void *buf, size_t count) {
- gzFile gzfile = Z_NULL;
-
- if (g_gzfiles.empty()) { // LCOV_EXCL_BR_LINE 6: g_gzfiles always be not empty
- // LCOV_EXCL_START 6: g_gzfiles always be not empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- errno = EBADF;
- return -1;
- // LCOV_EXCL_STOP
- }
-
- GZFiles::iterator gzfiles_it = g_gzfiles.find(fd);
- if (gzfiles_it == g_gzfiles.end()) { // LCOV_EXCL_BR_LINE 6: fd will always be found
- // LCOV_EXCL_START 6: fd will always be found
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- errno = EINVAL;
- return -1;
- // LCOV_EXCL_STOP
- }
-
- gzfile = gzfiles_it->second;
- return gzwrite(gzfile, buf, static_cast<UI_32>(count));
-}
-
-// LCOV_EXCL_START 6: unused code
-////////////////////////////////////////////////////////////////////////////////////////////
-/// FileOperationUsingLibz
-/// Method to determine whether to compress/decompress file using libz
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CArchive::FileOperationUsingLibz(NSP_CopyInfoCmd &f_toperainfocmd,
- NSP_CopyStatusResponse &f_toperarespstatus) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- std::string l_pSourcePath = f_toperainfocmd.m_csourcepath;
- std::string l_pDestPath = f_toperainfocmd.m_cdestinationpath;
-
- if (!l_pSourcePath.empty() || !l_pDestPath.empty()) {
- size_t l_ifound = l_pDestPath.rfind("/");
- // get string from start to last occurrence of '/'. Which will return directory path
- std::string l_cOutDirPath = l_pDestPath.substr(0, l_ifound);
-
- // check if destination directory exist
- if (!CFSDirectory::DoesDirecotryExist(l_cOutDirPath)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "%s DOESN'T exist, Creating...",
- l_cOutDirPath.c_str());
- l_estatus = CFSDirectory::CreateDirectory(l_cOutDirPath);
- }
-
- // check for load file or release file
- if (LOADTYPE_RELEASE == f_toperainfocmd.m_eloadtype) {
- // Zip
- if (eFrameworkunifiedStatusOK == (l_estatus = CompressUsingZlib(l_pSourcePath, l_pDestPath, Z_BEST_COMPRESSION))) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "File Compression successful.");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "File Compression failed.");
- f_toperarespstatus.m_bpersistencechk = FALSE;
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else if (LOADTYPE_LOAD == f_toperainfocmd.m_eloadtype) {
- // Unzip
- if (eFrameworkunifiedStatusOK == (l_estatus = DeCompressUsingZlib(l_pSourcePath, l_pDestPath))) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "File DeCompression successful.");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "File DeCompression failed.");
- f_toperarespstatus.m_bpersistencechk = FALSE;
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "Wrong Request or No request for compression or decompression!");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source Path or Destination Path Empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-// LCOV_EXCL_START 6: unused code
-////////////////////////////////////////////////////////////////////////////////////////////
-/// CompressUsingZlib
-/// Method to compress file using libz
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CArchive::CompressUsingZlib(const std::string &f_csourepath,
- const std::string &f_cdestpath,
- SI_32 f_iziplevel) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (!f_csourepath.empty() || !f_cdestpath.empty()) {
- std::string l_cSourePath = f_csourepath;
- std::string l_cDestPath = f_cdestpath;
-
- std::string l_TempFile = "";
- l_TempFile.append(l_cDestPath.c_str());
- l_TempFile.append(".nps_tmp");
-
- FILE *l_pSrcFilePtr = fopen(l_cSourePath.c_str(), "rb");
-
- if (NULL != l_pSrcFilePtr) {
- FILE *l_pDestFilePtr = fopen(l_TempFile.c_str(), "wb");
- if (NULL != l_pDestFilePtr) {
- setvbuf(l_pSrcFilePtr, NULL, _IOFBF, kBufSize);
- setvbuf(l_pDestFilePtr, NULL, _IOFBF, kBufSize);
-
- // structure used to pass information to and from the zlib routines
- z_stream l_tZstreamInfo = {};
-
- // Allocate deflate state
- l_tZstreamInfo.zalloc = Z_NULL;
- l_tZstreamInfo.zfree = Z_NULL;
- l_tZstreamInfo.opaque = Z_NULL;
-
- // Initialize deflates
- SI_32 l_iDeflateStatus = deflateInit(&l_tZstreamInfo, f_iziplevel);
-
- // Deflate Flush Status to determine end of input file
- SI_32 l_iDeflateFlushState = Z_FINISH;
-
- std::vector< UI_8 > l_vInBuffer(kChunkSize);
- std::vector< UI_8 > l_vOutBuffer(kChunkSize);
-
- // pointer to the read bytes from the input file
- UI_8 *l_pReadBuffer = &l_vInBuffer[0];
- // pointer to the next available byte space to write to output file
- UI_8 *l_pWriteBuffer = &l_vOutBuffer[0];
-
- size_t l_uiDeflateRetData = 0;
-
- if (Z_OK == l_iDeflateStatus) {
- do {
- // bytes read from input file
- l_tZstreamInfo.avail_in = static_cast<uInt>(fread(l_pReadBuffer, 1, kChunkSize, l_pSrcFilePtr));
-
- if (0 == ferror(l_pSrcFilePtr)) {
- // if the eof input file reached set the flush state to Z_FINISH
- // Z_NO_FLUSH to indicate that we still have uncompressed data
- l_iDeflateFlushState = feof(l_pSrcFilePtr) ? Z_FINISH : Z_NO_FLUSH;
- l_tZstreamInfo.next_in = l_pReadBuffer;
-
- // run deflate() on input until output buffer not full, finish
- // compression if all of source has been read in
- do {
- l_tZstreamInfo.avail_out = kChunkSize;
- l_tZstreamInfo.next_out = l_pWriteBuffer;
- // no bad return value
- l_iDeflateStatus = deflate(&l_tZstreamInfo, l_iDeflateFlushState);
- // state not clobbered
- if (Z_STREAM_ERROR == l_iDeflateStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "zlib stream error");
- } else {
- l_uiDeflateRetData = kChunkSize - l_tZstreamInfo.avail_out;
- if ((fwrite(l_pWriteBuffer, 1, l_uiDeflateRetData, l_pDestFilePtr) != l_uiDeflateRetData) ||
- // all data not written properly
- (0 != ferror(l_pDestFilePtr))) { // file error in writing
- deflateEnd(&l_tZstreamInfo);
- l_estatus = eFrameworkunifiedStatusFail;
- l_tZstreamInfo.avail_out = 0;
- l_iDeflateFlushState = Z_FINISH;
- }
- }
- } while (0 == l_tZstreamInfo.avail_out); //<< check if deflate() has no more output
- } else { // by seeing that it did not fill the output buffer
- deflateEnd(&l_tZstreamInfo); // leaving avail_out greater than zero >>//
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- // all input will be used
- if (0 != l_tZstreamInfo.avail_in) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "All inputs in z-stream avail_in not used");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- // done when last data in file processed
- } while (Z_FINISH != l_iDeflateFlushState);
- // stream will be complete
- if (Z_STREAM_END != l_iDeflateStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "z-stream not completed");
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Compressed %lu bytes down to %lu bytes",
- l_tZstreamInfo.total_in, l_tZstreamInfo.total_out);
-
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO3, __FUNCTION__, "Bytes written in NAND memory, %lu, file=%s", l_tZstreamInfo.total_out,
- f_cdestpath.c_str());
-
- // clean up and return
- deflateEnd(&l_tZstreamInfo);
- } else {
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__, "deflateInit Failed");
- }
-
- fclose(l_pDestFilePtr);
-
- if (0 != rename(l_TempFile.c_str(), l_cDestPath.c_str())) {
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__, "Error renaming file %s to %s",
- l_TempFile.c_str(), l_cDestPath.c_str());
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "Destination File Opening Error");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- fclose(l_pSrcFilePtr);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __PRETTY_FUNCTION__, "Source File Opening Error");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source Path or Destination Path Empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-// LCOV_EXCL_START 6: unused code
-////////////////////////////////////////////////////////////////////////////////////////////
-/// DeCompressUsingZlib
-/// Method to decompress file using libz
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CArchive::DeCompressUsingZlib(const std::string &f_csourepath,
- const std::string &f_cdestpath) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (!f_csourepath.empty() || !f_cdestpath.empty()) {
- std::string l_cSourePath = f_csourepath;
- std::string l_cDestPath = f_cdestpath;
-
- std::string l_TempFile = "";
- l_TempFile.append(l_cDestPath.c_str());
- l_TempFile.append(".nps_tmp");
-
- FILE *l_pSrcFilePtr = fopen(l_cSourePath.c_str(), "rb");
-
- if (NULL != l_pSrcFilePtr) {
- FILE *l_pDestFilePtr = fopen(l_TempFile.c_str(), "wb");
- if (NULL != l_pDestFilePtr) {
- setvbuf(l_pSrcFilePtr, NULL, _IOFBF, kBufSize);
- setvbuf(l_pDestFilePtr, NULL, _IOFBF, kBufSize);
-
- z_stream l_tZstreamInfo = {};
-
- // allocate inflate state
- l_tZstreamInfo.zalloc = Z_NULL;
- l_tZstreamInfo.zfree = Z_NULL;
- l_tZstreamInfo.opaque = Z_NULL;
- l_tZstreamInfo.avail_in = 0;
- l_tZstreamInfo.next_in = Z_NULL;
-
- SI_32 l_iInflateStatus = inflateInit(&l_tZstreamInfo);
-
- if (Z_OK == l_iInflateStatus) {
- std::vector< UI_8 > l_vInBuffer(kChunkSize);
- std::vector< UI_8 > l_vOutBuffer(kChunkSize);
-
- // pointer to the read bytes from the input file
- UI_8 *l_pReadBuffer = &l_vInBuffer[0];
- // pointer to the next available byte space to write to output file
- UI_8 *l_pWriteBuffer = &l_vOutBuffer[0];
-
- size_t l_uiDeflateRetData = 0;
-
- do {
- l_tZstreamInfo.avail_in = static_cast<uInt>(fread(l_pReadBuffer, 1, kChunkSize, l_pSrcFilePtr));
- if (0 == ferror(l_pSrcFilePtr)) {
- if (0 == l_tZstreamInfo.avail_in) {
- break;
- }
- l_tZstreamInfo.next_in = l_pReadBuffer;
- // run inflate() on input until output buffer not full
- do {
- l_tZstreamInfo.avail_out = kChunkSize;
- l_tZstreamInfo.next_out = l_pWriteBuffer;
- l_iInflateStatus = inflate(&l_tZstreamInfo, Z_NO_FLUSH);
-
- // state clobbered
- if (Z_STREAM_ERROR == l_iInflateStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "zlib stream error");
- l_estatus = eFrameworkunifiedStatusFail;
- } else if (Z_NEED_DICT == l_iInflateStatus) {
- l_iInflateStatus = Z_DATA_ERROR;
- l_estatus = eFrameworkunifiedStatusFail;
- } else if (Z_MEM_ERROR == l_iInflateStatus) {
- inflateEnd(&l_tZstreamInfo);
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Out of Memory");
- } else {
- l_uiDeflateRetData = kChunkSize - l_tZstreamInfo.avail_out;
- // all data not written
- if ((fwrite(l_pWriteBuffer, 1, l_uiDeflateRetData, l_pDestFilePtr) != l_uiDeflateRetData) ||
- (0 != ferror(l_pDestFilePtr))) { // or file writing error
- inflateEnd(&l_tZstreamInfo);
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
- } while (0 == l_tZstreamInfo.avail_out);
- } else {
- inflateEnd(&l_tZstreamInfo);
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- // done when inflate() says it's done
- } while (Z_STREAM_END != l_iInflateStatus);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " De-compressed %lu bytes to %lu bytes",
- l_tZstreamInfo.total_in, l_tZstreamInfo.total_out);
- // clean up and return
- inflateEnd(&l_tZstreamInfo);
- } else {
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- fclose(l_pDestFilePtr);
-
- if (0 != rename(l_TempFile.c_str(), l_cDestPath.c_str())) {
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__, "Error renaming file %s to %s",
- l_TempFile.c_str(), l_cDestPath.c_str());
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__, "Destination File Opening Error");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- fclose(l_pSrcFilePtr);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__, "Source File Opening Error");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Source Path or Destination Path Empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_binary_accesser.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_binary_accesser.cpp
deleted file mode 100755
index e0a749f..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_binary_accesser.cpp
+++ /dev/null
@@ -1,649 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NPPService
-/// \brief The file contains definition of CBinaryAccesser class.
-/// This class stores data in a file in binary format.
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <fcntl.h>
-#ifdef AGL_STUB
-#include <other_service/strlcpy.h>
-#endif
-#include <cerrno>
-#include <string>
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_fs_directory.h"
-#include "ns_npp_binary_accesser.h"
-#include "ns_npp_persistent_data.h"
-#include "ns_npp_persistent_accesser.h"
-
-struct PersistFileHeder {
- char check_code[4];
- unsigned int crc;
-};
-#define NPP_CHECK_CODE "NPPD"
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// CBinaryAccesser
-/// Constructor of CBinaryAccesser class
-////////////////////////////////////////////////////////////////////////////////////////////////
-CBinaryAccesser::CBinaryAccesser() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_uiCurStrOffset = 0;
- m_uiCurStrSize = 0;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CBinaryAccesser
-/// Destructor of CBinaryAccesser class
-////////////////////////////////////////////////////////////////////////////////////////////////
-CBinaryAccesser::~CBinaryAccesser() { // LCOV_EXCL_START 14: Resident process, global instance not released
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// PersistData
-/// Persist data in persistent memory in a file in binary format.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CBinaryAccesser::PersistData(std::string f_cmemfilepath,
- Persistent_Notification_List_Type *f_vdata,
- EFrameworkunifiedNotificationType f_epersistenttype,
- EFrameworkunifiedPersistCategory f_epersistcategory) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- int l_OutFd;
-
- if (NULL != f_vdata) { // LCOV_EXCL_BR_LINE 6: f_vdata can't be NULL
- // Open global file in write mode.
- if ((eFrameworkunifiedStatusOK == OpenFileForWriting(&l_OutFd, f_cmemfilepath))) {
- Persistent_Notification_List_Iterator l_itNotificationList = f_vdata->begin();
-
- // Iterate through a vector f_vdata
- for (; l_itNotificationList != f_vdata->end(); l_itNotificationList++) {
- if (eFrameworkunifiedPersistedStateVar == (*l_itNotificationList)->m_ePersistentType) {
- if (f_epersistcategory == (*l_itNotificationList)->m_ePersistCategory) {
- // write header and data
- if (eFrameworkunifiedStatusOK != WriteHeaderAndData((*l_itNotificationList),
- (*l_itNotificationList)->m_pPersistentData->m_pMessage,
- l_OutFd)) {
- l_estatus = eFrameworkunifiedStatusFail;
- break;
- }
- }
- } else {
- // write header and data
- if (eFrameworkunifiedStatusOK != WriteHeaderAndData((*l_itNotificationList),
- (*l_itNotificationList)->m_pPersistentData->m_pMessage,
- l_OutFd)) {
- l_estatus = eFrameworkunifiedStatusFail;
- break;
- }
- }
- }
-
- if (eFrameworkunifiedStatusOK != WriteFileHeaderAndDuplicate(l_OutFd, f_cmemfilepath)) {
- l_estatus = eFrameworkunifiedStatusFail;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO3, __FUNCTION__, "Bytes written in NAND memory, %ld, file=%s",
- static_cast<long int>(m_uiCurStrOffset - sizeof(PersistFileHeder)), f_cmemfilepath.c_str()); // NOLINT (runtime/int)
- }
- close(l_OutFd);
- } else {
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to open file %s", f_cmemfilepath.c_str());
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// RetrieveData
-/// Retrieve data in persistent memory in a file in binary format.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CBinaryAccesser::RetrieveData(std::string f_cmemfilepath,
- Persistent_Notification_List_Type *&f_vdata,
- EFrameworkunifiedPersistCategory f_epersistcategory) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- int l_InFd;
-
- if (NULL != f_vdata) { // LCOV_EXCL_BR_LINE 6: f_vdata can't be NULL
- if ((eFrameworkunifiedStatusOK == (l_estatus = OpenFileForReading(&l_InFd, f_cmemfilepath)))) {
- l_estatus = FillNotificationList(l_InFd, f_vdata, f_epersistcategory);
-
- close(l_InFd);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to open file %s, status=%d", f_cmemfilepath.c_str(), l_estatus);
- }
- } else {
- // LCOV_EXCL_START 6: f_vdata can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "f_pdata is NULL");
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// FillNotificationList
-/// This function retrieve the notification data from file and fill it in map.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CBinaryAccesser::FillNotificationList(int f_infd,
- Persistent_Notification_List_Type *&f_vdata,
- EFrameworkunifiedPersistCategory f_epersistcategory) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL == f_vdata) { // LCOV_EXCL_BR_LINE 6: f_vdata can't be NULL
- // LCOV_EXCL_START 6: f_vdata can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "f_pdata is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- } else {
- while (eFrameworkunifiedStatusOK == l_estatus) {
- CPersistDataHeader l_objCPersistDataHeader;
- CHAR *l_pData = NULL;
-
- // Read header and data.
- l_estatus = ReadHeaderAndData(l_objCPersistDataHeader, l_pData, f_infd);
- if (eFrameworkunifiedStatusOK == l_estatus) {
- CNotificationsToPersist *l_objCNotificationsToPersist = new(std::nothrow) CNotificationsToPersist();
- CPersistentData *l_objCPersistentData = new(std::nothrow) CPersistentData();
-
- // fill the appropriate values in l_objCNotificationsToPersist
- if ((NULL != l_objCPersistentData) && (NULL != l_objCNotificationsToPersist)) { // LCOV_EXCL_BR_LINE 5: new's error case // NOLINT[whitespace/line_length]
- l_objCPersistentData->m_pMessage = new(std::nothrow) CHAR[l_objCPersistDataHeader.m_uiSize];
- if (NULL != l_objCPersistentData->m_pMessage) { // LCOV_EXCL_BR_LINE 5: new's error case
- std::memcpy(l_objCPersistentData->m_pMessage, l_pData, l_objCPersistDataHeader.m_uiSize);
- l_objCPersistentData->m_uiMsgSize = l_objCPersistDataHeader.m_uiSize;
- l_objCNotificationsToPersist->m_ePersistentType = l_objCPersistDataHeader.m_ePersistentType;
- l_objCNotificationsToPersist->m_ePersistCategory = f_epersistcategory;
-
- l_objCNotificationsToPersist->m_cNotificationName = l_objCPersistDataHeader.m_cNotificationName;
- l_objCNotificationsToPersist->m_cPublisherName = l_objCPersistDataHeader.m_cPublisherName;
-
- l_objCNotificationsToPersist->m_pPersistentData = l_objCPersistentData;
-
- l_objCNotificationsToPersist->m_uiMaxMsgLength = l_objCPersistDataHeader.m_uiMaxMsgLength;
- f_vdata->push_back(l_objCNotificationsToPersist);
- } else {
- // LCOV_EXCL_START 5: new's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- std::memset(&l_objCPersistDataHeader, 0, sizeof(CPersistDataHeader));
- l_estatus = eFrameworkunifiedStatusNullPointer;
- break;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 5: new's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- std::memset(&l_objCPersistDataHeader, 0, sizeof(CPersistDataHeader));
- l_estatus = eFrameworkunifiedStatusNullPointer;
- break;
- // LCOV_EXCL_STOP
- }
- } else if (eFrameworkunifiedStatusErrOther == l_estatus) {
- // EOF
- l_estatus = eFrameworkunifiedStatusOK;
- break;
- } else {
- std::memset(&l_objCPersistDataHeader, 0, sizeof(CPersistDataHeader));
- break;
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CBinaryAccesser::OpenFileForReading(int *f_infd,
- std::string f_cfilepath) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // raw & raw.bak file unlink
- std::string l_cUnlinkPath(f_cfilepath);
- unlink(l_cUnlinkPath.c_str());
- l_cUnlinkPath.append(".bak");
- unlink(l_cUnlinkPath.c_str());
-
- // add .valid
- std::string l_cValidPath(f_cfilepath);
- l_cValidPath.append(".valid");
-
- if ((*f_infd = open(l_cValidPath.c_str(), O_RDONLY)) >= 0) {
- if (eFrameworkunifiedStatusOK == CheckFileHeader(*f_infd)) {
- struct stat st;
- if (fstat(*f_infd, &st) == 0) { // LCOV_EXCL_BR_LINE 5: fstat's error case
- if (st.st_size == 0) {
- // If original file is 0byte, to confirm bak file
- int bak_fd;
- if (eFrameworkunifiedStatusOK == OpenBakFileForReading(&bak_fd, l_cValidPath)) {
- close(*f_infd);
- *f_infd = bak_fd;
- }
- }
- }
- l_estatus = eFrameworkunifiedStatusOK;
- } else {
- close(*f_infd);
- l_estatus = OpenBakFileForReading(f_infd, l_cValidPath);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "open(%s) fail: %s", l_cValidPath.c_str(), strerror(errno));
- l_estatus = OpenBakFileForReading(f_infd, l_cValidPath);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// OpenFileForWriting
-///
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CBinaryAccesser::OpenFileForWriting(int *f_outfd,
- std::string f_cfilepath) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
-
- std::string l_cPath(f_cfilepath);
- size_t l_ifound = l_cPath.rfind("/");
- std::string l_cOutDirPath = l_cPath.substr(0, l_ifound);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Path for persistence %s ", l_cOutDirPath.c_str());
-
- // if parent directory path doesn't exists, create it
- if (!CFSDirectory::DoesDirecotryExist(l_cOutDirPath)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s DOESN'T exist, Creating...", l_cOutDirPath.c_str());
- if (eFrameworkunifiedStatusOK != (l_estatus = CFSDirectory::CreateDirectory(l_cOutDirPath))) { // LCOV_EXCL_BR_LINE 6: CreateDirectory always return ok // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Failed to create %s ", l_cOutDirPath.c_str()); // LCOV_EXCL_LINE 6: CreateDirectory always return ok // NOLINT[whitespace/line_length]
- }
- }
-
- // add .valid
- std::string l_cValidPath(f_cfilepath);
- l_cValidPath.append(".valid");
-
- if ((*f_outfd = open(l_cValidPath.c_str(), O_RDWR | O_CREAT | O_TRUNC, 0660)) >= 0) {
- if (lseek(*f_outfd, sizeof(PersistFileHeder), SEEK_SET) == sizeof(PersistFileHeder)) { // LCOV_EXCL_BR_LINE 5: lseek's error case // NOLINT[whitespace/line_length]
- l_estatus = eFrameworkunifiedStatusOK;
- m_uiCurStrOffset = sizeof(PersistFileHeder);
- } else {
- // LCOV_EXCL_START 5: lseek's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "lseek fail: %s", strerror(errno));
- close(*f_outfd);
- *f_outfd = -1;
- // LCOV_EXCL_STOP
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "open(%s) fail: %s", l_cValidPath.c_str(), strerror(errno));
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// WriteHeaderAndData
-/// Write header and data in a file.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CBinaryAccesser::WriteHeaderAndData(CNotificationsToPersist *f_pnotificationstopersist,
- PVOID f_pdata,
- int f_outfd) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
-
- if ((NULL == f_pdata) || (NULL == f_pnotificationstopersist)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "f_pdata is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- } else {
- CPersistDataHeader l_objCPersistDataHeader;
-
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- strlcpy(l_objCPersistDataHeader.m_cNotificationName, f_pnotificationstopersist->m_cNotificationName.c_str(),
- sizeof(l_objCPersistDataHeader.m_cNotificationName));
- strlcpy(l_objCPersistDataHeader.m_cPublisherName, f_pnotificationstopersist->m_cPublisherName.c_str(),
- sizeof(l_objCPersistDataHeader.m_cPublisherName));
-#endif
-
- // size check
- if (UINT32_MAX >= static_cast<size_t>(sizeof(CPersistDataHeader) + l_objCPersistDataHeader.m_uiSize)) { // LCOV_EXCL_BR_LINE 5: the size is not bigger than UINT32_MAX // NOLINT[whitespace/line_length]
- l_objCPersistDataHeader.m_uiOffset = static_cast<UI_32>(m_uiCurStrOffset + sizeof(CPersistDataHeader));
- l_objCPersistDataHeader.m_uiSize = f_pnotificationstopersist->m_pPersistentData->m_uiMsgSize;
- l_objCPersistDataHeader.m_ePersistentType = f_pnotificationstopersist->m_ePersistentType;
- l_objCPersistDataHeader.m_uiMaxMsgLength = f_pnotificationstopersist->m_uiMaxMsgLength;
-
- // write header
- if (write(f_outfd, (PCHAR)&l_objCPersistDataHeader, sizeof(CPersistDataHeader)) == sizeof(CPersistDataHeader)) { // LCOV_EXCL_BR_LINE 5: write's error case // NOLINT[whitespace/line_length]
- // write data
- if (write(f_outfd, (PCHAR)f_pdata, // LCOV_EXCL_BR_LINE 5: write's error case
- l_objCPersistDataHeader.m_uiSize) == (ssize_t)l_objCPersistDataHeader.m_uiSize) {
- // save offset of end of current record's data
- m_uiCurStrOffset += static_cast<UI_32>(sizeof(CPersistDataHeader) + l_objCPersistDataHeader.m_uiSize);
- l_estatus = eFrameworkunifiedStatusOK;
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while writing data: %s", strerror(errno)); // LCOV_EXCL_LINE 5: lseek's error case // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while writing header: %s", strerror(errno)); // LCOV_EXCL_LINE 5: lseek's error case // NOLINT[whitespace/line_length]
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CBinaryAccesser::ReadHeaderAndData(CPersistDataHeader &f_objcpersistdataheader,
- CHAR *&f_pdata, int f_infd) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- static UI_32 l_uisPrevAllocSz = 0;
- ssize_t l_iRet;
-
- // read header
- l_iRet = read(f_infd, (PCHAR)&f_objcpersistdataheader, sizeof(f_objcpersistdataheader));
- if (l_iRet != sizeof(f_objcpersistdataheader)) {
- if (l_iRet < 0) { // LCOV_EXCL_BR_LINE 5: read's error case
- // LCOV_EXCL_START 5: read's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while reading header: %s", strerror(errno));
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- l_estatus = eFrameworkunifiedStatusErrOther; // TODO(my_username): set specific error as eNotificationpersistentserviceStatusEOFReadched
- }
- std::memset(&f_objcpersistdataheader, 0, sizeof(CPersistDataHeader));
- } else { // read data
- m_uiCurStrOffset += static_cast<UI_32>(sizeof(CPersistDataHeader));
- if (static_cast<int>(f_objcpersistdataheader.m_uiSize) > 0 &&
- m_uiCurStrOffset + f_objcpersistdataheader.m_uiSize <= m_uiCurStrSize) {
- // if f_pdata has space allocated and if the allocated size less than new size,
- // free and reallocate
- if ((NULL != f_pdata) && (l_uisPrevAllocSz < f_objcpersistdataheader.m_uiSize)) { // LCOV_EXCL_BR_LINE 6: f_pdata must be null // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: f_pdata must be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- delete[] f_pdata;
- f_pdata = NULL;
- // LCOV_EXCL_STOP
- }
-
- if (NULL == f_pdata) { // LCOV_EXCL_BR_LINE 200: f_pdata must be null
- f_pdata = new(std::nothrow) CHAR[f_objcpersistdataheader.m_uiSize];
- } else {
- // memory already allcoated.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- }
-
- if (NULL != f_pdata) { // LCOV_EXCL_BR_LINE 6: f_pdata can't be null
- l_uisPrevAllocSz = f_objcpersistdataheader.m_uiSize;
- l_iRet = read(f_infd, (PCHAR)f_pdata, f_objcpersistdataheader.m_uiSize);
- if (l_iRet == (ssize_t)f_objcpersistdataheader.m_uiSize) { // LCOV_EXCL_BR_LINE 5: read's error case
- m_uiCurStrOffset += f_objcpersistdataheader.m_uiSize;
- l_estatus = eFrameworkunifiedStatusOK;
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error while reading data: %s", strerror(errno)); // LCOV_EXCL_LINE 5: read's error case // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 6: f_pdata can't be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Mem Allocation failure");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invlide data size: %u", f_objcpersistdataheader.m_uiSize);
- std::memset(&f_objcpersistdataheader, 0, sizeof(CPersistDataHeader));
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-EFrameworkunifiedStatus CBinaryAccesser::WriteFileHeaderAndDuplicate(int f_outfd, std::string f_cfilepath) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
- struct stat st;
-
- if (fstat(f_outfd, &st) == 0) { // LCOV_EXCL_BR_LINE 5: fstat's error case
- if (st.st_size > static_cast<long>(sizeof(PersistFileHeder))) { // NOLINT (runtime/int)
- size_t body_size = static_cast<size_t>(st.st_size - sizeof(PersistFileHeder));
- char *buf = new(std::nothrow) char[body_size];
- if (buf != NULL) { // LCOV_EXCL_BR_LINE 5: new's error case
- if (lseek(f_outfd, sizeof(PersistFileHeder), SEEK_SET) == sizeof(PersistFileHeder)) { // LCOV_EXCL_BR_LINE 5: lseek's error case // NOLINT[whitespace/line_length]
- if (read(f_outfd, buf, body_size) == static_cast<ssize_t>(body_size)) { // LCOV_EXCL_BR_LINE 5: read's error case // NOLINT[whitespace/line_length]
- PersistFileHeder f_header;
- std::memcpy(&f_header.check_code, NPP_CHECK_CODE, sizeof(f_header.check_code));
- f_header.crc = static_cast<UI_32>(CalcCRC(buf, static_cast<UI_32>(body_size)));
- if (lseek(f_outfd, 0, SEEK_SET) == 0) { // LCOV_EXCL_BR_LINE 5: lseek's error case
- if (write(f_outfd, &f_header, sizeof(f_header)) == sizeof(f_header)) { // LCOV_EXCL_BR_LINE 5: write's error case // NOLINT[whitespace/line_length]
- eStatus = eFrameworkunifiedStatusOK;
-
- // file duplicate
- std::string bak_file_path = f_cfilepath;
- bak_file_path.append(".valid.bak");
- int bak_fd = open(bak_file_path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0660);
- if (bak_fd >= 0) { // LCOV_EXCL_BR_LINE 5: open's error case
- if (write(bak_fd, &f_header, sizeof(f_header)) == sizeof(f_header)) { // LCOV_EXCL_BR_LINE 5: write's error case // NOLINT[whitespace/line_length]
- if (write(bak_fd, buf, body_size) != static_cast<ssize_t>(body_size)) { // LCOV_EXCL_BR_LINE 5: write's error case // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "write fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: write's error case // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "write fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: write's error case // NOLINT[whitespace/line_length]
- }
- close(bak_fd);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "open fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: open's error case // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "write fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: write's error case // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "lseek fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: lseek's error case // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "read fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: read's error case
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "lseek fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: lseek's error case
- }
- delete[] buf;
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Mem Allocation failure"); // LCOV_EXCL_LINE 5: new's error case
- }
- } else {
- // 0byte file through
- eStatus = eFrameworkunifiedStatusOK;
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "fstat fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: fstat's error case
- }
-
- return eStatus;
-}
-
-EFrameworkunifiedStatus CBinaryAccesser::CheckFileHeader(int f_infd) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
- struct stat st;
-
- if (fstat(f_infd, &st) == 0) { // LCOV_EXCL_BR_LINE 5: fstat's error case
- if (st.st_size > static_cast<long>(sizeof(PersistFileHeder))) { // NOLINT (runtime/int)
- size_t body_size = static_cast<size_t>(st.st_size - sizeof(PersistFileHeder));
- char *buf = new(std::nothrow) char[body_size];
- if (buf != NULL) { // LCOV_EXCL_BR_LINE 5: new's error case
- if (lseek(f_infd, sizeof(PersistFileHeder), SEEK_SET) == sizeof(PersistFileHeder)) { // LCOV_EXCL_BR_LINE 5: lseek's error case // NOLINT[whitespace/line_length]
- if (read(f_infd, buf, body_size) == static_cast<ssize_t>(body_size)) {
- UI_32 crc32 = static_cast<UI_32>(CalcCRC(buf, static_cast<UI_32>(body_size)));
- PersistFileHeder f_header;
- if (lseek(f_infd, 0, SEEK_SET) == 0) { // LCOV_EXCL_BR_LINE 5: lseek's error case
- if (read(f_infd, &f_header, sizeof(f_header)) == sizeof(f_header)) { // LCOV_EXCL_BR_LINE 5: read's error case // NOLINT[whitespace/line_length]
- if (std::memcmp(&f_header.check_code, NPP_CHECK_CODE, sizeof(f_header.check_code)) == 0
- && f_header.crc == crc32) {
- m_uiCurStrOffset = sizeof(f_header);
- m_uiCurStrSize = static_cast<UI_32>(st.st_size);
- eStatus = eFrameworkunifiedStatusOK;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "file header fail: %02x %02x %02x %02x %#x:%#x",
- f_header.check_code[0], f_header.check_code[1],
- f_header.check_code[2], f_header.check_code[3], crc32, f_header.crc);
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "read fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: read's error case // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "lseek fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: lseek's error case // NOLINT[whitespace/line_length]
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "read fail: %s", strerror(errno));
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "lseek fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: lseek's error case
- }
- delete[] buf;
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Mem Allocation failure"); // LCOV_EXCL_LINE 5: new's error case
- }
- } else {
- // 0byte file through
- eStatus = eFrameworkunifiedStatusOK;
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "fstat fail: %s", strerror(errno)); // LCOV_EXCL_LINE 5: fstat's error case
- }
-
- return eStatus;
-}
-
-EFrameworkunifiedStatus CBinaryAccesser::OpenBakFileForReading(int *f_infd, std::string f_cfilepath) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusFail;
- std::string bak_file_path = f_cfilepath;
- bak_file_path.append(".bak");
-
- *f_infd = open(bak_file_path.c_str(), O_RDONLY);
- if (*f_infd >= 0) {
- struct stat st;
- if (fstat(*f_infd, &st) == 0) {
- // Error if bak file is 0byte
- if (st.st_size > 0) {
- if (eFrameworkunifiedStatusOK == CheckFileHeader(*f_infd)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s fail. bak file correct.", f_cfilepath.c_str());
- eStatus = eFrameworkunifiedStatusOK;
- } else {
- close(*f_infd);
- *f_infd = -1;
- }
- } else {
- close(*f_infd);
- *f_infd = -1;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "fstat fail: %s", strerror(errno));
- close(*f_infd);
- *f_infd = -1;
- }
- }
-
- return eStatus;
-}
-
-/*
- * CRC-32C lookup table
- *
- * Polynomial 0x1EDC6F41
- */
-static const UI_32 crc32_lookup[4][256] = { // NOLINT (readability/naming)
- {
- },
- {
- },
- {
- },
- {
- }
-};
-
-UI_32 CBinaryAccesser::CalcCRC(PVOID f_pdata, UI_32 f_size) {
- UI_32 crc = 0xFFFFFFFF;
- const UI_32 *current = (const UI_32 *)f_pdata;
-
- while (f_size >= 4) {
- UI_32 one = *current++ ^ crc;
- crc = crc32_lookup[0][(one >> 24) & 0xFF] ^
- crc32_lookup[1][(one >> 16) & 0xFF] ^
- crc32_lookup[2][(one >> 8) & 0xFF] ^
- crc32_lookup[3][one & 0xFF];
- f_size -= 4;
- }
-
- const UI_8 *current_char = (const UI_8 *)current;
- while (f_size-- > 0) {
- crc = (crc >> 8) ^ crc32_lookup[0][(crc & 0xFF) ^ *current_char++];
- }
-
- return ~crc;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_copy_worker.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_copy_worker.cpp
deleted file mode 100755
index 4638a7d..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_copy_worker.cpp
+++ /dev/null
@@ -1,1153 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file implements the CCopyWorker class.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <native_service/ns_util_crc.h>
-#include <native_service/ns_logger_if.h>
-
-// standard headers
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <dirent.h>
-
-#include <string>
-#include <utility>
-
-// ns headers
-#include "ns_npp_copy_worker.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_fs_directory.h"
-#include "ns_npp_persistence.h"
-#include "ns_npp_threads.h"
-#include "ns_npp.h"
-
-#ifdef AGL_STUB
-#include <other_service/strlcpy.h>
-/*#include "PosixBasedOS001legacy_types.h"*/
-#include <unistd.h>
-#include <sys/syscall.h>
-#endif
-
-#define NS_NPP_WRITESIZE1 4096
-#define NS_NPP_WRITESIZE2 32768
-#define NS_NPP_REMOVE_DIR_DELAY 100 // in ms
-#define NS_NPP_FILEWRITE_DELAY 50 // in ms
-
-pthread_mutex_t g_mutworkerthread = PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t CCopyWorker::m_sAbortMutex = PTHREAD_MUTEX_INITIALIZER;
-BOOL CCopyWorker::m_sbAbortCopy = FALSE;
-
-template <typename C, eFrameworkunifiedStatus(C::*M)(HANDLE)> EFrameworkunifiedStatus WorkerCallback(HANDLE hthread) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- C *l_pClass = static_cast<C *>(FrameworkunifiedGetThreadSpecificData(hthread));
-
- if (l_pClass) { // LCOV_EXCL_BR_LINE 6: l_pClass can't be NULL
- l_estatus = (l_pClass->*M)(hthread);
- }
-
- return l_estatus;
-}
-
-// Initialize static members
-TMServiceTagCRC CCopyWorker::CCopyWorker::g_mservicetagcrc;
-CMutex CCopyWorker::CCopyWorker::g_objmtxservicetag;
-
-static FrameworkunifiedProtocolCallbackHandler aServiceHandlers[] = { // NOLINT (readability/naming) // LCOV_EXCL_BR_LINE 11: unexpected branch
- { CP_WRK_CMD_COPY, WorkerCallback<CCopyWorker, &CCopyWorker::OnWrkCmdCopy> },
- { CP_WRK_CMD_RESUME, WorkerCallback<CCopyWorker, &CCopyWorker::OnWrkCmdResume> },
- { AR_CMD_ARCHIVE, WorkerCallback<CCopyWorker, &CCopyWorker::OnWrkCmdArchive> },
- { CMD_WRK_SHUTDOWN_REQ, WorkerCallback<CCopyWorker, &CCopyWorker::OnCmdShutdownRequest>},
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CCopyWorker
-/// Constructor of CCopyWorker class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CCopyWorker::CCopyWorker() {
- pthread_mutex_init(&m_sAbortMutex, NULL);
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CCopyWorker
-/// Destructor of CCopyWorker class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CCopyWorker::~CCopyWorker() {
- pthread_mutex_destroy(&m_sAbortMutex);
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Abort
-/// Method to abort worker thread.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-VOID CCopyWorker::Abort() { // LCOV_EXCL_START 8: not used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- pthread_mutex_lock(&m_sAbortMutex);
- m_sbAbortCopy = TRUE;
- pthread_mutex_unlock(&m_sAbortMutex);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// InAbortState
-/// Method to check for abort state.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CCopyWorker::InAbortState() const {
- BOOL l_bAbortStatus = FALSE;
- pthread_mutex_lock(&m_sAbortMutex);
- l_bAbortStatus = m_sbAbortCopy;
- pthread_mutex_unlock(&m_sAbortMutex);
-
- return l_bAbortStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetCopyStatusToFailure
-/// Method to set the copy status failure.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::SetCopyStatusToFailure(NSP_CopyStatusResponse &f_tcopystatusresponse, // LCOV_EXCL_START 8: not used // NOLINT[whitespace/line_length]
- const ENPS_CopyWorkerFailures f_eworkerfailcmd) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- f_tcopystatusresponse.m_bpersistencechk = FALSE;
- f_tcopystatusresponse.m_ecopyfailures = f_eworkerfailcmd;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusFail;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnWrkCmdCopy
-/// Callback method on copy command.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::OnWrkCmdCopy(HANDLE hthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- NSP_CopyStatusResponse l_tCopyStatus = {};
- NSP_CopyInfoCmd l_tCopyInfo = {};
- UI_32 l_uiFileSize = 0;
- UI_32 l_ui32FileCRC = 0;
- PSTR l_cTmpStorageFile = NULL;
-
- if (NULL != hthread) { // LCOV_EXCL_BR_LINE 6: hthread can't be NULL
- if (FrameworkunifiedGetMsgLength(hthread) == sizeof(l_tCopyInfo)) { // LCOV_EXCL_BR_LINE 200: the size of msg must be sizeof(NSP_CopyInfoCmd) // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(hthread, &l_tCopyInfo, sizeof(NSP_CopyInfoCmd), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- l_tCopyStatus.m_eloadtype = l_tCopyInfo.m_eloadtype;
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- strlcpy(l_tCopyStatus.m_cpersistenttag, l_tCopyInfo.m_cpersistenttag, sizeof(l_tCopyStatus.m_cpersistenttag));
- strlcpy(l_tCopyStatus.m_crequesterappname,
- l_tCopyInfo.m_crequesterappname,
- sizeof(l_tCopyStatus.m_crequesterappname));
-#endif
-
- l_tCopyStatus.m_epersisttype = l_tCopyInfo.m_epersisttype;
-
- if (ENOTIFICATIONPERSISTENTSERVICECOMPRESSUSINGLIBZ == l_tCopyInfo.m_ecompressiontype) { // LCOV_EXCL_BR_LINE 6: l_tCopyInfo.m_ecompressiontype can't be ENOTIFICATIONPERSISTENTSERVICECOMPRESSUSINGLIBZ // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: l_tCopyInfo.m_ecompressiontype can't be ENOTIFICATIONPERSISTENTSERVICECOMPRESSUSINGLIBZ
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- CCopyWorker::CArchive *l_pCArchive = new(std::nothrow) CCopyWorker::CArchive();
-
- if (NULL != l_pCArchive) {
- // Start the folder archive or extract operation
- if (eFrameworkunifiedStatusOK == (l_estatus = l_pCArchive->FileOperationUsingLibz(l_tCopyInfo, l_tCopyStatus))) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Compress/Decompress Successful");
- } else {
- l_estatus = eFrameworkunifiedStatusFail; // Set the archive status to failure
- }
- delete l_pCArchive;
- l_pCArchive = NULL;
- }
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Tag: %s SourceFile: %s DestFile: %s",
- l_tCopyInfo.m_cpersistenttag != 0 ? l_tCopyInfo.m_cpersistenttag : NULL,
- l_tCopyInfo.m_csourcepath != 0 ? l_tCopyInfo.m_csourcepath : NULL,
- l_tCopyInfo.m_cdestinationpath != 0 ? l_tCopyInfo.m_cdestinationpath : NULL);
-
- if (LOADTYPE_RELEASE == l_tCopyStatus.m_eloadtype) {
- // if release, source file needs to check whether it's changed or not
- l_cTmpStorageFile = l_tCopyInfo.m_csourcepath;
- } else if (LOADTYPE_LOAD == l_tCopyStatus.m_eloadtype) { // LCOV_EXCL_BR_LINE 6: m_eloadtype must be LOADTYPE_RELEASE or LOADTYPE_LOAD // NOLINT[whitespace/line_length]
- // if load, dest file needs to check whether it's changed or not
- l_cTmpStorageFile = l_tCopyInfo.m_cdestinationpath;
-
- // check if file on temporary location exists, then no need to load from persistent memory
- if (0 == access(l_tCopyInfo.m_cdestinationpath, F_OK)) { // LCOV_EXCL_BR_LINE 5: access's error case
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "File to load::%s for source::%s "
- "is already present on path:: %s.",
- l_tCopyInfo.m_cpersistenttag != 0 ? l_tCopyInfo.m_cpersistenttag : NULL,
- l_tCopyStatus.m_crequesterappname != 0 ? l_tCopyStatus.m_crequesterappname : NULL,
- l_tCopyInfo.m_cdestinationpath != 0 ? l_tCopyInfo.m_cdestinationpath : NULL);
- l_estatus = eFrameworkunifiedStatusFileLoadSuccess;
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // let l_cTmpStorageFile be NULL.
- }
-
- if (eFrameworkunifiedStatusFileLoadSuccess == l_estatus) {
- l_estatus = eFrameworkunifiedStatusOK;
- } else {
- if (NULL != l_cTmpStorageFile) { // LCOV_EXCL_BR_LINE 6: l_cTmpStorageFile can't be NULL
- if (!VerifyWithStoredCRC(l_tCopyStatus.m_crequesterappname,
- l_tCopyStatus.m_cpersistenttag,
- l_cTmpStorageFile,
- l_ui32FileCRC)) { // l_ui32FileCRC: out param
- // Check if file release and CRC verification is enabled
- if ((LOADTYPE_RELEASE == l_tCopyStatus.m_eloadtype) && (CNSNPP::m_siCRCCheckCount > 0)) { // LCOV_EXCL_BR_LINE 200: cannot test code // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 200: cannot test code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = TryFileCopyWithCRCCheck(l_tCopyInfo.m_csourcepath,
- l_tCopyInfo.m_cdestinationpath,
- CNSNPP::m_siCRCCheckCount);
- // LCOV_EXCL_STOP
- } else {
- if (LOADTYPE_RELEASE == l_tCopyStatus.m_eloadtype) {
- l_estatus = CopyFile(l_tCopyInfo.m_csourcepath,
- l_tCopyInfo.m_cdestinationpath,
- l_uiFileSize,
- TRUE);
- } else {
- l_estatus = CopyFile(l_tCopyInfo.m_csourcepath,
- l_tCopyInfo.m_cdestinationpath,
- l_uiFileSize,
- FALSE);
- }
- }
- if (eFrameworkunifiedStatusOK == l_estatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO3, __FUNCTION__, "Bytes written:%d file=%s",
- l_uiFileSize, l_tCopyInfo.m_cdestinationpath != 0 ? l_tCopyInfo.m_cdestinationpath : NULL);
- if (0 == l_ui32FileCRC) {
- if (eFrameworkunifiedStatusOK != CalculateCRC32(l_cTmpStorageFile, l_ui32FileCRC)) { // LCOV_EXCL_BR_LINE 200: CalculateCRC32() return ok // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 200: CalculateCRC32() return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Warn: getting crc. File:%s, crc:%d",
- l_cTmpStorageFile, l_ui32FileCRC);
- // LCOV_EXCL_STOP
- }
- }
- UpdateTagCRC(l_tCopyStatus.m_crequesterappname, l_tCopyInfo.m_cpersistenttag, l_ui32FileCRC);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FileCopy Error, status : 0x%x", l_estatus);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__,
- "File %s not changed. No copy done. Load type:%d. Tag:%s for Requester:%s.",
- l_cTmpStorageFile,
- l_tCopyStatus.m_eloadtype,
- l_tCopyStatus.m_cpersistenttag != 0 ? l_tCopyStatus.m_cpersistenttag : NULL,
- l_tCopyStatus.m_crequesterappname != 0 ? l_tCopyStatus.m_crequesterappname : NULL);
- }
- } else {
- // LCOV_EXCL_START 6: l_cTmpStorageFile can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unknown load type:%d, for tag:%s",
- l_tCopyStatus.m_eloadtype,
- l_tCopyStatus.m_cpersistenttag != 0 ? l_tCopyStatus.m_cpersistenttag : NULL);
- // LCOV_EXCL_STOP
- }
- }
- }
-
- if (eFrameworkunifiedStatusOK != l_estatus) {
- l_tCopyStatus.m_bpersistencechk = FALSE;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "COPY_FAILED_ID sending parent message. Tag:%s for Requester:%s.",
- l_tCopyStatus.m_cpersistenttag != 0 ? l_tCopyStatus.m_cpersistenttag : NULL,
- l_tCopyStatus.m_crequesterappname != 0 ? l_tCopyStatus.m_crequesterappname : NULL);
-
- FrameworkunifiedSendParent(hthread, CP_WRK_NTFY, sizeof(NSP_CopyStatusResponse), &l_tCopyStatus);
- } else {
- l_tCopyStatus.m_bpersistencechk = TRUE;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "COPY_COMPLETE_ID sending parent message. Tag:%s for Requester:%s.",
- l_tCopyStatus.m_cpersistenttag != 0 ? l_tCopyStatus.m_cpersistenttag : NULL,
- l_tCopyStatus.m_crequesterappname != 0 ? l_tCopyStatus.m_crequesterappname : NULL);
-
- FrameworkunifiedSendParent(hthread, CP_WRK_NTFY, sizeof(NSP_CopyStatusResponse), &l_tCopyStatus);
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error:FrameworkunifiedGetMsgDataOfSize returned:%d", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 200: the size of msg must be sizeof(NSP_CopyInfoCmd)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error:MsgLength: Expected:%ld, Received:%d.",
- static_cast<long int>(sizeof(l_tCopyInfo)), FrameworkunifiedGetMsgLength(hthread)); // NOLINT (runtime/int)
- // LCOV_EXCL_STOP
- }
- l_estatus = SendAck(hthread, CP_WRK_CMD_COPY);
- } else {
- // LCOV_EXCL_START 6: hthread can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetCopyBufSize
-/// Get the proper buffer size.
-////////////////////////////////////////////////////////////////////////////////////////////////
-SI_32 CCopyWorker::GetCopyBufSize(SI_32 f_si32openfd, UI_32 &f_ui32filesize) {
- UI_32 l_ui32BufSize = NS_NPP_WRITESIZE1;
- // to get the size of file
- struct stat l_tSrcFstat = {};
-
- if (-1 == fstat(f_si32openfd , &l_tSrcFstat)) { // LCOV_EXCL_BR_LINE 5: fstat's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "fstat failure, errno:%d", errno); // LCOV_EXCL_LINE 5: fstat's error case
- } else {
- f_ui32filesize = static_cast<UI_32>(l_tSrcFstat.st_size); // set out param
- if (l_tSrcFstat.st_size < NS_NPP_WRITESIZE1) {
- l_ui32BufSize = NS_NPP_WRITESIZE1;
- } else {
- l_ui32BufSize = NS_NPP_WRITESIZE2;
- }
- }
- return l_ui32BufSize;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// CopyFile
-/// Copy the content of source file f_csrcpath to destination file f_cdestpath
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::CopyFile(PCSTR f_csrcpath, PCSTR f_cdestpath, UI_32 &f_uiNS_NPP_WRITESIZE, BOOL btmpfile) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // declare variables
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- SI_32 l_iSourceFileFd = -1; // file descriptor of source file
- SI_32 l_iDestFileFd = -1; // file descriptor of destination file
- PSTR l_cWriteBuffer = NULL;
- SI_32 l_si32BufSize = NS_NPP_WRITESIZE1;
- size_t l_iReadBuffLength = 0; // size of data read from source file
- UI_32 l_ui32SrcFileSize = 0;
- std::string l_cTempDestPath; // temporary file path
- if (btmpfile == FALSE) {
- l_cTempDestPath = f_cdestpath;
- } else {
- l_cTempDestPath = CPersistence::GetStoragePath(); // LCOV_EXCL_BR_LINE 11: unexpected branch
- if (l_cTempDestPath.length() > 0) { // LCOV_EXCL_BR_LINE 6: l_cTempDestPath.length() is bigger than 0
- l_cTempDestPath.append(RELEASETEMP_DIR); // LCOV_EXCL_BR_LINE 11: unexpected branch
- // create the destination folder path if does not exists
- if (!CFSDirectory::DoesDirecotryExist(l_cTempDestPath)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s DOESN'T exist, Creating...", l_cTempDestPath.c_str());
- if (eFrameworkunifiedStatusOK != (l_estatus = CFSDirectory::CreateDirectory(l_cTempDestPath))) { // LCOV_EXCL_BR_LINE 200: CreateDirectory() is eFrameworkunifiedStatusOK // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 200: CreateDirectory() is eFrameworkunifiedStatusOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failed to create %s, errno:%d", l_cTempDestPath.c_str(), errno);
- return l_estatus;
- // LCOV_EXCL_STOP
- }
- }
- l_cTempDestPath.append(RELEASETEMP_FILENAME);
-
- } else {
- // LCOV_EXCL_START 6: l_cTempDestPath.length() is bigger than 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_cTempDestPath.length():%ld", static_cast<long int>(l_cTempDestPath.length())); // NOLINT (runtime/int)
- return eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- }
- // get the destination folder path from full file path
- std::string l_cOutDirPath(f_cdestpath);
- size_t l_ifound = l_cOutDirPath.rfind("/");
- l_cOutDirPath = l_cOutDirPath.substr(0, l_ifound);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Full Path for persistence %s.", f_cdestpath);
-
- // create the destination folder path if does not exists
- if (!CFSDirectory::DoesDirecotryExist(l_cOutDirPath)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s DOESN'T exist, Creating...", l_cOutDirPath.c_str());
-
- if (eFrameworkunifiedStatusOK != (l_estatus = CFSDirectory::CreateDirectory(l_cOutDirPath))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failed to create %s, errno:%d", l_cOutDirPath.c_str(), errno);
- return eFrameworkunifiedStatusFail;
- }
- }
-
- // open source file
- if (-1 == (l_iSourceFileFd = open(f_csrcpath, O_RDONLY, S_IRUSR))) { // LCOV_EXCL_BR_LINE 5: open's error case
- // LCOV_EXCL_START 5: open's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Warning :: CP_WRK_FAILURE_SRC_NOT_FND, errno:%d", errno);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- // open the destination file for writing or create if does not exists
- if (-1 == (l_iDestFileFd = open(l_cTempDestPath.c_str(), O_WRONLY | O_CREAT | O_TRUNC, // LCOV_EXCL_BR_LINE 5: open's error case // NOLINT[whitespace/line_length]
- S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH))) {
- // LCOV_EXCL_START 5: open's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "CP_WRK_FAILURE_DST_CREATE, errno:%d", errno);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- l_si32BufSize = GetCopyBufSize(l_iSourceFileFd, l_ui32SrcFileSize);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Src file:%s, size:%d", f_csrcpath, l_ui32SrcFileSize);
- l_cWriteBuffer = (PSTR) std::malloc(l_si32BufSize);
- f_uiNS_NPP_WRITESIZE = 0;
-
- if (NULL != l_cWriteBuffer) { // LCOV_EXCL_BR_LINE 5: malloc's error case
-#ifdef AGL_STUB
- while (1) {
- std::memset(l_cWriteBuffer, 0, l_si32BufSize);
- l_iReadBuffLength = read(l_iSourceFileFd, l_cWriteBuffer, l_si32BufSize);
- if (0 == l_iReadBuffLength) {
- break;
- } else if (0 < l_iReadBuffLength) { // LCOV_EXCL_BR_LINE 5: read's error case
- f_uiNS_NPP_WRITESIZE += static_cast<UI_32>(l_iReadBuffLength);
-
- if (-1 == write(l_iDestFileFd, l_cWriteBuffer, l_iReadBuffLength)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "CP_WRK_FAILURE_WRITE_ERROR_CP, errno:%d", errno);
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- if (InAbortState()) { // LCOV_EXCL_START 200: the state can't be aborted
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "CP_WRK_FAILURE_ABORT_DURING_CP");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- // LCOV_EXCL_STOP
- } else {
- // LCOV_EXCL_START 5: read's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error reading from source file, errno:%d", errno);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- if (eFrameworkunifiedStatusOK != l_estatus) {
- break;
- }
- }
-#else
- while (!eof(l_iSourceFileFd)) {
- std::memset(l_cWriteBuffer, 0, l_si32BufSize);
- if (-1 != (l_iReadBuffLength = read(l_iSourceFileFd, l_cWriteBuffer, l_si32BufSize))) {
- f_uiNS_NPP_WRITESIZE += static_cast<UI_32>(l_iReadBuffLength);
-
- if (-1 == write(l_iDestFileFd, l_cWriteBuffer, l_iReadBuffLength)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "CP_WRK_FAILURE_WRITE_ERROR_CP, errno:%d", errno);
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- if (InAbortState()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "CP_WRK_FAILURE_ABORT_DURING_CP");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error reading from source file, errno:%d", errno);
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- if (eFrameworkunifiedStatusOK != l_estatus) {
- break;
- }
- }
-#endif
-
- free(l_cWriteBuffer);
- l_cWriteBuffer = NULL;
- } else {
- // LCOV_EXCL_START 5: malloc's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Mem alloc error for l_cWriteBuffer");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- close(l_iDestFileFd);
-
- if (eFrameworkunifiedStatusOK == l_estatus) {
- if (btmpfile == TRUE) {
- if (0 != rename(l_cTempDestPath.c_str(), f_cdestpath)) { // LCOV_EXCL_START 5: rename's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__,
- "Error renaming file %s to %s, errno: %d", l_cTempDestPath.c_str(), f_cdestpath,
- errno);
- }
- // LCOV_EXCL_STOP
- }
- } else {
- // remove the source file after successful copy
- if (0 != remove(l_cTempDestPath.c_str())) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Temporary file not deleted::%s, errno:%d", l_cTempDestPath.c_str(), errno);
- }
- }
- }
-
- close(l_iSourceFileFd);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnWrkCmdResume
-/// Callback on resume worker thread command
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::OnWrkCmdResume(HANDLE hthread) { // LCOV_EXCL_START 8: not used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (hthread) {
- pthread_mutex_lock(&m_sAbortMutex);
- m_sbAbortCopy = FALSE;
- pthread_mutex_unlock(&m_sAbortMutex);
- l_estatus = SendAck(hthread, CP_WRK_CMD_RESUME);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnWrkCmdStart
-/// Callback method on start worker thread command.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::OnWrkCmdStart(HANDLE hthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (hthread) { // LCOV_EXCL_BR_LINE 6:hthread can't be NULL
- l_estatus = SendAck(hthread, CP_WRK_CMD_START);
- } else {
- // LCOV_EXCL_START 6:hthread can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnWrkCmdStop
-/// Callback method on stop worker thread command.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::OnWrkCmdStop(HANDLE hthread) { // LCOV_EXCL_START 200: can't test
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (hthread) {
- l_estatus = SendAck(hthread, CP_WRK_CMD_STOP);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnCmdShutdownRequest
-/// Callback method for shutdown request command.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::OnCmdShutdownRequest(HANDLE hthread) { // LCOV_EXCL_START 8: not used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- if (hthread) {
- NSP_CopyShutdownAck l_tCopyShutdownAck = {};
- if (FrameworkunifiedGetMsgLength(hthread) == sizeof(l_tCopyShutdownAck)) {
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(hthread, &l_tCopyShutdownAck, sizeof(NSP_CopyShutdownAck),
- eSMRRelease))) {
- FrameworkunifiedSendParent(hthread, CMD_WRK_SHUTDOWN_ACK, sizeof(NSP_CopyShutdown), &l_tCopyShutdownAck);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error:FrameworkunifiedGetMsgDataOfSize returned:%d", l_estatus);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error:MsgLength: Expected:%ld, Received:%d.",
- static_cast<long int>(sizeof(l_tCopyShutdownAck)), FrameworkunifiedGetMsgLength(hthread)); // NOLINT (runtime/int)
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SendAck
-/// Method to send ack to the parent thread
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::SendAck(HANDLE hthread, const ENSP_CopyWorkerProtocol &f_eworkercmd) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (hthread) { // LCOV_EXCL_BR_LINE 6: hthread can't be NULL
- NSP_CopyAckMsg l_tCopyAckMs = {};
- l_tCopyAckMs.m_eworkerprotocol = f_eworkercmd;
- l_estatus = FrameworkunifiedSendParent(hthread, CP_WRK_ACK_CMD_COMPLETE, sizeof(l_tCopyAckMs), &l_tCopyAckMs);
- } else {
- // LCOV_EXCL_START 6: hthread can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnWrkCmdArchive
-/// Callback method on archive command
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::OnWrkCmdArchive(HANDLE f_hThread) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- // Archive response struct
- NSP_CopyStatusResponse l_tArchiveStatusResponse;
-
- if (f_hThread) { // LCOV_EXCL_BR_LINE 6: f_hThread can't be NULL
- // Archive info struct
- NSP_CopyInfoCmd l_tArchiveInfo = {};
-
- if (FrameworkunifiedGetMsgLength(f_hThread) == sizeof(l_tArchiveInfo)) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(f_hThread, &l_tArchiveInfo, sizeof(NSP_CopyInfoCmd), // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- eSMRRelease))) {
- // Copy archive status response
- l_tArchiveStatusResponse.m_eloadtype = l_tArchiveInfo.m_eloadtype;
- l_tArchiveStatusResponse.m_epersisttype = l_tArchiveInfo.m_epersisttype;
- std::strncpy(l_tArchiveStatusResponse.m_cpersistenttag, l_tArchiveInfo.m_cpersistenttag, (MAX_PATH_LENGTH - 1));
- std::strncpy(l_tArchiveStatusResponse.m_crequesterappname,
- l_tArchiveInfo.m_crequesterappname, (MAX_PATH_LENGTH - 1));
-
- CCopyWorker::CArchive *l_pCArchive = new CCopyWorker::CArchive();
-
- // Start the folder archive or extract operation
- if (eFrameworkunifiedStatusOK == (l_estatus = l_pCArchive->Archive(l_tArchiveInfo, l_tArchiveStatusResponse))) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Archive/Extract Successful!");
- } else {
- // Set the archive status to failure
- l_estatus = eFrameworkunifiedStatusFail;
- }
- if (NULL != l_pCArchive) { // LCOV_EXCL_BR_LINE 5: l_pCArchive can't be null
- delete l_pCArchive;
- l_pCArchive = NULL;
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error:FrameworkunifiedGetMsgDataOfSize returned:%d", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error:MsgLength: Expected:%ld, Received:%d.",
- static_cast<long int>(sizeof(l_tArchiveInfo)), FrameworkunifiedGetMsgLength(f_hThread)); // NOLINT (runtime/int)
- // LCOV_EXCL_STOP
- }
-
- if (eFrameworkunifiedStatusOK != l_estatus) {
- l_tArchiveStatusResponse.m_bpersistencechk = FALSE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Archive/Extract fail.Sending parent message!");
- } else {
- l_tArchiveStatusResponse.m_bpersistencechk = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Archive/Extract success.Sending parent message!");
- }
-
- FrameworkunifiedSendParent(f_hThread, CP_WRK_NTFY, sizeof(NSP_CopyStatusResponse), &l_tArchiveStatusResponse);
- } else {
- // LCOV_EXCL_START 6: f_hThread can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread Application Handle NULL");
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NSPCopyWorkerOnStart
-/// Callback method on start of worker thread
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus NSPCopyWorkerOnStart(HANDLE hthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (hthread) { // LCOV_EXCL_BR_LINE 6: hthread can't be NULL
- pthread_mutex_lock(&g_mutworkerthread);
-
- // Note: this variable is made static just to ignore the resource leak showing in coverity analysis
- static CCopyWorker *l_pccopyworker = NULL;
-
- l_pccopyworker = new(std::nothrow) CCopyWorker; // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- if (NULL != l_pccopyworker) { // LCOV_EXCL_BR_LINE 5: l_pccopyworker can't be NULL
- if (eFrameworkunifiedStatusOK == (l_estatus = l_pccopyworker->OnWrkCmdStart(hthread))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- l_estatus = FrameworkunifiedSetThreadSpecificData(hthread, l_pccopyworker);
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- l_estatus = FrameworkunifiedAttachCallbacksToDispatcher(
- hthread, AppName, aServiceHandlers, static_cast<UI_32>(_countof(aServiceHandlers)));
-
- if (0 == std::strcmp(NS_NPP_WRITE_THREAD_NAME, FrameworkunifiedGetAppName(hthread))) {
- l_estatus = FrameworkunifiedAttachCallbackToDispatcher(hthread, AppName,
- CMD_DELETE_OLD_DATA, NPServiceOnDeleteOldDataCmd);
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- delete l_pccopyworker;
- l_pccopyworker = NULL;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- delete l_pccopyworker;
- l_pccopyworker = NULL;
-
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread Start failed.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 5: l_pccopyworker can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Worker Object Null.");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- pthread_mutex_unlock(&g_mutworkerthread);
- } else {
- // LCOV_EXCL_START 6: hthread can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NSPCopyWorkerOnStop
-/// Callback method on stop of worker thread
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus NSPCopyWorkerOnStop(HANDLE hthread) { // LCOV_EXCL_START 200: can't test
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (NULL != hthread) {
- pthread_mutex_lock(&g_mutworkerthread);
- CCopyWorker *l_pccopyworker = static_cast<CCopyWorker *>(FrameworkunifiedGetThreadSpecificData(hthread));
-
- if (NULL != l_pccopyworker) {
- l_pccopyworker->OnWrkCmdStop(hthread);
-
- delete l_pccopyworker;
- l_pccopyworker = NULL;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Worker Object Null");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
-
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedSetThreadSpecificData(hthread, NULL))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedSetThreadSpecificData Error, status=%d", l_estatus);
- }
-
- PCSTR l_cservice = FrameworkunifiedGetAppName(hthread);
- if (NULL != l_cservice) {
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedDetachServiceFromDispatcher(hthread, l_cservice))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error Detaching service %s from dispatcher, status=%d", l_cservice, l_estatus);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedGetAppName returned NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
-
- pthread_mutex_unlock(&g_mutworkerthread);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// NPServiceOnDeleteOldDataCmd
-/// This callback is used to delete the data which was requested to be deleted during
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus NPServiceOnDeleteOldDataCmd(HANDLE f_happ) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- SI_32 l_ithreadcreate = 0;
- pthread_attr_t l_tattr;
- struct sched_param l_tschedparam = {};
-
- // thread id
- pthread_t childthread = 0;
-
- if (EOK == pthread_attr_init(&l_tattr)) { // LCOV_EXCL_BR_LINE 11:except,C++ STL
- // detach the thread from parent thread
- if (EOK != pthread_attr_setdetachstate(&l_tattr, PTHREAD_CREATE_DETACHED)) { // LCOV_EXCL_BR_LINE 11:except,C++ STL
- // LCOV_EXCL_START 11:except,C++ STL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error setting detach state attribute for thread %s", NS_NPP_DATA_RESET_THREAD_NAME);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 200: l_estatus must be eFrameworkunifiedStatusOK
- // set the schedule property of thread
- if (EOK != pthread_attr_setinheritsched(&l_tattr, PTHREAD_EXPLICIT_SCHED)) { // LCOV_EXCL_BR_LINE 5:except,C++ STL // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 5:except,C++ STL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error setting inherit schedule attribute for thread %s", NS_NPP_DATA_RESET_THREAD_NAME);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 200: l_estatus must be eFrameworkunifiedStatusOK
- if (EOK != pthread_attr_getschedparam(&l_tattr, &l_tschedparam)) { // LCOV_EXCL_BR_LINE 5:except,C++ STL
- // LCOV_EXCL_START 5:except,C++ STL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error getting schedule param attribute for thread %s", NS_NPP_DATA_RESET_THREAD_NAME);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 200: l_estatus must be eFrameworkunifiedStatusOK
- // set the schedule priority of thread
- l_tschedparam.sched_priority = NS_NPP_DATA_RESET_THREAD_PRIO;
- if (EOK != pthread_attr_setschedparam(&l_tattr, &l_tschedparam)) { // LCOV_EXCL_BR_LINE 5:except,C++ STL
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error setting schedule param attribute for thread %s", NS_NPP_DATA_RESET_THREAD_NAME);
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) {
- // start the child thread
- if (EOK == (l_ithreadcreate = pthread_create(&childthread, &l_tattr, NSPDataResetThreadCallback, NULL))) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Thread id %ld created, name=%s, prio=%d", childthread, NS_NPP_DATA_RESET_THREAD_NAME,
- NS_NPP_DATA_RESET_THREAD_PRIO);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "pthread_create failed for %s, error = %d", NS_NPP_DATA_RESET_THREAD_NAME,
- l_ithreadcreate);
- }
- }
-
- // release the thread attribute object
- pthread_attr_destroy(&l_tattr);
- } else {
- // LCOV_EXCL_START 11:except,C++ STL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to initialize attribute for thread %s", NS_NPP_DATA_RESET_THREAD_NAME);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// NSPDataResetThreadCallback
-/// Callback of data reset thread.
-///////////////////////////////////////////////////////////////////////////////////////////
-PVOID NSPDataResetThreadCallback(PVOID f_parg) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- std::string f_csourcepath = "";
- std::string f_ctargetpath = "";
- std::string l_ctargetdir = "";
-
- DIR *l_pdir = NULL;
- struct dirent *l_pdirent = NULL;
-
- // set the name of thread
- if (EOK == pthread_setname_np(0, NS_NPP_DATA_RESET_THREAD_NAME)) { // LCOV_EXCL_BR_LINE 5:pthread_setname_np's error case // NOLINT[whitespace/line_length]
-#ifdef AGL_STUB
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Name of thread id %ld set to %s",
- syscall(__NR_gettid), NS_NPP_DATA_RESET_THREAD_NAME);
-#else
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Name of thread id %d set to %s", gettid(), NS_NPP_DATA_RESET_THREAD_NAME);
-#endif
- } else {
- // LCOV_EXCL_START 5:pthread_setname_np's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-#ifdef AGL_STUB
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Error setting name %s for thread-id %ld", NS_NPP_DATA_RESET_THREAD_NAME,
- syscall(__NR_gettid));
-#else
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Error setting name %s for thread-id %d", NS_NPP_DATA_RESET_THREAD_NAME, gettid());
-#endif
- // LCOV_EXCL_STOP
- }
-
- f_csourcepath = CPersistence::GetStoragePath();
- l_pdir = opendir(f_csourcepath.c_str());
-
- if (NULL != l_pdir) { // LCOV_EXCL_BR_LINE 5:opendir's error case
- if ('/' != f_csourcepath[f_csourcepath.length() - 1]) { // LCOV_EXCL_BR_LINE 200: there must be '/' in f_csourcepath // NOLINT[whitespace/line_length]
- f_csourcepath.append("/");
- }
-
- /*
- * Old Persistent data folders which needs to be deleted are renamed with the orignal folder name
- * followed by underscore and date and time.
- */
- std::string l_colduserdata = USERDATA;
- l_colduserdata.append("_");
-
- std::string l_coldfactorydata = FACTORYDATA;
- l_coldfactorydata.append("_");
-
- std::string l_coldfactorycustomerdata = FACTORYCUSTOMERDATA;
- l_coldfactorycustomerdata.append("_");
-
- std::string l_colddealerdata = DEALERDATA;
- l_colddealerdata.append("_");
-
- while (NULL != (l_pdirent = readdir(l_pdir))) {
- l_ctargetdir = l_pdirent->d_name;
-
- if (0 == l_ctargetdir.find(l_colduserdata) ||
- 0 == l_ctargetdir.find(l_coldfactorydata) ||
- 0 == l_ctargetdir.find(l_coldfactorycustomerdata) ||
- 0 == l_ctargetdir.find(l_colddealerdata)) {
- f_ctargetpath.assign(f_csourcepath);
- f_ctargetpath.append(l_ctargetdir);
-
- if (!CFSDirectory::RemoveDirectory(f_ctargetpath, NS_NPP_REMOVE_DIR_DELAY)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to delete directory :: %s", f_ctargetpath.c_str());
- }
- }
- }
- closedir(l_pdir); // close the directory
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Directory does not exists :: %s", f_csourcepath.c_str()); // LCOV_EXCL_LINE 5:opendir's error case // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return NULL;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// VerifyWithStoredCRC
-/// Check if crc of the file passed matches with existing crc of a file
-///////////////////////////////////////////////////////////////////////////////////////////
-BOOL CCopyWorker::VerifyWithStoredCRC(PCSTR f_crequesterappname, PCSTR f_cpersistenttag, PCSTR f_cFile,
- UI_32 &f_ui32crc) {
- UI_32 l_ui32StoredCrc = 0;
- BOOL l_bRet = FALSE;
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- TMServiceTagCRC::iterator l_itServiceTag;
- TMTagCRC::iterator l_itTagCRC;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- f_ui32crc = 0; // initialize with default
-
- if ((NULL != f_crequesterappname) && (NULL != f_cpersistenttag) && (NULL != f_cFile)) { // LCOV_EXCL_BR_LINE 6: f_crequesterappname, f_cpersistenttag, f_cFile can't be null // NOLINT[whitespace/line_length]
- // Get the existing crc of a file from the map
- CCopyWorker::g_objmtxservicetag.ReadLock();
- l_itServiceTag = CCopyWorker::g_mservicetagcrc.find(f_crequesterappname);
- if (l_itServiceTag != CCopyWorker::g_mservicetagcrc.end()) {
- l_itTagCRC = (l_itServiceTag->second).find(f_cpersistenttag);
- if (l_itTagCRC != (l_itServiceTag->second).end()) {
- l_ui32StoredCrc = (l_itTagCRC->second);
- l_estatus = eFrameworkunifiedStatusOK;
- } else {
- // Do nothing.
- }
- } else {
- // Do nothing.
- }
- CCopyWorker::g_objmtxservicetag.Unlock();
-
- if (eFrameworkunifiedStatusOK == l_estatus) {
- // get the crc of a file
- l_estatus = CalculateCRC32(f_cFile, f_ui32crc);
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 200: CalculateCRC32() return ok
- if (f_ui32crc == l_ui32StoredCrc) {
- l_bRet = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "CRC matched. crc:%u", l_ui32StoredCrc);
- } else {
- // Do nothing. Return value already set.
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "CRC different. stored:%u, new:%u",
- l_ui32StoredCrc, f_ui32crc);
- }
- } else {
- // LCOV_EXCL_START: CalculateCRC32() return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Warn: getting crc:file:%s, status:%d, errno:%d",
- f_cFile, l_estatus, errno);
- // LCOV_EXCL_STOP
- }
- } else {
- // Do nothing. Return value already set.
- }
- } else {
- // LCOV_EXCL_START 6: f_crequesterappname, f_cpersistenttag, f_cFile can't be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid param::f_crequesterappname:%p, f_cpersistenttag:%p, f_cFile:%p",
- f_crequesterappname, f_cpersistenttag, f_cFile);
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bRet;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// UpdateTagCRC
-/// Update the internal map with new crc
-///////////////////////////////////////////////////////////////////////////////////////////
-VOID CCopyWorker::UpdateTagCRC(PCSTR f_crequesterappname, PCSTR f_cpersistenttag, UI_32 f_ui32crc) {
- TMServiceTagCRC::iterator l_itServiceTag;
- TMTagCRC::iterator l_itTagCRC;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CCopyWorker::g_objmtxservicetag.ReadLock();
- l_itServiceTag = CCopyWorker::g_mservicetagcrc.find(f_crequesterappname);
- if (l_itServiceTag != CCopyWorker::g_mservicetagcrc.end()) {
- l_itTagCRC = (l_itServiceTag->second).find(f_cpersistenttag);
- if (l_itTagCRC != (l_itServiceTag->second).end()) {
- l_itTagCRC->second = f_ui32crc;
- } else {
- (l_itServiceTag->second).insert(std::make_pair(f_cpersistenttag, f_ui32crc));
- }
- } else {
- TMTagCRC l_mTagCRC;
- l_mTagCRC.insert(std::make_pair(f_cpersistenttag, f_ui32crc));
- CCopyWorker::g_mservicetagcrc.insert(std::make_pair(f_crequesterappname, l_mTagCRC));
- }
- CCopyWorker::g_objmtxservicetag.Unlock();
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// TryFileCopyWithCRCCheck
-/// Try file copy with CRC validation
-///////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CCopyWorker::TryFileCopyWithCRCCheck(PCSTR f_csource, PCSTR f_cdest, UI_32 f_ui32checkcount) { // LCOV_EXCL_START 200: cannot test code // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- UI_32 l_uiSrcFileCrc = 0;
- UI_32 l_uiDestFileCrc = 0;
- UI_32 l_uiFileSize = 0;
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- for (UI_16 l_uiCrcCnt = 1; l_uiCrcCnt <= CNSNPP::m_siCRCCheckCount; l_uiCrcCnt++) {
- l_uiSrcFileCrc = 0;
- l_uiDestFileCrc = 0;
- l_uiFileSize = 0;
-
- l_estatus = CopyFile(f_csource, f_cdest, l_uiFileSize, TRUE);
- if (eFrameworkunifiedStatusOK == l_estatus) {
- // calculate crc of file in temp memory(RAM)
- l_estatus = CalculateCRC32(f_csource, l_uiSrcFileCrc);
- if (eFrameworkunifiedStatusOK == l_estatus) {
- // calculate crc of file stored in persistent memory
- l_estatus = CalculateCRC32(f_cdest, l_uiDestFileCrc);
- if (eFrameworkunifiedStatusOK == l_estatus) {
- if (l_uiSrcFileCrc == l_uiDestFileCrc) { // if checksum matches for both the files
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "CRC Checksum matches for file:%s :: 0x%x", f_csource, l_uiSrcFileCrc);
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO3, __FUNCTION__, "Bytes written:%d file=%s",
- l_uiFileSize, f_cdest);
- break;
- } else { // else delete the file from target
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "CRC doesn't match for src:%s::0x%x and dest:%s::0x%x, CRC cnt=%d",
- f_csource, l_uiSrcFileCrc, f_cdest, l_uiDestFileCrc, l_uiCrcCnt);
- // if the checksum does not matches even for the last time, do not delete the file from target
- if (l_uiCrcCnt < (CNSNPP::m_siCRCCheckCount)) {
- if (0 != remove(f_cdest)) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Error deleting file:%s, errno:%d", f_cdest, errno);
- }
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error Calculating Checksum for DestFile:%s",
- f_cdest != 0 ? f_cdest : NULL);
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error Calculating Checksum for SrcFile:%s",
- f_csource != 0 ? f_csource : NULL);
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FileCopy Error:%d", l_estatus);
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_fs_directory.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_fs_directory.cpp
deleted file mode 100755
index 8f4f98a..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_fs_directory.cpp
+++ /dev/null
@@ -1,232 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains the implementation for class CFSDirectory.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifdef AGL_STUB
-#include <other_service/PosixBasedOS001TimeApi.h>
-#endif
-
-#include <stdio.h>
-#include <dirent.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef AGL_STUB
-#include <cstring>
-#endif
-#include <string>
-
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_types.h"
-#include "ns_npp_fs_directory.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CFSDirectory
-/// Constructor of CFSDirectory class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CFSDirectory::CFSDirectory() { // LCOV_EXCL_START 8: all methods are static
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CFSDirectory
-/// Destructor of CFSDirectory class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CFSDirectory::~CFSDirectory() { // LCOV_EXCL_START 8: all methods are static
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CreateDirectory
-/// Method to create a directory.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CFSDirectory::CreateDirectory(const std::string &f_cdirpath) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (!f_cdirpath.empty()) {
- PSTR l_cTempDirPath;
- PSTR l_cParsedDirPath;
- PCSTR l_cCopypath = f_cdirpath.c_str();
-
- l_cTempDirPath = const_cast<PSTR >(f_cdirpath.c_str());
- while (l_estatus == eFrameworkunifiedStatusOK && (l_cParsedDirPath = std::strchr(l_cTempDirPath, '/')) != 0) {
- if (l_cParsedDirPath != l_cTempDirPath) {
- /* Neither root nor double slash in path */
- *l_cParsedDirPath = '\0';
- if (0 != mkdir(l_cCopypath, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) { // LCOV_EXCL_BR_LINE 5: mkdir's error case // NOLINT[whitespace/line_length]
- if (EEXIST != errno) { // LCOV_EXCL_BR_LINE 5: errno can't be changed
- // LCOV_EXCL_START 5: errno can't be changed
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error Cannot Create directory %s", l_cCopypath);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- // file already exist
- }
- }
- *l_cParsedDirPath = '/';
- }
- l_cTempDirPath = l_cParsedDirPath + 1;
- }
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 200: l_estatus must be eFrameworkunifiedStatusOK
- if (0 != mkdir(l_cCopypath, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) { // LCOV_EXCL_BR_LINE 5: mkdir's error case // NOLINT[whitespace/line_length]
- if (EEXIST != errno) { // LCOV_EXCL_BR_LINE 5: errno can't be changed
- // LCOV_EXCL_START 5: errno can't be changed
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error Cannot Create directory %s", l_cCopypath);
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- // file already exist
- }
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Directory path is empty.");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// DoesDirecotryExist
-/// Method to check if a directory exists.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CFSDirectory::DoesDirecotryExist(const std::string &f_cdirpath) {
- DIR *l_pDirDescriptor = opendir(f_cdirpath.c_str());
- if (NULL != l_pDirDescriptor) {
- closedir(l_pDirDescriptor);
- return TRUE;
- }
- return FALSE;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// IsDirectory
-/// Method to check if the entity is a directory.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CFSDirectory::IsDirectory(const std::string &f_cpath) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL l_bReturn = FALSE;
-
- if (!f_cpath.empty()) { // LCOV_EXCL_BR_LINE 200: f_cpath can't be empty
- struct stat st_buf;
-
- if (0 == stat(f_cpath.c_str(), &st_buf)) { // LCOV_EXCL_BR_LINE 5: stat's error case
- // Get the status of the file
- if (S_ISREG(st_buf.st_mode)) {
- l_bReturn = FALSE; // return false if f_cpath is a regular file
- }
- if (S_ISDIR(st_buf.st_mode)) {
- l_bReturn = TRUE; // return true if f_cpath is a directory
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving status of path : %s", f_cpath.c_str()); // LCOV_EXCL_LINE 5: stat's error case // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Directory path is empty."); // LCOV_EXCL_LINE 200: f_cpath can't be empty
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bReturn;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// RemoveDirectory
-/// Method to remove a directory.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CFSDirectory::RemoveDirectory(std::string f_cpath, const UI_32 f_uidelay) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL l_bReturn = FALSE;
-
- if (!f_cpath.empty()) { // LCOV_EXCL_BR_LINE 200: f_cpath can't be empty.
- std::string l_cFilePath = "";
-
- struct dirent *l_pdirent = NULL;
- DIR *l_pdir = NULL;
-
- l_pdir = opendir(f_cpath.c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch
- if (NULL != l_pdir) {
- if ('/' != f_cpath[f_cpath.length() - 1]) {
- f_cpath.append("/");
- }
-
- while (NULL != (l_pdirent = readdir(l_pdir))) {
- if (0 != std::strcmp(l_pdirent->d_name, ".") &&
- 0 != std::strcmp(l_pdirent->d_name, "..")) {
- l_cFilePath.assign(f_cpath);
- l_cFilePath.append(l_pdirent->d_name); // concatenate the strings to get the complete f_cpath
-
- if (TRUE == IsDirectory(l_cFilePath)) {
- (void)RemoveDirectory(l_cFilePath, f_uidelay);
- } else {
- // it's a file, we can use unlink
- unlink(l_cFilePath.c_str());
-
- if (0 < f_uidelay) { // LCOV_EXCL_START 200: f_uidelay is 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- delay(f_uidelay);
-#endif
- }
- // LCOV_EXCL_STOP
- }
- }
- }
- closedir(l_pdir); // close the directory
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pdir is NULL");
- }
-
- // delete the directory
- if (0 == rmdir(f_cpath.c_str())) {
- if (0 < f_uidelay) { // LCOV_EXCL_START 200: f_uidelay is 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- delay(f_uidelay);
-#endif
- }
- // LCOV_EXCL_STOP
- l_bReturn = TRUE;
- }
- } else {
- // LCOV_EXCL_START 200: f_cpath can't be empty.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Directory path is empty.");
- l_bReturn = FALSE;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bReturn;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_handlelist.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_handlelist.cpp
deleted file mode 100755
index c9e88a8..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_handlelist.cpp
+++ /dev/null
@@ -1,149 +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.
- */
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup tag_NS_NPPService
-/// \ingroup tag_NS_NPPService
-///
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This class holds the message queue handles for notification subscribers
-///
-/// This is a singleton class which holds the message queue handles for notification subscribers.
-/// This will ensure that NS_NPPService will hold only one handle per subscriber.
-//////////////////////////////////////////////////////////////////////////////////////////////////
-#include <utility>
-#include <string>
-#include "ns_npp_handlelist.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-
-// define static member of class CHandleList
-CHandleList *CHandleList::m_psHandleList = NULL;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CHandleList
-/// Class Constructor
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CHandleList::CHandleList() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CHandleList
-/// Class Destructor
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CHandleList::~CHandleList() { // LCOV_EXCL_START 14: Resident process, global instance not released
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetHandleList
-/// This function is used to get the singleton instance of class.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CHandleList *CHandleList::GetHandleList() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // create the instance of class
- if (NULL == m_psHandleList) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Creating handle list."); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
- m_psHandleList = new(std::nothrow) CHandleList(); // LCOV_EXCL_BR_LINE 11: unexpected branch
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return m_psHandleList;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ReleaseHandleList
-/// This function is used to release the instance of class.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CHandleList::ReleaseHandleList() { // LCOV_EXCL_START 100: not used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_psHandleList) {
- delete m_psHandleList;
- m_psHandleList = NULL;
- } else {
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// AddHandleInList
-/// Add pair of subscriber name and corresponding handle in map.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CHandleList::AddHandleInList(std::string f_csubscribername, HANDLE f_hmqhandle) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- HandleListRetStatus_Type l_prRetValue;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- l_prRetValue = m_mHandleList.insert(make_pair(f_csubscribername, f_hmqhandle));
- if (false == l_prRetValue.second) {
- l_estatus = eFrameworkunifiedStatusDuplicate;
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Handle exists in list for %s.", f_csubscribername.c_str());
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Handle added in list for %s.", f_csubscribername.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
- }
-
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// RemoveHandleFromList
-/// Remove handle for subscriber from the list.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CHandleList::RemoveHandleFromList(std::string f_csubscribername) { // LCOV_EXCL_START 100: not used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // TODO(my_username): Implementation of this function.
- // NOTE: Right now this feature is not required. Let the NS_NPPService hold one handle for
- // each subscriber, even if all the notifications are unsubscribed by subscriber.
- return eFrameworkunifiedStatusOK;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetSubscriberMqHandle
-/// Get the message queue handle of a subscriber.
-////////////////////////////////////////////////////////////////////////////////////////////////
-HANDLE CHandleList::GetSubscriberMqHandle(std::string f_csubscribername) {
- HANDLE l_hMqHandle = NULL;
- HandleList_Type::iterator l_itHandleList;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- l_itHandleList = m_mHandleList.find(f_csubscribername);
- if (l_itHandleList != m_mHandleList.end()) {
- l_hMqHandle = l_itHandleList->second;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_hMqHandle;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_nor_persistence_worker_thread.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_nor_persistence_worker_thread.cpp
deleted file mode 100755
index d4b1604..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_nor_persistence_worker_thread.cpp
+++ /dev/null
@@ -1,747 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contain declaration of class CNorPersistenceWorker and CArchive.
-/// Class CNorPersistenceWorker holds the implementation for worker thread.
-/// Class CArchive holds the implementation for archive.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include <native_service/ns_timer_if.hpp>
-#include <native_service/ns_np_service_if.h>
-#include <native_service/ns_utility_sys.hpp>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <native_service/frameworkunified_service_protocol.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <native_service/ns_np_service_nor_persistence.h>
-
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <boost/bind.hpp>
-#include <map>
-#include <utility>
-#include <string>
-
-#include <native_service/ns_np_service_nor_persistence_internal.h>
-#include "ns_npp_types.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_fs_directory.h"
-#include "ns_npp_persistent_data.h"
-#include "ns_npp_nor_persistence_worker_thread.h"
-
-
-
-typedef std::string NotificationName;
-typedef std::map<NotificationName, CTimerHelper *> TTimerList;
-static TTimerList g_mtimers; /// List of all the timers for immediate persistence notifications
-CMutex g_objmutextimerdata; /// Mutex object on g_mtimers
-
-// Template function for NorWorkerCallback
-template <typename C, eFrameworkunifiedStatus(C::*M)(HANDLE)> EFrameworkunifiedStatus NorWorkerCallback(HANDLE hthread) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- C *l_pClass = static_cast<C *>(FrameworkunifiedGetThreadSpecificData(hthread));
-
- if (l_pClass) { // LCOV_EXCL_BR_LINE 6: l_pClass can't be NULL
- l_estatus = (l_pClass->*M)(hthread);
- }
- return l_estatus;
-}
-
-static FrameworkunifiedProtocolCallbackHandler aServiceHandlers[] = { // NOLINT (readability/naming)
- { NOR_PERSISTENCE_TIMER_START, NorWorkerCallback<CNorPersistenceWorker,
- &CNorPersistenceWorker::OnNorPersistenceTimerStart>},
- { NOR_PERSISTENCE_REGISTER, NorWorkerCallback<CNorPersistenceWorker,
- &CNorPersistenceWorker::RegisterImmediatePersistNotification>},
- { NOR_PERSISTENCE_UNREGISTER, NorWorkerCallback<CNorPersistenceWorker,
- &CNorPersistenceWorker::UnregisterImmediatePersistNotification>},
- { NOR_PERSISTENCE_ONSHUTDOWN, NorWorkerCallback<CNorPersistenceWorker,
- &CNorPersistenceWorker::OnShutdown>},
- { NOR_PERSISTENCE_CHANGE_CATEGORY, NorWorkerCallback<CNorPersistenceWorker,
- &CNorPersistenceWorker::OnCategoryChange>}
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NSPNorPersistenceWorkerOnStart
-/// Callback method on start of worker thread
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus NSPNorPersistenceWorkerOnStart(HANDLE hthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (NULL != hthread) { // LCOV_EXCL_BR_LINE 6: hthread can't be NULL
- // Note: this variable is made static just to ignore the resource leak showing in coverity analysis
- static CNorPersistenceWorker *l_pcnorpersistenceworker = new(std::nothrow) CNorPersistenceWorker;
-
- if (NULL != l_pcnorpersistenceworker) { // LCOV_EXCL_BR_LINE 5: new's error case
- l_estatus = FrameworkunifiedSetThreadSpecificData(hthread, l_pcnorpersistenceworker);
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- l_estatus = FrameworkunifiedAttachCallbacksToDispatcher(
- hthread, AppName, aServiceHandlers, static_cast<UI_32>(_countof(aServiceHandlers)));
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- delete l_pcnorpersistenceworker;
- l_pcnorpersistenceworker = NULL;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 5: new's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Worker Object Null.");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: hthread can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NSPNorPersistenceWorkerOnStop
-/// Callback method on stop of worker thread
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus NSPNorPersistenceWorkerOnStop(HANDLE hthread) { // LCOV_EXCL_START 200: can't test
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (NULL != hthread) {
- CNorPersistenceWorker *l_pcnorpersistenceworker = static_cast<CNorPersistenceWorker *>(FrameworkunifiedGetThreadSpecificData(
- hthread));
-
- if (NULL != l_pcnorpersistenceworker) {
- delete l_pcnorpersistenceworker;
- l_pcnorpersistenceworker = NULL;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Worker Object Null");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
-
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedSetThreadSpecificData(hthread, NULL))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedSetThreadSpecificData error, status=%d", l_estatus);
- }
-
- PCSTR l_cservice = FrameworkunifiedGetAppName(hthread);
- if (NULL != l_cservice) {
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedDetachServiceFromDispatcher(hthread, l_cservice))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error detaching service %s from dispatcher, status=%d", l_cservice, l_estatus);
- }
- } else {
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedGetAppName returned NULL");
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Thread App Handle Null.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Class : CNorPersistenceWorker
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CNorPersistenceWorker
-/// Constructor of CNorPersistenceWorker class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNorPersistenceWorker::CNorPersistenceWorker() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CNorPersistenceWorker
-/// Destructor of CNorPersistenceWorker class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNorPersistenceWorker::~CNorPersistenceWorker() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnNorPersistenceTimerStart
-/// This function starts the respective timer of the notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNorPersistenceWorker::OnNorPersistenceTimerStart(HANDLE f_hThread) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- TNorPersistenceNotifInfoHeader *l_ptNorPersistentData = NULL;
- UI_32 l_ui32ReceivedDataLength = FrameworkunifiedGetMsgLength(f_hThread);
- UI_8 *l_pui32ReceivedData = new(std::nothrow) UI_8[l_ui32ReceivedDataLength];
-
- if (l_ui32ReceivedDataLength >= sizeof(TNorPersistenceNotifInfoHeader)) { // LCOV_EXCL_BR_LINE 200: l_ui32ReceivedDataLength is bigger than sizeof(TNorPersistenceNotifInfoHeader) // NOLINT[whitespace/line_length]
- if (NULL != l_pui32ReceivedData) { // LCOV_EXCL_BR_LINE 5: new's error case
- std::memset(l_pui32ReceivedData, 0, l_ui32ReceivedDataLength);
- l_estatus = FrameworkunifiedGetMsgDataOfSize(f_hThread, l_pui32ReceivedData, l_ui32ReceivedDataLength, eSMRRelease);
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- TTimerList::iterator l_itTimerList;
- l_ptNorPersistentData = static_cast<TNorPersistenceNotifInfoHeader *>(static_cast<PVOID>(l_pui32ReceivedData));
-
- g_objmutextimerdata.WriteLock();
- // find the corresponding timer object in the list of timers
- l_itTimerList = g_mtimers.find(l_ptNorPersistentData->m_cnotificationname);
- if (g_mtimers.end() != l_itTimerList) { // LCOV_EXCL_BR_LINE 200: the notification must be registered
- if (NULL != (l_itTimerList->second)) { // LCOV_EXCL_BR_LINE 200: l_itTimerList->second can't be null
- if (NULL != (l_itTimerList->second)->m_pui8HeaderAndData) {
- delete[](l_itTimerList->second)->m_pui8HeaderAndData;
- (l_itTimerList->second)->m_pui8HeaderAndData = NULL;
- }
-
- // Update specific immediate persistence notification data
- (l_itTimerList->second)->m_pui8HeaderAndData = l_pui32ReceivedData;
-
- // if corresponding timer is not already running start it.
- if (!(l_itTimerList->second)->IsRunning()) {
- (l_itTimerList->second)->Start();
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Timer started, Notfn=%s", l_ptNorPersistentData->m_cnotificationname);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Timer already running for notfn %s. Data updated",
- l_ptNorPersistentData->m_cnotificationname);
- }
-
- l_estatus = eFrameworkunifiedStatusOK;
- } else {
- // LCOV_EXCL_START 200: l_itTimerList->second can't be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Immediate persistence: Timer object NULL for Notfn:%s.",
- l_ptNorPersistentData->m_cnotificationname);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 200: the notification must be registered
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Immediate persistence notification not registered. Notification: %s ",
- l_ptNorPersistentData->m_cnotificationname != 0 ? l_ptNorPersistentData->m_cnotificationname : NULL);
- // LCOV_EXCL_STOP
- }
- g_objmutextimerdata.Unlock();
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "FrameworkunifiedGetMsgDataOfSize failed while retrieving immediate persistence notfn data. Status:0x%x ", l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 5: new's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to allocate data. Can't persist.");
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 200: l_ui32ReceivedDataLength is bigger than sizeof(TNorPersistenceNotifInfoHeader)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldBuf;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid data length received. Can't persist.");
- // LCOV_EXCL_STOP
- }
-
- if ((eFrameworkunifiedStatusOK != l_estatus) && (NULL != l_pui32ReceivedData)) {
- delete[] l_pui32ReceivedData;
- l_pui32ReceivedData = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// RegisterImmediatePersistNotification
-/// It creates a timer corresponding to the notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNorPersistenceWorker::RegisterImmediatePersistNotification(HANDLE hthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- TImmediatePersistenceRegisterNotifInfo l_tRegisterNotifInfo = {};
-
- if (sizeof(l_tRegisterNotifInfo) == FrameworkunifiedGetMsgLength(hthread)) { // LCOV_EXCL_BR_LINE 200: the size of msg must be sizeof(TImmediatePersistenceUnregisterNotifInfo) // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(hthread, &l_tRegisterNotifInfo, // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- sizeof(TImmediatePersistenceRegisterNotifInfo), eSMRRelease))) {
- g_objmutextimerdata.WriteLock();
-
- TTimerList::iterator l_itTimerList = g_mtimers.find(l_tRegisterNotifInfo.m_cnotificationname);
- if (l_itTimerList != g_mtimers.end()) { // LCOV_EXCL_BR_LINE 6: notification can't be registered again
- // LCOV_EXCL_START 6: notification can't be registered again
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Notification %s is already registered for immediate data persistence ",
- l_tRegisterNotifInfo.m_cnotificationname);
- // LCOV_EXCL_STOP
- } else {
- // create timer corresponding to notification
- CTimerHelper *l_pTimerHelper = new CTimerHelper();
- if (NULL != l_pTimerHelper) { // LCOV_EXCL_BR_LINE 5: new's error case
- l_pTimerHelper->SetTime(l_tRegisterNotifInfo.m_uidelay, 0);
- // todo: modify SetNotifyMethod of timer NSTimer class to accept sender handle as well.
- // This will help to have only one handle, instead of one handle per timer.
- l_pTimerHelper->SetNotifyMethod(static_cast<UI_16>(l_pTimerHelper->GetCmdId()), FrameworkunifiedGetAppName(hthread));
-
- // associate timer's timeout with the callback function.
- FrameworkunifiedAttachCallbackToDispatcher(hthread, TIMER_QUE, l_pTimerHelper->GetCmdId(),
- boost::bind(&CTimerHelper::OnTimeOut, l_pTimerHelper, hthread));
- // add created timer in timers list
- g_mtimers.insert(std::make_pair(l_tRegisterNotifInfo.m_cnotificationname, l_pTimerHelper));
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Notification %s is registered for immediate data persistence ",
- l_tRegisterNotifInfo.m_cnotificationname != 0 ? l_tRegisterNotifInfo.m_cnotificationname : NULL);
- }
- }
-
- g_objmutextimerdata.Unlock();
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error getting message data for registering Immediate persistent notification, status: 0x%x", l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 200: the size of msg must be sizeof(TImmediatePersistenceUnregisterNotifInfo)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "FrameworkunifiedGetMsgLength and size of TImmediatePersistenceRegisterNotifInfo mismatched."
- "Length received %d, buffer available: %ld ",
- FrameworkunifiedGetMsgLength(hthread), static_cast<long int>(sizeof(TImmediatePersistenceRegisterNotifInfo))); // NOLINT (runtime/int)
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// UnregisterImmediatePersistNotification
-/// It deletes a timer corresponding to the notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNorPersistenceWorker::UnregisterImmediatePersistNotification(HANDLE hthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- TImmediatePersistenceUnregisterNotifInfo l_tRegisterNotifInfo = {};
-
- if (sizeof(l_tRegisterNotifInfo) == FrameworkunifiedGetMsgLength(hthread)) { // LCOV_EXCL_BR_LINE 200: the size of msg must be sizeof(TImmediatePersistenceUnregisterNotifInfo) // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(hthread, &l_tRegisterNotifInfo, // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- sizeof(TImmediatePersistenceUnregisterNotifInfo), eSMRRelease))) {
- g_objmutextimerdata.WriteLock();
-
- TTimerList::iterator l_itTimerList = g_mtimers.find(l_tRegisterNotifInfo.m_cnotificationname);
- if (l_itTimerList != g_mtimers.end()) { // LCOV_EXCL_BR_LINE 6: notification can't be unregistered again
- if (NULL != (l_itTimerList->second)) { // LCOV_EXCL_BR_LINE 200: l_itTimerList->second can't be null
- EFrameworkunifiedStatus eStatus;
- // detach callbacks
- if (eFrameworkunifiedStatusOK != (eStatus = FrameworkunifiedDetachCallbackFromDispatcher(hthread, TIMER_QUE, // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- (l_itTimerList->second)->GetCmdId()))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: FrameworkunifiedDetachCallbackFromDispatcher Failed Status:0x%x ", eStatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- delete l_itTimerList->second;
- l_itTimerList->second = NULL;
- }
- g_mtimers.erase(l_itTimerList);
- } else {
- // LCOV_EXCL_START 6: notification can't be registered again
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Can't unregister. Notification %s is not a registered notification for immediate data persistence.",
- l_tRegisterNotifInfo.m_cnotificationname != 0 ? l_tRegisterNotifInfo.m_cnotificationname : NULL);
- // LCOV_EXCL_STOP
- }
-
- g_objmutextimerdata.Unlock();
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Notification %s is unregistered for immediate data persistence, FrameworkunifiedGetMsgDataOfSize Error, status: 0x%x",
- l_tRegisterNotifInfo.m_cnotificationname != 0 ? l_tRegisterNotifInfo.m_cnotificationname : NULL,
- l_estatus);
- }
- } else {
- // LCOV_EXCL_START 200: the size of msg must be sizeof(TImmediatePersistenceUnregisterNotifInfo)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "FrameworkunifiedGetMsgLength and size of TImmediatePersistenceUnregisterNotifInfo mismatched."
- "Length received %d, buffer available: %ld ",
- FrameworkunifiedGetMsgLength(hthread), static_cast<long int>(sizeof(TImmediatePersistenceUnregisterNotifInfo))); // NOLINT (runtime/int)
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnShutdown
-/// This API saves or deletes the data of NOR irrespective of delay depending on the message data
-/// received from parent thread during shutdown.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNorPersistenceWorker::OnShutdown(HANDLE f_hThread) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- UI_32 l_uiPersistCategoryFlag = 0;
-
- TImmediateShutdown l_tImmShutdown = {};
-
- CTimerHelper *l_pTimerHelper = NULL;
-
- // iterator of list of nor notifications and its timers
- TTimerList::iterator l_itTimerList;
-
- TNorPersistenceNotifInfoHeader *l_ptImmediateNotfnHeader = NULL;
-
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(f_hThread, &l_tImmShutdown, sizeof(l_tImmShutdown), // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- eSMRRelease))) {
- l_uiPersistCategoryFlag = l_tImmShutdown.f_uinotificationpersistentservicepersistcategoryflag;
-
- // if quick shutdown is received then just stop the timer and dont save the data
- if (eFrameworkunifiedQuickShutdown == l_tImmShutdown.f_eshutdowntype) {
- for (l_itTimerList = g_mtimers.begin(); l_itTimerList != g_mtimers.end(); l_itTimerList++) {
- l_pTimerHelper = l_itTimerList->second;
-
- if (NULL != l_pTimerHelper && l_pTimerHelper->IsRunning()) {
- // stop the timer
- l_pTimerHelper->Stop();
- }
- }
- } else { // stop the timer and save the data
- for (l_itTimerList = g_mtimers.begin(); l_itTimerList != g_mtimers.end(); l_itTimerList++) {
- l_pTimerHelper = l_itTimerList->second;
-
- if (NULL != l_pTimerHelper && l_pTimerHelper->IsRunning()) {
- // stop the timer
- l_pTimerHelper->Stop();
-
- l_ptImmediateNotfnHeader = static_cast<TNorPersistenceNotifInfoHeader *>
- (static_cast<PVOID>(l_pTimerHelper->m_pui8HeaderAndData));
-
- if (NULL != l_ptImmediateNotfnHeader) { // LCOV_EXCL_BR_LINE 200: l_ptImmediateNotfnHeader can't be null
- if (eFrameworkunifiedUserData != (l_ptImmediateNotfnHeader->m_epersistcategory & l_uiPersistCategoryFlag) &&
- eFrameworkunifiedFactoryData != (l_ptImmediateNotfnHeader->m_epersistcategory & l_uiPersistCategoryFlag) &&
- eFrameworkunifiedFactoryCustomerData != (l_ptImmediateNotfnHeader->m_epersistcategory & l_uiPersistCategoryFlag) &&
- eFrameworkunifiedDealerData != (l_ptImmediateNotfnHeader->m_epersistcategory & l_uiPersistCategoryFlag)) {
- // save the new data to persistent memory
- l_pTimerHelper->OnTimeOut(f_hThread);
- }
- } else {
- // LCOV_EXCL_START 200: l_ptImmediateNotfnHeader can't be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Immediate notification data header is NULL");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- }
- }
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedGetMsgDataOfSize failed for protocol NOR_PERSISTENCE_ONSHUTDOWN, status : %d",
- l_estatus);
- // LCOV_EXCL_STOP
- }
-
- if (eFrameworkunifiedStatusOK != (l_estatus = FrameworkunifiedSendParent(f_hThread, NOR_PERSISTENCE_ONSHUTDOWN_ACK, // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- sizeof(l_uiPersistCategoryFlag), &l_uiPersistCategoryFlag))) {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedSendParent failed for protocol NOR_PERSISTENCE_ONSHUTDOWN_ACK, status : %d",
- l_estatus);
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnCategoryChange
-/// This callback is called when category of immediate persistence is changed
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNorPersistenceWorker::OnCategoryChange(HANDLE hthread) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != hthread) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- UI_32 l_ui32ReceivedDataLength = FrameworkunifiedGetMsgLength(hthread);
-
- if (l_ui32ReceivedDataLength >= sizeof(TImmediatePersistenceChangeCategory)) { // LCOV_EXCL_BR_LINE 200: l_ui32ReceivedDataLength is bigger than sizeof(TImmediatePersistenceChangeCategory) // NOLINT[whitespace/line_length]
- UI_8 *l_pui32ReceivedData = new(std::nothrow) UI_8[l_ui32ReceivedDataLength];
-
- if (NULL != l_pui32ReceivedData) { // LCOV_EXCL_BR_LINE 5: new's error case
- std::memset(l_pui32ReceivedData, 0, l_ui32ReceivedDataLength);
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(hthread, l_pui32ReceivedData, l_ui32ReceivedDataLength, // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- eSMRRelease))) {
- TImmediatePersistenceChangeCategory *l_pChangePersistentCategory =
- static_cast<TImmediatePersistenceChangeCategory *>(static_cast<PVOID>(l_pui32ReceivedData));
- PUI_8 l_pui8Data = l_pui32ReceivedData + sizeof(TImmediatePersistenceChangeCategory);
-
- TTimerList::iterator l_itTimerList;
-
- g_objmutextimerdata.WriteLock();
- // find the corresponding timer object in the list of timers
- l_itTimerList = g_mtimers.find(l_pChangePersistentCategory->m_tnornotifInfoheader.m_cnotificationname);
- if (g_mtimers.end() != l_itTimerList) { // LCOV_EXCL_BR_LINE 6: notification must be in list
- CTimerHelper *l_pTimerHelper = l_itTimerList->second;
-
- if (NULL != l_pTimerHelper && l_pTimerHelper->IsRunning()) {
- TNorPersistenceNotifInfoHeader *l_ptImmediateNotfnHeader =
- static_cast<TNorPersistenceNotifInfoHeader *>(static_cast<PVOID>(l_pTimerHelper->m_pui8HeaderAndData));
-
- if (NULL != l_ptImmediateNotfnHeader) { // LCOV_EXCL_BR_LINE 200: l_ptImmediateNotfnHeader can't be null
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Changing category from %d to %d for notfn %s in dataHdr",
- l_ptImmediateNotfnHeader->m_epersistcategory,
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_epersistcategory,
- l_ptImmediateNotfnHeader->m_cnotificationname);
-
- l_ptImmediateNotfnHeader->m_epersistcategory =
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_epersistcategory;
- }
- }
-
- EFrameworkunifiedPersistCategory l_eOldPersistCategory = l_pChangePersistentCategory->m_eoldpersistcategory;
-
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Changing persist category of %s from %d to %d",
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_cnotificationname,
- l_eOldPersistCategory,
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_epersistcategory);
-
- // write data to emmc
- l_estatus = SynchronousWritePersistentData(
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_cpublishername,
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_cnotificationname,
- static_cast<PVOID>(l_pui8Data),
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_uimsgsize,
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_uidelay,
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_uimaxmsglength,
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_epersistcategory);
-
- // Create the old file path string to be removed
- std::string l_cPath = IMMEDIATE_PERSISTENCE_STORAGE_V2;
- std::string l_cTempPath = l_pChangePersistentCategory->m_tnornotifInfoheader.m_cnotificationname;
- size_t l_uiTempPathSize = 0;
-
- // replace all '/' by '_'
- l_uiTempPathSize = l_cTempPath.find_first_of("/");
- while (std::string::npos != l_uiTempPathSize) {
- l_cTempPath[l_uiTempPathSize] = '_';
- l_uiTempPathSize = l_cTempPath.find_first_of("/", l_uiTempPathSize + 1);
- }
-
- switch (l_eOldPersistCategory) {
- case eFrameworkunifiedFactoryData:
- l_cPath.append(FACTORYDATADIR);
- break;
- case eFrameworkunifiedFactoryCustomerData:
- l_cPath.append(FACTORYCUSTOMERDATADIR);
- break;
- case eFrameworkunifiedDealerData:
- l_cPath.append(DEALERDATADIR);
- break;
- case eFrameworkunifiedUserData:
- default: {
- l_cPath.append(USERDATADIR);
- l_cPath.append(ALLUSERAPPDATADIR);
- }
- break;
- }
-
- l_cPath.append(IMMEDIATEDATADIR);
- l_cPath.append(l_cTempPath);
-
- l_cPath.append(l_pChangePersistentCategory->m_tnornotifInfoheader.m_cpublishername);
-
- if (0 != unlink(l_cPath.c_str())) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error deleting file %s, errno=%d", l_cPath.c_str(), errno);
- }
- } else {
- // LCOV_EXCL_START 6: notification must be in list
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't update persistent category, notfn %s not found in g_mtimers map",
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_cnotificationname != 0 ?
- l_pChangePersistentCategory->m_tnornotifInfoheader.m_cnotificationname : NULL);
- // LCOV_EXCL_STOP
- }
- g_objmutextimerdata.Unlock();
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "FrameworkunifiedGetMsgDataOfSize failed while retrieving"
- "immediate persistence notfn data. Status:0x%x ", l_estatus);
- // LCOV_EXCL_STOP
- }
-
- delete[] l_pui32ReceivedData;
- l_pui32ReceivedData = NULL;
- } else {
- // LCOV_EXCL_START 5: new's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to allocate data. Can't persist, errno=%d", errno);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 200: l_ui32ReceivedDataLength is bigger than sizeof(TImmediatePersistenceChangeCategory)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldBuf;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid data length received %d. Can't persist.", l_ui32ReceivedDataLength);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid param, hthread is NULL");
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-/////////////////////////////
-/// Class: CTimerHelper
-/////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CTimerHelper
-/// Constructor of CTimerHelper class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CTimerHelper::CTimerHelper() {
- static UI_32 l_uiTimerCounter = PROTOCOL_FRAMEWORKUNIFIED_BASE_CMD;
- l_uiTimerCounter++;
- m_uiCmdId = l_uiTimerCounter;
- m_pui8HeaderAndData = NULL;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CTimerHelper
-/// Destructor of CTimerHelper class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CTimerHelper::~CTimerHelper() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_pui8HeaderAndData) {
- delete[] m_pui8HeaderAndData;
- m_pui8HeaderAndData = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetCmdId
-/// Returns id for timer
-////////////////////////////////////////////////////////////////////////////////////////////////////
-UI_32 CTimerHelper::GetCmdId() {
- return m_uiCmdId;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// OnTimeOut
-/// This function writes the corresponding data in NOR when timer expires.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CTimerHelper::OnTimeOut(HANDLE hthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- g_objmutextimerdata.ReadLock();
- if (NULL != m_pui8HeaderAndData) { // LCOV_EXCL_BR_LINE 200: m_pui8HeaderAndData can't be null
- TNorPersistenceNotifInfoHeader *l_ptImmediateNotfnHeader =
- static_cast<TNorPersistenceNotifInfoHeader *>(static_cast<PVOID>(m_pui8HeaderAndData));
- PUI_8 l_pui8Data = m_pui8HeaderAndData + sizeof(TNorPersistenceNotifInfoHeader);
- HANDLE l_hReceiverMq = McOpenSender(l_ptImmediateNotfnHeader->m_cpublishername);
-
- // write data to emmc
- l_estatus = SynchronousWritePersistentData(l_ptImmediateNotfnHeader->m_cpublishername,
- l_ptImmediateNotfnHeader->m_cnotificationname,
- static_cast<PVOID>(l_pui8Data),
- l_ptImmediateNotfnHeader->m_uimsgsize,
- l_ptImmediateNotfnHeader->m_uidelay,
- l_ptImmediateNotfnHeader->m_uimaxmsglength,
- l_ptImmediateNotfnHeader->m_epersistcategory);
-
- // update corresponding application about data written status.
- if (NULL != l_hReceiverMq) { // LCOV_EXCL_BR_LINE 5: NSFW error case
- NC_ImmediateWriteAck l_tWriteAck = {};
- std::strncpy(l_tWriteAck.notificationName, l_ptImmediateNotfnHeader->m_cnotificationname,
- sizeof(l_tWriteAck.notificationName) - 1);
- l_tWriteAck.eStatus = l_estatus;
-
- if (eFrameworkunifiedStatusOK != (l_estatus = McSend(l_hReceiverMq, AppName, NPS_IMMEDIATE_WRITE_ACK, sizeof(l_tWriteAck), // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- &l_tWriteAck))) {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error Sending NPS_IMMEDIATE_WRITE_ACK to %s for %s, Status: %d",
- l_ptImmediateNotfnHeader->m_cpublishername != 0 ? l_ptImmediateNotfnHeader->m_cpublishername : NULL,
- l_ptImmediateNotfnHeader->m_cnotificationname != 0 ?
- l_ptImmediateNotfnHeader->m_cnotificationname : NULL,
- l_estatus);
- // LCOV_EXCL_STOP
- }
- McClose(l_hReceiverMq);
- l_hReceiverMq = NULL;
- } else {
- // LCOV_EXCL_START 5: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error creating sender handle for service %s, Notification name %s Write Status: %d",
- l_ptImmediateNotfnHeader->m_cpublishername != 0 ? l_ptImmediateNotfnHeader->m_cpublishername : NULL,
- l_ptImmediateNotfnHeader->m_cnotificationname != 0 ?
- l_ptImmediateNotfnHeader->m_cnotificationname : NULL,
- l_estatus);
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 200: m_pui8HeaderAndData can't be null
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Not writing immediate persistence data. Data is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // LCOV_EXCL_STOP
- }
- g_objmutextimerdata.Unlock();
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-/// EOF
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_notification.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_notification.cpp
deleted file mode 100755
index 8e2bb2d..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_notification.cpp
+++ /dev/null
@@ -1,485 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of CNotification class.
-/// It define functionalities common to all types of notification.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/ns_message_center_if.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <utility>
-#include <iostream>
-#include <string>
-#include <native_service/ns_mc_system_info.h>
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_handlelist.h"
-#include "ns_npp_notification.h"
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CNotification
-/// Constructor of CNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotification::CNotification() { // LCOV_EXCL_START 8: dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_cNotificationName = "";
- m_uiMaxMsgSize = 0;
- m_ePersistentType = eFrameworkunifiedUnknown;
-
- m_cServiceName = "";
-
- m_pmSubscribersList = NULL;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CNotification
-/// Constructor of CNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotification::CNotification(const std::string &f_cnotificationname,
- const UI_32 f_uimaxmsgsize) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_cNotificationName = "";
- m_uiMaxMsgSize = 0;
- m_ePersistentType = eFrameworkunifiedUnknown;
- m_pmSubscribersList = NULL;
-
- if (!f_cnotificationname.empty()) { // LCOV_EXCL_BR_LINE 200: f_cnotificationname can't be empty
- m_cNotificationName = f_cnotificationname;
- m_uiMaxMsgSize = f_uimaxmsgsize;
-// m_ePersistentType = eFrameworkunifiedUnknown;
-
- m_cServiceName = "";
-
- m_pmSubscribersList = new(std::nothrow) NotifReceiver_Type(); // LCOV_EXCL_BR_LINE 11:unexpected branch
- } else {
- // LCOV_EXCL_START 200: f_cnotificationname can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Notification String is Empty");
-
- CNotification();
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CNotification
-/// Destructor of CNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotification::~CNotification() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // iterator of CNotificationReceiver map
- NotifReceiver_Iterator_Type l_itNotifReceiver;
-
- CNotificationReceiver *l_pNotificationReceiver = NULL;
-
- if (NULL != m_pmSubscribersList) { // LCOV_EXCL_BR_LINE 6: m_pmSubscribersList can't be NULL
- if (!m_pmSubscribersList->empty()) {
- for (l_itNotifReceiver = m_pmSubscribersList->begin();
- l_itNotifReceiver != m_pmSubscribersList->end();
- l_itNotifReceiver++) {
- l_pNotificationReceiver = (*l_itNotifReceiver).second;
-
- if (NULL != l_pNotificationReceiver) { // LCOV_EXCL_BR_LINE 6: l_pNotificationReceiver can't be NULL
- // NOTE: Uncomment following code when implementation of the function RemoveHandleFromList
- // is available. To find the reason why it is not implemented, see the function definition.
- // CHandleList *l_hHandleList = CHandleList::GetHandleList();
- // l_hHandleList->RemoveHandleFromList((*l_itNotifReceiver).first);
-
- delete l_pNotificationReceiver; // LCOV_EXCL_BR_LINE 11: unexpected branch
- l_pNotificationReceiver = NULL;
- }
- }
-
- // clear the map
- m_pmSubscribersList->clear();
- }
-
- delete m_pmSubscribersList; // LCOV_EXCL_BR_LINE 11: unexpected branch
- m_pmSubscribersList = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// AddEventReciever
-/// This function adds the name of the application to receiver list of particular notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotification::AddEventReciever(const std::string &f_csubscribername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (!f_csubscribername.empty()) { // LCOV_EXCL_BR_LINE 6: f_csubscribername can't be empty
- l_estatus = AddReceiverInMap(f_csubscribername);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam; // LCOV_EXCL_LINE 6: f_csubscribername can't be empty
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Publish
-/// This function publishes the notification to subscribed clients.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotification::Publish(const std::string &f_cservicename,
- PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusFail;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// DeleteEventReciever
-/// This function deletes the name of application from receivers list.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotification::DeleteEventReciever(const std::string &f_csubscribername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // iterator of CNotificationReceiver map
- NotifReceiver_Iterator_Type l_iterator;
-
- CNotificationReceiver *l_pNotificationReceiver = NULL;
-
- if (!f_csubscribername.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_csubscribername can't be empty
- l_iterator = m_pmSubscribersList->find(f_csubscribername);
-
-
- if (l_iterator != m_pmSubscribersList->end()) {
- l_pNotificationReceiver = (*l_iterator).second;
-
- if (NULL != l_pNotificationReceiver) { // LCOV_EXCL_BR_LINE 6: l_pNotificationReceiver can't be NULL
- // NOTE: Uncomment following code when implementation of the function RemoveHandleFromList
- // is available. To find the reason why it is not implemented, see the function definition.
- // CHandleList *l_hHandleList = CHandleList::GetHandleList();
- // l_hHandleList->RemoveHandleFromList((*l_iterator).first);
-
- delete l_pNotificationReceiver; // LCOV_EXCL_BR_LINE 11: unexpected branch
- l_pNotificationReceiver = NULL;
- }
-
- m_pmSubscribersList->erase(l_iterator);
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Subscriber successfully deleted"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Invalid Iterator");
- }
- } else {
- // LCOV_EXCL_START 6: double check, f_csubscribername can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Subscriber Name String is Empty");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetNewSubscribersList
-/// This function sets the subscribers list of notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotification::SetNewSubscribersList(CNotification *f_pnotification) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // iterator of CNotificationReceiver map
- NotifReceiver_Iterator_Type l_itNotifReceiver;
-
- std::string l_cSubscriberName;
-
- if (NULL != f_pnotification && NULL != f_pnotification->m_pmSubscribersList) { // LCOV_EXCL_BR_LINE 6: f_pnotification and f_pnotification->m_pmSubscribersList can't be empty // NOLINT[whitespace/line_length]
- if (!f_pnotification->m_pmSubscribersList->empty()) {
- for (l_itNotifReceiver = f_pnotification->m_pmSubscribersList->begin();
- l_itNotifReceiver != f_pnotification->m_pmSubscribersList->end();
- l_itNotifReceiver++) {
- l_cSubscriberName = (*l_itNotifReceiver).first;
- AddReceiverInMap(l_cSubscriberName); // LCOV_EXCL_BR_LINE 11: unexpected branch
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Subscriber List Empty");
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 6: f_pnotification and f_pnotification->m_pmSubscribersList can't be empty // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetEventPublisher
-/// This function set the publisher name to current received service name
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotification::SetEventPublisher(const std::string &f_cservicename) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (!f_cservicename.empty()) {
- m_cServiceName = f_cservicename;
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Service successfully set"); // LCOV_EXCL_BR_LINE 15: marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Service Name String is Empty");
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ResetEventPublisher
-/// This function resets the publisher name
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotification::ResetEventPublisher(const std::string &f_cservicename) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (f_cservicename.empty()) { // LCOV_EXCL_BR_LINE 6: f_cservicename can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam; // LCOV_EXCL_LINE 6: f_cservicename can't be empty
- } else {
- if (0 == m_cServiceName.compare(f_cservicename)) {
- m_cServiceName = "";
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Service successfully reset"); // LCOV_EXCL_BR_LINE 15: marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Service Name Not Registered"); // LCOV_EXCL_BR_LINE 15: marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-EFrameworkunifiedStatus CNotification::AddReceiverInMap(const std::string &f_csubscribername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // Message Queue Handle for passsing messages
- HANDLE l_hMsgSenQueHandle = NULL;
-
- // Pointer to class CNotificationReceiver
- CNotificationReceiver *l_pCNotificationReceiver = NULL;
-
- // Iterator for Notification Receiver map
- NotifReceiver_Iterator_Type l_itrNotifReceiver;
-
- if (!f_csubscribername.empty()) { // LCOV_EXCL_BR_LINE 6: f_csubscribername can't be empty
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Message Queue Handle Set"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- CHandleList *l_hHandleList = CHandleList::GetHandleList();
-
- l_hMsgSenQueHandle = l_hHandleList->GetSubscriberMqHandle(f_csubscribername); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
-
- // If handle not found
- if (NULL == l_hMsgSenQueHandle) {
- // Open a handle for sending messages to another message queue
- l_hMsgSenQueHandle = McOpenSender(f_csubscribername.c_str());
- l_hHandleList->AddHandleInList(f_csubscribername, l_hMsgSenQueHandle); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
- }
-
- if (NULL != m_pmSubscribersList) { // LCOV_EXCL_BR_LINE 6: m_pmSubscribersList can't be NULL
- l_pCNotificationReceiver = new(std::nothrow) CNotificationReceiver(); // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- if (NULL != l_pCNotificationReceiver) { // LCOV_EXCL_BR_LINE 5: l_pCNotificationReceiver can't be NULL
- l_pCNotificationReceiver->m_MsgQHandle = l_hMsgSenQueHandle;
-
- // Insert Subscriber name and associated message queue handle in the map
- m_pmSubscribersList->insert(make_pair(f_csubscribername, l_pCNotificationReceiver));
- } else {
- // LCOV_EXCL_START 5: l_pCNotificationReceiver can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pCNotificationReceiver is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: m_pmSubscribersList can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "m_pmSubscribersList is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- if (eFrameworkunifiedStatusNullPointer == l_estatus) {
- // close the queue handle
- // NOTE: Uncomment following code when implementation of the function RemoveHandleFromList
- // is available. To find the reason why it is not implemented, see the function definition.
- // CHandleList *l_hHandleList = CHandleList::GetHandleList();
- // l_hHandleList->RemoveHandleFromList(f_csubscribername);
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam; // LCOV_EXCL_LINE 6: f_csubscribername can't be empty
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// PublishData
-/// This function publishes the notification to client.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotification::PublishData(HANDLE f_hmsgqhandle,
- const PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != f_hmsgqhandle) { // LCOV_EXCL_BR_LINE 6: f_hmsgqhandle can't be NULL
- // Notification Name
- PSTR l_cNotificationName = const_cast<PSTR>(m_cNotificationName.c_str());
-
- if (eFrameworkunifiedStatusOK != (l_estatus = McSendWithSysInfo(f_hmsgqhandle, AppName, NPS_NOTIFY_EV_REQ, l_cNotificationName, f_uimsgsize, f_pmessage, 0))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "PublishData failed while McSend for Notification %s, Error Status: 0x%x",
- l_cNotificationName, l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: f_hmsgqhandle can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "MsgQ Handle NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// IsServiceRegistered
-/// This function checks whether the notification is registered with any service or not.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CNotification::IsServiceRegistered() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (!m_cServiceName.empty()) {
- return TRUE;
- } else {
- return FALSE;
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// IsSubscribersListEmpty
-/// This function is used to check whether any service is subscribed to notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CNotification::IsSubscribersListEmpty() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_pmSubscribersList) { // LCOV_EXCL_BR_LINE 6: m_pmSubscribersList can't be NULL
- if (m_pmSubscribersList->empty()) {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetNotificationName
-/// This function is used to get the notification name.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-std::string CNotification::GetNotificationName() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- return m_cNotificationName;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPublisherName
-/// This function is used to get the publisher name of notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-std::string CNotification::GetPublisherName() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- return m_cServiceName;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPersistenceType
-/// This function is used to get the type of notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedNotificationType CNotification::GetNotificationType() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- return m_ePersistentType;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetMaxMessageSize
-/// This function is used to get the max size of data of notification message.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-UI_32 CNotification::GetMaxMessageSize() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- return m_uiMaxMsgSize;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ResetMaxMessageSize
-/// This function reset the max size of data that can be published with notification.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotification::ResetMaxMessageSize(const UI_32 f_uilength) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_uiMaxMsgSize = f_uilength;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-#ifdef NPP_PROFILEINFO_ENABLE
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetSubscriberList
-/// Returns the list of subscribers subscribed to notification
-////////////////////////////////////////////////////////////////////////////////////////////////
-NotifReceiver_Type *CNotification::GetSubscriberList() {
- return m_pmSubscribersList;
-}
-
-#endif
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_notification_manager.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_notification_manager.cpp
deleted file mode 100755
index 73ce838..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_notification_manager.cpp
+++ /dev/null
@@ -1,1558 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of singleton class CNotificationManager.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include <native_service/ns_np_service.h>
-#include <native_service/ns_message_center_if.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <algorithm>
-#include <utility>
-#include <string>
-#include <vector>
-#include "ns_npp_types.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_threads.h"
-#include "ns_npp_notification.h"
-#include "ns_npp_persistent_data.h"
-#include "ns_npp_state_notification.h"
-#include "ns_npp_regular_notification.h"
-#include "ns_npp_notification_manager.h"
-#include "ns_npp_state_persistence_notification.h"
-#include "ns_npp_state_nor_persistence_notification.h"
-#include "ns_npp_state_persistence_user_notification.h"
-
-#ifdef NPP_PROFILEINFO_ENABLE
-#include <sstream>
-#endif
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CNotificationManager
-/// Constructor of CNotificationManager class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotificationManager::CNotificationManager() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_pmNotificationList = new(std::nothrow) Notification_Type(); // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- m_pvPersistentList = new(std::nothrow) std::vector<std::string>(); // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- m_pvUserPersistentList = new(std::nothrow) std::vector<std::string>(); // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- if (NULL == CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread) { // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
- CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread =
- McOpenSender(NS_NPP_IMMEDIATE_PERSIST_THREAD_NAME);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CNotificationManager
-/// Destructor of CNotificationManager class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotificationManager::~CNotificationManager() { // LCOV_EXCL_START 14: Resident process, global instance not released
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // iterator to find notification from map of notifications
- Notification_Iterator_Type l_itNotification;
-
- CNotification *l_pNotification = NULL;
-
- // delete the members in map of Notification
- if (NULL != m_pmNotificationList) {
- if (!m_pmNotificationList->empty()) {
- for (l_itNotification = m_pmNotificationList->begin();
- l_itNotification != m_pmNotificationList->end();
- l_itNotification++) {
- l_pNotification = (*l_itNotification).second;
-
- if (NULL != l_pNotification) {
- delete l_pNotification;
- l_pNotification = NULL;
- }
- }
-
- // clear the map
- m_pmNotificationList->clear();
- }
-
- delete m_pmNotificationList;
- m_pmNotificationList = NULL;
- }
-
- // delete the members in vector of persistent notification
- if (NULL != m_pvPersistentList) {
- if (!m_pvPersistentList->empty()) {
- // clear the vector
- m_pvPersistentList->clear();
- }
-
- delete m_pvPersistentList;
- m_pvPersistentList = NULL;
- }
-
- // delete the members in vector of user persistent notification
- if (NULL != m_pvUserPersistentList) {
- if (!m_pvUserPersistentList->empty()) {
- // clear the vector
- m_pvUserPersistentList->clear();
- }
-
- delete m_pvUserPersistentList;
- m_pvUserPersistentList = NULL;
- }
-
- if (NULL != CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread) {
- McClose(CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread);
- CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CreateNotificationObject
-/// This function is used to get notification object from map. If doesn't exists, it create new
-/// object as per type of notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotification *CNotificationManager::CreateNotificationObject(const std::string &f_cnotificationname,
- const UI_32 f_uimsglength,
- const EFrameworkunifiedNotificationType f_enotificationtype,
- const UI_32 f_uidelay) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // pointer of notification object
- CNotification *l_pNotification = NULL;
-
- // iterator to find notification from map of CNotification
- Notification_Iterator_Type l_itNotification;
-
- if (NULL == m_pmNotificationList || NULL == m_pvPersistentList || NULL == m_pvUserPersistentList) { // LCOV_EXCL_START 6: double check, m_pmNotificationList, m_pvPersistentList, m_pvUserPersistentList can't be NULL // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "map/vector object is NULL"); // LCOV_EXCL_LINE 6: m_pmNotificationList, m_pvPersistentList, m_pvUserPersistentList can't be NULL // NOLINT[whitespace/line_length]
- return NULL;
- }
- // LCOV_EXCL_STOP
-
- // check if notification already exists
- l_itNotification = m_pmNotificationList->find(f_cnotificationname);
-
- // if exists remove previous entry
- if (m_pmNotificationList->end() != l_itNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "Removing previous entry of notification %s from map", f_cnotificationname.c_str());
- m_pmNotificationList->erase(l_itNotification);
- }
-
- switch (f_enotificationtype) {
- // if notification is regular notification
- case eFrameworkunifiedNotificationVar: {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "Regular Notification :: %s", f_cnotificationname.c_str());
- l_pNotification = new(std::nothrow) CRegularNotification(f_cnotificationname,
- f_uimsglength); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
- break;
- }
-
- // if notification is state notification
- case eFrameworkunifiedStateVar: {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "State Notification :: %s", f_cnotificationname.c_str());
- l_pNotification = new(std::nothrow) CStateNotification(f_cnotificationname,
- f_uimsglength); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
- break;
- }
-
- // if notification is persistence notification
- case eFrameworkunifiedPersistedStateVar: {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "PersistedState Notification :: %s", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- l_pNotification = new(std::nothrow) CStatePersistenceNotification(f_cnotificationname,
- f_uimsglength); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
-
- if (NULL != l_pNotification) { // LCOV_EXCL_BR_LINE 5: It's impossible to mock new() function
- // insert notification in persistent notification vector
- m_pvPersistentList->push_back(f_cnotificationname);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Memory not allocated"); // LCOV_EXCL_LINE 5: It's impossible to mock new() function // NOLINT[whitespace/line_length]
- }
-
- break;
- }
-
- // if notification is user persistence notification
- case eFrameworkunifiedPersistedStateUserVar: {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "PersistedStateUser Notification :: %s", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- l_pNotification = new(std::nothrow) CStatePersistenceUserNotification(f_cnotificationname,
- f_uimsglength); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
-
- if (NULL != l_pNotification) { // LCOV_EXCL_BR_LINE 5: It's impossible to mock new() function
- // insert notification in user persistent notification vector
- m_pvUserPersistentList->push_back(f_cnotificationname);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "NULL pointer error"); // LCOV_EXCL_LINE 5: It's impossible to mock new() function // NOLINT[whitespace/line_length]
- }
-
- break;
- }
-
- // if notification is immediate persistence notification
- case eFrameworkunifiedImmediatePersistedStateVar: {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Immediate PersistedState Notification :: %s", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- l_pNotification = new(std::nothrow) CStateNorPersistenceNotification(f_cnotificationname,
- f_uimsglength,
- f_uidelay); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
- break;
- }
-
- default:
- break;
- }
-
- if (NULL != l_pNotification) {
- // insert notification in notification map
- m_pmNotificationList->insert(make_pair(f_cnotificationname, l_pNotification));
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification object creation failed for %s.", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pNotification;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SearchNotification
-/// This function is used to search whether notification object is present in map or not.
-/// If present it sends the reference.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotification *CNotificationManager::SearchNotification(const std::string &f_cnotificationname) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
-
- // iterator to find notification from map of notifications
- Notification_Iterator_Type l_itNotification;
-
- if (NULL == m_pmNotificationList || f_cnotificationname.empty()) { // LCOV_EXCL_BR_LINE 6: double check, m_pmNotificationList can't be NULL and f_cnotificationname can't be empty // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "map pointer is NULL"); // LCOV_EXCL_LINE 6: m_pmNotificationList can't be NULL and f_cnotificationname can't be empty // NOLINT[whitespace/line_length]
- } else {
- // check if this notification's object present in map
- l_itNotification = m_pmNotificationList->find(f_cnotificationname);
-
- // if notification found in map
- if (m_pmNotificationList->end() != l_itNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Notification found in map :: %s", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- // get the notification object pointer from map
- l_pNotification = (*l_itNotification).second;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "Notification not found :: %s", f_cnotificationname.c_str());
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pNotification;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SearchPersistenceNotification
-/// This function is used to search for the given persistent notification in map.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStateNotification *CNotificationManager::SearchPersistenceNotification(const std::string &f_cnotificationname) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // pointer of notification object
- CNotification *l_pNotification = NULL;
- CStateNotification *l_pStateNotification = NULL;
-
- // search the notification in the map
- l_pNotification = SearchNotification(f_cnotificationname);
-
- if (NULL != l_pNotification) {
- if (eFrameworkunifiedPersistedStateVar == l_pNotification->GetNotificationType() ||
- eFrameworkunifiedPersistedStateUserVar == l_pNotification->GetNotificationType() ||
- eFrameworkunifiedImmediatePersistedStateVar == l_pNotification->GetNotificationType()) {
- l_pStateNotification = static_cast<CStateNotification *>(l_pNotification);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "There is no persistence notification registered with name :: %s",
- f_cnotificationname.c_str());
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pStateNotification;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceServiceOnRegisterEvents
-/// This function creates notification object depending on its type and if already created it adds
-/// the service name to the list in the notification object.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceServiceOnRegisterEvents(const std::string &f_cservicename,
- const std::string &f_cnotificationname,
- const UI_32 f_uimsglength,
- const EFrameworkunifiedNotificationType f_enotificationtype,
- const UI_32 f_uidelay) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
-
- if (f_cservicename.empty() || f_cnotificationname.empty()) {
- l_estatus = eFrameworkunifiedStatusInvldParam;
- } else {
- // get the notification object from map or create new object
- l_pNotification = SearchNotification(f_cnotificationname);
-
- // if new notification is registered
- if (NULL == l_pNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "Create new notification object :: %s", f_cnotificationname.c_str());
-
- // create the new notification object depending on type and insert in map and vector
- l_pNotification = CreateNotificationObject(f_cnotificationname,
- f_uimsglength,
- f_enotificationtype,
- f_uidelay);
-
- if (NULL != l_pNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Set Notification publisher %s for notification %s", f_cservicename.c_str(),
- f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
-
- // set publisher name
- l_estatus = l_pNotification->SetEventPublisher(f_cservicename);
- }
- } else { // if notification object already exists
- EFrameworkunifiedNotificationType l_eNotificationType = l_pNotification->GetNotificationType();
-
- // <<notification type is eFrameworkunifiedUnknown
- // if some service had already subscribed to the notification before registering it.>>
- if (eFrameworkunifiedUnknown == l_eNotificationType) {
- // creates new notification object depending on the type and insert it in notification map
- l_estatus = ChangeNotificationType(l_pNotification, f_cservicename, f_cnotificationname, f_uimsglength,
- f_enotificationtype, f_uidelay);
-
- // delete the old notification object
- delete l_pNotification; // LCOV_EXCL_BR_LINE 11: unexpected branch
- l_pNotification = NULL;
- } else { // notification is already registered by some service
- // update the notification property, if re-registered by the same publisher
- if (f_cservicename == l_pNotification->GetPublisherName() || // if re-register by service
- "" == l_pNotification->GetPublisherName()) { // if previously unregistered by service
- // if type is same just update the length of notification data
- if (l_eNotificationType == f_enotificationtype) {
- if (l_pNotification->GetMaxMessageSize() != f_uimsglength) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Updating max size of notification %s to %d from %d", f_cnotificationname.c_str(),
- f_uimsglength, l_pNotification->GetMaxMessageSize());
- l_estatus = l_pNotification->ResetMaxMessageSize(f_uimsglength);
- }
-
- if ("" == l_pNotification->GetPublisherName()) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Updating publisher name of notification %s to %s from %s", f_cservicename.c_str(),
- f_cnotificationname.c_str(), l_pNotification->GetPublisherName().c_str());
- l_pNotification->SetEventPublisher(f_cservicename);
- }
- } else if (eFrameworkunifiedImmediatePersistedStateVar != l_eNotificationType &&
- eFrameworkunifiedImmediatePersistedStateVar != f_enotificationtype) {
- // else create new notification object depending on the type and delete the old one
- // note: do not change immediate notification type
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Changing type of notfn %s from %d to %d", f_cnotificationname.c_str(),
- l_eNotificationType, f_enotificationtype);
-
- std::vector<std::string>::iterator l_itNotificationName;
-
- // remove the notification name from the persistent list of notification(if any)
- if (eFrameworkunifiedPersistedStateVar == l_eNotificationType) {
- l_itNotificationName = find(m_pvPersistentList->begin(), m_pvPersistentList->end(), f_cnotificationname);
-
- if (m_pvPersistentList->end() != l_itNotificationName) {
- m_pvPersistentList->erase(l_itNotificationName);
- }
- } else if (eFrameworkunifiedPersistedStateUserVar == l_eNotificationType) {
- l_itNotificationName = find(m_pvUserPersistentList->begin(),
- m_pvUserPersistentList->end(),
- f_cnotificationname);
-
- if (m_pvUserPersistentList->end() != l_itNotificationName) {
- m_pvUserPersistentList->erase(l_itNotificationName);
- }
- } else {
- // do nothing
- }
-
- // creates new notification object depending on the new type and insert it in map and delete the old one
- l_estatus = ChangeNotificationType(l_pNotification, f_cservicename, f_cnotificationname, f_uimsglength,
- f_enotificationtype, f_uidelay);
-
- // delete the old notification object
- delete l_pNotification;
- l_pNotification = NULL;
- } else {
- // do nothing
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notfn: %s already registered by %s, skipping register request by %s",
- f_cnotificationname.c_str(), l_pNotification->GetPublisherName().c_str(), f_cservicename.c_str());
-
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ChangeNotificationType
-/// This function creates new notification object depending on the type and replaces the old one.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::ChangeNotificationType(CNotification *f_pnotification,
- const std::string &f_cservicename,
- const std::string &f_cnotificationname,
- const UI_32 f_uimsglength,
- const EFrameworkunifiedNotificationType f_enotificationtype,
- const UI_32 f_uidelay) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNewNotification = NULL;
-
- if (NULL != f_pnotification) { // LCOV_EXCL_BR_LINE 6: f_pnotification can't be NULL
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Create New Notification :: %s", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- // create new notification object as per notification type
- l_pNewNotification = CreateNotificationObject(f_cnotificationname, f_uimsglength, f_enotificationtype, f_uidelay);
-
- if (NULL != l_pNewNotification) {
- l_estatus = l_pNewNotification->SetEventPublisher(f_cservicename);
-
- // assign subscribers list to newly created notification
- l_pNewNotification->SetNewSubscribersList(f_pnotification);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error creating notification object for notification:%s",
- f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 6: f_pnotification can't be NULL
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceServiceOnUnRegisterEvents
-/// This function removes the name of the service from the notification object.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceServiceOnUnRegisterEvents(const std::string &f_cservicename,
- const std::string &f_cnotificationname) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
- std::vector<std::string> *l_pvPersistentList = NULL;
-
- // iterator to find notification from map of notifications
- Notification_Iterator_Type l_itNotification;
-
- if (f_cservicename.empty() || f_cnotificationname.empty()) {
- l_estatus = eFrameworkunifiedStatusInvldParam;
- } else {
- // check if this notification's object present in map
- l_itNotification = m_pmNotificationList->find(f_cnotificationname);
-
- // if notification found in map
- if (m_pmNotificationList->end() != l_itNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Notification found in map"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- // get the notification object pointer from map
- l_pNotification = (*l_itNotification).second;
-
- if (NULL != l_pNotification) { // LCOV_EXCL_BR_LINE 6: f_pnotification can't be NULL
- if (eFrameworkunifiedPersistedStateUserVar == l_pNotification->GetNotificationType()) {
- l_pvPersistentList = m_pvUserPersistentList;
- } else if (eFrameworkunifiedPersistedStateVar == l_pNotification->GetNotificationType()) {
- l_pvPersistentList = m_pvPersistentList;
- }
-
- // reset the publisher name
- l_estatus = l_pNotification->ResetEventPublisher(f_cservicename);
-
- if (eFrameworkunifiedStatusOK == l_estatus) {
- // if no other service is subscribed to this notification and no service is registered
- // to this notification remove the notification object from map
- if (!l_pNotification->IsServiceRegistered() &&
- l_pNotification->IsSubscribersListEmpty()) {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Deleting Notification Object"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- // delete the notification
- delete l_pNotification; // LCOV_EXCL_BR_LINE 11: unexpected branch
- l_pNotification = NULL;
-
- m_pmNotificationList->erase(l_itNotification);
-
- if (l_pvPersistentList) {
- // find the notification in vector
- std::vector<std::string>::iterator l_itNotificationName;
-
- l_itNotificationName = find(l_pvPersistentList->begin(),
- l_pvPersistentList->end(),
- f_cnotificationname);
-
- if (l_pvPersistentList->end() != l_itNotificationName) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Deleting Notification name from vector");
- l_pvPersistentList->erase(l_itNotificationName);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Persistent list empty"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Services still registered or subscriber list empty"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification %s is not registered by service %s",
- f_cnotificationname.c_str(), f_cservicename.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 6: f_pnotification can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification %s not registered", f_cnotificationname.c_str());
-
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification %s not found.", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceServiceOnPublishEvent
-/// This function stores the published data in the notification object in case of state and
-/// persistent notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceServiceOnPublishEvent(const std::string &f_cservicename,
- const std::string &f_cnotificationname,
- PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
-
- if (f_cservicename.empty() || f_cnotificationname.empty()) { // LCOV_EXCL_BR_LINE 6: f_cservicename and f_cnotificationname can't be empty // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam; // LCOV_EXCL_LINE 6: f_cservicename and f_cnotificationname can't be empty
- } else {
- // get the notification object from map
- l_pNotification = SearchNotification(f_cnotificationname);
-
- if (NULL != l_pNotification) {
- // publish the notification
- if (eFrameworkunifiedStatusOK != (l_estatus = l_pNotification->Publish(f_cservicename,
- f_pmessage,
- f_uimsgsize))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error publishing notification %s published by %s, status: %d",
- f_cnotificationname.c_str(), f_cservicename.c_str(), l_estatus); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification not registered"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
- }
-
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceServiceOnSubscribeToEvent
-/// This function adds the name of the application to subscribers list in notification object.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceServiceOnSubscribeToEvent(const std::string &f_csubscribername,
- const std::string &f_cnotificationname) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // iterator to find notification from map of notifications
- Notification_Iterator_Type l_itNotification;
-
- CNotification *l_pNotification = NULL;
-
- if (f_cnotificationname.empty() || f_csubscribername.empty()) {
- l_estatus = eFrameworkunifiedStatusInvldParam;
- } else if (NULL == m_pmNotificationList) { // LCOV_EXCL_BR_LINE 6 m_pmNotificationList can't be NULL
- // LCOV_EXCL_START 6: m_pmNotificationList can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "map pointer is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- } else {
- // get the notification object from map or create new object
- l_pNotification = SearchNotification(f_cnotificationname);
-
- if (NULL == l_pNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "CNotification object created for %s", f_cnotificationname.c_str());
-
- l_pNotification = new(std::nothrow) CNotification(f_cnotificationname, 0); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
-
- m_pmNotificationList->insert(make_pair(f_cnotificationname, l_pNotification));
- }
-
- if (NULL != l_pNotification) { // LCOV_EXCL_BR_LINE 6: double check, l_pNotification can't be NULL
- // add subscribers name in subscribers list of notification
- l_estatus = l_pNotification->AddEventReciever(f_csubscribername);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Memory not allocated for l_pNotification"); // LCOV_EXCL_LINE 6: double check, l_pNotification can't be NULL // NOLINT[whitespace/line_length]
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceServiceOnUnSubscribeFromEvent
-/// This function removes the name of the application from the subscribers list in notification object.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceServiceOnUnSubscribeFromEvent(const std::string &f_csubscribername,
- const std::string &f_cnotificationname) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
-
- // iterator to find notification from map of notifications
- Notification_Iterator_Type l_itNotificationType;
-
- std::vector<std::string> *l_pvPersistentList = NULL;
-
- if (f_cnotificationname.empty() || f_csubscribername.empty()) {
- l_estatus = eFrameworkunifiedStatusInvldParam;
- } else if (NULL == m_pmNotificationList) { // LCOV_EXCL_BR_LINE 6: m_pmNotificationList can't be NULL
- // LCOV_EXCL_START 6: m_pmNotificationList can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification list pointer is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- } else {
- // check if this notification's object present in map
- l_itNotificationType = m_pmNotificationList->find(f_cnotificationname);
-
- // if notification found in map
- if (m_pmNotificationList->end() != l_itNotificationType) {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Notification %s found in map", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- l_pNotification = (*l_itNotificationType).second;
-
- if (NULL != l_pNotification) { // LCOV_EXCL_BR_LINE 6: l_pNotification can't be NULL
- if (eFrameworkunifiedPersistedStateUserVar == l_pNotification->GetNotificationType()) {
- l_pvPersistentList = m_pvUserPersistentList;
- } else if (eFrameworkunifiedPersistedStateVar == l_pNotification->GetNotificationType()) {
- l_pvPersistentList = m_pvPersistentList;
- }
-
- // removes the subscribers name from subscribers list of notification
- l_estatus = l_pNotification->DeleteEventReciever(f_csubscribername);
-
- // if no other service is subscribed to this notification and no service is registered
- // to this notification remove the notification object from map
- if (!l_pNotification->IsServiceRegistered() &&
- l_pNotification->IsSubscribersListEmpty()) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Deleting Notification Object from map"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- // delete notification object from map
- delete l_pNotification; // LCOV_EXCL_BR_LINE 11: unexpected branch
- l_pNotification = NULL;
-
- m_pmNotificationList->erase(l_itNotificationType);
-
- if (l_pvPersistentList) {
- // find notification in vector
- std::vector<std::string>::iterator l_itNotificationName;
- l_itNotificationName = find(l_pvPersistentList->begin(),
- l_pvPersistentList->end(),
- f_cnotificationname);
-
- if (l_pvPersistentList->end() != l_itNotificationName) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Deleting Notification from vector"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- l_pvPersistentList->erase(l_itNotificationName);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Persistent list Empty."); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotification can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Notification %s not registered", f_cnotificationname.c_str());
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Notification %s not found.", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NPGetPersistentNotificationData
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NPGetPersistentNotificationData(const std::string &f_cnotificationname,
- PVOID f_pnotificationdata,
- const UI_32 f_uidatasize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
- CStateNotification *l_pStateNotification = NULL;
- const CPersistentData *l_pPersistentData = NULL;
-
- if (f_cnotificationname.empty() || NULL == f_pnotificationdata) { // LCOV_EXCL_BR_LINE 6: f_pnotificationdata can't be NULL and f_cnotificationname can't be empty // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam; // LCOV_EXCL_LINE 6: f_pnotificationdata can't be NULL and f_cnotificationname can't be empty // NOLINT[whitespace/line_length]
- } else {
- l_pNotification = SearchNotification(f_cnotificationname);
-
- if (NULL != l_pNotification) { // LCOV_EXCL_BR_LINE 200: f_cnotificationname must be NTFY_NPPService_UserChange, NTFY_NPPService_UserChange must be registered in FrameworkunifiedOnEntry() by itself. // NOLINT[whitespace/line_length]
- const EFrameworkunifiedNotificationType l_eNotificationType = l_pNotification->GetNotificationType();
-
- if (eFrameworkunifiedStateVar == l_eNotificationType ||
- eFrameworkunifiedPersistedStateVar == l_eNotificationType ||
- eFrameworkunifiedPersistedStateUserVar == l_eNotificationType ||
- eFrameworkunifiedImmediatePersistedStateVar == l_eNotificationType) { // LCOV_EXCL_BR_LINE 200: NTFY_NPPService_UserChange's type is eFrameworkunifiedPersistedStateVar. // NOLINT[whitespace/line_length]
- l_pStateNotification = static_cast<CStateNotification *>(l_pNotification);
-
- l_pPersistentData = l_pStateNotification->GetPersistentData();
-
- if (NULL != l_pPersistentData) {
- if (f_uidatasize >= l_pPersistentData->m_uiMsgSize) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Sending Data Size %d", l_pPersistentData->m_uiMsgSize);
-
- if (NULL != l_pPersistentData->m_pMessage) {
- std::memcpy(f_pnotificationdata, l_pPersistentData->m_pMessage, l_pPersistentData->m_uiMsgSize);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Notification data is NULL");
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Smaller buffer size %d is received for notification data of size %d", f_uidatasize,
- l_pPersistentData->m_uiMsgSize);
- }
- } else {
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Persistent data object is NULL for notification %s", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 200: NTFY_NPPService_UserChange's type is eFrameworkunifiedPersistedStateVar.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Get notification data failed, Notification %s is registered as type %d",
- f_cnotificationname.c_str(), l_eNotificationType);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 200: f_cnotificationname must be NTFY_NPPService_UserChange, NTFY_NPPService_UserChange must be registered in FrameworkunifiedOnEntry() by itself. // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification %s not found.", f_cnotificationname.c_str());
- // LCOV_EXCL_STOP
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceServiceOnGetPersistentData
-/// This function is used to get the persistent data stored related to notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceServiceOnGetPersistentData(const std::string &f_cnotificationname,
- const std::string &f_creceivername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
- CStateNotification *l_pStateNotification = NULL;
- const CPersistentData *l_pPersistentData = NULL;
-
- if (f_cnotificationname.empty() || f_creceivername.empty()) { // LCOV_EXCL_BR_LINE 6: f_creceivername can't be NULL and f_cnotificationname can't be empty // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: f_creceivername can't be NULL and f_cnotificationname can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- } else {
- // open the receiver message queue
- HANDLE l_hReceiverMq = McOpenSender(f_creceivername.c_str());
-
- if (NULL == l_hReceiverMq) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // catastrophic failure!
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failed to open MessageQ %s ", f_creceivername.c_str());
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- // get the notification object from map or create new object
- l_pNotification = SearchNotification(f_cnotificationname);
-
- if (NULL != l_pNotification) {
- l_pStateNotification = static_cast<CStateNotification *>(l_pNotification);
-
- if (NULL != l_pStateNotification) { // LCOV_EXCL_BR_LINE 5: fail safe for static_cast<CStateNotification *>
- l_pPersistentData = l_pStateNotification->GetPersistentData();
-
- if (NULL != l_pPersistentData) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Sending Data Size %d", l_pPersistentData->m_uiMsgSize);
-
- if (NULL == l_pPersistentData->m_pMessage) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Sending Data is NULL");
- }
-
- // sent the notification data to requester
- l_estatus = McSend(l_hReceiverMq,
- AppName,
- NPS_GET_PERS_DATA_ACK,
- l_pPersistentData->m_uiMsgSize,
- l_pPersistentData->m_pMessage);
- FRAMEWORKUNIFIEDLOG(ZONE_PRD_INFO2, __FUNCTION__, "Persistent data found for notification %s. "
- "Sent NPS_GET_PERS_DATA_ACK to %s. Status: %d."
- , f_cnotificationname.c_str(), f_creceivername.c_str(), l_estatus);
- } else { // In case of failure, we send back a failure ACK
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "No persistent data found for notification %s. "
- , f_cnotificationname.c_str());
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification %s not found", f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- l_estatus = eFrameworkunifiedStatusInvldParam;
- }
- // Close the mq handle
- McClose(l_hReceiverMq);
- l_hReceiverMq = NULL;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceGetPersistentNotificationData
-/// This function is used to get the list of persistent notifications and data associated with it.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceGetPersistentNotificationData(std::vector<CNotificationsToPersist *>
- *f_pvpersistnotification,
- const EFrameworkunifiedNotificationType f_enotificationtype,
- UI_32 f_uinotificationpersistentservicepersistcategoryflag) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
- CStateNotification *l_pStateNotification = NULL;
- CStatePersistenceNotification *l_pStatePersistenceNotification = NULL;
-
- std::string l_cNotificationName = "";
- CNotificationsToPersist *l_pNotificationsToPersist = NULL;
- const CPersistentData *l_pPData = NULL;
-
- std::vector<std::string> *l_pvPersistentList = NULL;
-
- // iterator for retrieving notifications from map of notifications
- Notification_Iterator_Type l_itNotification;
-
- if (eFrameworkunifiedPersistedStateUserVar == f_enotificationtype) {
- l_pvPersistentList = m_pvUserPersistentList;
- } else if (eFrameworkunifiedPersistedStateVar == f_enotificationtype) { // LCOV_EXCL_BR_LINE 6: f_enotificationtype must be eFrameworkunifiedPersistedStateUserVar or eFrameworkunifiedPersistedStateVar // NOLINT[whitespace/line_length]
- l_pvPersistentList = m_pvPersistentList;
- }
-
- // copy all the notification data in map to received vector
- if (NULL != f_pvpersistnotification && NULL != l_pvPersistentList) { // LCOV_EXCL_BR_LINE 6: f_pvpersistnotification and l_pvPersistentList can't be null // NOLINT[whitespace/line_length]
- for (UI_32 l_uiCount = 0;
- l_uiCount < l_pvPersistentList->size();
- l_uiCount++) {
- // get the persistent notification name from vector
- l_cNotificationName = l_pvPersistentList->at(l_uiCount);
-
- // search for notification in map
- l_itNotification = m_pmNotificationList->find(l_cNotificationName);
-
- // notification found in map
- if (m_pmNotificationList->end() != l_itNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Persistent Notification: %s", l_cNotificationName.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- // get notification object from map
- l_pNotification = (*l_itNotification).second;
-
- if (NULL != l_pNotification) { // LCOV_EXCL_BR_LINE 6: l_pNotification can't be NULL
- if (eFrameworkunifiedPersistedStateVar == f_enotificationtype) {
- l_pStatePersistenceNotification = static_cast<CStatePersistenceNotification *>(l_pNotification);
-
- // get the notification's default data
- if ((eFrameworkunifiedUserData == l_pStatePersistenceNotification->GetPersistentCategory() &&
- (f_uinotificationpersistentservicepersistcategoryflag & eFrameworkunifiedUserData)) ||
- (eFrameworkunifiedFactoryData == l_pStatePersistenceNotification->GetPersistentCategory() &&
- (f_uinotificationpersistentservicepersistcategoryflag & eFrameworkunifiedFactoryData)) ||
- (eFrameworkunifiedFactoryCustomerData == l_pStatePersistenceNotification->GetPersistentCategory() &&
- (f_uinotificationpersistentservicepersistcategoryflag & eFrameworkunifiedFactoryCustomerData)) ||
- (eFrameworkunifiedDealerData == l_pStatePersistenceNotification->GetPersistentCategory() &&
- (f_uinotificationpersistentservicepersistcategoryflag & eFrameworkunifiedDealerData))) {
- l_pPData = l_pStatePersistenceNotification->GetDefaultPersistentData();
- } else {
- l_pStateNotification = l_pStatePersistenceNotification;
-
- // get the published notification data
- if (l_pStateNotification->IsPublished()) {
- l_pPData = l_pStateNotification->GetPersistentData();
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Notification not published");
- }
- }
- } else {
- l_pStateNotification = static_cast<CStateNotification *>(l_pNotification);
-
- // if not to reset userdata
- if (0 == (f_uinotificationpersistentservicepersistcategoryflag & eFrameworkunifiedUserData)) {
- if (l_pStateNotification->IsPublished()) {
- l_pPData = l_pStateNotification->GetPersistentData();
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Notification not published");
- }
- }
- }
-
- if ((NULL != l_pStateNotification) && (NULL != l_pPData)) {
- l_pNotificationsToPersist = CreateNotificationObjectToPersist(l_pStateNotification, l_pPData); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
-
- // insert the persistent data in map
- f_pvpersistnotification->push_back(l_pNotificationsToPersist); // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- l_pPData = NULL;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "no data is stored in notification %s", l_cNotificationName.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification object is NULL for %s", l_cNotificationName.c_str()); // LCOV_EXCL_LINE 6: l_pNotification can't be NULL // NOLINT[whitespace/line_length]
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Non Persistent Notification: %s", l_cNotificationName.c_str());
- }
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 6: f_pvpersistnotification and l_pvPersistentList can't be null // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CreateNotificationObjectToPersist
-/// Creates the CNotificationsToPersist object from notification object and the persistent data.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotificationsToPersist *CNotificationManager::CreateNotificationObjectToPersist(CStateNotification
- *f_pStateNotification,
- const CPersistentData *f_pdata) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotificationsToPersist *l_pNotificationsToPersist = NULL;
- CPersistentData *l_pData = NULL;
-
- if (NULL != f_pStateNotification && NULL != f_pdata) { // LCOV_EXCL_BR_LINE 6: f_pStateNotification and f_pdata can't be NULL // NOLINT[whitespace/line_length]
- if (f_pStateNotification->GetMaxMessageSize() >= f_pdata->m_uiMsgSize) {
- l_pNotificationsToPersist = new(std::nothrow) CNotificationsToPersist(); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
-
- if (NULL != l_pNotificationsToPersist) { // LCOV_EXCL_BR_LINE 5: It's impossible to mock new() function
- l_pNotificationsToPersist->m_pPersistentData = new(std::nothrow) CPersistentData(); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
- l_pData = l_pNotificationsToPersist->m_pPersistentData;
-
- if (NULL != l_pData) { // LCOV_EXCL_BR_LINE 5: It's impossible to mock new() function
- l_pNotificationsToPersist->m_cNotificationName = f_pStateNotification->GetNotificationName();
- l_pNotificationsToPersist->m_uiMaxMsgLength = f_pStateNotification->GetMaxMessageSize();
- l_pNotificationsToPersist->m_ePersistentType = f_pStateNotification->GetNotificationType();
-
- if (eFrameworkunifiedPersistedStateVar == l_pNotificationsToPersist->m_ePersistentType) {
- l_pNotificationsToPersist->m_ePersistCategory = (static_cast<CStatePersistenceNotification *>
- (f_pStateNotification))->GetPersistentCategory();
- }
-
- l_pNotificationsToPersist->m_cPublisherName = f_pStateNotification->GetPublisherName();
-
- l_pData->m_uiMsgSize = f_pdata->m_uiMsgSize;
- l_pData->m_pMessage = new(std::nothrow) CHAR[l_pNotificationsToPersist->m_uiMaxMsgLength];
-
- if (NULL != l_pData->m_pMessage) { // LCOV_EXCL_BR_LINE 5: It's impossible to mock new() function
- std::memset(l_pData->m_pMessage, 0, l_pNotificationsToPersist->m_uiMaxMsgLength);
- std::memcpy(l_pData->m_pMessage, f_pdata->m_pMessage, f_pdata->m_uiMsgSize);
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "memory not allocated for l_pNotificationsToPersist"); // LCOV_EXCL_LINE 5: It's impossible to mock new() function // NOLINT[whitespace/line_length]
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error persisting notfn, Data size of notification %s is %d greater than max registered size %d",
- f_pStateNotification->GetNotificationName().c_str(),
- f_pdata->m_uiMsgSize, f_pStateNotification->GetMaxMessageSize());
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid parameter received"); // LCOV_EXCL_LINE 6: f_pStateNotification and f_pdata can't be NULL // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_pNotificationsToPersist;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceSetPersistentNotificationData
-/// This function is used to create the persistent notifications object and fill the data related
-/// with it on system load.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceSetPersistentNotificationData(std::vector<CNotificationsToPersist *>
- *f_pvpersistnotification) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CStateNotification *l_pNotification = NULL;
- CNotificationsToPersist *l_pNotificationsToPersist = NULL;
-
- std::vector<std::string> *l_pvPersistentList = NULL;
-
- Persistent_Iterator_Type l_itPersistentData;
-
- // store all the notification data received in vector to map of CNotification and to vector of
- // persistent notification in case of persistent and user persistent notification
- if (NULL != f_pvpersistnotification) { // LCOV_EXCL_BR_LINE 6: double check, f_pvpersistnotification can't be NULL
- for (UI_32 l_uiCount = 0;
- l_uiCount < f_pvpersistnotification->size();
- l_uiCount++) {
- // get the persistent data object
- l_pNotificationsToPersist = f_pvpersistnotification->at(l_uiCount);
-
- if (NULL != l_pNotificationsToPersist) { // LCOV_EXCL_BR_LINE 6: double check, l_pNotificationsToPersist can't be NULL // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Persistent Type %d", l_pNotificationsToPersist->m_ePersistentType);
-
- if (eFrameworkunifiedPersistedStateVar == l_pNotificationsToPersist->m_ePersistentType) {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "PersistentState Notification");
-
- l_pNotification = new(std::nothrow) CStatePersistenceNotification(
- l_pNotificationsToPersist->m_cNotificationName,
- l_pNotificationsToPersist->m_uiMaxMsgLength,
- l_pNotificationsToPersist->m_ePersistCategory);
-
- l_pvPersistentList = m_pvPersistentList;
- } else if (eFrameworkunifiedPersistedStateUserVar == l_pNotificationsToPersist->m_ePersistentType) {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "PersistentStateUser Notification");
-
- l_pNotification = new(std::nothrow) CStatePersistenceUserNotification(
- l_pNotificationsToPersist->m_cNotificationName,
- l_pNotificationsToPersist->m_uiMaxMsgLength);
-
- l_pvPersistentList = m_pvUserPersistentList;
- } else if (eFrameworkunifiedImmediatePersistedStateVar == l_pNotificationsToPersist->m_ePersistentType) { // LCOV_EXCL_BR_LINE 6: l_pNotificationsToPersist->m_ePersistentType must be eFrameworkunifiedPersistedStateVar, eFrameworkunifiedPersistedStateUserVar, eFrameworkunifiedImmediatePersistedStateVar // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "PersistentStateUser Notification");
-
- l_pNotification = new(std::nothrow) CStateNorPersistenceNotification(
- l_pNotificationsToPersist->m_cNotificationName,
- l_pNotificationsToPersist->m_uiMaxMsgLength,
- l_pNotificationsToPersist->m_uiDelay,
- l_pNotificationsToPersist->m_ePersistCategory);
- }
-
- if (NULL != l_pNotification) { // LCOV_EXCL_BR_LINE 6: l_pNotification can't be NULL
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Insert persistent notification object in map");
-
- l_pNotification->SetPersistentData(l_pNotificationsToPersist->m_pPersistentData->m_pMessage,
- l_pNotificationsToPersist->m_pPersistentData->m_uiMsgSize);
-
- l_pNotification->SetEventPublisher(l_pNotificationsToPersist->m_cPublisherName);
-
- if (NULL != m_pmNotificationList) { // LCOV_EXCL_BR_LINE 6: double check, m_pmNotificationList can't be NULL
- m_pmNotificationList->insert(make_pair(l_pNotificationsToPersist->m_cNotificationName, l_pNotification));
-
- if (NULL != l_pvPersistentList) {
- l_pvPersistentList->push_back(l_pNotificationsToPersist->m_cNotificationName);
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Inserted persistent notification object in map");
- }
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Inserted persistent notification object in vector");
- } else {
- // LCOV_EXCL_START 6: double check, m_pmNotificationList can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- delete l_pNotification;
- l_pNotification = NULL;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification object not inserted in map/vector");
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotification can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "notification object is NULL");
-
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_pNotificationsToPersist can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pNotificationsToPersist is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- }
- } else {
- // LCOV_EXCL_START 6: double check, f_pvpersistnotification can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistent data pointer is NULL");
-
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// RemoveUserSpecificNotificationEntry
-/// This function is used to remove the user persistent notifications entry
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::RemoveUserSpecificNotificationEntry() { // LCOV_EXCL_START 100: never be used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- std::string l_cNotificationName;
-
- std::vector<std::string>::iterator l_itNotificationName;
-
- // iterator to find notification from map of notifications
- Notification_Iterator_Type l_itNotification;
-
- CNotification *l_pNotification = NULL;
-
- for (l_itNotificationName = m_pvUserPersistentList->begin() ; l_itNotificationName < m_pvUserPersistentList->end() ;
- l_itNotificationName++) {
- l_cNotificationName = *(l_itNotificationName);
-
- // check if this notification's object present in map
- l_itNotification = m_pmNotificationList->find(l_cNotificationName);
-
- if (m_pmNotificationList->end() != l_itNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Notification found in map");
-
- // get the notification object pointer from map
- l_pNotification = (*l_itNotification).second;
-
- if (NULL != l_pNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Deleting Notification Object");
-
- // delete the notification
- delete l_pNotification;
- l_pNotification = NULL;
-
- m_pmNotificationList->erase(l_itNotification);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Deleting Notification name from vector");
- m_pvUserPersistentList->erase(l_itNotificationName);
-
- l_itNotificationName = m_pvUserPersistentList->begin();
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification not found.");
-
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CNotificationManager::GetNotificationInfo(const std::string &f_cnotificationname, // LCOV_EXCL_START 100: never be used // NOLINT[whitespace/line_length]
- CNotificationsToPersist *&f_pnotificationstopersist) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification *l_pNotification = NULL;
- CStateNotification *l_pStateNotification = NULL;
- const CPersistentData *l_pPData = NULL;
-
- l_pNotification = SearchNotification(f_cnotificationname);
- l_pStateNotification = static_cast<CStateNotification *>(l_pNotification);
-
- if (NULL != l_pStateNotification) {
- if (l_pStateNotification->IsPublished()) {
- l_pPData = l_pStateNotification->GetPersistentData();
-
- if (NULL != l_pPData) {
- f_pnotificationstopersist = new(std::nothrow) CNotificationsToPersist();
-
- if (NULL == f_pnotificationstopersist) {
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Memory allocation error for f_pnotificationstopersist");
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) {
- f_pnotificationstopersist->m_pPersistentData = new(std::nothrow) CPersistentData();
-
- if (NULL == f_pnotificationstopersist->m_pPersistentData) {
- l_estatus = eFrameworkunifiedStatusNullPointer;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Memory allocation error for f_pnotificationstopersist->m_pPersistentData");
- }
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) {
- f_pnotificationstopersist->m_cNotificationName = l_pStateNotification->GetNotificationName();
- f_pnotificationstopersist->m_uiMaxMsgLength = l_pStateNotification->GetMaxMessageSize();
- f_pnotificationstopersist->m_cPublisherName = l_pStateNotification->GetPublisherName();
- f_pnotificationstopersist->m_ePersistentType = l_pStateNotification->GetNotificationType();
-
- if (eFrameworkunifiedPersistedStateVar == f_pnotificationstopersist->m_ePersistentType) {
- f_pnotificationstopersist->m_ePersistCategory = (static_cast<CStatePersistenceNotification *>
- (l_pStateNotification))->GetPersistentCategory();
- }
-
- if (eFrameworkunifiedImmediatePersistedStateVar == f_pnotificationstopersist->m_ePersistentType) {
- CStateNorPersistenceNotification *l_pStateNorPersistenceNotification =
- static_cast<CStateNorPersistenceNotification *>(l_pStateNotification);
- f_pnotificationstopersist->m_uiDelay = l_pStateNorPersistenceNotification->GetPersistenceDelay();
- f_pnotificationstopersist->m_ePersistCategory = (static_cast<CStateNorPersistenceNotification *>
- (l_pStateNotification))->GetPersistentCategory();
- }
-
- f_pnotificationstopersist->m_pPersistentData->m_pMessage = new(std::nothrow)
- CHAR[f_pnotificationstopersist->m_uiMaxMsgLength];
- std::memset(f_pnotificationstopersist->m_pPersistentData->m_pMessage, 0,
- f_pnotificationstopersist->m_uiMaxMsgLength);
- std::memcpy(f_pnotificationstopersist->m_pPersistentData->m_pMessage,
- l_pPData->m_pMessage, l_pPData->m_uiMsgSize);
-
- f_pnotificationstopersist->m_pPersistentData->m_uiMsgSize = l_pPData->m_uiMsgSize;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "No data is stored in notification %s", f_cnotificationname.c_str());
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Notification %s not published", f_cnotificationname.c_str());
- }
- } else {
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceSetDefaultPersistentNotificationData
-/// This function is used to set the default data of persistent notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceSetDefaultPersistentNotificationData(const std::string &f_cnotificationname,
- PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // pointer of notification object
- CStateNotification *l_pStateNotification = SearchPersistenceNotification(f_cnotificationname);
-
- if (NULL != l_pStateNotification) {
- l_estatus = l_pStateNotification->SetDefaultPersistentData(f_pmessage, f_uimsgsize);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to set default notification data for %s, notification does not exists",
- f_cnotificationname.c_str());
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceSetPersistentCategory
-/// This function is used to set the persistent type of persistent notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentserviceSetPersistentCategory(const std::string &f_cnotificationname,
- const EFrameworkunifiedPersistCategory f_epersistcategory) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // pointer of notification object
- CStateNotification *l_pStateNotification = SearchPersistenceNotification(f_cnotificationname);
-
- if (NULL != l_pStateNotification) {
- EFrameworkunifiedNotificationType l_eNotificationType = l_pStateNotification->GetNotificationType();
-
- if (eFrameworkunifiedPersistedStateVar == l_eNotificationType) {
- l_estatus = (static_cast<CStatePersistenceNotification *>(l_pStateNotification))->SetPersistentCategory(
- f_epersistcategory);
- } else if (eFrameworkunifiedImmediatePersistedStateVar == l_eNotificationType) {
- l_estatus = (static_cast<CStateNorPersistenceNotification *>(l_pStateNotification))->SetPersistentCategory(
- f_epersistcategory);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Cannot set category %d for notification %s of type %d", f_epersistcategory,
- f_cnotificationname.c_str(), l_eNotificationType);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Cannot set category %d for %s, Either not registered or not a persistent notification",
- f_epersistcategory, f_cnotificationname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentservicePublishImmediateNotification
-/// This function publish the immediate notification f_cnotificationname to all its subscribers.
-/// This API is called when service updates the immediate notification data in persistent memory
-/// using synchronous API.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CNotificationManager::NotificationpersistentservicePublishImmediateNotification(const std::string &f_cservicename,
- const std::string &f_cnotificationname,
- PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (f_cservicename.empty() || f_cnotificationname.empty()) {
- l_estatus = eFrameworkunifiedStatusInvldParam;
- } else {
- // get the notification object from map
- CStateNotification *l_pStateNotf = SearchPersistenceNotification(f_cnotificationname);
-
- if (NULL != l_pStateNotf) {
- if (eFrameworkunifiedImmediatePersistedStateVar == l_pStateNotf->GetNotificationType()) {
- CStateNorPersistenceNotification *l_pImmediateNotf =
- static_cast<CStateNorPersistenceNotification *>(l_pStateNotf);
-
- // publish the notification
- if (eFrameworkunifiedStatusOK != (l_estatus = l_pImmediateNotf->PublishNotification(f_cservicename,
- f_pmessage,
- f_uimsgsize))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error publishing notification %s published by %s, status: %d",
- f_cnotificationname.c_str(), f_cservicename.c_str(), l_estatus);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification %s is not registered as immediate persistence by service %s",
- f_cnotificationname.c_str(), f_cservicename.c_str());
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification %s not registered by service %s", f_cnotificationname.c_str(),
- f_cservicename.c_str());
-
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-#ifdef NPP_PROFILEINFO_ENABLE
-
-EFrameworkunifiedStatus CNotificationManager::GetNotificationProfilingData(std::string &f_cnotificationprofileInfo) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- Notification_Iterator_Type l_itNotification;
- NotifReceiver_Iterator_Type l_itNotifReceiver_Iterator;
-
- CNotification *l_pNotification = NULL;
- NotifReceiver_Type *l_pSubscriberList = NULL;
-
- std::stringstream ss;
- UI_32 l_uiSubscriberCnt = 0;
-
- std::string l_cPublisher = "";
- std::string l_cNotification = "";
-
- try {
- if (NULL == m_pmNotificationList) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification List m_pmNotificationList is NULL in notification manager");
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus && m_pmNotificationList->empty()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification List m_pmNotificationList Empty in notification manager");
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) {
- f_cnotificationprofileInfo.append("Application Name,");
- f_cnotificationprofileInfo.append("Notification Name,");
- f_cnotificationprofileInfo.append("Type,");
- f_cnotificationprofileInfo.append("Length,");
- f_cnotificationprofileInfo.append("Subscribed By,");
- f_cnotificationprofileInfo.append("Subscribers Count");
-
- for (l_itNotification = m_pmNotificationList->begin();
- l_itNotification != m_pmNotificationList->end();
- l_itNotification++) {
- l_pNotification = (*l_itNotification).second;
- if (NULL == l_pNotification) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification object ptr is NULL");
- l_estatus = eFrameworkunifiedStatusFail;
- } else {
- l_cPublisher = l_pNotification->GetPublisherName();
- if (l_cPublisher.empty()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Publisher name empty");
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- l_cNotification = l_pNotification->GetNotificationName();
- if (l_cNotification.empty()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification name empty");
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- l_pSubscriberList = l_pNotification->GetSubscriberList();
- if (NULL == l_pSubscriberList) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Subscribers List ptr is NULL");
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) {
- f_cnotificationprofileInfo.append("\n");
-
- f_cnotificationprofileInfo.append(l_cPublisher);
- f_cnotificationprofileInfo.append(",");
-
- f_cnotificationprofileInfo.append(l_cNotification);
- f_cnotificationprofileInfo.append(",");
-
- switch (l_pNotification->GetNotificationType()) {
- case eFrameworkunifiedNotificationVar : {
- f_cnotificationprofileInfo.append("Regular");
- }
- break;
-
- case eFrameworkunifiedStateVar : {
- f_cnotificationprofileInfo.append("State");
- }
- break;
-
- case eFrameworkunifiedPersistedStateVar : {
- f_cnotificationprofileInfo.append("PersistenceState");
- }
- break;
-
- case eFrameworkunifiedPersistedStateUserVar : {
- f_cnotificationprofileInfo.append("UserPersistenceState");
- }
- break;
-
- case eFrameworkunifiedImmediatePersistedStateVar : {
- f_cnotificationprofileInfo.append("ImmediatePersistenceState");
- }
- break;
-
- case eFrameworkunifiedUnknown: {
- f_cnotificationprofileInfo.append("Unknown");
- }
- break;
-
- default:
- break;
- }
- f_cnotificationprofileInfo.append(",");
-
- ss << l_pNotification->GetMaxMessageSize();
- f_cnotificationprofileInfo.append(ss.str());
- ss.str("");
- f_cnotificationprofileInfo.append(",\"");
-
- l_uiSubscriberCnt = 0;
- for (l_itNotifReceiver_Iterator = l_pSubscriberList->begin();
- l_pSubscriberList->end() != l_itNotifReceiver_Iterator;) {
- f_cnotificationprofileInfo.append(l_itNotifReceiver_Iterator->first);
- ++l_uiSubscriberCnt;
-
- ++l_itNotifReceiver_Iterator;
-
- if (l_pSubscriberList->end() != l_itNotifReceiver_Iterator) {
- f_cnotificationprofileInfo.append(",");
- }
- }
-
- f_cnotificationprofileInfo.append("\",");
-
- ss << l_uiSubscriberCnt;
- f_cnotificationprofileInfo.append(ss.str());
- ss.str("");
- }
-
- l_estatus = eFrameworkunifiedStatusOK;
- }
- }
- } catch (std::exception &exp) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Exception:: %s", exp.what());
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-#endif
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_notification_receiver.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_notification_receiver.cpp
deleted file mode 100755
index 53b9eab..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_notification_receiver.cpp
+++ /dev/null
@@ -1,50 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CNotificationReceiver.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include "ns_npp_notification_receiver.h"
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CNotificationReceiver
-/// Constructor of CNotificationReceiver class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotificationReceiver::CNotificationReceiver() {
- m_MsgQHandle = NULL;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CNotificationReceiver
-/// Destructor of CNotificationReceiver class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CNotificationReceiver::~CNotificationReceiver() {
- m_MsgQHandle = NULL;
-}
-
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_persist_file.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_persist_file.cpp
deleted file mode 100755
index 4b0e452..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_persist_file.cpp
+++ /dev/null
@@ -1,100 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NPPService
-/// \brief The file contains definition of CFilePersistence class.
-/// This class is responsible for persisting and retrieving of files.
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <unistd.h>
-#include <string>
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_copy_worker.h"
-#include "ns_npp_persist_file.h"
-#include "ns_npp_registry_entry.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CFilePersistence
-/// Constructor of CFilePersistence class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CFilePersistence::CFilePersistence() {
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CFilePersistence
-/// Destructor of CFilePersistence class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CFilePersistence::~CFilePersistence() { // LCOV_EXCL_START 14: Resident process, global instance not released
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Release
-/// Entry for the file is stored in map for persistence.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CFilePersistence::Release(std::string f_crequesterappname,
- std::string f_ctag,
- std::string f_cmempath,
- EFrameworkunifiedReleaseType enotificationpersistentservicereleasetype,
- std::string f_cusername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (f_cmempath.empty() || f_crequesterappname.empty() || f_ctag.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_cmempath, f_crequesterappname and f_ctag can't be empty
- // LCOV_EXCL_START 6: f_cmempath, f_crequesterappname and f_ctag can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid file path, requester or tag.");
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- } else {
- l_estatus = ProcessReleaseRequest(f_crequesterappname, f_ctag, ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE, f_cmempath, enotificationpersistentservicereleasetype,
- f_cusername); // LCOV_EXCL_BR_LINE 11: unexpected branch
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "- l_estatus:0x%x", l_estatus);
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Load
-/// Load file from persistent memory to the specified location.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CFilePersistence::Load(std::string f_crequesterappname,
- std::string f_ctag,
- std::string f_cretrievepath,
- std::string f_cusername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
-
- if (!f_ctag.empty() && !f_crequesterappname.empty() && !f_cretrievepath.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_ctag, f_crequesterappname and f_cretrievepath can't be empty
- l_estatus = ProcessLoadRequest(f_crequesterappname, f_ctag, ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE, f_cretrievepath, f_cusername); // LCOV_EXCL_BR_LINE 11: unexpected branch
- } else {
- // LCOV_EXCL_START 6: f_ctag, f_crequesterappname and f_cretrievepath can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid argument passed (RetrievePath:%s ,tag:%s, requester:%s)",
- f_cretrievepath.c_str(), f_ctag.c_str(), f_crequesterappname.c_str());
-
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_persist_folder.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_persist_folder.cpp
deleted file mode 100755
index 87b1ed4..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_persist_folder.cpp
+++ /dev/null
@@ -1,96 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include <unistd.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <string>
-#include "ns_npp_persistence.h"
-#include "ns_npp_persist_folder.h"
-#include "ns_npp_registry_entry.h"
-
-// Constructor of class CFolderPersistence
-CFolderPersistence::CFolderPersistence() {
-}
-
-// Destructor of class CFolderPersistence
-CFolderPersistence::~CFolderPersistence() { // LCOV_EXCL_START 14: Resident process, global instance not released
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-// Method to release folder for persistence.
-EFrameworkunifiedStatus CFolderPersistence::Release(std::string f_crequesterappname,
- std::string f_ctag,
- std::string f_cmempath,
- EFrameworkunifiedReleaseType enotificationpersistentservicereleasetype,
- std::string f_cusername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (f_cmempath.empty() || f_crequesterappname.empty() || f_ctag.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_cmempath, f_crequesterappname and f_ctag can't be empty // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: f_ctag, f_crequesterappname and f_cmempath can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid folder path, requester or tag.");
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- } else {
- // Call to method requesting to release the folder for persistence.
- l_estatus = ProcessReleaseRequest(f_crequesterappname, f_ctag, ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER, f_cmempath, enotificationpersistentservicereleasetype,
- f_cusername);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "- l_estatus:0x%x", l_estatus);
- return l_estatus;
-}
-
-// Method to load folder from persistent memory.
-EFrameworkunifiedStatus CFolderPersistence::Load(std::string f_crequesterappname,
- std::string f_ctag,
- std::string f_cretrievepath,
- std::string f_cusername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
-
- if (!f_ctag.empty() && !f_crequesterappname.empty() && !f_cretrievepath.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_cretrievepath, f_crequesterappname and f_ctag can't be empty // NOLINT[whitespace/line_length]
- // Call to method requesting to load the folder from persistent memory.
- l_estatus = ProcessLoadRequest(f_crequesterappname, f_ctag, ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER, f_cretrievepath, f_cusername);
- } else {
- // LCOV_EXCL_START 6: f_ctag, f_crequesterappname and f_cretrievepath can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid argument passed (RetrievePath:%s ,tag:%s, requester:%s)",
- f_cretrievepath.c_str(), f_ctag.c_str(), f_crequesterappname.c_str());
-
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_persistence.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_persistence.cpp
deleted file mode 100755
index a39b836..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_persistence.cpp
+++ /dev/null
@@ -1,743 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CPersistence.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#ifdef AGL_STUB
-#include <other_service/strlcpy.h>
-// #include "frameworkunified_stub.h"
-#endif
-#include <unistd.h>
-#include <stdlib.h> // for getenv()
-#ifdef AGL_STUB
-#include <cstdio>
-#endif
-#include <utility>
-#include <string>
-#include "ns_npp_persistence.h"
-#include "ns_npp_registry_entry.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CPersistence
-/// Constructor of CPersistence class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CPersistence::CPersistence():
- m_cStoragePath(GetStoragePath()),
- m_eCompressionType(ENOTIFICATIONPERSISTENTSERVICEDEFAULTCOMPRESSION),
- m_hNSWriteToPersistentMem(NULL),
- m_hNSReadFromPersistentMem(NULL),
- m_hAppHandle(NULL),
- m_bPersist(FALSE),
- m_uiNotificationpersistentservicePersistCategoryFlag(0) {
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CPersistence
-/// Destructor of CPersistence class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CPersistence::~CPersistence() { // LCOV_EXCL_START 14: Resident process, global instance not released
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetReadThreadHandle
-/// Set read thread handle.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistence::SetReadThreadHandle(HANDLE f_hreadthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- m_hNSReadFromPersistentMem = f_hreadthread;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetWriteThreadHandle
-/// Set write thread handle.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistence::SetWriteThreadHandle(HANDLE f_hwritethread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- m_hNSWriteToPersistentMem = f_hwritethread;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetStoragePath
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-std::string CPersistence::GetStoragePath() {
- std::string l_cStoragePath(STORAGE_PATH);
-
- return l_cStoragePath;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Register
-/// Register tag for persistence.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistence::Register(std::string f_crequestorappname, std::string f_ctag, BOOL bisuserpersistence) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- if (f_ctag.empty() || f_crequestorappname.empty()) { // LCOV_EXCL_BR_LINE 6: f_ctag and f_crequestorappname can't be empty // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: f_ctag and f_crequestorappname can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid tag or requester.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- TSourceRegistryListItr l_itRegistry = m_mPersistRegistry.find(f_crequestorappname);
- if (l_itRegistry != m_mPersistRegistry.end()) {
- // source available, check for file/folder availability
- TTagRegistryListItr l_itRegistryList = (l_itRegistry->second).find(f_ctag);
- if (l_itRegistryList != (l_itRegistry->second).end()) {
- // found already in the registry
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Already exists %s , %s", f_ctag.c_str(), f_crequestorappname.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- } else {
- // tag not found .. so add to the registry
- CRegistryEntry l_objRegistryEntry(f_ctag, f_crequestorappname, m_cStoragePath,
- bisuserpersistence); // f_eRegisterType, f_cUser);
-
- (l_itRegistry->second).insert(make_pair(f_ctag, l_objRegistryEntry));
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s found adding tag %s", f_crequestorappname.c_str(), f_ctag.c_str());
- }
- } else {
- // source not found, so creating a new entry
- CRegistryEntry l_objRegistryEntry(f_ctag, f_crequestorappname, m_cStoragePath,
- bisuserpersistence); // f_eRegisterType, f_cUser);
-
- TTagRegistryList l_mRegList;
- l_mRegList.insert(make_pair(f_ctag, l_objRegistryEntry)); // LCOV_EXCL_BR_LINE 11:except,C++ STL
-
- m_mPersistRegistry.insert(std::make_pair(f_crequestorappname, l_mRegList)); // LCOV_EXCL_BR_LINE 11:except,C++ STL // NOLINT[whitespace/line_length]
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "none exists %s , %s. So, added entry.", // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- f_ctag.c_str(), f_crequestorappname.c_str()); // LCOV_EXCL_BR_LINE 11: unexpected branch
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "- l_estatus:0x%x", l_estatus);
-
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ProcessReleaseRequest
-/// Persist file/folder that need to be persisted.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistence::ProcessReleaseRequest(std::string f_crequesterappname,
- std::string f_ctag,
- ENotificationpersistentservicePersistType f_epersisttype,
- std::string f_cmempath,
- EFrameworkunifiedReleaseType enotificationpersistentservicereleasetype,
- std::string f_cusername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (f_cmempath.empty() || f_crequesterappname.empty() || f_ctag.empty()) { // LCOV_EXCL_BR_LINE 6:f_cmempath, f_crequesterappname and f_ctag can`t be empty // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: f_cmempath, f_crequesterappname and f_ctag can`t be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG0(ZONE_ERR, __FUNCTION__, "Invalid file path, requester or tag.");
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- } else {
- // Persistence Registry map iterator
- TSourceRegistryListItr l_itTSourceRegistryListItr = m_mPersistRegistry.find(f_crequesterappname);
-
- if (l_itTSourceRegistryListItr != m_mPersistRegistry.end()) {
- // source available, check for file if registered
- TTagRegistryListItr l_itTRegistryList = (l_itTSourceRegistryListItr->second).find(f_ctag);
- if (l_itTRegistryList != (l_itTSourceRegistryListItr->second).end()) {
- if (eFrameworkunifiedNotOnRelease != enotificationpersistentservicereleasetype) {
- // Set release path
- l_itTRegistryList->second.SetReleasePath(f_cmempath);
- // Set persist path
- l_itTRegistryList->second.SetPersistProperties(f_epersisttype, f_cusername); // LCOV_EXCL_BR_LINE 11:except,C++ STL // NOLINT[whitespace/line_length]
-
- // file/folder found in registry
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "%s released %s. Found in registry. queued up to persist from %s",
- f_crequesterappname.c_str(), f_ctag.c_str(), l_itTRegistryList->second.GetReleasePath().c_str());
-
- // check if persist flag is set due to shutdown or user change
- if ((m_bPersist // It will be set to TRUE either on shutdown or userchange
- && l_itTRegistryList->second.HasntBeenPersisted()) // File/Folder persisted or not
- || (eFrameworkunifiedPersistInstantly == enotificationpersistentservicereleasetype)) {
- // reset the data
- if (((eFrameworkunifiedUserData == l_itTRegistryList->second.GetPersistentCategory()) &&
- (eFrameworkunifiedUserData & m_uiNotificationpersistentservicePersistCategoryFlag)) ||
- ((eFrameworkunifiedFactoryData == l_itTRegistryList->second.GetPersistentCategory()) &&
- (eFrameworkunifiedFactoryData & m_uiNotificationpersistentservicePersistCategoryFlag)) ||
- ((eFrameworkunifiedFactoryCustomerData == l_itTRegistryList->second.GetPersistentCategory()) &&
- (eFrameworkunifiedFactoryCustomerData & m_uiNotificationpersistentservicePersistCategoryFlag)) ||
- ((eFrameworkunifiedDealerData == l_itTRegistryList->second.GetPersistentCategory()) &&
- (eFrameworkunifiedDealerData & m_uiNotificationpersistentservicePersistCategoryFlag))) {
- // set the status of file/folder persisted as reset has been called on these data
- l_itTRegistryList->second.SetCurrentAction(LOADTYPE_RELEASE);
- l_itTRegistryList->second.SetBeingPersisted();
- } else { // persist the data
- if (eFrameworkunifiedStatusOK != (l_estatus = Persist(static_cast<CRegistryEntry &>(l_itTRegistryList->second)))) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 4: NSFW error case.
- }
- }
- } else {
- // Don't persist now. Persist on shutdown.
- }
- } else { // not on release
- // set the status of file/folder as released and persisted as these data need not to be persisted on shutdown
- l_itTRegistryList->second.SetReleasePath("");
- l_itTRegistryList->second.SetCurrentAction(LOADTYPE_RELEASE);
- l_itTRegistryList->second.SetBeingPersisted();
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Warning: %s didn't register %s, not persisting",
- f_crequesterappname.c_str(), f_ctag.c_str()); // LCOV_EXCL_BR_LINE 11: unexpected branch
- l_estatus = eFrameworkunifiedStatusInvldParam;
- }
- } else {
- // source not registered, cannot persist
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Warning: %s is not registered ignoring release of %s",
- f_ctag.c_str(), f_crequesterappname.c_str());
- l_estatus = eFrameworkunifiedStatusInvldParam;
- }
- }
- return l_estatus;
-}
-
-EFrameworkunifiedStatus CPersistence::Persist(CRegistryEntry &f_objregistryentry) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- // Persistence Info Structure
- NSP_CopyInfoCmd l_tCpInfo = {};
-
-
- std::string l_cSourcePath = f_objregistryentry.GetReleasePath();
- std::string l_cPersistPath = f_objregistryentry.GetPersistPath(); // LCOV_EXCL_BR_LINE 11:except,C++ STL
-
- // Fill the persistence info structure
- AddRequestData(l_tCpInfo,
- l_cSourcePath,
- l_cPersistPath,
- f_objregistryentry.GetRequester(),
- f_objregistryentry.GetTag(),
- LOADTYPE_RELEASE,
- f_objregistryentry.GetPersistType());
-
- // Persist only if file was released.
- // Release means application has asked NPPService to persist file at shutdown.)
- // Persist means actual persisting a file at persistent storage
- if (f_objregistryentry.IsReleased()) {
- if (ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEINPROCESS == f_objregistryentry.m_eJobState) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Another job with source: %s and tag %s is in process. "
- "Therefore adding release request to the pending queue.",
- f_objregistryentry.GetRequester().c_str(), f_objregistryentry.GetTag().c_str());
- // if job corresponding to the tag is already in process, add it in pending queue
- m_lPendingJobs.push_back(l_tCpInfo);
- } else if (ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEIDLE == f_objregistryentry.m_eJobState) {
- if (eFrameworkunifiedStatusOK == (SendRequestMessage(l_tCpInfo))) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Release message passed to writer thread."); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- f_objregistryentry.SetCurrentAction(LOADTYPE_RELEASE);
- f_objregistryentry.m_eJobState = ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEINPROCESS;
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failure in passing release message to writer thread.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "File/Folder not released yet.");
- }
-
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ProcessLoadRequest
-/// Load persisted file/folder.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistence::ProcessLoadRequest(std::string f_crequesterappname,
- std::string f_ctag,
- ENotificationpersistentservicePersistType f_epersisttype,
- std::string f_cretrievepath,
- std::string f_cusername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- // file/folder found in registry
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Load request received: Requester: %s and Tag: %s Load at: %s.",
- f_crequesterappname.c_str(), f_ctag.c_str(), f_cretrievepath.c_str()); // LCOV_EXCL_BR_LINE 11:except,C++ STL
-
- if (f_ctag.empty() || f_crequesterappname.empty() || f_cretrievepath.empty()) { // LCOV_EXCL_BR_LINE 6: both f_ctag and f_crequesterappname and f_cretrievepath can`t be empty // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: both f_ctag and f_crequesterappname and f_cretrievepath can`t be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Invalid argument passed (RetrievePath:%s ,tag:%s, requester:%s)",
- f_cretrievepath.c_str(), f_ctag.c_str(), f_crequesterappname.c_str());
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- } else {
- // Persistence Registry Map Iterator
- TSourceRegistryListItr l_itTRegistry = m_mPersistRegistry.find(f_crequesterappname);
-
- // Persistence Info Struct
- NSP_CopyInfoCmd l_tCopyInfo = {};
-
- if (l_itTRegistry != m_mPersistRegistry.end()) {
- // source available, check for file/folder
- TTagRegistryListItr l_itTRegistryList = (l_itTRegistry->second).find(f_ctag);
- if (l_itTRegistryList != (l_itTRegistry->second).end()) {
- if ((ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATERELEASEABORTED == l_itTRegistryList->second.m_eJobState)) { // LCOV_EXCL_BR_LINE 6: m_eJobState can`t be ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATERELEASEABORTED // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 6: m_eJobState can`t be ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATERELEASEABORTED // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- std::string l_cReleasePath(l_itTRegistryList->second.GetReleasePath());
- // if job was aborted due to some reason like abort shutdown.
- // Then persistent storage doesn't have updated file/folder. Just restore
- // aborted released file.
- // just rename it
- if (0 == std::rename(l_cReleasePath.c_str(), f_cretrievepath.c_str())) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "File loaded at requested location.");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error while processing load request when tried to move. source: %s dest: %s",
- l_cReleasePath.c_str(), f_cretrievepath.c_str());
- l_estatus = eFrameworkunifiedStatusFail;
- }
- l_itTRegistryList->second.m_eJobState = ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEIDLE;
- // LCOV_EXCL_STOP
- } else {
- std::string l_cLoadPath(l_itTRegistryList->second.GetLoadPath(f_epersisttype, f_cusername)); // LCOV_EXCL_BR_LINE 11:except,C++ STL // NOLINT[whitespace/line_length]
-
- if (0 == access(l_cLoadPath.c_str(), R_OK)) {
- // file/folder found in registry
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Found in registry. checking in persistence...(%s)", l_cLoadPath.c_str());
-
- AddRequestData(l_tCopyInfo,
- l_cLoadPath,
- f_cretrievepath,
- f_crequesterappname,
- f_ctag,
- LOADTYPE_LOAD,
- f_epersisttype);
-
- if (ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEINPROCESS == (l_itTRegistryList->second).m_eJobState) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Another job with source: %s and tag %s is in process. "
- "Therefore adding load request to the pending queue.",
- f_crequesterappname.c_str(), f_ctag.c_str());
- m_lPendingJobs.push_back(l_tCopyInfo);
- } else if (ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEIDLE == (l_itTRegistryList->second).m_eJobState) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Found in persistence.");
- if (eFrameworkunifiedStatusOK == (SendRequestMessage(l_tCopyInfo))) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Load message passed to reader thread. Retrieving..");
- // file/folder is requested for loading so reset the persisted flag.
- l_itTRegistryList->second.ResetPersistedFlag();
- l_itTRegistryList->second.SetCurrentAction(LOADTYPE_LOAD);
- l_itTRegistryList->second.m_eJobState = ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEINPROCESS;
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failure in passing load message to reader thread.");
- l_estatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "%s requested by %s. Not found in persistence memory.", // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- f_ctag.c_str(), f_crequesterappname.c_str()); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- l_estatus = eFrameworkunifiedStatusAccessError;
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Warning: %s requesting %s .. Tag not found",
- f_crequesterappname.c_str(), f_ctag.c_str()); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- // source not found
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Warning: %s requesting %s .. Requester not found",
- f_crequesterappname.c_str(), f_ctag.c_str());
- l_estatus = eFrameworkunifiedStatusFail;
- }
- }
- return l_estatus;
-}
-
-VOID CPersistence::AddRequestData(NSP_CopyInfoCmd &f_tcpinfo,
- std::string f_sourcepath,
- std::string f_destpath,
- std::string f_crequesterappname,
- std::string f_ctag,
- ENPS_Loadtype f_eloadtype,
- ENotificationpersistentservicePersistType f_epersisttype) {
-#ifdef AGL_PosixBasedOS001LEGACY_USED
- strlcpy(f_tcpinfo.m_csourcepath, f_sourcepath.c_str(), sizeof(f_tcpinfo.m_csourcepath));
- strlcpy(f_tcpinfo.m_cdestinationpath, f_destpath.c_str(), sizeof(f_tcpinfo.m_cdestinationpath));
- strlcpy(f_tcpinfo.m_crequesterappname, f_crequesterappname.c_str(), sizeof(f_tcpinfo.m_crequesterappname));
- strlcpy(f_tcpinfo.m_cpersistenttag, f_ctag.c_str(), sizeof(f_tcpinfo.m_cpersistenttag));
-#endif
- f_tcpinfo.m_eloadtype = f_eloadtype;
- f_tcpinfo.m_epersisttype = f_epersisttype;
- // f_tcpinfo.m_eCompressionType = ENOTIFICATIONPERSISTENTSERVICECOMPRESSUSINGLIBZ;
-}
-
-EFrameworkunifiedStatus CPersistence::SendRequestMessage(NSP_CopyInfoCmd &f_tcpinfo) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- HANDLE l_hThreadHandle = NULL;
- // Worker Command Protocol
- ENSP_CopyWorkerProtocol l_eWorkerProtocol = CP_WRK_CMD_COPY;
-
- if (ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE == f_tcpinfo.m_epersisttype) {
- l_eWorkerProtocol = CP_WRK_CMD_COPY;
- } else if (ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER == f_tcpinfo.m_epersisttype) {
- l_eWorkerProtocol = AR_CMD_ARCHIVE;
- }
-
- if (LOADTYPE_RELEASE == f_tcpinfo.m_eloadtype) {
- l_hThreadHandle = m_hNSWriteToPersistentMem;
- } else if (LOADTYPE_LOAD == f_tcpinfo.m_eloadtype) {
- l_hThreadHandle = m_hNSReadFromPersistentMem;
- }
-
- if (l_hThreadHandle) {
- // issue a copy to the worker thread
- if (eFrameworkunifiedStatusOK != (l_estatus = McSend(l_hThreadHandle, AppName, l_eWorkerProtocol, sizeof(NSP_CopyInfoCmd), &f_tcpinfo))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "McSend for thread failed %d", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case.
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// AckReceivedFromWorker
-/// This is callback function for ack that file is released to persistenet memory.
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistence::AckReceivedFromWorker(PCSTR f_csource, PCSTR f_ctag, BOOL f_bcopystatus,
- ENPS_Loadtype f_eloadtype) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus retVal = eFrameworkunifiedStatusOK;
-
- std::string l_cRequester(f_csource);
- std::string l_cTag(f_ctag); // LCOV_EXCL_BR_LINE 11:except,C++ STL
-
- TSourceRegistryListItr l_itTReg = m_mPersistRegistry.find(l_cRequester);
- if (l_itTReg != m_mPersistRegistry.end()) {
- // source available, check for file
- TTagRegistryListItr l_itTRegList = (l_itTReg->second).find(l_cTag);
- if (l_itTRegList != (l_itTReg->second).end()) {
- if (LOADTYPE_RELEASE == f_eloadtype) {
- l_itTRegList->second.SetBeingPersisted(); // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- if (f_bcopystatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "File persisted %s / %s", f_csource, f_ctag);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h"
- "File not persisted %s / %s, Negative ack received from copy worker thread",
- f_csource,
- f_ctag); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- }
- }
-
- // Job processed. Set job state as idle
- l_itTRegList->second.m_eJobState = ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEIDLE;
-
- // check if there are any pending jobs for corresponding source and tag
- if (!m_lPendingJobs.empty()) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Retrieving next pending job for persistence...");
- TPendingJobsItr l_itrPendingJobs;
- for (l_itrPendingJobs = m_lPendingJobs.begin(); l_itrPendingJobs != m_lPendingJobs.end(); ++l_itrPendingJobs) {
- if (0 == std::strcmp((*l_itrPendingJobs).m_crequesterappname, f_csource)
- && (0 == std::strcmp((*l_itrPendingJobs).m_cpersistenttag, f_ctag))) {
- if (eFrameworkunifiedStatusOK == (retVal = (SendRequestMessage((*l_itrPendingJobs))))) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- // set job state as processing
- l_itTRegList->second.m_eJobState = ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEINPROCESS;
- // set current action
- l_itTRegList->second.SetCurrentAction((*l_itrPendingJobs).m_eloadtype);
- // Reset persisted flag. It requires to process release request for this tag.
- // Because, file will be persisted only once. Unless, anyone loads the file again.
- if (LOADTYPE_LOAD == (*l_itrPendingJobs).m_eloadtype) {
- l_itTRegList->second.ResetPersistedFlag();
- }
-
- // remove job from pending list
- m_lPendingJobs.erase(l_itrPendingJobs);
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Failure in passing load/release message to the worker threads.");
- retVal = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- break;
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "No pending jobs"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- } else {
- // tag not found ..
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " ERROR %s, tag %s not found ", f_csource, f_ctag);
- }
- } else {
- // source not found
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ERROR none exists %s , %s", f_csource, f_ctag);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return retVal;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// PersistAllReleaseRequests
-/// Persist all files which are not persisted yet.
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistence::PersistAllReleaseRequests(UI_32 f_uinotificationpersistentservicepersistcategoryflag) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- m_bPersist = TRUE; // set to true because persist of all release requests have been triggered.
- // Trigger reason: shutdown
-
- m_uiNotificationpersistentservicePersistCategoryFlag = f_uinotificationpersistentservicepersistcategoryflag;
-
- TSourceRegistryListItr l_itTReg = m_mPersistRegistry.begin();
-
- for (; l_itTReg != m_mPersistRegistry.end(); ++l_itTReg) {
- TTagRegistryListItr l_itTRegList = (l_itTReg->second).begin();
- for (; l_itTRegList != (l_itTReg->second).end(); ++l_itTRegList) {
- if (l_itTRegList->second.HasntBeenPersisted()) {
- // reset the data
- if (((eFrameworkunifiedUserData == l_itTRegList->second.GetPersistentCategory()) &&
- (eFrameworkunifiedUserData & f_uinotificationpersistentservicepersistcategoryflag)) ||
- ((eFrameworkunifiedFactoryData == l_itTRegList->second.GetPersistentCategory()) &&
- (eFrameworkunifiedFactoryData & f_uinotificationpersistentservicepersistcategoryflag)) ||
- ((eFrameworkunifiedFactoryCustomerData == l_itTRegList->second.GetPersistentCategory()) &&
- (eFrameworkunifiedFactoryCustomerData & f_uinotificationpersistentservicepersistcategoryflag)) ||
- ((eFrameworkunifiedDealerData == l_itTRegList->second.GetPersistentCategory()) &&
- (eFrameworkunifiedDealerData & f_uinotificationpersistentservicepersistcategoryflag))) {
- // set the status of file/folder as released and persisted as these data need not to be persisted on shutdown
- l_itTRegList->second.SetCurrentAction(LOADTYPE_RELEASE);
- l_itTRegList->second.SetBeingPersisted();
- } else { // persist the data
- if (eFrameworkunifiedStatusOK != Persist(static_cast<CRegistryEntry &>(l_itTRegList->second))) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 4: NSFW error case.
- }
- }
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-BOOL CPersistence::HaveAllReleaseRequestsPersisted(std::string &f_ctagnotreleased) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL l_bRetVal = TRUE;
-
- TSourceRegistryListItr l_itTReg = m_mPersistRegistry.begin();
-
- f_ctagnotreleased.assign("");
-
- for (; l_itTReg != m_mPersistRegistry.end(); ++l_itTReg) {
- TTagRegistryListItr l_itTRegList = (l_itTReg->second).begin();
- for (; l_itTRegList != (l_itTReg->second).end(); ++l_itTRegList) {
- if (l_itTRegList->second.HasntBeenPersisted()) {
- l_bRetVal = FALSE;
-
- if (!l_itTRegList->second.IsReleased()) {
- f_ctagnotreleased.append("\n");
- f_ctagnotreleased.append(l_itTRegList->second.GetTag());
- f_ctagnotreleased.append(" [");
- f_ctagnotreleased.append(l_itTRegList->second.GetRequester());
- f_ctagnotreleased.append("]");
- }
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bRetVal;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// PersistAllUserRequests
-/// Persist all user files which are not persisted yet.
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistence::PersistAllUserRequests() {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- // TODO(my_username): Persist data on userchange. Uncomment following.
- // m_bPersist = TRUE; // set to true because persist of all user release requests have been triggered.
- // Trigger reason: user change
-
- TSourceRegistryListItr l_itTReg = m_mPersistRegistry.begin();
-
- for (; l_itTReg != m_mPersistRegistry.end(); ++l_itTReg) {
- TTagRegistryListItr l_itTRegList = (l_itTReg->second).begin();
- for (; l_itTRegList != (l_itTReg->second).end(); ++l_itTRegList) {
- if (l_itTRegList->second.IsUserPersistence()) {
- if (eFrameworkunifiedStatusOK != Persist(static_cast<CRegistryEntry &>(l_itTRegList->second))) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 4: NSFW error case.
- }
- }
- }
- }
- return l_estatus;
-}
-
-BOOL CPersistence::IsUserPersistence(std::string f_ctag) {
- BOOL l_bUserPersistence = FALSE;
-
- TSourceRegistryListItr l_itTReg = m_mPersistRegistry.begin();
-
- for (; l_itTReg != m_mPersistRegistry.end(); ++l_itTReg) {
- TTagRegistryListItr l_itTRegList = (l_itTReg->second).begin();
- for (; l_itTRegList != (l_itTReg->second).end(); ++l_itTRegList) {
- if (l_itTRegList->second.GetTag() == f_ctag) {
- if (l_itTRegList->second.IsUserPersistence()) {
- l_bUserPersistence = TRUE;
- }
- break;
- }
- }
- }
-
- return l_bUserPersistence;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetPersistentCategory
-/// Sets the persist type of file/folder
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistence::SetPersistentCategory(const std::string &f_crequesterappname,
- const std::string &f_ctag,
- EFrameworkunifiedPersistCategory f_epersistcategory) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- // Persistence Registry map iterator
- TSourceRegistryListItr l_itTSourceRegistryListItr = m_mPersistRegistry.find(f_crequesterappname);
-
- if (m_mPersistRegistry.end() != l_itTSourceRegistryListItr) {
- // source available, check for file if registered
- TTagRegistryListItr l_itTRegistryList = (l_itTSourceRegistryListItr->second).find(f_ctag);
-
- if ((l_itTSourceRegistryListItr->second).end() != l_itTRegistryList) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "AppName:: %s, Tag:: %s found in registry", f_crequesterappname.c_str(),
- f_ctag.c_str());
-
- l_estatus = (l_itTRegistryList->second).SetPersistentCategory(f_epersistcategory);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Warning: %s didn't register %s", f_crequesterappname.c_str(), f_ctag.c_str());
- l_estatus = eFrameworkunifiedStatusInvldParam;
- }
- } else {
- // source not registered, cannot persist
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Warning: %s is not registered", f_ctag.c_str());
- l_estatus = eFrameworkunifiedStatusInvldParam;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// ResetPersistFlag
-/// Resets the persist flag.
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistence::ResetPersistFlag() {
- m_bPersist = FALSE;
-
- m_uiNotificationpersistentservicePersistCategoryFlag = 0;
-}
-
-#ifdef NPP_PROFILEINFO_ENABLE
-
-EFrameworkunifiedStatus CPersistence::GetPersistenceProfilingData(std::string &f_cpersistenceprofileinfo) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- TSourceRegistryListItr l_itrTSourceRegistryListItr;
- TTagRegistryListItr l_itrTTagRegistryListItr;
-
- for (l_itrTSourceRegistryListItr = m_mPersistRegistry.begin();
- l_itrTSourceRegistryListItr != m_mPersistRegistry.end();
- l_itrTSourceRegistryListItr++) {
- for (l_itrTTagRegistryListItr = (l_itrTSourceRegistryListItr->second).begin();
- l_itrTTagRegistryListItr != (l_itrTSourceRegistryListItr->second).end();
- l_itrTTagRegistryListItr++) {
- f_cpersistenceprofileinfo.append("\n");
- f_cpersistenceprofileinfo.append((*l_itrTSourceRegistryListItr).first);
- f_cpersistenceprofileinfo.append(",");
-
- f_cpersistenceprofileinfo.append(l_itrTTagRegistryListItr->first);
- f_cpersistenceprofileinfo.append(",");
-
- switch ((l_itrTTagRegistryListItr->second).GetPersistType()) {
- case ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE: {
- f_cpersistenceprofileinfo.append("File,");
- }
- break;
-
- case ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER: {
- f_cpersistenceprofileinfo.append("Folder,");
- }
- break;
-
- default: {
- f_cpersistenceprofileinfo.append(",");
- }
- break;
- }
-
- if ((l_itrTTagRegistryListItr->second).IsUserPersistence()) {
- f_cpersistenceprofileinfo.append("Yes,");
- } else {
- f_cpersistenceprofileinfo.append("No,");
- }
-
- if ((l_itrTTagRegistryListItr->second).IsReleased()) {
- f_cpersistenceprofileinfo.append("Yes,");
- } else {
- f_cpersistenceprofileinfo.append("No,");
- }
-
- if ((l_itrTTagRegistryListItr->second).IsPersisted()) {
- f_cpersistenceprofileinfo.append("Yes");
- } else {
- f_cpersistenceprofileinfo.append("No");
- }
- }
- }
- return l_estatus;
-}
-
-#endif
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_persistence_manager.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_persistence_manager.cpp
deleted file mode 100755
index 7f5d292..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_persistence_manager.cpp
+++ /dev/null
@@ -1,1132 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NPPService
-/// \brief This file contains implementation of class CPersistenceManager.
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include <stdio.h>
-#include <dirent.h>
-#include <sys/types.h>
-#include <native_service/ns_np_service.h>
-#include <native_service/ns_np_service_if.h>
-#include <native_service/ns_util_directory.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <native_service/frameworkunified_sm_framework_dispatch.h>
-#include <string>
-#include <native_service/ns_np_service_nor_persistence_internal.h>
-#include "ns_npp.h"
-#include "ns_npp_types.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_copy_worker.h"
-#include "ns_npp_persistence.h"
-#include "ns_npp_persist_file.h"
-#include "ns_npp_fs_directory.h"
-#include "ns_npp_persist_folder.h"
-#include "ns_npp_persistent_data.h"
-#include "ns_npp_binary_accesser.h"
-#include "ns_npp_persistence_manager.h"
-#include "ns_npp_nor_persistence_worker_thread.h"
-#include "ns_npp_state_nor_persistence_notification.h"
-
-extern const CHAR AppName[]; // NOLINT (readability/naming)
-
-// Initialisation of static class member for disabling persistence
-BOOL CPersistenceManager::m_bPersistenceDisabled = FALSE;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CPersistenceManager
-/// Constructor of CPersistenceManager class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CPersistenceManager::CPersistenceManager() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_cUserNotificationTag = USERNOTIFICATIONFILE;
-
- m_poDataAccesser = NULL;
-
- m_cNotificationPersistFilepath = CPersistence::GetStoragePath(); // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Storage path for persistence=%s", m_cNotificationPersistFilepath.c_str()); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
-
- m_cNotificationPersistFilepath += AppName;
- m_cNotificationPersistFilepath += "/";
-
- m_hNSImmediatePersistenceThread = NULL;
- m_bAllFilePersisted = FALSE;
- m_bImmediatedDataPersisted = FALSE;
-
- if (eFrameworkunifiedStatusOK != Init()) { // LCOV_EXCL_BR_LINE 6: Init() must be return eFrameworkunifiedStatusOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to initialize Persistent Manager."); // LCOV_EXCL_LINE 6: Init() must be return eFrameworkunifiedStatusOK // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CPersistenceManager
-/// Destructor of CPersistenceManager class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CPersistenceManager::~CPersistenceManager() { // LCOV_EXCL_START 14: Resident process, global instance not released
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_poDataAccesser) {
- delete m_poDataAccesser;
- }
-
- Persist_Type_Iter l_itPersist_Type = m_mPersist_Type.begin();
- // Remove memory allocated for persistence objects
- for (; l_itPersist_Type != m_mPersist_Type.end(); ++l_itPersist_Type) {
- if (NULL != (*l_itPersist_Type).second) {
- delete(*l_itPersist_Type).second;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CPersistenceManager::Init() {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_mPersist_Type[ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE] = new(std::nothrow) CFilePersistence(); // LCOV_EXCL_BR_LINE 11:unexpected branch
-
- m_mPersist_Type[ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER] = new(std::nothrow) CFolderPersistence(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT[whitespace/line_length]
-
- m_poDataAccesser = new(std::nothrow) CBinaryAccesser(); // Save data in binary format. // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT[whitespace/line_length]
-
- // check if all object creation is successful
- if (NULL != m_poDataAccesser) { // LCOV_EXCL_BR_LINE 5:m_poDataAccesser can`t be NULL
- Persist_Type_Iter l_itPersist_Type = m_mPersist_Type.begin();
-
- // check if all object creation is successful
- for (; l_itPersist_Type != m_mPersist_Type.end();
- ++l_itPersist_Type) {
- if (NULL == (*l_itPersist_Type).second) { // LCOV_EXCL_START 6:(*l_itPersist_Type).second can`t be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- break;
- }
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 5: m_poDataAccesser can`t be NULL
- }
-
- if (eFrameworkunifiedStatusOK != l_estatus) { // LCOV_EXCL_START 6: l_estatus must be eFrameworkunifiedStatusOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- if (NULL != m_poDataAccesser) {
- delete m_poDataAccesser;
- }
-
- Persist_Type_Iter l_itPersist_Type = m_mPersist_Type.begin();
- // check if all object creation is successful
- for (; l_itPersist_Type != m_mPersist_Type.end(); ++l_itPersist_Type) {
- if (NULL != (*l_itPersist_Type).second) {
- delete(*l_itPersist_Type).second;
- }
- }
- // LCOV_EXCL_STOP
- }
- std::string f_csourcepath = CPersistence::GetStoragePath();
- if (f_csourcepath.length() > 0) { // LCOV_EXCL_BR_LINE 6: f_csourcepath.length() is always bigger then 0
- f_csourcepath.append(RELEASETEMP_DIR); // LCOV_EXCL_BR_LINE 11:unexpected branch
- if (CFSDirectory::DoesDirecotryExist(f_csourcepath)) {
- f_csourcepath.append(RELEASETEMP_FILENAME);
- if (0 != remove(f_csourcepath.c_str())) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Temporary file not deleted::%s, errno:%d", f_csourcepath.c_str(), errno);
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceRegister
-/// Registers a tag for the file/folder. This tag will be used for releasing or loading
-/// a file/folder.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceRegister(std::string f_cappname,
- std::string f_ctag,
- ENotificationpersistentservicePersistType f_epersisttype,
- BOOL bisuserpersistence) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
-
- if (f_cappname.empty() || f_ctag.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_cappname and f_ctag can't be empty // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Appname & tag should not be empty."); // LCOV_EXCL_LINE 6: f_cappname and f_ctag can't be empty // NOLINT[whitespace/line_length]
- } else {
- // check boundary conditions
- if ((ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST < f_epersisttype) && (f_epersisttype < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST)) { // LCOV_EXCL_BR_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- if (NULL != m_mPersist_Type[f_epersisttype]) { // LCOV_EXCL_BR_LINE 6: m_mPersist_Type[f_epersisttype] would not be null // NOLINT[whitespace/line_length]
- // register tag
- l_estatus = m_mPersist_Type[f_epersisttype]->Register(f_cappname, f_ctag,
- bisuserpersistence); // f_eRegisterType, f_cUser); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
- // m_mPersist_Type[f_ePersistFileType]->ListAllInMap();
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", f_epersisttype); // LCOV_EXCL_LINE 6: m_mPersist_Type[f_epersisttype] would not be null // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Enum value %d is out of bound.", f_epersisttype); // LCOV_EXCL_LINE 6: f_epersisttype is always biger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceRelease
-/// Entry for the file/folder is stored in map for persistence.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceRelease(std::string f_cappname,
- std::string f_ctag,
- std::string f_cmempath,
- EFrameworkunifiedReleaseType enotificationpersistentservicereleasetype,
- ENotificationpersistentservicePersistType f_epersisttype,
- std::string f_cusername) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
-
- if (f_cappname.empty() || f_ctag.empty() || f_cmempath.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_cappname, f_cmempath and f_ctag can't be empty // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Appname & tag should not be empty."); // LCOV_EXCL_LINE 6: double check, f_cappname, f_cmempath and f_ctag can't be empty // NOLINT[whitespace/line_length]
- } else {
- // check boundary conditions
- if ((ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST < f_epersisttype) && (f_epersisttype < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST)) { // LCOV_EXCL_BR_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- // release file
- if (NULL != m_mPersist_Type[f_epersisttype]) { // LCOV_EXCL_BR_LINE 6: m_mPersist_Type[f_epersisttype] would not be null // NOLINT[whitespace/line_length]
- l_estatus = m_mPersist_Type[f_epersisttype]->Release(f_cappname,
- f_ctag,
- f_cmempath,
- enotificationpersistentservicereleasetype,
- f_cusername); // LCOV_EXCL_BR_LINE 11: unexpected branch
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", f_epersisttype); // LCOV_EXCL_LINE 6: m_mPersist_Type[f_epersisttype] would not be null // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Enum value %d is out of bound.", f_epersisttype); // LCOV_EXCL_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceLoad
-/// Load file/folder from persistent memory to the specified location.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceLoad(std::string f_cappname,
- std::string f_ctag,
- std::string f_cretrievepath,
- ENotificationpersistentservicePersistType f_epersisttype,
- std::string f_cusername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (f_cappname.empty() || f_ctag.empty() || f_cretrievepath.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_cretrievepath, f_cappname and f_ctag can't be empty // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Appname, tag & retrieve path should not be empty."); // LCOV_EXCL_LINE 6: double check, f_cretrievepath, f_cappname and f_ctag can't be empty // NOLINT[whitespace/line_length]
- } else {
- // check boundary conditions
- if ((ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST < f_epersisttype) && (f_epersisttype < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST)) { // LCOV_EXCL_BR_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- if (NULL != m_mPersist_Type[f_epersisttype]) { // LCOV_EXCL_BR_LINE 6: m_mPersist_Type[f_epersisttype] would not be null // NOLINT[whitespace/line_length]
- // load file
- l_estatus = m_mPersist_Type[f_epersisttype]->Load(f_cappname, f_ctag, f_cretrievepath, f_cusername); // LCOV_EXCL_BR_LINE 11: unexpected branch // NOLINT[whitespace/line_length]
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", f_epersisttype); // LCOV_EXCL_LINE 6: m_mPersist_Type[f_epersisttype] would not be null // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Enum value %d is out of bound.", f_epersisttype); // LCOV_EXCL_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// AckReceivedFromWorker
-/// Send release ack to file/folder persistence object.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::AckReceivedFromWorker(PCSTR f_csource, PCSTR f_ctag, ENotificationpersistentservicePersistType f_epersisttype,
- BOOL f_bcopystatus, ENPS_Loadtype f_eloadtype) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if ((NULL == f_csource) || (NULL == f_ctag)) { // LCOV_EXCL_BR_LINE 6: f_csource and f_ctag can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "f_csource or f_ctag is NULL."); // LCOV_EXCL_LINE 6: f_csource and f_ctag can't be NULL // NOLINT[whitespace/line_length]
- } else {
- // check boundary conditions
- if ((ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST < f_epersisttype) && (f_epersisttype < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST)) { // LCOV_EXCL_BR_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- if (NULL != m_mPersist_Type[f_epersisttype]) {
- // Send release ack to file/folder persistence object.
- l_estatus = m_mPersist_Type[f_epersisttype]->AckReceivedFromWorker(f_csource, f_ctag,
- f_bcopystatus, f_eloadtype);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", f_epersisttype);
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Enum value %d is out of bound.", f_epersisttype); // LCOV_EXCL_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceSaveNotificationData
-/// Save notification data in a persistent file.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceSaveNotificationData(Persistent_Notification_List_Type
- *f_vpersistentnotificationlist) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if ((NULL == m_poDataAccesser) || (NULL == f_vpersistentnotificationlist)) { // LCOV_EXCL_BR_LINE 6: m_poDataAccesser and f_vpersistentnotificationlist would not be null // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "m_poDataAccesser or f_vpersistentnotificationlist is NULL."); // LCOV_EXCL_LINE 6: m_poDataAccesser and f_vpersistentnotificationlist would not be null // NOLINT[whitespace/line_length]
- } else {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- std::string l_cNotificationFilePath = "";
-
- l_cNotificationFilePath = m_cNotificationPersistFilepath;
- l_cNotificationFilePath += NOTIFICATIONFILE;
- if (eFrameworkunifiedStatusOK != (l_estatus = m_poDataAccesser->PersistData(l_cNotificationFilePath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedPersistedStateVar,
- eFrameworkunifiedUserData))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving notification data from file : %s, status: %d",
- l_cNotificationFilePath.c_str(), l_estatus);
- }
-
- l_cNotificationFilePath = m_cNotificationPersistFilepath;
- l_cNotificationFilePath += FACTORYNOTIFICATIONFILE;
- if (eFrameworkunifiedStatusOK != (l_estatus = m_poDataAccesser->PersistData(l_cNotificationFilePath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedPersistedStateVar,
- eFrameworkunifiedFactoryData))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving notification data from file : %s, status: %d",
- l_cNotificationFilePath.c_str(), l_estatus);
- }
-
- l_cNotificationFilePath = m_cNotificationPersistFilepath;
- l_cNotificationFilePath += FACTORYCUSTOMERNOTIFICATIONFILE;
- if (eFrameworkunifiedStatusOK != (l_estatus = m_poDataAccesser->PersistData(l_cNotificationFilePath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedPersistedStateVar,
- eFrameworkunifiedFactoryCustomerData))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving notification data from file : %s, status: %d",
- l_cNotificationFilePath.c_str(), l_estatus);
- }
-
- l_cNotificationFilePath = m_cNotificationPersistFilepath;
- l_cNotificationFilePath += DEALERNOTIFICATIONFILE;
- if (eFrameworkunifiedStatusOK != (l_estatus = m_poDataAccesser->PersistData(l_cNotificationFilePath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedPersistedStateVar,
- eFrameworkunifiedDealerData))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving notification data from file : %s, status: %d",
- l_cNotificationFilePath.c_str(), l_estatus);
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceSaveUserNotificationData
-/// Save user notification data in a persistent file.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceSaveUserNotificationData(Persistent_Notification_List_Type
- *f_vpersistentnotificationlist) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if ((NULL == m_poDataAccesser) || (NULL == f_vpersistentnotificationlist)) { // LCOV_EXCL_BR_LINE 6: m_poDataAccesser and f_vpersistentnotificationlist would not be null // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "m_poDataAccesser or f_vpersistentnotificationlist is NULL."); // LCOV_EXCL_LINE 6: m_poDataAccesser and f_vpersistentnotificationlist would not be null // NOLINT[whitespace/line_length]
- } else {
- l_estatus = m_poDataAccesser->PersistData(m_cNotificationUserMemFilepath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedPersistedStateUserVar); // LCOV_EXCL_BR_LINE 11: unexpected branch
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceReadNotificationData
-/// Get the list of all persistent notifications from a persistent memory and store it in a map.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceReadNotificationData(Persistent_Notification_List_Type
- * &f_vpersistentnotificationlist) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_poDataAccesser) { // LCOV_EXCL_BR_LINE 6: m_poDataAccesser would not be null
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- std::string l_cNotificationFilePath = "";
-
- l_cNotificationFilePath = m_cNotificationPersistFilepath;
- l_cNotificationFilePath += NOTIFICATIONFILE;
- if (eFrameworkunifiedStatusOK != (l_estatus = m_poDataAccesser->RetrieveData(l_cNotificationFilePath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedUserData))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving notification data from file : %s, status: %d",
- l_cNotificationFilePath.c_str(), l_estatus);
- }
-
- l_cNotificationFilePath = m_cNotificationPersistFilepath;
- l_cNotificationFilePath += FACTORYNOTIFICATIONFILE;
- if (eFrameworkunifiedStatusOK != (l_estatus = m_poDataAccesser->RetrieveData(l_cNotificationFilePath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedFactoryData))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving notification data from file : %s, status: %d",
- l_cNotificationFilePath.c_str(), l_estatus);
- }
-
- l_cNotificationFilePath = m_cNotificationPersistFilepath;
- l_cNotificationFilePath += FACTORYCUSTOMERNOTIFICATIONFILE;
- if (eFrameworkunifiedStatusOK != (l_estatus = m_poDataAccesser->RetrieveData(l_cNotificationFilePath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedFactoryCustomerData))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving notification data from file : %s, status: %d",
- l_cNotificationFilePath.c_str(), l_estatus);
- }
-
- l_cNotificationFilePath = m_cNotificationPersistFilepath;
- l_cNotificationFilePath += DEALERNOTIFICATIONFILE;
- if (eFrameworkunifiedStatusOK != (l_estatus = m_poDataAccesser->RetrieveData(l_cNotificationFilePath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedDealerData))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error retrieving notification data from file : %s, status: %d",
- l_cNotificationFilePath.c_str(), l_estatus);
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceReadUserNotificationData
-/// Get the list of all user persistent notifications from a persistent memory and store it in a map.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceReadUserNotificationData(Persistent_Notification_List_Type
- * &f_vpersistentnotificationlist) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_poDataAccesser) { // LCOV_EXCL_BR_LINE 6: m_poDataAccesser would not be null
- l_estatus = m_poDataAccesser->RetrieveData(m_cNotificationUserMemFilepath,
- f_vpersistentnotificationlist,
- eFrameworkunifiedUserData); // LCOV_EXCL_BR_LINE 11:unexpected branch
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// PersistAllReleaseRequests
-/// Persist all released files and folder contained in the map in persistent memory.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::PersistAllReleaseRequests(UI_32 f_uinotificationpersistentservicepersistcategoryflag) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- ENotificationpersistentservicePersistType l_ePersistType = ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST;
- l_ePersistType = (ENotificationpersistentservicePersistType)(l_ePersistType + 1);
-
- // Persist all i.e files and folders
- while (l_ePersistType < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST) {
- if (NULL != m_mPersist_Type[l_ePersistType]) {
- if (eFrameworkunifiedStatusFail == m_mPersist_Type[l_ePersistType]->PersistAllReleaseRequests(f_uinotificationpersistentservicepersistcategoryflag)) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail; // LCOV_EXCL_LINE 4: NSFW error case.
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", l_ePersistType); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- l_ePersistType = (ENotificationpersistentservicePersistType)(l_ePersistType + 1);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentservicePersistAllUserRequests
-/// Persist all user files and folder contained in the map in persistent memory.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentservicePersistAllUserRequests() {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- ENotificationpersistentservicePersistType l_ePersistType = ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST;
- l_ePersistType = (ENotificationpersistentservicePersistType)(l_ePersistType + 1);
-
- // Persist all i.e files and folders
- while (l_ePersistType < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST) {
- if (NULL != m_mPersist_Type[l_ePersistType]) {
- l_estatus = m_mPersist_Type[l_ePersistType]->PersistAllUserRequests();
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", l_ePersistType);
- }
-
- l_ePersistType = (ENotificationpersistentservicePersistType)(l_ePersistType + 1);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetReadThreadHandle
-/// Pass the handle of the read thread to the object of file/folder persistence
-////////////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistenceManager::SetReadThreadHandle(HANDLE f_hreadthread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (f_hreadthread != NULL) { // LCOV_EXCL_BR_LINE 6: f_hreadthread would not be null
- // Set thread handle for object persistfile objects. i.e. for file/folder
- for (Persist_Type_Iter l_itPersist_Type = m_mPersist_Type.begin();
- l_itPersist_Type != m_mPersist_Type.end();
- ++l_itPersist_Type) {
- if (NULL != (*l_itPersist_Type).second) { // LCOV_EXCL_BR_LINE 6: (*l_itPersist_Type).second can't be NULL
- (*l_itPersist_Type).second->SetReadThreadHandle(f_hreadthread);
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetWriteThreadHandle
-/// Pass the handle of the write thread to the object of file/folder persistence
-////////////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistenceManager::SetWriteThreadHandle(HANDLE f_hwritethread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != f_hwritethread) { // LCOV_EXCL_BR_LINE 6: f_hwritethread would not be null
- // Set thread handle for object persist objects. i.e. for file/folder
- for (Persist_Type_Iter l_itPersist_Type = m_mPersist_Type.begin();
- l_itPersist_Type != m_mPersist_Type.end();
- ++l_itPersist_Type) {
- if (NULL != (*l_itPersist_Type).second) { // LCOV_EXCL_BR_LINE 6: (*l_itPersist_Type).second can't be NULL
- (*l_itPersist_Type).second->SetWriteThreadHandle(f_hwritethread);
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetWriteThreadHandle
-/// Pass the handle of the write thread to the object of file/folder persistence
-////////////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistenceManager::SetNorPersistenceThreadHandle(HANDLE f_hwritethread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != f_hwritethread) { // LCOV_EXCL_BR_LINE 6: f_hwritethread would not be null
- m_hNSImmediatePersistenceThread = f_hwritethread;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// NPServiceOnCpWorkerAckCmd
-/// Handles when the CopyWorker sends an ack back for a message received .
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus NPServiceOnCpWorkerAckCmd(HANDLE f_happ) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- NSP_CopyAckMsg l_tack = {};
- if (f_happ) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- if (eFrameworkunifiedStatusOK == (l_estatus = FrameworkunifiedGetMsgDataOfSize(f_happ, (PVOID)&l_tack, sizeof(NSP_CopyAckMsg), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length] // NOLINT[whitespace/line_length]
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "CP_WRK_ACK_CMD_COMPLETE for cmd 0x%X", l_tack.m_eworkerprotocol); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Unable to get message data in NPServiceOnCpWorkerAckCmd, status : 0x%x", l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 4: NSFW error case.
- }
-
- return l_estatus;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetUserPersistentPath
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistenceManager::SetUserPersistentPath(std::string f_cusername) {
- m_cNotificationUserMemFilepath = CPersistence::GetStoragePath();
- m_cNotificationUserMemFilepath += AppName;
- m_cNotificationUserMemFilepath += "/";
- m_cNotificationUserMemFilepath += f_cusername;
- m_cNotificationUserMemFilepath += "/";
- m_cNotificationUserMemFilepath += m_cUserNotificationTag;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// IsUserPersistence
-/// Check if tag is user persistence
-////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CPersistenceManager::IsUserPersistence(std::string f_ctag, ENotificationpersistentservicePersistType f_epersisttype) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- BOOL l_bUserPersistence = FALSE;
-
- // check boundary conditions
- if ((ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST < f_epersisttype) && (f_epersisttype < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST)) { // LCOV_EXCL_BR_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- if (NULL != m_mPersist_Type[f_epersisttype]) { // LCOV_EXCL_BR_LINE 6: m_mPersist_Type[f_epersisttype] can't be null // NOLINT[whitespace/line_length]
- // load file
- l_bUserPersistence = m_mPersist_Type[f_epersisttype]->IsUserPersistence(f_ctag); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT[whitespace/line_length]
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", f_epersisttype); // LCOV_EXCL_LINE 6: m_mPersist_Type[f_epersisttype] can't be null // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Enum value %d is out of bound.", f_epersisttype); // LCOV_EXCL_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bUserPersistence;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// HaveAllReleaseRequestsPersisted
-/// Check if all release requests processed or not
-////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CPersistenceManager::HaveAllReleaseRequestsPersisted() {
- BOOL l_bRetVal = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // check if all files are persisted
- if (FALSE == m_bAllFilePersisted) {
- ENotificationpersistentservicePersistType l_ePersistType = ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST;
- l_ePersistType = (ENotificationpersistentservicePersistType)(l_ePersistType + 1);
-
- std::string l_cTagNotReleased = "";
- std::string l_cTagList = ""; // LCOV_EXCL_BR_LINE 11:except,C++ STL
-
- // Persist all i.e files and folders
- while (l_ePersistType < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST) {
- if (NULL != m_mPersist_Type[l_ePersistType]) {
- l_cTagNotReleased.assign(""); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- // if(eFrameworkunifiedStatusFail == m_mPersist_Type[l_ePersistType]->PersistAllReleaseRequests())
- if (FALSE == m_mPersist_Type[l_ePersistType]->HaveAllReleaseRequestsPersisted(l_cTagNotReleased)) {
- l_bRetVal = FALSE;
- l_cTagList.append(l_cTagNotReleased);
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", l_ePersistType); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- l_ePersistType = (ENotificationpersistentservicePersistType)(l_ePersistType + 1);
- }
-
- if (0 != l_cTagList.size()) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Tags not released:: %s", l_cTagList.c_str());
- }
- }
-
- if (TRUE == l_bRetVal) {
- m_bAllFilePersisted = TRUE;
-
- // if all files are persisted set the return value to the status of immediate data persistency
- l_bRetVal = m_bImmediatedDataPersisted;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bRetVal;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// ResetPersistFlag
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistenceManager::ResetPersistFlag() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- ENotificationpersistentservicePersistType l_ePersistType = ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST;
- l_ePersistType = (ENotificationpersistentservicePersistType)(l_ePersistType + 1);
-
- // Persist all i.e files and folders
- while (l_ePersistType < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST) {
- if (NULL != m_mPersist_Type[l_ePersistType]) {
- m_mPersist_Type[l_ePersistType]->ResetPersistFlag();
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", l_ePersistType); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- l_ePersistType = (ENotificationpersistentservicePersistType)(l_ePersistType + 1);
- }
-
- m_bAllFilePersisted = FALSE;
-
- m_bImmediatedDataPersisted = FALSE;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceReadNorNotificationData
-/// Get the list of all user persistent notifications from a persistent memory and store it in a map.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceReadNorNotificationData(Persistent_Notification_List_Type
- * &f_vpersistentnotificationlist) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (eFrameworkunifiedStatusOK != ReadImmediateNotificationData(f_vpersistentnotificationlist, eFrameworkunifiedUserData)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "No Immediate User data in persistent memory"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- if (eFrameworkunifiedStatusOK != ReadImmediateNotificationData(f_vpersistentnotificationlist, eFrameworkunifiedFactoryData)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "No Immediate Factory data in persistent memory"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- if (eFrameworkunifiedStatusOK != ReadImmediateNotificationData(f_vpersistentnotificationlist, eFrameworkunifiedFactoryCustomerData)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "No Immediate Factory Customer data in persistent memory"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- if (eFrameworkunifiedStatusOK != ReadImmediateNotificationData(f_vpersistentnotificationlist, eFrameworkunifiedDealerData)) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "No Immediate Dealer data in persistent memory"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ClearPersistenceData
-/// Deletes the data from the persistent memory.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::ClearPersistenceData(const EFrameworkunifiedClearPersistence &f_enotificationpersistentserviceclearpersistencescope) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- // persistence memory path to be cleared
- std::string l_cPath = "";
-
- switch (f_enotificationpersistentserviceclearpersistencescope) { // LCOV_EXCL_BR_LINE 6: f_enotificationpersistentserviceclearpersistencescope must be eFrameworkunifiedClearAllData, eFrameworkunifiedClearAllApplicationData, eFrameworkunifiedClearAllNotificationData, eFrameworkunifiedClearCurrentUserData, eFrameworkunifiedClearCurrentUserApplicationData, eFrameworkunifiedClearCurrentUserNotificationData. // NOLINT[whitespace/line_length]
- case eFrameworkunifiedClearAllData: {
- // clears all the data from the persistent memory
- l_cPath.append(CPersistence::GetStoragePath());
- }
- break;
-
- case eFrameworkunifiedClearAllApplicationData: {
- // TODO(my_username): clears all the application folder in persistence memory
- // don't delete the NS_NPS folder
- }
- break;
-
- case eFrameworkunifiedClearAllNotificationData: {
- // TODO(my_username): deletes the NS_NPS folder
- }
- break;
-
- case eFrameworkunifiedClearCurrentUserData: {
- // TODO(my_username): deletes the user folder from all the application folder in persisted memory
- // as well as from the NS_NPS folder
- }
- break;
-
- case eFrameworkunifiedClearCurrentUserApplicationData: {
- // TODO(my_username): deletes the user folder from all the application folder
- }
- break;
-
- case eFrameworkunifiedClearCurrentUserNotificationData: {
- // TODO(my_username): deletes the user folder from the NS_NPS folder
- }
- break;
-
- default: {
- // LCOV_EXCL_START 6: f_enotificationpersistentserviceclearpersistencescope must be eFrameworkunifiedClearAllData, eFrameworkunifiedClearAllApplicationData, eFrameworkunifiedClearAllNotificationData, eFrameworkunifiedClearCurrentUserData, eFrameworkunifiedClearCurrentUserApplicationData, eFrameworkunifiedClearCurrentUserNotificationData. // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "Invalid _EFrameworkunifiedClearPersistence Parameter:: %d", f_enotificationpersistentserviceclearpersistencescope);
- l_estatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- }
- break;
- }
-
- if (0 != l_cPath.size()) {
- if (CFSDirectory::DoesDirecotryExist(l_cPath)) {
- if (TRUE == CFSDirectory::RemoveDirectory(l_cPath)) { // LCOV_EXCL_BR_LINE 6: RemoveDirectory always return ok
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Delete persistent directory successful : %s", l_cPath.c_str());
- } else {
- // LCOV_EXCL_START 6: RemoveDirectory always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Delete persistent directory unsuccessful : %s", l_cPath.c_str());
- l_estatus = eFrameworkunifiedStatusErrOther;
- // LCOV_EXCL_STOP
- }
- }
- } else {
- l_estatus = eFrameworkunifiedStatusErrOther;
- }
-
- // delete NOR data
- l_cPath.clear();
- l_cPath.append(IMMEDIATE_PERSISTENCE_STORAGE_V2);
- if (0 != l_cPath.size()) { // LCOV_EXCL_BR_LINE 6: l_cPath.size can't be 0
- if (CFSDirectory::DoesDirecotryExist(l_cPath)) {
- if (TRUE == CFSDirectory::RemoveDirectory(l_cPath)) { // LCOV_EXCL_BR_LINE 6: RemoveDirectory always return ok
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Delete nor persistent directory successful : %s", l_cPath.c_str());
- } else {
- // LCOV_EXCL_START 6: RemoveDirectory always return ok
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Delete nor persistent directory unsuccessful : %s", l_cPath.c_str());
- l_estatus = eFrameworkunifiedStatusErrOther;
- // LCOV_EXCL_STOP
- }
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusErrOther; // LCOV_EXCL_LINE 6: l_cPath.size can't be 0
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceSetPersistentCategory
-/// Sets the persist type of file or folder.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::NotificationpersistentserviceSetPersistentCategory(std::string f_crequestorname,
- std::string f_ctag,
- EFrameworkunifiedPersistCategory f_epersistcategory,
- ENotificationpersistentservicePersistType f_epersisttype) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- if (f_ctag.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_ctag.size can't be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Tag name is empty."); // LCOV_EXCL_LINE 6: double check, f_ctag.size can't be empty
- } else {
- // check boundary conditions
- if ((ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST < f_epersisttype) && (f_epersisttype < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST)) { // LCOV_EXCL_BR_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- if (NULL != m_mPersist_Type[f_epersisttype]) { // LCOV_EXCL_BR_LINE 6: m_mPersist_Type[f_epersisttype] can't be null // NOLINT[whitespace/line_length]
- // set the persist type
- l_estatus = m_mPersist_Type[f_epersisttype]->SetPersistentCategory(f_crequestorname,
- f_ctag,
- f_epersistcategory);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistence object for %d is null.", f_epersisttype); // LCOV_EXCL_LINE 6: m_mPersist_Type[f_epersisttype] can't be null // NOLINT[whitespace/line_length]
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Enum value %d is out of bound.", f_epersisttype); // LCOV_EXCL_LINE 6: f_epersisttype is always bigger then ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST and less then ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST // NOLINT[whitespace/line_length]
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// PersistNORData
-/// Sends the message to Immediate Persistence Thread to Persists the data immediately or reset
-/// the NOR data depending on persist category flag during shutdown irrespective of delay.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::PersistNORData(EFrameworkunifiedShutdownType f_eshutdowntype, UI_32 f_uinotificationpersistentservicepersistcategoryflag) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- TImmediateShutdown l_tImmShutdown = {};
- l_tImmShutdown.f_eshutdowntype = f_eshutdowntype;
- l_tImmShutdown.f_uinotificationpersistentservicepersistcategoryflag = f_uinotificationpersistentservicepersistcategoryflag;
-
- // send the message to NOR to persist or reset the data during shutdown
- if (NULL != CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK != (l_estatus = McSend(CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread, AppName, NOR_PERSISTENCE_ONSHUTDOWN, sizeof(l_tImmShutdown), &l_tImmShutdown))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "McSend for cmd 0x%X failed", NOR_PERSISTENCE_ONSHUTDOWN); // LCOV_EXCL_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetImmediateDataPersistedStatus
-/// Set/Reset the persistence status of immediate persistence data
-///////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistenceManager::SetImmediateDataPersistedStatus(BOOL f_bstatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_bImmediatedDataPersisted = f_bstatus;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetFilePersistedStatus
-/// Set/Reset the persistence status of files and folders
-///////////////////////////////////////////////////////////////////////////////////////////
-VOID CPersistenceManager::SetFilePersistedStatus(BOOL f_bstatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_bAllFilePersisted = f_bstatus;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ReadImmediateNotificationData
-/// Get the list of all immediate persistent notifications of f_epersistcategory from a
-/// persistent memory and store it in a map.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CPersistenceManager::ReadImmediateNotificationData(Persistent_Notification_List_Type
- * &f_vpersistentnotificationlist,
- const EFrameworkunifiedPersistCategory f_epersistcategory) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- std::string l_pcPath = IMMEDIATE_PERSISTENCE_STORAGE_V2;
- std::string l_cNotificationName = ""; // LCOV_EXCL_BR_LINE 11:except,C++ STL
- // stores the list of invalid immediate notification files at persistent location
- std::string l_cInvalidFileList = ""; // LCOV_EXCL_BR_LINE 11:except,C++ STL
-
- PCSTR l_pPublisherName = NULL;
- PSTR l_pData = NULL;
- UI_32 l_uiDataSize = 0;
-
- NC_NorPersistentData l_ptNorPersistentData = {};
-
- TFileList l_pTFileList;
-
- if ('/' != l_pcPath[l_pcPath.length() - 1]) { // LCOV_EXCL_BR_LINE 6: the last char is always '/'
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_pcPath.append("/"); // LCOV_EXCL_LINE 6: the last char is always '/'
- }
-
- switch (f_epersistcategory) {
- case eFrameworkunifiedFactoryData: {
- l_pcPath.append(FACTORYDATADIR); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- }
- break;
-
- case eFrameworkunifiedFactoryCustomerData: {
- l_pcPath.append(FACTORYCUSTOMERDATADIR); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- }
- break;
-
- case eFrameworkunifiedDealerData: {
- l_pcPath.append(DEALERDATADIR); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- }
- break;
-
- case eFrameworkunifiedUserData:
- default: {
- l_pcPath.append(USERDATADIR); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- l_pcPath.append(ALLUSERAPPDATADIR); // LCOV_EXCL_BR_LINE 11:except,C++ STL
- }
- break;
- }
-
- l_pcPath.append(IMMEDIATEDATADIR); // LCOV_EXCL_BR_LINE 11:except,C++ STL
-
- if (eFrameworkunifiedStatusOK == GetFileList(&l_pTFileList, l_pcPath.c_str())) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- if (!l_pTFileList.empty()) { // LCOV_EXCL_BR_LINE 200: if GetFileList() returns eFrameworkunifiedStatusOK, l_pTFileList can't be empty // NOLINT[whitespace/line_length]
- for (UI_32 l_uiCount = 0; l_uiCount < l_pTFileList.size(); l_uiCount++) {
- l_uiDataSize = 0;
-
- // get the persistent notification name from vector
- l_cNotificationName = l_pTFileList.at(l_uiCount);
-
- if (eFrameworkunifiedStatusOK == NPSynchronousGetPersistentDataSize(l_cNotificationName.c_str(), &l_uiDataSize, // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- f_epersistcategory) && (0 != l_uiDataSize)) {
- l_pData = new(std::nothrow) CHAR[l_uiDataSize];
- std::memset(l_pData, 0, l_uiDataSize);
-
- if (NULL != l_pData) { // LCOV_EXCL_BR_LINE 6: l_pData can't be null
- l_pPublisherName = NULL;
-
- // clear the memory
- std::memset(&l_ptNorPersistentData, 0, sizeof(NC_NorPersistentData));
-
- // As NS_NPP does a recursive filename read from directory it has the complete filename.
- // So it does not require to pass the Publisher name i.e. l_pPublisherName.So it is being passed as NULL.
- if (eFrameworkunifiedStatusOK == NPSynchronousGetPersistentData(l_pPublisherName, // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length]
- l_cNotificationName.c_str(),
- (PVOID)l_pData,
- l_uiDataSize,
- l_ptNorPersistentData,
- f_epersistcategory)) {
- CNotificationsToPersist *l_objCNotificationsToPersist = new(std::nothrow) CNotificationsToPersist();
- if (NULL != l_objCNotificationsToPersist) { // LCOV_EXCL_BR_LINE 6: l_objCNotificationsToPersist can't be null // NOLINT[whitespace/line_length]
- CPersistentData *l_objCPersistentData = new(std::nothrow) CPersistentData();
-
- // fill the appropriate values in l_objCNotificationsToPersist
- if (NULL != l_objCPersistentData) { // LCOV_EXCL_BR_LINE 6: l_objCPersistentData can't be null
- l_objCPersistentData->m_pMessage = new(std::nothrow) CHAR[l_ptNorPersistentData.dataSize];
- std::memset(l_objCPersistentData->m_pMessage, 0, l_ptNorPersistentData.dataSize);
-
- if (NULL != l_objCPersistentData->m_pMessage) { // LCOV_EXCL_BR_LINE 6: l_objCPersistentData->m_pMessage can't be null // NOLINT[whitespace/line_length]
- std::memcpy(l_objCPersistentData->m_pMessage, l_pData, l_ptNorPersistentData.dataSize);
-
- l_objCNotificationsToPersist->m_uiMaxMsgLength = l_ptNorPersistentData.uiMaxSize;
- l_objCPersistentData->m_uiMsgSize = l_ptNorPersistentData.dataSize;
- l_objCNotificationsToPersist->m_ePersistentType = eFrameworkunifiedImmediatePersistedStateVar;
-
- l_objCNotificationsToPersist->m_cNotificationName = l_ptNorPersistentData.notificationName;
- l_objCNotificationsToPersist->m_cPublisherName = l_ptNorPersistentData.pPublisherName;
- l_objCNotificationsToPersist->m_uiDelay = l_ptNorPersistentData.uiDelay;
-
- l_objCNotificationsToPersist->m_pPersistentData = l_objCPersistentData;
-
- l_objCNotificationsToPersist->m_ePersistCategory = f_epersistcategory;
-
- f_vpersistentnotificationlist->push_back(l_objCNotificationsToPersist);
- } else {
- // LCOV_EXCL_START 6: l_objCPersistentData->m_pMessage can't be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Memory allocation error for notification data of size %d",
- l_ptNorPersistentData.dataSize);
-
- if (NULL != l_objCNotificationsToPersist) {
- delete l_objCNotificationsToPersist;
- l_objCNotificationsToPersist = NULL;
- }
-
- if (NULL != l_objCPersistentData) {
- delete l_objCPersistentData;
- l_objCPersistentData = NULL;
- }
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_objCPersistentData can't be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Memory allocation error for CPersistentData object");
-
- if (NULL != l_objCNotificationsToPersist) {
- delete l_objCNotificationsToPersist;
- l_objCNotificationsToPersist = NULL;
- }
- // LCOV_EXCL_STOP
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Memory allocation error for CNotificationsToPersist object"); // LCOV_EXCL_LINE 6: l_objCNotificationsToPersist can't be null // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_cInvalidFileList.append(l_cNotificationName);
- l_cInvalidFileList.append(",");
- // LCOV_EXCL_STOP
- }
-
- delete[] l_pData;
- l_pData = NULL;
- } else {
- // LCOV_EXCL_START 6: l_pData can't be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Persistent data received as NULL from immediate notification file :: %s",
- l_cNotificationName.c_str());
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_cInvalidFileList.append(l_cNotificationName);
- l_cInvalidFileList.append(",");
- // LCOV_EXCL_STOP
- }
- }
-
- if (0 != l_cInvalidFileList.size()) { // LCOV_EXCL_START 200: l_cInvalidFileList's size must be 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- "Unable to get persistent data for following immediate notification files :: %s",
- l_cInvalidFileList.c_str());
- }
- // LCOV_EXCL_STOP
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "No Immediate persistence data available at :: %s", l_pcPath.c_str()); // LCOV_EXCL_LINE 200: if GetFileList() returns eFrameworkunifiedStatusOK, l_pTFileList can't be empty // NOLINT[whitespace/line_length]
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to get the list of files from Immediate persistent location :: %s",
- l_pcPath.c_str());
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-#ifdef NPP_PROFILEINFO_ENABLE
-
-EFrameworkunifiedStatus CPersistenceManager::GetPersistenceProfilingData(std::string &f_cpersistenceprofileinfo) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- f_cpersistenceprofileinfo.append("Application Name,");
- f_cpersistenceprofileinfo.append("Tag Name,");
- f_cpersistenceprofileinfo.append("Type,");
- f_cpersistenceprofileinfo.append("UserSpecific,");
- f_cpersistenceprofileinfo.append("Released,");
- f_cpersistenceprofileinfo.append("Persisted");
-
- CPersistence *l_pPersistence = m_mPersist_Type[ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE];
- l_pPersistence->GetPersistenceProfilingData(f_cpersistenceprofileinfo);
-
- l_pPersistence = m_mPersist_Type[ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER];
- l_pPersistence->GetPersistenceProfilingData(f_cpersistenceprofileinfo);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-#endif
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_persistent_data.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_persistent_data.cpp
deleted file mode 100755
index 8a9127e..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_persistent_data.cpp
+++ /dev/null
@@ -1,58 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CPersistentData.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include "ns_npp_persistent_data.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// CPersistentData
-/// Constructor of CPersistentData class
-////////////////////////////////////////////////////////////////////////////////////////////////
-CPersistentData::CPersistentData() {
- m_pMessage = NULL;
- m_uiMsgSize = 0;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CPersistentData
-/// Destructor of CPersistentData class
-////////////////////////////////////////////////////////////////////////////////////////////////
-CPersistentData::~CPersistentData() {
- if (NULL != m_pMessage) {
- delete[](static_cast<PCHAR>(m_pMessage)); // LCOV_EXCL_BR_LINE 11: unexpected branch
- m_pMessage = NULL;
- }
-}
-
-
-
-
-
-
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_personalization_manager.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_personalization_manager.cpp
deleted file mode 100755
index 4371465..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_personalization_manager.cpp
+++ /dev/null
@@ -1,181 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CnotificationpersistentservicePersonalizationManager.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <utility>
-#include <string>
-#ifdef AGL_STUB
-#include "ns_npp_personalization_manager.h"
-#else
-#include "ns_npp_Personalization_manager.h"
-#endif
-#include "ns_npp_notificationpersistentservicelog.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CnotificationpersistentservicePersonalizationManager
-/// Constructor of CnotificationpersistentservicePersonalizationManager class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CnotificationpersistentservicePersonalizationManager::CnotificationpersistentservicePersonalizationManager() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_uiUserId = 0;
-
- m_cCurrentPersonality.clear();
-
- m_pmPersonality = new(std::nothrow) Personality_Type(); // LCOV_EXCL_BR_LINE 11: except,C++ STL
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CnotificationpersistentservicePersonalizationManager
-/// Destructor of CnotificationpersistentservicePersonalizationManager class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CnotificationpersistentservicePersonalizationManager::~CnotificationpersistentservicePersonalizationManager() { // LCOV_EXCL_START 14: Resident process, global instance not released // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_pmPersonality) {
- m_pmPersonality->clear();
-
- delete m_pmPersonality;
- m_pmPersonality = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceGetPersonality
-/// This function is used to get the current personality.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CnotificationpersistentservicePersonalizationManager::NotificationpersistentserviceGetPersonality(std::string &f_cpersonalityname) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- f_cpersonalityname = m_cCurrentPersonality;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceSetPersonality
-/// This function is used to set the new personality.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CnotificationpersistentservicePersonalizationManager::NotificationpersistentserviceSetPersonality(const std::string f_cpersonalityname) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // iterator to find personality name from map of personality
- Personality_Type::iterator l_itPersonality;
-
- if (!f_cpersonalityname.empty()) {
- if (NULL != m_pmPersonality) { // LCOV_EXCL_BR_LINE 6: double check, m_pmPersonality can't be NULL
- l_itPersonality = m_pmPersonality->find(f_cpersonalityname);
-
- // if personality found in map
- if (m_pmPersonality->end() != l_itPersonality) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Personality found in map");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Personality not found in map");
-
- l_estatus = CreatePersonality(f_cpersonalityname);
- }
-
- m_cCurrentPersonality = f_cpersonalityname;
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "map object is NULL"); // LCOV_EXCL_LINE 6: m_pmPersonality can't be NULL
- }
- } else {
- l_estatus = eFrameworkunifiedStatusInvldParam;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CreatePersonality
-/// This function is used to create new Personality.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CnotificationpersistentservicePersonalizationManager::CreatePersonality(const std::string &f_cpersonalityname) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_pmPersonality) { // LCOV_EXCL_BR_LINE 6: m_pmPersonality can't be NULL
- CNotificationpersistentservicePersonality *l_pPersonality = new(std::nothrow) CNotificationpersistentservicePersonality(); // LCOV_EXCL_BR_LINE 11: unexpected branch
-
- if (NULL != l_pPersonality) { // LCOV_EXCL_BR_LINE 5: It's impossible to mock new() function
- l_pPersonality->m_uiUserId = ++m_uiUserId;
- l_pPersonality->m_cUserName = f_cpersonalityname;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Inserting new personality in map"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- m_pmPersonality->insert(make_pair(f_cpersonalityname, l_pPersonality));
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "map object is NULL"); // LCOV_EXCL_LINE 6: m_pmPersonality can't be NULL
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// NotificationpersistentserviceIsValidPersonality
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CnotificationpersistentservicePersonalizationManager::NotificationpersistentserviceIsValidPersonality(const std::string f_cpersonalityname) {
- BOOL l_bReturnValue = FALSE;
- // iterator to find personality name from map of personality
- Personality_Type::iterator l_itPersonality;
- if (NULL != m_pmPersonality) { // LCOV_EXCL_BR_LINE 6: m_pmPersonality can't be NULL
- l_itPersonality = m_pmPersonality->find(f_cpersonalityname);
-
- // if personality found in map
- if (m_pmPersonality->end() != l_itPersonality) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Personality found in map");
- l_bReturnValue = TRUE;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Personality not found in map");
- }
- } else {
- // LCOV_EXCL_START 6: m_pmPersonality can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "map object is NULL");
- // LCOV_EXCL_STOP
- }
-
- return l_bReturnValue;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_registry_entry.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_registry_entry.cpp
deleted file mode 100755
index dc74580..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_registry_entry.cpp
+++ /dev/null
@@ -1,333 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NPPService
-/// \brief The file contains declaration of CRegistryEntry class.
-///
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <string>
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_registry_entry.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// Constructor
-////////////////////////////////////////////////////////////////////////////////////////////
-CRegistryEntry::CRegistryEntry(const std::string &f_ctag, const std::string &f_crequester,
- const std::string &f_cstoragepath,
- const BOOL f_bisuserpersistence):
- m_eJobState(ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEIDLE),
- m_cTag(f_ctag),
- m_cRequestor(f_crequester),
- m_bIsReleased(FALSE),
- m_bIsPersisted(FALSE),
- m_bIsUserPersistence(f_bisuserpersistence),
- m_eCurrentAction(LOADTYPE_NONE),
- m_ePersistType(ENOTIFICATIONPERSISTENTSERVICEPERSISTNONE),
- m_ePersistCategory(eFrameworkunifiedUserData) {
- m_cBasePath.clear();
-
- // set base path.
- m_cBasePath += f_cstoragepath;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// Copy Constructor
-////////////////////////////////////////////////////////////////////////////////////////////
-CRegistryEntry::CRegistryEntry(const CRegistryEntry &in):
- m_eJobState(ENOTIFICATIONPERSISTENTSERVICEPERSISTJObSTATEIDLE),
- m_cTag(in.m_cTag),
- m_cRequestor(in.m_cRequestor),
- m_bIsReleased(in.m_bIsReleased),
- m_bIsPersisted(in.m_bIsPersisted),
- m_cPersistPath(in.m_cPersistPath),
- m_cBasePath(in.m_cBasePath),
- m_bIsUserPersistence(in.m_bIsUserPersistence),
- m_eCurrentAction(in.m_eCurrentAction),
- m_ePersistType(in.m_ePersistType),
- m_ePersistCategory(in.m_ePersistCategory) {
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// Operator overload
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-CRegistryEntry &CRegistryEntry::operator=(const CRegistryEntry &in) { // LCOV_EXCL_START 8: never be used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- if (this != &in) {
- m_eJobState = in.m_eJobState;
- m_cTag = in.m_cTag;
- m_cRequestor = in.m_cRequestor;
- m_bIsReleased = in.m_bIsReleased;
- m_bIsPersisted = in.m_bIsPersisted;
- m_cPersistPath = in.m_cPersistPath;
- m_cBasePath = in.m_cBasePath;
- m_bIsUserPersistence = in.m_bIsUserPersistence;
- m_ePersistType = in.m_ePersistType;
- }
- return *this;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetReleasePath
-/// Set release path.
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID CRegistryEntry::SetReleasePath(const std::string &f_creleasepath) {
- m_bIsReleased = TRUE;
- m_cReleasePath = f_creleasepath;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetBeingPersisted
-/// Set the file/folder is being persisted.
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID CRegistryEntry::SetBeingPersisted() {
- if (LOADTYPE_RELEASE == m_eCurrentAction) {
- m_bIsPersisted = TRUE;
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// IsReleased
-/// File/folder released or not.
-////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CRegistryEntry::IsReleased() const {
- return m_bIsReleased;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// HasntBeenPersisted
-/// File/Folder persisted or not
-////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CRegistryEntry::HasntBeenPersisted() const {
- return !m_bIsPersisted;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// IsPersisted
-/// File persisted or not
-////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CRegistryEntry::IsPersisted() const {
- return m_bIsPersisted;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPersistPath
-/// Get the persist path.
-////////////////////////////////////////////////////////////////////////////////////////////
-std::string CRegistryEntry::GetPersistPath() const {
- return m_cPersistPath;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// GetReleasePath
-/// Get the release path.
-////////////////////////////////////////////////////////////////////////////////////////////
-std::string CRegistryEntry::GetReleasePath() const {
- return m_cReleasePath;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// GetLoadPath
-/// Get the load path.
-////////////////////////////////////////////////////////////////////////////////////////////
-std::string CRegistryEntry::GetLoadPath(ENotificationpersistentservicePersistType f_epersisttype, std::string f_cusername) const {
- std::string l_cLoadPath = "";
-
- if (f_epersisttype > ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST && f_epersisttype < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST) { // LCOV_EXCL_BR_LINE 6: f_epersisttype must be in range. // NOLINT[whitespace/line_length]
- l_cLoadPath = m_cBasePath;
-
- switch (m_ePersistCategory) {
- case eFrameworkunifiedUserData: {
- l_cLoadPath += USERDATADIR;
-
- // Check if to persist for user
- if (m_bIsUserPersistence) {
- // if its a user file, user name can't be empty
- if (!f_cusername.empty()) { // LCOV_EXCL_BR_LINE 6: f_cusername can't be empty
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Tag %s is registered for user %s", m_cTag.c_str(), f_cusername.c_str());
- l_cLoadPath += f_cusername;
- l_cLoadPath += "/";
- }
- } else {
- l_cLoadPath += ALLUSERAPPDATADIR;
- }
-
- break;
- }
- case eFrameworkunifiedFactoryData: {
- l_cLoadPath += FACTORYDATADIR;
- break;
- }
- case eFrameworkunifiedFactoryCustomerData: {
- l_cLoadPath += FACTORYCUSTOMERDATADIR;
- break;
- }
- case eFrameworkunifiedDealerData: {
- l_cLoadPath += DEALERDATADIR;
- break;
- }
- }
-
- l_cLoadPath += m_cRequestor;
- l_cLoadPath += "/";
-
- // file and folder persistency has different storage paths mapped
- if (ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE == f_epersisttype) {
- l_cLoadPath += "NSFile/";
- } else if (ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER == f_epersisttype) { // LCOV_EXCL_BR_LINE 6: f_epersisttype must be ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE or ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER. // NOLINT[whitespace/line_length]
- l_cLoadPath += "NSFolder/";
- }
-
- l_cLoadPath += m_cTag;
- }
-
- return l_cLoadPath;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// GetRequester
-/// Get the name of requester.
-////////////////////////////////////////////////////////////////////////////////////////////
-std::string CRegistryEntry::GetRequester() const {
- return m_cRequestor;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// GetTag
-/// Get the tag.
-////////////////////////////////////////////////////////////////////////////////////////////
-std::string CRegistryEntry::GetTag() const {
- return m_cTag;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// IsUserPersistence
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CRegistryEntry::IsUserPersistence() {
- return m_bIsUserPersistence;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetCurrentAction
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID CRegistryEntry::SetCurrentAction(ENPS_Loadtype f_ecurrentaction) {
- m_eCurrentAction = f_ecurrentaction;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// ResetPersistedFlag
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID CRegistryEntry::ResetPersistedFlag() {
- m_bIsPersisted = FALSE;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetPersistProperties
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID CRegistryEntry::SetPersistProperties(ENotificationpersistentservicePersistType f_epersisttype, std::string f_cusername) {
- if (f_epersisttype > ENOTIFICATIONPERSISTENTSERVICEPERSISTFIRST && f_epersisttype < ENOTIFICATIONPERSISTENTSERVICEPERSISTLAST) { // LCOV_EXCL_BR_LINE 6: f_epersisttype must be in range. // NOLINT[whitespace/line_length]
- // set the persist type
- m_ePersistType = f_epersisttype;
-
- // set the persist file based on the persist type and username (if a user file)
- m_cPersistPath = m_cBasePath;
-
- switch (m_ePersistCategory) {
- case eFrameworkunifiedUserData: {
- m_cPersistPath += USERDATADIR;
-
- // Check if to persist for user
- if (m_bIsUserPersistence) {
- // if its a user file, user name can't be empty
- if (!f_cusername.empty()) { // LCOV_EXCL_BR_LINE 6: f_cusername can't be empty
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Tag %s is registered for user %s", m_cTag.c_str(), f_cusername.c_str());
- m_cPersistPath += f_cusername;
- m_cPersistPath += "/";
- }
- } else {
- m_cPersistPath += ALLUSERAPPDATADIR;
- }
-
- break;
- }
- case eFrameworkunifiedFactoryData: {
- m_cPersistPath += FACTORYDATADIR;
- break;
- }
- case eFrameworkunifiedFactoryCustomerData: {
- m_cPersistPath += FACTORYCUSTOMERDATADIR;
- break;
- }
- case eFrameworkunifiedDealerData: {
- m_cPersistPath += DEALERDATADIR;
- break;
- }
- }
-
- m_cPersistPath += m_cRequestor;
- m_cPersistPath += "/";
-
- // file and folder persistency has different storage paths mapped
- if (ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE == f_epersisttype) {
- m_cPersistPath += "NSFile/";
- } else if (ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER == f_epersisttype) { // LCOV_EXCL_BR_LINE 6: f_epersisttype must be ENOTIFICATIONPERSISTENTSERVICEPERSISTFILE or ENOTIFICATIONPERSISTENTSERVICEPERSISTFOLDER. // NOLINT[whitespace/line_length]
- m_cPersistPath += "NSFolder/";
- }
-
- m_cPersistPath += m_cTag;
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPersistType
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-ENotificationpersistentservicePersistType CRegistryEntry::GetPersistType() const {
- return m_ePersistType;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// SetPersistentCategory
-/// Sets the persistent type related to tag
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CRegistryEntry::SetPersistentCategory(EFrameworkunifiedPersistCategory f_epersistcategory) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
-
- m_ePersistCategory = f_epersistcategory;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPersistentCategory
-/// Gets the persistent type of a tag
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedPersistCategory CRegistryEntry::GetPersistentCategory() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return m_ePersistCategory;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_regular_notification.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_regular_notification.cpp
deleted file mode 100755
index 6d75091..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_regular_notification.cpp
+++ /dev/null
@@ -1,158 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CRegularNotification.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/ns_message_center_if.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <mqueue.h>
-#include <iostream>
-#include <string>
-#include <native_service/ns_mc_system_info.h>
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_regular_notification.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CRegularNotification
-/// Constructor of CRegularNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CRegularNotification::CRegularNotification(const std::string &f_cnotificationname,
- const UI_32 f_uimaxmsgsize):
- CNotification(f_cnotificationname, f_uimaxmsgsize) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_ePersistentType = eFrameworkunifiedNotificationVar;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CRegularNotification
-/// Destructor of CRegularNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CRegularNotification::~CRegularNotification() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// AddEventReciever
-/// This function adds the name of the application to receiver list of particular notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CRegularNotification::AddEventReciever(const std::string &f_csubscribername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (!f_csubscribername.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_csubscribername can't be empty
- l_estatus = AddReceiverInMap(f_csubscribername);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam; // LCOV_EXCL_LINE 6: f_csubscribername can't be empty
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Publish
-/// This function publishes the notification to subscribed clients.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CRegularNotification::Publish(const std::string &f_cservicename,
- PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // Message Queue Handle
- HANDLE l_hMsgQHandle = NULL;
-
- // Pointer to class CNotificationReceiver
- CNotificationReceiver *l_pNotificationReceiver = NULL;
-
- // Iterator for Notification Receiver map
- NotifReceiver_Iterator_Type l_itrNotifReceiver;
-
- if (m_uiMaxMsgSize >= f_uimsgsize) {
- if (0 == m_cServiceName.compare(f_cservicename)) {
- for (l_itrNotifReceiver = m_pmSubscribersList->begin();
- l_itrNotifReceiver != m_pmSubscribersList->end();
- l_itrNotifReceiver++) {
- l_pNotificationReceiver = l_itrNotifReceiver->second;
-
- if (NULL != l_pNotificationReceiver) { // LCOV_EXCL_BR_LINE 6: l_pNotificationReceiver can't be NULL
- l_hMsgQHandle = l_pNotificationReceiver->m_MsgQHandle;
-
- if (NULL != l_hMsgQHandle) { // LCOV_EXCL_BR_LINE 6: l_hMsgQHandle can't be NULL
- if (eFrameworkunifiedStatusOK != (l_estatus = PublishData(l_hMsgQHandle, f_pmessage, f_uimsgsize))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error Publishing notification %s to %s published by %s, error status: 0x%x",
- m_cNotificationName.c_str(), l_itrNotifReceiver->first.c_str(), f_cservicename.c_str(), l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_hMsgQHandle can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "MsgQ Handle NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: l_pNotificationReceiver can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pNotificationReceiver is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't publish notification %s. Registered by %s and published by %s.",
- m_cNotificationName.c_str(), m_cServiceName.c_str(), f_cservicename.c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in "native_service/ns_logger_if.h"
- l_estatus = eFrameworkunifiedStatusInvldParam;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't publish notification %s. Message data size (%d) is greater than maximum registered data size (%d)",
- m_cNotificationName.c_str(), f_uimsgsize, m_uiMaxMsgSize);
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_state_nor_persistence_notification.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_state_nor_persistence_notification.cpp
deleted file mode 100755
index 7898f38..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_state_nor_persistence_notification.cpp
+++ /dev/null
@@ -1,305 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CStateNorPersistenceNotification.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <errno.h>
-#include <native_service/ns_message_center_if.h>
-#include <string>
-#include <iostream>
-
-#include "ns_npp_types.h"
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_persistent_data.h"
-#include "ns_npp_state_nor_persistence_notification.h"
-
-HANDLE CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread = NULL;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CStateNorPersistenceNotification
-/// Constructor of CStateNorPersistenceNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStateNorPersistenceNotification::CStateNorPersistenceNotification(const std::string &f_cnotificationname,
- const UI_32 f_uimaxmsgsize,
- const UI_32 f_uidelay,
- const EFrameworkunifiedPersistCategory f_epersistcategory):
- CStateNotification(f_cnotificationname, f_uimaxmsgsize),
- m_uiDelay(f_uidelay),
- m_ePersistCategory(f_epersistcategory) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_ePersistentType = eFrameworkunifiedImmediatePersistedStateVar;
-
- // also, register the notification with worker thread responsible for writing notification data
- if (NULL != CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread) { // LCOV_EXCL_BR_LINE 6: CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread can not be null // NOLINT[whitespace/line_length]
- TImmediatePersistenceRegisterNotifInfo l_tRegisterNotifInfo = {};
- std::strncpy(l_tRegisterNotifInfo.m_cnotificationname,
- f_cnotificationname.c_str(),
- sizeof(l_tRegisterNotifInfo.m_cnotificationname) - 1);
- l_tRegisterNotifInfo.m_uidelay = f_uidelay;
- l_tRegisterNotifInfo.m_epersistcategory = f_epersistcategory;
-
- if (eFrameworkunifiedStatusOK != McSend(CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread, AppName, NOR_PERSISTENCE_REGISTER, sizeof(l_tRegisterNotifInfo), &l_tRegisterNotifInfo)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "McSend for cmd 0x%X failed", NOR_PERSISTENCE_REGISTER); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CStateNorPersistenceNotification
-/// Constructor of CStateNorPersistenceNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStateNorPersistenceNotification::~CStateNorPersistenceNotification() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // also, unregister the notification with worker thread responsible for writing notification data
- if (NULL != CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread) { // LCOV_EXCL_BR_LINE 6: CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread can not be null // NOLINT[whitespace/line_length]
- TImmediatePersistenceUnregisterNotifInfo l_tUnregisterNotifInfo = {};
- std::strncpy(l_tUnregisterNotifInfo.m_cnotificationname,
- GetNotificationName().c_str(), // LCOV_EXCL_BR_LINE 11: except,C++ STL
- sizeof(l_tUnregisterNotifInfo.m_cnotificationname) - 1);
-
- if (eFrameworkunifiedStatusOK != McSend(CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread, AppName, NOR_PERSISTENCE_UNREGISTER, sizeof(l_tUnregisterNotifInfo), &l_tUnregisterNotifInfo)) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "McSend for cmd 0x%X failed", NOR_PERSISTENCE_UNREGISTER); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPersistenceDelay
-/// Method to get the persistence time delay.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-UI_32 CStateNorPersistenceNotification::GetPersistenceDelay() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return m_uiDelay;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Publish
-/// This function publishes the notification to subscribed clients and saves the data
-/// immediately to persistent memory.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNorPersistenceNotification::Publish(const std::string &f_cservicename,
- PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (eFrameworkunifiedStatusOK == (l_estatus = PublishNotification(f_cservicename,
- f_pmessage,
- f_uimsgsize))) {
- if (eFrameworkunifiedStatusOK != (l_estatus = SaveDataToNor(f_pmessage, f_uimsgsize))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error in saving persistent data on nor for %s published by %s, status: %d",
- m_cNotificationName.c_str(), f_cservicename.c_str(), l_estatus); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// PublishNotification
-/// This function publishes the notification to subscribed clients.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNorPersistenceNotification::PublishNotification(const std::string &f_cservicename,
- PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- l_estatus = CStateNotification::Publish(f_cservicename, f_pmessage, f_uimsgsize);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SaveDataToNor
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNorPersistenceNotification::SaveDataToNor(PVOID f_pmessage, const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != f_pmessage && f_uimsgsize > 0) {
- TNorPersistenceNotifInfoHeader l_tNorPersistentData = {};
- UI_32 l_ui32SendDataTotalLength = static_cast<UI_32>(sizeof(TNorPersistenceNotifInfoHeader) + f_uimsgsize);
- UI_8 *l_ui8SendData = new(std::nothrow) UI_8[l_ui32SendDataTotalLength];
- UI_8 *l_ui8TmpOffset = l_ui8SendData;
-
- if (NULL != l_ui8SendData) { // LCOV_EXCL_BR_LINE 6: l_ui8SendData can't be NULL
- std::strncpy(l_tNorPersistentData.m_cnotificationname,
- this->GetNotificationName().c_str(),
- sizeof(l_tNorPersistentData.m_cnotificationname) - 1);
- std::strncpy(l_tNorPersistentData.m_cpublishername,
- this->GetPublisherName().c_str(),
- sizeof(l_tNorPersistentData.m_cpublishername) - 1);
- l_tNorPersistentData.m_epersistenttype = this->GetNotificationType();
- l_tNorPersistentData.m_uimaxmsglength = this->GetMaxMessageSize();
- l_tNorPersistentData.m_uidelay = this->GetPersistenceDelay();
- l_tNorPersistentData.m_uimsgsize = f_uimsgsize;
- l_tNorPersistentData.m_epersistcategory = m_ePersistCategory;
-
- std::memset(l_ui8SendData, 0, l_ui32SendDataTotalLength);
- std::memcpy(l_ui8SendData, &l_tNorPersistentData, sizeof(l_tNorPersistentData));
- l_ui8TmpOffset += sizeof(l_tNorPersistentData);
- std::memcpy(l_ui8TmpOffset, f_pmessage, f_uimsgsize);
-
- // issue a copy to the worker thread
- if (NULL != CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread) { // LCOV_EXCL_BR_LINE 6: CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread can not be null // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK != (l_estatus = McSend(CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread, AppName, NOR_PERSISTENCE_TIMER_START, l_ui32SendDataTotalLength, l_ui8SendData))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "McSend for nor worker thread failed %d ", l_estatus); // LCOV_EXCL_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- }
- } else {
- // LCOV_EXCL_START 6: CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread can not be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Sender handle of nor worker thread is NULL. Can't send message.");
- // LCOV_EXCL_STOP
- }
-
- delete[] l_ui8SendData; // LCOV_EXCL_BR_LINE 11: unexpected branch
- l_ui8SendData = NULL;
- } else {
- // LCOV_EXCL_START 6: l_ui8SendData can not be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- l_estatus = eFrameworkunifiedStatusInvldParam;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Notification data is NULL, size is %d", f_uimsgsize); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPersistentCategory
-/// Gets the persist type of notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedPersistCategory CStateNorPersistenceNotification::GetPersistentCategory() { // LCOV_EXCL_START 100: never be used
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return m_ePersistCategory;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetPersistentCategory
-/// Sets the persist type of notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNorPersistenceNotification::SetPersistentCategory(const EFrameworkunifiedPersistCategory f_epersistcategory) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (f_epersistcategory != m_ePersistCategory) {
- if (NULL != m_pData && NULL != m_pData->m_pMessage) { // LCOV_EXCL_BR_LINE 6: if m_pData is not null, the m_pData->m_pMessage can not be null // NOLINT[whitespace/line_length]
- if (NULL != CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread) { // LCOV_EXCL_BR_LINE 6: CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread can not be null // NOLINT[whitespace/line_length]
- TImmediatePersistenceChangeCategory l_tChangeCategory = {};
- UI_32 l_ui32SendDataTotalLength =
- static_cast<UI_32>(sizeof(TImmediatePersistenceChangeCategory) + m_pData->m_uiMsgSize);
- UI_8 *l_ui8SendData = new(std::nothrow) UI_8[l_ui32SendDataTotalLength];
- UI_8 *l_ui8TmpOffset = l_ui8SendData;
-
- if (NULL != l_ui8SendData) { // LCOV_EXCL_BR_LINE 6: l_ui8SendData can't be NULL
- std::strncpy(l_tChangeCategory.m_tnornotifInfoheader.m_cnotificationname, this->GetNotificationName().c_str(),
- sizeof(l_tChangeCategory.m_tnornotifInfoheader.m_cnotificationname) - 1);
- std::strncpy(l_tChangeCategory.m_tnornotifInfoheader.m_cpublishername, this->GetPublisherName().c_str(),
- sizeof(l_tChangeCategory.m_tnornotifInfoheader.m_cpublishername) - 1);
- l_tChangeCategory.m_tnornotifInfoheader.m_epersistenttype = this->GetNotificationType();
- l_tChangeCategory.m_tnornotifInfoheader.m_uimaxmsglength = this->GetMaxMessageSize();
- l_tChangeCategory.m_tnornotifInfoheader.m_uidelay = this->GetPersistenceDelay();
- l_tChangeCategory.m_tnornotifInfoheader.m_uimsgsize = m_pData->m_uiMsgSize;
- l_tChangeCategory.m_tnornotifInfoheader.m_epersistcategory = f_epersistcategory;
-
- l_tChangeCategory.m_eoldpersistcategory = m_ePersistCategory;
-
- std::memset(l_ui8SendData, 0, l_ui32SendDataTotalLength);
- std::memcpy(l_ui8SendData, &l_tChangeCategory, sizeof(l_tChangeCategory));
- l_ui8TmpOffset += sizeof(l_tChangeCategory);
- std::memcpy(l_ui8TmpOffset, m_pData->m_pMessage, m_pData->m_uiMsgSize);
-
- // issue a copy to the worker thread
- if (eFrameworkunifiedStatusOK != (l_estatus = McSend(CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread, // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- AppName,
- NOR_PERSISTENCE_CHANGE_CATEGORY,
- l_ui32SendDataTotalLength,
- l_ui8SendData))) {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "McSend failed while changing category for notfn %s from %d to %d, status=%d",
- m_cNotificationName.c_str(), m_ePersistCategory, f_epersistcategory, l_estatus);
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__,
- "Msg sent to immediate pers. thread to change persist category of %s from %d to %d",
- m_cNotificationName.c_str(), m_ePersistCategory, f_epersistcategory);
- }
-
- delete[] l_ui8SendData;
- l_ui8SendData = NULL;
- } else {
- // LCOV_EXCL_START 6: l_ui8SendData can not be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Memory alloc error for l_ui8SendData, errno=%d", errno);
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: CStateNorPersistenceNotification::m_hNSImmediatePersistenceThread can not be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Sender handle of nor worker thread is NULL. Can't send message.");
- l_estatus = eFrameworkunifiedStatusInvldHandle;
- // LCOV_EXCL_STOP
- }
- } else { // no data is persisted in emmc for this notfn, so no need to send msg to worker thread
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Notfn %s has no data to persist", m_cNotificationName.c_str());
- }
-
- m_ePersistCategory = f_epersistcategory;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_state_notification.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_state_notification.cpp
deleted file mode 100755
index ff8f054..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_state_notification.cpp
+++ /dev/null
@@ -1,402 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CStateNotification.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <iostream>
-#include <string>
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_persistent_data.h"
-#include "ns_npp_state_notification.h"
-
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CStateNotification
-/// Constructor of CStateNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStateNotification::CStateNotification(const std::string &f_cnotificationname,
- const UI_32 f_uimaxmsgsize):
- CNotification(f_cnotificationname, f_uimaxmsgsize),
- m_pData(NULL),
- m_pDefaultData(NULL),
- m_bWasPublished(FALSE) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_ePersistentType = eFrameworkunifiedStateVar;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CStateNotification
-/// Destructor of CStateNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStateNotification::~CStateNotification() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != m_pData) {
- delete m_pData; // LCOV_EXCL_BR_LINE 11: unexpected branch
- m_pData = NULL;
- }
-
- if (NULL != m_pDefaultData) {
- delete m_pDefaultData;
- m_pDefaultData = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPersistentData
-/// This function is used to get the persistent data pointer
-////////////////////////////////////////////////////////////////////////////////////////////////////
-const CPersistentData *CStateNotification::GetPersistentData() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
- return m_pData;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetPersistentData
-/// This function is used to set the data related to notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNotification::SetPersistentData(PVOID f_pmessage,
- const UI_32 f_msgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL == m_pData) {
- m_pData = new(std::nothrow) CPersistentData(); // LCOV_EXCL_BR_LINE 11: unexpected branch
- }
-
- l_estatus = SetData(m_pData, f_pmessage, f_msgsize);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetDefaultPersistentData
-/// This function get the default data(if any) related to notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-const CPersistentData *CStateNotification::GetDefaultPersistentData() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
- return m_pDefaultData;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetDefaultPersistentData
-/// This function is used to set the default data related to notification
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNotification::SetDefaultPersistentData(PVOID f_pmessage,
- const UI_32 f_msgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL == m_pDefaultData) {
- m_pDefaultData = new(std::nothrow) CPersistentData(); // LCOV_EXCL_BR_LINE 11: except,C++ STL
- }
-
- // set the default persistent data
- if (eFrameworkunifiedStatusOK == (l_estatus = SetData(m_pDefaultData, f_pmessage, f_msgsize))) {
- if (NULL == m_pData) {
- // set the default data as persistent data if notification is not yet published
- l_estatus = SetPersistentData(f_pmessage, f_msgsize);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Setting Persistent data");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistent data already set");
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error setting default persistent data for notification:: %s",
- m_cNotificationName.c_str());
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetData
-/// This function is used to set the persistent data
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNotification::SetData(CPersistentData *f_pdata,
- PVOID f_pmessage,
- const UI_32 f_msgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (NULL != f_pdata) { // LCOV_EXCL_BR_LINE 6: double check, f_pdata can't be NULL
- if (m_uiMaxMsgSize >= f_msgsize) {
- f_pdata->m_uiMsgSize = f_msgsize;
-
- if (NULL != f_pmessage && 0 != f_msgsize) {
- if (NULL == f_pdata->m_pMessage) {
- f_pdata->m_pMessage = new(std::nothrow) CHAR[m_uiMaxMsgSize];
- }
-
- if (NULL != f_pdata->m_pMessage) { // LCOV_EXCL_BR_LINE 5: new error case
- std::memset(f_pdata->m_pMessage, 0, m_uiMaxMsgSize);
- std::memcpy(f_pdata->m_pMessage, f_pmessage, f_msgsize);
- } else {
- // LCOV_EXCL_START 5: new error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Memory allocation error, unable to set persistent data for notification: %s",
- m_cNotificationName.c_str());
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- if (NULL != f_pdata->m_pMessage) {
- delete[](static_cast<PCHAR>(f_pdata->m_pMessage));
- f_pdata->m_pMessage = NULL;
- }
- }
-
- m_bWasPublished = TRUE;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't set notification data. Message data size (%d) is greater than maximum registered data size (%d)"
- " of notification (%s).", f_msgsize, m_uiMaxMsgSize, GetNotificationName().c_str());
- l_estatus = eFrameworkunifiedStatusFail;
- }
- } else {
- // LCOV_EXCL_START 6: double check, f_pdata can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Unable to set persistent data for notification: %s, persistent object is NULL",
- m_cNotificationName.c_str());
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// AddEventReciever
-/// This function adds the name of the application to receiver list of particular notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNotification::AddEventReciever(const std::string &f_csubscribername) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // Message Queue Handle
- HANDLE l_hMsgQHandle = NULL;
-
- // iterator of CNotificationReceiver map
- NotifReceiver_Iterator_Type l_iterator;
-
- CNotificationReceiver *l_pNotificationReceiver = NULL;
-
- if (!f_csubscribername.empty()) { // LCOV_EXCL_BR_LINE 6: double check, f_csubscribername can't be empty
- l_estatus = AddReceiverInMap(f_csubscribername);
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusInvldParam; // LCOV_EXCL_LINE 6: double check, f_csubscribername can't be empty
- }
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 6: double check, l_estatus must be eFrameworkunifiedStatusOK
- if (m_bWasPublished) {
- FRAMEWORKUNIFIEDLOG(ZONE_NPP_INFO, __FUNCTION__, "Republish Notification to subscriber :: %s", f_csubscribername.c_str()); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" // NOLINT[whitespace/line_length]
-
- if (NULL != m_pData) {
- l_iterator = m_pmSubscribersList->find(f_csubscribername);
-
- if (m_pmSubscribersList->end() != l_iterator) {
- l_pNotificationReceiver = (*l_iterator).second;
-
- if (NULL != l_pNotificationReceiver) { // LCOV_EXCL_BR_LINE 6: double check, l_pNotificationReceiver can't be NULL // NOLINT[whitespace/line_length]
- l_hMsgQHandle = l_pNotificationReceiver->m_MsgQHandle;
-
- if (NULL != l_hMsgQHandle) { // LCOV_EXCL_BR_LINE 6: double check, l_hMsgQHandle can't be NULL
- if (eFrameworkunifiedStatusOK != (l_estatus = PublishData(l_pNotificationReceiver->m_MsgQHandle, m_pData->m_pMessage, m_pData->m_uiMsgSize))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error Publishing notification %s to %s published by %s, error status: 0x%x",
- m_cNotificationName.c_str(), l_iterator->first.c_str(), m_cServiceName.c_str(), l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_hMsgQHandle can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "MsgQ Handle NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_pNotificationReceiver can't be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pNotificationReceiver is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "m_pData pointer is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "Subscribing Notfn, src=%s name=%s. Notification not published.",
- f_csubscribername.c_str(), m_cNotificationName.c_str());
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_estatus must be eFrameworkunifiedStatusOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_estatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Receiver Not Added in map");
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// Publish
-/// This function publishes the notification to subscribed clients.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNotification::Publish(const std::string &f_cservicename,
- PVOID f_pmessage,
- const UI_32 f_uimsgsize) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // Message Queue Handle
- HANDLE l_hMsgQHandle = NULL;
-
- // Pointer to class CNotificationReceiver
- CNotificationReceiver *l_pNotificationReceiver = NULL;
-
- // Iterator for Notification Receiver map
- NotifReceiver_Iterator_Type l_itrNotifReceiver;
-
- if (m_uiMaxMsgSize >= f_uimsgsize) {
- if (0 == m_cServiceName.compare(f_cservicename)) {
- l_estatus = SetPersistentData(f_pmessage,
- f_uimsgsize);
-
- if (eFrameworkunifiedStatusOK == l_estatus) { // LCOV_EXCL_BR_LINE 6: l_estatus is always eFrameworkunifiedStatusOK
- for (l_itrNotifReceiver = m_pmSubscribersList->begin();
- l_itrNotifReceiver != m_pmSubscribersList->end();
- l_itrNotifReceiver++) {
- l_pNotificationReceiver = l_itrNotifReceiver->second;
-
- if (NULL != l_pNotificationReceiver) { // LCOV_EXCL_BR_LINE 6:double check, l_pNotificationReceiver can not be null // NOLINT[whitespace/line_length]
- l_hMsgQHandle = l_pNotificationReceiver->m_MsgQHandle;
-
- if (NULL != l_hMsgQHandle && NULL != m_pData) { // LCOV_EXCL_BR_LINE 6:double check, l_hMsgQHandle and m_pData can not be null // NOLINT[whitespace/line_length]
- if (eFrameworkunifiedStatusOK != (l_estatus = PublishData(l_hMsgQHandle, m_pData->m_pMessage, f_uimsgsize))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT[whitespace/line_length]
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Error Publishing notification %s to %s published by %s, error status: 0x%x",
- m_cNotificationName.c_str(),
- l_itrNotifReceiver->first.c_str(),
- f_cservicename.c_str(), l_estatus);
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_hMsgQHandle and m_pData can not be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "MsgQ Handle NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 6: double check, l_pNotificationReceiver can not be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "l_pNotificationReceiver is NULL");
- l_estatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- }
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Persistent Data Not Set"); // LCOV_EXCL_LINE 6: double check, l_estatus is always eFrameworkunifiedStatusOK // NOLINT[whitespace/line_length]
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Can't publish notification %s. Registered by %s and published by %s.",
- GetNotificationName().c_str(), m_cServiceName.c_str(), f_cservicename.c_str());
- l_estatus = eFrameworkunifiedStatusInvldParam;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Can't publish notification %s. Message data size (%d) is greater than maximum registered data size (%d)",
- GetNotificationName().c_str(), f_uimsgsize, m_uiMaxMsgSize);
- l_estatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// IsPublished
-/// This functions returns the published status of notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-BOOL CStateNotification::IsPublished() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- return m_bWasPublished;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/// ResetMaxMessageSize
-/// This function reset the max size of data that can be published with notification.
-/// Also deletes the old persistent data and default data.
-////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStateNotification::ResetMaxMessageSize(const UI_32 f_uilength) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CNotification::ResetMaxMessageSize(f_uilength);
-
- // delete the old data as the size is changed the data may become invalid
- if (NULL != m_pData) {
- delete m_pData;
- m_pData = NULL;
- }
-
- if (NULL != m_pDefaultData) {
- delete m_pDefaultData;
- m_pDefaultData = NULL;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_state_persistence_notification.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_state_persistence_notification.cpp
deleted file mode 100755
index 1bb9dd1..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_state_persistence_notification.cpp
+++ /dev/null
@@ -1,87 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CStatePersistenceNotification.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <iostream>
-#include <string>
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_state_persistence_notification.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CStatePersistenceNotification
-/// Constructor of CStatePersistenceNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStatePersistenceNotification::CStatePersistenceNotification(const std::string &f_cnotificationname,
- const UI_32 f_uimaxmsgsize,
- const EFrameworkunifiedPersistCategory f_epersistcategory):
- CStateNotification(f_cnotificationname, f_uimaxmsgsize),
- m_ePersistCategory(f_epersistcategory) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_ePersistentType = eFrameworkunifiedPersistedStateVar;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CStatePersistenceNotification
-/// Constructor of CStatePersistenceNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStatePersistenceNotification::~CStatePersistenceNotification() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// GetPersistentCategory
-/// Gets the persist type of notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedPersistCategory CStatePersistenceNotification::GetPersistentCategory() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return m_ePersistCategory;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// SetPersistentCategory
-/// Sets the persist type of notification.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CStatePersistenceNotification::SetPersistentCategory(const EFrameworkunifiedPersistCategory f_epersistcategory) {
- EFrameworkunifiedStatus l_estatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_ePersistCategory = f_epersistcategory;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_estatus;
-}
diff --git a/nsframework/notification_persistent_service/server/src/ns_npp_state_persistence_user_notification.cpp b/nsframework/notification_persistent_service/server/src/ns_npp_state_persistence_user_notification.cpp
deleted file mode 100755
index 222ada3..0000000
--- a/nsframework/notification_persistent_service/server/src/ns_npp_state_persistence_user_notification.cpp
+++ /dev/null
@@ -1,61 +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.
- */
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \defgroup <<Group Tag>> <<Group Name>>
-/// \ingroup tag_NS_NPPService
-/// .
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_NS_NPPService
-/// \brief This file contains implementation of class CStatePersistenceUserNotification.
-///
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Include Files
-////////////////////////////////////////////////////////////////////////////////////////////////////
-#include <iostream>
-#include <string>
-#include "ns_npp_notificationpersistentservicelog.h"
-#include "ns_npp_state_persistence_user_notification.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// CStatePersistenceUserNotification
-/// Constructor of CStatePersistenceUserNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStatePersistenceUserNotification::CStatePersistenceUserNotification(const std::string &f_cnotificationname,
- const UI_32 f_uimaxmsgsize):
- CStateNotification(f_cnotificationname, f_uimaxmsgsize) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_ePersistentType = eFrameworkunifiedPersistedStateUserVar;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-/// ~CStatePersistenceUserNotification
-/// Destructor of CStatePersistenceUserNotification class
-////////////////////////////////////////////////////////////////////////////////////////////////////
-CStatePersistenceUserNotification::~CStatePersistenceUserNotification() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}