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

Unified Diff: net/dns/dns_config_watcher.h

Issue 10377092: [net/dns] Isolate DnsConfigWatcher from DnsConfigService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments. Braces. Created 8 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: net/dns/dns_config_watcher.h
diff --git a/net/dns/dns_config_watcher.h b/net/dns/dns_config_watcher.h
new file mode 100644
index 0000000000000000000000000000000000000000..04d7056cba68bac89238426683f9b28280224273
--- /dev/null
+++ b/net/dns/dns_config_watcher.h
@@ -0,0 +1,45 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_DNS_DNS_CONFIG_WATCHER_H_
+#define NET_DNS_DNS_CONFIG_WATCHER_H_
+#pragma once
+
+#include "base/basictypes.h"
+#include "base/memory/scoped_ptr.h"
+
+namespace net {
+namespace internal {
+
+// Watches when the system DNS settings have changed. It is used by
+// NetworkChangeNotifier to provide signals to registered DNSObservers.
+// Depending on the platform, watches files, Windows registry, or libnotify key.
+// If some watches fail, we keep the working parts, but NetworkChangeNotifier
+// will mark notifications to DNSObserver with the CHANGE_DNS_WATCH_FAILED bit.
+class DnsConfigWatcher {
+ public:
+ DnsConfigWatcher();
+ ~DnsConfigWatcher();
+
+ // Starts watching system configuration for changes. The current thread must
+ // have a MessageLoopForIO. The signals will be delivered directly to
+ // the global NetworkChangeNotifier.
+ void Init();
+
+ // Must be called on the same thread as Init. Required if dtor will be called
+ // on a different thread.
+ void CleanUp();
+
+ private:
+ // Platform-specific implementation.
+ class Core;
+ scoped_ptr<Core> core_;
+
+ DISALLOW_COPY_AND_ASSIGN(DnsConfigWatcher);
+};
+
+} // namespace internal
+} // namespace net
+
+#endif // NET_DNS_DNS_CONFIG_WATCHER_H_

Powered by Google App Engine
This is Rietveld 408576698