199552fe9Sopenharmony_ci/* 299552fe9Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 399552fe9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 499552fe9Sopenharmony_ci * you may not use this file except in compliance with the License. 599552fe9Sopenharmony_ci * You may obtain a copy of the License at 699552fe9Sopenharmony_ci * 799552fe9Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 899552fe9Sopenharmony_ci * 999552fe9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1099552fe9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1199552fe9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1299552fe9Sopenharmony_ci * See the License for the specific language governing permissions and 1399552fe9Sopenharmony_ci * limitations under the License. 1499552fe9Sopenharmony_ci */ 1599552fe9Sopenharmony_ci 1699552fe9Sopenharmony_ci#ifndef FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_UTILS_IPC_UTIL_H 1799552fe9Sopenharmony_ci#define FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_UTILS_IPC_UTIL_H 1899552fe9Sopenharmony_ci 1999552fe9Sopenharmony_ci#include <iremote_object.h> 2099552fe9Sopenharmony_ci#include <iservice_registry.h> 2199552fe9Sopenharmony_ci#include <string_ex.h> 2299552fe9Sopenharmony_ci 2399552fe9Sopenharmony_cinamespace OHOS { 2499552fe9Sopenharmony_cinamespace DevStandbyMgr { 2599552fe9Sopenharmony_ci#define READ_PARCEL(in, type, data) \ 2699552fe9Sopenharmony_ci do { \ 2799552fe9Sopenharmony_ci if (!(in).Read##type(data)) { \ 2899552fe9Sopenharmony_ci STANDBYSERVICE_LOGE("Failed to read "#data); \ 2999552fe9Sopenharmony_ci return; \ 3099552fe9Sopenharmony_ci } \ 3199552fe9Sopenharmony_ci } while (0) 3299552fe9Sopenharmony_ci 3399552fe9Sopenharmony_ci#define READ_PARCEL_WITH_RET(in, type, data, ret) \ 3499552fe9Sopenharmony_ci do { \ 3599552fe9Sopenharmony_ci if (!(in).Read##type(data)) { \ 3699552fe9Sopenharmony_ci STANDBYSERVICE_LOGE("Failed to read "#data); \ 3799552fe9Sopenharmony_ci return (ret); \ 3899552fe9Sopenharmony_ci } \ 3999552fe9Sopenharmony_ci } while (0) 4099552fe9Sopenharmony_ci 4199552fe9Sopenharmony_ci#define WRITE_PARCEL(out, type, data) \ 4299552fe9Sopenharmony_ci do { \ 4399552fe9Sopenharmony_ci if (!(out).Write##type(data)) { \ 4499552fe9Sopenharmony_ci STANDBYSERVICE_LOGE("Failed to write "#data); \ 4599552fe9Sopenharmony_ci return; \ 4699552fe9Sopenharmony_ci } \ 4799552fe9Sopenharmony_ci } while (0) 4899552fe9Sopenharmony_ci 4999552fe9Sopenharmony_ci#define WRITE_PARCEL_WITH_RET(out, type, data, ret) \ 5099552fe9Sopenharmony_ci do { \ 5199552fe9Sopenharmony_ci if (!(out).Write##type(data)) { \ 5299552fe9Sopenharmony_ci STANDBYSERVICE_LOGE("Failed to write "#data); \ 5399552fe9Sopenharmony_ci return (ret); \ 5499552fe9Sopenharmony_ci } \ 5599552fe9Sopenharmony_ci } while (0) 5699552fe9Sopenharmony_ci 5799552fe9Sopenharmony_ci}; // namespace DevStandbyMgr 5899552fe9Sopenharmony_ci}; // namespace OHOS 5999552fe9Sopenharmony_ci#endif // FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_UTILS_IPC_UTIL_H 60