17 #ifndef NET_INSTAWEB_SYSTEM_PUBLIC_SYSTEM_REWRITE_OPTIONS_H_
18 #define NET_INSTAWEB_SYSTEM_PUBLIC_SYSTEM_REWRITE_OPTIONS_H_
25 namespace net_instaweb {
33 static void Initialize();
34 static void Terminate();
37 ThreadSystem* thread_system);
41 int64 file_cache_clean_interval_ms()
const {
42 return file_cache_clean_interval_ms_.value();
44 bool has_file_cache_clean_interval_ms()
const {
45 return file_cache_clean_interval_ms_.was_set();
47 void set_file_cache_clean_interval_ms(int64 x) {
50 int64 file_cache_clean_size_kb()
const {
51 return file_cache_clean_size_kb_.value();
53 bool has_file_cache_clean_size_kb()
const {
54 return file_cache_clean_size_kb_.was_set();
56 void set_file_cache_clean_size_kb(int64 x) {
59 int64 file_cache_clean_inode_limit()
const {
60 return file_cache_clean_inode_limit_.value();
62 bool has_file_cache_clean_inode_limit()
const {
63 return file_cache_clean_inode_limit_.was_set();
65 void set_file_cache_clean_inode_limit(int64 x) {
68 int64 lru_cache_byte_limit()
const {
69 return lru_cache_byte_limit_.value();
71 void set_lru_cache_byte_limit(int64 x) {
74 int64 lru_cache_kb_per_process()
const {
75 return lru_cache_kb_per_process_.value();
77 void set_lru_cache_kb_per_process(int64 x) {
80 bool use_shared_mem_locking()
const {
81 return use_shared_mem_locking_.value();
83 void set_use_shared_mem_locking(
bool x) {
86 bool compress_metadata_cache()
const {
87 return compress_metadata_cache_.value();
89 void set_compress_metadata_cache(
bool x) {
92 bool statistics_enabled()
const {
93 return statistics_enabled_.value();
95 void set_statistics_enabled(
bool x) {
98 bool statistics_logging_enabled()
const {
99 return statistics_logging_enabled_.value();
101 void set_statistics_logging_enabled(
bool x) {
104 int64 statistics_logging_max_file_size_kb()
const {
105 return statistics_logging_max_file_size_kb_.value();
107 const GoogleString& statistics_logging_charts_css()
const {
108 return statistics_logging_charts_css_.value();
110 const GoogleString& statistics_logging_charts_js()
const {
111 return statistics_logging_charts_js_.value();
113 int64 statistics_logging_interval_ms()
const {
114 return statistics_logging_interval_ms_.value();
116 void set_statistics_logging_interval_ms(int64 x) {
117 set_option(x, &statistics_logging_interval_ms_);
119 const GoogleString& file_cache_path()
const {
120 return file_cache_path_.value();
122 void set_file_cache_path(
const GoogleString& x) {
125 const GoogleString& log_dir()
const {
return log_dir_.value(); }
126 void set_log_dir(
const GoogleString& x) {
set_option(x, &log_dir_); }
127 const GoogleString& memcached_servers()
const {
128 return memcached_servers_.value();
130 void set_memcached_servers(
const GoogleString& x) {
133 int memcached_threads()
const {
134 return memcached_threads_.value();
136 void set_memcached_threads(
int x) {
139 int memcached_timeout_us()
const {
140 return memcached_timeout_us_.value();
142 bool has_memcached_timeout_us()
const {
143 return memcached_timeout_us_.was_set();
145 void set_memcached_timeout_us(
int x) {
148 const GoogleString& fetcher_proxy()
const {
149 return fetcher_proxy_.value();
151 void set_fetcher_proxy(
const GoogleString& x) {
157 set_option(num_seconds, &cache_flush_poll_interval_sec_);
159 int64 cache_flush_poll_interval_sec()
const {
160 return cache_flush_poll_interval_sec_.value();
162 void set_cache_flush_filename(
const StringPiece& sp) {
163 set_option(sp.as_string(), &cache_flush_filename_);
165 const GoogleString& cache_flush_filename()
const {
166 return cache_flush_filename_.value();
169 const GoogleString& https_options()
const {
170 return https_options_.value();
172 const GoogleString& ssl_cert_directory()
const {
173 return ssl_cert_directory_.value();
175 const GoogleString& ssl_cert_file()
const {
176 return ssl_cert_file_.value();
179 int64 slurp_flush_limit()
const {
180 return slurp_flush_limit_.value();
182 void set_slurp_flush_limit(int64 x) {
185 bool slurp_read_only()
const {
186 return slurp_read_only_.value();
188 void set_slurp_read_only(
bool x) {
191 bool rate_limit_background_fetches()
const {
192 return rate_limit_background_fetches_.value();
194 const GoogleString& slurp_directory()
const {
195 return slurp_directory_.value();
197 void set_slurp_directory(GoogleString x) {
200 bool disable_loopback_routing()
const {
201 return disable_loopback_routing_.value();
203 bool fetch_with_gzip()
const {
204 return fetch_with_gzip_.value();
206 int64 ipro_max_response_bytes()
const {
207 return ipro_max_response_bytes_.value();
209 int64 ipro_max_concurrent_recordings()
const {
210 return ipro_max_concurrent_recordings_.value();
212 int64 default_shared_memory_cache_kb()
const {
213 return default_shared_memory_cache_kb_.value();
215 void set_default_shared_memory_cache_kb(int64 x) {
216 set_option(x, &default_shared_memory_cache_kb_);
218 void set_purge_method(
const GoogleString& x) {
221 const GoogleString& purge_method()
const {
return purge_method_.value(); }
227 return test_proxy_.value();
229 void set_test_proxy(
bool x) {
240 return test_proxy_slurp_.value();
245 return !slurp_directory().empty();
248 bool slurping_enabled_read_only()
const {
252 virtual SystemRewriteOptions*
Clone()
const;
253 virtual SystemRewriteOptions*
NewOptions()
const;
258 const RewriteOptions* instance);
259 static SystemRewriteOptions*
DynamicCast(RewriteOptions* instance);
265 void set_description(
const StringPiece& x) { x.CopyToString(&description_); }
270 class HttpsOptions :
public Option<GoogleString> {
272 virtual bool SetFromString(StringPiece value_string,
273 GoogleString* error_detail);
278 static Properties* system_properties_;
282 template<
class OptionClass>
283 static void AddSystemProperty(
typename OptionClass::ValueType default_value,
284 OptionClass SystemRewriteOptions::*offset,
286 StringPiece option_name,
288 bool safe_to_print) {
290 safe_to_print, system_properties_);
293 template<
class OptionClass>
294 static void AddSystemProperty(
typename OptionClass::ValueType default_value,
295 OptionClass SystemRewriteOptions::*offset,
297 StringPiece option_name,
300 bool safe_to_print) {
301 AddProperty(default_value, offset,
id, option_name, scope, help,
302 safe_to_print, system_properties_);
305 static void AddProperties();
308 GoogleString description_;
310 Option<GoogleString> fetcher_proxy_;
311 Option<GoogleString> file_cache_path_;
312 Option<GoogleString> log_dir_;
316 Option<GoogleString> memcached_servers_;
317 Option<GoogleString> statistics_logging_charts_css_;
318 Option<GoogleString> statistics_logging_charts_js_;
319 Option<GoogleString> cache_flush_filename_;
320 Option<GoogleString> ssl_cert_directory_;
321 Option<GoogleString> ssl_cert_file_;
322 HttpsOptions https_options_;
324 Option<GoogleString> slurp_directory_;
325 Option<GoogleString> test_proxy_slurp_;
327 Option<bool> statistics_enabled_;
328 Option<bool> statistics_logging_enabled_;
329 Option<bool> use_shared_mem_locking_;
330 Option<bool> compress_metadata_cache_;
332 Option<bool> slurp_read_only_;
333 Option<bool> test_proxy_;
334 Option<bool> rate_limit_background_fetches_;
338 Option<bool> disable_loopback_routing_;
343 Option<bool> fetch_with_gzip_;
345 Option<int> memcached_threads_;
346 Option<int> memcached_timeout_us_;
348 Option<int64> file_cache_clean_inode_limit_;
349 Option<int64> file_cache_clean_interval_ms_;
350 Option<int64> file_cache_clean_size_kb_;
351 Option<int64> lru_cache_byte_limit_;
352 Option<int64> lru_cache_kb_per_process_;
353 Option<int64> statistics_logging_interval_ms_;
356 Option<int64> cache_flush_poll_interval_sec_;
357 Option<int64> statistics_logging_max_file_size_kb_;
358 Option<int64> slurp_flush_limit_;
359 Option<int64> ipro_max_response_bytes_;
360 Option<int64> ipro_max_concurrent_recordings_;
361 Option<int64> default_shared_memory_cache_kb_;
362 Option<GoogleString> purge_method_;
364 DISALLOW_COPY_AND_ASSIGN(SystemRewriteOptions);
static const SystemRewriteOptions * DynamicCast(const RewriteOptions *instance)
static void AddProperty(typename OptionClass::ValueType default_value, OptionClass RewriteOptionsSubclass::*offset, const char *id, StringPiece option_name, OptionScope scope, const char *help_text, bool safe_to_print, Properties *properties)
Adds a new Property to 'properties' (the last argument).
Definition: rewrite_options.h:2829
void set_cache_flush_poll_interval_sec(int64 num_seconds)
Cache flushing configuration.
Definition: system_rewrite_options.h:156
GoogleString test_proxy_slurp() const
Definition: system_rewrite_options.h:239
StringPiece description() const
Definition: system_rewrite_options.h:264
bool slurping_enabled() const
Helper functions.
Definition: system_rewrite_options.h:244
Definition: system_rewrite_options.h:31
OptionScope
Definition: rewrite_options.h:476
void set_option(const T &new_value, OptionTemplateBase< T > *option)
Definition: rewrite_options.h:2875
virtual SystemRewriteOptions * NewOptions() const
Make an empty options object of the same type as this.
customized at server level (e.g. VirtualHost)
Definition: rewrite_options.h:480
virtual SystemRewriteOptions * Clone() const
Definition: rewrite_options.h:81
bool test_proxy() const
Definition: system_rewrite_options.h:226