MicroBit as BLE gamepad
Fork of nRF51822 by
Diff: source/nRF5xn.h
- Revision:
- 566:e425ad9e5d6e
- Parent:
- 565:cf03471a4ec4
- Child:
- 570:f162898cb6c4
--- a/source/nRF5xn.h Mon Jan 11 10:19:18 2016 +0000 +++ b/source/nRF5xn.h Mon Jan 11 10:19:18 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