High level Bluetooth Low Energy API and radio abstraction layer

Fork of BLE_API by Bluetooth Low Energy

Revision:
1074:1fedc77d9add
Parent:
1063:187f9929cb60
Child:
1075:0d0dafb54bc9
diff -r edd717e9f799 -r 1fedc77d9add ble/GattServer.h
--- a/ble/GattServer.h	Mon Jan 11 08:51:41 2016 +0000
+++ b/ble/GattServer.h	Mon Jan 11 08:51:42 2016 +0000
@@ -396,6 +396,32 @@
         dataSentCallChain.call(count);
     }
 
+public:
+    /**
+     * Clear all GattServer 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
+     * state and not the data held in GattServer members. This shall be achieved
+     * by a call to GattServer::reset() from the sub-class' reset()
+     * implementation.
+     *
+     * @return BLE_ERROR_NONE on success.
+     */
+    virtual ble_error_t reset(void) {
+        serviceCount = 0;
+        characteristicCount = 0;
+
+        dataSentCallChain.clear();
+        dataWrittenCallChain.clear();
+        dataReadCallChain.clear();
+        updatesEnabledCallback = NULL;
+        updatesDisabledCallback = NULL;
+        confirmationReceivedCallback = NULL;
+
+        return BLE_ERROR_NONE;
+    }
+
 protected:
     uint8_t serviceCount;
     uint8_t characteristicCount;