1// Copyright (c) 2006-2008 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#include "net/proxy/proxy_info.h"
6
7#include "net/proxy/proxy_retry_info.h"
8
9namespace net {
10
11ProxyInfo::ProxyInfo() : config_id_(ProxyConfig::INVALID_ID) {
12}
13
14ProxyInfo::~ProxyInfo() {
15}
16
17void ProxyInfo::Use(const ProxyInfo& other) {
18  proxy_list_ = other.proxy_list_;
19}
20
21void ProxyInfo::UseDirect() {
22  proxy_list_.SetSingleProxyServer(ProxyServer::Direct());
23}
24
25void ProxyInfo::UseNamedProxy(const std::string& proxy_uri_list) {
26  proxy_list_.Set(proxy_uri_list);
27}
28
29void ProxyInfo::UseProxyServer(const ProxyServer& proxy_server) {
30  proxy_list_.SetSingleProxyServer(proxy_server);
31}
32
33std::string ProxyInfo::ToPacString() const {
34  return proxy_list_.ToPacString();
35}
36
37bool ProxyInfo::Fallback(ProxyRetryInfoMap* proxy_retry_info) {
38  return proxy_list_.Fallback(proxy_retry_info);
39}
40
41void ProxyInfo::DeprioritizeBadProxies(
42    const ProxyRetryInfoMap& proxy_retry_info) {
43  proxy_list_.DeprioritizeBadProxies(proxy_retry_info);
44}
45
46void ProxyInfo::RemoveProxiesWithoutScheme(int scheme_bit_field) {
47  proxy_list_.RemoveProxiesWithoutScheme(scheme_bit_field);
48}
49
50}  // namespace net
51