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

Unified Diff: chrome/browser/local_discovery/wifi/wifi_service_client.h

Issue 226883002: WiFi client for GCD bootstrapping (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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: chrome/browser/local_discovery/wifi/wifi_service_client.h
diff --git a/chrome/browser/local_discovery/wifi/wifi_service_client.h b/chrome/browser/local_discovery/wifi/wifi_service_client.h
new file mode 100644
index 0000000000000000000000000000000000000000..2e4ad0468309f8c4095befd05d1431b480b9fba1
--- /dev/null
+++ b/chrome/browser/local_discovery/wifi/wifi_service_client.h
@@ -0,0 +1,83 @@
+// Copyright 2014 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 CHROME_BROWSER_LOCAL_DISCOVERY_WIFI_WIFI_SERVICE_CLIENT_H_
+#define CHROME_BROWSER_LOCAL_DISCOVERY_WIFI_WIFI_SERVICE_CLIENT_H_
+
+#include <string>
+#include <vector>
+
+#include "base/callback.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/local_discovery/wifi/wifi_client.h"
+
+namespace local_discovery {
+
+namespace wifi {
+
+template <class T>
+class ThreadSpecificDeleter {
+ public:
+ explicit ThreadSpecificDeleter(base::SequencedTaskRunner* runner)
+ : runner_(runner) {}
+
+ ThreadSpecificDeleter() {}
+
+ ~ThreadSpecificDeleter() {}
+
+ void operator()(T* element) {
+ DCHECK(runner_);
+ runner_->DeleteSoon(FROM_HERE, element);
+ }
+
+ private:
+ scoped_refptr<base::SequencedTaskRunner> runner_;
+};
stevenjb 2014/05/09 18:46:15 I don't think this class provides much clarity to
Noam Samuel 2014/05/12 23:54:12 Done.
+
+class WifiServiceContainer;
+
+class WifiServiceClient : public WifiClient {
+ public:
+ explicit WifiServiceClient();
+ virtual ~WifiServiceClient();
+
stevenjb 2014/05/09 18:46:15 // WifiClient
Noam Samuel 2014/05/12 23:54:12 Done.
+ virtual void Start() OVERRIDE;
+
+ virtual void GetSSIDList(const SSIDListCallback& callback) OVERRIDE;
stevenjb 2014/05/09 18:46:15 WS
Noam Samuel 2014/05/12 23:54:12 What does this mean?
stevenjb 2014/05/13 00:18:06 White Space (all methods should have a blank line
Noam Samuel 2014/05/13 23:51:55 Done.
+ virtual void RequestScan(const SuccessCallback& callback) OVERRIDE;
+
+ virtual void ConnectToNetwork(const std::string& ssid,
+ const std::string& internal_id,
+ const std::string& password,
+ const SuccessCallback& callback) OVERRIDE;
+
+ virtual void ConnectToNetworkByID(const std::string& internal_id,
+ const SuccessCallback& callback) OVERRIDE;
+
+ virtual void GetNetworkCredentials(
+ const std::string& internal_id,
+ const CredentialsCallback& callback) OVERRIDE;
+
+ void OnNetworkListChanged();
stevenjb 2014/05/09 18:46:15 Comment
Noam Samuel 2014/05/12 23:54:12 Done.
+
+ // Used to ensure closures posted from the wifi threads aren't called after
+ // the service client is deleted.
+ void PostClosure(const base::Closure& callback);
+
+ private:
+ std::string original_guid_;
+ scoped_refptr<base::SequencedTaskRunner> task_runner_;
+ scoped_ptr<WifiServiceContainer, ThreadSpecificDeleter<WifiServiceContainer> >
+ wifi_container_;
+ std::vector<SuccessCallback> scan_callbacks_;
+
+ base::WeakPtrFactory<WifiServiceClient> weak_factory_;
+};
+
+} // namespace wifi
+
+} // namespace local_discovery
+
+#endif // CHROME_BROWSER_LOCAL_DISCOVERY_WIFI_WIFI_SERVICE_CLIENT_H_

Powered by Google App Engine
This is Rietveld 408576698