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