• 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 NameModule;
46 class PageModule;
47 }
48 namespace hci {
49 class Controller;
50 class HciLayer;
51 class AclManager;
52 class LeAdvertisingManager;
53 class LeScanningManager;
54 class VendorSpecificEventManager;
55 }
56 
57 namespace l2cap {
58 namespace classic {
59 class L2capClassicModule;
60 }  // namespace classic
61 namespace le {
62 class L2capLeModule;
63 }  // namespace le
64 }  // namespace l2cap
65 
66 namespace security {
67 class SecurityModule;
68 }
69 namespace storage {
70 class StorageModule;
71 }
72 
73 namespace shim {
74 class Dumpsys;
75 
76 /* This returns a handler that might be used in shim to receive callbacks from
77  * within the stack. */
78 os::Handler* GetGdShimHandler();
79 hci::LeAdvertisingManager* GetAdvertising();
80 bluetooth::hci::Controller* GetController();
81 neighbor::DiscoverabilityModule* GetDiscoverability();
82 neighbor::ConnectabilityModule* GetConnectability();
83 Dumpsys* GetDumpsys();
84 neighbor::InquiryModule* GetInquiry();
85 hci::HciLayer* GetHciLayer();
86 l2cap::classic::L2capClassicModule* GetL2capClassicModule();
87 l2cap::le::L2capLeModule* GetL2capLeModule();
88 neighbor::NameModule* GetName();
89 neighbor::PageModule* GetPage();
90 hci::LeScanningManager* GetScanning();
91 bluetooth::security::SecurityModule* GetSecurityModule();
92 storage::StorageModule* GetStorage();
93 hci::AclManager* GetAclManager();
94 hci::VendorSpecificEventManager* GetVendorSpecificEventManager();
95 activity_attribution::ActivityAttribution* GetActivityAttribution();
96 
97 }  // namespace shim
98 }  // namespace bluetooth
99