Updated

Fork of BLE_API by Bluetooth Low Energy

Committer:
rgrover1
Date:
Mon Nov 02 09:09:05 2015 +0000
Revision:
851:802f445cc195
Parent:
850:32ff6e392630
Child:
852:f0de1349300c
Synchronized with git rev 129683bd
Author: Vincent Coubard
Code and command cleanup:
- add a space after if keyword
- Use typedef types instead of direct declarations for
pFunctionPointerWithContext_t and pvoidfcontext_t
- Fix typos and enhance comment about how alignement and size
requirements of the member function pointer are computed.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 716:11b41f651697 1 /* mbed Microcontroller Library
rgrover1 716:11b41f651697 2 * Copyright (c) 2006-2013 ARM Limited
rgrover1 716:11b41f651697 3 *
rgrover1 716:11b41f651697 4 * Licensed under the Apache License, Version 2.0 (the "License");
rgrover1 716:11b41f651697 5 * you may not use this file except in compliance with the License.
rgrover1 716:11b41f651697 6 * You may obtain a copy of the License at
rgrover1 716:11b41f651697 7 *
rgrover1 716:11b41f651697 8 * http://www.apache.org/licenses/LICENSE-2.0
rgrover1 716:11b41f651697 9 *
rgrover1 716:11b41f651697 10 * Unless required by applicable law or agreed to in writing, software
rgrover1 716:11b41f651697 11 * distributed under the License is distributed on an "AS IS" BASIS,
rgrover1 716:11b41f651697 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rgrover1 716:11b41f651697 13 * See the License for the specific language governing permissions and
rgrover1 716:11b41f651697 14 * limitations under the License.
rgrover1 716:11b41f651697 15 */
rgrover1 716:11b41f651697 16
rgrover1 716:11b41f651697 17 #ifndef __BLE_DEVICE_INSTANCE_BASE__
rgrover1 716:11b41f651697 18 #define __BLE_DEVICE_INSTANCE_BASE__
rgrover1 716:11b41f651697 19
rgrover1 716:11b41f651697 20 #include "Gap.h"
rgrover1 851:802f445cc195 21 #include "ble/SecurityManager.h"
rgrover1 716:11b41f651697 22
rgrover1 716:11b41f651697 23 /* forward declarations */
rgrover1 716:11b41f651697 24 class GattServer;
rgrover1 716:11b41f651697 25 class GattClient;
rgrover1 716:11b41f651697 26
rgrover1 716:11b41f651697 27 /**
rgrover1 716:11b41f651697 28 * The interface for the transport object to be created by the target library's
rgrover1 716:11b41f651697 29 * createBLEInstance().
rgrover1 716:11b41f651697 30 */
rgrover1 716:11b41f651697 31 class BLEInstanceBase
rgrover1 716:11b41f651697 32 {
rgrover1 716:11b41f651697 33 public:
rgrover1 716:11b41f651697 34 virtual ble_error_t init(void) = 0;
rgrover1 716:11b41f651697 35 virtual ble_error_t shutdown(void) = 0;
rgrover1 716:11b41f651697 36 virtual const char *getVersion(void) = 0;
rgrover1 716:11b41f651697 37 virtual Gap& getGap() = 0;
rgrover1 716:11b41f651697 38 virtual const Gap& getGap() const = 0;
rgrover1 716:11b41f651697 39 virtual GattServer& getGattServer() = 0;
rgrover1 716:11b41f651697 40 virtual const GattServer& getGattServer() const = 0;
rgrover1 716:11b41f651697 41 virtual GattClient& getGattClient() = 0;
rgrover1 716:11b41f651697 42 virtual SecurityManager& getSecurityManager() = 0;
rgrover1 716:11b41f651697 43 virtual const SecurityManager& getSecurityManager() const = 0;
rgrover1 716:11b41f651697 44 virtual void waitForEvent(void) = 0;
rgrover1 716:11b41f651697 45 };
rgrover1 716:11b41f651697 46
rgrover1 716:11b41f651697 47 /**
rgrover1 716:11b41f651697 48 * BLE uses composition to hide an interface object encapsulating the
rgrover1 716:11b41f651697 49 * backend transport.
rgrover1 716:11b41f651697 50 *
rgrover1 716:11b41f651697 51 * The following API is used to create the singleton interface object. An
rgrover1 716:11b41f651697 52 * implementation for this function must be provided by the device-specific
rgrover1 716:11b41f651697 53 * library, otherwise there will be a linker error.
rgrover1 716:11b41f651697 54 */
rgrover1 716:11b41f651697 55 extern BLEInstanceBase *createBLEInstance(void);
rgrover1 716:11b41f651697 56
rgrover1 716:11b41f651697 57 #endif // ifndef __BLE_DEVICE_INSTANCE_BASE__