100600bfbSopenharmony_ci/*
200600bfbSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
300600bfbSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
400600bfbSopenharmony_ci * you may not use this file except in compliance with the License.
500600bfbSopenharmony_ci * You may obtain a copy of the License at
600600bfbSopenharmony_ci *
700600bfbSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
800600bfbSopenharmony_ci *
900600bfbSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1000600bfbSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1100600bfbSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1200600bfbSopenharmony_ci * See the License for the specific language governing permissions and
1300600bfbSopenharmony_ci * limitations under the License.
1400600bfbSopenharmony_ci */
1500600bfbSopenharmony_ci#ifndef HIDUMPER_ZIDL_DUMP_BROKER_PROXY_H
1600600bfbSopenharmony_ci#define HIDUMPER_ZIDL_DUMP_BROKER_PROXY_H
1700600bfbSopenharmony_ci#include <iremote_proxy.h>
1800600bfbSopenharmony_ci#include <nocopyable.h>
1900600bfbSopenharmony_ci#include "idump_broker.h"
2000600bfbSopenharmony_cinamespace OHOS {
2100600bfbSopenharmony_cinamespace HiviewDFX {
2200600bfbSopenharmony_ciclass DumpBrokerProxy : public IRemoteProxy<IDumpBroker> {
2300600bfbSopenharmony_cipublic:
2400600bfbSopenharmony_ci    explicit DumpBrokerProxy(const sptr<IRemoteObject>& impl)
2500600bfbSopenharmony_ci        : IRemoteProxy<IDumpBroker>(impl) {}
2600600bfbSopenharmony_ci    ~DumpBrokerProxy() = default;
2700600bfbSopenharmony_ci    DISALLOW_COPY_AND_MOVE(DumpBrokerProxy);
2800600bfbSopenharmony_cipublic:
2900600bfbSopenharmony_ci    // Used for dump request
3000600bfbSopenharmony_ci    int32_t Request(std::vector<std::u16string> &args, int outfd) override;
3100600bfbSopenharmony_ci    // Used for scan pids list over limit
3200600bfbSopenharmony_ci    int32_t ScanPidOverLimit(std::string requestType, int32_t limitSize, std::vector<int32_t> &pidList) override;
3300600bfbSopenharmony_ci    // Used for count fd nums
3400600bfbSopenharmony_ci    int32_t CountFdNums(int32_t pid, uint32_t &fdNums, std::string &detailFdInfo, std::string &topLeakedType) override;
3500600bfbSopenharmony_ciprivate:
3600600bfbSopenharmony_ci    static inline BrokerDelegator<DumpBrokerProxy> delegator_;
3700600bfbSopenharmony_ci};
3800600bfbSopenharmony_ci} // namespace HiviewDFX
3900600bfbSopenharmony_ci} // namespace OHOS
4000600bfbSopenharmony_ci#endif // HIDUMPER_ZIDL_DUMP_BROKER_PROXY_H
41