1 /* 2 * Copyright (C) 2022-2025 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 #ifndef ACCESSIBILITY_EVENT_INFO_PARCEL_H 17 #define ACCESSIBILITY_EVENT_INFO_PARCEL_H 18 19 #include "accessibility_event_info.h" 20 #include "parcel.h" 21 22 namespace OHOS { 23 namespace Accessibility { 24 class ExtraEventInfoParcel : public ExtraEventInfo, public Parcelable { 25 public: 26 /** 27 * @brief Construct 28 * @sysCap Accessibility 29 */ 30 ExtraEventInfoParcel() = default; 31 32 /** 33 * @brief Construct 34 * @param extraEventInfo The object of ExtraEventInfo. 35 * @sysCap Accessibility 36 */ 37 explicit ExtraEventInfoParcel(const ExtraEventInfo &extraEventInfo); 38 39 /** 40 * @brief Used for IPC communication 41 * @param parcel 42 * @sysCap Accessibility 43 */ 44 bool ReadFromParcel(Parcel &parcel); 45 46 /** 47 * @brief Used for IPC communication 48 * @param parcel 49 * @sysCap Accessibility 50 */ 51 virtual bool Marshalling(Parcel &parcel) const override; 52 53 /** 54 * @brief Used for IPC communication 55 * @param parcel 56 * @sysCap Accessibility 57 */ 58 static ExtraEventInfoParcel *Unmarshalling(Parcel &parcel); 59 }; 60 61 class AccessibilityEventInfoParcel : public AccessibilityEventInfo, public Parcelable { 62 public: 63 /** 64 * @brief Construct 65 * @since 3 66 * @sysCap Accessibility 67 */ AccessibilityEventInfoParcel()68 AccessibilityEventInfoParcel() {} 69 70 /** 71 * @brief Construct 72 * @param eventInfo The object of AccessibilityEventInfo. 73 * @since 3 74 * @sysCap Accessibility 75 */ 76 explicit AccessibilityEventInfoParcel(const AccessibilityEventInfo &eventInfo); 77 78 /** 79 * @brief Used for IPC communication 80 * @param parcel 81 * @return true: Read parcel data successfully; otherwise is not. 82 * @since 3 83 * @sysCap Accessibility 84 */ 85 bool ReadFromParcel(Parcel &parcel); 86 87 /** 88 * @brief Used for IPC communication 89 * @param parcel 90 * @return true: Write parcel data successfully; otherwise is not. 91 * @since 3 92 * @sysCap Accessibility 93 */ 94 bool Marshalling(Parcel &parcel) const override; 95 96 /** 97 * @brief Used for IPC communication 98 * @param parcel 99 * @return true: Write parcel data successfully; otherwise is not. 100 * @sysCap Accessibility 101 */ 102 bool MarshallingFirstPart(Parcel &parcel) const; 103 104 /** 105 * @brief Used for IPC communication 106 * @param parcel 107 * @return true: Write parcel data successfully; otherwise is not. 108 * @sysCap Accessibility 109 */ 110 bool MarshallingSecondPart(Parcel &parcel) const; 111 112 /** 113 * @brief Used for IPC communication 114 * @param parcel 115 * @return Read AccessibilityEventInfoParcel from parcel data 116 * @since 3 117 * @sysCap Accessibility 118 */ 119 static AccessibilityEventInfoParcel *Unmarshalling(Parcel &parcel); 120 121 private: 122 /** 123 * @brief Used for IPC communication first part 124 * @param parcel 125 * @return true: Read parcel data successfully; otherwise is not. 126 * @sysCap Accessibility 127 */ 128 bool ReadFromParcelFirstPart(Parcel &parcel); 129 130 /** 131 * @brief Used for IPC communication second part 132 * @param parcel 133 * @return true: Read parcel data successfully; otherwise is not. 134 * @sysCap Accessibility 135 */ 136 bool ReadFromParcelSecondPart(Parcel &parcel); 137 138 /** 139 * @brief Used for IPC communication third part 140 * @param parcel 141 * @return true: Read parcel data successfully; otherwise is not. 142 * @sysCap Accessibility 143 */ 144 bool ReadFromParcelThirdPart(Parcel &parcel); 145 }; 146 } // namespace Accessibility 147 } // namespace OHOS 148 #endif // ACCESSIBILITY_EVENT_INFO_PARCEL_H 149