19 #ifndef NET_INSTAWEB_HTTP_PUBLIC_WRITE_THROUGH_HTTP_CACHE_H_
20 #define NET_INSTAWEB_HTTP_PUBLIC_WRITE_THROUGH_HTTP_CACHE_H_
28 #include "pagespeed/kernel/base/string_util.h"
30 namespace net_instaweb {
42 static const size_t kUnlimited;
46 Timer* timer, Hasher* hasher, Statistics* statistics);
54 virtual void Find(
const GoogleString& key,
55 const GoogleString& fragment,
56 MessageHandler* handler,
67 cache1_->set_hasher(hasher);
68 cache2_->set_hasher(hasher);
88 const GoogleString& fragment,
89 bool is_200_status_code,
90 MessageHandler * handler);
94 const GoogleString& fragment,
95 MessageHandler * handler);
99 const GoogleString& fragment,
100 MessageHandler * handler);
107 size_t cache1_limit()
const {
return cache1_size_limit_; }
109 virtual GoogleString Name()
const {
110 return FormatName(cache1_->Name(), cache2_->Name());
112 static GoogleString FormatName(StringPiece l1, StringPiece l2);
117 const GoogleString& fragment,
123 const GoogleString& key,
const GoogleString& fragment, HTTPValue* value);
125 scoped_ptr<HTTPCache> cache1_;
126 scoped_ptr<HTTPCache> cache2_;
127 size_t cache1_size_limit_;
Composes two cache interfaces to form a two level http cache.
Definition: write_through_http_cache.h:40
virtual void RememberNotCacheable(const GoogleString &key, const GoogleString &fragment, bool is_200_status_code, MessageHandler *handler)
Implements HTTPCache::RememberNotCacheable().
virtual void DeleteInternal(const GoogleString &key_fragment)
Implements HTTPCache::DeleteInternal().
virtual void SetIgnoreFailurePuts()
Implements HTTPCache::SetIgnoreFailurePuts().
void set_cache1_limit(size_t limit)
Definition: write_through_http_cache.h:106
virtual void set_hasher(Hasher *hasher)
Implements HttpCache::set_hasher().
Definition: write_through_http_cache.h:66
virtual void set_remember_not_cacheable_ttl_seconds(int64 value)
Implements HTTPCache::set_remember_not_cacheable_ttl_seconds().
virtual void Find(const GoogleString &key, const GoogleString &fragment, MessageHandler *handler, Callback *callback)
Implements HTTPCache::Find().
WriteThroughHTTPCache(CacheInterface *cache1, CacheInterface *cache2, Timer *timer, Hasher *hasher, Statistics *statistics)
Takes ownership of both caches passed in.
virtual void RememberFetchDropped(const GoogleString &key, const GoogleString &fragment, MessageHandler *handler)
Implements HTTPCache::RememberFetchDropped().
virtual void set_max_cacheable_response_content_length(int64 value)
Implements HTTPCache::set_max_cacheable_response_content_length().
virtual void set_remember_fetch_dropped_ttl_seconds(int64 value)
Implements HTTPCache::set_remember_fetch_dropped_ttl_seconds();.
virtual void PutInternal(const GoogleString &key, const GoogleString &fragment, int64 start_us, HTTPValue *value)
Implements HTTPCache::PutInternal().
virtual void set_remember_fetch_failed_ttl_seconds(int64 value)
Implements HTTPCache::set_remember_fetch_failed_ttl_seconds().
virtual void set_disable_html_caching_on_https(bool x)
Implements HTTPCache::set_disable_html_caching_on_https().
Definition: http_cache.h:87
virtual void set_force_caching(bool force)
Implements HTTPCache::set_force_caching().
virtual void RememberFetchFailed(const GoogleString &key, const GoogleString &fragment, MessageHandler *handler)
Implements HTTPCache::RememberFetchFailed().
Definition: http_cache.h:46