• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-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 OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H
17 #define OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H
18 
19 #include "ability_manager_interface.h"
20 
21 #include <iremote_object.h>
22 #include <iremote_stub.h>
23 
24 #include "dlp_connection_info.h"
25 #include "hilog_wrapper.h"
26 #include "iconnection_observer.h"
27 
28 namespace OHOS {
29 namespace AAFwk {
30 /**
31  * @class AbilityManagerStub
32  * AbilityManagerStub.
33  */
34 class AbilityManagerStub : public IRemoteStub<IAbilityManager> {
35 public:
36     AbilityManagerStub();
37     ~AbilityManagerStub();
38     virtual int OnRemoteRequest(
39         uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
40 
41     /**
42      * Calls this interface to move the ability to the foreground.
43      *
44      * @param token, ability's token.
45      * @param flag, use for lock or unlock flag and so on.
46      * @return Returns ERR_OK on success, others on failure.
47      */
48     virtual int DoAbilityForeground(const sptr<IRemoteObject> &token, uint32_t flag) override;
49 
50     /**
51      * Calls this interface to move the ability to the background.
52      *
53      * @param token, ability's token.
54      * @param flag, use for lock or unlock flag and so on.
55      * @return Returns ERR_OK on success, others on failure.
56      */
57     virtual int DoAbilityBackground(const sptr<IRemoteObject> &token, uint32_t flag) override;
58 
59     virtual int RegisterObserver(const sptr<AbilityRuntime::IConnectionObserver> &observer);
60 
61     virtual int UnregisterObserver(const sptr<AbilityRuntime::IConnectionObserver> &observer);
62 
63     virtual int GetDlpConnectionInfos(std::vector<AbilityRuntime::DlpConnectionInfo> &infos);
64 
65 private:
66     void FirstStepInit();
67     void SecondStepInit();
68     void ThirdStepInit();
69     int TerminateAbilityInner(MessageParcel &data, MessageParcel &reply);
70     int SendResultToAbilityInner(MessageParcel &data, MessageParcel &reply);
71     int TerminateAbilityByCallerInner(MessageParcel &data, MessageParcel &reply);
72     int MinimizeAbilityInner(MessageParcel &data, MessageParcel &reply);
73     int AttachAbilityThreadInner(MessageParcel &data, MessageParcel &reply);
74     int AbilityTransitionDoneInner(MessageParcel &data, MessageParcel &reply);
75     int ScheduleConnectAbilityDoneInner(MessageParcel &data, MessageParcel &reply);
76     int ScheduleDisconnectAbilityDoneInner(MessageParcel &data, MessageParcel &reply);
77     int TerminateAbilityResultInner(MessageParcel &data, MessageParcel &reply);
78     int ScheduleCommandAbilityDoneInner(MessageParcel &data, MessageParcel &reply);
79     int GetMissionSnapshotInner(MessageParcel &data, MessageParcel &reply);
80     int AcquireDataAbilityInner(MessageParcel &data, MessageParcel &reply);
81     int ReleaseDataAbilityInner(MessageParcel &data, MessageParcel &reply);
82     int KillProcessInner(MessageParcel &data, MessageParcel &reply);
83     int UninstallAppInner(MessageParcel &data, MessageParcel &reply);
84     int StartAbilityInner(MessageParcel &data, MessageParcel &reply);
85     int StartExtensionAbilityInner(MessageParcel &data, MessageParcel &reply);
86     int StopExtensionAbilityInner(MessageParcel& data, MessageParcel& reply);
87     int StartAbilityAddCallerInner(MessageParcel &data, MessageParcel &reply);
88     int ConnectAbilityInner(MessageParcel &data, MessageParcel &reply);
89     int ConnectAbilityWithTypeInner(MessageParcel &data, MessageParcel &reply);
90     int DisconnectAbilityInner(MessageParcel &data, MessageParcel &reply);
91     int StopServiceAbilityInner(MessageParcel &data, MessageParcel &reply);
92     int DumpStateInner(MessageParcel &data, MessageParcel &reply);
93     int DumpSysStateInner(MessageParcel &data, MessageParcel &reply);
94     int StartAbilityForSettingsInner(MessageParcel &data, MessageParcel &reply);
95     int StartAbilityForOptionsInner(MessageParcel &data, MessageParcel &reply);
96 
97     int GetWantSenderInner(MessageParcel &data, MessageParcel &reply);
98     int SendWantSenderInner(MessageParcel &data, MessageParcel &reply);
99     int CancelWantSenderInner(MessageParcel &data, MessageParcel &reply);
100 
101     int GetPendingWantUidInner(MessageParcel &data, MessageParcel &reply);
102     int GetPendingWantUserIdInner(MessageParcel &data, MessageParcel &reply);
103     int GetPendingWantBundleNameInner(MessageParcel &data, MessageParcel &reply);
104     int GetPendingWantCodeInner(MessageParcel &data, MessageParcel &reply);
105     int GetPendingWantTypeInner(MessageParcel &data, MessageParcel &reply);
106 
107     int RegisterCancelListenerInner(MessageParcel &data, MessageParcel &reply);
108     int UnregisterCancelListenerInner(MessageParcel &data, MessageParcel &reply);
109 
110     int GetPendingRequestWantInner(MessageParcel &data, MessageParcel &reply);
111     int GetWantSenderInfoInner(MessageParcel &data, MessageParcel &reply);
112 
113     int GetAppMemorySizeInner(MessageParcel &data, MessageParcel &reply);
114     int IsRamConstrainedDeviceInner(MessageParcel &data, MessageParcel &reply);
115     int ClearUpApplicationDataInner(MessageParcel &data, MessageParcel &reply);
116 
117     int ContinueMissionInner(MessageParcel &data, MessageParcel &reply);
118     int ContinueAbilityInner(MessageParcel &data, MessageParcel &reply);
119     int StartContinuationInner(MessageParcel &data, MessageParcel &reply);
120     int NotifyCompleteContinuationInner(MessageParcel &data, MessageParcel &reply);
121     int NotifyContinuationResultInner(MessageParcel &data, MessageParcel &reply);
122     int RegisterRemoteMissionListenerInner(MessageParcel &data, MessageParcel &reply);
123     int UnRegisterRemoteMissionListenerInner(MessageParcel &data, MessageParcel &reply);
124 
125     int LockMissionForCleanupInner(MessageParcel &data, MessageParcel &reply);
126     int UnlockMissionForCleanupInner(MessageParcel &data, MessageParcel &reply);
127     int RegisterMissionListenerInner(MessageParcel &data, MessageParcel &reply);
128     int UnRegisterMissionListenerInner(MessageParcel &data, MessageParcel &reply);
129     int GetMissionInfosInner(MessageParcel &data, MessageParcel &reply);
130     int GetMissionInfoInner(MessageParcel &data, MessageParcel &reply);
131     int CleanMissionInner(MessageParcel &data, MessageParcel &reply);
132     int CleanAllMissionsInner(MessageParcel &data, MessageParcel &reply);
133     int MoveMissionToFrontInner(MessageParcel &data, MessageParcel &reply);
134     int GetMissionIdByTokenInner(MessageParcel &data, MessageParcel &reply);
135 
136 	// for new version ability (call ability)
137     int StartAbilityByCallInner(MessageParcel &data, MessageParcel &reply);
138     int CallRequestDoneInner(MessageParcel &data, MessageParcel &reply);
139     int ReleaseCallInner(MessageParcel &data, MessageParcel &reply);
140     int StartUserInner(MessageParcel &data, MessageParcel &reply);
141     int StopUserInner(MessageParcel &data, MessageParcel &reply);
142     int GetAbilityRunningInfosInner(MessageParcel &data, MessageParcel &reply);
143     int GetExtensionRunningInfosInner(MessageParcel &data, MessageParcel &reply);
144     int GetProcessRunningInfosInner(MessageParcel &data, MessageParcel &reply);
145 
146     int StartSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply);
147     int StopSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply);
148     int RegisterSnapshotHandlerInner(MessageParcel &data, MessageParcel &reply);
149     int GetMissionSnapshotInfoInner(MessageParcel &data, MessageParcel &reply);
150     int SendANRProcessIDInner(MessageParcel &data, MessageParcel &reply);
151 
152     int SetAbilityControllerInner(MessageParcel &data, MessageParcel &reply);
153     int SetComponentInterceptionInner(MessageParcel &data, MessageParcel &reply);
154     int SendResultToAbilityByTokenInner(MessageParcel &data, MessageParcel &reply);
155 
156     int StartUserTestInner(MessageParcel &data, MessageParcel &reply);
157     int FinishUserTestInner(MessageParcel &data, MessageParcel &reply);
158     int GetTopAbilityTokenInner(MessageParcel &data, MessageParcel &reply);
159     int DelegatorDoAbilityForegroundInner(MessageParcel &data, MessageParcel &reply);
160     int DelegatorDoAbilityBackgroundInner(MessageParcel &data, MessageParcel &reply);
161     int DoAbilityForegroundInner(MessageParcel &data, MessageParcel &reply);
162     int DoAbilityBackgroundInner(MessageParcel &data, MessageParcel &reply);
163 
164     int IsRunningInStabilityTestInner(MessageParcel &data, MessageParcel &reply);
165     int MoveMissionToFrontByOptionsInner(MessageParcel &data, MessageParcel &reply);
166 
167     int UpdateMissionSnapShotInner(MessageParcel &data, MessageParcel &reply);
168     int RegisterConnectionObserverInner(MessageParcel &data, MessageParcel &reply);
169     int UnregisterConnectionObserverInner(MessageParcel &data, MessageParcel &reply);
170     int GetDlpConnectionInfosInner(MessageParcel &data, MessageParcel &reply);
171 #ifdef SUPPORT_GRAPHICS
172     int SetMissionLabelInner(MessageParcel &data, MessageParcel &reply);
173     int SetMissionIconInner(MessageParcel &data, MessageParcel &reply);
174     int RegisterWindowManagerServiceHandlerInner(MessageParcel &data, MessageParcel &reply);
175     int CompleteFirstFrameDrawingInner(MessageParcel &data, MessageParcel &reply);
176 #endif
177 
178     #ifdef ABILITY_COMMAND_FOR_TEST
179     int ForceTimeoutForTestInner(MessageParcel &data, MessageParcel &reply);
180     #endif
181 
182     int FreeInstallAbilityFromRemoteInner(MessageParcel &data, MessageParcel &reply);
183 
184     using RequestFuncType = int (AbilityManagerStub::*)(MessageParcel &data, MessageParcel &reply);
185     std::map<uint32_t, RequestFuncType> requestFuncMap_;
186 
187     #ifdef ABILITY_COMMAND_FOR_TEST
188     int BlockAmsServiceInner(MessageParcel &data, MessageParcel &reply);
189     int BlockAbilityInner(MessageParcel &data, MessageParcel &reply);
190     int BlockAppServiceInner(MessageParcel &data, MessageParcel &reply);
191     #endif
192     int EnableRecoverAbilityInner(MessageParcel &data, MessageParcel &reply);
193     int ScheduleRecoverAbilityInner(MessageParcel &data, MessageParcel &reply);
194     int GetTopAbilityInner(MessageParcel &data, MessageParcel &reply);
195     int DumpAbilityInfoDoneInner(MessageParcel &data, MessageParcel &reply);
196 };
197 }  // namespace AAFwk
198 }  // namespace OHOS
199 #endif  // OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H
200