summaryrefslogtreecommitdiffstats
path: root/video_in_hal/systemservice/system_manager/server/include/ss_sm_config.h
diff options
context:
space:
mode:
Diffstat (limited to 'video_in_hal/systemservice/system_manager/server/include/ss_sm_config.h')
-rwxr-xr-xvideo_in_hal/systemservice/system_manager/server/include/ss_sm_config.h543
1 files changed, 0 insertions, 543 deletions
diff --git a/video_in_hal/systemservice/system_manager/server/include/ss_sm_config.h b/video_in_hal/systemservice/system_manager/server/include/ss_sm_config.h
deleted file mode 100755
index 19736f6..0000000
--- a/video_in_hal/systemservice/system_manager/server/include/ss_sm_config.h
+++ /dev/null
@@ -1,543 +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_SystemManager
-/// \brief This file provides support for System Manager configuration.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_CONFIG_H_ // NOLINT
-#define SS_SM_CONFIG_H_
-
-#include <native_service/ns_config_parser_if.h>
-#include <system_service/ss_system_types.h>
-#include <system_service/ss_system_manager_if.h>
-#include <system_service/ss_system_manager_if_local.h>
-#include <system_service/ss_system_manager_protocol.h>
-#include <system_service/ss_string_maps.h>
-#include <list>
-#include <map>
-#include <string>
-#include <vector>
-#include "ss_sm_process_launcher_protocol.h"
-
-
-/// All timer values are **position-dependent** in the timer calls ! These
-/// defines are currently all used as Start and Restart Seconds parameters.
-/// \param [in] id
-/// UI_32 - timer id that you want to start
-/// \param [in] ss
-/// UI_32 - Start time in seconds
-/// \param [in] sms
-/// UI_32 - Start time in milliseconds
-/// \param [in] rs
-/// UI_32 - Repeat time in seconds
-/// \param [in] rms
-/// UI_32 - Repeat time in milliseconds
-#define SS_GROUP_LAUNCH_TIMER_CONFIG (3)
-#define SS_HEARTBEAT_MONITOR_TIMER_CONFIG (10)
-#define SS_PROCESSLAUNCHER_MONITOR_TIMER_CONFIG (10)
-#define SS_CLIENT_START_MONITOR_TIMER_CONFIG (3)
-#define SS_CLIENT_STOP_MONITOR_TIMER_CONFIG (1)
-#define SS_NPP_STATUS_CHECK_MONITOR_TIME_SEC (5)
-#define SS_LAUNCH_GROUP_TRIGGER_TIMER_CONFIG (10)
-// size of the internal debug dump buffer
-#define SS_SM_DEBUG_DUMP_MAX_SIZE (12288u)
-// number of _CWORD56_ command history log entries for the debug dump
-#define SS_SM__CWORD56__CMD_HIST_SIZE (10u)
-// number of timer history log entries for the debug dump
-#define SS_SM_TIMER_CMD_HIST_SIZE (10u)
-// number of message history log entries for the debug dump
-#define SS_SM_CMD_HIST_SIZE (20u)
-// number of publishing history log entries for the debug dump
-#define SS_SM_PUB_CMD_HIST_SIZE (5u)
-// number of error history log entries for the debug dump
-#define SS_SM_ERR_HIST_SIZE (5u)
-
-// When occurs repeat to abnormal rebooting, logging cause of error at first time and next time.
-// When it occurs "ILG_RESET", Maximum number of log is 4 so that the log will be stored at the just after the startup.
-// Need reconsideration if maximum number of abnormal logging is less than 4 using SSL.
-#define SS_SM_ERR_LOGGING_LIMIT (8)
-
-// Maximum number of continuous processing of "NaviReset" by errors.
-// It try to recover by NaviDet when it exceeds this limit.
-#define SS_SM_ERR_NAVI_RESET_LIMIT (5)
-
-typedef enum {
- MODULE_STATE_INVALID = 0 /// Initial state of all modules
- , MODULE_STATE_SKIPPED /// Non-critical module has crossed max re-launch limit
- /// or hSession was null when attempted to start
- , MODULE_STATE_LAUNCHING /// Module launch has been requested
- , MODULE_STATE_LAUNCHED /// Module has been launched but a session
- /// connection has NOT been established
- , MODULE_STATE_LAUNCH_FAILED /// Oops
- , MODULE_STATE_CONNECTED /// A session connection has been established
- , MODULE_STATE_START_SENT /// SM has sent START to the module
- , MODULE_STATE_START_FAILED /// FrameworkunifiedSendMsg(SS_SM_START) failed
- , MODULE_STATE_STARTED /// Module has replied START Complete to SM
- , MODULE_STATE_STOP_SENT /// SM has sent STOP to the module
- , MODULE_STATE_STOP_FAILED /// FrameworkunifiedSendMsg(SS_SM_STOP) failed
- , MODULE_STATE_STOPPED /// Module has replied STOP Complete to SM
- , MODULE_STATE_START_PRE_SENT //!< SM has sent Pre-boot start to the module
- , MODULE_STATE_START_PRE_FAILED //!< FrameworkunifiedSendMsg(SS_SM_PRE_START) failed
- , MODULE_STATE_STARTED_PRE //!< Module has replied Pre-boot start Complete to SM
- , MODULE_STATE_STOP_PRE_SENT //!< SM has sent Pre-boot stop to the module
- , MODULE_STATE_STOP_PRE_FAILED //!< FrameworkunifiedSendMsg(SS_SM_PRE_STOP) failed
- , MODULE_STATE_STOPPED_PRE //!< Module has replied Pre-boot stopComplete to SM
- , MODULE_STATE_START_BACKGROUND_SENT //!< SM has sent Background-boot start to the module
- , MODULE_STATE_START_BACKGROUND_FAILED //!< FrameworkunifiedSendMsg(SS_SM_BACKGROUND_START) failed
- , MODULE_STATE_STARTED_BACKGROUND //!< Module has replied Background-boot start Complete to SM
- , MODULE_STATE_STOP_BACKGROUND_SENT //!< SM has sent Background-boot stop to the module
- , MODULE_STATE_STOP_BACKGROUND_FAILED //!< FrameworkunifiedSendMsg(SS_SM_BACKGROUND_STOP) failed
- , MODULE_STATE_STOPPED_BACKGROUND //!< Module has replied Background-boot stop Complete to SM
-} SMModuleState;
-//
-// Module State string map type
-typedef std::map<SMModuleState, std::string> SMModuleStateStrMapType;
-
-typedef enum {
- MODULE_DEBUG_DUMP_STATE_NOT_REQUESTED = 0
- , MODULE_DEBUG_DUMP_STATE_REQUEST_SENT
- , MODULE_DEBUG_DUMP_STATE_RESPONSE_RECEIVED
-} SMModuleDebugDumpState;
-
-typedef std::map<SMModuleDebugDumpState, std::string> SMModuleDebugDumpStateStrMapType;
-
-/*
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration>
- <!-- System Service Launch control elements -->
- <SystemManager>
- <Launch>
- <Group1>
- <group_name>CoreModules</group_name>
- <group_id>1</group_id>
- <Member1>
- <name>TRUE</name>
- <path>1</path>
- <priority>200</priority>
- <critical>TRUE</critical>
- <retry_cnt>1</retry_cnt>
- <arguments></arguments>
- <logging_mask></logging_msk>
- <restart>group</restart>
- <shudown_critical></shudown_critical>
- <shudown_wait_time></shudown_wait_time>
- </Member1>
- <Member2>
- <name>TRUE</name>
- <path>1</path>
- <priority>200</priority>
- <critical>TRUE</critical>
- <retry_cnt>1</retry_cnt>
- <arguments></arguments>
- <logging_mask></logging_msk>
- <restart>me</restart>
- <shudown_critical></shudown_critical>
- <shudown_wait_time></shudown_wait_time>
- </Member2>
- </Group1>
- </Launch>
- </SystemManager>
-</Configuration>
-*/
-
-//******************************************************************************
-//* CTimeSpan class *
-//* *
-class CTimeSpan {
- public:
- CTimeSpan(): initial(0), final(0), delta(0) {}
- CTimeSpan(UI_64 f_initial) // NOLINT
- : initial(f_initial), final(0), delta(0) {}
- ~CTimeSpan() {}
- /*
- * Set Initial time, reset Final and Delta to zero, return time
- */
- UI_64 Begin();
- /*
- * Set Final time, calculate Delta time, return time
- */
- UI_64 End();
- UI_64 GetInitial();
- UI_64 GetFinal();
- UI_64 GetDelta();
- UI_64 GetTimeMilliseconds();
-
- private:
- UI_64 initial;
- UI_64 final;
- UI_64 delta;
-}; // End of class CTimeSpan
-//******************************************************************************
-
-
-typedef enum {
- NotStopped,
- StoppedByModuleStopComplete,
- StoppedByModuleStopFail,
- StoppedByGroupStopTimeout,
- StoppedByCriticalAppsTimeout,
- StoppedByModulePreStopComplete,
- StoppedByModulePreStopFail,
- StoppedByModuleBackgroundStopComplete,
- StoppedByModuleBackgroundStopFail
-} EStopReasonType;
-
-typedef enum {
- NotStarted,
- StartedByModuleStartComplete,
- StartedByModuleStartFail,
- StartedByModulePreStartComplete,
- StartedByModulePreStartFail,
- StartedByModuleBackgroundStartComplete,
- StartedByModuleBackgroundStartFail
-} EStartReasonType;
-
-//******************************************************************************
-//* CTimeEvent class *
-//* *
-template <typename EEventType>
-class CTimeEvent : public CTimeSpan {
- public:
- CTimeEvent() {
- bzero(&m_eventReason, sizeof(m_eventReason));
- }
- ~CTimeEvent() {}
-
- VOID SetReason(EEventType f_eventReason)
- { m_eventReason = f_eventReason; }
- private:
- EEventType m_eventReason;
-}; // End of class CTimeEvent
-//******************************************************************************
-
-typedef enum {
- NotRelaunched,
- RelaunchSafe,
- RelaunchErr
-} ERelaunchStatusType;
-
-
-typedef CTimeEvent<EStartReasonType> CStartReason;
-typedef CTimeEvent<EStopReasonType> CStopReason;
-typedef CHAR TUserNameBuffer[128]; // TODO(yaomingwu): Stuff. Does Posix define a useful
- // constant representing max length of user id?
-
-class ModuleLaunchParams {
- public:
- // Move to private to prevent direct access
- // SMModuleState module_state;
- //
- SS_String name;
- SS_String path;
- SS_String arguments;
- SS_String restart;
- UI_32 configuration_priority;
- int cpu_assign;
- UI_32 previous_priority;
- UI_32 current_priority;
- BOOL critical;
- UI_32 retry_cnt;
- SS_String logging_msk_str;
- BOOL is_start_required;
- BOOL shutdown_critical;
- UI_32 shutdown_wait_time;
- UI_32 fast_shutdown_wait_time;
- SI_32 pid;
- HANDLE hsession;
- UI_32 relaunch_count;
- ERelaunchStatusType relaunch_status;
- UI_32 group_id;
- TUserNameBuffer unix_user_name;
-
- BOOL m_serviceAvailability; // Not set because it does not watch Availability for speeding up start up process.
-
- CStartReason m_startReason;
- CStopReason m_stopReason;
-
- ModuleLaunchParams();
- ~ModuleLaunchParams();
- SMModuleState GetModuleState(void);
- BOOL IsModuleState(SMModuleState f_moduleState);
- BOOL IsModuleConnected() const;
- VOID SetModuleState(SMModuleState f_moduleState, BOOL f_bLog = TRUE);
- std::string ModuleStateStr(void);
-
- SMModuleDebugDumpState GetModuleDebugDumpState(void);
- std::string GetModuleDebugDumpStateStr(void);
- VOID SetModuleDebugDumpState(SMModuleDebugDumpState f_moduleDebugDumpState, BOOL f_bLog = TRUE);
- EFrameworkunifiedStatus SendMsgAndUpdateState(
- const UI_32 f_iCmd, const T_SS_SM_START_DataStructType* const f_startData);
- EFrameworkunifiedStatus SendMsgAndUpdateState(T_SS_SM_STOP_DataStruct const* f_stopData);
-
- EFrameworkunifiedStatus GetPriority(UI_32& f_Priority); // NOLINT
- EFrameworkunifiedStatus SetPriority(UI_32 f_Priority);
-
- BOOL IsAGLUnit(void) const { return is_agl_unit; }
- BOOL IsAGLResetHistoryDisable(void) const { return disable_agl_resethistory; }
- BOOL IsNonAGLResetHistoryDisable(void) const { return disable_nonagl_resethistory; }
- void SetAGLUnit(BOOL f_is_agl_unit) { is_agl_unit = f_is_agl_unit; }
- void SetAGLResetHistoryDisable(BOOL f_disable_agl_resethistory) {
- disable_agl_resethistory = f_disable_agl_resethistory;
- }
- void SetNonAGLResetHisoryDisable(BOOL f_disable_nonagl_resethistory) {
- disable_nonagl_resethistory = f_disable_nonagl_resethistory;
- }
-
- private:
- SMModuleState m_moduleState;
- SMModuleStateStrMapType m_ModuleStateStrMap;
- SMModuleDebugDumpState m_ModuleDebugDumpState;
- SMModuleDebugDumpStateStrMapType m_ModuleDebugDumpStateStrMap;
- BOOL is_agl_unit;
- BOOL disable_agl_resethistory;
- BOOL disable_nonagl_resethistory;
-};
-
-typedef std::list<ModuleLaunchParams> ModuleLaunchList;
-typedef ModuleLaunchList::iterator ModuleLaunchListIter;
-
-typedef struct _GroupLaunchInfo { // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- BOOL launch_complete;
- BOOL start_complete;
- BOOL stop_complete;
- SS_String name;
- UI_32 id;
- UI_32 grp_launch_wait;
- UI_32 grp_wait_for_trigger;
- ModuleLaunchList modules;
-} GroupLaunchInfo;
-
-typedef std::list<GroupLaunchInfo> GroupLaunchList;
-typedef GroupLaunchList::iterator GroupLaunchListIter;
-
-typedef std::map<UI_32, GroupLaunchInfo> GroupLaunchMap;
-typedef GroupLaunchMap::iterator GroupLaunchMapIter;
-
-typedef std::list<GroupLaunchList> GroupList;
-typedef GroupList::iterator GroupListIter;
-
-// Process Binary Name (key) to ModuleLaunchList iterator (ModuleLaunchParams).
-typedef std::map<std::string, ModuleLaunchListIter>ProcessNameMap;
-typedef ProcessNameMap::iterator ProcessNameMapIter;
-
-// Config Parameters specific to Heart Beat Thread
-typedef struct _HBConfigParams {
- SI_32 MaxHeartBeatRetryCount; /// Retry heart beat check before error report is sent to SM
- SI_32 ApplicationHeartBeatIntervalInitial; /// Initial Timer interval
- /// between two heart beat requests & response check
- SI_32 ApplicationHeartBeatIntervalRepeat; /// Repeat Timer interval between two heart beat requests & response check
-} HBConfigParameters;
-
-typedef struct _CDConfigParams {
- BOOL CrashDetectorEnabled;
-} CDConfigParameters;
-
-typedef struct _SLMConfigParams { // SLM - System Low Memory
- SI_32 SLMTimerValue;
- SI_32 SLMMaxRetryCount;
- SI_32 SLMThresholdValue;
- SI_32 SLMSystemmanagerLogIntervalMs;
-} SLMConfigParameters;
-
-typedef struct _UserMModeConfigParams {
- BOOL IsUserModeNotificationABOOL;
-} UserModeConfigParameters;
-
-typedef struct _ModuleConnectTimeConfigParams {
- SI_32 ModuleConnectionNumTimesToCheck;
- SI_32 ModuleConnectionTimeOutSec;
- SI_32 ModuleStartRespTimeOutSec;
-} ModuleConfigParams;
-
-typedef struct _CriticalAppsMaxShutdownTime {
- SI_32 CriticalAppsMaxShutdownTimeFastSleep;
- SI_32 CriticalAppsMaxShutdownTimeNormalReset;
-} CriticalAppsMaxShutdownTime;
-
-typedef struct _ConfigurationData {
- // Parameters specific to System Manager
-
- // Parameters specific to Heart Beat Thread
- HBConfigParameters HBConfig;
-
- // Parameters specific to Launcher Thread
-
- // Parameters specific to Crash Detector Thread
- CDConfigParameters CDConfig;
-
- // Parameters specific to System Low Memory
-
- // Parameters specific to Sys Low Memory Thread
- SLMConfigParameters SLMConfig;
-
- // Parameters specific to User Mode Notification Data Structure
- UserModeConfigParameters UMConfig;
-
- // Parameters specific to Module connection timeout with SM
- ModuleConfigParams MCConfig;
-
- // Parameters specific to Critical Apps Max shutdown time
- CriticalAppsMaxShutdownTime CAMSTConfig;
-} ConfigurationData;
-
-typedef std::vector<UI_32> LaunchOrderedVector;
-typedef LaunchOrderedVector::iterator LaunchOrderedIter;
-
-class SMConfigParams {
- public:
- SMConfigParams();
- virtual ~SMConfigParams();
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// LoadSMConfigParameters
- /// \brief Read System Manager configuration parameters from cfg file or
- /// use defaults values in case cfg file is not available
- ///
- /// \param [in] f_ConfigParams & - Ref to ConfigurationData that get populated.
- /// \param [in] f_FileName - Configuration file name.
- ///
- /// \return BOOL
- /// BOOL - TRUE or FALSE
- ////////////////////////////////////////////////////////////////////////////////////////////
- BOOL LoadSMConfigParameters(ConfigurationData& f_ConfigParams, // NOLINT
- SS_String f_FileName);
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// GetSMConfigInformation
- /// \brief Read config data from cfg file and populate the configuration data structure
- ///
- /// \param [in] f_ConfigParams & - Ref to ConfigurationData that get populated.
- /// \param [in] f_FileName - Configuration file name.
- ///
- /// \return BOOL
- /// BOOL - TRUE or FALSE
- ////////////////////////////////////////////////////////////////////////////////////////////
- BOOL GetSMConfigInformation(ConfigurationData& f_ConfigParams, // NOLINT
- SS_String f_FileName);
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// PrintConfigInfo
- /// \brief Print the configuration data stored in config structure
- ///
- /// \param [in] configata
- /// ConfigurationData & - Ref to structure that get populated.
- ///
- /// \return VOID
- ////////////////////////////////////////////////////////////////////////////////////////////
- VOID PrintConfigInfo(ConfigurationData const& f_ConfigParams);
-};
-
-class SysMgrConfiguration {
- public:
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// SysMgrConfiguration
- /// \brief
- ///
- /// \return NA
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- SysMgrConfiguration();
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// ~SysMgrConfiguration
- /// \brief
- ///
- /// \return NA
- ////////////////////////////////////////////////////////////////////////////////////////////
- virtual ~SysMgrConfiguration();
-
-// ////////////////////////////////////////////////////////////////////////////////////////////
-// /// LoadParameters
-// /// \brief
-// ///
-// /// \param [in] groups
-// /// GroupLaunchList & - Ref to GroupLaunchList that get populated.
-// ///
-// /// \return BOOL
-// /// BOOL - TRUE or FALSE
-// ////////////////////////////////////////////////////////////////////////////////////////////
-// BOOL LoadParameters(GroupLaunchMap & groups_map);
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// LoadParametersCfg
- /// \brief
- ///
- /// \param [in] groups
- /// GroupLaunchList & - Ref to GroupLaunchList that gets populated.
- /// ProcessNameMap & - Ref to ProcessNameMap that gets populated.
- /// LaunchOrderedVector & - Ref to LaunchOrderedVector that gets populated.
- ///
- /// \param [in] f_launchOrderName - launch order name.
- ///
- /// \return BOOL
- /// BOOL - TRUE or FALSE
- ////////////////////////////////////////////////////////////////////////////////////////////
- BOOL LoadParametersCfg(GroupLaunchMap& groups_map, // NOLINT
- ProcessNameMap& f_processNameMap, // NOLINT
- LaunchOrderedVector& f_OrderList, // NOLINT
- SS_String& f_launchOrderName, // NOLINT
- SS_String& f_launchCfgFn); // NOLINT
-
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// PrintGroupInfo
- /// \brief Print method for GroupLaunchInfo only prints the group info not the module info
- ///
- /// \param [in] refGrpInfo
- /// GroupLaunchInfo & - Ref to a GroupLaunchInfo object that will be printed.
- ///
- /// \return VOID
- ////////////////////////////////////////////////////////////////////////////////////////////
- VOID PrintGroupInfo(GroupLaunchInfo& refGrpInfo); // NOLINT
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// PrintModuleInfo
- /// \brief Print method for a Module's Params.
- ///
- /// \param [in] refMbrInfo
- /// ModuleLaunchParams & - Ref to ModuleLaunchParams object that will be printed.
- ///
- /// \return VOID
- ////////////////////////////////////////////////////////////////////////////////////////////
- VOID PrintModuleInfo(ModuleLaunchParams& refMbrInfo); // NOLINT
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// PrintAllInfo
- /// \brief Print all the information in the GroupLaunchList.
- ///
- /// \param [in] refGrpList
- /// GroupLaunchList & - Ref to GroupLaunchList object that will be printed.
- ///
- /// \return VOID
- ////////////////////////////////////////////////////////////////////////////////////////////
- VOID PrintAllInfo(GroupLaunchMap& refGrpMap); // NOLINT
-
- protected:
- // define all the configuration parameters that will be used to get data
-
- CNSConfigReader * l_pReaderCfg;
-
- SysMgrConfiguration(const SysMgrConfiguration&) : l_pReaderCfg(NULL) {}
- SysMgrConfiguration & operator = (const SysMgrConfiguration &);
-
- private:
- BOOL ParseBoolParameter(PCSTR f_value, BOOL f_default = FALSE) const;
-};
-
-#endif // SS_SM_CONFIG_H_ // NOLINT