19 #ifndef NET_INSTAWEB_AUTOMATIC_PUBLIC_FLUSH_EARLY_FLOW_H_
20 #define NET_INSTAWEB_AUTOMATIC_PUBLIC_FLUSH_EARLY_FLOW_H_
27 namespace net_instaweb {
33 class ProxyFetchPropertyCallbackCollector;
34 class ProxyFetchFactory;
47 static const char kNumRequestsFlushedEarly[];
48 static const char kNumResourcesFlushedEarly[];
49 static const char kFlushEarlyRewriteLatencyMs[];
50 static const char kNumFlushEarlyHttpStatusCodeDeemedUnstable[];
51 static const char kNumFlushEarlyRequestsRedirected[];
52 static const char kRedirectPageJs[];
55 const GoogleString& url,
61 static void InitStats(Statistics* stats);
66 class FlushEarlyAsyncFetch;
76 FlushEarlyAsyncFetch* flush_early_fetch,
82 void GenerateResponseHeaders(
const FlushEarlyInfo& flush_early_info);
87 void FlushEarlyRewriteDone(int64 start_time_ms,
90 void Write(
const StringPiece& val);
93 GoogleString dummy_head_;
94 StringWriter dummy_head_writer_;
95 int num_resources_flushed_;
96 int num_rewritten_resources_;
97 int64 average_fetch_time_;
100 FlushEarlyAsyncFetch* flush_early_fetch_;
105 bool should_flush_early_lazyload_script_;
106 MessageHandler* handler_;
107 bool is_mobile_user_agent_;
109 TimedVariable* num_requests_flushed_early_;
110 TimedVariable* num_resources_flushed_early_;
111 TimedVariable* num_flush_early_http_status_code_deemed_unstable_;
112 Histogram* flush_early_rewrite_latency_ms_;
Definition: flush_early_flow.h:45
Definition: proxy_fetch.h:178
Definition: async_fetch.h:53
Definition: rewrite_driver.h:98
Definition: server_context.h:100
Definition: proxy_fetch.h:62