diff options
author | Neil Kolban <kolban1@kolban.com> | 2018-05-27 10:56:49 -0500 |
---|---|---|
committer | Neil Kolban <kolban1@kolban.com> | 2018-05-27 10:56:49 -0500 |
commit | e885eea75617598e3b1dff9e972d2e59f297ae28 (patch) | |
tree | 7244f26854294af16fef14605e321016f213d98a /src/BLEServiceMap.cpp | |
parent | Fixes for BLE_notify sample (diff) | |
download | thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.tar.gz thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.tar.bz2 thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.zip |
0.4.13
Diffstat (limited to 'src/BLEServiceMap.cpp')
-rw-r--r-- | src/BLEServiceMap.cpp | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/src/BLEServiceMap.cpp b/src/BLEServiceMap.cpp index 8fdbd5a..96811ad 100644 --- a/src/BLEServiceMap.cpp +++ b/src/BLEServiceMap.cpp @@ -27,8 +27,8 @@ BLEService* BLEServiceMap::getByUUID(const char* uuid) { */ BLEService* BLEServiceMap::getByUUID(BLEUUID uuid) { for (auto &myPair : m_uuidMap) { - if (myPair.second->getUUID().equals(uuid)) { - return myPair.second; + if (myPair.first->getUUID().equals(uuid)) { + return myPair.first; } } //return m_uuidMap.at(uuid.toString()); @@ -54,7 +54,7 @@ BLEService* BLEServiceMap::getByHandle(uint16_t handle) { */ void BLEServiceMap::setByUUID(BLEUUID uuid, BLEService *service) { - m_uuidMap.insert(std::pair<std::string, BLEService *>(uuid.toString(), service)); + m_uuidMap.insert(std::pair<BLEService *, std::string>(service, uuid.toString())); } // setByUUID @@ -89,7 +89,35 @@ void BLEServiceMap::handleGATTServerEvent( esp_ble_gatts_cb_param_t *param) { // Invoke the handler for every Service we have. for (auto &myPair : m_uuidMap) { - myPair.second->handleGATTServerEvent(event, gatts_if, param); + myPair.first->handleGATTServerEvent(event, gatts_if, param); } } + +/** + * @brief Get the first service in the map. + * @return The first service in the map. + */ +BLEService* BLEServiceMap::getFirst() { + m_iterator = m_uuidMap.begin(); + if (m_iterator == m_uuidMap.end()) { + return nullptr; + } + BLEService* pRet = m_iterator->first; + m_iterator++; + return pRet; +} // getFirst + +/** + * @brief Get the next service in the map. + * @return The next service in the map. + */ +BLEService* BLEServiceMap::getNext() { + if (m_iterator == m_uuidMap.end()) { + return nullptr; + } + BLEService* pRet = m_iterator->first; + m_iterator++; + return pRet; +} // getNext + #endif /* CONFIG_BT_ENABLED */ |