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

#include "static_rewriter.h"

Inheritance diagram for net_instaweb::FileRewriter:

Public Member Functions

 FileRewriter (const ProcessContext &process_context, const RewriteGflags *gflags, bool echo_errors_to_stdout)
virtual NamedLockManagerDefaultLockManager ()
virtual RewriteOptionsNewRewriteOptions ()
virtual HasherNewHasher ()
virtual UrlAsyncFetcherDefaultAsyncUrlFetcher ()
virtual MessageHandlerDefaultHtmlParseMessageHandler ()
virtual MessageHandlerDefaultMessageHandler ()
virtual FileSystemDefaultFileSystem ()
virtual void SetupCaches (ServerContext *server_context)
virtual Statisticsstatistics ()
virtual ServerContextNewServerContext ()
virtual ServerContextNewDecodingServerContext ()
virtual bool UseBeaconResultsInFilters () const
- Public Member Functions inherited from net_instaweb::RewriteDriverFactory
 RewriteDriverFactory (const ProcessContext &process_context, ThreadSystem *thread_system)
 Takes ownership of thread_system.
void InitializeDefaultOptions ()
void set_html_parse_message_handler (MessageHandler *message_handler)
void set_message_handler (MessageHandler *message_handler)
void set_file_system (FileSystem *file_system)
void set_hasher (Hasher *hasher)
void set_nonce_generator (NonceGenerator *nonce_generator)
void set_url_namer (UrlNamer *url_namer)
void set_signature (SHA1Signature *signature)
void set_timer (Timer *timer)
void set_usage_data_reporter (UsageDataReporter *reporter)
void set_slurp_directory (const StringPiece &directory)
void set_slurp_read_only (bool read_only)
void set_slurp_print_urls (bool read_only)
void set_force_caching (bool u)
void set_base_url_async_fetcher (UrlAsyncFetcher *url_fetcher)
bool set_filename_prefix (StringPiece p)
bool slurping_enabled () const
 Determines whether Slurping is enabled.
MessageHandlerhtml_parse_message_handler ()
MessageHandlermessage_handler ()
FileSystemfile_system ()
NonceGeneratornonce_generator ()
Hasherhasher ()
UrlNamerurl_namer ()
UserAgentMatcheruser_agent_matcher ()
StaticAssetManagerstatic_asset_manager ()
SHA1Signaturesignature ()
RewriteOptionsdefault_options ()
virtual RewriteOptionsManagerNewRewriteOptionsManager ()
Timertimer ()
NamedLockManagerlock_manager ()
QueuedWorkerPoolWorkerPool (WorkerPoolCategory pool)
Schedulerscheduler ()
UsageDataReporterusage_data_reporter ()
js_tokenizer_patterns () const
const std::vector< const
UserAgentNormalizer * > & 
user_agent_normalizers ()
virtual UrlAsyncFetcherComputeUrlAsyncFetcher ()
ServerContextCreateServerContext ()
void InitServerContext (ServerContext *server_context)
virtual void AddPlatformSpecificRewritePasses (RewriteDriver *driver)
virtual void AddPlatformSpecificDecodingPasses (RewriteDriver *driver)
virtual void ApplyPlatformSpecificConfiguration (RewriteDriver *driver)
ThreadSystemthread_system ()
const StringSet & created_directories () const
bool async_rewrites ()
RewriteStatsrewrite_stats ()
virtual bool HasWaveforms () const
 Returns true if the server supports waveforms in its status page.
Statisticsstatistics ()
void SetStatistics (Statistics *stats)
 Does not take ownership of Statistics.
virtual void ShutDown ()
void AddCreatedDirectory (const GoogleString &dir)
 Registers the directory as having been created by us.
virtual RewriteOptionsNewRewriteOptionsForQuery ()
const GoogleStringversion_string () const
 get/set the version placed into the X-[Mod-]Page(s|-S)peed header.
void set_version_string (const StringPiece &version_string)
void defer_cleanup (Function *f)
template<class T >
void TakeOwnership (T *obj)
virtual bool IsDebugClient (const GoogleString &ip) const
 Base method that returns true if the given ip is a debug ip.
virtual ExperimentMatcherNewExperimentMatcher ()

Additional Inherited Members

- Public Types inherited from net_instaweb::RewriteDriverFactory
enum  WorkerPoolCategory { kHtmlWorkers, kRewriteWorkers, kLowPriorityRewriteWorkers, kNumWorkerPools }
- Static Public Member Functions inherited from net_instaweb::RewriteDriverFactory
static void InitializeDefaultOptions (RewriteOptions *options)
static void InitStats (Statistics *statistics)
static void Initialize ()
 Initializes static variables. Initialize/Terminate calls must be paired.
