summaryrefslogtreecommitdiff
path: root/src/BLEServiceMap.cpp
diff options
context:
space:
mode:
authorNeil Kolban <kolban1@kolban.com>2018-05-27 10:56:49 -0500
committerNeil Kolban <kolban1@kolban.com>2018-05-27 10:56:49 -0500
commite885eea75617598e3b1dff9e972d2e59f297ae28 (patch)
tree7244f26854294af16fef14605e321016f213d98a /src/BLEServiceMap.cpp
parentFixes for BLE_notify sample (diff)
downloadthermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.tar.gz
thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.tar.bz2
thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.zip
0.4.13
Diffstat (limited to 'src/BLEServiceMap.cpp')
-rw-r--r--src/BLEServiceMap.cpp36
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 */