• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef ACCESSIBILITY_ABILITY_MANAGER_SERVICE_CLIENT_STUB_H
17 #define ACCESSIBILITY_ABILITY_MANAGER_SERVICE_CLIENT_STUB_H
18 
19 #include <map>
20 #include "i_accessible_ability_manager_service.h"
21 #include "iremote_stub.h"
22 
23 namespace OHOS {
24 namespace Accessibility {
25 /*
26  * The class define the interface to call ABMS API.
27  */
28 class AccessibleAbilityManagerServiceStub : public IRemoteStub<IAccessibleAbilityManagerService> {
29 public:
30     /**
31      * @brief construct function
32      * @param object The object of IPC
33      */
34     AccessibleAbilityManagerServiceStub();
35 
36     /**
37      * @brief destruct function
38      */
39     virtual ~AccessibleAbilityManagerServiceStub();
40 
41     /**
42      * @brief Receive the event from proxy by IPC mechanism.
43      * @param code The code is matched with the process function.
44      * @param data The data of process communication
45      * @param reply The response of IPC request
46      * @param option The option parameter of IPC,such as: async,sync
47      */
48     virtual int OnRemoteRequest(
49         uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
50 private:
51     /**
52      * @brief add accessibility get config handles.
53      */
54     void AddGetConfigHandles();
55 
56     /**
57      * @brief add accessibility set config handles.
58      */
59     void AddSetConfigHandles();
60 
61     /**
62      * @brief Check the caller has permissions.
63      * @param permission The description of permission
64      * @return Check result.
65      */
66     bool CheckPermission(const std::string &permission) const;
67 
68     /**
69      * @brief Check if the caller is a system application.
70      * @return Check result.
71      */
72     bool IsSystemApp() const;
73 
74     /**
75      * @brief Check the caller is an application.
76      * @return Check result.
77      */
78     bool IsApp() const;
79 
80     /**
81      * @brief Handle the IPC request for the function:HandleSendEvent.
82      * @param data The data of process communication
83      * @param reply The response of IPC request
84      * @return NO_ERROR: successful; otherwise is failed.
85      */
86     ErrCode HandleSendEvent(MessageParcel &data, MessageParcel &reply);
87 
88     /**
89      * @brief Handle the IPC request for the function:HandleRegisterStateCallback.
90      * @param data The data of process communication
91      * @param reply The response of IPC request
92      * @return NO_ERROR: successful; otherwise is failed.
93      */
94     ErrCode HandleRegisterStateCallback(MessageParcel &data, MessageParcel &reply);
95 
96     /**
97      * @brief Handle the IPC request for the function:HandleGetAbilityList.
98      * @param data The data of process communication
99      * @param reply The response of IPC request
100      * @return NO_ERROR: successful; otherwise is failed.
101      */
102     ErrCode HandleGetAbilityList(MessageParcel &data, MessageParcel &reply);
103 
104     /**
105      * @brief Handle the IPC request for the function:HandleRegisterAccessibilityElementOperator.
106      * @param data The data of process communication
107      * @param reply The response of IPC request
108      * @return NO_ERROR: successful; otherwise is failed.
109      */
110     ErrCode HandleRegisterAccessibilityElementOperator(MessageParcel &data, MessageParcel &reply);
111 
112     /**
113      * @brief Handle the IPC request for the function:HandleDeregisterAccessibilityElementOperator.
114      * @param data The data of process communication
115      * @param reply The response of IPC request
116      * @return NO_ERROR: successful; otherwise is failed.
117      */
118     ErrCode HandleDeregisterAccessibilityElementOperator(MessageParcel &data, MessageParcel &reply);
119     ErrCode HandleGetCaptionProperty(MessageParcel &data, MessageParcel &reply);
120     ErrCode HandleSetCaptionProperty(MessageParcel &data, MessageParcel &reply);
121     ErrCode HandleSetCaptionState(MessageParcel &data, MessageParcel &reply);
122     ErrCode HandleRegisterCaptionPropertyCallback(MessageParcel &data, MessageParcel &reply);
123 
124     ErrCode HandleGetEnabled(MessageParcel &data, MessageParcel &reply);
125     ErrCode HandleGetCaptionState(MessageParcel &data, MessageParcel &reply);
126     ErrCode HandleGetTouchGuideState(MessageParcel &data, MessageParcel &reply);
127     ErrCode HandleGetGestureState(MessageParcel &data, MessageParcel &reply);
128     ErrCode HandleGetKeyEventObserverState(MessageParcel &data, MessageParcel &reply);
129 
130     ErrCode HandleEnableAbility(MessageParcel &data, MessageParcel &reply);
131     ErrCode HandleGetEnabledAbilities(MessageParcel &data, MessageParcel &reply);
132     ErrCode HandleDisableAbility(MessageParcel &data, MessageParcel &reply);
133     ErrCode HandleEnableUITestAbility(MessageParcel &data, MessageParcel &reply);
134     ErrCode HandleDisableUITestAbility(MessageParcel &data, MessageParcel &reply);
135     ErrCode HandleGetActiveWindow(MessageParcel &data, MessageParcel &reply);
136 
137     ErrCode HandleSetScreenMagnificationState(MessageParcel &data, MessageParcel &reply);
138     ErrCode HandleSetShortKeyState(MessageParcel &data, MessageParcel &reply);
139     ErrCode HandleSetMouseKeyState(MessageParcel &data, MessageParcel &reply);
140     ErrCode HandleSetMouseAutoClick(MessageParcel &data, MessageParcel &reply);
141     ErrCode HandleSetShortkeyTarget(MessageParcel &data, MessageParcel &reply);
142     ErrCode HandleSetShortkeyMultiTarget(MessageParcel &data, MessageParcel &reply);
143     ErrCode HandleSetHighContrastTextState(MessageParcel &data, MessageParcel &reply);
144     ErrCode HandleSetInvertColorState(MessageParcel &data, MessageParcel &reply);
145     ErrCode HandleSetAnimationOffState(MessageParcel &data, MessageParcel &reply);
146     ErrCode HandleSetAudioMonoState(MessageParcel &data, MessageParcel &reply);
147     ErrCode HandleSetDaltonizationState(MessageParcel &data, MessageParcel &reply);
148     ErrCode HandleSetDaltonizationColorFilter(MessageParcel &data, MessageParcel &reply);
149     ErrCode HandleSetContentTimeout(MessageParcel &data, MessageParcel &reply);
150     ErrCode HandleSetBrightnessDiscount(MessageParcel &data, MessageParcel &reply);
151     ErrCode HandleSetAudioBalance(MessageParcel &data, MessageParcel &reply);
152     ErrCode HandleSetClickResponseTime(MessageParcel &data, MessageParcel &reply);
153     ErrCode HandleSetIgnoreRepeatClickState(MessageParcel &data, MessageParcel &reply);
154     ErrCode HandleSetIgnoreRepeatClickTime(MessageParcel &data, MessageParcel &reply);
155 
156     ErrCode HandleGetScreenMagnificationState(MessageParcel &data, MessageParcel &reply);
157     ErrCode HandleGetShortKeyState(MessageParcel &data, MessageParcel &reply);
158     ErrCode HandleGetMouseKeyState(MessageParcel &data, MessageParcel &reply);
159     ErrCode HandleGetMouseAutoClick(MessageParcel &data, MessageParcel &reply);
160     ErrCode HandleGetShortkeyTarget(MessageParcel &data, MessageParcel &reply);
161     ErrCode HandleGetShortkeyMultiTarget(MessageParcel &data, MessageParcel &reply);
162     ErrCode HandleGetHighContrastTextState(MessageParcel &data, MessageParcel &reply);
163     ErrCode HandleGetInvertColorState(MessageParcel &data, MessageParcel &reply);
164     ErrCode HandleGetAnimationOffState(MessageParcel &data, MessageParcel &reply);
165     ErrCode HandleGetAudioMonoState(MessageParcel &data, MessageParcel &reply);
166     ErrCode HandleGetDaltonizationState(MessageParcel &data, MessageParcel &reply);
167     ErrCode HandleGetDaltonizationColorFilter(MessageParcel &data, MessageParcel &reply);
168     ErrCode HandleGetContentTimeout(MessageParcel &data, MessageParcel &reply);
169     ErrCode HandleGetBrightnessDiscount(MessageParcel &data, MessageParcel &reply);
170     ErrCode HandleGetAudioBalance(MessageParcel &data, MessageParcel &reply);
171     ErrCode HandleGetClickResponseTime(MessageParcel &data, MessageParcel &reply);
172     ErrCode HandleGetIgnoreRepeatClickState(MessageParcel &data, MessageParcel &reply);
173     ErrCode HandleGetIgnoreRepeatClickTime(MessageParcel &data, MessageParcel &reply);
174     ErrCode HandleGetAllConfigs(MessageParcel &data, MessageParcel &reply);
175 
176     ErrCode HandleRegisterEnableAbilityListsObserver(MessageParcel &data, MessageParcel &reply);
177     ErrCode HandleRegisterConfigCallback(MessageParcel &data, MessageParcel &reply);
178     ErrCode HandleGetWindowAndElementId(MessageParcel &data, MessageParcel &reply);
179     ErrCode HandleGetSceneBoardInnerWinId(MessageParcel &data, MessageParcel &reply);
180     ErrCode HandleGetFocusedWindowId(MessageParcel &data, MessageParcel &reply);
181 
182     using AccessibilityAbilityManagerServiceFunc = ErrCode (AccessibleAbilityManagerServiceStub::*)(
183         MessageParcel &data, MessageParcel &reply);
184     std::map<uint32_t, AccessibilityAbilityManagerServiceFunc> memberFuncMap_;
185 };
186 } // namespace Accessibility
187 } // namespace OHOS
188 #endif