Page Speed Optimization Libraries
1.4.26.1
|
00001 // Copyright 2010 Google Inc. 00014 00016 00017 #ifndef NET_INSTAWEB_HTTP_PUBLIC_SYNC_FETCHER_ADAPTER_H_ 00018 #define NET_INSTAWEB_HTTP_PUBLIC_SYNC_FETCHER_ADAPTER_H_ 00019 00020 #include "net/instaweb/http/public/request_context.h" 00021 #include "net/instaweb/http/public/url_fetcher.h" 00022 #include "net/instaweb/util/public/basictypes.h" 00023 #include "net/instaweb/util/public/string.h" 00024 00025 namespace net_instaweb { 00026 00027 class MessageHandler; 00028 class RequestHeaders; 00029 class ResponseHeaders; 00030 class ThreadSystem; 00031 class Timer; 00032 class UrlPollableAsyncFetcher; 00033 class Writer; 00034 00035 class SyncFetcherAdapter : public UrlFetcher { 00036 public: 00039 SyncFetcherAdapter(Timer* timer, 00040 int64 fetcher_timeout_ms, 00041 UrlPollableAsyncFetcher* async_fetcher, 00042 ThreadSystem* thread_system); 00043 virtual ~SyncFetcherAdapter(); 00044 virtual bool StreamingFetchUrl(const GoogleString& url, 00045 const RequestHeaders& request_headers, 00046 ResponseHeaders* response_headers, 00047 Writer* fetched_content_writer, 00048 MessageHandler* message_handler, 00049 const RequestContextPtr& request_context); 00050 00051 private: 00052 Timer* timer_; 00053 int64 fetcher_timeout_ms_; 00054 UrlPollableAsyncFetcher* async_fetcher_; 00055 ThreadSystem* thread_system_; 00056 00057 DISALLOW_COPY_AND_ASSIGN(SyncFetcherAdapter); 00058 }; 00059 00060 } 00061 00062 #endif ///< NET_INSTAWEB_HTTP_PUBLIC_SYNC_FETCHER_ADAPTER_H_