+
+ assert(s_nextId != INVALID_ID && "Invalid ID!");
+
+ return s_nextId++;
+ }
+
+ void RCSDiscoveryManagerImpl::cancel(ID id)
+ {
+ std::lock_guard < std::mutex > lock(m_mutex);
+ m_discoveryMap.erase(id);
+ }
+
+ DiscoveryRequestInfo::DiscoveryRequestInfo(const RCSAddress& address,
+ const std::string& relativeUri, const std::vector< std::string >& resourceTypes,
+ DiscoverCallback cb) :
+ m_address{ address },
+ m_relativeUri{ relativeUri },
+ m_resourceTypes{ resourceTypes },
+ m_knownResourceIds{ },
+ m_discoverCb{ std::move(cb) }
+ {
+ if (m_resourceTypes.empty())