db/upnp/discovery: convert std::strings to const char *
Reduce bloat.
This commit is contained in:
parent
4b3a3d6faa
commit
8add78ed5e
@ -34,25 +34,27 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
// The service type string we are looking for.
|
// The service type string we are looking for.
|
||||||
static const std::string ContentDirectorySType("urn:schemas-upnp-org:service:ContentDirectory:1");
|
static const char *const ContentDirectorySType = "urn:schemas-upnp-org:service:ContentDirectory:1";
|
||||||
|
|
||||||
// We don't include a version in comparisons, as we are satisfied with
|
// We don't include a version in comparisons, as we are satisfied with
|
||||||
// version 1
|
// version 1
|
||||||
|
gcc_pure
|
||||||
static bool
|
static bool
|
||||||
isCDService(const std::string &st)
|
isCDService(const char *st)
|
||||||
{
|
{
|
||||||
const std::string::size_type sz(ContentDirectorySType.size()-2);
|
const size_t sz = strlen(ContentDirectorySType) - 2;
|
||||||
return !ContentDirectorySType.compare(0, sz, st, 0, sz);
|
return memcmp(ContentDirectorySType, st, sz) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The type of device we're asking for in search
|
// The type of device we're asking for in search
|
||||||
static const std::string MediaServerDType("urn:schemas-upnp-org:device:MediaServer:1") ;
|
static const char *const MediaServerDType = "urn:schemas-upnp-org:device:MediaServer:1";
|
||||||
|
|
||||||
|
gcc_pure
|
||||||
static bool
|
static bool
|
||||||
isMSDevice(const std::string &st)
|
isMSDevice(const char *st)
|
||||||
{
|
{
|
||||||
const std::string::size_type sz(MediaServerDType.size()-2);
|
const size_t sz = strlen(MediaServerDType) - 2;
|
||||||
return !MediaServerDType.compare(0, sz, st, 0, sz);
|
return memcmp(MediaServerDType, st, sz) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -252,7 +254,7 @@ UPnPDeviceDirectory::search()
|
|||||||
|
|
||||||
// We search both for device and service just in case.
|
// We search both for device and service just in case.
|
||||||
int code = UpnpSearchAsync(lib->getclh(), m_searchTimeout,
|
int code = UpnpSearchAsync(lib->getclh(), m_searchTimeout,
|
||||||
ContentDirectorySType.c_str(), lib);
|
ContentDirectorySType, lib);
|
||||||
if (code != UPNP_E_SUCCESS) {
|
if (code != UPNP_E_SUCCESS) {
|
||||||
error.Format(upnp_domain, code,
|
error.Format(upnp_domain, code,
|
||||||
"UpnpSearchAsync() failed: %s",
|
"UpnpSearchAsync() failed: %s",
|
||||||
@ -261,7 +263,7 @@ UPnPDeviceDirectory::search()
|
|||||||
}
|
}
|
||||||
|
|
||||||
code = UpnpSearchAsync(lib->getclh(), m_searchTimeout,
|
code = UpnpSearchAsync(lib->getclh(), m_searchTimeout,
|
||||||
MediaServerDType.c_str(), lib);
|
MediaServerDType, lib);
|
||||||
if (code != UPNP_E_SUCCESS) {
|
if (code != UPNP_E_SUCCESS) {
|
||||||
error.Format(upnp_domain, code,
|
error.Format(upnp_domain, code,
|
||||||
"UpnpSearchAsync() failed: %s",
|
"UpnpSearchAsync() failed: %s",
|
||||||
@ -297,7 +299,7 @@ UPnPDeviceDirectory::getDirServices(std::vector<ContentDirectoryService> &out)
|
|||||||
for (auto dit = contentDirectories.m_directories.begin();
|
for (auto dit = contentDirectories.m_directories.begin();
|
||||||
dit != contentDirectories.m_directories.end(); dit++) {
|
dit != contentDirectories.m_directories.end(); dit++) {
|
||||||
for (const auto &service : dit->second.device.services) {
|
for (const auto &service : dit->second.device.services) {
|
||||||
if (isCDService(service.serviceType)) {
|
if (isCDService(service.serviceType.c_str())) {
|
||||||
out.emplace_back(dit->second.device, service);
|
out.emplace_back(dit->second.device, service);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user