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 OnAppContinuousTaskStop(int32_t uid)50void BackgroundTaskSubscriber::OnAppContinuousTaskStop(int32_t uid) {} 51 OnRemoteDied(const wptr<IRemoteObject> & object)52void BackgroundTaskSubscriber::OnRemoteDied(const wptr<IRemoteObject> &object) {} 53 OnProcEfficiencyResourcesApply(const std::shared_ptr<ResourceCallbackInfo> & resourceInfo)54void BackgroundTaskSubscriber::OnProcEfficiencyResourcesApply( 55 const std::shared_ptr<ResourceCallbackInfo> &resourceInfo) {} 56 OnProcEfficiencyResourcesReset(const std::shared_ptr<ResourceCallbackInfo> & resourceInfo)57void BackgroundTaskSubscriber::OnProcEfficiencyResourcesReset( 58 const std::shared_ptr<ResourceCallbackInfo> &resourceInfo) {} 59 OnAppEfficiencyResourcesApply(const std::shared_ptr<ResourceCallbackInfo> & resourceInfo)60void BackgroundTaskSubscriber::OnAppEfficiencyResourcesApply( 61 const std::shared_ptr<ResourceCallbackInfo> &resourceInfo) {} 62 OnAppEfficiencyResourcesReset(const std::shared_ptr<ResourceCallbackInfo> & resourceInfo)63void BackgroundTaskSubscriber::OnAppEfficiencyResourcesReset( 64 const std::shared_ptr<ResourceCallbackInfo> &resourceInfo) {} 65 GetImpl() const66const sptr<BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl> BackgroundTaskSubscriber::GetImpl() const 67 { 68 return impl_; 69 } 70 BackgroundTaskSubscriberImpl(BackgroundTaskSubscriber & subscriber)71BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::BackgroundTaskSubscriberImpl( 72 BackgroundTaskSubscriber &subscriber) : subscriber_(subscriber) {} 73 OnConnected()74ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnConnected() {return ERR_OK;} 75 OnDisconnected()76ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnDisconnected() {return ERR_OK;} 77 OnAppEfficiencyResourcesApply(const ResourceCallbackInfo & resourceInfo)78ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppEfficiencyResourcesApply( 79 const ResourceCallbackInfo &resourceInfo) __attribute__((no_sanitize("cfi"))) 80 { 81 std::shared_ptr<ResourceCallbackInfo> sharedResourceInfo = std::make_shared<ResourceCallbackInfo>(resourceInfo); 82 subscriber_.OnAppEfficiencyResourcesApply(sharedResourceInfo); 83 return ERR_OK; 84 } 85 OnAppEfficiencyResourcesReset(const ResourceCallbackInfo & resourceInfo)86ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppEfficiencyResourcesReset( 87 const ResourceCallbackInfo &resourceInfo) __attribute__((no_sanitize("cfi"))) 88 { 89 std::shared_ptr<ResourceCallbackInfo> sharedResourceInfo = std::make_shared<ResourceCallbackInfo>(resourceInfo); 90 subscriber_.OnAppEfficiencyResourcesReset(sharedResourceInfo); 91 return ERR_OK; 92 } 93 OnProcEfficiencyResourcesApply(const ResourceCallbackInfo & resourceInfo)94ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnProcEfficiencyResourcesApply( 95 const ResourceCallbackInfo &resourceInfo) __attribute__((no_sanitize("cfi"))) 96 { 97 std::shared_ptr<ResourceCallbackInfo> sharedResourceInfo = std::make_shared<ResourceCallbackInfo>(resourceInfo); 98 subscriber_.OnProcEfficiencyResourcesApply(sharedResourceInfo); 99 return ERR_OK; 100 } 101 OnProcEfficiencyResourcesReset(const ResourceCallbackInfo & resourceInfo)102ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnProcEfficiencyResourcesReset( 103 const ResourceCallbackInfo &resourceInfo) __attribute__((no_sanitize("cfi"))) 104 { 105 std::shared_ptr<ResourceCallbackInfo> sharedResourceInfo = std::make_shared<ResourceCallbackInfo>(resourceInfo); 106 subscriber_.OnProcEfficiencyResourcesReset(sharedResourceInfo); 107 return ERR_OK; 108 } 109 OnTransientTaskStart(const TransientTaskAppInfo & info)110ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnTransientTaskStart( 111 const TransientTaskAppInfo& info) 112 { 113 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 114 subscriber_.OnTransientTaskStart(sharedInfo); 115 return ERR_OK; 116 } 117 OnTransientTaskEnd(const TransientTaskAppInfo & info)118ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnTransientTaskEnd( 119 const TransientTaskAppInfo& info) 120 { 121 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 122 subscriber_.OnTransientTaskEnd(sharedInfo); 123 return ERR_OK; 124 } 125 OnTransientTaskErr(const TransientTaskAppInfo & info)126ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnTransientTaskErr( 127 const TransientTaskAppInfo& info) 128 { 129 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 130 subscriber_.OnTransientTaskErr(sharedInfo); 131 return ERR_OK; 132 } 133 OnAppTransientTaskStart(const TransientTaskAppInfo & info)134ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppTransientTaskStart( 135 const TransientTaskAppInfo& info) 136 { 137 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 138 subscriber_.OnAppTransientTaskStart(sharedInfo); 139 return ERR_OK; 140 } 141 OnAppTransientTaskEnd(const TransientTaskAppInfo & info)142ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppTransientTaskEnd( 143 const TransientTaskAppInfo& info) 144 { 145 std::shared_ptr<TransientTaskAppInfo> sharedInfo = std::make_shared<TransientTaskAppInfo>(info); 146 subscriber_.OnAppTransientTaskEnd(sharedInfo); 147 return ERR_OK; 148 } 149 OnContinuousTaskStart(const ContinuousTaskCallbackInfo & continuousTaskCallbackInfo)150ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnContinuousTaskStart( 151 const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) __attribute__((no_sanitize("cfi"))) 152 { 153 std::shared_ptr<ContinuousTaskCallbackInfo> sharedInfo = 154 std::make_shared<ContinuousTaskCallbackInfo>(continuousTaskCallbackInfo); 155 subscriber_.OnContinuousTaskStart(sharedInfo); 156 return ERR_OK; 157 } 158 OnContinuousTaskUpdate(const ContinuousTaskCallbackInfo & continuousTaskCallbackInfo)159ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnContinuousTaskUpdate( 160 const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) __attribute__((no_sanitize("cfi"))) 161 { 162 std::shared_ptr<ContinuousTaskCallbackInfo> sharedInfo = 163 std::make_shared<ContinuousTaskCallbackInfo>(continuousTaskCallbackInfo); 164 subscriber_.OnContinuousTaskUpdate(sharedInfo); 165 return ERR_OK; 166 } 167 OnContinuousTaskStop(const ContinuousTaskCallbackInfo & continuousTaskCallbackInfo)168ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnContinuousTaskStop( 169 const ContinuousTaskCallbackInfo &continuousTaskCallbackInfo) __attribute__((no_sanitize("cfi"))) 170 { 171 std::shared_ptr<ContinuousTaskCallbackInfo> sharedInfo = 172 std::make_shared<ContinuousTaskCallbackInfo>(continuousTaskCallbackInfo); 173 subscriber_.OnContinuousTaskStop(sharedInfo); 174 return ERR_OK; 175 } 176 OnAppContinuousTaskStop(int32_t uid)177ErrCode BackgroundTaskSubscriber::BackgroundTaskSubscriberImpl::OnAppContinuousTaskStop(int32_t uid) 178 __attribute__((no_sanitize("cfi"))) 179 { 180 subscriber_.OnAppContinuousTaskStop(uid); 181 return ERR_OK; 182 } 183 } // namespace BackgroundTaskMgr 184 } // namespace OHOS