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

Side by Side Diff: net/http/http_server_properties_manager.h

Issue 2567893002: Pass pref_task_runner through HttpServerPropertiesManager's cxtor so that tests could inject a Test… (Closed)
Patch Set: add comments to HttpServerPropertiesManager Created 4 years 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef NET_HTTP_HTTP_SERVER_PROPERTIES_MANAGER_H_ 5 #ifndef NET_HTTP_HTTP_SERVER_PROPERTIES_MANAGER_H_
6 #define NET_HTTP_HTTP_SERVER_PROPERTIES_MANAGER_H_ 6 #define NET_HTTP_HTTP_SERVER_PROPERTIES_MANAGER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 22 matching lines...) Expand all
33 //////////////////////////////////////////////////////////////////////////////// 33 ////////////////////////////////////////////////////////////////////////////////
34 // HttpServerPropertiesManager 34 // HttpServerPropertiesManager
35 35
36 // The manager for creating and updating an HttpServerProperties (for example it 36 // The manager for creating and updating an HttpServerProperties (for example it
37 // tracks if a server supports SPDY or not). 37 // tracks if a server supports SPDY or not).
38 // 38 //
39 // This class interacts with both the pref thread, where notifications of pref 39 // This class interacts with both the pref thread, where notifications of pref
40 // changes are received from, and the network thread, which owns it, and it 40 // changes are received from, and the network thread, which owns it, and it
41 // persists the changes from network stack whether server supports SPDY or not. 41 // persists the changes from network stack whether server supports SPDY or not.
42 // 42 //
43 // It must be constructed on the pref thread, to set up |pref_task_runner_| and 43 // There are two SingleThreadTaskRunners:
44 // the prefs listeners. 44 // |pref_task_runner_| should be bound with the pref thread and is used to post
45 // cache update to the pref thread;
46 // |network_task_runner_| should be bound with the network thread and is used
47 // to post pref update to the cache thread.
48 //
49 // It must be constructed with correct task runners passed in to set up
50 // |pref_task_runner_| and |network_task_runner| as well as the prefs listeners.
45 // 51 //
46 // ShutdownOnPrefThread must be called from pref thread before destruction, to 52 // ShutdownOnPrefThread must be called from pref thread before destruction, to
47 // release the prefs listeners on the pref thread. 53 // release the prefs listeners on the pref thread.
48 // 54 //
49 // Class requires that update tasks from the Pref thread can post safely to the 55 // Class requires that update tasks from the Pref thread can post safely to the
50 // network thread, so the destruction order must guarantee that if |this| 56 // network thread, so the destruction order must guarantee that if |this|
51 // exists in pref thread, then a potential destruction on network thread will 57 // exists in pref thread, then a potential destruction on network thread will
52 // come after any task posted to network thread from that method on pref thread. 58 // come after any task posted to network thread from that method on pref thread.
53 // This is used to go through network thread before the actual update starts, 59 // This is used to go through network thread before the actual update starts,
54 // and grab a WeakPtr. 60 // and grab a WeakPtr.
(...skipping 19 matching lines...) Expand all
74 virtual void StartListeningForUpdates(const base::Closure& callback) = 0; 80 virtual void StartListeningForUpdates(const base::Closure& callback) = 0;
75 virtual void StopListeningForUpdates() = 0; 81 virtual void StopListeningForUpdates() = 0;
76 }; 82 };
77 83
78 // Create an instance of the HttpServerPropertiesManager. 84 // Create an instance of the HttpServerPropertiesManager.
79 // 85 //
80 // Ownership of the PrefDelegate pointer is taken by this class. This is 86 // Ownership of the PrefDelegate pointer is taken by this class. This is
81 // passed as a raw pointer rather than a scoped_refptr currently because 87 // passed as a raw pointer rather than a scoped_refptr currently because
82 // the test uses gmock and it doesn't forward move semantics properly. 88 // the test uses gmock and it doesn't forward move semantics properly.
83 // 89 //
84 // Must be constructed on the Pref thread. 90 // There are two SingleThreadTaskRunners:
91 // |pref_task_runner| should be bound with the pref thread and is used to post
92 // cache update to the pref thread;
93 // |network_task_runner| should be bound with the network thread and is used
94 // to post pref update to the cache thread.
85 HttpServerPropertiesManager( 95 HttpServerPropertiesManager(
86 PrefDelegate* pref_delegate, 96 PrefDelegate* pref_delegate,
97 scoped_refptr<base::SingleThreadTaskRunner> pref_task_runner,
87 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner); 98 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner);
88 ~HttpServerPropertiesManager() override; 99 ~HttpServerPropertiesManager() override;
89 100
90 // Initialize on Network thread. 101 // Initialize on Network thread.
91 void InitializeOnNetworkThread(); 102 void InitializeOnNetworkThread();
92 103
93 // Prepare for shutdown. Must be called on the Pref thread before destruction. 104 // Prepare for shutdown. Must be called on the Pref thread before destruction.
94 void ShutdownOnPrefThread(); 105 void ShutdownOnPrefThread();
95 106
96 // Helper function for unit tests to set the version in the dictionary. 107 // Helper function for unit tests to set the version in the dictionary.
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 // Used to get |weak_ptr_| to self on the network thread. 316 // Used to get |weak_ptr_| to self on the network thread.
306 std::unique_ptr<base::WeakPtrFactory<HttpServerPropertiesManager>> 317 std::unique_ptr<base::WeakPtrFactory<HttpServerPropertiesManager>>
307 network_weak_ptr_factory_; 318 network_weak_ptr_factory_;
308 319
309 DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesManager); 320 DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesManager);
310 }; 321 };
311 322
312 } // namespace net 323 } // namespace net
313 324
314 #endif // NET_HTTP_HTTP_SERVER_PROPERTIES_MANAGER_H_ 325 #endif // NET_HTTP_HTTP_SERVER_PROPERTIES_MANAGER_H_
OLDNEW
« no previous file with comments | « ios/chrome/browser/net/http_server_properties_manager_factory.cc ('k') | net/http/http_server_properties_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698