Page Speed Optimization Libraries  1.5.27.2
net/instaweb/http/public/sync_fetcher_adapter.h
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_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines