20 #ifndef NET_INSTAWEB_HTTP_PUBLIC_ASYNC_FETCH_WITH_LOCK_H_
21 #define NET_INSTAWEB_HTTP_PUBLIC_ASYNC_FETCH_WITH_LOCK_H_
24 #include "net/instaweb/http/public/request_context.h"
25 #include "pagespeed/kernel/base/basictypes.h"
26 #include "pagespeed/kernel/base/scoped_ptr.h"
27 #include "pagespeed/kernel/base/string.h"
28 #include "pagespeed/kernel/base/string_util.h"
30 namespace net_instaweb {
35 class NamedLockManager;
36 class UrlAsyncFetcher;
65 const GoogleString&
url,
67 NamedLockManager* lock_manager,
68 MessageHandler* message_handler);
77 const GoogleString&
url()
const {
return url_; }
80 const GoogleString&
cache_key()
const {
return cache_key_; }
90 virtual void Finalize(
bool lock_failure,
bool success);
106 virtual bool HandleWrite(
107 const StringPiece& content, MessageHandler* handler);
108 virtual bool HandleFlush(MessageHandler* handler);
112 NamedLock* MakeInputLock(
const GoogleString& url);
114 NamedLockManager* lock_manager_;
115 scoped_ptr<NamedLock> lock_;
116 const Hasher* lock_hasher_;
118 GoogleString cache_key_;
119 MessageHandler* message_handler_;
const GoogleString & url() const
Url to be fetched.
Definition: async_fetch_with_lock.h:77
const GoogleString & cache_key() const
Cache key to be locked.
Definition: async_fetch_with_lock.h:80
virtual void Finalize(bool lock_failure, bool success)
virtual const RequestContextPtr & request_context()
Definition: async_fetch.h:151
bool Start(UrlAsyncFetcher *fetcher)
virtual bool StartFetch(UrlAsyncFetcher *fetcher, MessageHandler *handler)=0
Definition: async_fetch_with_lock.h:61
Definition: async_fetch.h:53
virtual void HandleDone(bool success)
virtual bool ShouldYieldToRedundantFetchInProgress()=0
virtual void HandleHeadersComplete()
Definition: url_async_fetcher.h:33