colouringcode-passenger 0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/DEVELOPERS.TXT +101 -0
- data/INSTALL +6 -0
- data/LICENSE +19 -0
- data/NEWS +174 -0
- data/README +59 -0
- data/Rakefile +921 -0
- data/benchmark/ApplicationPool.cpp +52 -0
- data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +126 -0
- data/benchmark/dispatcher.rb +42 -0
- data/benchmark/overhead_of_password_checking.rb +81 -0
- data/benchmark/socket_connections_vs_persistent_pipe.rb +99 -0
- data/benchmark/unix_sockets_vs_pipes.rb +83 -0
- data/bin/passenger-config +46 -0
- data/bin/passenger-install-apache2-module +223 -0
- data/bin/passenger-install-nginx-module +472 -0
- data/bin/passenger-make-enterprisey +83 -0
- data/bin/passenger-memory-stats +301 -0
- data/bin/passenger-spawn-server +68 -0
- data/bin/passenger-status +125 -0
- data/bin/passenger-stress-test +344 -0
- data/debian/compat +1 -0
- data/debian/control +21 -0
- data/debian/postinst +24 -0
- data/debian/prerm +2 -0
- data/doc/ApplicationPool algorithm.txt +402 -0
- data/doc/Architectural overview.html +1 -0
- data/doc/Architectural overview.txt +334 -0
- data/doc/Doxyfile +241 -0
- data/doc/Security of user switching support.html +1 -0
- data/doc/Security of user switching support.txt +197 -0
- data/doc/Users guide Apache.html +1 -0
- data/doc/Users guide Apache.txt +1848 -0
- data/doc/Users guide Nginx.html +1 -0
- data/doc/Users guide Nginx.txt +769 -0
- data/doc/definitions.h +5 -0
- data/doc/images/by_sa.png +0 -0
- data/doc/images/conservative_spawning.png +0 -0
- data/doc/images/conservative_spawning.svg +248 -0
- data/doc/images/icons/README +5 -0
- data/doc/images/icons/callouts/1.png +0 -0
- data/doc/images/icons/callouts/10.png +0 -0
- data/doc/images/icons/callouts/11.png +0 -0
- data/doc/images/icons/callouts/12.png +0 -0
- data/doc/images/icons/callouts/13.png +0 -0
- data/doc/images/icons/callouts/14.png +0 -0
- data/doc/images/icons/callouts/15.png +0 -0
- data/doc/images/icons/callouts/2.png +0 -0
- data/doc/images/icons/callouts/3.png +0 -0
- data/doc/images/icons/callouts/4.png +0 -0
- data/doc/images/icons/callouts/5.png +0 -0
- data/doc/images/icons/callouts/6.png +0 -0
- data/doc/images/icons/callouts/7.png +0 -0
- data/doc/images/icons/callouts/8.png +0 -0
- data/doc/images/icons/callouts/9.png +0 -0
- data/doc/images/icons/caution.png +0 -0
- data/doc/images/icons/example.png +0 -0
- data/doc/images/icons/home.png +0 -0
- data/doc/images/icons/important.png +0 -0
- data/doc/images/icons/next.png +0 -0
- data/doc/images/icons/note.png +0 -0
- data/doc/images/icons/prev.png +0 -0
- data/doc/images/icons/tip.png +0 -0
- data/doc/images/icons/up.png +0 -0
- data/doc/images/icons/warning.png +0 -0
- data/doc/images/passenger_architecture.png +0 -0
- data/doc/images/passenger_architecture.svg +401 -0
- data/doc/images/phusion_banner.png +0 -0
- data/doc/images/smart-lv2.png +0 -0
- data/doc/images/smart-lv2.svg +320 -0
- data/doc/images/spawn_server_architecture.png +0 -0
- data/doc/images/spawn_server_architecture.svg +655 -0
- data/doc/images/typical_isolated_web_application.png +0 -0
- data/doc/images/typical_isolated_web_application.svg +213 -0
- data/doc/rdoc/classes/ConditionVariable.html +194 -0
- data/doc/rdoc/classes/Exception.html +120 -0
- data/doc/rdoc/classes/GC.html +113 -0
- data/doc/rdoc/classes/IO.html +169 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +153 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +517 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +97 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +96 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +97 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +96 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +719 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +598 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html +138 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +317 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +140 -0
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +154 -0
- data/doc/rdoc/classes/PhusionPassenger/Application.html +283 -0
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +172 -0
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +145 -0
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +181 -0
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +141 -0
- data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +92 -0
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +489 -0
- data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +350 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +188 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +199 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack.html +91 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html +98 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +438 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +200 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html +98 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +436 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +155 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz.html +95 -0
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +402 -0
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +125 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +169 -0
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +803 -0
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +140 -0
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +188 -0
- data/doc/rdoc/classes/PhusionPassenger/WSGI.html +89 -0
- data/doc/rdoc/classes/PhusionPassenger.html +238 -0
- data/doc/rdoc/classes/PlatformInfo.html +866 -0
- data/doc/rdoc/classes/RakeExtensions.html +197 -0
- data/doc/rdoc/classes/Signal.html +131 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/DEVELOPERS_TXT.html +255 -0
- data/doc/rdoc/files/README.html +175 -0
- data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +92 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +129 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +129 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +128 -0
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +130 -0
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +134 -0
- data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +120 -0
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +127 -0
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +133 -0
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +125 -0
- data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +140 -0
- data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +145 -0
- data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +125 -0
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +159 -0
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +174 -0
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +129 -0
- data/doc/rdoc/files/misc/rake/extensions_rb.html +130 -0
- data/doc/rdoc/fr_class_index.html +91 -0
- data/doc/rdoc/fr_file_index.html +76 -0
- data/doc/rdoc/fr_method_index.html +205 -0
- data/doc/rdoc/index.html +26 -0
- data/doc/rdoc/rdoc-style.css +187 -0
- data/doc/template/horo.rb +613 -0
- data/doc/users_guide_snippets/analysis_and_system_maintenance_tools.txt +144 -0
- data/doc/users_guide_snippets/appendix_a_about.txt +13 -0
- data/doc/users_guide_snippets/appendix_b_terminology.txt +63 -0
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +304 -0
- data/doc/users_guide_snippets/global_queueing_explained.txt +78 -0
- data/doc/users_guide_snippets/rackup_specifications.txt +71 -0
- data/doc/users_guide_snippets/rails_spawn_method.txt +48 -0
- data/doc/users_guide_snippets/tips.txt +173 -0
- data/ext/apache2/Bucket.cpp +190 -0
- data/ext/apache2/Bucket.h +87 -0
- data/ext/apache2/Configuration.cpp +798 -0
- data/ext/apache2/Configuration.h +405 -0
- data/ext/apache2/DirectoryMapper.h +296 -0
- data/ext/apache2/Hooks.cpp +1615 -0
- data/ext/apache2/Hooks.h +45 -0
- data/ext/apache2/LICENSE-CNRI.TXT +79 -0
- data/ext/apache2/mod_passenger.c +38 -0
- data/ext/boost/LICENSE.TXT +23 -0
- data/ext/boost/VERSION.TXT +1 -0
- data/ext/boost/algorithm/string/case_conv.hpp +176 -0
- data/ext/boost/algorithm/string/compare.hpp +199 -0
- data/ext/boost/algorithm/string/concept.hpp +83 -0
- data/ext/boost/algorithm/string/config.hpp +28 -0
- data/ext/boost/algorithm/string/constants.hpp +36 -0
- data/ext/boost/algorithm/string/detail/case_conv.hpp +112 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +193 -0
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +263 -0
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +71 -0
- data/ext/boost/algorithm/string/detail/finder.hpp +646 -0
- data/ext/boost/algorithm/string/detail/formatter.hpp +94 -0
- data/ext/boost/algorithm/string/detail/replace_storage.hpp +159 -0
- data/ext/boost/algorithm/string/detail/sequence.hpp +200 -0
- data/ext/boost/algorithm/string/detail/util.hpp +106 -0
- data/ext/boost/algorithm/string/erase.hpp +844 -0
- data/ext/boost/algorithm/string/find_format.hpp +269 -0
- data/ext/boost/algorithm/string/finder.hpp +270 -0
- data/ext/boost/algorithm/string/formatter.hpp +103 -0
- data/ext/boost/algorithm/string/replace.hpp +928 -0
- data/ext/boost/algorithm/string/sequence_traits.hpp +193 -0
- data/ext/boost/algorithm/string/yes_no_type.hpp +33 -0
- data/ext/boost/assert.hpp +50 -0
- data/ext/boost/bind/arg.hpp +62 -0
- data/ext/boost/bind/bind_cc.hpp +117 -0
- data/ext/boost/bind/bind_mf_cc.hpp +227 -0
- data/ext/boost/bind/bind_template.hpp +345 -0
- data/ext/boost/bind/mem_fn_cc.hpp +103 -0
- data/ext/boost/bind/mem_fn_template.hpp +1020 -0
- data/ext/boost/bind/placeholders.hpp +68 -0
- data/ext/boost/bind/storage.hpp +475 -0
- data/ext/boost/bind.hpp +1689 -0
- data/ext/boost/call_traits.hpp +24 -0
- data/ext/boost/checked_delete.hpp +69 -0
- data/ext/boost/concept/assert.hpp +46 -0
- data/ext/boost/concept/detail/concept_def.hpp +51 -0
- data/ext/boost/concept/detail/concept_undef.hpp +5 -0
- data/ext/boost/concept/detail/general.hpp +66 -0
- data/ext/boost/concept/detail/has_constraints.hpp +48 -0
- data/ext/boost/concept/usage.hpp +43 -0
- data/ext/boost/concept_check.hpp +988 -0
- data/ext/boost/config/abi/borland_prefix.hpp +27 -0
- data/ext/boost/config/abi/borland_suffix.hpp +12 -0
- data/ext/boost/config/abi/msvc_prefix.hpp +8 -0
- data/ext/boost/config/abi/msvc_suffix.hpp +8 -0
- data/ext/boost/config/abi_prefix.hpp +25 -0
- data/ext/boost/config/abi_suffix.hpp +26 -0
- data/ext/boost/config/auto_link.hpp +368 -0
- data/ext/boost/config/compiler/borland.hpp +209 -0
- data/ext/boost/config/compiler/comeau.hpp +59 -0
- data/ext/boost/config/compiler/common_edg.hpp +62 -0
- data/ext/boost/config/compiler/compaq_cxx.hpp +19 -0
- data/ext/boost/config/compiler/digitalmars.hpp +67 -0
- data/ext/boost/config/compiler/gcc.hpp +149 -0
- data/ext/boost/config/compiler/gcc_xml.hpp +30 -0
- data/ext/boost/config/compiler/greenhills.hpp +28 -0
- data/ext/boost/config/compiler/hp_acc.hpp +95 -0
- data/ext/boost/config/compiler/intel.hpp +162 -0
- data/ext/boost/config/compiler/kai.hpp +35 -0
- data/ext/boost/config/compiler/metrowerks.hpp +111 -0
- data/ext/boost/config/compiler/mpw.hpp +51 -0
- data/ext/boost/config/compiler/pgi.hpp +25 -0
- data/ext/boost/config/compiler/sgi_mipspro.hpp +28 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +98 -0
- data/ext/boost/config/compiler/vacpp.hpp +60 -0
- data/ext/boost/config/compiler/visualc.hpp +191 -0
- data/ext/boost/config/no_tr1/complex.hpp +28 -0
- data/ext/boost/config/no_tr1/functional.hpp +28 -0
- data/ext/boost/config/no_tr1/memory.hpp +28 -0
- data/ext/boost/config/no_tr1/utility.hpp +28 -0
- data/ext/boost/config/platform/aix.hpp +33 -0
- data/ext/boost/config/platform/amigaos.hpp +15 -0
- data/ext/boost/config/platform/beos.hpp +26 -0
- data/ext/boost/config/platform/bsd.hpp +73 -0
- data/ext/boost/config/platform/cygwin.hpp +51 -0
- data/ext/boost/config/platform/hpux.hpp +84 -0
- data/ext/boost/config/platform/irix.hpp +31 -0
- data/ext/boost/config/platform/linux.hpp +98 -0
- data/ext/boost/config/platform/macos.hpp +78 -0
- data/ext/boost/config/platform/qnxnto.hpp +31 -0
- data/ext/boost/config/platform/solaris.hpp +21 -0
- data/ext/boost/config/platform/win32.hpp +58 -0
- data/ext/boost/config/posix_features.hpp +95 -0
- data/ext/boost/config/requires_threads.hpp +92 -0
- data/ext/boost/config/select_compiler_config.hpp +115 -0
- data/ext/boost/config/select_platform_config.hpp +90 -0
- data/ext/boost/config/select_stdlib_config.hpp +68 -0
- data/ext/boost/config/stdlib/dinkumware.hpp +106 -0
- data/ext/boost/config/stdlib/libcomo.hpp +46 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +73 -0
- data/ext/boost/config/stdlib/modena.hpp +30 -0
- data/ext/boost/config/stdlib/msl.hpp +59 -0
- data/ext/boost/config/stdlib/roguewave.hpp +153 -0
- data/ext/boost/config/stdlib/sgi.hpp +111 -0
- data/ext/boost/config/stdlib/stlport.hpp +201 -0
- data/ext/boost/config/stdlib/vacpp.hpp +18 -0
- data/ext/boost/config/suffix.hpp +566 -0
- data/ext/boost/config/user.hpp +124 -0
- data/ext/boost/config.hpp +70 -0
- data/ext/boost/cstdint.hpp +449 -0
- data/ext/boost/current_function.hpp +67 -0
- data/ext/boost/date_time/adjust_functors.hpp +178 -0
- data/ext/boost/date_time/c_time.hpp +91 -0
- data/ext/boost/date_time/compiler_config.hpp +149 -0
- data/ext/boost/date_time/constrained_value.hpp +98 -0
- data/ext/boost/date_time/date.hpp +197 -0
- data/ext/boost/date_time/date_clock_device.hpp +77 -0
- data/ext/boost/date_time/date_defs.hpp +26 -0
- data/ext/boost/date_time/date_duration.hpp +147 -0
- data/ext/boost/date_time/date_duration_types.hpp +269 -0
- data/ext/boost/date_time/date_facet.hpp +775 -0
- data/ext/boost/date_time/date_format_simple.hpp +159 -0
- data/ext/boost/date_time/date_formatting.hpp +127 -0
- data/ext/boost/date_time/date_formatting_limited.hpp +121 -0
- data/ext/boost/date_time/date_formatting_locales.hpp +233 -0
- data/ext/boost/date_time/date_generator_formatter.hpp +263 -0
- data/ext/boost/date_time/date_generator_parser.hpp +329 -0
- data/ext/boost/date_time/date_generators.hpp +509 -0
- data/ext/boost/date_time/date_iterator.hpp +101 -0
- data/ext/boost/date_time/date_names_put.hpp +320 -0
- data/ext/boost/date_time/date_parsing.hpp +299 -0
- data/ext/boost/date_time/dst_rules.hpp +391 -0
- data/ext/boost/date_time/filetime_functions.hpp +78 -0
- data/ext/boost/date_time/format_date_parser.hpp +731 -0
- data/ext/boost/date_time/gregorian/conversion.hpp +73 -0
- data/ext/boost/date_time/gregorian/formatters.hpp +162 -0
- data/ext/boost/date_time/gregorian/formatters_limited.hpp +81 -0
- data/ext/boost/date_time/gregorian/greg_calendar.hpp +47 -0
- data/ext/boost/date_time/gregorian/greg_date.hpp +135 -0
- data/ext/boost/date_time/gregorian/greg_day.hpp +57 -0
- data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +38 -0
- data/ext/boost/date_time/gregorian/greg_duration.hpp +38 -0
- data/ext/boost/date_time/gregorian/greg_duration_types.hpp +34 -0
- data/ext/boost/date_time/gregorian/greg_month.hpp +105 -0
- data/ext/boost/date_time/gregorian/greg_weekday.hpp +66 -0
- data/ext/boost/date_time/gregorian/greg_year.hpp +53 -0
- data/ext/boost/date_time/gregorian/greg_ymd.hpp +33 -0
- data/ext/boost/date_time/gregorian/gregorian.hpp +38 -0
- data/ext/boost/date_time/gregorian/gregorian_io.hpp +777 -0
- data/ext/boost/date_time/gregorian/gregorian_types.hpp +109 -0
- data/ext/boost/date_time/gregorian/parsers.hpp +91 -0
- data/ext/boost/date_time/gregorian_calendar.hpp +70 -0
- data/ext/boost/date_time/gregorian_calendar.ipp +219 -0
- data/ext/boost/date_time/int_adapter.hpp +507 -0
- data/ext/boost/date_time/iso_format.hpp +303 -0
- data/ext/boost/date_time/locale_config.hpp +31 -0
- data/ext/boost/date_time/microsec_time_clock.hpp +205 -0
- data/ext/boost/date_time/parse_format_base.hpp +29 -0
- data/ext/boost/date_time/period.hpp +377 -0
- data/ext/boost/date_time/period_formatter.hpp +196 -0
- data/ext/boost/date_time/period_parser.hpp +196 -0
- data/ext/boost/date_time/posix_time/conversion.hpp +93 -0
- data/ext/boost/date_time/posix_time/date_duration_operators.hpp +114 -0
- data/ext/boost/date_time/posix_time/posix_time.hpp +39 -0
- data/ext/boost/date_time/posix_time/posix_time_config.hpp +178 -0
- data/ext/boost/date_time/posix_time/posix_time_duration.hpp +82 -0
- data/ext/boost/date_time/posix_time/posix_time_io.hpp +246 -0
- data/ext/boost/date_time/posix_time/posix_time_system.hpp +68 -0
- data/ext/boost/date_time/posix_time/posix_time_types.hpp +55 -0
- data/ext/boost/date_time/posix_time/ptime.hpp +65 -0
- data/ext/boost/date_time/posix_time/time_formatters.hpp +289 -0
- data/ext/boost/date_time/posix_time/time_parsers.hpp +44 -0
- data/ext/boost/date_time/posix_time/time_period.hpp +29 -0
- data/ext/boost/date_time/special_defs.hpp +25 -0
- data/ext/boost/date_time/special_values_formatter.hpp +96 -0
- data/ext/boost/date_time/special_values_parser.hpp +159 -0
- data/ext/boost/date_time/string_convert.hpp +33 -0
- data/ext/boost/date_time/string_parse_tree.hpp +278 -0
- data/ext/boost/date_time/strings_from_facet.hpp +123 -0
- data/ext/boost/date_time/time.hpp +190 -0
- data/ext/boost/date_time/time_clock.hpp +83 -0
- data/ext/boost/date_time/time_defs.hpp +33 -0
- data/ext/boost/date_time/time_duration.hpp +281 -0
- data/ext/boost/date_time/time_facet.hpp +1263 -0
- data/ext/boost/date_time/time_formatting_streams.hpp +119 -0
- data/ext/boost/date_time/time_iterator.hpp +52 -0
- data/ext/boost/date_time/time_parsing.hpp +321 -0
- data/ext/boost/date_time/time_resolution_traits.hpp +140 -0
- data/ext/boost/date_time/time_system_counted.hpp +254 -0
- data/ext/boost/date_time/time_system_split.hpp +213 -0
- data/ext/boost/date_time/wrapping_int.hpp +163 -0
- data/ext/boost/date_time/year_month_day.hpp +45 -0
- data/ext/boost/detail/atomic_count.hpp +124 -0
- data/ext/boost/detail/atomic_count_gcc.hpp +68 -0
- data/ext/boost/detail/atomic_count_gcc_x86.hpp +84 -0
- data/ext/boost/detail/atomic_count_pthreads.hpp +96 -0
- data/ext/boost/detail/atomic_count_solaris.hpp +59 -0
- data/ext/boost/detail/atomic_count_sync.hpp +57 -0
- data/ext/boost/detail/atomic_count_win32.hpp +63 -0
- data/ext/boost/detail/bad_weak_ptr.hpp +59 -0
- data/ext/boost/detail/call_traits.hpp +164 -0
- data/ext/boost/detail/endian.hpp +73 -0
- data/ext/boost/detail/indirect_traits.hpp +487 -0
- data/ext/boost/detail/iterator.hpp +494 -0
- data/ext/boost/detail/lcast_precision.hpp +184 -0
- data/ext/boost/detail/limits.hpp +449 -0
- data/ext/boost/detail/reference_content.hpp +141 -0
- data/ext/boost/detail/shared_count.hpp +375 -0
- data/ext/boost/detail/sp_counted_base.hpp +81 -0
- data/ext/boost/detail/sp_counted_base_acc_ia64.hpp +150 -0
- data/ext/boost/detail/sp_counted_base_cw_ppc.hpp +170 -0
- data/ext/boost/detail/sp_counted_base_cw_x86.hpp +158 -0
- data/ext/boost/detail/sp_counted_base_gcc_ia64.hpp +157 -0
- data/ext/boost/detail/sp_counted_base_gcc_ppc.hpp +181 -0
- data/ext/boost/detail/sp_counted_base_gcc_sparc.hpp +166 -0
- data/ext/boost/detail/sp_counted_base_gcc_x86.hpp +173 -0
- data/ext/boost/detail/sp_counted_base_nt.hpp +107 -0
- data/ext/boost/detail/sp_counted_base_pt.hpp +135 -0
- data/ext/boost/detail/sp_counted_base_solaris.hpp +113 -0
- data/ext/boost/detail/sp_counted_base_sync.hpp +151 -0
- data/ext/boost/detail/sp_counted_base_w32.hpp +130 -0
- data/ext/boost/detail/sp_counted_impl.hpp +231 -0
- data/ext/boost/detail/sp_typeinfo.hpp +83 -0
- data/ext/boost/detail/workaround.hpp +202 -0
- data/ext/boost/enable_shared_from_this.hpp +73 -0
- data/ext/boost/function/detail/function_iterate.hpp +16 -0
- data/ext/boost/function/detail/maybe_include.hpp +267 -0
- data/ext/boost/function/detail/prologue.hpp +25 -0
- data/ext/boost/function/function_base.hpp +762 -0
- data/ext/boost/function/function_template.hpp +969 -0
- data/ext/boost/function.hpp +66 -0
- data/ext/boost/function_equal.hpp +28 -0
- data/ext/boost/get_pointer.hpp +29 -0
- data/ext/boost/implicit_cast.hpp +29 -0
- data/ext/boost/integer_traits.hpp +236 -0
- data/ext/boost/io/ios_state.hpp +431 -0
- data/ext/boost/io_fwd.hpp +67 -0
- data/ext/boost/is_placeholder.hpp +31 -0
- data/ext/boost/iterator/detail/config_def.hpp +135 -0
- data/ext/boost/iterator/detail/config_undef.hpp +25 -0
- data/ext/boost/iterator/detail/enable_if.hpp +86 -0
- data/ext/boost/iterator/detail/facade_iterator_category.hpp +200 -0
- data/ext/boost/iterator/detail/minimum_category.hpp +116 -0
- data/ext/boost/iterator/interoperable.hpp +50 -0
- data/ext/boost/iterator/iterator_adaptor.hpp +366 -0
- data/ext/boost/iterator/iterator_categories.hpp +188 -0
- data/ext/boost/iterator/iterator_facade.hpp +879 -0
- data/ext/boost/iterator/iterator_traits.hpp +92 -0
- data/ext/boost/iterator/reverse_iterator.hpp +69 -0
- data/ext/boost/iterator/transform_iterator.hpp +188 -0
- data/ext/boost/iterator.hpp +59 -0
- data/ext/boost/lexical_cast.hpp +1205 -0
- data/ext/boost/limits.hpp +146 -0
- data/ext/boost/mem_fn.hpp +389 -0
- data/ext/boost/mpl/always.hpp +39 -0
- data/ext/boost/mpl/and.hpp +60 -0
- data/ext/boost/mpl/apply.hpp +229 -0
- data/ext/boost/mpl/apply_fwd.hpp +107 -0
- data/ext/boost/mpl/apply_wrap.hpp +203 -0
- data/ext/boost/mpl/arg.hpp +131 -0
- data/ext/boost/mpl/arg_fwd.hpp +28 -0
- data/ext/boost/mpl/assert.hpp +370 -0
- data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -0
- data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -0
- data/ext/boost/mpl/aux_/arity.hpp +39 -0
- data/ext/boost/mpl/aux_/arity_spec.hpp +67 -0
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -0
- data/ext/boost/mpl/aux_/config/adl.hpp +40 -0
- data/ext/boost/mpl/aux_/config/arrays.hpp +30 -0
- data/ext/boost/mpl/aux_/config/bind.hpp +33 -0
- data/ext/boost/mpl/aux_/config/compiler.hpp +64 -0
- data/ext/boost/mpl/aux_/config/ctps.hpp +30 -0
- data/ext/boost/mpl/aux_/config/dtp.hpp +46 -0
- data/ext/boost/mpl/aux_/config/eti.hpp +47 -0
- data/ext/boost/mpl/aux_/config/gcc.hpp +23 -0
- data/ext/boost/mpl/aux_/config/has_apply.hpp +32 -0
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +33 -0
- data/ext/boost/mpl/aux_/config/integral.hpp +38 -0
- data/ext/boost/mpl/aux_/config/intel.hpp +21 -0
- data/ext/boost/mpl/aux_/config/lambda.hpp +32 -0
- data/ext/boost/mpl/aux_/config/msvc.hpp +21 -0
- data/ext/boost/mpl/aux_/config/msvc_typename.hpp +26 -0
- data/ext/boost/mpl/aux_/config/nttp.hpp +41 -0
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -0
- data/ext/boost/mpl/aux_/config/pp_counter.hpp +26 -0
- data/ext/boost/mpl/aux_/config/preprocessor.hpp +39 -0
- data/ext/boost/mpl/aux_/config/static_constant.hpp +25 -0
- data/ext/boost/mpl/aux_/config/ttp.hpp +41 -0
- data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +19 -0
- data/ext/boost/mpl/aux_/config/workaround.hpp +19 -0
- data/ext/boost/mpl/aux_/full_lambda.hpp +354 -0
- data/ext/boost/mpl/aux_/has_apply.hpp +32 -0
- data/ext/boost/mpl/aux_/has_type.hpp +23 -0
- data/ext/boost/mpl/aux_/include_preprocessed.hpp +42 -0
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -0
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -0
- data/ext/boost/mpl/aux_/lambda_support.hpp +169 -0
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -0
- data/ext/boost/mpl/aux_/na.hpp +95 -0
- data/ext/boost/mpl/aux_/na_assert.hpp +34 -0
- data/ext/boost/mpl/aux_/na_fwd.hpp +31 -0
- data/ext/boost/mpl/aux_/na_spec.hpp +175 -0
- data/ext/boost/mpl/aux_/nested_type_wknd.hpp +48 -0
- data/ext/boost/mpl/aux_/nttp_decl.hpp +35 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +84 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/bind.hpp +561 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -0
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -0
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -0
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -0
- data/ext/boost/mpl/aux_/static_cast.hpp +27 -0
- data/ext/boost/mpl/aux_/template_arity.hpp +189 -0
- data/ext/boost/mpl/aux_/template_arity_fwd.hpp +23 -0
- data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -0
- data/ext/boost/mpl/aux_/value_wknd.hpp +89 -0
- data/ext/boost/mpl/aux_/yes_no.hpp +58 -0
- data/ext/boost/mpl/bind.hpp +551 -0
- data/ext/boost/mpl/bind_fwd.hpp +99 -0
- data/ext/boost/mpl/bool.hpp +39 -0
- data/ext/boost/mpl/bool_fwd.hpp +33 -0
- data/ext/boost/mpl/eval_if.hpp +71 -0
- data/ext/boost/mpl/has_xxx.hpp +272 -0
- data/ext/boost/mpl/identity.hpp +45 -0
- data/ext/boost/mpl/if.hpp +135 -0
- data/ext/boost/mpl/int.hpp +22 -0
- data/ext/boost/mpl/int_fwd.hpp +27 -0
- data/ext/boost/mpl/integral_c.hpp +51 -0
- data/ext/boost/mpl/integral_c_fwd.hpp +32 -0
- data/ext/boost/mpl/integral_c_tag.hpp +26 -0
- data/ext/boost/mpl/lambda.hpp +29 -0
- data/ext/boost/mpl/lambda_fwd.hpp +57 -0
- data/ext/boost/mpl/limits/arity.hpp +21 -0
- data/ext/boost/mpl/logical.hpp +21 -0
- data/ext/boost/mpl/next.hpp +19 -0
- data/ext/boost/mpl/next_prior.hpp +49 -0
- data/ext/boost/mpl/not.hpp +51 -0
- data/ext/boost/mpl/or.hpp +61 -0
- data/ext/boost/mpl/placeholders.hpp +100 -0
- data/ext/boost/mpl/protect.hpp +55 -0
- data/ext/boost/mpl/quote.hpp +140 -0
- data/ext/boost/mpl/size_t.hpp +25 -0
- data/ext/boost/mpl/size_t_fwd.hpp +28 -0
- data/ext/boost/mpl/void.hpp +76 -0
- data/ext/boost/mpl/void_fwd.hpp +26 -0
- data/ext/boost/next_prior.hpp +51 -0
- data/ext/boost/non_type.hpp +27 -0
- data/ext/boost/noncopyable.hpp +36 -0
- data/ext/boost/none.hpp +28 -0
- data/ext/boost/none_t.hpp +24 -0
- data/ext/boost/operators.hpp +943 -0
- data/ext/boost/optional/optional.hpp +922 -0
- data/ext/boost/optional/optional_fwd.hpp +22 -0
- data/ext/boost/optional.hpp +18 -0
- data/ext/boost/preprocessor/arithmetic/add.hpp +51 -0
- data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -0
- data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -0
- data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -0
- data/ext/boost/preprocessor/array/data.hpp +28 -0
- data/ext/boost/preprocessor/array/elem.hpp +29 -0
- data/ext/boost/preprocessor/array/size.hpp +28 -0
- data/ext/boost/preprocessor/cat.hpp +35 -0
- data/ext/boost/preprocessor/comma_if.hpp +17 -0
- data/ext/boost/preprocessor/config/config.hpp +70 -0
- data/ext/boost/preprocessor/control/detail/while.hpp +536 -0
- data/ext/boost/preprocessor/control/expr_iif.hpp +31 -0
- data/ext/boost/preprocessor/control/if.hpp +30 -0
- data/ext/boost/preprocessor/control/iif.hpp +34 -0
- data/ext/boost/preprocessor/control/while.hpp +312 -0
- data/ext/boost/preprocessor/debug/error.hpp +33 -0
- data/ext/boost/preprocessor/detail/auto_rec.hpp +293 -0
- data/ext/boost/preprocessor/detail/check.hpp +48 -0
- data/ext/boost/preprocessor/detail/is_binary.hpp +30 -0
- data/ext/boost/preprocessor/empty.hpp +17 -0
- data/ext/boost/preprocessor/enum.hpp +17 -0
- data/ext/boost/preprocessor/enum_params.hpp +17 -0
- data/ext/boost/preprocessor/facilities/empty.hpp +21 -0
- data/ext/boost/preprocessor/facilities/identity.hpp +23 -0
- data/ext/boost/preprocessor/identity.hpp +17 -0
- data/ext/boost/preprocessor/inc.hpp +17 -0
- data/ext/boost/preprocessor/iterate.hpp +17 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -0
- data/ext/boost/preprocessor/iteration/iterate.hpp +82 -0
- data/ext/boost/preprocessor/list/adt.hpp +73 -0
- data/ext/boost/preprocessor/list/append.hpp +40 -0
- data/ext/boost/preprocessor/list/detail/fold_left.hpp +279 -0
- data/ext/boost/preprocessor/list/detail/fold_right.hpp +277 -0
- data/ext/boost/preprocessor/list/fold_left.hpp +303 -0
- data/ext/boost/preprocessor/list/fold_right.hpp +40 -0
- data/ext/boost/preprocessor/list/for_each_i.hpp +65 -0
- data/ext/boost/preprocessor/list/reverse.hpp +40 -0
- data/ext/boost/preprocessor/list/transform.hpp +49 -0
- data/ext/boost/preprocessor/logical/and.hpp +30 -0
- data/ext/boost/preprocessor/logical/bitand.hpp +38 -0
- data/ext/boost/preprocessor/logical/bool.hpp +288 -0
- data/ext/boost/preprocessor/logical/compl.hpp +36 -0
- data/ext/boost/preprocessor/punctuation/comma.hpp +21 -0
- data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -0
- data/ext/boost/preprocessor/repeat.hpp +17 -0
- data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -0
- data/ext/boost/preprocessor/repetition/enum.hpp +66 -0
- data/ext/boost/preprocessor/repetition/enum_binary_params.hpp +54 -0
- data/ext/boost/preprocessor/repetition/enum_params.hpp +41 -0
- data/ext/boost/preprocessor/repetition/for.hpp +306 -0
- data/ext/boost/preprocessor/repetition/repeat.hpp +825 -0
- data/ext/boost/preprocessor/repetition/repeat_from_to.hpp +87 -0
- data/ext/boost/preprocessor/seq/elem.hpp +304 -0
- data/ext/boost/preprocessor/seq/enum.hpp +288 -0
- data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -0
- data/ext/boost/preprocessor/seq/seq.hpp +44 -0
- data/ext/boost/preprocessor/seq/size.hpp +548 -0
- data/ext/boost/preprocessor/slot/detail/def.hpp +49 -0
- data/ext/boost/preprocessor/slot/detail/shared.hpp +247 -0
- data/ext/boost/preprocessor/slot/slot.hpp +32 -0
- data/ext/boost/preprocessor/stringize.hpp +33 -0
- data/ext/boost/preprocessor/tuple/eat.hpp +57 -0
- data/ext/boost/preprocessor/tuple/elem.hpp +385 -0
- data/ext/boost/preprocessor/tuple/rem.hpp +72 -0
- data/ext/boost/preprocessor/tuple/to_list.hpp +62 -0
- data/ext/boost/range/as_literal.hpp +131 -0
- data/ext/boost/range/begin.hpp +132 -0
- data/ext/boost/range/config.hpp +54 -0
- data/ext/boost/range/const_iterator.hpp +64 -0
- data/ext/boost/range/detail/common.hpp +117 -0
- data/ext/boost/range/detail/implementation_help.hpp +99 -0
- data/ext/boost/range/detail/sfinae.hpp +77 -0
- data/ext/boost/range/detail/str_types.hpp +38 -0
- data/ext/boost/range/difference_type.hpp +29 -0
- data/ext/boost/range/distance.hpp +34 -0
- data/ext/boost/range/empty.hpp +34 -0
- data/ext/boost/range/end.hpp +131 -0
- data/ext/boost/range/functions.hpp +27 -0
- data/ext/boost/range/iterator.hpp +72 -0
- data/ext/boost/range/iterator_range.hpp +643 -0
- data/ext/boost/range/mutable_iterator.hpp +64 -0
- data/ext/boost/range/rbegin.hpp +65 -0
- data/ext/boost/range/rend.hpp +65 -0
- data/ext/boost/range/reverse_iterator.hpp +40 -0
- data/ext/boost/range/size.hpp +36 -0
- data/ext/boost/range/size_type.hpp +78 -0
- data/ext/boost/range/value_type.hpp +34 -0
- data/ext/boost/ref.hpp +178 -0
- data/ext/boost/shared_ptr.hpp +619 -0
- data/ext/boost/src/pthread/exceptions.cpp +146 -0
- data/ext/boost/src/pthread/once.cpp +51 -0
- data/ext/boost/src/pthread/thread.cpp +709 -0
- data/ext/boost/src/pthread/timeconv.inl +130 -0
- data/ext/boost/src/tss_null.cpp +34 -0
- data/ext/boost/src/win32/exceptions.cpp +124 -0
- data/ext/boost/src/win32/thread.cpp +629 -0
- data/ext/boost/src/win32/timeconv.inl +130 -0
- data/ext/boost/src/win32/tss_dll.cpp +72 -0
- data/ext/boost/src/win32/tss_pe.cpp +269 -0
- data/ext/boost/static_assert.hpp +122 -0
- data/ext/boost/thread/condition.hpp +16 -0
- data/ext/boost/thread/condition_variable.hpp +21 -0
- data/ext/boost/thread/detail/config.hpp +94 -0
- data/ext/boost/thread/detail/move.hpp +33 -0
- data/ext/boost/thread/detail/platform.hpp +71 -0
- data/ext/boost/thread/exceptions.hpp +109 -0
- data/ext/boost/thread/locks.hpp +589 -0
- data/ext/boost/thread/mutex.hpp +21 -0
- data/ext/boost/thread/once.hpp +29 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +184 -0
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +66 -0
- data/ext/boost/thread/pthread/mutex.hpp +211 -0
- data/ext/boost/thread/pthread/once.hpp +85 -0
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +50 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +249 -0
- data/ext/boost/thread/pthread/thread.hpp +339 -0
- data/ext/boost/thread/pthread/thread_data.hpp +102 -0
- data/ext/boost/thread/pthread/timespec.hpp +28 -0
- data/ext/boost/thread/pthread/tss.hpp +103 -0
- data/ext/boost/thread/recursive_mutex.hpp +21 -0
- data/ext/boost/thread/thread.hpp +22 -0
- data/ext/boost/thread/thread_time.hpp +46 -0
- data/ext/boost/thread/tss.hpp +18 -0
- data/ext/boost/thread/xtime.hpp +88 -0
- data/ext/boost/thread.hpp +21 -0
- data/ext/boost/throw_exception.hpp +46 -0
- data/ext/boost/token_functions.hpp +621 -0
- data/ext/boost/token_iterator.hpp +128 -0
- data/ext/boost/tokenizer.hpp +98 -0
- data/ext/boost/type.hpp +18 -0
- data/ext/boost/type_traits/add_const.hpp +47 -0
- data/ext/boost/type_traits/add_pointer.hpp +72 -0
- data/ext/boost/type_traits/add_reference.hpp +89 -0
- data/ext/boost/type_traits/alignment_of.hpp +100 -0
- data/ext/boost/type_traits/broken_compiler_spec.hpp +117 -0
- data/ext/boost/type_traits/composite_traits.hpp +29 -0
- data/ext/boost/type_traits/config.hpp +76 -0
- data/ext/boost/type_traits/conversion_traits.hpp +17 -0
- data/ext/boost/type_traits/detail/bool_trait_def.hpp +173 -0
- data/ext/boost/type_traits/detail/bool_trait_undef.hpp +27 -0
- data/ext/boost/type_traits/detail/cv_traits_impl.hpp +97 -0
- data/ext/boost/type_traits/detail/false_result.hpp +28 -0
- data/ext/boost/type_traits/detail/ice_and.hpp +35 -0
- data/ext/boost/type_traits/detail/ice_eq.hpp +36 -0
- data/ext/boost/type_traits/detail/ice_not.hpp +31 -0
- data/ext/boost/type_traits/detail/ice_or.hpp +34 -0
- data/ext/boost/type_traits/detail/is_function_ptr_helper.hpp +220 -0
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -0
- data/ext/boost/type_traits/detail/size_t_trait_def.hpp +58 -0
- data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +16 -0
- data/ext/boost/type_traits/detail/template_arity_spec.hpp +31 -0
- data/ext/boost/type_traits/detail/type_trait_def.hpp +61 -0
- data/ext/boost/type_traits/detail/type_trait_undef.hpp +19 -0
- data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -0
- data/ext/boost/type_traits/function_traits.hpp +236 -0
- data/ext/boost/type_traits/has_nothrow_copy.hpp +39 -0
- data/ext/boost/type_traits/has_trivial_copy.hpp +49 -0
- data/ext/boost/type_traits/ice.hpp +20 -0
- data/ext/boost/type_traits/integral_constant.hpp +53 -0
- data/ext/boost/type_traits/intrinsics.hpp +153 -0
- data/ext/boost/type_traits/is_abstract.hpp +144 -0
- data/ext/boost/type_traits/is_arithmetic.hpp +43 -0
- data/ext/boost/type_traits/is_array.hpp +90 -0
- data/ext/boost/type_traits/is_class.hpp +128 -0
- data/ext/boost/type_traits/is_const.hpp +142 -0
- data/ext/boost/type_traits/is_convertible.hpp +418 -0
- data/ext/boost/type_traits/is_enum.hpp +180 -0
- data/ext/boost/type_traits/is_float.hpp +27 -0
- data/ext/boost/type_traits/is_function.hpp +95 -0
- data/ext/boost/type_traits/is_integral.hpp +73 -0
- data/ext/boost/type_traits/is_member_function_pointer.hpp +134 -0
- data/ext/boost/type_traits/is_member_pointer.hpp +114 -0
- data/ext/boost/type_traits/is_pod.hpp +135 -0
- data/ext/boost/type_traits/is_pointer.hpp +160 -0
- data/ext/boost/type_traits/is_reference.hpp +116 -0
- data/ext/boost/type_traits/is_same.hpp +103 -0
- data/ext/boost/type_traits/is_scalar.hpp +55 -0
- data/ext/boost/type_traits/is_union.hpp +49 -0
- data/ext/boost/type_traits/is_void.hpp +33 -0
- data/ext/boost/type_traits/is_volatile.hpp +131 -0
- data/ext/boost/type_traits/remove_const.hpp +78 -0
- data/ext/boost/type_traits/remove_cv.hpp +61 -0
- data/ext/boost/type_traits/remove_pointer.hpp +43 -0
- data/ext/boost/type_traits/remove_reference.hpp +50 -0
- data/ext/boost/type_traits/type_with_alignment.hpp +288 -0
- data/ext/boost/utility/addressof.hpp +58 -0
- data/ext/boost/utility/base_from_member.hpp +87 -0
- data/ext/boost/utility/compare_pointees.hpp +68 -0
- data/ext/boost/utility/enable_if.hpp +119 -0
- data/ext/boost/utility.hpp +19 -0
- data/ext/boost/visit_each.hpp +29 -0
- data/ext/boost/weak_ptr.hpp +188 -0
- data/ext/common/Application.h +511 -0
- data/ext/common/ApplicationPool.h +205 -0
- data/ext/common/ApplicationPoolServer.h +794 -0
- data/ext/common/ApplicationPoolServerExecutable.cpp +743 -0
- data/ext/common/ApplicationPoolStatusReporter.h +336 -0
- data/ext/common/Base64.cpp +143 -0
- data/ext/common/Base64.h +57 -0
- data/ext/common/CachedFileStat.cpp +62 -0
- data/ext/common/CachedFileStat.h +51 -0
- data/ext/common/CachedFileStat.hpp +243 -0
- data/ext/common/DummySpawnManager.h +108 -0
- data/ext/common/Exceptions.h +258 -0
- data/ext/common/FileChangeChecker.h +209 -0
- data/ext/common/Logging.cpp +65 -0
- data/ext/common/Logging.h +123 -0
- data/ext/common/MessageChannel.h +615 -0
- data/ext/common/PoolOptions.h +355 -0
- data/ext/common/SpawnManager.h +561 -0
- data/ext/common/StandardApplicationPool.h +819 -0
- data/ext/common/StaticString.h +148 -0
- data/ext/common/StringListCreator.h +83 -0
- data/ext/common/SystemTime.cpp +33 -0
- data/ext/common/SystemTime.h +88 -0
- data/ext/common/Timer.h +90 -0
- data/ext/common/Utils.cpp +681 -0
- data/ext/common/Utils.h +497 -0
- data/ext/common/Version.h +31 -0
- data/ext/nginx/Configuration.c +1098 -0
- data/ext/nginx/Configuration.h +71 -0
- data/ext/nginx/ContentHandler.c +1225 -0
- data/ext/nginx/ContentHandler.h +64 -0
- data/ext/nginx/HelperServer.cpp +850 -0
- data/ext/nginx/HttpStatusExtractor.h +350 -0
- data/ext/nginx/ScgiRequestParser.h +317 -0
- data/ext/nginx/StaticContentHandler.c +257 -0
- data/ext/nginx/StaticContentHandler.h +37 -0
- data/ext/nginx/config +45 -0
- data/ext/nginx/ngx_http_passenger_module.c +653 -0
- data/ext/nginx/ngx_http_passenger_module.h +72 -0
- data/ext/oxt/backtrace.cpp +177 -0
- data/ext/oxt/backtrace.hpp +135 -0
- data/ext/oxt/detail/backtrace_disabled.hpp +39 -0
- data/ext/oxt/detail/backtrace_enabled.hpp +155 -0
- data/ext/oxt/detail/spin_lock_gcc_x86.hpp +82 -0
- data/ext/oxt/detail/spin_lock_portable.hpp +38 -0
- data/ext/oxt/detail/spin_lock_pthreads.hpp +97 -0
- data/ext/oxt/detail/tracable_exception_disabled.hpp +46 -0
- data/ext/oxt/detail/tracable_exception_enabled.hpp +48 -0
- data/ext/oxt/macros.hpp +58 -0
- data/ext/oxt/spin_lock.hpp +55 -0
- data/ext/oxt/system_calls.cpp +340 -0
- data/ext/oxt/system_calls.hpp +243 -0
- data/ext/oxt/thread.cpp +32 -0
- data/ext/oxt/thread.hpp +239 -0
- data/ext/oxt/tracable_exception.cpp +87 -0
- data/ext/oxt/tracable_exception.hpp +35 -0
- data/ext/phusion_passenger/extconf.rb +36 -0
- data/ext/phusion_passenger/native_support.c +308 -0
- data/generators/colouringcode-passenger/USAGE +1 -0
- data/generators/colouringcode-passenger/passenger_template_generator.rb +16 -0
- data/generators/colouringcode-passenger/templates/app_exited_during_initialization.html.erb +0 -0
- data/generators/colouringcode-passenger/templates/app_init_error.html.erb +0 -0
- data/generators/colouringcode-passenger/templates/database_error.html.erb +0 -0
- data/generators/colouringcode-passenger/templates/error_layout.html.erb +0 -0
- data/generators/colouringcode-passenger/templates/framework_init_error.html.erb +0 -0
- data/generators/colouringcode-passenger/templates/general_error.html.erb +0 -0
- data/generators/colouringcode-passenger/templates/invalid_app_root.html.erb +0 -0
- data/generators/colouringcode-passenger/templates/load_error.html.erb +0 -0
- data/generators/colouringcode-passenger/templates/version_not_found.html.erb +0 -0
- data/lib/phusion_passenger/abstract_installer.rb +196 -0
- data/lib/phusion_passenger/abstract_request_handler.rb +475 -0
- data/lib/phusion_passenger/abstract_server.rb +369 -0
- data/lib/phusion_passenger/abstract_server_collection.rb +306 -0
- data/lib/phusion_passenger/admin_tools/control_process.rb +150 -0
- data/lib/phusion_passenger/admin_tools.rb +48 -0
- data/lib/phusion_passenger/application.rb +113 -0
- data/lib/phusion_passenger/console_text_template.rb +66 -0
- data/lib/phusion_passenger/constants.rb +31 -0
- data/lib/phusion_passenger/dependencies.rb +393 -0
- data/lib/phusion_passenger/events.rb +50 -0
- data/lib/phusion_passenger/exceptions.rb +103 -0
- data/lib/phusion_passenger/html_template.rb +119 -0
- data/lib/phusion_passenger/message_channel.rb +229 -0
- data/lib/phusion_passenger/packaging.rb +39 -0
- data/lib/phusion_passenger/platform_info.rb +550 -0
- data/lib/phusion_passenger/rack/application_spawner.rb +146 -0
- data/lib/phusion_passenger/rack/request_handler.rb +125 -0
- data/lib/phusion_passenger/railz/application_spawner.rb +386 -0
- data/lib/phusion_passenger/railz/cgi_fixed.rb +68 -0
- data/lib/phusion_passenger/railz/framework_spawner.rb +334 -0
- data/lib/phusion_passenger/railz/request_handler.rb +73 -0
- data/lib/phusion_passenger/simple_benchmarking.rb +52 -0
- data/lib/phusion_passenger/spawn_manager.rb +372 -0
- data/lib/phusion_passenger/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +9 -0
- data/lib/phusion_passenger/templates/apache2/config_snippets.txt.erb +13 -0
- data/lib/phusion_passenger/templates/apache2/deployment_example.txt.erb +23 -0
- data/lib/phusion_passenger/templates/apache2/no_write_permission_to_passenger_root.txt.erb +9 -0
- data/lib/phusion_passenger/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
- data/lib/phusion_passenger/templates/apache2/run_installer_as_root.txt.erb +8 -0
- data/lib/phusion_passenger/templates/apache2/welcome.txt.erb +15 -0
- data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +38 -0
- data/lib/phusion_passenger/templates/app_init_error.html.erb +64 -0
- data/lib/phusion_passenger/templates/database_error.html.erb +66 -0
- data/lib/phusion_passenger/templates/error_layout.css +97 -0
- data/lib/phusion_passenger/templates/error_layout.html.erb +39 -0
- data/lib/phusion_passenger/templates/framework_init_error.html.erb +39 -0
- data/lib/phusion_passenger/templates/general_error.html.erb +22 -0
- data/lib/phusion_passenger/templates/invalid_app_root.html.erb +9 -0
- data/lib/phusion_passenger/templates/load_error.html.erb +46 -0
- data/lib/phusion_passenger/templates/nginx/ask_for_extra_configure_flags.txt.erb +8 -0
- data/lib/phusion_passenger/templates/nginx/cannot_write_to_dir.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/config_snippets.txt.erb +17 -0
- data/lib/phusion_passenger/templates/nginx/config_snippets_inserted.txt.erb +20 -0
- data/lib/phusion_passenger/templates/nginx/confirm_extra_configure_flags.txt.erb +5 -0
- data/lib/phusion_passenger/templates/nginx/deployment_example.txt.erb +22 -0
- data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_downloaded.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_extracted.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +20 -0
- data/lib/phusion_passenger/templates/nginx/query_download_and_install.txt.erb +21 -0
- data/lib/phusion_passenger/templates/nginx/run_installer_as_root.txt.erb +8 -0
- data/lib/phusion_passenger/templates/nginx/welcome.txt.erb +15 -0
- data/lib/phusion_passenger/templates/version_not_found.html.erb +34 -0
- data/lib/phusion_passenger/utils.rb +603 -0
- data/lib/phusion_passenger/wsgi/application_spawner.rb +104 -0
- data/lib/phusion_passenger/wsgi/request_handler.py +199 -0
- data/man/passenger-config.1 +29 -0
- data/man/passenger-make-enterprisey.8 +23 -0
- data/man/passenger-memory-stats.8 +33 -0
- data/man/passenger-status.8 +43 -0
- data/man/passenger-stress-test.1 +43 -0
- data/misc/copy_boost_headers.rb +125 -0
- data/misc/find_owner_pipe_leaks.rb +128 -0
- data/misc/rake/cplusplus.rb +57 -0
- data/misc/rake/extensions.rb +182 -0
- data/misc/rake/gempackagetask.rb +99 -0
- data/misc/rake/packagetask.rb +186 -0
- data/misc/rake/rdoctask.rb +209 -0
- data/misc/render_error_pages.rb +116 -0
- data/test/ApplicationPoolServerTest.cpp +114 -0
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +33 -0
- data/test/ApplicationPoolTest.cpp +599 -0
- data/test/Base64Test.cpp +48 -0
- data/test/CachedFileStatTest.cpp +402 -0
- data/test/CxxTestMain.cpp +143 -0
- data/test/FileChangeCheckerTest.cpp +331 -0
- data/test/HttpStatusExtractorTest.cpp +198 -0
- data/test/MessageChannelTest.cpp +312 -0
- data/test/PoolOptionsTest.cpp +117 -0
- data/test/ScgiRequestParserTest.cpp +337 -0
- data/test/SpawnManagerTest.cpp +64 -0
- data/test/StandardApplicationPoolTest.cpp +27 -0
- data/test/StaticStringTest.cpp +51 -0
- data/test/SystemTimeTest.cpp +37 -0
- data/test/UtilsTest.cpp +257 -0
- data/test/config.yml.example +30 -0
- data/test/integration_tests/apache2_tests.rb +595 -0
- data/test/integration_tests/hello_world_rack_spec.rb +36 -0
- data/test/integration_tests/hello_world_wsgi_spec.rb +41 -0
- data/test/integration_tests/mycook_spec.rb +192 -0
- data/test/integration_tests/nginx_tests.rb +151 -0
- data/test/oxt/backtrace_test.cpp +128 -0
- data/test/oxt/oxt_test_main.cpp +25 -0
- data/test/oxt/syscall_interruption_test.cpp +38 -0
- data/test/ruby/abstract_request_handler_spec.rb +85 -0
- data/test/ruby/abstract_server_collection_spec.rb +246 -0
- data/test/ruby/abstract_server_spec.rb +51 -0
- data/test/ruby/application_spec.rb +43 -0
- data/test/ruby/message_channel_spec.rb +170 -0
- data/test/ruby/rack/application_spawner_spec.rb +99 -0
- data/test/ruby/rails/application_spawner_spec.rb +159 -0
- data/test/ruby/rails/framework_spawner_spec.rb +133 -0
- data/test/ruby/rails/minimal_spawner_spec.rb +93 -0
- data/test/ruby/rails/spawner_error_handling_spec.rb +107 -0
- data/test/ruby/rails/spawner_privilege_lowering_spec.rb +97 -0
- data/test/ruby/spawn_manager_spec.rb +205 -0
- data/test/ruby/spawn_server_spec.rb +26 -0
- data/test/ruby/utils_spec.rb +335 -0
- data/test/ruby/wsgi/application_spawner_spec.rb +54 -0
- data/test/stub/apache2/httpd.conf.erb +81 -0
- data/test/stub/apache2/mime.types +748 -0
- data/test/stub/garbage1.dat +0 -0
- data/test/stub/garbage2.dat +0 -0
- data/test/stub/garbage3.dat +0 -0
- data/test/stub/http_request.yml +23 -0
- data/test/stub/message_channel.rb +9 -0
- data/test/stub/message_channel_2.rb +10 -0
- data/test/stub/message_channel_3.rb +17 -0
- data/test/stub/nginx/koi-utf +109 -0
- data/test/stub/nginx/koi-win +103 -0
- data/test/stub/nginx/mime.types +70 -0
- data/test/stub/nginx/nginx.conf.erb +57 -0
- data/test/stub/nginx/win-utf +126 -0
- data/test/stub/rack/config.ru +4 -0
- data/test/stub/rack/public/rack.jpg +0 -0
- data/test/stub/rails_apps/foobar/app/controllers/application.rb +12 -0
- data/test/stub/rails_apps/foobar/app/controllers/bar_controller_1.rb +5 -0
- data/test/stub/rails_apps/foobar/app/controllers/bar_controller_2.rb +5 -0
- data/test/stub/rails_apps/foobar/app/controllers/foo_controller.rb +21 -0
- data/test/stub/rails_apps/foobar/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/foobar/config/boot.rb +108 -0
- data/test/stub/rails_apps/foobar/config/database.yml +19 -0
- data/test/stub/rails_apps/foobar/config/environment.rb +59 -0
- data/test/stub/rails_apps/foobar/config/environments/development.rb +17 -0
- data/test/stub/rails_apps/foobar/config/environments/production.rb +18 -0
- data/test/stub/rails_apps/foobar/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/foobar/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/foobar/config/routes.rb +35 -0
- data/test/stub/rails_apps/mycook/app/controllers/application.rb +12 -0
- data/test/stub/rails_apps/mycook/app/controllers/recipes_controller.rb +5 -0
- data/test/stub/rails_apps/mycook/app/controllers/uploads_controller.rb +15 -0
- data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +71 -0
- data/test/stub/rails_apps/mycook/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/mycook/app/views/layouts/default.rhtml +26 -0
- data/test/stub/rails_apps/mycook/app/views/recipes/create.rhtml +13 -0
- data/test/stub/rails_apps/mycook/app/views/recipes/index.rhtml +3 -0
- data/test/stub/rails_apps/mycook/app/views/recipes/new.rhtml +8 -0
- data/test/stub/rails_apps/mycook/app/views/uploads/index.rhtml +1 -0
- data/test/stub/rails_apps/mycook/app/views/uploads/new.html.erb +8 -0
- data/test/stub/rails_apps/mycook/app/views/welcome/cached.rhtml +1 -0
- data/test/stub/rails_apps/mycook/app/views/welcome/index.rhtml +20 -0
- data/test/stub/rails_apps/mycook/config/boot.rb +108 -0
- data/test/stub/rails_apps/mycook/config/database.yml +19 -0
- data/test/stub/rails_apps/mycook/config/environment.rb +61 -0
- data/test/stub/rails_apps/mycook/config/environments/development.rb +18 -0
- data/test/stub/rails_apps/mycook/config/environments/production.rb +19 -0
- data/test/stub/rails_apps/mycook/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/mycook/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/mycook/config/routes.rb +38 -0
- data/test/stub/rails_apps/mycook/log/useless.txt +1 -0
- data/test/stub/rails_apps/mycook/public/404.html +30 -0
- data/test/stub/rails_apps/mycook/public/422.html +30 -0
- data/test/stub/rails_apps/mycook/public/500.html +30 -0
- data/test/stub/rails_apps/mycook/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/mycook/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/mycook/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/mycook/public/favicon.ico +0 -0
- data/test/stub/rails_apps/mycook/public/images/angrywizard.gif +0 -0
- data/test/stub/rails_apps/mycook/public/images/cookbook.gif +0 -0
- data/test/stub/rails_apps/mycook/public/images/header.png +0 -0
- data/test/stub/rails_apps/mycook/public/images/rails.png +0 -0
- data/test/stub/rails_apps/mycook/public/javascripts/application.js +2 -0
- data/test/stub/rails_apps/mycook/public/javascripts/controls.js +963 -0
- data/test/stub/rails_apps/mycook/public/javascripts/dragdrop.js +972 -0
- data/test/stub/rails_apps/mycook/public/javascripts/effects.js +1120 -0
- data/test/stub/rails_apps/mycook/public/javascripts/prototype.js +4225 -0
- data/test/stub/rails_apps/mycook/public/robots.txt +5 -0
- data/test/stub/rails_apps/mycook/public/uploads.html +26 -0
- data/test/stub/rails_apps/mycook/public/welcome/cached.html +26 -0
- data/test/stub/rails_apps/mycook/sites/some.site/public/uploads.html +26 -0
- data/test/stub/rails_apps/mycook/sites/some.site/public/welcome/cached.html +26 -0
- data/test/stub/rails_apps/mycook/tmp/cache/useless.txt +1 -0
- data/test/stub/rails_apps/mycook/tmp/pids/useless.txt +1 -0
- data/test/stub/rails_apps/mycook/tmp/sessions/useless.txt +1 -0
- data/test/stub/rails_apps/mycook/tmp/sockets/useless.txt +1 -0
- data/test/stub/spawn_server.rb +20 -0
- data/test/stub/upload_data.txt +494 -0
- data/test/stub/vendor_rails/minimal/README +1 -0
- data/test/stub/vendor_rails/minimal/actionmailer/lib/action_mailer.rb +0 -0
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +19 -0
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_pack.rb +0 -0
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_view.rb +0 -0
- data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +7 -0
- data/test/stub/vendor_rails/minimal/activeresource/lib/active_resource.rb +0 -0
- data/test/stub/vendor_rails/minimal/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/test/stub/vendor_rails/minimal/activesupport/lib/active_support.rb +17 -0
- data/test/stub/vendor_rails/minimal/railties/lib/dispatcher.rb +0 -0
- data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +52 -0
- data/test/stub/vendor_rails/minimal/railties/lib/ruby_version_check.rb +1 -0
- data/test/stub/wsgi/passenger_wsgi.py +3 -0
- data/test/stub/wsgi/public/wsgi-snake.jpg +0 -0
- data/test/stub/zsfa/header.png +0 -0
- data/test/stub/zsfa/index.html +14 -0
- data/test/stub/zsfa/zsfa.png +0 -0
- data/test/support/Support.cpp +84 -0
- data/test/support/Support.h +118 -0
- data/test/support/apache2_controller.rb +250 -0
- data/test/support/config.rb +38 -0
- data/test/support/multipart.rb +62 -0
- data/test/support/nginx_controller.rb +98 -0
- data/test/support/run_rspec_tests.rb +10 -0
- data/test/support/test_helper.rb +207 -0
- data/test/support/tut.h +1234 -0
- data/test/support/tut_reporter.h +256 -0
- data/test/support/valgrind.h +2539 -0
- data/vendor/README +13 -0
- data/vendor/README_FOR_PACKAGERS +1 -0
- data/vendor/rack-1.0.0-git/COPYING +18 -0
- data/vendor/rack-1.0.0-git/KNOWN-ISSUES +18 -0
- data/vendor/rack-1.0.0-git/README +353 -0
- data/vendor/rack-1.0.0-git/Rakefile +164 -0
- data/vendor/rack-1.0.0-git/lib/rack/adapter/camping.rb +22 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/abstract/handler.rb +37 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/abstract/request.rb +37 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/basic.rb +58 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/digest/md5.rb +124 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/digest/nonce.rb +51 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/digest/params.rb +55 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/digest/request.rb +40 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/openid.rb +487 -0
- data/vendor/rack-1.0.0-git/lib/rack/builder.rb +63 -0
- data/vendor/rack-1.0.0-git/lib/rack/cascade.rb +41 -0
- data/vendor/rack-1.0.0-git/lib/rack/chunked.rb +49 -0
- data/vendor/rack-1.0.0-git/lib/rack/commonlogger.rb +52 -0
- data/vendor/rack-1.0.0-git/lib/rack/conditionalget.rb +47 -0
- data/vendor/rack-1.0.0-git/lib/rack/content_length.rb +29 -0
- data/vendor/rack-1.0.0-git/lib/rack/content_type.rb +23 -0
- data/vendor/rack-1.0.0-git/lib/rack/deflater.rb +96 -0
- data/vendor/rack-1.0.0-git/lib/rack/directory.rb +153 -0
- data/vendor/rack-1.0.0-git/lib/rack/file.rb +88 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/cgi.rb +61 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/evented_mongrel.rb +8 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/fastcgi.rb +88 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/lsws.rb +55 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/mongrel.rb +84 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/scgi.rb +59 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/thin.rb +18 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler/webrick.rb +67 -0
- data/vendor/rack-1.0.0-git/lib/rack/handler.rb +69 -0
- data/vendor/rack-1.0.0-git/lib/rack/head.rb +19 -0
- data/vendor/rack-1.0.0-git/lib/rack/lint.rb +537 -0
- data/vendor/rack-1.0.0-git/lib/rack/lobster.rb +65 -0
- data/vendor/rack-1.0.0-git/lib/rack/lock.rb +16 -0
- data/vendor/rack-1.0.0-git/lib/rack/methodoverride.rb +27 -0
- data/vendor/rack-1.0.0-git/lib/rack/mime.rb +204 -0
- data/vendor/rack-1.0.0-git/lib/rack/mock.rb +184 -0
- data/vendor/rack-1.0.0-git/lib/rack/recursive.rb +57 -0
- data/vendor/rack-1.0.0-git/lib/rack/reloader.rb +106 -0
- data/vendor/rack-1.0.0-git/lib/rack/request.rb +248 -0
- data/vendor/rack-1.0.0-git/lib/rack/response.rb +183 -0
- data/vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb +100 -0
- data/vendor/rack-1.0.0-git/lib/rack/session/abstract/id.rb +142 -0
- data/vendor/rack-1.0.0-git/lib/rack/session/cookie.rb +91 -0
- data/vendor/rack-1.0.0-git/lib/rack/session/memcache.rb +109 -0
- data/vendor/rack-1.0.0-git/lib/rack/session/pool.rb +100 -0
- data/vendor/rack-1.0.0-git/lib/rack/showexceptions.rb +349 -0
- data/vendor/rack-1.0.0-git/lib/rack/showstatus.rb +106 -0
- data/vendor/rack-1.0.0-git/lib/rack/static.rb +38 -0
- data/vendor/rack-1.0.0-git/lib/rack/urlmap.rb +55 -0
- data/vendor/rack-1.0.0-git/lib/rack/utils.rb +522 -0
- data/vendor/rack-1.0.0-git/lib/rack.rb +90 -0
- metadata +1152 -0
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
#ifndef DATE_TIME_DATE_GENERATORS_HPP__
|
|
2
|
+
#define DATE_TIME_DATE_GENERATORS_HPP__
|
|
3
|
+
|
|
4
|
+
/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
|
|
5
|
+
* Use, modification and distribution is subject to the
|
|
6
|
+
* Boost Software License, Version 1.0. (See accompanying
|
|
7
|
+
* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
|
8
|
+
* Author: Jeff Garland, Bart Garst
|
|
9
|
+
* $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/*! @file date_generators.hpp
|
|
13
|
+
Definition and implementation of date algorithm templates
|
|
14
|
+
*/
|
|
15
|
+
#include <stdexcept>
|
|
16
|
+
#include <sstream>
|
|
17
|
+
#include "boost/date_time/date.hpp"
|
|
18
|
+
#include "boost/date_time/compiler_config.hpp"
|
|
19
|
+
|
|
20
|
+
namespace boost {
|
|
21
|
+
namespace date_time {
|
|
22
|
+
|
|
23
|
+
//! Base class for all generators that take a year and produce a date.
|
|
24
|
+
/*! This class is a base class for polymorphic function objects that take
|
|
25
|
+
a year and produce a concrete date.
|
|
26
|
+
@param date_type The type representing a date. This type must
|
|
27
|
+
export a calender_type which defines a year_type.
|
|
28
|
+
*/
|
|
29
|
+
template<class date_type>
|
|
30
|
+
class year_based_generator
|
|
31
|
+
{
|
|
32
|
+
public:
|
|
33
|
+
typedef typename date_type::calendar_type calendar_type;
|
|
34
|
+
typedef typename calendar_type::year_type year_type;
|
|
35
|
+
year_based_generator() {};
|
|
36
|
+
virtual ~year_based_generator() {};
|
|
37
|
+
virtual date_type get_date(year_type y) const = 0;
|
|
38
|
+
//! Returns a string for use in a POSIX time_zone string
|
|
39
|
+
virtual std::string to_string() const =0;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
//! Generates a date by applying the year to the given month and day.
|
|
43
|
+
/*!
|
|
44
|
+
Example usage:
|
|
45
|
+
@code
|
|
46
|
+
partial_date pd(1, Jan);
|
|
47
|
+
partial_date pd2(70);
|
|
48
|
+
date d = pd.get_date(2002); //2002-Jan-01
|
|
49
|
+
date d2 = pd2.get_date(2002); //2002-Mar-10
|
|
50
|
+
@endcode
|
|
51
|
+
\ingroup date_alg
|
|
52
|
+
*/
|
|
53
|
+
template<class date_type>
|
|
54
|
+
class partial_date : public year_based_generator<date_type>
|
|
55
|
+
{
|
|
56
|
+
public:
|
|
57
|
+
typedef typename date_type::calendar_type calendar_type;
|
|
58
|
+
typedef typename calendar_type::day_type day_type;
|
|
59
|
+
typedef typename calendar_type::month_type month_type;
|
|
60
|
+
typedef typename calendar_type::year_type year_type;
|
|
61
|
+
typedef typename date_type::duration_type duration_type;
|
|
62
|
+
typedef typename duration_type::duration_rep duration_rep;
|
|
63
|
+
partial_date(day_type d, month_type m) :
|
|
64
|
+
day_(d),
|
|
65
|
+
month_(m)
|
|
66
|
+
{}
|
|
67
|
+
//! Partial date created from number of days into year. Range 1-366
|
|
68
|
+
/*! Allowable values range from 1 to 366. 1=Jan1, 366=Dec31. If argument
|
|
69
|
+
* exceeds range, partial_date will be created with closest in-range value.
|
|
70
|
+
* 60 will always be Feb29, if get_date() is called with a non-leap year
|
|
71
|
+
* an exception will be thrown */
|
|
72
|
+
partial_date(duration_rep days) :
|
|
73
|
+
day_(1), // default values
|
|
74
|
+
month_(1)
|
|
75
|
+
{
|
|
76
|
+
date_type d1(2000,1,1);
|
|
77
|
+
if(days > 1) {
|
|
78
|
+
if(days > 366) // prevents wrapping
|
|
79
|
+
{
|
|
80
|
+
days = 366;
|
|
81
|
+
}
|
|
82
|
+
days = days - 1;
|
|
83
|
+
duration_type dd(days);
|
|
84
|
+
d1 = d1 + dd;
|
|
85
|
+
}
|
|
86
|
+
day_ = d1.day();
|
|
87
|
+
month_ = d1.month();
|
|
88
|
+
}
|
|
89
|
+
//! Return a concrete date when provided with a year specific year.
|
|
90
|
+
/*! Will throw an 'invalid_argument' exception if a partial_date object,
|
|
91
|
+
* instantiated with Feb-29, has get_date called with a non-leap year.
|
|
92
|
+
* Example:
|
|
93
|
+
* @code
|
|
94
|
+
* partial_date pd(29, Feb);
|
|
95
|
+
* pd.get_date(2003); // throws invalid_argument exception
|
|
96
|
+
* pg.get_date(2000); // returns 2000-2-29
|
|
97
|
+
* @endcode
|
|
98
|
+
*/
|
|
99
|
+
date_type get_date(year_type y) const
|
|
100
|
+
{
|
|
101
|
+
if((day_ == 29) && (month_ == 2) && !(calendar_type::is_leap_year(y))) {
|
|
102
|
+
std::stringstream ss("");
|
|
103
|
+
ss << "No Feb 29th in given year of " << y << ".";
|
|
104
|
+
throw std::invalid_argument(ss.str());
|
|
105
|
+
//return date_type(1,1,1); // should never reach
|
|
106
|
+
} else {
|
|
107
|
+
return date_type(y, month_, day_);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
date_type operator()(year_type y) const
|
|
111
|
+
{
|
|
112
|
+
return get_date(y);
|
|
113
|
+
//return date_type(y, month_, day_);
|
|
114
|
+
}
|
|
115
|
+
bool operator==(const partial_date& rhs) const
|
|
116
|
+
{
|
|
117
|
+
return (month_ == rhs.month_) && (day_ == rhs.day_);
|
|
118
|
+
}
|
|
119
|
+
bool operator<(const partial_date& rhs) const
|
|
120
|
+
{
|
|
121
|
+
if (month_ < rhs.month_) return true;
|
|
122
|
+
if (month_ > rhs.month_) return false;
|
|
123
|
+
//months are equal
|
|
124
|
+
return (day_ < rhs.day_);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// added for streaming purposes
|
|
128
|
+
month_type month() const
|
|
129
|
+
{
|
|
130
|
+
return month_;
|
|
131
|
+
}
|
|
132
|
+
day_type day() const
|
|
133
|
+
{
|
|
134
|
+
return day_;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
//! Returns string suitable for use in POSIX time zone string
|
|
138
|
+
/*! Returns string formatted with up to 3 digits:
|
|
139
|
+
* Jan-01 == "0"
|
|
140
|
+
* Feb-29 == "58"
|
|
141
|
+
* Dec-31 == "365" */
|
|
142
|
+
virtual std::string to_string() const
|
|
143
|
+
{
|
|
144
|
+
std::stringstream ss;
|
|
145
|
+
date_type d(2004, month_, day_);
|
|
146
|
+
unsigned short c = d.day_of_year();
|
|
147
|
+
c--; // numbered 0-365 while day_of_year is 1 based...
|
|
148
|
+
ss << c;
|
|
149
|
+
return ss.str();
|
|
150
|
+
}
|
|
151
|
+
private:
|
|
152
|
+
day_type day_;
|
|
153
|
+
month_type month_;
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
//! Useful generator functor for finding holidays
|
|
158
|
+
/*! Based on the idea in Cal. Calc. for finding holidays that are
|
|
159
|
+
* the 'first Monday of September'. When instantiated with
|
|
160
|
+
* 'fifth' kday of month, the result will be the last kday of month
|
|
161
|
+
* which can be the fourth or fifth depending on the structure of
|
|
162
|
+
* the month.
|
|
163
|
+
*
|
|
164
|
+
* The algorithm here basically guesses for the first
|
|
165
|
+
* day of the month. Then finds the first day of the correct
|
|
166
|
+
* type. That is, if the first of the month is a Tuesday
|
|
167
|
+
* and it needs Wenesday then we simply increment by a day
|
|
168
|
+
* and then we can add the length of a week until we get
|
|
169
|
+
* to the 'nth kday'. There are probably more efficient
|
|
170
|
+
* algorithms based on using a mod 7, but this one works
|
|
171
|
+
* reasonably well for basic applications.
|
|
172
|
+
* \ingroup date_alg
|
|
173
|
+
*/
|
|
174
|
+
template<class date_type>
|
|
175
|
+
class nth_kday_of_month : public year_based_generator<date_type>
|
|
176
|
+
{
|
|
177
|
+
public:
|
|
178
|
+
typedef typename date_type::calendar_type calendar_type;
|
|
179
|
+
typedef typename calendar_type::day_of_week_type day_of_week_type;
|
|
180
|
+
typedef typename calendar_type::month_type month_type;
|
|
181
|
+
typedef typename calendar_type::year_type year_type;
|
|
182
|
+
typedef typename date_type::duration_type duration_type;
|
|
183
|
+
enum week_num {first=1, second, third, fourth, fifth};
|
|
184
|
+
nth_kday_of_month(week_num week_no,
|
|
185
|
+
day_of_week_type dow,
|
|
186
|
+
month_type m) :
|
|
187
|
+
month_(m),
|
|
188
|
+
wn_(week_no),
|
|
189
|
+
dow_(dow)
|
|
190
|
+
{}
|
|
191
|
+
//! Return a concrete date when provided with a year specific year.
|
|
192
|
+
date_type get_date(year_type y) const
|
|
193
|
+
{
|
|
194
|
+
date_type d(y, month_, 1); //first day of month
|
|
195
|
+
duration_type one_day(1);
|
|
196
|
+
duration_type one_week(7);
|
|
197
|
+
while (dow_ != d.day_of_week()) {
|
|
198
|
+
d = d + one_day;
|
|
199
|
+
}
|
|
200
|
+
int week = 1;
|
|
201
|
+
while (week < wn_) {
|
|
202
|
+
d = d + one_week;
|
|
203
|
+
week++;
|
|
204
|
+
}
|
|
205
|
+
// remove wrapping to next month behavior
|
|
206
|
+
if(d.month() != month_) {
|
|
207
|
+
d = d - one_week;
|
|
208
|
+
}
|
|
209
|
+
return d;
|
|
210
|
+
}
|
|
211
|
+
// added for streaming
|
|
212
|
+
month_type month() const
|
|
213
|
+
{
|
|
214
|
+
return month_;
|
|
215
|
+
}
|
|
216
|
+
week_num nth_week() const
|
|
217
|
+
{
|
|
218
|
+
return wn_;
|
|
219
|
+
}
|
|
220
|
+
day_of_week_type day_of_week() const
|
|
221
|
+
{
|
|
222
|
+
return dow_;
|
|
223
|
+
}
|
|
224
|
+
const char* nth_week_as_str() const
|
|
225
|
+
{
|
|
226
|
+
return nth_as_str(wn_);
|
|
227
|
+
}
|
|
228
|
+
//! Returns string suitable for use in POSIX time zone string
|
|
229
|
+
/*! Returns a string formatted as "M4.3.0" ==> 3rd Sunday in April. */
|
|
230
|
+
virtual std::string to_string() const
|
|
231
|
+
{
|
|
232
|
+
std::stringstream ss;
|
|
233
|
+
ss << 'M'
|
|
234
|
+
<< static_cast<int>(month_) << '.'
|
|
235
|
+
<< static_cast<int>(wn_) << '.'
|
|
236
|
+
<< static_cast<int>(dow_);
|
|
237
|
+
return ss.str();
|
|
238
|
+
}
|
|
239
|
+
private:
|
|
240
|
+
month_type month_;
|
|
241
|
+
week_num wn_;
|
|
242
|
+
day_of_week_type dow_;
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
//! Returns nth arg as string. 1 -> "first", 2 -> "second", max is 5.
|
|
246
|
+
BOOST_DATE_TIME_DECL const char* nth_as_str(int n);
|
|
247
|
+
|
|
248
|
+
//! Useful generator functor for finding holidays and daylight savings
|
|
249
|
+
/*! Similar to nth_kday_of_month, but requires less paramters
|
|
250
|
+
* \ingroup date_alg
|
|
251
|
+
*/
|
|
252
|
+
template<class date_type>
|
|
253
|
+
class first_kday_of_month : public year_based_generator<date_type>
|
|
254
|
+
{
|
|
255
|
+
public:
|
|
256
|
+
typedef typename date_type::calendar_type calendar_type;
|
|
257
|
+
typedef typename calendar_type::day_of_week_type day_of_week_type;
|
|
258
|
+
typedef typename calendar_type::month_type month_type;
|
|
259
|
+
typedef typename calendar_type::year_type year_type;
|
|
260
|
+
typedef typename date_type::duration_type duration_type;
|
|
261
|
+
//!Specify the first 'Sunday' in 'April' spec
|
|
262
|
+
/*!@param dow The day of week, eg: Sunday, Monday, etc
|
|
263
|
+
* @param m The month of the year, eg: Jan, Feb, Mar, etc
|
|
264
|
+
*/
|
|
265
|
+
first_kday_of_month(day_of_week_type dow, month_type m) :
|
|
266
|
+
month_(m),
|
|
267
|
+
dow_(dow)
|
|
268
|
+
{}
|
|
269
|
+
//! Return a concrete date when provided with a year specific year.
|
|
270
|
+
date_type get_date(year_type year) const
|
|
271
|
+
{
|
|
272
|
+
date_type d(year, month_,1);
|
|
273
|
+
duration_type one_day(1);
|
|
274
|
+
while (dow_ != d.day_of_week()) {
|
|
275
|
+
d = d + one_day;
|
|
276
|
+
}
|
|
277
|
+
return d;
|
|
278
|
+
}
|
|
279
|
+
// added for streaming
|
|
280
|
+
month_type month() const
|
|
281
|
+
{
|
|
282
|
+
return month_;
|
|
283
|
+
}
|
|
284
|
+
day_of_week_type day_of_week() const
|
|
285
|
+
{
|
|
286
|
+
return dow_;
|
|
287
|
+
}
|
|
288
|
+
//! Returns string suitable for use in POSIX time zone string
|
|
289
|
+
/*! Returns a string formatted as "M4.1.0" ==> 1st Sunday in April. */
|
|
290
|
+
virtual std::string to_string() const
|
|
291
|
+
{
|
|
292
|
+
std::stringstream ss;
|
|
293
|
+
ss << 'M'
|
|
294
|
+
<< static_cast<int>(month_) << '.'
|
|
295
|
+
<< 1 << '.'
|
|
296
|
+
<< static_cast<int>(dow_);
|
|
297
|
+
return ss.str();
|
|
298
|
+
}
|
|
299
|
+
private:
|
|
300
|
+
month_type month_;
|
|
301
|
+
day_of_week_type dow_;
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
//! Calculate something like Last Sunday of January
|
|
307
|
+
/*! Useful generator functor for finding holidays and daylight savings
|
|
308
|
+
* Get the last day of the month and then calculate the difference
|
|
309
|
+
* to the last previous day.
|
|
310
|
+
* @param date_type A date class that exports day_of_week, month_type, etc.
|
|
311
|
+
* \ingroup date_alg
|
|
312
|
+
*/
|
|
313
|
+
template<class date_type>
|
|
314
|
+
class last_kday_of_month : public year_based_generator<date_type>
|
|
315
|
+
{
|
|
316
|
+
public:
|
|
317
|
+
typedef typename date_type::calendar_type calendar_type;
|
|
318
|
+
typedef typename calendar_type::day_of_week_type day_of_week_type;
|
|
319
|
+
typedef typename calendar_type::month_type month_type;
|
|
320
|
+
typedef typename calendar_type::year_type year_type;
|
|
321
|
+
typedef typename date_type::duration_type duration_type;
|
|
322
|
+
//!Specify the date spec like last 'Sunday' in 'April' spec
|
|
323
|
+
/*!@param dow The day of week, eg: Sunday, Monday, etc
|
|
324
|
+
* @param m The month of the year, eg: Jan, Feb, Mar, etc
|
|
325
|
+
*/
|
|
326
|
+
last_kday_of_month(day_of_week_type dow, month_type m) :
|
|
327
|
+
month_(m),
|
|
328
|
+
dow_(dow)
|
|
329
|
+
{}
|
|
330
|
+
//! Return a concrete date when provided with a year specific year.
|
|
331
|
+
date_type get_date(year_type year) const
|
|
332
|
+
{
|
|
333
|
+
date_type d(year, month_, calendar_type::end_of_month_day(year,month_));
|
|
334
|
+
duration_type one_day(1);
|
|
335
|
+
while (dow_ != d.day_of_week()) {
|
|
336
|
+
d = d - one_day;
|
|
337
|
+
}
|
|
338
|
+
return d;
|
|
339
|
+
}
|
|
340
|
+
// added for streaming
|
|
341
|
+
month_type month() const
|
|
342
|
+
{
|
|
343
|
+
return month_;
|
|
344
|
+
}
|
|
345
|
+
day_of_week_type day_of_week() const
|
|
346
|
+
{
|
|
347
|
+
return dow_;
|
|
348
|
+
}
|
|
349
|
+
//! Returns string suitable for use in POSIX time zone string
|
|
350
|
+
/*! Returns a string formatted as "M4.5.0" ==> last Sunday in April. */
|
|
351
|
+
virtual std::string to_string() const
|
|
352
|
+
{
|
|
353
|
+
std::stringstream ss;
|
|
354
|
+
ss << 'M'
|
|
355
|
+
<< static_cast<int>(month_) << '.'
|
|
356
|
+
<< 5 << '.'
|
|
357
|
+
<< static_cast<int>(dow_);
|
|
358
|
+
return ss.str();
|
|
359
|
+
}
|
|
360
|
+
private:
|
|
361
|
+
month_type month_;
|
|
362
|
+
day_of_week_type dow_;
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
//! Calculate something like "First Sunday after Jan 1,2002
|
|
367
|
+
/*! Date generator that takes a date and finds kday after
|
|
368
|
+
*@code
|
|
369
|
+
typedef boost::date_time::first_kday_after<date> firstkdayafter;
|
|
370
|
+
firstkdayafter fkaf(Monday);
|
|
371
|
+
fkaf.get_date(date(2002,Feb,1));
|
|
372
|
+
@endcode
|
|
373
|
+
* \ingroup date_alg
|
|
374
|
+
*/
|
|
375
|
+
template<class date_type>
|
|
376
|
+
class first_kday_after
|
|
377
|
+
{
|
|
378
|
+
public:
|
|
379
|
+
typedef typename date_type::calendar_type calendar_type;
|
|
380
|
+
typedef typename calendar_type::day_of_week_type day_of_week_type;
|
|
381
|
+
typedef typename date_type::duration_type duration_type;
|
|
382
|
+
first_kday_after(day_of_week_type dow) :
|
|
383
|
+
dow_(dow)
|
|
384
|
+
{}
|
|
385
|
+
//! Return next kday given.
|
|
386
|
+
date_type get_date(date_type start_day) const
|
|
387
|
+
{
|
|
388
|
+
duration_type one_day(1);
|
|
389
|
+
date_type d = start_day + one_day;
|
|
390
|
+
while (dow_ != d.day_of_week()) {
|
|
391
|
+
d = d + one_day;
|
|
392
|
+
}
|
|
393
|
+
return d;
|
|
394
|
+
}
|
|
395
|
+
// added for streaming
|
|
396
|
+
day_of_week_type day_of_week() const
|
|
397
|
+
{
|
|
398
|
+
return dow_;
|
|
399
|
+
}
|
|
400
|
+
private:
|
|
401
|
+
day_of_week_type dow_;
|
|
402
|
+
};
|
|
403
|
+
|
|
404
|
+
//! Calculate something like "First Sunday before Jan 1,2002
|
|
405
|
+
/*! Date generator that takes a date and finds kday after
|
|
406
|
+
*@code
|
|
407
|
+
typedef boost::date_time::first_kday_before<date> firstkdaybefore;
|
|
408
|
+
firstkdaybefore fkbf(Monday);
|
|
409
|
+
fkbf.get_date(date(2002,Feb,1));
|
|
410
|
+
@endcode
|
|
411
|
+
* \ingroup date_alg
|
|
412
|
+
*/
|
|
413
|
+
template<class date_type>
|
|
414
|
+
class first_kday_before
|
|
415
|
+
{
|
|
416
|
+
public:
|
|
417
|
+
typedef typename date_type::calendar_type calendar_type;
|
|
418
|
+
typedef typename calendar_type::day_of_week_type day_of_week_type;
|
|
419
|
+
typedef typename date_type::duration_type duration_type;
|
|
420
|
+
first_kday_before(day_of_week_type dow) :
|
|
421
|
+
dow_(dow)
|
|
422
|
+
{}
|
|
423
|
+
//! Return next kday given.
|
|
424
|
+
date_type get_date(date_type start_day) const
|
|
425
|
+
{
|
|
426
|
+
duration_type one_day(1);
|
|
427
|
+
date_type d = start_day - one_day;
|
|
428
|
+
while (dow_ != d.day_of_week()) {
|
|
429
|
+
d = d - one_day;
|
|
430
|
+
}
|
|
431
|
+
return d;
|
|
432
|
+
}
|
|
433
|
+
// added for streaming
|
|
434
|
+
day_of_week_type day_of_week() const
|
|
435
|
+
{
|
|
436
|
+
return dow_;
|
|
437
|
+
}
|
|
438
|
+
private:
|
|
439
|
+
day_of_week_type dow_;
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
//! Calculates the number of days until the next weekday
|
|
443
|
+
/*! Calculates the number of days until the next weekday.
|
|
444
|
+
* If the date given falls on a Sunday and the given weekday
|
|
445
|
+
* is Tuesday the result will be 2 days */
|
|
446
|
+
template<typename date_type, class weekday_type>
|
|
447
|
+
inline
|
|
448
|
+
typename date_type::duration_type days_until_weekday(const date_type& d, const weekday_type& wd)
|
|
449
|
+
{
|
|
450
|
+
typedef typename date_type::duration_type duration_type;
|
|
451
|
+
duration_type wks(0);
|
|
452
|
+
duration_type dd(wd.as_number() - d.day_of_week().as_number());
|
|
453
|
+
if(dd.is_negative()){
|
|
454
|
+
wks = duration_type(7);
|
|
455
|
+
}
|
|
456
|
+
return dd + wks;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
//! Calculates the number of days since the previous weekday
|
|
460
|
+
/*! Calculates the number of days since the previous weekday
|
|
461
|
+
* If the date given falls on a Sunday and the given weekday
|
|
462
|
+
* is Tuesday the result will be 5 days. The answer will be a positive
|
|
463
|
+
* number because Tuesday is 5 days before Sunday, not -5 days before. */
|
|
464
|
+
template<typename date_type, class weekday_type>
|
|
465
|
+
inline
|
|
466
|
+
typename date_type::duration_type days_before_weekday(const date_type& d, const weekday_type& wd)
|
|
467
|
+
{
|
|
468
|
+
typedef typename date_type::duration_type duration_type;
|
|
469
|
+
duration_type wks(0);
|
|
470
|
+
duration_type dd(wd.as_number() - d.day_of_week().as_number());
|
|
471
|
+
if(dd.days() > 0){
|
|
472
|
+
wks = duration_type(7);
|
|
473
|
+
}
|
|
474
|
+
// we want a number of days, not an offset. The value returned must
|
|
475
|
+
// be zero or larger.
|
|
476
|
+
return (-dd + wks);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
//! Generates a date object representing the date of the following weekday from the given date
|
|
480
|
+
/*! Generates a date object representing the date of the following
|
|
481
|
+
* weekday from the given date. If the date given is 2004-May-9
|
|
482
|
+
* (a Sunday) and the given weekday is Tuesday then the resulting date
|
|
483
|
+
* will be 2004-May-11. */
|
|
484
|
+
template<class date_type, class weekday_type>
|
|
485
|
+
inline
|
|
486
|
+
date_type next_weekday(const date_type& d, const weekday_type& wd)
|
|
487
|
+
{
|
|
488
|
+
return d + days_until_weekday(d, wd);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
//! Generates a date object representing the date of the previous weekday from the given date
|
|
492
|
+
/*! Generates a date object representing the date of the previous
|
|
493
|
+
* weekday from the given date. If the date given is 2004-May-9
|
|
494
|
+
* (a Sunday) and the given weekday is Tuesday then the resulting date
|
|
495
|
+
* will be 2004-May-4. */
|
|
496
|
+
template<class date_type, class weekday_type>
|
|
497
|
+
inline
|
|
498
|
+
date_type previous_weekday(const date_type& d, const weekday_type& wd)
|
|
499
|
+
{
|
|
500
|
+
return d - days_before_weekday(d, wd);
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
} } //namespace date_time
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
#endif
|
|
509
|
+
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#ifndef DATE_ITERATOR_HPP___
|
|
2
|
+
#define DATE_ITERATOR_HPP___
|
|
3
|
+
|
|
4
|
+
/* Copyright (c) 2002,2003 CrystalClear Software, Inc.
|
|
5
|
+
* Use, modification and distribution is subject to the
|
|
6
|
+
* Boost Software License, Version 1.0. (See accompanying
|
|
7
|
+
* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
|
8
|
+
* Author: Jeff Garland, Bart Garst
|
|
9
|
+
* $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#include <iterator>
|
|
13
|
+
|
|
14
|
+
namespace boost {
|
|
15
|
+
namespace date_time {
|
|
16
|
+
//! An iterator over dates with varying resolution (day, week, month, year, etc)
|
|
17
|
+
enum date_resolutions {day, week, months, year, decade, century, NumDateResolutions};
|
|
18
|
+
|
|
19
|
+
//! Base date iterator type
|
|
20
|
+
/*! This class provides the skeleton for the creation of iterators.
|
|
21
|
+
* New and interesting interators can be created by plugging in a new
|
|
22
|
+
* function that derives the next value from the current state.
|
|
23
|
+
* generation of various types of -based information.
|
|
24
|
+
*
|
|
25
|
+
* <b>Template Parameters</b>
|
|
26
|
+
*
|
|
27
|
+
* <b>date_type</b>
|
|
28
|
+
*
|
|
29
|
+
* The date_type is a concrete date_type. The date_type must
|
|
30
|
+
* define a duration_type and a calendar_type.
|
|
31
|
+
*/
|
|
32
|
+
template<class date_type>
|
|
33
|
+
class date_itr_base {
|
|
34
|
+
// works, but benefit unclear at the moment
|
|
35
|
+
// class date_itr_base : public std::iterator<std::input_iterator_tag,
|
|
36
|
+
// date_type, void, void, void>{
|
|
37
|
+
public:
|
|
38
|
+
typedef typename date_type::duration_type duration_type;
|
|
39
|
+
typedef date_type value_type;
|
|
40
|
+
typedef std::input_iterator_tag iterator_category;
|
|
41
|
+
|
|
42
|
+
date_itr_base(date_type d) : current_(d) {}
|
|
43
|
+
virtual ~date_itr_base() {};
|
|
44
|
+
date_itr_base& operator++()
|
|
45
|
+
{
|
|
46
|
+
current_ = current_ + get_offset(current_);
|
|
47
|
+
return *this;
|
|
48
|
+
}
|
|
49
|
+
date_itr_base& operator--()
|
|
50
|
+
{
|
|
51
|
+
current_ = current_ + get_neg_offset(current_);
|
|
52
|
+
return *this;
|
|
53
|
+
}
|
|
54
|
+
virtual duration_type get_offset(const date_type& current) const=0;
|
|
55
|
+
virtual duration_type get_neg_offset(const date_type& current) const=0;
|
|
56
|
+
date_type operator*() {return current_;};
|
|
57
|
+
date_type* operator->() {return ¤t_;};
|
|
58
|
+
bool operator< (const date_type& d) {return current_ < d;}
|
|
59
|
+
bool operator<= (const date_type& d) {return current_ <= d;}
|
|
60
|
+
bool operator> (const date_type& d) {return current_ > d;}
|
|
61
|
+
bool operator>= (const date_type& d) {return current_ >= d;}
|
|
62
|
+
bool operator== (const date_type& d) {return current_ == d;}
|
|
63
|
+
bool operator!= (const date_type& d) {return current_ != d;}
|
|
64
|
+
private:
|
|
65
|
+
date_type current_;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
//! Overrides the base date iterator providing hook for functors
|
|
69
|
+
/*
|
|
70
|
+
* <b>offset_functor</b>
|
|
71
|
+
*
|
|
72
|
+
* The offset functor must define a get_offset function that takes the
|
|
73
|
+
* current point in time and calculates and offset.
|
|
74
|
+
*
|
|
75
|
+
*/
|
|
76
|
+
template<class offset_functor, class date_type>
|
|
77
|
+
class date_itr : public date_itr_base<date_type> {
|
|
78
|
+
public:
|
|
79
|
+
typedef typename date_type::duration_type duration_type;
|
|
80
|
+
date_itr(date_type d, int factor=1) :
|
|
81
|
+
date_itr_base<date_type>(d),
|
|
82
|
+
of_(factor)
|
|
83
|
+
{}
|
|
84
|
+
private:
|
|
85
|
+
virtual duration_type get_offset(const date_type& current) const
|
|
86
|
+
{
|
|
87
|
+
return of_.get_offset(current);
|
|
88
|
+
}
|
|
89
|
+
virtual duration_type get_neg_offset(const date_type& current) const
|
|
90
|
+
{
|
|
91
|
+
return of_.get_neg_offset(current);
|
|
92
|
+
}
|
|
93
|
+
offset_functor of_;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
} } //namespace date_time
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
#endif
|