libadblockplus
 All Classes Namespaces Functions Variables Typedefs Enumerations Pages
ReferrerMapping.h
1 /*
2  * This file is part of Adblock Plus <https://adblockplus.org/>,
3  * Copyright (C) 2006-present eyeo GmbH
4  *
5  * Adblock Plus is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 3 as
7  * published by the Free Software Foundation.
8  *
9  * Adblock Plus is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef ADBLOCK_PLUS_REFERRER_MAPPING_H
19 #define ADBLOCK_PLUS_REFERRER_MAPPING_H
20 
21 #include <list>
22 #include <map>
23 #include <string>
24 #include <vector>
25 
26 namespace AdblockPlus
27 {
35  {
36  public:
43  ReferrerMapping(const int maxCachedUrls = 5000);
44 
50  void Add(const std::string& url, const std::string& referrer);
51 
58  std::vector<std::string> BuildReferrerChain(const std::string& url) const;
59 
60  private:
61  const int maxCachedUrls;
62  std::map<std::string, std::string> mapping;
63  std::list<std::string> cachedUrls;
64  };
65 }
66 
67 #endif
ReferrerMapping(const int maxCachedUrls=5000)
Constructor.
Main namespace of libadblockplus.
Definition: ActiveObject.h:23
void Add(const std::string &url, const std::string &referrer)
Records the refferer for a URL.
Stores a mapping between URLs and their referrers.
Definition: ReferrerMapping.h:34
std::vector< std::string > BuildReferrerChain(const std::string &url) const
Builds a chain of referrers for the supplied URL.