Files
aafwk_standard/services/abilitymgr/include/ability_manager_proxy.h
T
dy_study 83c84f8520 IssueNo:#I590L2:无UI界面编译宏优化整改
Description:无UI界面编译宏优化整改
Sig:SIG_ApplicationFramework
Feature or Bugfix:Feature
Binary Source: No

Signed-off-by: dy_study <dingyao5@huawei.com>
Change-Id: I4b7b7970263d7603791f2b1370a4eaf577f1a2b9
2022-05-24 19:13:45 +08:00

597 lines
23 KiB
C++

/*
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef OHOS_AAFWK_ABILITY_MANAGER_PROXY_H
#define OHOS_AAFWK_ABILITY_MANAGER_PROXY_H
#include "ability_manager_interface.h"
#include "hilog_wrapper.h"
#include "iremote_proxy.h"
namespace OHOS {
namespace AAFwk {
/**
* @class AbilityManagerProxy
* AbilityManagerProxy.
*/
class AbilityManagerProxy : public IRemoteProxy<IAbilityManager> {
public:
explicit AbilityManagerProxy(const sptr<IRemoteObject> &impl) : IRemoteProxy<IAbilityManager>(impl)
{}
virtual ~AbilityManagerProxy()
{}
/**
* StartAbility with want, send want to ability manager service.
*
* @param want, the want of the ability to start.
* @param requestCode, Ability request code.
* @param userId, Designation User ID.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int StartAbility(
const Want &want,
int32_t userId = DEFAULT_INVAL_VALUE,
int requestCode = DEFAULT_INVAL_VALUE) override;
/**
* StartAbility with want, send want to ability manager service.
*
* @param want, the want of the ability to start.
* @param callerToken, caller ability token.
* @param requestCode the resultCode of the ability to start.
* @param userId, Designation User ID.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int StartAbility(
const Want &want,
const sptr<IRemoteObject> &callerToken,
int32_t userId = DEFAULT_INVAL_VALUE,
int requestCode = DEFAULT_INVAL_VALUE) override;
/**
* Starts a new ability with specific start settings.
*
* @param want Indicates the ability to start.
* @param callerToken caller ability token.
* @param abilityStartSetting Indicates the setting ability used to start.
* @param userId, Designation User ID.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int StartAbility(
const Want &want,
const AbilityStartSetting &abilityStartSetting,
const sptr<IRemoteObject> &callerToken,
int32_t userId = DEFAULT_INVAL_VALUE,
int requestCode = DEFAULT_INVAL_VALUE) override;
/**
* Starts a new ability with specific start options.
*
* @param want, the want of the ability to start.
* @param startOptions Indicates the options used to start.
* @param callerToken, caller ability token.
* @param userId, Designation User ID.
* @param requestCode the resultCode of the ability to start.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int StartAbility(
const Want &want,
const StartOptions &startOptions,
const sptr<IRemoteObject> &callerToken,
int32_t userId = DEFAULT_INVAL_VALUE,
int requestCode = DEFAULT_INVAL_VALUE) override;
/**
* Start extension ability with want, send want to ability manager service.
*
* @param want, the want of the ability to start.
* @param callerToken, caller ability token.
* @param userId, Designation User ID.
* @param extensionType If an ExtensionAbilityType is set, only extension of that type can be started.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int StartExtensionAbility(
const Want &want,
const sptr<IRemoteObject> &callerToken,
int32_t userId = DEFAULT_INVAL_VALUE,
AppExecFwk::ExtensionAbilityType extensionType = AppExecFwk::ExtensionAbilityType::UNSPECIFIED) override;
/**
* Stop extension ability with want, send want to ability manager service.
*
* @param want, the want of the ability to stop.
* @param callerToken, caller ability token.
* @param userId, Designation User ID.
* @param extensionType If an ExtensionAbilityType is set, only extension of that type can be stopped.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int StopExtensionAbility(
const Want& want,
const sptr<IRemoteObject>& callerToken,
int32_t userId = DEFAULT_INVAL_VALUE,
AppExecFwk::ExtensionAbilityType extensionType = AppExecFwk::ExtensionAbilityType::UNSPECIFIED) override;
/**
* TerminateAbility, terminate the special ability.
*
* @param token, the token of the ability to terminate.
* @param resultCode, the resultCode of the ability to terminate.
* @param resultWant, the Want of the ability to return.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int TerminateAbility(
const sptr<IRemoteObject> &token, int resultCode, const Want *resultWant = nullptr) override;
/**
* TerminateAbility, terminate the special ability.
*
* @param callerToken, caller ability token.
* @param requestCode, Ability request code.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int TerminateAbilityByCaller(const sptr<IRemoteObject> &callerToken, int requestCode) override;
/**
* CloseAbility, close the special ability.
*
* @param token, the token of the ability to terminate.
* @param resultCode, the resultCode of the ability to terminate.
* @param resultWant, the Want of the ability to return.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int CloseAbility(
const sptr<IRemoteObject> &token, int resultCode, const Want *resultWant = nullptr) override;
/**
* MinimizeAbility, minimize the special ability.
*
* @param token, ability token.
* @param fromUser mark the minimize operation source.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int MinimizeAbility(const sptr<IRemoteObject> &token, bool fromUser = false) override;
/**
* ConnectAbility, connect session with service ability.
*
* @param want, Special want for service type's ability.
* @param connect, Callback used to notify caller the result of connecting or disconnecting.
* @param callerToken, caller ability token.
* @param userId, Designation User ID.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int ConnectAbility(
const Want &want,
const sptr<IAbilityConnection> &connect,
const sptr<IRemoteObject> &callerToken,
int32_t userId = DEFAULT_INVAL_VALUE) override;
/**
* DisconnectAbility, connect session with service ability.
*
* @param connect, Callback used to notify caller the result of connecting or disconnecting.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int DisconnectAbility(const sptr<IAbilityConnection> &connect) override;
/**
* AcquireDataAbility, acquire a data ability by its authority, if it not existed,
* AMS loads it synchronously.
*
* @param uri, data ability uri.
* @param isKill, true: when a data ability is died, ams will kill this client, or do nothing.
* @param callerToken, specifies the caller ability token.
* @return returns the data ability ipc object, or nullptr for failed.
*/
virtual sptr<IAbilityScheduler> AcquireDataAbility(
const Uri &uri, bool isKill, const sptr<IRemoteObject> &callerToken) override;
/**
* ReleaseDataAbility, release the data ability that referenced by 'dataAbilityToken'.
*
* @param dataAbilityScheduler, specifies the data ability that will be released.
* @param callerToken, specifies the caller ability token.
* @return returns ERR_OK if succeeded, or error codes for failed.
*/
virtual int ReleaseDataAbility(
sptr<IAbilityScheduler> dataAbilityScheduler, const sptr<IRemoteObject> &callerToken) override;
/**
* AttachAbilityThread, ability call this interface after loaded.
*
* @param scheduler,.the interface handler of kit ability.
* @param token,.ability's token.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int AttachAbilityThread(
const sptr<IAbilityScheduler> &scheduler, const sptr<IRemoteObject> &token) override;
/**
* AbilityTransitionDone, ability call this interface after lift cycle was changed.
*
* @param token,.ability's token.
* @param state,.the state of ability lift cycle.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int AbilityTransitionDone(const sptr<IRemoteObject> &token, int state, const PacMap &saveData) override;
/**
* ScheduleConnectAbilityDone, service ability call this interface while session was connected.
*
* @param token,.service ability's token.
* @param remoteObject,.the session proxy of service ability.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int ScheduleConnectAbilityDone(
const sptr<IRemoteObject> &token, const sptr<IRemoteObject> &remoteObject) override;
/**
* ScheduleDisconnectAbilityDone, service ability call this interface while session was disconnected.
*
* @param token,.service ability's token.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int ScheduleDisconnectAbilityDone(const sptr<IRemoteObject> &token) override;
/**
* ScheduleCommandAbilityDone, service ability call this interface while session was commanded.
*
* @param token,.service ability's token.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int ScheduleCommandAbilityDone(const sptr<IRemoteObject> &token) override;
/**
* dump ability stack info, about userID, mission stack info,
* mission record info and ability info.
*
* @param state Ability stack info.
* @return Returns ERR_OK on success, others on failure.
*/
virtual void DumpState(const std::string &args, std::vector<std::string> &state) override;
virtual void DumpSysState(
const std::string& args, std::vector<std::string>& state, bool isClient, bool isUserID, int UserID) override;
/**
* Destroys this Service ability if the number of times it
* has been started equals the number represented by
* the given startId.
*
* @param token ability's token.
* @param startId is incremented by 1 every time this ability is started.
* @return Returns true if the startId matches the number of startup times
* and this Service ability will be destroyed; returns false otherwise.
*/
virtual int TerminateAbilityResult(const sptr<IRemoteObject> &token, int startId) override;
/**
* Destroys this Service ability by Want.
*
* @param want, Special want for service type's ability.
* @return Returns true if this Service ability will be destroyed; returns false otherwise.
*/
virtual int StopServiceAbility(const Want &want, int32_t userId = DEFAULT_INVAL_VALUE) override;
/**
* Get top ability.
*
* @return Returns front desk focus ability elementName.
*/
virtual AppExecFwk::ElementName GetTopAbility() override;
/**
* Kill the process immediately.
*
* @param bundleName.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int KillProcess(const std::string &bundleName) override;
#ifdef ABILITY_COMMAND_FOR_TEST
/**
* force timeout ability.
*
* @param abilityName.
* @param state.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int ForceTimeoutForTest(const std::string &abilityName, const std::string &state) override;
#endif
/**
* ClearUpApplicationData, call ClearUpApplicationData() through proxy project,
* clear the application data.
*
* @param bundleName, bundle name in Application record.
* @return
*/
virtual int ClearUpApplicationData(const std::string &bundleName) override;
/**
* Uninstall app
*
* @param bundleName bundle name of uninstalling app.
* @param uid uid of bundle.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int UninstallApp(const std::string &bundleName, int32_t uid) override;
/**
* Updates the configuration by modifying the configuration.
*
* @param config Indicates the new configuration
* @return Returns ERR_OK on success, others on failure.
*/
virtual int UpdateConfiguration(const AppExecFwk::Configuration &config) override;
virtual sptr<IWantSender> GetWantSender(
const WantSenderInfo &wantSenderInfo, const sptr<IRemoteObject> &callerToken) override;
virtual int SendWantSender(const sptr<IWantSender> &target, const SenderInfo &senderInfo) override;
virtual void CancelWantSender(const sptr<IWantSender> &sender) override;
virtual int GetPendingWantUid(const sptr<IWantSender> &target) override;
virtual int GetPendingWantUserId(const sptr<IWantSender> &target) override;
virtual std::string GetPendingWantBundleName(const sptr<IWantSender> &target) override;
virtual int GetPendingWantCode(const sptr<IWantSender> &target) override;
virtual int GetPendingWantType(const sptr<IWantSender> &target) override;
virtual void RegisterCancelListener(const sptr<IWantSender> &sender, const sptr<IWantReceiver> &receiver) override;
virtual void UnregisterCancelListener(
const sptr<IWantSender> &sender, const sptr<IWantReceiver> &receiver) override;
virtual int GetPendingRequestWant(const sptr<IWantSender> &target, std::shared_ptr<Want> &want) override;
virtual int GetWantSenderInfo(const sptr<IWantSender> &target, std::shared_ptr<WantSenderInfo> &info) override;
/**
* Get system memory information.
* @param SystemMemoryAttr, memory information.
*/
virtual void GetSystemMemoryAttr(AppExecFwk::SystemMemoryAttr &memoryInfo) override;
virtual int GetAppMemorySize() override;
virtual bool IsRamConstrainedDevice() override;
virtual int ContinueMission(const std::string &srcDeviceId, const std::string &dstDeviceId,
int32_t missionId, const sptr<IRemoteObject> &callBack, AAFwk::WantParams &wantParams) override;
virtual int ContinueAbility(const std::string &deviceId, int32_t missionId, uint32_t versionCode) override;
virtual int StartContinuation(const Want &want, const sptr<IRemoteObject> &abilityToken, int32_t status) override;
virtual void NotifyCompleteContinuation(const std::string &deviceId, int32_t sessionId, bool isSuccess) override;
virtual int NotifyContinuationResult(int32_t missionId, int32_t result) override;
virtual int StartSyncRemoteMissions(const std::string& devId, bool fixConflict, int64_t tag) override;
virtual int StopSyncRemoteMissions(const std::string& devId) override;
virtual int LockMissionForCleanup(int32_t missionId) override;
virtual int UnlockMissionForCleanup(int32_t missionId) override;
virtual int RegisterMissionListener(const sptr<IMissionListener> &listener) override;
virtual int UnRegisterMissionListener(const sptr<IMissionListener> &listener) override;
virtual int GetMissionInfos(const std::string& deviceId, int32_t numMax,
std::vector<MissionInfo> &missionInfos) override;
virtual int GetMissionInfo(const std::string& deviceId, int32_t missionId,
MissionInfo &missionInfos) override;
virtual int CleanMission(int32_t missionId) override;
virtual int CleanAllMissions() override;
virtual int MoveMissionToFront(int32_t missionId) override;
virtual int MoveMissionToFront(int32_t missionId, const StartOptions &startOptions) override;
/**
* Start Ability, connect session with common ability.
*
* @param want, Special want for service type's ability.
* @param connect, Callback used to notify caller the result of connecting or disconnecting.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int StartAbilityByCall(
const Want &want, const sptr<IAbilityConnection> &connect, const sptr<IRemoteObject> &callerToken) override;
/**
* Release Ability, disconnect session with common ability.
*
* @param connect, Callback used to notify caller the result of connecting or disconnecting.
* @param element, the element of target service.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int ReleaseAbility(
const sptr<IAbilityConnection> &connect, const AppExecFwk::ElementName &element) override;
virtual int StartUser(int userId) override;
virtual int StopUser(int userId, const sptr<IStopUserCallback> &callback) override;
#ifdef SUPPORT_GRAPHICS
virtual int SetMissionLabel(const sptr<IRemoteObject> &abilityToken, const std::string &label) override;
virtual int SetMissionIcon(const sptr<IRemoteObject> &token,
const std::shared_ptr<OHOS::Media::PixelMap> &icon) override;
virtual int RegisterWindowManagerServiceHandler(const sptr<IWindowManagerServiceHandler>& handler) override;
virtual void CompleteFirstFrameDrawing(const sptr<IRemoteObject> &abilityToken) override;
#endif
virtual int GetAbilityRunningInfos(std::vector<AbilityRunningInfo> &info) override;
virtual int GetExtensionRunningInfos(int upperLimit, std::vector<ExtensionRunningInfo> &info) override;
virtual int GetProcessRunningInfos(std::vector<AppExecFwk::RunningProcessInfo> &info) override;
virtual int RegisterMissionListener(const std::string &deviceId,
const sptr<IRemoteMissionListener> &listener) override;
virtual int UnRegisterMissionListener(const std::string &deviceId,
const sptr<IRemoteMissionListener> &listener) override;
/**
* Set ability controller.
*
* @param abilityController, The ability controller.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int SetAbilityController(const sptr<AppExecFwk::IAbilityController> &abilityController,
bool imAStabilityTest) override;
/**
* Is user a stability test.
*
* @return Returns true if user is a stability test.
*/
virtual bool IsRunningInStabilityTest() override;
virtual int RegisterSnapshotHandler(const sptr<ISnapshotHandler>& handler) override;
virtual int GetMissionSnapshot(const std::string& deviceId, int32_t missionId, MissionSnapshot& snapshot) override;
virtual int StartUserTest(const Want &want, const sptr<IRemoteObject> &observer) override;
virtual int FinishUserTest(
const std::string &msg, const int64_t &resultCode, const std::string &bundleName) override;
/**
* GetTopAbility, get the token of top ability.
*
* @param token, the token of top ability.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int GetTopAbility(sptr<IRemoteObject> &token) override;
/**
* The delegator calls this interface to move the ability to the foreground.
*
* @param token, ability's token.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int DelegatorDoAbilityForeground(const sptr<IRemoteObject> &token) override;
/**
* The delegator calls this interface to move the ability to the background.
*
* @param token, ability's token.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int DelegatorDoAbilityBackground(const sptr<IRemoteObject> &token) override;
/**
* Calls this interface to move the ability to the foreground.
*
* @param token, ability's token.
* @param flag, use for lock or unlock flag and so on.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int DoAbilityForeground(const sptr<IRemoteObject> &token, uint32_t flag) override;
/**
* Calls this interface to move the ability to the background.
*
* @param token, ability's token.
* @param flag, use for lock or unlock flag and so on.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int DoAbilityBackground(const sptr<IRemoteObject> &token, uint32_t flag) override;
/**
* Send not response process ID to ability manager service.
*
* @param pid The not response process ID.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int SendANRProcessID(int pid) override;
/**
* Get mission id by ability token.
*
* @param token The token of ability.
* @return Returns -1 if do not find mission, otherwise return mission id.
*/
virtual int32_t GetMissionIdByToken(const sptr<IRemoteObject> &token) override;
#ifdef ABILITY_COMMAND_FOR_TEST
/**
* Block ability manager service.
*
* @return Returns ERR_OK on success, others on failure.
*/
virtual int BlockAmsService() override;
/**
* Block ability.
*
* @param abilityRecordId The Ability Record Id.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int BlockAbility(int32_t abilityRecordId) override;
/**
* Block app service.
*
* @return Returns ERR_OK on success, others on failure.
*/
virtual int BlockAppService() override;
#endif
/**
* Call free install from remote.
*
* @param want, the want of the ability to start.
* @param userId, Designation User ID.
* @param requestCode, Ability request code.
* @param callback, Callback from remote.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int FreeInstallAbilityFromRemote(const Want &want, const sptr<IRemoteObject> &callback,
int32_t userId, int requestCode = DEFAULT_INVAL_VALUE) override;
/**
* Called when client complete dump.
*
* @param infos The dump info.
* @return Returns ERR_OK on success, others on failure.
*/
virtual int DumpAbilityInfoDone(std::vector<std::string> &infos, const sptr<IRemoteObject> &callerToken) override;
private:
template <typename T>
int GetParcelableInfos(MessageParcel &reply, std::vector<T> &parcelableInfos);
bool WriteInterfaceToken(MessageParcel &data);
// flag = true : terminate; flag = false : close
int TerminateAbility(const sptr<IRemoteObject> &token, int resultCode, const Want *resultWant, bool flag);
private:
static inline BrokerDelegator<AbilityManagerProxy> delegator_;
};
} // namespace AAFwk
} // namespace OHOS
#endif