1c5e268c6Sopenharmony_ci/* 2c5e268c6Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3c5e268c6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c5e268c6Sopenharmony_ci * you may not use this file except in compliance with the License. 5c5e268c6Sopenharmony_ci * You may obtain a copy of the License at 6c5e268c6Sopenharmony_ci * 7c5e268c6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c5e268c6Sopenharmony_ci * 9c5e268c6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c5e268c6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c5e268c6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c5e268c6Sopenharmony_ci * See the License for the specific language governing permissions and 13c5e268c6Sopenharmony_ci * limitations under the License. 14c5e268c6Sopenharmony_ci */ 15c5e268c6Sopenharmony_ci 16c5e268c6Sopenharmony_ci#ifndef OHOS_HDI_HDIFD_PARCELABLE_H 17c5e268c6Sopenharmony_ci#define OHOS_HDI_HDIFD_PARCELABLE_H 18c5e268c6Sopenharmony_ci 19c5e268c6Sopenharmony_ci#include <string> 20c5e268c6Sopenharmony_ci#include <vector> 21c5e268c6Sopenharmony_ci#include <parcel.h> 22c5e268c6Sopenharmony_ci 23c5e268c6Sopenharmony_cinamespace OHOS { 24c5e268c6Sopenharmony_cinamespace HDI { 25c5e268c6Sopenharmony_cinamespace Display { 26c5e268c6Sopenharmony_ciusing namespace OHOS; 27c5e268c6Sopenharmony_ci 28c5e268c6Sopenharmony_ciclass HdifdParcelable : public Parcelable { 29c5e268c6Sopenharmony_cipublic: 30c5e268c6Sopenharmony_ci HdifdParcelable(); 31c5e268c6Sopenharmony_ci explicit HdifdParcelable(int32_t fd); 32c5e268c6Sopenharmony_ci virtual ~HdifdParcelable(); 33c5e268c6Sopenharmony_ci 34c5e268c6Sopenharmony_ci bool Init(int32_t fd); 35c5e268c6Sopenharmony_ci bool Marshalling(Parcel& parcel) const override; 36c5e268c6Sopenharmony_ci static sptr<HdifdParcelable> Unmarshalling(Parcel& parcel); 37c5e268c6Sopenharmony_ci int32_t Move(); 38c5e268c6Sopenharmony_ci int32_t GetFd(); 39c5e268c6Sopenharmony_ci std::string Dump() const; 40c5e268c6Sopenharmony_ci 41c5e268c6Sopenharmony_ciprivate: 42c5e268c6Sopenharmony_ci static bool WriteFileDescriptor(const int fd, Parcel& parcel); 43c5e268c6Sopenharmony_ci static int ReadFileDescriptor(Parcel& parcel); 44c5e268c6Sopenharmony_ci 45c5e268c6Sopenharmony_ciprivate: 46c5e268c6Sopenharmony_ci bool isOwner_; 47c5e268c6Sopenharmony_ci int32_t hdiFd_; 48c5e268c6Sopenharmony_ci}; 49c5e268c6Sopenharmony_ci} // Display 50c5e268c6Sopenharmony_ci} // HDI 51c5e268c6Sopenharmony_ci} // OHOS 52c5e268c6Sopenharmony_ci#endif // OHOS_HDI_HDIFD_PARCELABLE_H 53