199552fe9Sopenharmony_ci/*
299552fe9Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
399552fe9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
499552fe9Sopenharmony_ci * you may not use this file except in compliance with the License.
599552fe9Sopenharmony_ci * You may obtain a copy of the License at
699552fe9Sopenharmony_ci *
799552fe9Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
899552fe9Sopenharmony_ci *
999552fe9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1099552fe9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1199552fe9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1299552fe9Sopenharmony_ci * See the License for the specific language governing permissions and
1399552fe9Sopenharmony_ci * limitations under the License.
1499552fe9Sopenharmony_ci */
1599552fe9Sopenharmony_ci
1699552fe9Sopenharmony_ci#ifndef FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_FRAMEWORKS_INCLUDE_STANDBY_SERVICE_STUB_H
1799552fe9Sopenharmony_ci#define FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_FRAMEWORKS_INCLUDE_STANDBY_SERVICE_STUB_H
1899552fe9Sopenharmony_ci
1999552fe9Sopenharmony_ci#include <map>
2099552fe9Sopenharmony_ci
2199552fe9Sopenharmony_ci#include <iremote_stub.h>
2299552fe9Sopenharmony_ci#include <nocopyable.h>
2399552fe9Sopenharmony_ci
2499552fe9Sopenharmony_ci#include "istandby_service.h"
2599552fe9Sopenharmony_ci
2699552fe9Sopenharmony_cinamespace OHOS {
2799552fe9Sopenharmony_cinamespace DevStandbyMgr {
2899552fe9Sopenharmony_ciclass StandbyServiceStub : public IRemoteStub<IStandbyService> {
2999552fe9Sopenharmony_cipublic:
3099552fe9Sopenharmony_ci    StandbyServiceStub(bool serialInvokeFlag = false) : IRemoteStub(serialInvokeFlag) {};
3199552fe9Sopenharmony_ci    ~StandbyServiceStub() override = default;
3299552fe9Sopenharmony_ci    DISALLOW_COPY_AND_MOVE(StandbyServiceStub);
3399552fe9Sopenharmony_ci
3499552fe9Sopenharmony_ci    /**
3599552fe9Sopenharmony_ci     * @brief Request service code and service data.
3699552fe9Sopenharmony_ci     *
3799552fe9Sopenharmony_ci     * @param code Service request code.
3899552fe9Sopenharmony_ci     * @param data MessageParcel object.
3999552fe9Sopenharmony_ci     * @param reply Local service response.
4099552fe9Sopenharmony_ci     * @param option Point out async or sync.
4199552fe9Sopenharmony_ci     * @return ERR_OK if success, else fail.
4299552fe9Sopenharmony_ci     */
4399552fe9Sopenharmony_ci    int32_t OnRemoteRequest(uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option) override;
4499552fe9Sopenharmony_ci
4599552fe9Sopenharmony_ciprivate:
4699552fe9Sopenharmony_ci    static const std::map<uint32_t,
4799552fe9Sopenharmony_ci        std::function<ErrCode(StandbyServiceStub*, MessageParcel&, MessageParcel&)>> interfaces_;
4899552fe9Sopenharmony_ci    ErrCode HandleSubscribeStandbyCallback(MessageParcel& data, MessageParcel& reply);
4999552fe9Sopenharmony_ci    ErrCode HandleUnsubscribeStandbyCallback(MessageParcel& data, MessageParcel& reply);
5099552fe9Sopenharmony_ci    ErrCode HandleApplyAllowResource(MessageParcel& data, MessageParcel& reply);
5199552fe9Sopenharmony_ci    ErrCode HandleUnapplyAllowResource(MessageParcel& data, MessageParcel& reply);
5299552fe9Sopenharmony_ci    ErrCode HandleGetAllowList(MessageParcel& data, MessageParcel& reply);
5399552fe9Sopenharmony_ci    ErrCode HandleIsDeviceInStandby(MessageParcel& data, MessageParcel& reply);
5499552fe9Sopenharmony_ci    ErrCode HandleReportWorkSchedulerStatus(MessageParcel& data, MessageParcel& reply);
5599552fe9Sopenharmony_ci    ErrCode HandleGetRestrictList(MessageParcel& data, MessageParcel& reply);
5699552fe9Sopenharmony_ci    ErrCode HandleIsStrategyEnabled(MessageParcel& data, MessageParcel& reply);
5799552fe9Sopenharmony_ci    ErrCode HandleReportDeviceStateChanged(MessageParcel& data, MessageParcel& reply);
5899552fe9Sopenharmony_ci    ErrCode HandleCommonEvent(MessageParcel& data, MessageParcel& reply);
5999552fe9Sopenharmony_ci    ErrCode HandleSetNatInterval(MessageParcel& data, MessageParcel& reply);
6099552fe9Sopenharmony_ci    ErrCode HandleReportPowerOverused(MessageParcel& data, MessageParcel& reply);
6199552fe9Sopenharmony_ci};
6299552fe9Sopenharmony_ci}  // namespace DevStandbyMgr
6399552fe9Sopenharmony_ci}  // namespace OHOS
6499552fe9Sopenharmony_ci#endif  // FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_FRAMEWORKS_INCLUDE_STANDBY_SERVICE_STUB_H