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