Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: compiled/ElemHideBase.h

Issue 29333474: Issue 4125 - [emscripten] Convert filter classes to C++ (Closed)
Left Patch Set: How with CSS property filters Created Jan. 20, 2016, 1:12 p.m.
Right Patch Set: Addressed comments from Patch Set 28 Created March 21, 2017, 10:04 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « compiled/CommentFilter.cpp ('k') | compiled/ElemHideBase.cpp » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 #ifndef ADBLOCK_PLUS_ELEM_HIDE_BASE_H 1 #pragma once
2 #define ADBLOCK_PLUS_ELEM_HIDE_BASE_H
3 2
4 #include <cstddef> 3 #include <cstddef>
5 #include <string>
6 4
7 #include "ActiveFilter.h" 5 #include "ActiveFilter.h"
8 6
7 struct ElemHideBaseData
8 {
9 String::size_type mDomainsEnd;
10 String::size_type mSelectorStart;
11
12 bool HasDomains() const
13 {
14 return mDomainsEnd != 0;
15 }
16
17 DependentString GetDomainsSource(String& text) const
18 {
19 return DependentString(text, 0, mDomainsEnd);
20 }
21
22 const DependentString GetDomainsSource(const String& text) const
23 {
24 return DependentString(text, 0, mDomainsEnd);
25 }
26
27 DependentString GetSelector(String& text) const
28 {
29 return DependentString(text, mSelectorStart);
30 }
31
32 const DependentString GetSelector(const String& text) const
33 {
34 return DependentString(text, mSelectorStart);
35 }
36 };
37
38 struct ElemHideData;
39
9 class ElemHideBase : public ActiveFilter 40 class ElemHideBase : public ActiveFilter
10 { 41 {
11 private: 42 protected:
12 std::u16string selector; 43 ElemHideBaseData mData;
13 public: 44 public:
14 ElemHideBase(const std::u16string& text, const std::u16string& domains, 45 explicit ElemHideBase(Type type, const String& text, const ElemHideBaseData& d ata);
15 const std::u16string& selector); 46 static Type Parse(DependentString& text, ElemHideData& data);
16 static Type Parse(const std::u16string& text, size_t* domainsEnd,
17 size_t* selectorStart, size_t* prefixEnd = nullptr,
18 size_t* regexpStart = nullptr, size_t* regexpEnd = nullptr,
19 size_t* suffixStart = nullptr);
20 static Filter* Create(const std::u16string& text);
21 47
22 const std::u16string GetSelector() const 48 EMSCRIPTEN_KEEPALIVE const DependentString GetSelector() const
23 { 49 {
24 return selector; 50 return mData.GetSelector(mText);
25 } 51 }
26 52
27 const std::u16string GetSelectorDomain() const; 53 EMSCRIPTEN_KEEPALIVE OwnedString GetSelectorDomain() const;
28 }; 54 };
29
30 #endif
LEFTRIGHT

Powered by Google App Engine
This is Rietveld