1 /* This Source Code Form is subject to the terms of the Mozilla
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 
5 #ifndef nsUrlClassifierInfo_h_
6 #define nsUrlClassifierInfo_h_
7 
8 #include "nsIUrlClassifierInfo.h"
9 #include "nsString.h"
10 
11 class nsUrlClassifierPositiveCacheEntry final
12     : public nsIUrlClassifierPositiveCacheEntry {
13  public:
14   nsUrlClassifierPositiveCacheEntry();
15 
16   NS_DECL_THREADSAFE_ISUPPORTS
17   NS_DECL_NSIURLCLASSIFIERPOSITIVECACHEENTRY
18 
19  private:
~nsUrlClassifierPositiveCacheEntry()20   ~nsUrlClassifierPositiveCacheEntry() {}
21 
22  public:
23   nsCString fullhash;
24 
25   int64_t expirySec;
26 };
27 
28 class nsUrlClassifierCacheEntry final : public nsIUrlClassifierCacheEntry {
29  public:
30   nsUrlClassifierCacheEntry();
31 
32   NS_DECL_THREADSAFE_ISUPPORTS
33   NS_DECL_NSIURLCLASSIFIERCACHEENTRY
34 
35  private:
~nsUrlClassifierCacheEntry()36   ~nsUrlClassifierCacheEntry() {}
37 
38  public:
39   nsCString prefix;
40 
41   int64_t expirySec;
42 
43   nsTArray<nsCOMPtr<nsIUrlClassifierPositiveCacheEntry>> matches;
44 };
45 
46 class nsUrlClassifierCacheInfo final : public nsIUrlClassifierCacheInfo {
47  public:
48   nsUrlClassifierCacheInfo();
49 
50   NS_DECL_THREADSAFE_ISUPPORTS
51   NS_DECL_NSIURLCLASSIFIERCACHEINFO
52 
53  private:
~nsUrlClassifierCacheInfo()54   ~nsUrlClassifierCacheInfo() {}
55 
56  public:
57   nsCString table;
58 
59   nsTArray<nsCOMPtr<nsIUrlClassifierCacheEntry>> entries;
60 };
61 
62 #endif  // nsUrlClassifierInfo_h_
63