All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WebProxySettings.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Web.h"
7 #include "IWebProxySettings.h"
8 #include "IUrlProxyResolver.h"
9 #include <string>
10 #include <vector>
11 
12 namespace Eegeo
13 {
14  namespace Web
15  {
17  {
18  public:
19  WebProxySettings(ManualProxyResolver& manualProxyResolver, IPacResolver& pacResolver);
20 
21  void EnableAutodetectedProxy();
22  void EnableAutoConfiguredProxy(const std::string& pacUrl);
23  void EnableProxy(const std::string& ipAddress, int port);
24  void DisableProxy();
25 
26  void AddProxyIgnorePattern(const std::string& proxyIgnorePattern);
27  void RemoveProxyIgnorePattern(const std::string& proxyIgnorePattern);
28 
29  const bool ProxyEnabled() const;
30  const std::string& ProxyIpAddress() const;
31  const int ProxyPort() const;
32 
33  const bool ShouldProxyUrl(const std::string& url) const;
34 
35  const UrlProxySettings GetProxySettingsForUrl(const std::string& url) const;
36  private:
37 
38  ManualProxyResolver& m_manualProxyResolver;
39  IPacResolver& m_pacResolver;
40  bool m_manualProxyEnabled;
41  bool m_autoProxyEnabled;
42  };
43  }
44 }