32#ifndef DRAIN_KEY_MATCHER
33#define DRAIN_KEY_MATCHER
40#include <drain/Type.h>
41#include <drain/RegExp.h>
63 const std::string regExpSpecialChars;
79 StringMatcher(
const StringMatcher & matcher) :
value(regExpString),
isRegExp(false){
92 void set(
const std::string & s);
95 StringMatcher & operator=(
const std::string &s){
101 StringMatcher & operator=(
const StringMatcher &s){
109 bool operator==(
const std::string &s)
const {
114 bool operator==(
const char *s)
const {
119 bool operator==(
const StringMatcher &m)
const {
120 return (this->value == m.value) && (this->
isRegExp == m.isRegExp);
127 bool test(
const std::string & s)
const;
129 const std::string & getType()
const;
148std::ostream & operator<<(std::ostream & ostr,
const StringMatcher & m){
bool empty() const
Returns true, if expression is empty.
Definition RegExp.h:99
General-purpose key matcher: tests string equality, or regExp, if defined as such.
Definition StringMatcher.h:58
void set(const std::string &s)
Assign a string – which may be a literal or a regular expression.
Definition StringMatcher.cpp:46
bool isRegExp
Checks if the key conforms to ODIM convention: DBZH, VRAD, etc. (capital letters, underscores)
Definition StringMatcher.h:141
const std::string & value
A visible reference to the current string / regExp.
Definition StringMatcher.h:66
bool test(const std::string &s) const
Test with direct string matching or regExp, if defined.
Definition StringMatcher.cpp:70
Definition DataSelector.cpp:1277
DRAIN_TYPENAME(void)
Add a specialization for each type of those you want to support.