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_AAFWK_ABILITY_MANAGER_STUB_H 17 #define OHOS_AAFWK_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 "hilog_wrapper.h" 25 26 namespace OHOS { 27 namespace AAFwk { 28 /** 29 * @class AbilityManagerStub 30 * AbilityManagerStub. 31 */ 32 class AbilityManagerStub : public IRemoteStub<IAbilityManager> { 33 public: 34 AbilityManagerStub(); 35 ~AbilityManagerStub(); 36 virtual int OnRemoteRequest( 37 uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override; 38 39 /** 40 * Calls this interface to move the ability to the foreground. 41 * 42 * @param token, ability's token. 43 * @param flag, use for lock or unlock flag and so on. 44 * @return Returns ERR_OK on success, others on failure. 45 */ 46 virtual int DoAbilityForeground(const sptr<IRemoteObject> &token, uint32_t flag) override; 47 48 /** 49 * Calls this interface to move the ability to the background. 50 * 51 * @param token, ability's token. 52 * @param flag, use for lock or unlock flag and so on. 53 * @return Returns ERR_OK on success, others on failure. 54 */ 55 virtual int DoAbilityBackground(const sptr<IRemoteObject> &token, uint32_t flag) override; 56 private: 57 void FirstStepInit(); 58 void SecondStepInit(); 59 void ThirdStepInit(); 60 int TerminateAbilityInner(MessageParcel &data, MessageParcel &reply); 61 int TerminateAbilityByCallerInner(MessageParcel &data, MessageParcel &reply); 62 int MinimizeAbilityInner(MessageParcel &data, MessageParcel &reply); 63 int AttachAbilityThreadInner(MessageParcel &data, MessageParcel &reply); 64 int AbilityTransitionDoneInner(MessageParcel &data, MessageParcel &reply); 65 int ScheduleConnectAbilityDoneInner(MessageParcel &data, MessageParcel &reply); 66 int ScheduleDisconnectAbilityDoneInner(MessageParcel &data, MessageParcel &reply); 67 int AddWindowInfoInner(MessageParcel &data, MessageParcel &reply); 68 int TerminateAbilityResultInner(MessageParcel &data, MessageParcel &reply); 69 int GetAllStackInfoInner(MessageParcel &data, MessageParcel &reply); 70 int GetRecentMissionsInner(MessageParcel &data, MessageParcel &reply); 71 int RemoveMissionInner(MessageParcel &data, MessageParcel &reply); 72 int ScheduleCommandAbilityDoneInner(MessageParcel &data, MessageParcel &reply); 73 int GetMissionSnapshotInner(MessageParcel &data, MessageParcel &reply); 74 int AcquireDataAbilityInner(MessageParcel &data, MessageParcel &reply); 75 int ReleaseDataAbilityInner(MessageParcel &data, MessageParcel &reply); 76 int MoveMissionToTopInner(MessageParcel &data, MessageParcel &reply); 77 int MoveMissionToEndInner(MessageParcel &data, MessageParcel &reply); 78 int KillProcessInner(MessageParcel &data, MessageParcel &reply); 79 int UninstallAppInner(MessageParcel &data, MessageParcel &reply); 80 int StartAbilityInner(MessageParcel &data, MessageParcel &reply); 81 int StartAbilityAddCallerInner(MessageParcel &data, MessageParcel &reply); 82 int ConnectAbilityInner(MessageParcel &data, MessageParcel &reply); 83 int DisconnectAbilityInner(MessageParcel &data, MessageParcel &reply); 84 int StopServiceAbilityInner(MessageParcel &data, MessageParcel &reply); 85 int DumpStateInner(MessageParcel &data, MessageParcel &reply); 86 int DumpSysStateInner(MessageParcel &data, MessageParcel &reply); 87 int StartAbilityForSettingsInner(MessageParcel &data, MessageParcel &reply); 88 int StartAbilityForOptionsInner(MessageParcel &data, MessageParcel &reply); 89 int MoveMissionToFloatingStackInner(MessageParcel &data, MessageParcel &reply); 90 int MoveMissionToSplitScreenStackInner(MessageParcel &data, MessageParcel &reply); 91 int ChangeFocusAbilityInner(MessageParcel &data, MessageParcel &reply); 92 int MinimizeMultiWindowInner(MessageParcel &data, MessageParcel &reply); 93 int MaximizeMultiWindowInner(MessageParcel &data, MessageParcel &reply); 94 int GetFloatingMissionsInner(MessageParcel &data, MessageParcel &reply); 95 int CloseMultiWindowInner(MessageParcel &data, MessageParcel &reply); 96 int SetMissionStackSettingInner(MessageParcel &data, MessageParcel &reply); 97 int IsFirstInMissionInner(MessageParcel &data, MessageParcel &reply); 98 int PowerOffInner(MessageParcel &data, MessageParcel &reply); 99 int PowerOnInner(MessageParcel &data, MessageParcel &reply); 100 int LockMissionInner(MessageParcel &data, MessageParcel &reply); 101 int UnlockMissionInner(MessageParcel &data, MessageParcel &reply); 102 int SetMissionDescriptionInfoInner(MessageParcel &data, MessageParcel &reply); 103 int GetMissionLockModeStateInner(MessageParcel &data, MessageParcel &reply); 104 int UpdateConfigurationInner(MessageParcel &data, MessageParcel &reply); 105 106 int GetWantSenderInner(MessageParcel &data, MessageParcel &reply); 107 int SendWantSenderInner(MessageParcel &data, MessageParcel &reply); 108 int CancelWantSenderInner(MessageParcel &data, MessageParcel &reply); 109 110 int GetPendingWantUidInner(MessageParcel &data, MessageParcel &reply); 111 int GetPendingWantUserIdInner(MessageParcel &data, MessageParcel &reply); 112 int GetPendingWantBundleNameInner(MessageParcel &data, MessageParcel &reply); 113 int GetPendingWantCodeInner(MessageParcel &data, MessageParcel &reply); 114 int GetPendingWantTypeInner(MessageParcel &data, MessageParcel &reply); 115 116 int RegisterCancelListenerInner(MessageParcel &data, MessageParcel &reply); 117 int UnregisterCancelListenerInner(MessageParcel &data, MessageParcel &reply); 118 119 int GetPendingRequestWantInner(MessageParcel &data, MessageParcel &reply); 120 int GetWantSenderInfoInner(MessageParcel &data, MessageParcel &reply); 121 int SetShowOnLockScreenInner(MessageParcel &data, MessageParcel &reply); 122 123 int GetSystemMemoryAttrInner(MessageParcel &data, MessageParcel &reply); 124 int GetAppMemorySizeInner(MessageParcel &data, MessageParcel &reply); 125 int IsRamConstrainedDeviceInner(MessageParcel &data, MessageParcel &reply); 126 int ClearUpApplicationDataInner(MessageParcel &data, MessageParcel &reply); 127 128 int ContinueMissionInner(MessageParcel &data, MessageParcel &reply); 129 int ContinueAbilityInner(MessageParcel &data, MessageParcel &reply); 130 int StartContinuationInner(MessageParcel &data, MessageParcel &reply); 131 int NotifyCompleteContinuationInner(MessageParcel &data, MessageParcel &reply); 132 int NotifyContinuationResultInner(MessageParcel &data, MessageParcel &reply); 133 int RegisterRemoteMissionListenerInner(MessageParcel &data, MessageParcel &reply); 134 int UnRegisterRemoteMissionListenerInner(MessageParcel &data, MessageParcel &reply); 135 136 int LockMissionForCleanupInner(MessageParcel &data, MessageParcel &reply); 137 int UnlockMissionForCleanupInner(MessageParcel &data, MessageParcel &reply); 138 int RegisterMissionListenerInner(MessageParcel &data, MessageParcel &reply); 139 int UnRegisterMissionListenerInner(MessageParcel &data, MessageParcel &reply); 140 int GetMissionInfosInner(MessageParcel &data, MessageParcel &reply); 141 int GetMissionInfoInner(MessageParcel &data, MessageParcel &reply); 142 int CleanMissionInner(MessageParcel &data, MessageParcel &reply); 143 int CleanAllMissionsInner(MessageParcel &data, MessageParcel &reply); 144 int MoveMissionToFrontInner(MessageParcel &data, MessageParcel &reply); 145 int GetMissionIdByTokenInner(MessageParcel &data, MessageParcel &reply); 146 147 // for new version ability (call ability) 148 int StartAbilityByCallInner(MessageParcel &data, MessageParcel &reply); 149 int ReleaseInner(MessageParcel &data, MessageParcel &reply); 150 int StartUserInner(MessageParcel &data, MessageParcel &reply); 151 int StopUserInner(MessageParcel &data, MessageParcel &reply); 152 int SetMissionLabelInner(MessageParcel &data, MessageParcel &reply); 153 int SetMissionIconInner(MessageParcel &data, MessageParcel &reply); 154 int GetAbilityRunningInfosInner(MessageParcel &data, MessageParcel &reply); 155 int GetExtensionRunningInfosInner(MessageParcel &data, MessageParcel &reply); 156 int GetProcessRunningInfosInner(MessageParcel &data, MessageParcel &reply); 157 158 int StartSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply); 159 int StopSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply); 160 int RegisterSnapshotHandlerInner(MessageParcel &data, MessageParcel &reply); 161 int GetMissionSnapshotInfoInner(MessageParcel &data, MessageParcel &reply); 162 int SendANRProcessIDInner(MessageParcel &data, MessageParcel &reply); 163 164 int SetAbilityControllerInner(MessageParcel &data, MessageParcel &reply); 165 166 int StartUserTestInner(MessageParcel &data, MessageParcel &reply); 167 int FinishUserTestInner(MessageParcel &data, MessageParcel &reply); 168 int GetCurrentTopAbilityInner(MessageParcel &data, MessageParcel &reply); 169 int DelegatorDoAbilityForegroundInner(MessageParcel &data, MessageParcel &reply); 170 int DelegatorDoAbilityBackgroundInner(MessageParcel &data, MessageParcel &reply); 171 int DoAbilityForegroundInner(MessageParcel &data, MessageParcel &reply); 172 int DoAbilityBackgroundInner(MessageParcel &data, MessageParcel &reply); 173 174 int IsRunningInStabilityTestInner(MessageParcel &data, MessageParcel &reply); 175 int MoveMissionToFrontByOptionsInner(MessageParcel &data, MessageParcel &reply); 176 177 int ForceTimeoutForTestInner(MessageParcel &data, MessageParcel &reply); 178 179 using RequestFuncType = int (AbilityManagerStub::*)(MessageParcel &data, MessageParcel &reply); 180 std::map<uint32_t, RequestFuncType> requestFuncMap_; 181 182 int GetTopAbilityInner(MessageParcel &data, MessageParcel &reply); 183 int DumpAbilityInfoDoneInner(MessageParcel &data, MessageParcel &reply); 184 }; 185 } // namespace AAFwk 186 } // namespace OHOS 187 #endif // OHOS_AAFWK_ABILITY_MANAGER_STUB_H 188