simplify the declaration of DiscoveredCharacteristic::Properties_t

This commit is contained in:
Rohit Grover 2015-06-03 08:47:07 +01:00
parent b4ab8eaff7
commit d6f9d841c9
1 changed files with 21 additions and 30 deletions

View File

@ -20,42 +20,33 @@
#include "UUID.h"
#include "GattAttribute.h"
/**@brief Structure for holding information about the service and the characteristics found during
* the discovery process.
/**
* 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;
uint8_t _broadcast :1; /**< Broadcasting of the value permitted. */
uint8_t _read :1; /**< Reading the value permitted. */
uint8_t _writeWoResp :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 _authSignedWrite :1; /**< Writing the value with Signed Write Command permitted. */
Properties_t() : broadcast(0), read(0), write_wo_resp(0), write(0), notify(0), indicate(0), auth_signed_wr(0) {
/* empty */
}
public:
bool broadcast(void) const {return _broadcast; }
bool read(void) const {return _read; }
bool writeWoResp(void) const {return _writeWoResp; }
bool write(void) const {return _write; }
bool notify(void) const {return _notify; }
bool indicate(void) const {return _indicate; }
bool authSignedWrite(void) const {return _authSignedWrite;}
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. */
private:
operator uint8_t() const; /* disallow implicit conversion into an integer */
operator unsigned() const; /* disallow implicit conversion into an integer */
};
struct ReadResponse_t {