Home | History | Annotate | Download | only in chromeos
      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:
     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