• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
19 /**
20  * Entrypoints called into Gabeldorsche from legacy stack
21  *
22  * Any marshalling/unmarshalling, data transformation of APIs to
23  * or from the Gabeldorsche stack may be placed here.
24  *
25  * The idea is to effectively provide a binary interface to prevent cross
26  * contamination of data structures and the like between the stacks.
27  *
28  * **ABSOLUTELY** No reference to Gabeldorsche stack other than well defined
29  * interfaces may be made here
30  */
31 
32 #include "osi/include/future.h"
33 
34 namespace bluetooth {
35 namespace os {
36 class Handler;
37 }
38 namespace activity_attribution {
39 class ActivityAttribution;
40 }
41 namespace neighbor {
42 class ConnectabilityModule;
43 class DiscoverabilityModule;
44 class InquiryModule;
45 class PageModule;
46 }
47 namespace hal {
48 class SnoopLogger;
49 }
50 
51 namespace hci {
52 class Controller;
53 class HciLayer;
54 class AclManager;
55 class RemoteNameRequestModule;
56 class DistanceMeasurementManager;
57 class LeAdvertisingManager;
58 class LeScanningManager;
59 class VendorSpecificEventManager;
60 class MsftExtensionManager;
61 }
62 
63 namespace l2cap {
64 namespace classic {
65 class L2capClassicModule;
66 }  // namespace classic
67 namespace le {
68 class L2capLeModule;
69 }  // namespace le
70 }  // namespace l2cap
71 
72 namespace metrics {
73 class CounterMetrics;
74 }
75 
76 namespace security {
77 class SecurityModule;
78 }
79 namespace storage {
80 class StorageModule;
81 }
82 
83 namespace shim {
84 class Dumpsys;
85 
86 /* This returns a handler that might be used in shim to receive callbacks from
87  * within the stack. */
88 os::Handler* GetGdShimHandler();
89 hci::LeAdvertisingManager* GetAdvertising();
90 bluetooth::hci::Controller* GetController();
91 neighbor::DiscoverabilityModule* GetDiscoverability();
92 neighbor::ConnectabilityModule* GetConnectability();
93 Dumpsys* GetDumpsys();
94 neighbor::InquiryModule* GetInquiry();
95 hci::HciLayer* GetHciLayer();
96 l2cap::classic::L2capClassicModule* GetL2capClassicModule();
97 l2cap::le::L2capLeModule* GetL2capLeModule();
98 neighbor::PageModule* GetPage();
99 hci::RemoteNameRequestModule* GetRemoteNameRequest();
100 hci::DistanceMeasurementManager* GetDistanceMeasurementManager();
101 hci::LeScanningManager* GetScanning();
102 bluetooth::security::SecurityModule* GetSecurityModule();
103 hal::SnoopLogger* GetSnoopLogger();
104 storage::StorageModule* GetStorage();
105 hci::AclManager* GetAclManager();
106 hci::VendorSpecificEventManager* GetVendorSpecificEventManager();
107 activity_attribution::ActivityAttribution* GetActivityAttribution();
108 metrics::CounterMetrics* GetCounterMetrics();
109 hci::MsftExtensionManager* GetMsftExtensionManager();
110 
111 }  // namespace shim
112 }  // namespace bluetooth
113