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