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 "expired_callback_proxy.h" 17 18 #include <message_parcel.h> 19 20 #include "transient_task_log.h" 21 #include "iexpired_callback_ipc_interface_code.h" 22 23 namespace OHOS { 24 namespace BackgroundTaskMgr { ExpiredCallbackProxy(const sptr<IRemoteObject> & impl)25ExpiredCallbackProxy::ExpiredCallbackProxy(const sptr<IRemoteObject>& impl) 26 : IRemoteProxy<IExpiredCallback>(impl) {} ~ExpiredCallbackProxy()27ExpiredCallbackProxy::~ExpiredCallbackProxy() {} 28 OnExpired()29void ExpiredCallbackProxy::OnExpired() 30 { 31 sptr<IRemoteObject> remote = Remote(); 32 if (remote == nullptr) { 33 BGTASK_LOGE("OnExpired remote is dead."); 34 return; 35 } 36 37 MessageParcel data; 38 MessageParcel reply; 39 MessageOption option(MessageOption::TF_ASYNC); 40 bool res = data.WriteInterfaceToken(ExpiredCallbackProxy::GetDescriptor()); 41 if (!res) { 42 BGTASK_LOGE("OnExpired write descriptor failed."); 43 return; 44 } 45 remote->SendRequest( 46 static_cast<uint32_t>(IExpiredCallbackInterfaceCode::ON_EXPIRED), data, reply, option); 47 } 48 } // namespace BackgroundTaskMgr 49 } // namespace OHOS