• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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