Page Speed Optimization Libraries  1.9.32.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
apache_rewrite_driver_factory.h
Go to the documentation of this file.
1 // Copyright 2010 Google Inc.
17 
18 #ifndef NET_INSTAWEB_APACHE_APACHE_REWRITE_DRIVER_FACTORY_H_
19 #define NET_INSTAWEB_APACHE_APACHE_REWRITE_DRIVER_FACTORY_H_
20 
25 #include "pagespeed/kernel/base/basictypes.h"
26 #include "pagespeed/kernel/base/scoped_ptr.h"
27 #include "pagespeed/kernel/base/string.h"
28 #include "pagespeed/kernel/base/string_util.h"
29 
30 struct apr_pool_t;
31 struct server_rec;
32 
33 namespace net_instaweb {
34 
35 class ApacheMessageHandler;
36 class ApacheServerContext;
37 class MessageHandler;
38 class ModSpdyFetchController;
39 class ProcessContext;
40 class ServerContext;
41 class SharedCircularBuffer;
42 class SlowWorker;
43 class Statistics;
44 class Timer;
45 
48  public:
49  ApacheRewriteDriverFactory(const ProcessContext& process_context,
50  server_rec* server, const StringPiece& version);
51  virtual ~ApacheRewriteDriverFactory();
52 
58  return apache_message_handler_;
59  }
60 
61  virtual void ChildInit();
62 
63  virtual void NonStaticInitStats(Statistics* statistics) {
64  InitStats(statistics);
65  }
66 
67  ApacheServerContext* MakeApacheServerContext(server_rec* server);
68 
70  bool inherit_vhost_config() const {
71  return inherit_vhost_config_;
72  }
73 
74  void set_inherit_vhost_config(bool x) {
75  inherit_vhost_config_ = x;
76  }
77 
81  bool PoolDestroyed(ApacheServerContext* rm);
82 
83  virtual ApacheConfig* NewRewriteOptions();
84 
87  virtual ApacheConfig* NewRewriteOptionsForQuery();
88 
92  static void InitStats(Statistics* statistics);
93  static void Initialize();
94  static void Terminate();
95 
96  ModSpdyFetchController* mod_spdy_fetch_controller() {
97  return mod_spdy_fetch_controller_.get();
98  }
99 
101  virtual void set_message_buffer_size(int x) {
102  SystemRewriteDriverFactory::set_message_buffer_size(x);
103  }
104 
105  virtual bool IsServerThreaded();
106  virtual int LookupThreadLimit();
107 
108  protected:
110  virtual MessageHandler* DefaultHtmlParseMessageHandler();
111  virtual MessageHandler* DefaultMessageHandler();
112  virtual Timer* DefaultTimer();
113  virtual void SetupCaches(ServerContext* server_context);
114 
117  virtual bool ShouldWriteResourcesToFileSystem() { return false; }
118 
119  virtual void ParentOrChildInit();
120 
121  virtual void SetupMessageHandlers();
122  virtual void ShutDownMessageHandlers();
123  virtual void ShutDownFetchers();
124 
125  virtual void SetCircularBuffer(SharedCircularBuffer* buffer);
126 
128 
129  virtual void AutoDetectThreadCounts();
130 
131  private:
132 
133  apr_pool_t* pool_;
134  server_rec* server_rec_;
135  scoped_ptr<SlowWorker> slow_worker_;
136 
141  GoogleString version_;
142 
148  ApacheMessageHandler* apache_message_handler_;
153  ApacheMessageHandler* apache_html_parse_message_handler_;
154 
156  bool inherit_vhost_config_;
157 
159  int max_mod_spdy_fetch_threads_;
160 
162  scoped_ptr<ModSpdyFetchController> mod_spdy_fetch_controller_;
163 
164  DISALLOW_COPY_AND_ASSIGN(ApacheRewriteDriverFactory);
165 };
166 
167 }
168 
169 #endif
virtual ApacheConfig * NewRewriteOptionsForQuery()
bool PoolDestroyed(ApacheServerContext *rm)
virtual bool ShouldWriteResourcesToFileSystem()
Definition: apache_rewrite_driver_factory.h:117
virtual void NonStaticInitStats(Statistics *statistics)
Definition: apache_rewrite_driver_factory.h:63
A server context with features specific to a psol port on a unix system.
Definition: system_rewrite_driver_factory.h:54
Definition: apache_server_context.h:49
Definition: apache_message_handler.h:37
static void InitStats(Statistics *statistics)
virtual void set_message_buffer_size(int x)
Needed by mod_instaweb.cc:ParseDirective().
Definition: apache_rewrite_driver_factory.h:101
virtual ApacheConfig * NewRewriteOptions()
virtual ServerContext * NewDecodingServerContext()
Definition: server_context.h:101
Definition: process_context.h:35
virtual void SetupCaches(ServerContext *server_context)
Statistics * statistics()
Definition: rewrite_driver_factory.h:242
Creates an Apache RewriteDriver.
Definition: apache_rewrite_driver_factory.h:47
ApacheMessageHandler * apache_message_handler()
Definition: apache_rewrite_driver_factory.h:57
virtual MessageHandler * DefaultHtmlParseMessageHandler()
Provide defaults.
bool inherit_vhost_config() const
If true, virtual hosts should inherit global configuration.
Definition: apache_rewrite_driver_factory.h:70