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 using AppStartCheckPointData = IAppLaunchSceneDataProcessor::AppStartCheckPointData;
22 
23 class AppLaunchConverter {
24 public:
ConvertToInteractionResponse(const AppStartCheckPointData & data)25     static IAppLaunchSceneDb::InteractionResponse ConvertToInteractionResponse(const AppStartCheckPointData& data)
26     {
27         IAppLaunchSceneDb::InteractionResponse point;
28 
29         point.time = data.time;
30         point.domain = data.domain;
31         point.eventName = data.eventName;
32 
33         point.appPid = data.appPid;
34         point.versionCode = data.versionCode;
35         point.versionName = data.versionName;
36         point.bundleName = data.bundleName;
37         point.abilityName = data.abilityName;
38         point.processName = data.processName;
39         point.pageUrl = data.pageUrl;
40         point.sceneId = data.sceneId;
41         point.sourceType = data.sourceType;
42         point.inputTime = data.inputTime;
43         point.animationStartTime =data.animationStartTime;
44         point.renderTime = data.renderTime;
45         point.responseLatency = data.responseLatency;
46         point.note = data.note;
47 
48         return point;
49     }
ConvertToStartAbility(const AppStartCheckPointData & data)50     static IAppLaunchSceneDb::StartAbility ConvertToStartAbility(const AppStartCheckPointData& data)
51     {
52         StartAbility point;
53         point.time = data.time;
54         point.domain = data.domain;
55         point.eventName = data.eventName;
56         point.bundleName = data.bundleName;
57         point.moduleName = data.moduleName;
58         point.abilityName = data.abilityName;
59 
60         return point;
61     }
ConvertToAppStartupType(const AppStartCheckPointData & data)62     static IAppLaunchSceneDb::AppStartupType ConvertToAppStartupType(const AppStartCheckPointData& data)
63     {
64         AppStartupType point;
65         point.time = data.time;
66         point.domain = data.domain;
67         point.eventName = data.eventName;
68 
69         point.appPid = data.appPid;
70         point.versionCode = data.versionCode;
71         point.versionName = data.versionName;
72         point.bundleName = data.bundleName;
73         point.abilityName = data.abilityName;
74         point.startType = data.startType;
75         return point;
76     }
ConvertToProcessStart(const AppStartCheckPointData & data)77     static IAppLaunchSceneDb::ProcessStart ConvertToProcessStart(const AppStartCheckPointData& data)
78     {
79         ProcessStart point;
80         point.time = data.time;
81         point.domain = data.domain;
82         point.eventName = data.eventName;
83         point.bundleName = data.bundleName;
84         point.startupTime = data.startupTime;
85         point.startupAbilityType = data.startupAbilityType;
86         point.startupExtensionType = data.startupExtensionType;
87         point.callerBundleName= data.callerBundleName;
88         point.callerUid = data.callerUid;
89         point.callerProcessName = data.callerProcessName;
90 
91         return point;
92     }
ConvertToAppAttach(const AppStartCheckPointData & data)93     static IAppLaunchSceneDb::AppAttach ConvertToAppAttach(const AppStartCheckPointData& data)
94     {
95         AppAttach point;
96         point.time = data.time;
97         point.domain = data.domain;
98         point.eventName = data.eventName;
99         point.bundleName = data.bundleName;
100         point.appPid = data.appPid;
101         point.versionCode = data.versionCode;
102         point.versionName = data.versionName;
103         point.processName= data.processName;
104 
105         return point;
106     }
ConvertToAppForeground(const AppStartCheckPointData & data)107     static IAppLaunchSceneDb::AppForeground ConvertToAppForeground(const AppStartCheckPointData& data)
108     {
109         AppForeground point;
110         point.time = data.time;
111         point.domain = data.domain;
112         point.eventName = data.eventName;
113         point.bundleName = data.bundleName;
114         point.appPid = data.appPid;
115         point.versionCode = data.versionCode;
116         point.versionName = data.versionName;
117         point.processName= data.processName;
118         point.bundleType = data.bundleType;
119         point.callerBundleName = data.callerBundleName;
120 
121         return point;
122     }
ConvertToAbilityForeground(const AppStartCheckPointData & data)123     static IAppLaunchSceneDb::AbilityForeground ConvertToAbilityForeground(const AppStartCheckPointData& data)
124     {
125         AbilityForeground point;
126         point.time = data.time;
127         point.domain = data.domain;
128         point.eventName = data.eventName;
129         point.bundleName = data.bundleName;
130         point.moduleName = data.moduleName;
131         point.abilityName = data.abilityName;
132         point.bundleType = data.bundleType;
133         point.callerBundleName = data.callerBundleName;
134 
135         return point;
136     }
ConvertToStartWindow(const AppStartCheckPointData & data)137     static IAppLaunchSceneDb::StartWindow ConvertToStartWindow(const AppStartCheckPointData& data)
138     {
139         StartWindow point;
140         point.time = data.time;
141         point.domain = data.domain;
142         point.eventName = data.eventName;
143         point.bundleName = data.bundleName;
144         point.appPid = data.appPid;
145         point.processName = data.processName;
146         point.windowName = data.windowName;
147 
148         return point;
149     }
ConvertToDrawnCompleted(const AppStartCheckPointData & data)150     static IAppLaunchSceneDb::DrawnCompleted ConvertToDrawnCompleted(const AppStartCheckPointData& data)
151     {
152         DrawnCompleted point;
153         point.time = data.time;
154         point.domain = data.domain;
155         point.eventName = data.eventName;
156 
157         point.appUid = data.appUid;
158         point.appPid = data.appPid;
159         point.bundleName = data.bundleName;
160         point.moduleName = data.moduleName;
161         point.abilityName = data.abilityName;
162 
163         return point;
164     }
ConvertToFirstFrameDrawn(const AppStartCheckPointData & data)165     static IAppLaunchSceneDb::FirstFrameDrawn ConvertToFirstFrameDrawn(const AppStartCheckPointData& data)
166     {
167         FirstFrameDrawn point;
168         point.time = data.time;
169         point.domain = data.domain;
170         point.eventName = data.eventName;
171         point.appPid = data.appPid;
172 
173         return point;
174     }
ConvertToInteractionCompleted(const AppStartCheckPointData & data)175     static IAppLaunchSceneDb::InteractionCompleted ConvertToInteractionCompleted(const AppStartCheckPointData& data)
176     {
177         InteractionCompleted point;
178         point.time = data.time;
179         point.domain = data.domain;
180         point.eventName = data.eventName;
181         point.bundleName = data.bundleName;
182         point.appPid = data.appPid;
183         point.versionCode = data.versionCode;
184         point.versionName = data.versionName;
185         point.abilityName = data.abilityName;
186         point.processName = data.processName;
187         point.pageUrl = data.pageUrl;
188         point.sceneId = data.sceneId;
189         point.sourceType = data.sourceType;
190         point.inputTime = data.inputTime;
191         point.animationStartLatency = data.animationStartLatency;
192         point.animationEndLatency = data.animationEndLatency;
193         point.e2eLatency = data.e2eLatency;
194         point.note = data.note;
195 
196         return point;
197     }
198 };
199 #endif