| LEFT | RIGHT | 
|   1 #ifndef ADBLOCK_PLUS_ACTIVE_FILTER_H |   1 #pragma once | 
|   2 #define ADBLOCK_PLUS_ACTIVE_FILTER_H |  | 
|   3  |   2  | 
|   4 #include <emscripten.h> |   3 #include <emscripten.h> | 
|   5  |   4  | 
|   6 #include "Filter.h" |   5 #include "Filter.h" | 
|   7 #include "StringMap.h" |   6 #include "StringMap.h" | 
|   8  |   7  | 
|   9 #define FILTER_PROPERTY(type, name, getter, setter) \ |   8 #define FILTER_PROPERTY(type, name, getter, setter) \ | 
|  10     private:\ |   9     private:\ | 
|  11       type name;\ |  10       type name;\ | 
|  12     public:\ |  11     public:\ | 
|  13       type EMSCRIPTEN_KEEPALIVE getter() const\ |  12       type EMSCRIPTEN_KEEPALIVE getter() const\ | 
|  14       {\ |  13       {\ | 
|  15         return name;\ |  14         return name;\ | 
|  16       }\ |  15       }\ | 
|  17       void EMSCRIPTEN_KEEPALIVE setter(type value)\ |  16       void EMSCRIPTEN_KEEPALIVE setter(type value)\ | 
|  18       {\ |  17       {\ | 
|  19         if (name != value)\ |  18         if (name != value)\ | 
|  20         {\ |  19         {\ | 
|  21           type oldvalue = name;\ |  20           type oldvalue = name;\ | 
|  22           name = value;\ |  21           name = value;\ | 
|  23           String action(u"filter."_str #name);\ |  22           DependentString action(u"filter."_str #name);\ | 
|  24           EM_ASM_ARGS({\ |  23           EM_ASM_ARGS({\ | 
|  25             var filter = new (exports[Filter_mapping[$2]])($1);\ |  24             var filter = new (exports[Filter_mapping[$2]])($1);\ | 
|  26             FilterNotifier.triggerListeners(getStringData($0), filter, $3, $4);\ |  25             FilterNotifier.triggerListeners(readString($0), filter, $3, $4);\ | 
|  27           }, &action, this, GetType(), value, oldvalue);\ |  26           }, &action, this, mType, value, oldvalue);\ | 
|  28         }\ |  27         }\ | 
|  29       } |  28       } | 
|  30  |  29  | 
|  31 class ActiveFilter : public Filter |  30 class ActiveFilter : public Filter | 
|  32 { |  31 { | 
 |  32 protected: | 
 |  33   typedef StringMap<bool> DomainMap; | 
 |  34   typedef StringSet SitekeySet; | 
 |  35   void ParseDomains(const String& domains, String::value_type separator) const; | 
 |  36   void AddSitekey(const String& sitekey) const; | 
 |  37   virtual DomainMap* GetDomains() const; | 
 |  38   virtual SitekeySet* GetSitekeys() const; | 
 |  39   mutable std::unique_ptr<DomainMap> mDomains; | 
 |  40   mutable std::unique_ptr<SitekeySet> mSitekeys; | 
|  33 private: |  41 private: | 
|  34   bool mIgnoreTrailingDot; |  42   bool mIgnoreTrailingDot; | 
|  35   typedef StringMap<bool> DomainMap; |  | 
|  36   typedef StringSet SitekeySet; |  | 
|  37 protected: |  | 
|  38   std::unique_ptr<DomainMap> mDomains; |  | 
|  39   std::unique_ptr<SitekeySet> mSitekeys; |  | 
|  40   void ParseDomains(String& str, String::size_type pos, String::size_type len, |  | 
|  41       char16_t separator); |  | 
|  42   void AddSitekey(const String& sitekey); |  | 
|  43 public: |  43 public: | 
|  44   explicit ActiveFilter(const String& text, |  44   explicit ActiveFilter(Type type, const String& text, bool ignoreTrailingDot); | 
|  45       bool ignoreTrailingDot); |  | 
|  46   FILTER_PROPERTY(bool, mDisabled, GetDisabled, SetDisabled); |  45   FILTER_PROPERTY(bool, mDisabled, GetDisabled, SetDisabled); | 
|  47   FILTER_PROPERTY(unsigned int, mHitCount, GetHitCount, SetHitCount); |  46   FILTER_PROPERTY(unsigned int, mHitCount, GetHitCount, SetHitCount); | 
|  48   FILTER_PROPERTY(unsigned int, mLastHit, GetLastHit, SetLastHit); |  47   FILTER_PROPERTY(unsigned int, mLastHit, GetLastHit, SetLastHit); | 
|  49   bool EMSCRIPTEN_KEEPALIVE IsActiveOnDomain(String& docDomain, |  48   bool EMSCRIPTEN_KEEPALIVE IsActiveOnDomain(DependentString& docDomain, | 
|  50       const String& sitekey) const; |  49       const String& sitekey) const; | 
|  51   bool EMSCRIPTEN_KEEPALIVE IsActiveOnlyOnDomain(String& docDomain) const; |  50   bool EMSCRIPTEN_KEEPALIVE IsActiveOnlyOnDomain(DependentString& docDomain) con
    st; | 
|  52   bool EMSCRIPTEN_KEEPALIVE IsGeneric() const; |  51   bool EMSCRIPTEN_KEEPALIVE IsGeneric() const; | 
|  53   String EMSCRIPTEN_KEEPALIVE Serialize() const; |  52   OwnedString EMSCRIPTEN_KEEPALIVE Serialize() const; | 
|  54 }; |  53 }; | 
|  55  |  | 
|  56 #endif |  | 
| LEFT | RIGHT |