libzypp: zypp::StrMatcher Class Reference

libzypp 17.38.11

zypp::StrMatcher Class Reference

String matching (STRING|SUBSTRING|GLOB|REGEX). More...

`#include <zypp/base/StrMatcher.h>`

## Classes
class | Impl
| StrMatcher implementation. More...

## Public Types
using | Exception = MatchException

## Public Member Functions
| StrMatcher ()
| Default ctor matches nothing.
| StrMatcher (const std::string &search_r)
| Ctor from string matches in Match::STRING mode per default.
| StrMatcher (std::string &&search_r)
| StrMatcher (const std::string &search_r, const Match &flags_r)
| Ctor taking string and Match flags.
| StrMatcher (std::string &&search_r, const Match &flags_r)
| StrMatcher (const std::string &search_r, const Match::Mode &flags_r)
| Ctor taking string and Match::Mode.
| StrMatcher (std::string &&search_r, const Match::Mode &flags_r)
| StrMatcher (const std::string &search_r, int flags_r)
| Low level interface wraps flags into Match.
| StrMatcher (std::string &&search_r, int flags_r)
| operator bool () const
| Evaluate in a boolean context ( !
template<class Tp>
bool | operator() (const Tp &string_r) const
| Return whether string matches.
bool | operator() (const char *string_r) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
const std::string & | searchstring () const
| The current searchstring.
void | setSearchstring (const std::string &string_r)
| Set a new searchstring.
void | setSearchstring (std::string &&string_r)
void | setSearchstring (const std::string &string_r, const Match &flags_r)
| Set a new searchstring and flags.
void | setSearchstring (std::string &&string_r, const Match &flags_r)
const Match & | flags () const
| The current search flags.
void | setFlags (const Match &flags_r)
| Set new search flags.
void | compile () const
| Compile the pattern e.g.
bool | isCompiled () const
| Whether the StrMatcher is already compiled.
bool | doMatch (const char *string_r) const
| Return whether string matches.

## Private Attributes
RWCOW_pointer< Impl > | _pimpl
| Pointer to implementation.

## Friends
std::ostream & | operator<< (std::ostream &str, const StrMatcher &obj)
| relates: StrMatcher Stream output

## Detailed Description

String matching (STRING|SUBSTRING|GLOB|REGEX).

Used by e.g. PoolQuery and LookupAttr for queries, but it can also be used for matching arbitrary strings.

StrMatcher matches( "foo", Match::SUBSTRING );
for_( it, stringlist.begin(), stringlist().end() )
{
if ( matches( *it ) )
cout << *it << " has substring 'foo'" << endl;
}
for_
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition Easy.h:27
zypp::Match::SUBSTRING
@ SUBSTRING
Match substring.
Definition StrMatcher.h:46
zypp::StrMatcher::StrMatcher
StrMatcher()
Default ctor matches nothing.
Definition StrMatcher.cc:265

\Note Those flags are always set: REG_EXTENDED | REG_NOSUB | REG_NEWLINE

Definition at line 297 of file StrMatcher.h.

## Member Typedef Documentation

## ◆ Exception

using zypp::StrMatcher::Exception = MatchException

Definition at line 302 of file StrMatcher.h.

## Constructor & Destructor Documentation

## ◆ StrMatcher() [1/9]

zypp::StrMatcher::StrMatcher | ( |  | ) |

Default ctor matches nothing.

Definition at line 265 of file StrMatcher.cc.

## ◆ StrMatcher() [2/9]

zypp::StrMatcher::StrMatcher | ( | const std::string & | search_r | ) |

Ctor from string matches in Match::STRING mode per default.

Definition at line 269 of file StrMatcher.cc.

## ◆ StrMatcher() [3/9]

zypp::StrMatcher::StrMatcher | ( | std::string && | search_r | ) |

Definition at line 272 of file StrMatcher.cc.

## ◆ StrMatcher() [4/9]

zypp::StrMatcher::StrMatcher | ( | const std::string & | search_r,
|  | const Match & | flags_r )

Ctor taking string and Match flags.

Definition at line 276 of file StrMatcher.cc.

## ◆ StrMatcher() [5/9]

zypp::StrMatcher::StrMatcher | ( | std::string && | search_r,
|  | const Match & | flags_r )

Definition at line 279 of file StrMatcher.cc.

## ◆ StrMatcher() [6/9]

zypp::StrMatcher::StrMatcher | ( | const std::string & | search_r,
|  | const Match::Mode & | flags_r )

Ctor taking string and Match::Mode.

Needed because we want them to be treated as Match, and not as int as the compiler woud do.

Definition at line 283 of file StrMatcher.cc.

## ◆ StrMatcher() [7/9]

zypp::StrMatcher::StrMatcher | ( | std::string && | search_r,
|  | const Match::Mode & | flags_r )

Definition at line 286 of file StrMatcher.cc.

## ◆ StrMatcher() [8/9]

zypp::StrMatcher::StrMatcher | ( | const std::string & | search_r,
|  | int | flags_r )

Low level interface wraps flags into Match.

Definition at line 290 of file StrMatcher.cc.

## ◆ StrMatcher() [9/9]

zypp::StrMatcher::StrMatcher | ( | std::string && | search_r,
|  | int | flags_r )

Definition at line 293 of file StrMatcher.cc.

## Member Function Documentation

## ◆ operator bool()

zypp::StrMatcher::operator bool | ( |  | ) | const
| inlineexplicit

Evaluate in a boolean context ( !

searchstring().empty() ).

Definition at line 336 of file StrMatcher.h.

## ◆ operator()() [1/2]

template<class Tp>

bool zypp::StrMatcher::operator() | ( | const Tp & | string_r | ) | const
| inline

Return whether string matches.

You can use it with any class that impements `c_str`. (`std::string`, Pathname, IdString, ...). \Note `NULL` never matches.

Definition at line 346 of file StrMatcher.h.

## ◆ operator()() [2/2]

bool zypp::StrMatcher::operator() | ( | const char * | string_r | ) | const
| inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 349 of file StrMatcher.h.

## ◆ searchstring()

const std::string & zypp::StrMatcher::searchstring | ( |  | ) | const

The current searchstring.

Definition at line 306 of file StrMatcher.cc.

## ◆ setSearchstring() [1/4]

void zypp::StrMatcher::setSearchstring | ( | const std::string & | string_r | ) |

Set a new searchstring.

Definition at line 309 of file StrMatcher.cc.

## ◆ setSearchstring() [2/4]

void zypp::StrMatcher::setSearchstring | ( | std::string && | string_r | ) |

Definition at line 311 of file StrMatcher.cc.

## ◆ setSearchstring() [3/4]

void zypp::StrMatcher::setSearchstring | ( | const std::string & | string_r,
|  | const Match & | flags_r )

Set a new searchstring and flags.

Definition at line 314 of file StrMatcher.cc.

## ◆ setSearchstring() [4/4]

void zypp::StrMatcher::setSearchstring | ( | std::string && | string_r,
|  | const Match & | flags_r )

Definition at line 319 of file StrMatcher.cc.

## ◆ flags()

const Match & zypp::StrMatcher::flags | ( |  | ) | const

The current search flags.

Definition at line 325 of file StrMatcher.cc.

## ◆ setFlags()

void zypp::StrMatcher::setFlags | ( | const Match & | flags_r | ) |

Set new search flags.

Definition at line 328 of file StrMatcher.cc.

## ◆ compile()

void zypp::StrMatcher::compile | ( |  | ) | const

Compile the pattern e.g.

in case of `REGEX`.

Exceptions

  MatchUnknownModeException | If the Match flag more than one mode bit set.
  MatchInvalidRegexException | If Match::REGEX is set and searchstring is not a valid regular expression.

Definition at line 297 of file StrMatcher.cc.

## ◆ isCompiled()

bool zypp::StrMatcher::isCompiled | ( |  | ) | const

Whether the StrMatcher is already compiled.

Definition at line 300 of file StrMatcher.cc.

## ◆ doMatch()

bool zypp::StrMatcher::doMatch | ( | const char * | string_r | ) | const

Return whether string matches.

Compiles the StrMatcher if this was not yet done.

Exceptions

  MatchException | Any of the exceptions thrown by StrMatcher::compile.

Definition at line 303 of file StrMatcher.cc.

## Friends And Related Symbol Documentation

## ◆ operator<<

std::ostream & operator<< | ( | std::ostream & | str,
|  | const StrMatcher & | obj )
| friend

relates: StrMatcher Stream output

Definition at line 331 of file StrMatcher.cc.

## Member Data Documentation

## ◆ _pimpl

RWCOW_pointer<Impl> zypp::StrMatcher::_pimpl
| private

Pointer to implementation.

Definition at line 392 of file StrMatcher.h.

The documentation for this class was generated from the following files:

- zypp/base/StrMatcher.h
- zypp/base/StrMatcher.cc