Page Speed Optimization Libraries  1.12.34.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
net_instaweb::RateControllingUrlAsyncFetcher Class Reference

#include "rate_controlling_url_async_fetcher.h"

Inheritance diagram for net_instaweb::RateControllingUrlAsyncFetcher:
net_instaweb::UrlAsyncFetcher

Public Member Functions

 RateControllingUrlAsyncFetcher (UrlAsyncFetcher *fetcher, int max_global_queue_size, int per_host_outgoing_request_threshold, int per_host_queued_request_threshold, ThreadSystem *thread_system, Statistics *statistics)
 
virtual bool SupportsHttps () const
 
virtual void Fetch (const GoogleString &url, MessageHandler *message_handler, AsyncFetch *fetch)
 
virtual void ShutDown ()
 
- Public Member Functions inherited from net_instaweb::UrlAsyncFetcher
virtual int64 timeout_ms ()
 
void set_fetch_with_gzip (bool x)
 
bool fetch_with_gzip () const
 
AsyncFetchEnableInflation (AsyncFetch *fetch) const
 

Additional Inherited Members

- Static Public Attributes inherited from net_instaweb::UrlAsyncFetcher
static const int64 kUnspecifiedTimeout
 
- Protected Member Functions inherited from net_instaweb::UrlAsyncFetcher
 UrlAsyncFetcher ()
 

Detailed Description

Fetcher that uses RateController to limit amount of background fetches we direct to a fetcher it wraps per domain. See RateController documentation for more details.

Constructor & Destructor Documentation

net_instaweb::RateControllingUrlAsyncFetcher::RateControllingUrlAsyncFetcher ( UrlAsyncFetcher fetcher,
int  max_global_queue_size,
int  per_host_outgoing_request_threshold,
int  per_host_queued_request_threshold,
ThreadSystem thread_system,
Statistics statistics 
)

Does not take ownership of 'fetcher'. RateController::InitStats must have been called during stats initialization phase.

Member Function Documentation

virtual void net_instaweb::RateControllingUrlAsyncFetcher::Fetch ( const GoogleString url,
MessageHandler message_handler,
AsyncFetch fetch 
)
virtual

Asynchronously fetch a URL, set the response headers and stream the contents to fetch and call fetch->Done() when the fetch finishes.

There is an unchecked contract that response_headers are set before the response_writer or callback are used. Caution, several implementations do not satisfy this contract (but should).

Todo:

TODO(sligocki): GoogleString -> GoogleUrl or at least StringPiece.

TODO(sligocki): Include the URL in the fetch, like the request headers.

Implements net_instaweb::UrlAsyncFetcher.

virtual void net_instaweb::RateControllingUrlAsyncFetcher::ShutDown ( )
virtual

Stops all active fetches and prevents further fetches from starting, calling back to ->Done(false).

Base-class implementation is empty for forward compatibility.

Reimplemented from net_instaweb::UrlAsyncFetcher.

virtual bool net_instaweb::RateControllingUrlAsyncFetcher::SupportsHttps ( ) const
inlinevirtual

Determine if the fetcher supports fetching using HTTPS. By default we assume a fetcher can.

Reimplemented from net_instaweb::UrlAsyncFetcher.


The documentation for this class was generated from the following file: