proxy_config_service.h revision ddb351dbec246cf1fab5ec20d2d5520909041de1
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 11namespace 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. 16class ProxyConfigService : public net::ProxyConfigService { 17 public: 18 explicit ProxyConfigService(const scoped_refptr<ProxyConfigServiceImpl>& impl) 19 : impl_(impl) {} 20 virtual ~ProxyConfigService() {} 21 22 // ProxyConfigService methods. Called from IO thread. 23 virtual void AddObserver(Observer* observer) { 24 impl_->AddObserver(observer); 25 } 26 virtual void RemoveObserver(Observer* observer) { 27 impl_->RemoveObserver(observer); 28 } 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