3 * Copyright (c) 2020 Project CHIP Authors
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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 * This file defines the interface for application to delegate Ble connection to
26 #include <ble/BleConfig.h>
27 #include <ble/BleError.h>
29 #include <support/DLLUtil.h>
40 // Platform-agnostic BLE interface
41 class DLL_EXPORT BleConnectionDelegate
44 virtual ~BleConnectionDelegate() {}
46 // Public function pointers:
47 typedef void (*OnConnectionCompleteFunct)(void * appState, BLE_CONNECTION_OBJECT connObj);
48 OnConnectionCompleteFunct OnConnectionComplete;
50 typedef void (*OnConnectionErrorFunct)(void * appState, BLE_ERROR err);
51 OnConnectionErrorFunct OnConnectionError;
53 // Call this function to delegate the connection steps required to get a BLE_CONNECTION_OBJECT
54 // out of a peripheral discriminator.
55 virtual void NewConnection(BleLayer * bleLayer, void * appState, uint16_t connDiscriminator) = 0;
57 // Call this function to stop the connection
58 virtual BLE_ERROR CancelConnection() = 0;
62 } /* namespace chip */