1 /*
2  * Copyright (C) 2021 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_BLUETOOTH_STANDARD_HOST_STUB_H
17 #define OHOS_BLUETOOTH_STANDARD_HOST_STUB_H
18 
19 #include <map>
20 
21 #include "i_bluetooth_host.h"
22 #include "iremote_stub.h"
23 
24 namespace OHOS {
25 namespace Bluetooth {
26 class BluetoothHostStub : public IRemoteStub<IBluetoothHost> {
27 public:
28     BluetoothHostStub();
29     virtual ~BluetoothHostStub();
30 
31     virtual int OnRemoteRequest(
32         uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
33 
34 private:
35     ErrCode RegisterObserverInner(MessageParcel &data, MessageParcel &reply);
36     ErrCode DeregisterObserverInner(MessageParcel &data, MessageParcel &reply);
37     ErrCode EnableBtInner(MessageParcel &data, MessageParcel &reply);
38     int32_t DisableBtInner(MessageParcel &data, MessageParcel &reply);
39     ErrCode SatelliteControlInner(MessageParcel &data, MessageParcel &reply);
40     ErrCode GetProfileInner(MessageParcel &data, MessageParcel &reply);
41     ErrCode GetBleRemoteInner(MessageParcel &data, MessageParcel &reply);
42     int32_t BluetoothFactoryResetInner(MessageParcel &data, MessageParcel &reply);
43     ErrCode GetBtStateInner(MessageParcel &data, MessageParcel &reply);
44     int32_t GetLocalAddressInner(MessageParcel &data, MessageParcel &reply);
45     int32_t DisableBleInner(MessageParcel &data, MessageParcel &reply);
46     int32_t EnableBleInner(MessageParcel &data, MessageParcel &reply);
47     ErrCode GetProfileListInner(MessageParcel &data, MessageParcel &reply);
48     ErrCode GetMaxNumConnectedAudioDevicesInner(MessageParcel &data, MessageParcel &reply);
49     int32_t GetBtConnectionStateInner(MessageParcel &data, MessageParcel &reply);
50     int32_t GetBtProfileConnStateInner(MessageParcel &data, MessageParcel &reply);
51     ErrCode GetLocalDeviceClassInner(MessageParcel &data, MessageParcel &reply);
52     ErrCode SetLocalDeviceClassInner(MessageParcel &data, MessageParcel &reply);
53     int32_t GetLocalNameInner(MessageParcel &data, MessageParcel &reply);
54     int32_t SetLocalNameInner(MessageParcel &data, MessageParcel &reply);
55     int32_t GetBtScanModeInner(MessageParcel &data, MessageParcel &reply);
56     int32_t SetBtScanModeInner(MessageParcel &data, MessageParcel &reply);
57     ErrCode GetBondableModeInner(MessageParcel &data, MessageParcel &reply);
58     ErrCode SetBondableModeInner(MessageParcel &data, MessageParcel &reply);
59     int32_t StartBtDiscoveryInner(MessageParcel &data, MessageParcel &reply);
60     int32_t CancelBtDiscoveryInner(MessageParcel &data, MessageParcel &reply);
61     ErrCode IsBtDiscoveringInner(MessageParcel &data, MessageParcel &reply);
62     ErrCode GetBtDiscoveryEndMillisInner(MessageParcel &data, MessageParcel &reply);
63     int32_t GetPairedDevicesInner(MessageParcel &data, MessageParcel &reply);
64     int32_t RemovePairInner(MessageParcel &data, MessageParcel &reply);
65     ErrCode RemoveAllPairsInner(MessageParcel &data, MessageParcel &reply);
66     ErrCode RegisterRemoteDeviceObserverInner(MessageParcel &data, MessageParcel &reply);
67     ErrCode DeregisterRemoteDeviceObserverInner(MessageParcel &data, MessageParcel &reply);
68     ErrCode GetBleMaxAdvertisingDataLengthInner(MessageParcel &data, MessageParcel &reply);
69     ErrCode GetDeviceTypeInner(MessageParcel &data, MessageParcel &reply);
70     ErrCode GetPhonebookPermissionInner(MessageParcel &data, MessageParcel &reply);
71     ErrCode SetPhonebookPermissionInner(MessageParcel &data, MessageParcel &reply);
72     ErrCode GetMessagePermissionInner(MessageParcel &data, MessageParcel &reply);
73     ErrCode SetMessagePermissionInner(MessageParcel &data, MessageParcel &reply);
74     ErrCode GetPowerModeInner(MessageParcel &data, MessageParcel &reply);
75     int32_t GetDeviceNameInner(MessageParcel &data, MessageParcel &reply);
76     ErrCode GetDeviceAliasInner(MessageParcel &data, MessageParcel &reply);
77     ErrCode SetDeviceAliasInner(MessageParcel &data, MessageParcel &reply);
78     int32_t GetRemoteDeviceBatteryInfoInner(MessageParcel &data, MessageParcel &reply);
79     ErrCode GetPairStateInner(MessageParcel &data, MessageParcel &reply);
80     int32_t StartPairInner(MessageParcel &data, MessageParcel &reply);
81     ErrCode CancelPairingInner(MessageParcel &data, MessageParcel &reply);
82     ErrCode IsBondedFromLocalInner(MessageParcel &data, MessageParcel &reply);
83     ErrCode IsAclConnectedInner(MessageParcel &data, MessageParcel &reply);
84     ErrCode IsAclEncryptedInner(MessageParcel &data, MessageParcel &reply);
85     int32_t GetDeviceClassInner(MessageParcel &data, MessageParcel &reply);
86     ErrCode SetDevicePinInner(MessageParcel &data, MessageParcel &reply);
87     int32_t SetDevicePairingConfirmationInner(MessageParcel &data, MessageParcel &reply);
88     ErrCode SetDevicePasskeyInner(MessageParcel &data, MessageParcel &reply);
89     ErrCode PairRequestReplyInner(MessageParcel &data, MessageParcel &reply);
90     ErrCode ReadRemoteRssiValueInner(MessageParcel &data, MessageParcel &reply);
91     ErrCode GetLocalSupportedUuidsInner(MessageParcel &data, MessageParcel &reply);
92     ErrCode GetDeviceUuidsInner(MessageParcel &data, MessageParcel &reply);
93     ErrCode GetLocalProfileUuidsInner(MessageParcel &data, MessageParcel &reply);
94     int32_t SetFastScanInner(MessageParcel &data, MessageParcel &reply);
95     ErrCode RegisterBleAdapterObserverInner(MessageParcel &data, MessageParcel &reply);
96     ErrCode DeregisterBleAdapterObserverInner(MessageParcel &data, MessageParcel &reply);
97     ErrCode RegisterBlePeripheralCallbackInner(MessageParcel &data, MessageParcel &reply);
98     ErrCode DeregisterBlePeripheralCallbackInner(MessageParcel &data, MessageParcel &reply);
99     ErrCode GetRandomAddressInner(MessageParcel &data, MessageParcel &reply);
100     ErrCode SyncRandomAddressInner(MessageParcel &data, MessageParcel &reply);
101     ErrCode StartCrediblePairInner(MessageParcel &data, MessageParcel &reply);
102     int32_t ConnectAllowedProfilesInner(MessageParcel &data, MessageParcel &reply);
103     int32_t DisconnectAllowedProfilesInner(MessageParcel &data, MessageParcel &reply);
104     int32_t SetDeviceCustomTypeInner(MessageParcel &data, MessageParcel &reply);
105     int32_t UpdateVirtualDeviceInner(MessageParcel &data, MessageParcel &reply);
106     int32_t IsSupportVirtualAutoConnectInner(MessageParcel &data, MessageParcel &reply);
107     int32_t SetVirtualAutoConnectTypeInner(MessageParcel &data, MessageParcel &reply);
108     int32_t SetFastScanLevelInner(MessageParcel &data, MessageParcel &reply);
109     int32_t RegisterBtResourceManagerObserverInner(MessageParcel &data, MessageParcel &reply);
110     int32_t DeregisterBtResourceManagerObserverInner(MessageParcel &data, MessageParcel &reply);
111     int32_t EnableBluetoothToRestrictModeInner(MessageParcel &data, MessageParcel &reply);
112 
113     static const std::map<uint32_t, std::function<ErrCode(BluetoothHostStub *, MessageParcel &, MessageParcel &)>>
114         memberFuncMap_;
115 
116     DISALLOW_COPY_AND_MOVE(BluetoothHostStub);
117 };
118 }  // namespace Bluetooth
119 }  // namespace OHOS
120 #endif  // OHOS_BLUETOOTH_STANDARD_HOST_STUB_H