jgh

Dependents:   Migration

Fork of BLE_API by Bluetooth Low Energy

Revision:
470:150c2363f776
Parent:
469:c95e603d60dd
Child:
474:2a8a453ecd7e
diff -r c95e603d60dd -r 150c2363f776 public/ServiceDiscovery.h
--- a/public/ServiceDiscovery.h	Fri Jun 19 15:51:59 2015 +0100
+++ b/public/ServiceDiscovery.h	Fri Jun 19 15:51:59 2015 +0100
@@ -20,164 +20,11 @@
 #include "UUID.h"
 #include "Gap.h"
 #include "GattAttribute.h"
+#include "DiscoveredService.h"
+#include "DiscoveredCharacteristic.h"
 
 class ServiceDiscovery {
 public:
-    /**@brief Type for holding information about the service and the characteristics found during
-     *        the discovery process.
-     */
-    class DiscoveredService {
-    public:
-        void setup(UUID uuidIn, GattAttribute::Handle_t startHandleIn, GattAttribute::Handle_t endHandleIn) {
-            uuid        = uuidIn;
-            startHandle = startHandleIn;
-            endHandle   = endHandleIn;
-        }
-
-        void setup(GattAttribute::Handle_t startHandleIn, GattAttribute::Handle_t endHandleIn) {
-            startHandle = startHandleIn;
-            endHandle   = endHandleIn;
-        }
-
-        void setupLongUUID(UUID::LongUUIDBytes_t longUUID) {
-            uuid.setupLong(longUUID);
-        }
-
-    public:
-        const UUID &getUUID(void) const {
-            return uuid;
-        }
-
-        const GattAttribute::Handle_t& getStartHandle(void) const {
-            return startHandle;
-        }
-        const GattAttribute::Handle_t& getEndHandle(void) const {
-            return endHandle;
-        }
-
-    public:
-        DiscoveredService() : uuid(UUID::ShortUUIDBytes_t(0)),
-                              startHandle(GattAttribute::INVALID_HANDLE),
-                              endHandle(GattAttribute::INVALID_HANDLE) {
-            /* empty */
-        }
-
-    private:
-        DiscoveredService(const DiscoveredService &);
-
-    private:
-        UUID                    uuid;        /**< UUID of the service.  */
-        GattAttribute::Handle_t startHandle; /**< Service Handle Range. */
-        GattAttribute::Handle_t endHandle;   /**< Service Handle Range. */
-    };
-
-    /**@brief Structure for holding information about the service and the characteristics found during
-     *        the discovery process.
-     */
-    class DiscoveredCharacteristic {
-    public:
-        struct Properties_t {
-            static const uint8_t BROADCAST_PROPERTY_MASK         = 0x01;
-            static const uint8_t READ_PROPERTY_MASK              = 0x02;
-            static const uint8_t WRITE_WO_RESPONSE_PROPERTY_MASK = 0x04;
-            static const uint8_t WRITE_PROPERTY_MASK             = 0x08;
-            static const uint8_t NOTIFY_PROPERTY_MASK            = 0x10;
-            static const uint8_t INDICATE_PROPERTY_MASK          = 0x20;
-            static const uint8_t AUTH_SIGNED_PROPERTY_MASK       = 0x40;
-
-            Properties_t() : broadcast(0), read(0), write_wo_resp(0), write(0), notify(0), indicate(0), auth_signed_wr(0) {
-                /* empty */
-            }
-
-            Properties_t(uint8_t props) :
-                broadcast(props & BROADCAST_PROPERTY_MASK),
-                read(props & READ_PROPERTY_MASK),
-                write_wo_resp(props & WRITE_WO_RESPONSE_PROPERTY_MASK),
-                write(props & WRITE_PROPERTY_MASK),
-                notify(props & NOTIFY_PROPERTY_MASK),
-                indicate(props & INDICATE_PROPERTY_MASK),
-                auth_signed_wr(props & AUTH_SIGNED_PROPERTY_MASK) {
-                /* empty*/
-            }
-
-            uint8_t broadcast      :1; /**< Broadcasting of the value permitted. */
-            uint8_t read           :1; /**< Reading the value permitted. */
-            uint8_t write_wo_resp  :1; /**< Writing the value with Write Command permitted. */
-            uint8_t write          :1; /**< Writing the value with Write Request permitted. */
-            uint8_t notify         :1; /**< Notications of the value permitted. */
-            uint8_t indicate       :1; /**< Indications of the value permitted. */
-            uint8_t auth_signed_wr :1; /**< Writing the value with Signed Write Command permitted. */
-        };
-
-        struct ReadResponse_t {
-            GattAttribute::Handle_t  handle; /**< Attribute Handle. */
-            uint16_t                 offset; /**< Offset of the attribute data. */
-            uint16_t                 len;    /**< Attribute data length. */
-            const uint8_t           *data;   /**< Attribute data, variable length. */
-        };
-        typedef void (*ReadCallback_t)(const ReadResponse_t *params);
-
-        static void setupOnDataRead(ReadCallback_t callback) {
-            onDataReadCallback = callback;
-        }
-
-    public:
-        void setup(Properties_t            propsIn,
-                   GattAttribute::Handle_t declHandleIn,
-                   GattAttribute::Handle_t valueHandleIn) {
-            props       = propsIn;
-            declHandle  = declHandleIn;
-            valueHandle = valueHandleIn;
-        }
-
-        void setup(UUID::ShortUUIDBytes_t  uuidIn,
-                   Properties_t            propsIn,
-                   GattAttribute::Handle_t declHandleIn,
-                   GattAttribute::Handle_t valueHandleIn) {
-            uuid        = uuidIn;
-            props       = propsIn;
-            declHandle  = declHandleIn;
-            valueHandle = valueHandleIn;
-        }
-
-        void setupLongUUID(UUID::LongUUIDBytes_t longUUID) {
-            uuid.setupLong(longUUID);
-        }
-
-    public:
-        UUID::ShortUUIDBytes_t getShortUUID(void) const {
-            return uuid.getShortUUID();
-        }
-
-        const Properties_t& getProperties(void) const {
-            return props;
-        }
-
-        const GattAttribute::Handle_t& getDeclHandle(void) const {
-            return declHandle;
-        }
-        const GattAttribute::Handle_t& getValueHandle(void) const {
-            return valueHandle;
-        }
-
-    public:
-        DiscoveredCharacteristic() : uuid(UUID::ShortUUIDBytes_t(0)),
-                                     props(),
-                                     declHandle(GattAttribute::INVALID_HANDLE),
-                                     valueHandle(GattAttribute::INVALID_HANDLE) {
-            /* empty */
-        }
-
-    private:
-        UUID                    uuid;
-        Properties_t            props;
-        GattAttribute::Handle_t declHandle;
-        GattAttribute::Handle_t valueHandle;
-
-        static ReadCallback_t   onDataReadCallback;
-    };
-
-public:
     typedef void (*ServiceCallback_t)(const DiscoveredService &);
     typedef void (*CharacteristicCallback_t)(const DiscoveredCharacteristic &);
     typedef void (*TerminationCallback_t)(Gap::Handle_t connectionHandle);