Chromium Code Reviews| 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_ |