Line data Source code
1 : /*
2 : *
3 : * Copyright (c) 2021 Project CHIP Authors
4 : *
5 : * Licensed under the Apache License, Version 2.0 (the "License");
6 : * you may not use this file except in compliance with the License.
7 : * You may obtain a copy of the License at
8 : *
9 : * http://www.apache.org/licenses/LICENSE-2.0
10 : *
11 : * Unless required by applicable law or agreed to in writing, software
12 : * distributed under the License is distributed on an "AS IS" BASIS,
13 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 : * See the License for the specific language governing permissions and
15 : * limitations under the License.
16 : */
17 :
18 : /**
19 : * @file
20 : * This file defines the interface for downcalls from BleLayer
21 : * to a BLE transport.
22 : */
23 :
24 : #pragma once
25 :
26 : #ifndef _CHIP_BLE_BLE_H
27 : #error "Please include <ble/Ble.h> instead!"
28 : #endif
29 :
30 : #include <system/SystemPacketBuffer.h>
31 :
32 : #include "BleConfig.h"
33 : #include "BleError.h"
34 : #include "BleUUID.h"
35 :
36 : namespace chip {
37 : namespace Ble {
38 :
39 : // BLEEndPoint holds a pointer to BleLayerDelegate for messages,
40 : // while BleLayerDelegate functions also accepts BLEEndPoint.
41 : class BLEEndPoint;
42 :
43 : class BleLayerDelegate
44 : {
45 : public:
46 1 : virtual ~BleLayerDelegate() = default;
47 :
48 : virtual void OnBleConnectionComplete(BLEEndPoint * endpoint) = 0;
49 : virtual void OnBleConnectionError(CHIP_ERROR err) = 0;
50 :
51 : virtual void OnEndPointConnectComplete(BLEEndPoint * endPoint, CHIP_ERROR err) = 0;
52 : virtual void OnEndPointMessageReceived(BLEEndPoint * endPoint, System::PacketBufferHandle && msg) = 0;
53 : virtual void OnEndPointConnectionClosed(BLEEndPoint * endPoint, CHIP_ERROR err) = 0;
54 :
55 : virtual CHIP_ERROR SetEndPoint(BLEEndPoint * endPoint) = 0;
56 : };
57 :
58 : } // namespace Ble
59 : } // namespace chip
|