• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 
16 #ifndef FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_INTERFACES_INNERKITS_INCLUDE_BACKGROUND_TASK_SUBSCRIBER_H
17 #define FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_INTERFACES_INNERKITS_INCLUDE_BACKGROUND_TASK_SUBSCRIBER_H
18 
19 #include <iremote_broker.h>
20 
21 #include "ibackground_task_mgr.h"
22 #include "background_task_subscriber_stub.h"
23 
24 namespace OHOS {
25 namespace BackgroundTaskMgr {
26 class BackgroundTaskSubscriber {
27 public:
28     /**
29      * Default constructor used to create a instance.
30      */
31     BackgroundTaskSubscriber();
32 
33     /**
34      * Default destructor.
35      */
36     virtual ~BackgroundTaskSubscriber();
37 
38     /**
39      * Called back when the subscriber is connected to Background Task Manager Service.
40      * @deprecated
41      */
42     virtual void OnConnected();
43 
44     /**
45      * Called back when the subscriber is disconnected from Background Task Manager Service.
46      * @deprecated
47      */
48     virtual void OnDisconnected();
49 
50     /**
51      * Called back when a transient task start.
52      *
53      * @param info Transient task app info.
54      **/
55     virtual void OnTransientTaskStart(const std::shared_ptr<TransientTaskAppInfo>& info);
56 
57     /**
58      * Called back when a transient task end.
59      *
60      * @param info Transient task app info.
61      **/
62     virtual void OnTransientTaskEnd(const std::shared_ptr<TransientTaskAppInfo>& info);
63 
64     /**
65      * Called back when a transient task err.
66      *
67      * @param info Transient task app info.
68      **/
69     virtual void OnTransientTaskErr(const std::shared_ptr<TransientTaskAppInfo>& info);
70 
71     /**
72      * Called back when the app has transient task.
73      *
74      * @param info App info of transient task.
75      **/
76     virtual void OnAppTransientTaskStart(const std::shared_ptr<TransientTaskAppInfo>& info);
77 
78     /**
79      * Called back when the app does not have transient task.
80      *
81      * @param info App info transient task .
82      **/
83     virtual void OnAppTransientTaskEnd(const std::shared_ptr<TransientTaskAppInfo>& info);
84 
85     /**
86      * Called back when a continuous task start.
87      *
88      * @param continuousTaskCallbackInfo Continuous task app info.
89      **/
90     virtual void OnContinuousTaskStart(const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo);
91 
92     /**
93      * Called back when a continuous task update.
94      *
95      * @param continuousTaskCallbackInfo Continuous task app info.
96      **/
97     virtual void OnContinuousTaskUpdate(const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo);
98 
99     /**
100      * Called back when a continuous task end.
101      *
102      * @param continuousTaskCallbackInfo Continuous task app info.
103      **/
104     virtual void OnContinuousTaskStop(const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo);
105 
106     /**
107      * Called back when a continuous task suspend.
108      *
109      * @param continuousTaskCallbackInfo Continuous task app info.
110      **/
111     virtual void OnContinuousTaskSuspend(const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo);
112 
113     /**
114      * Called back when a continuous task active.
115      *
116      * @param continuousTaskCallbackInfo Continuous task app info.
117      **/
118     virtual void OnContinuousTaskActive(const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo);
119 
120     /**
121      * Called back when the app does not have continuous task.
122      *
123      * @param uid App uid.
124      **/
125     virtual void OnAppContinuousTaskStop(int32_t uid);
126 
127     /**
128      * Called back when the Background Task Manager Service has died.
129      */
130     virtual void OnRemoteDied(const wptr<IRemoteObject> &object);
131 
132     /**
133      * @brief Apply or unapply efficiency resources of App.
134      *
135      * @param resourceInfo Request params.
136      */
137     virtual void OnAppEfficiencyResourcesApply(const std::shared_ptr<ResourceCallbackInfo> &resourceInfo);
138 
139     /**
140      * @brief Called back when the efficiency resources of App reset.
141      *
142      * @param resourceInfo Request params.
143      */
144     virtual void OnAppEfficiencyResourcesReset(const std::shared_ptr<ResourceCallbackInfo> &resourceInfo);
145 
146     /**
147      * @brief Apply or unapply efficiency resources of process.
148      *
149      * @param resourceInfo Request params.
150      */
151     virtual void OnProcEfficiencyResourcesApply(const std::shared_ptr<ResourceCallbackInfo> &resourceInfo);
152 
153     /**
154      * @brief Called back when the efficiency resources of process reset.
155      *
156      * @param resourceInfo Request params.
157      */
158     virtual void OnProcEfficiencyResourcesReset(const std::shared_ptr<ResourceCallbackInfo> &resourceInfo);
159 
160     /**
161      * @brief Called back when the subscriber get flag.
162      *
163      * @param flag subscriber flag.
164      */
165     virtual void GetFlag(int32_t &flag);
166 
167 private:
168     class BackgroundTaskSubscriberImpl final : public BackgroundTaskSubscriberStub {
169     public:
170         explicit BackgroundTaskSubscriberImpl(BackgroundTaskSubscriber &subscriber);
~BackgroundTaskSubscriberImpl()171         ~BackgroundTaskSubscriberImpl() {}
172 
173         /**
174          * @brief Called back when the subscriber is connected to Background Task Manager Service.
175          */
176         ErrCode OnConnected() override;
177 
178         /**
179          * @brief Called back when the subscriber is disconnected from Background Task Manager Service.
180          */
181         ErrCode OnDisconnected() override;
182 
183         /**
184          * @brief Called back when a transient task start.
185          *
186          * @param info Transient task app info.
187          */
188         ErrCode OnTransientTaskStart(const TransientTaskAppInfo& info) override;
189 
190         /**
191          * Called back when the app has transient task.
192          *
193          * @param info App info of transient task.
194          **/
195         ErrCode OnAppTransientTaskStart(const TransientTaskAppInfo& info) override;
196 
197         /**
198          * Called back when the app does not have transient task.
199          *
200          * @param info App info transient task .
201          **/
202         ErrCode OnAppTransientTaskEnd(const TransientTaskAppInfo& info) override;
203 
204         /**
205          * @brief Called back when a transient task end.
206          *
207          * @param info Transient task app info.
208          */
209         ErrCode OnTransientTaskEnd(const TransientTaskAppInfo& info) override;
210 
211         /**
212          * @brief Called back when a transient task err.
213          *
214          * @param info Transient task app info.
215          */
216         ErrCode OnTransientTaskErr(const TransientTaskAppInfo& info) override;
217 
218         /**
219          * @brief Called back when a continuous task start.
220          *
221          * @param continuousTaskCallbackInfo Continuous task app info.
222          */
223         ErrCode OnContinuousTaskStart(const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) override;
224         /**
225          * @brief Called back when a continuous task update.
226          *
227          * @param continuousTaskCallbackInfo Continuous task app info.
228          */
229         ErrCode OnContinuousTaskUpdate(const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) override;
230 
231         /**
232          * @brief Called back when a continuous task stop.
233          *
234          * @param continuousTaskCallbackInfo Continuous task app info.
235          */
236         ErrCode OnContinuousTaskStop(const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) override;
237 
238         /**
239          * @brief Called back when a continuous task suspend.
240          *
241          * @param continuousTaskCallbackInfo Continuous task app info.
242          */
243         ErrCode OnContinuousTaskSuspend(const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) override;
244 
245         /**
246          * @brief Called back when a continuous task active.
247          *
248          * @param continuousTaskCallbackInfo Continuous task app info.
249          */
250         ErrCode OnContinuousTaskActive(const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) override;
251 
252         /**
253          * Called back when the app does not have continuous task.
254          *
255          * @param uid App uid.
256          */
257         ErrCode OnAppContinuousTaskStop(int32_t uid) override;
258 
259         /**
260          * @brief Apply or unapply efficiency resources of App.
261          *
262          * @param resourceInfo Request params.
263          */
264         ErrCode OnAppEfficiencyResourcesApply(const ResourceCallbackInfo &resourceInfo) override;
265 
266         /**
267          * @brief Called back when the efficiency resources of App reset.
268          *
269          * @param resourceInfo Request params.
270          */
271         ErrCode OnAppEfficiencyResourcesReset(const ResourceCallbackInfo &resourceInfo) override;
272 
273         /**
274          * @brief Apply or unapply efficiency resources of process.
275          *
276          * @param resourceInfo Request params.
277          */
278         ErrCode OnProcEfficiencyResourcesApply(const ResourceCallbackInfo &resourceInfo) override;
279 
280         /**
281          * @brief Called back when the efficiency resources of process reset.
282          *
283          * @param resourceInfo Request params.
284          */
285         ErrCode OnProcEfficiencyResourcesReset(const ResourceCallbackInfo &resourceInfo) override;
286 
287         /**
288         * @brief Called back when the subscriber get flag.
289         *
290         * @param flag subscriber flag.
291         */
292         ErrCode GetFlag(int32_t &flag) override;
293 
294     public:
295         BackgroundTaskSubscriber &subscriber_;
296         sptr<IBackgroundTaskMgr> proxy_ {nullptr};
297         std::mutex mutex_ {};
298     };
299 
300 private:
301     const sptr<BackgroundTaskSubscriberImpl> GetImpl() const;
302 
303 private:
304     sptr<BackgroundTaskSubscriberImpl> impl_ {nullptr};
305 
306     friend class BackgroundTaskManager;
307 
308 public:
309     uint32_t flag_ = 0;
310 };
311 }  // namespace BackgroundTaskMgr
312 }  // namespace OHOS
313 #endif  // FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_INTERFACES_INNERKITS_INCLUDE_BACKGROUND_TASK_SUBSCRIBER_H