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