Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(537)

Side by Side Diff: net/base/sdch_manager.h

Issue 7529043: Rename NET_API to NET_EXPORT, and rename NET_TEST to NET_EXPORT_PRIVATE. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Provides global database of differential decompression dictionaries for the 5 // Provides global database of differential decompression dictionaries for the
6 // SDCH filter (processes sdch enconded content). 6 // SDCH filter (processes sdch enconded content).
7 7
8 // Exactly one instance of SdchManager is built, and all references are made 8 // Exactly one instance of SdchManager is built, and all references are made
9 // into that collection. 9 // into that collection.
10 // 10 //
(...skipping 12 matching lines...) Expand all
23 23
24 #include <map> 24 #include <map>
25 #include <set> 25 #include <set>
26 #include <string> 26 #include <string>
27 27
28 #include "base/gtest_prod_util.h" 28 #include "base/gtest_prod_util.h"
29 #include "base/memory/ref_counted.h" 29 #include "base/memory/ref_counted.h"
30 #include "base/memory/scoped_ptr.h" 30 #include "base/memory/scoped_ptr.h"
31 #include "base/time.h" 31 #include "base/time.h"
32 #include "googleurl/src/gurl.h" 32 #include "googleurl/src/gurl.h"
33 #include "net/base/net_api.h" 33 #include "net/base/net_export.h"
34 34
35 namespace net { 35 namespace net {
36 36
37 //------------------------------------------------------------------------------ 37 //------------------------------------------------------------------------------
38 // Create a public interface to help us load SDCH dictionaries. 38 // Create a public interface to help us load SDCH dictionaries.
39 // The SdchManager class allows registration to support this interface. 39 // The SdchManager class allows registration to support this interface.
40 // A browser may register a fetcher that is used by the dictionary managers to 40 // A browser may register a fetcher that is used by the dictionary managers to
41 // get data from a specified URL. This allows us to use very high level browser 41 // get data from a specified URL. This allows us to use very high level browser
42 // functionality in this base (when the functionaity can be provided). 42 // functionality in this base (when the functionaity can be provided).
43 class SdchFetcher { 43 class SdchFetcher {
44 public: 44 public:
45 SdchFetcher() {} 45 SdchFetcher() {}
46 virtual ~SdchFetcher() {} 46 virtual ~SdchFetcher() {}
47 47
48 // The Schedule() method is called when there is a need to get a dictionary 48 // The Schedule() method is called when there is a need to get a dictionary
49 // from a server. The callee is responsible for getting that dictionary_text, 49 // from a server. The callee is responsible for getting that dictionary_text,
50 // and then calling back to AddSdchDictionary() to the SdchManager instance. 50 // and then calling back to AddSdchDictionary() to the SdchManager instance.
51 virtual void Schedule(const GURL& dictionary_url) = 0; 51 virtual void Schedule(const GURL& dictionary_url) = 0;
52 private: 52 private:
53 DISALLOW_COPY_AND_ASSIGN(SdchFetcher); 53 DISALLOW_COPY_AND_ASSIGN(SdchFetcher);
54 }; 54 };
55 55
56 //------------------------------------------------------------------------------ 56 //------------------------------------------------------------------------------
57 57
58 class NET_API SdchManager { 58 class NET_EXPORT SdchManager {
59 public: 59 public:
60 // A list of errors that appeared and were either resolved, or used to turn 60 // A list of errors that appeared and were either resolved, or used to turn
61 // off sdch encoding. 61 // off sdch encoding.
62 enum ProblemCodes { 62 enum ProblemCodes {
63 MIN_PROBLEM_CODE, 63 MIN_PROBLEM_CODE,
64 64
65 // Content-encoding correction problems. 65 // Content-encoding correction problems.
66 ADDED_CONTENT_ENCODING = 1, 66 ADDED_CONTENT_ENCODING = 1,
67 FIXED_CONTENT_ENCODING = 2, 67 FIXED_CONTENT_ENCODING = 2,
68 FIXED_CONTENT_ENCODINGS = 3, 68 FIXED_CONTENT_ENCODINGS = 3,
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 MAX_PROBLEM_CODE // Used to bound histogram. 155 MAX_PROBLEM_CODE // Used to bound histogram.
156 }; 156 };
157 157
158 // Use the following static limits to block DOS attacks until we implement 158 // Use the following static limits to block DOS attacks until we implement
159 // a cached dictionary evicition strategy. 159 // a cached dictionary evicition strategy.
160 static const size_t kMaxDictionarySize; 160 static const size_t kMaxDictionarySize;
161 static const size_t kMaxDictionaryCount; 161 static const size_t kMaxDictionaryCount;
162 162
163 // There is one instance of |Dictionary| for each memory-cached SDCH 163 // There is one instance of |Dictionary| for each memory-cached SDCH
164 // dictionary. 164 // dictionary.
165 class NET_TEST Dictionary : public base::RefCounted<Dictionary> { 165 class NET_EXPORT_PRIVATE Dictionary : public base::RefCounted<Dictionary> {
166 public: 166 public:
167 // Sdch filters can get our text to use in decoding compressed data. 167 // Sdch filters can get our text to use in decoding compressed data.
168 const std::string& text() const { return text_; } 168 const std::string& text() const { return text_; }
169 169
170 private: 170 private:
171 friend class base::RefCounted<Dictionary>; 171 friend class base::RefCounted<Dictionary>;
172 friend class SdchManager; // Only manager can construct an instance. 172 friend class SdchManager; // Only manager can construct an instance.
173 FRIEND_TEST_ALL_PREFIXES(SdchFilterTest, PathMatch); 173 FRIEND_TEST_ALL_PREFIXES(SdchFilterTest, PathMatch);
174 174
175 // Construct a vc-diff usable dictionary from the dictionary_text starting 175 // Construct a vc-diff usable dictionary from the dictionary_text starting
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 // List of hostnames for which a latency experiment is allowed (because a 369 // List of hostnames for which a latency experiment is allowed (because a
370 // round trip test has recently passed). 370 // round trip test has recently passed).
371 ExperimentSet allow_latency_experiment_; 371 ExperimentSet allow_latency_experiment_;
372 372
373 DISALLOW_COPY_AND_ASSIGN(SdchManager); 373 DISALLOW_COPY_AND_ASSIGN(SdchManager);
374 }; 374 };
375 375
376 } // namespace net 376 } // namespace net
377 377
378 #endif // NET_BASE_SDCH_MANAGER_H_ 378 #endif // NET_BASE_SDCH_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698