High level Bluetooth Low Energy API and radio abstraction layer

Dependencies:   nRF51822

Dependents:   LinkNode_LIS3DH

Fork of BLE_API by Bluetooth Low Energy

Revision:
1089:8e810a8e083e
Parent:
1088:709ebced28ab
Child:
1090:148d8b9b56a5
--- a/ble/Gap.h	Mon Jan 11 08:51:49 2016 +0000
+++ b/ble/Gap.h	Mon Jan 11 08:51:49 2016 +0000
@@ -38,6 +38,7 @@
 public:
     /**
      * Address-type for BLEProtocol addresses.
+     *
      * @note: deprecated. Use BLEProtocol::AddressType_t instead.
      */
     typedef BLEProtocol::AddressType_t AddressType_t;
@@ -48,6 +49,21 @@
      */
     typedef BLEProtocol::AddressType_t addr_type_t;
 
+    /**
+     * Address-type for BLEProtocol addresses.
+     * @note: deprecated. Use BLEProtocol::AddressType_t instead.
+     *
+     * DEPRECATION ALERT: The following constants have been left in their
+     * deprecated state to transparenly support existing applications which may
+     * have used Gap::ADDR_TYPE_*.
+     */
+    enum {
+        ADDR_TYPE_PUBLIC                        = BLEProtocol::AddressType::PUBLIC,
+        ADDR_TYPE_RANDOM_STATIC                 = BLEProtocol::AddressType::RANDOM_STATIC,
+        ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE     = BLEProtocol::AddressType::RANDOM_PRIVATE_RESOLVABLE,
+        ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE = BLEProtocol::AddressType::RANDOM_PRIVATE_NON_RESOLVABLE
+    };
+
     static const unsigned ADDR_LEN = BLEProtocol::ADDR_LEN; /**< Length (in octets) of the BLE MAC address. */
     typedef BLEProtocol::Address_t Address_t; /**< 48-bit address, LSB format. @Note: Deprecated. Use BLEProtocol::Address_t instead. */
     typedef BLEProtocol::Address_t address_t; /**< 48-bit address, LSB format. @Note: Deprecated. Use BLEProtocol::Address_t instead. */
@@ -161,9 +177,6 @@
 
     typedef FunctionPointerWithContext<bool> RadioNotificationEventCallback_t;
 
-    typedef FunctionPointerWithContext<const Gap *> GapShutdownCallback_t;
-    typedef CallChainOfFunctionPointersWithContext<const Gap *> GapShutdownCallbackChain_t;
-
     /*
      * The following functions are meant to be overridden in the platform-specific sub-class.
      */
@@ -996,43 +1009,9 @@
         radioNotificationCallback.attach(tptr, mptr);
     }
 
-    /**
-     * Setup a callback to be invoked to notify the user application that the
-     * Gap instance is about to shutdown (possibly as a result of a call
-     * to BLE::shutdown()).
-     *
-     * @Note: It is possible to chain together multiple onShutdown callbacks
-     * (potentially from different modules of an application) to be notified
-     * before the Gap instance is shutdown.
-     *
-     * @Note: It is also possible to set up a callback into a member function of
-     * some object.
-     *
-     * @Note It is possible to unregister a callback using onShutdown().detach(callback)
-     */
-    void onShutdown(const GapShutdownCallback_t& callback) {
-        shutdownCallChain.add(callback);
-    }
-    template <typename T>
-    void onShutdown(T *objPtr, void (T::*memberPtr)(void)) {
-        shutdownCallChain.add(objPtr, memberPtr);
-    }
-
-    /**
-     * @brief provide access to the callchain of shutdown event callbacks
-     * It is possible to register callbacks using onShutdown().add(callback);
-     * It is possible to unregister callbacks using onShutdown().detach(callback)
-     * @return The shutdown event callbacks chain
-     */
-    GapShutdownCallbackChain_t& onShutdown() {
-        return shutdownCallChain;
-    }
-
 public:
     /**
-     * Notify all registered onShutdown callbacks that the Gap instance is
-     * about to be shutdown and clear all Gap state of the
-     * associated object.
+     * Clear all Gap state of the associated object.
      *
      * This function is meant to be overridden in the platform-specific
      * sub-class. Nevertheless, the sub-class is only expected to reset its
@@ -1045,9 +1024,6 @@
      * scan parameters to default values.
      */
     virtual ble_error_t reset(void) {
-        /* Notify that the instance is about to shutdown */
-        shutdownCallChain.call(this);
-
         /* Clear Gap state */
         state.advertising = 0;
         state.connected   = 0;
@@ -1145,9 +1121,6 @@
     DisconnectionEventCallbackChain_t disconnectionCallChain;
 
 private:
-    GapShutdownCallbackChain_t shutdownCallChain;
-
-private:
     /* Disallow copy and assignment. */
     Gap(const Gap &);
     Gap& operator=(const Gap &);