library for BLE_GAP_backpack

Dependencies:   nrf51-sdk

Fork of nRF51822 by Nordic Semiconductor

Revision:
571:bbf6410b6a89
Parent:
570:f162898cb6c4
Child:
575:7023a8204a1b
--- a/source/nRF5xn.h	Mon Jan 11 10:19:21 2016 +0000
+++ b/source/nRF5xn.h	Mon Jan 11 10:19:22 2016 +0000
@@ -41,153 +41,32 @@
     virtual ble_error_t shutdown(void);
     virtual const char *getVersion(void);
 
-    /**
-     * Accessors to GAP. This function checks whether gapInstance points to an
-     * object. If if does not, then the gapInstance is updated to
-     * &_getInstance before returning.
-     *
-     * @return  A reference to GattServer.
-     *
-     * @note  Unlike the GattClient, GattServer and SecurityManager, Gap is
-     *        always needed in a BLE application. Therefore it is allocated
-     *        statically.
-     */
     virtual Gap &getGap() {
-        if (gapInstance == NULL) {
-            gapInstance = &_gapInstance;
-        }
-        return *gapInstance;
+        return nRF5xGap::getInstance();
     };
-
-    /**
-     * Accessors to GATT Server. This function checks whether a GattServer
-     * object was previously instantiated. If such object does not exist, then
-     * it is created before returning.
-     *
-     * @return  A reference to GattServer.
-     */
+    virtual const Gap &getGap() const  {
+        return nRF5xGap::getInstance();
+    };
     virtual GattServer &getGattServer() {
-        if (gattServerInstance == NULL) {
-            gattServerInstance = new nRF5xGattServer();
-        }
-        return *gattServerInstance;
+        return nRF5xGattServer::getInstance();
     };
-
-    /**
-     * Accessors to GATT Client. This function checks whether a GattClient
-     * object was previously instantiated. If such object does not exist, then
-     * it is created before returning.
-     *
-     * @return  A reference to GattClient.
-     */
+    virtual const GattServer &getGattServer() const {
+        return nRF5xGattServer::getInstance();
+    };
     virtual GattClient &getGattClient() {
-        if (gattClientInstance == NULL) {
-            gattClientInstance = new nRF5xGattClient();
-        }
-        return *gattClientInstance;
-    }
-
-    /**
-     * Accessors to Security Manager. This function checks whether a SecurityManager
-     * object was previously instantiated. If such object does not exist, then
-     * it is created before returning.
-     *
-     * @return  A reference to GattServer.
-     */
-    virtual SecurityManager &getSecurityManager() {
-        if (securityManagerInstance == NULL) {
-            securityManagerInstance = new nRF5xSecurityManager();
-        }
-        return *securityManagerInstance;
+        return nRF5xGattClient::getInstance();
     }
-
-    /**
-     * Accessors to GAP. This function checks whether gapInstance points to an
-     * object. If if does not, then the gapInstance is updated to
-     * &_getInstance before returning.
-     *
-     * @return  A const reference to GattServer.
-     *
-     * @note  Unlike the GattClient, GattServer and SecurityManager, Gap is
-     *        always needed in a BLE application. Therefore it is allocated
-     *        statically.
-     *
-     * @note  The accessor is able to modify the object's state because the
-     *        internal pointer has been declared mutable.
-     */
-    virtual const Gap &getGap() const  {
-        if (gapInstance == NULL) {
-            gapInstance = &_gapInstance;
-        }
-        return *gapInstance;
-    };
-
-    /**
-     * Accessors to GATT Server. This function checks whether a GattServer
-     * object was previously instantiated. If such object does not exist, then
-     * it is created before returning.
-     *
-     * @return  A const reference to GattServer.
-     *
-     * @note  The accessor is able to modify the object's state because the
-     *        internal pointer has been declared mutable.
-     */
-    virtual const GattServer &getGattServer() const {
-        if (gattServerInstance == NULL) {
-            gattServerInstance = new nRF5xGattServer();
-        }
-        return *gattServerInstance;
-    };
-
-    /**
-     * Accessors to Security Manager. This function checks whether a SecurityManager
-     * object was previously instantiated. If such object does not exist, then
-     * it is created before returning.
-     *
-     * @return  A const reference to GattServer.
-     *
-     * @note  The accessor is able to modify the object's state because the
-     *        internal pointer has been declared mutable.
-     */
     virtual const SecurityManager &getSecurityManager() const {
-        if (securityManagerInstance == NULL) {
-            securityManagerInstance = new nRF5xSecurityManager();
-        }
-        return *securityManagerInstance;
+        return nRF5xSecurityManager::getInstance();
     }
-
+    virtual SecurityManager &getSecurityManager() {
+        return nRF5xSecurityManager::getInstance();
+    }
     virtual void waitForEvent(void);
 
-public:
-    static nRF5xn& Instance(BLE::InstanceID_t instanceId);
-
 private:
     bool              initialized;
     BLE::InstanceID_t instanceID;
-
-private:
-    static nRF5xGap _gapInstance; /**< Gap instance whose reference is returned from a call to
-                                   * getGap(). Unlike the GattClient, GattServer and
-                                   * SecurityManager, Gap is always needed in a BLE application.
-                                   * Therefore it is allocated statically. */
-
-private:
-    mutable nRF5xGap             *gapInstance;             /**< Pointer to the Gap object instance.
-                                                            *   If NULL, then Gap has not been initialized.
-                                                            *   The pointer has been declared as 'mutable' so that
-                                                            *   it can be assigned inside a 'const' function. */
-    mutable nRF5xGattServer      *gattServerInstance;      /**< Pointer to the GattServer object instance.
-                                                            *   If NULL, then GattServer has not been initialized.
-                                                            *   The pointer has been declared as 'mutable' so that
-                                                            *   it can be assigned inside a 'const' function. */
-    mutable nRF5xGattClient      *gattClientInstance;      /**< Pointer to the GattClient object instance.
-                                                            *   If NULL, then GattClient has not been initialized.
-                                                            *   The pointer has been declared as 'mutable' so that
-                                                            *   it can be assigned inside a 'const' function. */
-    mutable nRF5xSecurityManager *securityManagerInstance; /**< Pointer to the SecurityManager object instance.
-                                                            *   If NULL, then SecurityManager has not been initialized.
-                                                            *   The pointer has been declared as 'mutable' so that
-                                                            *   it can be assigned inside a 'const' function. */
 };
 
 #endif
\ No newline at end of file