Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of BLE_API by
Diff: ble/BLEInstanceBase.h
- Revision:
- 1183:1589830dbdb7
- Parent:
- 1179:4ab722f8dca0
--- a/ble/BLEInstanceBase.h Wed Apr 06 19:15:34 2016 +0100 +++ b/ble/BLEInstanceBase.h Wed Apr 06 19:15:36 2016 +0100 @@ -28,22 +28,112 @@ /** * The interface for the transport object to be created by the target library's * createBLEInstance(). + * + * @note This class is part of the interface of BLE API with the implementation; + * therefore, it is meant to be used only by porters rather than normal + * BLE API users. */ class BLEInstanceBase { public: + /** + * Initialize the underlying BLE stack. This should be called before + * anything else in the BLE API. + * + * @param[in] instanceID + * The ID of the instance to initialize. + * @param[in] initCallback + * A callback for when initialization completes for a BLE + * instance. This is an optional parameter set to NULL when not + * supplied. + * + * @return BLE_ERROR_NONE if the initialization procedure was started + * successfully. + */ virtual ble_error_t init(BLE::InstanceID_t instanceID, FunctionPointerWithContext<BLE::InitializationCompleteCallbackContext *> initCallback) = 0; + + /** + * Check whether the underlying stack has already been initialized, + * possible with a call to init(). + * + * @return true if the initialization has completed for the underlying BLE + * stack. + */ virtual bool hasInitialized(void) const = 0; + + /** + * Shutdown the underlying BLE stack. This includes purging the stack of + * GATT and GAP state and clearing all state from other BLE components + * such as the SecurityManager. init() must be called afterwards to + * re-instantiate services and GAP state. + * + * @return BLE_ERROR_NONE if the underlying stack and all other services of + * the BLE API were shutdown correctly. + */ virtual ble_error_t shutdown(void) = 0; + + /** + * Fetches a string representation of the underlying BLE stack's version. + * + * @return A pointer to the string representation of the underlying + * BLE stack's version. + */ virtual const char * getVersion(void) = 0; + + /** + * Accessor to Gap. This function is used by BLE::gap(). + * + * @return A reference to a Gap object associated to this BLE instance. + */ virtual Gap& getGap() = 0; + + /** + * A const alternative to getGap(). + * + * @return A const reference to a Gap object associated to this BLE instance. + */ virtual const Gap& getGap() const = 0; + + /** + * Accessor to GattServer. This function is used by BLE::gattServer(). + * + * @return A reference to a GattServer object associated to this BLE instance. + */ virtual GattServer& getGattServer() = 0; + + /** + * A const alternative to getGattServer(). + * + * @return A const reference to a GattServer object associated to this BLE instance. + */ virtual const GattServer& getGattServer() const = 0; + + /** + * Accessors to GattClient. This function is used by BLE::gattClient(). + * + * @return A reference to a GattClient object associated to this BLE instance. + */ virtual GattClient& getGattClient() = 0; + + /** + * Accessors to SecurityManager. This function is used by BLE::securityManager(). + * + * @return A reference to a SecurityManager object associated to this BLE instance. + */ virtual SecurityManager& getSecurityManager() = 0; + + /** + * A const alternative to getSecurityManager(). + * + * @return A const reference to a SecurityManager object associated to this BLE instance. + */ virtual const SecurityManager& getSecurityManager() const = 0; + + /** + * Yield control to the BLE stack or to other tasks waiting for events. + * refer to BLE::waitForEvent(). + */ virtual void waitForEvent(void) = 0; };