1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef APP_LAUNCH_CONVERTER_H
16 #define APP_LAUNCH_CONVERTER_H
17 
18 #include "IAppLaunchSceneDataProcessor.h"
19 #include "IAppLaunchSceneDb.h"
20 
21 namespace OHOS {
22 namespace HiviewDFX {
23 using AppStartCheckPointData = IAppLaunchSceneDataProcessor::AppStartCheckPointData;
24 
25 class AppLaunchConverter {
26 public:
ConvertToInteractionResponse(const AppStartCheckPointData& data)27     static IAppLaunchSceneDb::InteractionResponse ConvertToInteractionResponse(const AppStartCheckPointData& data)
28     {
29         IAppLaunchSceneDb::InteractionResponse point;
30 
31         point.time = data.time;
32         point.domain = data.domain;
33         point.eventName = data.eventName;
34 
35         point.appPid = data.appPid;
36         point.versionCode = data.versionCode;
37         point.versionName = data.versionName;
38         point.bundleName = data.bundleName;
39         point.abilityName = data.abilityName;
40         point.processName = data.processName;
41         point.pageUrl = data.pageUrl;
42         point.sceneId = data.sceneId;
43         point.sourceType = data.sourceType;
44         point.inputTime = data.inputTime;
45         point.animationStartTime =data.animationStartTime;
46         point.renderTime = data.renderTime;
47         point.responseLatency = data.responseLatency;
48         point.note = data.note;
49 
50         return point;
51     }
ConvertToStartAbility(const AppStartCheckPointData& data)52     static IAppLaunchSceneDb::StartAbility ConvertToStartAbility(const AppStartCheckPointData& data)
53     {
54         StartAbility point;
55         point.time = data.time;
56         point.domain = data.domain;
57         point.eventName = data.eventName;
58         point.bundleName = data.bundleName;
59         point.moduleName = data.moduleName;
60         point.abilityName = data.abilityName;
61 
62         return point;
63     }
ConvertToAppStartupType(const AppStartCheckPointData& data)64     static IAppLaunchSceneDb::AppStartupType ConvertToAppStartupType(const AppStartCheckPointData& data)
65     {
66         AppStartupType point;
67         point.time = data.time;
68         point.domain = data.domain;
69         point.eventName = data.eventName;
70 
71         point.appPid = data.appPid;
72         point.versionCode = data.versionCode;
73         point.versionName = data.versionName;
74         point.bundleName = data.bundleName;
75         point.abilityName = data.abilityName;
76         point.startType = data.startType;
77         return point;
78     }
ConvertToProcessStart(const AppStartCheckPointData& data)79     static IAppLaunchSceneDb::ProcessStart ConvertToProcessStart(const AppStartCheckPointData& data)
80     {
81         ProcessStart point;
82         point.time = data.time;
83         point.domain = data.domain;
84         point.eventName = data.eventName;
85         point.bundleName = data.bundleName;
86         point.startupTime = data.startupTime;
87         point.startupAbilityType = data.startupAbilityType;
88         point.startupExtensionType = data.startupExtensionType;
89         point.callerBundleName= data.callerBundleName;
90         point.callerUid = data.callerUid;
91         point.callerProcessName = data.callerProcessName;
92 
93         return point;
94     }
ConvertToAppAttach(const AppStartCheckPointData& data)95     static IAppLaunchSceneDb::AppAttach ConvertToAppAttach(const AppStartCheckPointData& data)
96     {
97         AppAttach point;
98         point.time = data.time;
99         point.domain = data.domain;
100         point.eventName = data.eventName;
101         point.bundleName = data.bundleName;
102         point.appPid = data.appPid;
103         point.versionCode = data.versionCode;
104         point.versionName = data.versionName;
105         point.processName= data.processName;
106 
107         return point;
108     }
ConvertToAppForeground(const AppStartCheckPointData& data)109     static IAppLaunchSceneDb::AppForeground ConvertToAppForeground(const AppStartCheckPointData& data)
110     {
111         AppForeground point;
112         point.time = data.time;
113         point.domain = data.domain;
114         point.eventName = data.eventName;
115         point.bundleName = data.bundleName;
116         point.appPid = data.appPid;
117         point.versionCode = data.versionCode;
118         point.versionName = data.versionName;
119         point.processName= data.processName;
120         point.bundleType = data.bundleType;
121         point.callerBundleName = data.callerBundleName;
122 
123         return point;
124     }
ConvertToAbilityForeground(const AppStartCheckPointData& data)125     static IAppLaunchSceneDb::AbilityForeground ConvertToAbilityForeground(const AppStartCheckPointData& data)
126     {
127         AbilityForeground point;
128         point.time = data.time;
129         point.domain = data.domain;
130         point.eventName = data.eventName;
131         point.bundleName = data.bundleName;
132         point.moduleName = data.moduleName;
133         point.abilityName = data.abilityName;
134         point.bundleType = data.bundleType;
135         point.callerBundleName = data.callerBundleName;
136 
137         return point;
138     }
ConvertToStartWindow(const AppStartCheckPointData& data)139     static IAppLaunchSceneDb::StartWindow ConvertToStartWindow(const AppStartCheckPointData& data)
140     {
141         StartWindow point;
142         point.time = data.time;
143         point.domain = data.domain;
144         point.eventName = data.eventName;
145         point.bundleName = data.bundleName;
146         point.appPid = data.appPid;
147         point.processName = data.processName;
148         point.windowName = data.windowName;
149 
150         return point;
151     }
ConvertToDrawnCompleted(const AppStartCheckPointData& data)152     static IAppLaunchSceneDb::DrawnCompleted ConvertToDrawnCompleted(const AppStartCheckPointData& data)
153     {
154         DrawnCompleted point;
155         point.time = data.time;
156         point.domain = data.domain;
157         point.eventName = data.eventName;
158 
159         point.appUid = data.appUid;
160         point.appPid = data.appPid;
161         point.bundleName = data.bundleName;
162         point.moduleName = data.moduleName;
163         point.abilityName = data.abilityName;
164 
165         return point;
166     }
ConvertToFirstFrameDrawn(const AppStartCheckPointData& data)167     static IAppLaunchSceneDb::FirstFrameDrawn ConvertToFirstFrameDrawn(const AppStartCheckPointData& data)
168     {
169         FirstFrameDrawn point;
170         point.time = data.time;
171         point.domain = data.domain;
172         point.eventName = data.eventName;
173         point.appPid = data.appPid;
174 
175         return point;
176     }
ConvertToInteractionCompleted(const AppStartCheckPointData& data)177     static IAppLaunchSceneDb::InteractionCompleted ConvertToInteractionCompleted(const AppStartCheckPointData& data)
178     {
179         InteractionCompleted point;
180         point.time = data.time;
181         point.domain = data.domain;
182         point.eventName = data.eventName;
183         point.bundleName = data.bundleName;
184         point.appPid = data.appPid;
185         point.versionCode = data.versionCode;
186         point.versionName = data.versionName;
187         point.abilityName = data.abilityName;
188         point.processName = data.processName;
189         point.pageUrl = data.pageUrl;
190         point.sceneId = data.sceneId;
191         point.sourceType = data.sourceType;
192         point.inputTime = data.inputTime;
193         point.animationStartLatency = data.animationStartLatency;
194         point.animationEndLatency = data.animationEndLatency;
195         point.e2eLatency = data.e2eLatency;
196         point.note = data.note;
197 
198         return point;
199     }
200 };
201 } // HiviewDFX
202 } // OHOS
203 #endif