Added BLEAddress operator overload methods (#4839)

Allows BLEAddress to be used as key in std::map etc
This commit is contained in:
Bascy 2021-02-22 18:37:07 +01:00 committed by GitHub
parent 560c0f45f5
commit 44aaf13225
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 2 deletions

View File

@ -59,14 +59,37 @@ BLEAddress::BLEAddress(std::string stringAddress) {
* @return True if the addresses are equal. * @return True if the addresses are equal.
*/ */
bool BLEAddress::equals(BLEAddress otherAddress) { bool BLEAddress::equals(BLEAddress otherAddress) {
return memcmp(otherAddress.getNative(), m_address, 6) == 0; return memcmp(otherAddress.getNative(), m_address, ESP_BD_ADDR_LEN) == 0;
} // equals } // equals
bool BLEAddress::operator==(const BLEAddress& otherAddress) const {
return memcmp(otherAddress.m_address, m_address, ESP_BD_ADDR_LEN) == 0;
}
bool BLEAddress::operator!=(const BLEAddress& otherAddress) const {
return !(*this == otherAddress);
}
bool BLEAddress::operator<(const BLEAddress& otherAddress) const {
return memcmp(otherAddress.m_address, m_address, ESP_BD_ADDR_LEN) < 0;
}
bool BLEAddress::operator<=(const BLEAddress& otherAddress) const {
return !(*this > otherAddress);
}
bool BLEAddress::operator>=(const BLEAddress& otherAddress) const {
return !(*this < otherAddress);
}
bool BLEAddress::operator>(const BLEAddress& otherAddress) const {
return memcmp(otherAddress.m_address, m_address, ESP_BD_ADDR_LEN) > 0;
}
/** /**
* @brief Return the native representation of the address. * @brief Return the native representation of the address.
* @return The native representation of the address. * @return The native representation of the address.
*/ */
esp_bd_addr_t *BLEAddress::getNative() { esp_bd_addr_t *BLEAddress::getNative() {
return &m_address; return &m_address;
} // getNative } // getNative

View File

@ -23,6 +23,12 @@ public:
BLEAddress(esp_bd_addr_t address); BLEAddress(esp_bd_addr_t address);
BLEAddress(std::string stringAddress); BLEAddress(std::string stringAddress);
bool equals(BLEAddress otherAddress); bool equals(BLEAddress otherAddress);
bool operator==(const BLEAddress& otherAddress) const;
bool operator!=(const BLEAddress& otherAddress) const;
bool operator<(const BLEAddress& otherAddress) const;
bool operator<=(const BLEAddress& otherAddress) const;
bool operator>(const BLEAddress& otherAddress) const;
bool operator>=(const BLEAddress& otherAddress) const;
esp_bd_addr_t* getNative(); esp_bd_addr_t* getNative();
std::string toString(); std::string toString();