db/upnp: move stringToTokens() to Util.cxx
This commit is contained in:
parent
8351543c0f
commit
b50d79542c
@ -24,6 +24,7 @@
|
|||||||
#include "upnp/Discovery.hxx"
|
#include "upnp/Discovery.hxx"
|
||||||
#include "upnp/ContentDirectoryService.hxx"
|
#include "upnp/ContentDirectoryService.hxx"
|
||||||
#include "upnp/Directory.hxx"
|
#include "upnp/Directory.hxx"
|
||||||
|
#include "upnp/Util.hxx"
|
||||||
#include "LazyDatabase.hxx"
|
#include "LazyDatabase.hxx"
|
||||||
#include "DatabasePlugin.hxx"
|
#include "DatabasePlugin.hxx"
|
||||||
#include "DatabaseSelection.hxx"
|
#include "DatabaseSelection.hxx"
|
||||||
@ -146,42 +147,6 @@ private:
|
|||||||
Error &error) const;
|
Error &error) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
gcc_pure
|
|
||||||
static std::vector<std::string>
|
|
||||||
stringToTokens(const std::string &str,
|
|
||||||
const char *delims = "/", bool skipinit = true)
|
|
||||||
{
|
|
||||||
std::vector<std::string> tokens;
|
|
||||||
|
|
||||||
std::string::size_type startPos = 0;
|
|
||||||
|
|
||||||
// Skip initial delims, return empty if this eats all.
|
|
||||||
if (skipinit &&
|
|
||||||
(startPos = str.find_first_not_of(delims, 0)) == std::string::npos)
|
|
||||||
return tokens;
|
|
||||||
|
|
||||||
while (startPos < str.size()) {
|
|
||||||
// Find next delimiter or end of string (end of token)
|
|
||||||
auto pos = str.find_first_of(delims, startPos);
|
|
||||||
|
|
||||||
// Add token to the vector and adjust start
|
|
||||||
if (pos == std::string::npos) {
|
|
||||||
tokens.push_back(str.substr(startPos));
|
|
||||||
break;
|
|
||||||
} else if (pos == startPos) {
|
|
||||||
// Dont' push empty tokens after first
|
|
||||||
if (tokens.empty())
|
|
||||||
tokens.push_back(std::string());
|
|
||||||
startPos = ++pos;
|
|
||||||
} else {
|
|
||||||
tokens.push_back(str.substr(startPos, pos - startPos));
|
|
||||||
startPos = ++pos;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return tokens;
|
|
||||||
}
|
|
||||||
|
|
||||||
Database *
|
Database *
|
||||||
UpnpDatabase::Create(gcc_unused EventLoop &loop,
|
UpnpDatabase::Create(gcc_unused EventLoop &loop,
|
||||||
gcc_unused DatabaseListener &listener,
|
gcc_unused DatabaseListener &listener,
|
||||||
|
@ -89,6 +89,41 @@ path_getfather(const std::string &s)
|
|||||||
return father;
|
return father;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<std::string>
|
||||||
|
stringToTokens(const std::string &str,
|
||||||
|
const char *delims, bool skipinit)
|
||||||
|
{
|
||||||
|
std::vector<std::string> tokens;
|
||||||
|
|
||||||
|
std::string::size_type startPos = 0;
|
||||||
|
|
||||||
|
// Skip initial delims, return empty if this eats all.
|
||||||
|
if (skipinit &&
|
||||||
|
(startPos = str.find_first_not_of(delims, 0)) == std::string::npos)
|
||||||
|
return tokens;
|
||||||
|
|
||||||
|
while (startPos < str.size()) {
|
||||||
|
// Find next delimiter or end of string (end of token)
|
||||||
|
auto pos = str.find_first_of(delims, startPos);
|
||||||
|
|
||||||
|
// Add token to the vector and adjust start
|
||||||
|
if (pos == std::string::npos) {
|
||||||
|
tokens.push_back(str.substr(startPos));
|
||||||
|
break;
|
||||||
|
} else if (pos == startPos) {
|
||||||
|
// Dont' push empty tokens after first
|
||||||
|
if (tokens.empty())
|
||||||
|
tokens.push_back(std::string());
|
||||||
|
startPos = ++pos;
|
||||||
|
} else {
|
||||||
|
tokens.push_back(str.substr(startPos, pos - startPos));
|
||||||
|
startPos = ++pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return tokens;
|
||||||
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
bool
|
bool
|
||||||
csvToStrings(const std::string &s, T &tokens)
|
csvToStrings(const std::string &s, T &tokens)
|
||||||
|
@ -20,7 +20,10 @@
|
|||||||
#ifndef MPD_UPNP_UTIL_HXX
|
#ifndef MPD_UPNP_UTIL_HXX
|
||||||
#define MPD_UPNP_UTIL_HXX
|
#define MPD_UPNP_UTIL_HXX
|
||||||
|
|
||||||
|
#include "Compiler.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
std::string
|
std::string
|
||||||
caturl(const std::string& s1, const std::string& s2);
|
caturl(const std::string& s1, const std::string& s2);
|
||||||
@ -31,6 +34,11 @@ trimstring(std::string &s, const char *ws = " \t\n");
|
|||||||
std::string
|
std::string
|
||||||
path_getfather(const std::string &s);
|
path_getfather(const std::string &s);
|
||||||
|
|
||||||
|
gcc_pure
|
||||||
|
std::vector<std::string>
|
||||||
|
stringToTokens(const std::string &str,
|
||||||
|
const char *delims = "/", bool skipinit = true);
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
bool csvToStrings(const std::string& s, T &tokens);
|
bool csvToStrings(const std::string& s, T &tokens);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user