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 #include "background_task_subscriber.h" 17 18 namespace OHOS { 19 namespace BackgroundTaskMgr { BackgroundTaskSubscriber()20BackgroundTaskSubscriber::BackgroundTaskSubscriber() 21 { 22 impl_ = new (std::nothrow) BackgroundTaskSubscriberImpl(*this); 23 }; 24 ~BackgroundTaskSubscriber()25BackgroundTaskSubscriber::~BackgroundTaskSubscriber() {} 26 OnConnected()27void BackgroundTaskSubscriber::OnConnected() {} 28 OnDisconnected()29void BackgroundTaskSubscriber::OnDisconnected() {} 30 OnTransientTaskStart(const std::shared_ptr<TransientTaskAppInfo> & info)31void BackgroundTaskSubscriber::OnTransientTaskStart(const std::shared_ptr<TransientTaskAppInfo>& info) {} 32 OnTransientTaskEnd(const std::shared_ptr<TransientTaskAppInfo> & info)33void BackgroundTaskSubscriber::OnTransientTaskEnd(const std::shared_ptr<TransientTaskAppInfo>& info) {} 34 OnTransientTaskErr(const std::shared_ptr<TransientTaskAppInfo> & info)35void BackgroundTaskSubscriber::OnTransientTaskErr(const std::shared_ptr<TransientTaskAppInfo>& info) {} 36 OnAppTransientTaskStart(const std::shared_ptr<TransientTaskAppInfo> & info)37void BackgroundTaskSubscriber::OnAppTransientTaskStart(const std::shared_ptr<TransientTaskAppInfo>& info) {} 38 OnAppTransientTaskEnd(const std::shared_ptr<TransientTaskAppInfo> & info)39void BackgroundTaskSubscriber::OnAppTransientTaskEnd(const std::shared_ptr<TransientTaskAppInfo>& info) {} 40 OnContinuousTaskStart(const std::shared_ptr<ContinuousTaskCallbackInfo> & continuousTaskCallbackInfo)41void BackgroundTaskSubscriber::OnContinuousTaskStart( 42 const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo) {} 43 OnContinuousTaskUpdate(const std::shared_ptr<ContinuousTaskCallbackInfo> & continuousTaskCallbackInfo)44void BackgroundTaskSubscriber::OnContinuousTaskUpdate( 45 const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo) {} 46 OnContinuousTaskStop(const std::shared_ptr<ContinuousTaskCallbackInfo> & continuousTaskCallbackInfo)47void BackgroundTaskSubscriber::OnContinuousTaskStop( 48 const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo) {} 49 OnContinuousTaskSuspend(const std::shared_ptr<ContinuousTaskCallbackInfo> & continuousTaskCallbackInfo)50void BackgroundTaskSubscriber::OnContinuousTaskSuspend( 51 const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo) {} 52 OnContinuousTaskActive(const std::shared_ptr<ContinuousTaskCallbackInfo> & continuousTaskCallbackInfo)53void BackgroundTaskSubscriber::OnContinuousTaskActive( 54 const std::shared_ptr<ContinuousTaskCallbackInfo> &continuousTaskCallbackInfo) {} 55 OnAppContinuousTaskStop(int32_t uid)56void BackgroundTaskSubscriber::OnAppContinuousTaskStop(int32_t uid) {} 57 OnRemoteDied(const wptr<IRemoteObject> & object)58void BackgroundTaskSubscriber::OnRemoteDied(const wptr<IRemoteObject> &object) {} 59 OnProcEfficiencyResourcesApply(const std::shared_ptr<ResourceCallbackInfo> & resourceInfo)60void BackgroundTaskSubscriber::OnProcEfficiencyResourcesApply( 61 const std::shared_ptr<ResourceCallbackInfo> &resourceInfo) {} 62 OnProcEfficiencyResourcesReset(const std::shared_ptr<ResourceCallbackInfo> & resourceInfo)63void BackgroundTaskSubscriber::OnProcEfficiencyResourcesReset( 64 const std::shared_ptr<ResourceCallbackInfo> &resourceInfo) {} 65 OnAppEfficiencyResourcesApply(const std::shared_ptr<ResourceCallbackInfo> & resourceInfo)66void BackgroundTaskSubscriber::OnAppEfficiencyResourcesApply( 67 const std::shared_ptr<ResourceCallbackInfo> &resourceInfo) {} 68 OnAppEfficiencyResourcesReset(const std::shared_ptr<ResourceCallbackInfo> & resourceInfo)69void BackgroundTaskSubscriber::OnAppEfficiencyResourcesReset( 70 const std::shared_ptr<ResourceCallbackInfo> &resourceInfo) {} 71 GetFlag(int32_t & flag)72void BackgroundTaskSubscriber::GetFlag(int32_t &flag) {} 73 GetImpl() const74const sptr<BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl> BackgroundTaskSubscriber::GetImpl() const 75 { 76 return impl_; 77 } 78 BackgroundTaskSubscriberImpl(BackgroundTaskSubscriber & subscriber)79BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::BackgroundTaskSubscriberImpl( 80 BackgroundTaskSubscriber &subscriber) : subscriber_(subscriber) {} 81 OnConnected()82ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnConnected() {return ERR_OK;} 83 OnDisconnected()84ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnDisconnected() {return ERR_OK;} 85 OnAppEfficiencyResourcesApply(const ResourceCallbackInfo & resourceInfo)86ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppEfficiencyResourcesApply( 87 const ResourceCallbackInfo &resourceInfo) __attribute__((no_sanitize("cfi"))) 88 { 89 std::shared_ptr<ResourceCallbackInfo> sharedResourceInfo = std::make_shared<ResourceCallbackInfo>(resourceInfo); 90 subscriber_.OnAppEfficiencyResourcesApply(sharedResourceInfo); 91 return ERR_OK; 92 } 93 OnAppEfficiencyResourcesReset(const ResourceCallbackInfo & resourceInfo)94ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppEfficiencyResourcesReset( 95 const ResourceCallbackInfo &resourceInfo) __attribute__((no_sanitize("cfi"))) 96 { 97 std::shared_ptr<ResourceCallbackInfo> sharedResourceInfo = std::make_shared<ResourceCallbackInfo>(resourceInfo); 98 subscriber_.OnAppEfficiencyResourcesReset(sharedResourceInfo); 99 return ERR_OK; 100 } 101 OnProcEfficiencyResourcesApply(const ResourceCallbackInfo & resourceInfo)102ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnProcEfficiencyResourcesApply( 103 const ResourceCallbackInfo &resourceInfo) __attribute__((no_sanitize("cfi"))) 104 { 105 std::shared_ptr<ResourceCallbackInfo> sharedResourceInfo = std::make_shared<ResourceCallbackInfo>(resourceInfo); 106 subscriber_.OnProcEfficiencyResourcesApply(sharedResourceInfo); 107 return ERR_OK; 108 } 109 OnProcEfficiencyResourcesReset(const ResourceCallbackInfo & resourceInfo)110ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnProcEfficiencyResourcesReset( 111 const ResourceCallbackInfo &resourceInfo) __attribute__((no_sanitize("cfi"))) 112 { 113 std::shared_ptr<ResourceCallbackInfo> sharedResourceInfo = std::make_shared<ResourceCallbackInfo>(resourceInfo); 114 subscriber_.OnProcEfficiencyResourcesReset(sharedResourceInfo); 115 return ERR_OK; 116 } 117 OnTransientTaskStart(const TransientTaskAppInfo & info)118ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnTransientTaskStart( 119 const TransientTaskAppInfo& info) 120 { 121 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 122 subscriber_.OnTransientTaskStart(sharedInfo); 123 return ERR_OK; 124 } 125 OnTransientTaskEnd(const TransientTaskAppInfo & info)126ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnTransientTaskEnd( 127 const TransientTaskAppInfo& info) 128 { 129 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 130 subscriber_.OnTransientTaskEnd(sharedInfo); 131 return ERR_OK; 132 } 133 OnTransientTaskErr(const TransientTaskAppInfo & info)134ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnTransientTaskErr( 135 const TransientTaskAppInfo& info) 136 { 137 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 138 subscriber_.OnTransientTaskErr(sharedInfo); 139 return ERR_OK; 140 } 141 OnAppTransientTaskStart(const TransientTaskAppInfo & info)142ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppTransientTaskStart( 143 const TransientTaskAppInfo& info) 144 { 145 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 146 subscriber_.OnAppTransientTaskStart(sharedInfo); 147 return ERR_OK; 148 } 149 OnAppTransientTaskEnd(const TransientTaskAppInfo & info)150ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppTransientTaskEnd( 151 const TransientTaskAppInfo& info) 152 { 153 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 154 subscriber_.OnAppTransientTaskEnd(sharedInfo); 155 return ERR_OK; 156 } 157 OnContinuousTaskStart(const ContinuousTaskCallbackInfo & continuousTaskCallbackInfo)158ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnContinuousTaskStart( 159 const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) __attribute__((no_sanitize("cfi"))) 160 { 161 std::shared_ptr<ContinuousTaskCallbackInfo> sharedInfo = 162 std::make_shared<ContinuousTaskCallbackInfo>(continuousTaskCallbackInfo); 163 subscriber_.OnContinuousTaskStart(sharedInfo); 164 return ERR_OK; 165 } 166 OnContinuousTaskUpdate(const ContinuousTaskCallbackInfo & continuousTaskCallbackInfo)167ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnContinuousTaskUpdate( 168 const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) __attribute__((no_sanitize("cfi"))) 169 { 170 std::shared_ptr<ContinuousTaskCallbackInfo> sharedInfo = 171 std::make_shared<ContinuousTaskCallbackInfo>(continuousTaskCallbackInfo); 172 subscriber_.OnContinuousTaskUpdate(sharedInfo); 173 return ERR_OK; 174 } 175 OnContinuousTaskStop(const ContinuousTaskCallbackInfo & continuousTaskCallbackInfo)176ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnContinuousTaskStop( 177 const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) __attribute__((no_sanitize("cfi"))) 178 { 179 std::shared_ptr<ContinuousTaskCallbackInfo> sharedInfo = 180 std::make_shared<ContinuousTaskCallbackInfo>(continuousTaskCallbackInfo); 181 subscriber_.OnContinuousTaskStop(sharedInfo); 182 return ERR_OK; 183 } 184 OnContinuousTaskSuspend(const ContinuousTaskCallbackInfo & continuousTaskCallbackInfo)185ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnContinuousTaskSuspend( 186 const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) __attribute__((no_sanitize("cfi"))) 187 { 188 std::shared_ptr<ContinuousTaskCallbackInfo> sharedInfo = 189 std::make_shared<ContinuousTaskCallbackInfo>(continuousTaskCallbackInfo); 190 subscriber_.OnContinuousTaskSuspend(sharedInfo); 191 return ERR_OK; 192 } 193 OnContinuousTaskActive(const ContinuousTaskCallbackInfo & continuousTaskCallbackInfo)194ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnContinuousTaskActive( 195 const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) __attribute__((no_sanitize("cfi"))) 196 { 197 std::shared_ptr<ContinuousTaskCallbackInfo> sharedInfo = 198 std::make_shared<ContinuousTaskCallbackInfo>(continuousTaskCallbackInfo); 199 subscriber_.OnContinuousTaskActive(sharedInfo); 200 return ERR_OK; 201 } 202 OnAppContinuousTaskStop(int32_t uid)203ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppContinuousTaskStop(int32_t uid) 204 __attribute__((no_sanitize("cfi"))) 205 { 206 subscriber_.OnAppContinuousTaskStop(uid); 207 return ERR_OK; 208 } 209 GetFlag(int32_t & flag)210ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::GetFlag(int32_t &flag) 211 { 212 subscriber_.GetFlag(flag); 213 return ERR_OK; 214 } 215 } // namespace BackgroundTaskMgr 216 } // namespace OHOS