| Index: compiled/subscription/DownloadableSubscription.h |
| =================================================================== |
| --- a/compiled/subscription/DownloadableSubscription.h |
| +++ b/compiled/subscription/DownloadableSubscription.h |
| @@ -13,23 +13,29 @@ |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| */ |
| #pragma once |
| #include <cstdint> |
| +#include <vector> |
| #include "../base.h" |
| +#include "../bindings/runtime.h" |
| +#include "../filter/Filter.h" |
| +#include "../StringMap.h" |
| #include "Subscription.h" |
| -#include "../bindings/runtime.h" |
| ABP_NS_BEGIN |
| +class String; |
| +class DownloadableSubscription_Parser; |
| + |
| class DownloadableSubscription : public Subscription |
| { |
| public: |
| static constexpr Type classType = Type::DOWNLOADABLE; |
| explicit DownloadableSubscription(const String& id); |
| SUBSCRIPTION_PROPERTY(bool, mFixedTitle, SUBSCRIPTION_FIXEDTITLE, |
| GetFixedTitle, SetFixedTitle); |
| @@ -51,14 +57,31 @@ |
| GetErrorCount, SetErrorCount); |
| SUBSCRIPTION_PROPERTY(uint64_t, mDataRevision, NONE, |
| GetDataRevision, SetDataRevision); |
| SUBSCRIPTION_STRING_PROPERTY(mRequiredVersion, NONE, |
| GetRequiredVersion, SetRequiredVersion); |
| SUBSCRIPTION_PROPERTY(int, mDownloadCount, NONE, |
| GetDownloadCount, SetDownloadCount); |
| + static DownloadableSubscription_Parser* BINDINGS_EXPORTED ParseDownload(); |
| OwnedString BINDINGS_EXPORTED Serialize() const; |
| }; |
| typedef intrusive_ptr<DownloadableSubscription> DownloadableSubscriptionPtr; |
| -ABP_NS_END |
| +class DownloadableSubscription_Parser : public ref_counted |
| +{ |
| + std::vector<OwnedString> mFiltersText; |
| + OwnedStringMap<OwnedString> mParams; |
| + bool mFirstLine; |
| +public: |
| + DownloadableSubscription_Parser(); |
| + void BINDINGS_EXPORTED Process(const String& line); |
| + // return the expiration interval. |
| + int64_t BINDINGS_EXPORTED Finalize(DownloadableSubscription&); |
| + const String& BINDINGS_EXPORTED GetRedirect() const; |
| + const String& BINDINGS_EXPORTED GetHomepage() const; |
| +private: |
| + static int64_t ParseExpires(const String& expires); |
| +}; |
| + |
| +ABP_NS_END |