Line data Source code
1 : /*
2 : *
3 : * Copyright (c) 2020 Project CHIP Authors
4 : * Copyright (c) 2014-2017 Nest Labs, Inc.
5 : *
6 : * Licensed under the Apache License, Version 2.0 (the "License");
7 : * you may not use this file except in compliance with the License.
8 : * You may obtain a copy of the License at
9 : *
10 : * http://www.apache.org/licenses/LICENSE-2.0
11 : *
12 : * Unless required by applicable law or agreed to in writing, software
13 : * distributed under the License is distributed on an "AS IS" BASIS,
14 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 : * See the License for the specific language governing permissions and
16 : * limitations under the License.
17 : */
18 :
19 : /**
20 : * @file
21 : * This file defines the interface for upcalls from BleLayer
22 : * to a client application.
23 : */
24 :
25 : #pragma once
26 :
27 : #ifndef _CHIP_BLE_BLE_H
28 : #error "Please include <ble/Ble.h> instead!"
29 : #endif
30 :
31 : #include <lib/support/DLLUtil.h>
32 :
33 : #include "BleConfig.h"
34 :
35 : namespace chip {
36 : namespace Ble {
37 :
38 : // Platform-agnostic BLE interface
39 : class DLL_EXPORT BleApplicationDelegate
40 : {
41 : public:
42 172 : virtual ~BleApplicationDelegate() {}
43 :
44 : // CHIP calls this function once it closes the last BLEEndPoint associated with a BLE given connection object.
45 : // A call to this function means CHIP no longer cares about the state of the given BLE connection.
46 : // The application can use this callback to e.g. close the underlying BLE connection if it is no longer needed,
47 : // decrement the connection's refcount if it has one, or perform any other sort of cleanup as desired.
48 : virtual void NotifyChipConnectionClosed(BLE_CONNECTION_OBJECT connObj) = 0;
49 :
50 : // Called to determine whether the BLE connection should be closed when in Non-concurrent mode if sending
51 : // ConnectNetworkResponse. The BTP will be in kState_Complete when all fragments have been sent.
52 0 : virtual void CheckNonConcurrentBleClosing() {}
53 : };
54 :
55 : } /* namespace Ble */
56 : } /* namespace chip */
|