BLE - devirtualize pal::AttClientToGattClientAdapter

pull/9727/head
Vincent Coubard 2019-02-25 18:52:21 +00:00
parent 333a31507b
commit 71b8d8a2f3
1 changed files with 21 additions and 20 deletions

View File

@ -29,7 +29,8 @@ namespace pal {
* This class let vendors define their abstraction layer in term of an AttClient
* and adapt any AttClient into a GattClient.
*/
class AttClientToGattClientAdapter : public GattClient {
template<class AttClient, class EventHandler>
class AttClientToGattClientAdapter : public GattClient<AttClientToGattClientAdapter<AttClient, EventHandler>, EventHandler > {
public:
static const uint16_t END_ATTRIBUTE_HANDLE = 0xFFFF;
@ -42,7 +43,7 @@ public:
* @param client The client to adapt.
*/
AttClientToGattClientAdapter(AttClient& client) :
GattClient(), _client(client) {
_client(client) {
_client.when_server_message_received(
mbed::callback(this, &AttClientToGattClientAdapter::on_server_event)
);
@ -56,14 +57,14 @@ public:
/**
* @see ble::pal::GattClient::exchange_mtu
*/
virtual ble_error_t exchange_mtu(connection_handle_t connection) {
ble_error_t exchange_mtu_(connection_handle_t connection) {
return _client.exchange_mtu_request(connection);
}
/**
* @see ble::pal::GattClient::get_mtu_size
*/
virtual ble_error_t get_mtu_size(
ble_error_t get_mtu_size_(
connection_handle_t connection_handle,
uint16_t& mtu_size
) {
@ -73,7 +74,7 @@ public:
/**
* @see ble::pal::GattClient::discover_primary_service
*/
virtual ble_error_t discover_primary_service(
ble_error_t discover_primary_service_(
connection_handle_t connection,
attribute_handle_t discovery_range_begining
) {
@ -87,7 +88,7 @@ public:
/**
* @see ble::pal::GattClient::discover_primary_service_by_service_uuid
*/
virtual ble_error_t discover_primary_service_by_service_uuid(
ble_error_t discover_primary_service_by_service_uuid_(
connection_handle_t connection_handle,
attribute_handle_t discovery_range_begining,
const UUID& uuid
@ -106,7 +107,7 @@ public:
/**
* @see ble::pal::GattClient::find_included_service
*/
virtual ble_error_t find_included_service(
ble_error_t find_included_service_(
connection_handle_t connection_handle,
attribute_handle_range_t service_range
) {
@ -120,7 +121,7 @@ public:
/**
* @see ble::pal::GattClient::discover_characteristics_of_a_service
*/
virtual ble_error_t discover_characteristics_of_a_service(
ble_error_t discover_characteristics_of_a_service_(
connection_handle_t connection_handle,
attribute_handle_range_t discovery_range
) {
@ -134,7 +135,7 @@ public:
/**
* @see ble::pal::GattClient::discover_characteristics_descriptors
*/
virtual ble_error_t discover_characteristics_descriptors(
ble_error_t discover_characteristics_descriptors_(
connection_handle_t connection_handle,
attribute_handle_range_t descriptors_discovery_range
) {
@ -147,7 +148,7 @@ public:
/**
* @see ble::pal::GattClient::read_attribute_value
*/
virtual ble_error_t read_attribute_value(
ble_error_t read_attribute_value_(
connection_handle_t connection_handle,
attribute_handle_t attribute_handle
) {
@ -160,7 +161,7 @@ public:
/**
* @see ble::pal::GattClient::read_using_characteristic_uuid
*/
virtual ble_error_t read_using_characteristic_uuid(
ble_error_t read_using_characteristic_uuid_(
connection_handle_t connection_handle,
attribute_handle_range_t read_range,
const UUID& uuid
@ -175,7 +176,7 @@ public:
/**
* @see ble::pal::GattClient::read_attribute_blob
*/
virtual ble_error_t read_attribute_blob(
ble_error_t read_attribute_blob_(
connection_handle_t connection_handle,
attribute_handle_t attribute_handle,
uint16_t offset
@ -190,7 +191,7 @@ public:
/**
* @see ble::pal::GattClient::read_multiple_characteristic_values
*/
virtual ble_error_t read_multiple_characteristic_values(
ble_error_t read_multiple_characteristic_values_(
connection_handle_t connection_handle,
const ArrayView<const attribute_handle_t>& characteristic_value_handles
) {
@ -203,7 +204,7 @@ public:
/**
* @see ble::pal::GattClient::write_without_response
*/
virtual ble_error_t write_without_response(
ble_error_t write_without_response_(
connection_handle_t connection_handle,
attribute_handle_t characteristic_value_handle,
const ArrayView<const uint8_t>& value
@ -218,7 +219,7 @@ public:
/**
* @see ble::pal::GattClient::signed_write_without_response
*/
virtual ble_error_t signed_write_without_response(
ble_error_t signed_write_without_response_(
connection_handle_t connection_handle,
attribute_handle_t characteristic_value_handle,
const ArrayView<const uint8_t>& value
@ -233,7 +234,7 @@ public:
/**
* @see ble::pal::GattClient::write_attribute
*/
virtual ble_error_t write_attribute(
ble_error_t write_attribute_(
connection_handle_t connection_handle,
attribute_handle_t attribute_handle,
const ArrayView<const uint8_t>& value
@ -248,7 +249,7 @@ public:
/**
* @see ble::pal::GattClient::queue_prepare_write
*/
virtual ble_error_t queue_prepare_write(
ble_error_t queue_prepare_write_(
connection_handle_t connection_handle,
attribute_handle_t characteristic_value_handle,
const ArrayView<const uint8_t>& value,
@ -265,7 +266,7 @@ public:
/**
* @see ble::pal::GattClient::execute_write_queue
*/
virtual ble_error_t execute_write_queue(
ble_error_t execute_write_queue_(
connection_handle_t connection_handle,
bool execute
) {
@ -275,14 +276,14 @@ public:
/**
* @see ble::pal::GattClient::initialize
*/
virtual ble_error_t initialize() {
ble_error_t initialize_() {
return _client.initialize();
}
/**
* @see ble::pal::GattClient::terminate
*/
virtual ble_error_t terminate() {
ble_error_t terminate_() {
return _client.initialize();
}