nordic

Fork of nRF51822 by Nordic Semiconductor

Revision:
562:613dbbdeed27
Parent:
550:3f782c64d014
Child:
564:9c4b96f7be8d
--- a/source/nRF5xServiceDiscovery.h	Mon Jan 11 10:19:14 2016 +0000
+++ b/source/nRF5xServiceDiscovery.h	Mon Jan 11 10:19:15 2016 +0000
@@ -99,6 +99,34 @@
         onTerminationCallback = callback;
     }
 
+    /**
+     * @brief  Clear nRF5xServiceDiscovery's state.
+     *
+     * @return
+     *           BLE_ERROR_NONE if successful.
+     */
+    virtual ble_error_t cleanup(void) {
+        /* Clear all state that is from the parent, including private members */
+        if (ServiceDiscovery::cleanup() != BLE_ERROR_NONE) {
+            return BLE_ERROR_INVALID_STATE;
+        }
+
+        /* Clear derived class members */
+        serviceIndex = 0;
+        numServices = 0;
+        characteristicIndex = 0;
+        numCharacteristics = 0;
+
+        state = INACTIVE;
+
+        serviceUUIDDiscoveryQueue.reset();
+        charUUIDDiscoveryQueue.reset();
+
+        onTerminationCallback = NULL;
+
+        return BLE_ERROR_NONE;
+    }
+
 private:
     ble_error_t launchCharacteristicDiscovery(Gap::Handle_t connectionHandle, Gap::Handle_t startHandle, Gap::Handle_t endHandle);