- if (!cb)
- {
- OC_LOG(ERROR, TAG, "discoverResourceByType NULL Callback");
- throw InvalidParameterException { "discoverResourceByType NULL Callback'" };
- }
- else
- {
- std::string resourceURI = relativeURI + "?rt=" + resourceType;
- OIC::Service::discoverResource(address, resourceURI,
- std::bind(findCallback, std::placeholders::_1, std::move(cb)));
- }
+ return discoverResourceByTypes(address, OC_RSRVD_WELL_KNOWN_URI, resourceTypes,
+ std::move(cb));
+ }
+
+ RCSDiscoveryManager::DiscoveryTask::Ptr RCSDiscoveryManager::discoverResourceByType(
+ const RCSAddress& address, const std::string& relativeUri,
+ const std::string& resourceType, ResourceDiscoveredCallback cb)
+ {
+ return discoverResourceByTypes(address, relativeUri,
+ std::vector< std::string >{ resourceType }, std::move(cb));
+ }
+
+ RCSDiscoveryManager::DiscoveryTask::Ptr RCSDiscoveryManager::discoverResourceByTypes(
+ const RCSAddress& address, const std::string& relativeUri,
+ const std::vector< std::string >& resourceTypes, ResourceDiscoveredCallback cb)
+ {
+ return RCSDiscoveryManagerImpl::getInstance()->startDiscovery(address,
+ relativeUri.empty() ? OC_RSRVD_WELL_KNOWN_URI : relativeUri,
+ resourceTypes.empty() ? std::vector< std::string >{
+ RCSDiscoveryManagerImpl::ALL_RESOURCE_TYPE } : resourceTypes,
+ std::move(cb));