int DirectoryEntryManager::findEntryByNameAndNumber(const QString &name, const QString &number) const { for (int i = 0; i < m_directory_entries.size(); i++) { DirectoryEntry *entry = m_directory_entries[i]; if (! entry) { continue; } if (entry->name().isEmpty()) { continue; } if (entry->name() == name && entry->number() == number) { return i; } } return -1; }
void DirectoryListingClient::receive(void* object, Message* msg) { ServiceStub::receive(object, msg); if (msg->getMeta().find("operation") != msg->getMeta().end()) { ScopeLock lock(_mutex); string op = msg->getMeta("operation"); DirectoryEntry* dirEntry = new DirectoryEntry(*(DirectoryEntry*)object); string key = dirEntry->path() + ":" + dirEntry->name(); if (op.compare("added") == 0) { if (_knownEntries.find(key) == _knownEntries.end()) _knownEntries[key] = shared_ptr<DirectoryEntry>(dirEntry); if (_listener != NULL) _listener->added(_knownEntries[key]); } else if (op.compare("modified") == 0) { if (_knownEntries.find(key) != _knownEntries.end()) { if (_listener != NULL) _listener->changed(_knownEntries[key]); } else { UM_LOG_ERR("Unknown directory entry reported as modified"); } } else if (op.compare("removed") == 0) { if (_knownEntries.find(key) != _knownEntries.end()) { if (_listener != NULL) _listener->removed(_knownEntries[key]); } else { UM_LOG_ERR("Unknown directory entry reported as removed"); } } } }