Implement String::GetData.

Fixes #5008
This commit is contained in:
Gunnar Beutner 2013-11-05 18:52:13 +01:00
parent 20a2fd2388
commit 27f527d0ad
3 changed files with 13 additions and 12 deletions

View File

@ -61,13 +61,10 @@ bool AttributeFilter::Apply(const Table::Ptr& table, const Value& row)
else
return (static_cast<String>(value) == m_Operand);
} else if (m_Operator == "~") {
boost::regex expr(static_cast<std::string>(m_Operand));
boost::regex expr(m_Operand.GetData());
String operand = value;
boost::smatch what;
String val = static_cast<String>(value);
std::string::const_iterator begin = val.Begin();
std::string::const_iterator end = val.End();
bool ret = boost::regex_search(begin, end, what, expr);
bool ret = boost::regex_search(operand.GetData(), what, expr);
//Log(LogDebug, "livestatus", "Attribute filter '" + m_Operand + " " + m_Operator + " " +
// static_cast<String>(value) + "' " + (ret ? "matches" : "doesn't match") + "." );
@ -76,13 +73,10 @@ bool AttributeFilter::Apply(const Table::Ptr& table, const Value& row)
} else if (m_Operator == "=~") {
return string_iless()(value, m_Operand);
} else if (m_Operator == "~~") {
boost::regex expr(static_cast<std::string>(m_Operand), boost::regex::icase);
boost::regex expr(m_Operand.GetData(), boost::regex::icase);
String operand = value;
boost::smatch what;
String val = static_cast<String>(value);
std::string::const_iterator begin = val.Begin();
std::string::const_iterator end = val.End();
bool ret = boost::regex_search(begin, end, what, expr);
bool ret = boost::regex_search(operand.GetData(), what, expr);
//Log(LogDebug, "livestatus", "Attribute filter '" + m_Operand + " " + m_Operator + " " +
// static_cast<String>(value) + "' " + (ret ? "matches" : "doesn't match") + "." );

View File

@ -122,6 +122,11 @@ size_t String::GetLength(void) const
return m_Data.size();
}
std::string& String::GetData(void)
{
return m_Data;
}
size_t String::Find(const String& str, size_t pos) const
{
return m_Data.find(str, pos);

View File

@ -76,6 +76,8 @@ public:
void Clear(void);
size_t GetLength(void) const;
std::string& GetData(void);
size_t Find(const String& str, size_t pos = 0) const;
size_t FindFirstOf(const char *s, size_t pos = 0) const;
size_t FindFirstOf(char ch, size_t pos = 0) const;