Newer
Older
mbed-os / UNITTESTS / fakes / ble / source / generic / GattClientImpl.h
@Rajkumar Kanagaraj Rajkumar Kanagaraj on 21 Jul 2021 5 KB CMake: fakes ble: Remove trailing whitespace
/* mbed Microcontroller Library
 * Copyright (c) 2020 ARM Limited
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef BLE_GATTCLIENTSTUB_H
#define BLE_GATTCLIENTSTUB_H

#include "events/EventQueue.h"

namespace ble {
namespace impl {

class GattClient {
public:
    using EventHandler = ble::GattClient::EventHandler;
    using WriteOp_t = ble::GattClient::WriteOp_t;
    using HVXCallback_t  = ble::GattClient::HVXCallback_t ;
    using GattClientShutdownCallback_t  = ble::GattClient::GattClientShutdownCallback_t ;
    using GattClientShutdownCallbackChain_t  = ble::GattClient::GattClientShutdownCallbackChain_t ;
    using HVXCallbackChain_t  = ble::GattClient::HVXCallbackChain_t ;
    using ReadCallbackChain_t  = ble::GattClient::ReadCallbackChain_t ;
    using WriteCallbackChain_t  = ble::GattClient::WriteCallbackChain_t ;

    GattClient() {};
    GattClient(const GattClient&) = delete;
    GattClient& operator=(const GattClient&) = delete;
    virtual ~GattClient() {};

    virtual void setEventHandler(EventHandler *handler) { };

    virtual ble_error_t launchServiceDiscovery(
            ble::connection_handle_t connectionHandle,
            ServiceDiscovery::ServiceCallback_t sc = nullptr,
            ServiceDiscovery::CharacteristicCallback_t cc = nullptr,
            const UUID &matchingServiceUUID = UUID::ShortUUIDBytes_t(BLE_UUID_UNKNOWN),
            const UUID &matchingCharacteristicUUIDIn = UUID::ShortUUIDBytes_t(BLE_UUID_UNKNOWN)
    ) { return BLE_ERROR_NONE; };

    virtual ble_error_t discoverServices(
            ble::connection_handle_t connectionHandle,
            ServiceDiscovery::ServiceCallback_t callback,
            const UUID &matchingServiceUUID = UUID::ShortUUIDBytes_t(BLE_UUID_UNKNOWN)
    ) { return BLE_ERROR_NONE; };

    virtual ble_error_t discoverServices(
            ble::connection_handle_t connectionHandle,
            ServiceDiscovery::ServiceCallback_t callback,
            GattAttribute::Handle_t startHandle,
            GattAttribute::Handle_t endHandle
    ) { return BLE_ERROR_NONE; };

    virtual bool isServiceDiscoveryActive(void) const { return true; };

    virtual void terminateServiceDiscovery(void) { };

    virtual ble_error_t read(
            ble::connection_handle_t connHandle,
            GattAttribute::Handle_t attributeHandle,
            uint16_t offset
    ) const { return BLE_ERROR_NONE; };

    virtual ble_error_t write(
            GattClient::WriteOp_t cmd,
            ble::connection_handle_t connHandle,
            GattAttribute::Handle_t attributeHandle,
            size_t length,
            const uint8_t *value
    ) const { return BLE_ERROR_NONE; };

    /* Event callback handlers. */

    virtual void onDataRead(ReadCallback_t callback) { };

    virtual ReadCallbackChain_t &onDataRead() { static ReadCallbackChain_t chain; return chain; };

    virtual void onDataWritten(WriteCallback_t callback) { };

    virtual WriteCallbackChain_t &onDataWritten() { static WriteCallbackChain_t chain; return chain; };

    virtual void onServiceDiscoveryTermination(
            ServiceDiscovery::TerminationCallback_t callback
    ) { };

    virtual ble_error_t discoverCharacteristicDescriptors(
            const DiscoveredCharacteristic &characteristic,
            const CharacteristicDescriptorDiscovery::DiscoveryCallback_t &discoveryCallback,
            const CharacteristicDescriptorDiscovery::TerminationCallback_t &terminationCallback
    ) { return BLE_ERROR_NONE; };

    virtual bool isCharacteristicDescriptorDiscoveryActive(
            const DiscoveredCharacteristic &characteristic
    ) const { return true; };

    virtual void terminateCharacteristicDescriptorDiscovery(
            const DiscoveredCharacteristic &characteristic
    ) { };

    virtual ble_error_t negotiateAttMtu(ble::connection_handle_t connection) { return BLE_ERROR_NONE; };

    virtual void onHVX(HVXCallback_t callback) { };

    virtual void onShutdown(const GattClientShutdownCallback_t &callback) { };

    virtual GattClientShutdownCallbackChain_t &onShutdown() { static GattClientShutdownCallbackChain_t chain; return chain; };

    virtual HVXCallbackChain_t &onHVX() { static HVXCallbackChain_t chain; return chain; };

    virtual ble_error_t reset(void) { return BLE_ERROR_NONE; };

    virtual void processReadResponse(const GattReadCallbackParams *params) { };

    virtual void processWriteResponse(const GattWriteCallbackParams *params) { };

    virtual void processHVXEvent(const GattHVXCallbackParams *params) { };
};

}
}

#endif //BLE_GATTCLIENTSTUB_H