Flutter Engine
 
Loading...
Searching...
No Matches
Filter Class Reference

#include <filter.h>

Public Member Functions

bool Matches (std::string_view input) const
 
 Filter (const Filter &)=delete
 
Filteroperator= (const Filter &)=delete
 
 Filter (Filter &&)=default
 
Filteroperator= (Filter &&)=default
 

Static Public Member Functions

static absl::StatusOr< FilterOpen (std::string_view path)
 
static absl::StatusOr< FilterOpen (std::istream &input)
 

Detailed Description

A filter is a concatenation of multiple regex.

This is used for things like the include.txt and exclude.txt.

Definition at line 17 of file filter.h.

Constructor & Destructor Documentation

◆ Filter() [1/2]

Filter::Filter ( const Filter )
delete

◆ Filter() [2/2]

Filter::Filter ( Filter &&  )
default

Member Function Documentation

◆ Matches()

bool Filter::Matches ( std::string_view  input) const

Definition at line 46 of file filter.cc.

46 {
47 return RE2::FullMatch(input, *re_);
48}
static int input(yyscan_t yyscanner)

References input().

◆ Open() [1/2]

absl::StatusOr< Filter > Filter::Open ( std::istream &  input)
static

Definition at line 17 of file filter.cc.

17 {
18 if (!input.good()) {
19 return absl::InvalidArgumentError("stream not good");
20 }
21 std::string regex;
22 bool first = true;
23 std::string line;
24 while (input.good()) {
25 std::getline(input, line);
26 if (line.length() <= 0) {
27 continue;
28 }
29 if (line[0] == '#') {
30 // Comments.
31 continue;
32 }
33 if (!first) {
34 absl::StrAppend(&regex, "|");
35 } else {
36 first = false;
37 }
38 absl::StrAppend(&regex, line);
39 }
40
41 return Filter(regex);
42}

References input().

◆ Open() [2/2]

absl::StatusOr< Filter > Filter::Open ( std::string_view  path)
static

Definition at line 9 of file filter.cc.

9 {
10 std::ifstream input;
11 input.open(path);
12 absl::StatusOr<Filter> result = Open(input);
13 input.close();
14 return result;
15}
static absl::StatusOr< Filter > Open(std::string_view path)
Definition filter.cc:9

References input(), and Open().

Referenced by Data::Open(), Open(), TEST(), TEST(), TEST_F(), and TEST_F().

◆ operator=() [1/2]

Filter & Filter::operator= ( const Filter )
delete

◆ operator=() [2/2]

Filter & Filter::operator= ( Filter &&  )
default

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