1 /*
2  * Copyright (c) 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 SCAN_SERVICE_PROXY_H
17 #define SCAN_SERVICE_PROXY_H
18 
19 #include "iscan_service.h"
20 #include "iremote_proxy.h"
21 #include "scanner_info.h"
22 #define TDD_ENABLE 1
23 
24 namespace OHOS::Scan {
25 class ScanServiceProxy : public IRemoteProxy<IScanService> {
26 public:
27     explicit ScanServiceProxy(const sptr<IRemoteObject> &object);
28     ~ScanServiceProxy() = default;
29     DISALLOW_COPY_AND_MOVE(ScanServiceProxy);
30 
31     int32_t InitScan(int32_t &scanVersion) override;
32     int32_t ExitScan() override;
33     int32_t GetScannerList() override;
34     int32_t StopDiscover() override;
35     int32_t OpenScanner(const std::string scannerId) override;
36     int32_t CloseScanner(const std::string scannerId) override;
37     int32_t GetScanOptionDesc(const std::string scannerId,
38         const int32_t optionIndex, ScanOptionDescriptor &desc) override;
39     int32_t OpScanOptionValue(const std::string scannerId, const int32_t optionIndex,
40     const ScanOptionOpType op, ScanOptionValue &value, int32_t &info) override;
41     int32_t GetScanParameters(const std::string scannerId, ScanParameters &para) override;
42     int32_t StartScan(const std::string scannerId, const bool &batchMode) override;
43     int32_t GetSingleFrameFD(const std::string scannerId, uint32_t &size, uint32_t fd) override;
44     int32_t CancelScan(const std::string scannerId) override;
45     int32_t SetScanIOMode(const std::string scannerId, const bool isNonBlocking) override;
46     int32_t GetScanSelectFd(const std::string scannerId, int32_t &fd) override;
47     int32_t GetScannerState(int32_t &scannerState) override;
48     int32_t GetScanProgress(const std::string scannerId, ScanProgress &prog) override;
49     int32_t AddScanner(const std::string& serialNumber, const std::string& discoverMode) override;
50     int32_t DeleteScanner(const std::string& serialNumber, const std::string& discoverMode) override;
51     int32_t GetAddedScanner(std::vector<ScanDeviceInfo>& allAddedScanner) override;
52     int32_t UpdateScannerName(const std::string& serialNumber,
53         const std::string& discoverMode, const std::string& deviceName) override;
54 
55     int32_t On(const std::string taskId, const std::string &type, const sptr<IScanCallback> &listener) override;
56     int32_t Off(const std::string taskId, const std::string &type) override;
57 
58 #ifndef TDD_ENABLE
59 private:
60 #endif
61     int32_t GetResult(int32_t retCode, MessageParcel &reply);
62     static inline BrokerDelegator<ScanServiceProxy> delegator_;
63 };
64 } // namespace OHOS::Scan
65 #endif // SCAN_SERVICE_PROXY_H
66