static void Terminate ()
- Protected Member Functions inherited from net_instaweb::RewriteDriverFactory
bool FetchersComputed () const
virtual void StopCacheActivity ()
StringPiece filename_prefix ()
bool TerminateServerContext (ServerContext *server_context)
virtual NonceGeneratorDefaultNonceGenerator ()
virtual TimerDefaultTimer ()
virtual SHA1SignatureDefaultSignature ()
virtual CriticalImagesFinderDefaultCriticalImagesFinder (ServerContext *server_context)
virtual CriticalSelectorFinderDefaultCriticalSelectorFinder (ServerContext *server_context)
virtual UrlNamerDefaultUrlNamer ()
virtual UserAgentMatcherDefaultUserAgentMatcher ()
virtual UsageDataReporterDefaultUsageDataReporter ()
virtual void AddPlatformSpecificUserAgentNormalizers (std::vector< const UserAgentNormalizer * > *out)
virtual QueuedWorkerPoolCreateWorkerPool (WorkerPoolCategory pool, StringPiece name)
virtual int LowPriorityLoadSheddingThreshold () const
virtual SchedulerCreateScheduler ()
virtual void FetcherSetupHooks ()
 Called before creating the url fetchers.
virtual StringPiece LockFilePrefix ()
virtual void InitStaticAssetManager (StaticAssetManager *static_asset_manager)
 Initializes the StaticAssetManager.
void InitStubDecodingServerContext (ServerContext *context)
virtual std::shared_ptr
< CentralController
GetCentralController (NamedLockManager *lock_manager)
void RebuildDecodingDriverForTests (ServerContext *server_context)
 For use in tests.
void reset_default_options (RewriteOptions *new_defaults)

Detailed Description

Implements a baseline RewriteDriverFactory with the simplest possible options for cache, fetchers, & system interface.

TODO(jmarantz): fill out enough functionality so that this will be a functional static rewriter that could optimize an HTML file passed as a command-line parameter or via stdin.

Member Function Documentation

virtual UrlAsyncFetcher* net_instaweb::FileRewriter::DefaultAsyncUrlFetcher ( )

Implementors of RewriteDriverFactory must supply default definitions for each of these methods, although they may be overridden via set_ methods above. These methods all instantiate objects and transfer ownership to the caller.

Implements net_instaweb::RewriteDriverFactory.

virtual NamedLockManager* net_instaweb::FileRewriter::DefaultLockManager ( )

They may also supply a custom lock manager. The default implementation will use the file system.

Reimplemented from net_instaweb::RewriteDriverFactory.

virtual ServerContext* net_instaweb::FileRewriter::NewDecodingServerContext ( )

Create a new ServerContext used for decoding only. Unlike NewServerContext, the resulting ServerContext should not be fresh, but should have some of its platform dependencies injected — but just enough for decoding URLs, and not full operation. At the time of writing it needs the timer, url namer, hasher, message handler, and stats; expensive stuff like cache backends is not needed, however.

You may find InitStubDecodingServerContext() useful for doing that, as it will inject all of these from what's available in 'this'.

Implements net_instaweb::RewriteDriverFactory.

virtual RewriteOptions* net_instaweb::FileRewriter::NewRewriteOptions ( )

Creates a new empty RewriteOptions object, with no default settings. Generally configurations go factory's default_options() -> ServerContext::global_options() -> RewriteDriverFactory, but this method just provides a blank set of options.

Reimplemented from net_instaweb::RewriteDriverFactory.

virtual ServerContext* net_instaweb::FileRewriter::NewServerContext ( )

Creates a new ServerContext* object. ServerContext itself must be overridden per Factory as it has at least one pure virtual method.

Implements net_instaweb::RewriteDriverFactory.

virtual void net_instaweb::FileRewriter::SetupCaches ( ServerContext server_context)

Called from InitServerContext, but virtualized separately as it is platform-specific. This method must call on the server context: set_http_cache, set_metadata_cache, set_filesystem_metadata_cache, and MakePropertyCaches.

Implements net_instaweb::RewriteDriverFactory.

virtual bool net_instaweb::FileRewriter::UseBeaconResultsInFilters ( ) const

Returns true if this platform uses beacon-based measurements to make run-time decisions. This is used to determine how to configure various beacon-based filters.

Implements net_instaweb::RewriteDriverFactory.

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