• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_CHROMEOS_PROXY_CONFIG_SERVICE_H_
6 #define CHROME_BROWSER_CHROMEOS_PROXY_CONFIG_SERVICE_H_
7 #pragma once
8 
9 #include "chrome/browser/chromeos/proxy_config_service_impl.h"
10 
11 namespace chromeos {
12 
13 // Wrapper class for the RefCountedThreadSafe chromeos::ProxyConfigServiceImpl
14 // that forwards net::ProxyConfigService interface to the actual implementation,
15 // instantiated in ProfileIOData::CreateProxyConfigService.
16 class ProxyConfigService : public net::ProxyConfigService {
17  public:
ProxyConfigService(const scoped_refptr<ProxyConfigServiceImpl> & impl)18   explicit ProxyConfigService(const scoped_refptr<ProxyConfigServiceImpl>& impl)
19       : impl_(impl) {}
~ProxyConfigService()20   virtual ~ProxyConfigService() {}
21 
22   // ProxyConfigService methods.  Called from IO thread.
AddObserver(Observer * observer)23   virtual void AddObserver(Observer* observer) {
24     impl_->AddObserver(observer);
25   }
RemoveObserver(Observer * observer)26   virtual void RemoveObserver(Observer* observer) {
27     impl_->RemoveObserver(observer);
28   }
GetLatestProxyConfig(net::ProxyConfig * config)29   virtual ConfigAvailability GetLatestProxyConfig(net::ProxyConfig* config) {
30     return impl_->IOGetProxyConfig(config);
31   }
32 
33  private:
34   scoped_refptr<ProxyConfigServiceImpl> impl_;
35 
36   DISALLOW_COPY_AND_ASSIGN(ProxyConfigService);
37 };
38 
39 }  // namespace chromeos
40 
41 #endif  // CHROME_BROWSER_CHROMEOS_PROXY_CONFIG_SERVICE_H_
42