Page Speed Optimization Libraries
1.7.30.2
|
00001 // Copyright 2012 Google Inc. 00020 00021 #ifndef NET_INSTAWEB_SYSTEM_PUBLIC_LOOPBACK_ROUTE_FETCHER_H_ 00022 #define NET_INSTAWEB_SYSTEM_PUBLIC_LOOPBACK_ROUTE_FETCHER_H_ 00023 00024 #include "net/instaweb/http/public/url_async_fetcher.h" 00025 #include "net/instaweb/util/public/basictypes.h" 00026 #include "net/instaweb/util/public/string.h" 00027 00028 struct apr_sockaddr_t; 00029 00030 namespace net_instaweb { 00031 00032 class AsyncFetch; 00033 class RewriteOptions; 00034 class MessageHandler; 00035 00037 class LoopbackRouteFetcher : public UrlAsyncFetcher { 00038 public: 00046 LoopbackRouteFetcher(const RewriteOptions* options, 00047 const GoogleString& own_ip, 00048 int own_port, 00049 UrlAsyncFetcher* backend_fetcher); 00050 virtual ~LoopbackRouteFetcher(); 00051 00052 virtual bool SupportsHttps() const { 00053 return backend_fetcher_->SupportsHttps(); 00054 } 00055 00056 virtual void Fetch(const GoogleString& url, 00057 MessageHandler* message_handler, 00058 AsyncFetch* fetch); 00059 00061 static bool IsLoopbackAddr(const apr_sockaddr_t* addr); 00062 00063 private: 00064 const RewriteOptions* const options_; 00065 GoogleString own_ip_; 00066 int own_port_; 00067 UrlAsyncFetcher* const backend_fetcher_; 00068 00069 DISALLOW_COPY_AND_ASSIGN(LoopbackRouteFetcher); 00070 }; 00071 00072 } 00073 00074 #endif ///< NET_INSTAWEB_SYSTEM_PUBLIC_LOOPBACK_ROUTE_FETCHER_H_