2 * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 ///////////////////////////////////////////////////////////////////////////////
18 /// \ingroup tag_SS_LoggerService
19 /// \brief This file supports error event logging.
21 ///////////////////////////////////////////////////////////////////////////////
22 #ifndef LOGGER_SERVICE_SERVER_INCLUDE_SS_LOGGER_ERROR_EVENT_H_
23 #define LOGGER_SERVICE_SERVER_INCLUDE_SS_LOGGER_ERROR_EVENT_H_
26 #include <native_service/frameworkunified_types.h>
27 #include <native_service/frameworkunified_framework_if.h>
28 #include <system_service/ss_system_types.h>
29 #include <system_service/ss_system_timer.h>
30 #include <system_service/ss_system_manager_protocol.h>
33 #include "ss_logger_popups.h"
34 #include "ss_logger_common.h"
35 #include "ss_logger_reader_writer_control.h"
36 #include "ss_logger_error_event_cfg.h"
37 #include "ss_logger_cfg.h"
38 #include "ss_logger_util.h"
39 #include "readerWriter/reader_writer.h"
40 #include "readerWriter/reader_writer_cfg.h"
41 #include "ss_logger_error_event_storage.h"
42 #include "ss_logger_error_event_can_evt_reply.h"
49 EFrameworkunifiedStatus Initialize(HANDLE f_hApp, CLoggerCfg *f_pLoggerCfg,
50 CReaderWriterControl *f_pReaderWriterControl,
51 HANDLE f_thrdEvntLogWriter,
52 std::string f_strEvntLogQueWorkerName);
54 EFrameworkunifiedStatus RegisterSessionErrorEvent(HANDLE f_hApp);
56 EFrameworkunifiedStatus OnOpenSession(HANDLE f_hApp, PCSTR f_pRequesterName,
59 EFrameworkunifiedStatus OnCloseSession(HANDLE f_hApp, PCSTR f_pRequesterName,
62 EFrameworkunifiedStatus StartLogging(HANDLE f_hApp, EErrorEventType f_eventType);
64 EFrameworkunifiedStatus sendDiagEventErrorResponse(EELL_ErrorCode f_errCode);
66 EFrameworkunifiedStatus sendDiagEventErrorResponse(EELL_ErrorCode f_errCode,
67 std::string f_destName);
69 EFrameworkunifiedStatus sendDiagEventResponse(void);
71 EFrameworkunifiedStatus SetDiagEventSourceName(std::string f_serviceName);
73 void SetMileage(UI_32 f_mileage);
75 void SetDiagSessionHandle(HANDLE hSession);
77 EFrameworkunifiedStatus SaveNaviLog(EPWR_SHUTDOWN_TRIGGER_TYPE errorType);
78 EFrameworkunifiedStatus CreateKernelLog(HANDLE f_hApp, SS_LOGGER_KLOG_OPE_TYPE type);
82 kSSL_ERROR_EVENT_TIMER_LOGGING_START_RSPN,
83 kSSL_ERROR_EVENT_TIMER_ARTIFACT_RSPN,
84 kSSL_ERROR_EVENT_TIMER_END
85 } ESSLErrorEventTimers;
87 // Logging Protocol Function Prototypes
88 EFrameworkunifiedStatus OnStartLogging(HANDLE f_hApp);
89 EFrameworkunifiedStatus OnLogStartResponse(HANDLE f_hApp);
90 EFrameworkunifiedStatus OnLogStartResponseTimeout(HANDLE f_hApp);
91 EFrameworkunifiedStatus RequestNextArtifact(HANDLE f_hApp);
92 EFrameworkunifiedStatus OnArtifactResponse(HANDLE f_hApp);
93 EFrameworkunifiedStatus OnArtifactResponseTimeout(HANDLE f_hApp);
95 // Protocol functions sent to self.
96 EFrameworkunifiedStatus OnArtifactRequest(HANDLE f_hApp);
98 // Error Event Artifact Request Function Prototypes
99 EFrameworkunifiedStatus SendLogArtifactResponseToSelf(
100 HANDLE f_hApp, EArtifactId f_artifactId,
101 std::string f_artifactFilePathAndName);
103 EFrameworkunifiedStatus OnObtainLoggerserviceLogRequest(HANDLE f_hApp);
104 EFrameworkunifiedStatus OnObtainTransmitLogRequest(HANDLE f_hApp);
105 EFrameworkunifiedStatus OnObtainPerformanceLogRequest(HANDLE f_hApp);
106 EFrameworkunifiedStatus OnObtainScreenShotRequest(HANDLE f_hApp);
107 EFrameworkunifiedStatus OnObtainScreenShotResponse(HANDLE f_hApp);
108 EFrameworkunifiedStatus OnObtainKernelLogInfoRequest(HANDLE f_hApp);
109 EFrameworkunifiedStatus OnObtainDRInitialLogRequest(HANDLE f_hApp);
110 EFrameworkunifiedStatus OnObtainDRLocationLogRequest(HANDLE f_hApp);
111 EFrameworkunifiedStatus OnStorageResponseOk(HANDLE f_hApp);
112 EFrameworkunifiedStatus OnStorageResponseWriteFailed(HANDLE f_hApp);
113 EFrameworkunifiedStatus OnStorageResponseNotFound(HANDLE f_hApp);
114 EFrameworkunifiedStatus OnStorageResponseNoWritten(HANDLE f_hApp);
115 EFrameworkunifiedStatus CheckPathForArtifact(HANDLE f_hApp, TLoggingArtifact f_artifact);
116 EFrameworkunifiedStatus OnClearAllLogRequest(HANDLE f_hApp);
117 EFrameworkunifiedStatus OnNaviLogRequest(HANDLE f_hApp);
119 // verify function for external storage
120 EFrameworkunifiedStatus VerifyExtStorage(TLoggerErrorEvent event);
121 bool IsNeedVerify(EErrorEventType type);
124 bool m_bIsPrevEventCompleted;
125 CErrorEventCfg m_errorEventCfg;
126 TLoggerErrorEvent m_errorEventNtfData;
127 Timer m_errorEventTimers[kSSL_ERROR_EVENT_TIMER_END];
128 std::vector<TLoggingArtifact> m_artifactRequestVec;
129 TArtifactResponseVec m_artifactResponseVec;
130 std::vector<FrameworkunifiedProtocolCallbackHandler> m_requesterCallbacksVec;
131 std::string m_archiveDestination;
132 CLoggerUtil m_loggerUtil;
133 CLoggerPopups m_loggerPopups;
134 CLoggerCfg* m_pLoggerCfg;
135 CLoggerErrorEventStorage m_loggerStorage;
136 CLoggerErrorEventCANEvtReply m_loggerCanEvent;
137 static const UI_32 m_loggingStartRspnToSec = 1;
138 static const UI_32 m_screenShotRspnToSec = 2;
139 CReaderWriterControl* m_pReaderWriterControl;
141 std::string m_ServiceName;
143 UI_32 m_currentEventTriggerNumber;
144 HANDLE m_diagsessionhandle;
146 HANDLE m_thrdEvntLogWriter;
152 EFrameworkunifiedStatus SSLogger_SendtoSM(HANDLE f_hApp, TLoggingArtifact f_artifact);
153 EFrameworkunifiedStatus SSLogger_SendtoSelf(HANDLE f_hApp, TLoggingArtifact f_artifact);
155 #endif // LOGGER_SERVICE_SERVER_INCLUDE_SS_LOGGER_ERROR_EVENT_H_