libzypp  15.28.6
zypp::StrMatcher Class Reference

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

#include <StrMatcher.h>

Classes

class  Impl
 StrMatcher implementation. More...
 

Public Types

typedef MatchException Exception
 

Public Member Functions

 StrMatcher ()
 Default ctor matches nothing. More...
 
 StrMatcher (const std::string &search_r)
 Ctor from string matches in Match::STRING mode per default. More...
 
 StrMatcher (const std::string &search_r, const Match &flags_r)
 Ctor taking string and Match flags. More...
 
 StrMatcher (const std::string &search_r, const Match::Mode &flags_r)
 Ctor taking string and Match::Mode. More...
 
 StrMatcher (const std::string &search_r, int flags_r)
 Low level interface wraps flags into Match. More...
 
 operator bool () const
 Evaluate in a boolean context ( ! searchstring().empty() ). More...
 
template<class Tp >
bool operator() (const Tp &string_r) const
 Return whether string matches. More...
 
bool operator() (const char *string_r) const
 
const std::string & searchstring () const
 The current searchstring. More...
 
void setSearchstring (const std::string &string_r)
 Set a new searchstring. More...
 
void setSearchstring (const std::string &string_r, const Match &flags_r)
 Set a new searchstring and flags. More...
 
const Matchflags () const
 The current search flags. More...
 
void setFlags (const Match &flags_r)
 Set new search flags. More...
 
void compile () const
 Compile the pattern e.g. More...
 
bool isCompiled () const
 Whether the StrMatcher is already compiled. More...
 
bool doMatch (const char *string_r) const
 Return whether string matches. More...
 

Private Attributes

RWCOW_pointer< Impl_pimpl
 Pointer to implementation. More...
 

Friends

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

Related Functions

(Note that these are not member functions.)

std::ostream & operator<< (std::ostream &str, const StrMatcher &obj)
 
bool operator== (const StrMatcher &lhs, const StrMatcher &rhs)
 
bool operator!= (const StrMatcher &lhs, const StrMatcher &rhs)
 
bool operator< (const StrMatcher &lhs, const StrMatcher &rhs)
 

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;
}

Those flags are always set: REG_EXTENDED | REG_NOSUB | REG_NEWLINE

Definition at line 297 of file StrMatcher.h.

Member Typedef Documentation

Definition at line 302 of file StrMatcher.h.

Constructor & Destructor Documentation

zypp::StrMatcher::StrMatcher ( )

Default ctor matches nothing.

Definition at line 260 of file StrMatcher.cc.

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

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

Definition at line 264 of file StrMatcher.cc.

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

Ctor taking string and Match flags.

Definition at line 268 of file StrMatcher.cc.

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 272 of file StrMatcher.cc.

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

Low level interface wraps flags into Match.

Definition at line 276 of file StrMatcher.cc.

Member Function Documentation

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

Evaluate in a boolean context ( ! searchstring().empty() ).

Definition at line 328 of file StrMatcher.h.

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, ...). NULL never matches.

Definition at line 338 of file StrMatcher.h.

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 341 of file StrMatcher.h.

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

The current searchstring.

Definition at line 289 of file StrMatcher.cc.

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

Set a new searchstring.

Definition at line 292 of file StrMatcher.cc.

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

Set a new searchstring and flags.

Definition at line 295 of file StrMatcher.cc.

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

The current search flags.

Definition at line 301 of file StrMatcher.cc.

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

Set new search flags.

Definition at line 304 of file StrMatcher.cc.

void zypp::StrMatcher::compile ( ) const

Compile the pattern e.g.

in case of REGEX.

Exceptions
MatchUnknownModeExceptionIf the Match flag more than one mode bit set.
MatchInvalidRegexExceptionIf Match::REGEX is set and searchstring is not a valid regular expression.

Definition at line 280 of file StrMatcher.cc.

bool zypp::StrMatcher::isCompiled ( ) const

Whether the StrMatcher is already compiled.

Definition at line 283 of file StrMatcher.cc.

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

Return whether string matches.

Compiles the StrMatcher if this was not yet done.

Exceptions
MatchExceptionAny of the exceptions thrown by StrMatcher::compile.

Definition at line 286 of file StrMatcher.cc.

Friends And Related Function Documentation

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

Definition at line 307 of file StrMatcher.cc.

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

Stream output

Definition at line 307 of file StrMatcher.cc.

bool operator== ( const StrMatcher lhs,
const StrMatcher rhs 
)
related

Definition at line 310 of file StrMatcher.cc.

bool operator!= ( const StrMatcher lhs,
const StrMatcher rhs 
)
related

Definition at line 390 of file StrMatcher.h.

bool operator< ( const StrMatcher lhs,
const StrMatcher rhs 
)
related

Arbitrary order for std::container.

Definition at line 316 of file StrMatcher.cc.

Member Data Documentation

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

Pointer to implementation.

Definition at line 380 of file StrMatcher.h.


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