Page Speed Optimization Libraries  1.7.30.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions
net_instaweb::UrlNamer Class Reference

#include "url_namer.h"

Inheritance diagram for net_instaweb::UrlNamer:
net_instaweb::ProxyUrlNamer net_instaweb::TestUrlNamer

List of all members.

Public Types

enum  EncodeOption { kSharded, kUnsharded }

Public Member Functions

virtual GoogleString Encode (const RewriteOptions *rewrite_options, const OutputResource &output_resource, EncodeOption encode_option) const
virtual bool Decode (const GoogleUrl &request_url, GoogleUrl *owner_domain, GoogleString *decoded) const
virtual bool IsAuthorized (const GoogleUrl &request_url, const RewriteOptions &options) const
virtual void ConfigureCustomOptions (const RequestHeaders &request_headers, RewriteOptions *options) const
 Configure custom options. Note that options may be NULL.
virtual bool ProxyMode () const
virtual bool IsProxyEncoded (const GoogleUrl &url) const
virtual bool ResolveToOriginUrl (const RewriteOptions &options, const StringPiece &referer_url_str, GoogleUrl *request_url) const
const GoogleString & get_proxy_domain ()
void set_proxy_domain (const GoogleString proxy_domain)

Detailed Description

Provides an overridable URL naming interface. This isolation layer allows us to override the rules for converting the original URL of a rewritten resource to something other than the default. The default implementation performs sharding and adds to the leaf name: '.pagespeed.<filter>.<hash>.<extension>'


Member Function Documentation

virtual bool net_instaweb::UrlNamer::Decode ( const GoogleUrl &  request_url,
GoogleUrl *  owner_domain,
GoogleString *  decoded 
) const [virtual]

Given the request_url, generate the original url. If the URL naming syntax supports an "owner" domain, and 'owner_domain' is non-null, then this method writes the owner domain into that pointer.

Returns 'false' if request_url was not encoded via this namer.

Note: the default implementation always returns false.

Reimplemented in net_instaweb::ProxyUrlNamer, and net_instaweb::TestUrlNamer.

virtual GoogleString net_instaweb::UrlNamer::Encode ( const RewriteOptions rewrite_options,
const OutputResource output_resource,
EncodeOption  encode_option 
) const [virtual]

Given an output resource and an optional set of options, generate the URL that will be embedded in the rewritten page.

encode_options is used to determine whether sharding is applied in this encoding.

Note: the default implementation returns the url of the output resource.

Reimplemented in net_instaweb::TestUrlNamer.

virtual bool net_instaweb::UrlNamer::IsAuthorized ( const GoogleUrl &  request_url,
const RewriteOptions options 
) const [virtual]

Determines whether the provided request URL is authorized given the RewriteOptions.

The default implementation uses the domain lawyer in the options.

Reimplemented in net_instaweb::ProxyUrlNamer.

virtual bool net_instaweb::UrlNamer::IsProxyEncoded ( const GoogleUrl &  url) const [inline, virtual]

Determines whether the specified URL has been mapped to that central proxy domain.

Reimplemented in net_instaweb::TestUrlNamer.

virtual bool net_instaweb::UrlNamer::ProxyMode ( ) const [inline, virtual]

Determines whether the naming policy incorporates proxying resources using a central proxy domain.

Reimplemented in net_instaweb::TestUrlNamer.

virtual bool net_instaweb::UrlNamer::ResolveToOriginUrl ( const RewriteOptions options,
const StringPiece &  referer_url_str,
GoogleUrl *  request_url 
) const [virtual]

Resolve the given url to origin url based on the rewrite options and referer information. Returns true if the url is updated.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines