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,762 @@
|
|
|
1
|
+
// Boost.Function library
|
|
2
|
+
|
|
3
|
+
// Copyright Douglas Gregor 2001-2006. Use, modification and
|
|
4
|
+
// distribution is subject to the Boost Software License, Version
|
|
5
|
+
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
|
6
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
|
7
|
+
|
|
8
|
+
// For more information, see http://www.boost.org
|
|
9
|
+
|
|
10
|
+
#ifndef BOOST_FUNCTION_BASE_HEADER
|
|
11
|
+
#define BOOST_FUNCTION_BASE_HEADER
|
|
12
|
+
|
|
13
|
+
#include <stdexcept>
|
|
14
|
+
#include <string>
|
|
15
|
+
#include <memory>
|
|
16
|
+
#include <new>
|
|
17
|
+
#include <typeinfo>
|
|
18
|
+
#include <boost/config.hpp>
|
|
19
|
+
#include <boost/assert.hpp>
|
|
20
|
+
#include <boost/type_traits/is_integral.hpp>
|
|
21
|
+
#include <boost/type_traits/composite_traits.hpp>
|
|
22
|
+
#include <boost/ref.hpp>
|
|
23
|
+
#include <boost/mpl/if.hpp>
|
|
24
|
+
#include <boost/detail/workaround.hpp>
|
|
25
|
+
#include <boost/type_traits/alignment_of.hpp>
|
|
26
|
+
#ifndef BOOST_NO_SFINAE
|
|
27
|
+
# include "boost/utility/enable_if.hpp"
|
|
28
|
+
#else
|
|
29
|
+
# include "boost/mpl/bool.hpp"
|
|
30
|
+
#endif
|
|
31
|
+
#include <boost/function_equal.hpp>
|
|
32
|
+
|
|
33
|
+
#if defined(BOOST_MSVC)
|
|
34
|
+
# pragma warning( push )
|
|
35
|
+
# pragma warning( disable : 4793 ) // complaint about native code generation
|
|
36
|
+
# pragma warning( disable : 4127 ) // "conditional expression is constant"
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
// Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
|
|
40
|
+
#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
|
41
|
+
// Embedded VC++ does not have type_info in namespace std
|
|
42
|
+
# define BOOST_FUNCTION_STD_NS
|
|
43
|
+
#else
|
|
44
|
+
# define BOOST_FUNCTION_STD_NS std
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
// Borrowed from Boost.Python library: determines the cases where we
|
|
48
|
+
// need to use std::type_info::name to compare instead of operator==.
|
|
49
|
+
# if (defined(__GNUC__) && __GNUC__ >= 3) \
|
|
50
|
+
|| defined(_AIX) \
|
|
51
|
+
|| ( defined(__sgi) && defined(__host_mips))
|
|
52
|
+
# include <cstring>
|
|
53
|
+
# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) \
|
|
54
|
+
(std::strcmp((X).name(),(Y).name()) == 0)
|
|
55
|
+
# else
|
|
56
|
+
# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
|
|
57
|
+
#endif
|
|
58
|
+
|
|
59
|
+
#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 || defined(__ICL) && __ICL <= 600 || defined(__MWERKS__) && __MWERKS__ < 0x2406 && !defined(BOOST_STRICT_CONFIG)
|
|
60
|
+
# define BOOST_FUNCTION_TARGET_FIX(x) x
|
|
61
|
+
#else
|
|
62
|
+
# define BOOST_FUNCTION_TARGET_FIX(x)
|
|
63
|
+
#endif // not MSVC
|
|
64
|
+
|
|
65
|
+
#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG)
|
|
66
|
+
// Work around a compiler bug.
|
|
67
|
+
// boost::python::objects::function has to be seen by the compiler before the
|
|
68
|
+
// boost::function class template.
|
|
69
|
+
namespace boost { namespace python { namespace objects {
|
|
70
|
+
class function;
|
|
71
|
+
}}}
|
|
72
|
+
#endif
|
|
73
|
+
|
|
74
|
+
#if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
|
75
|
+
|| defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) \
|
|
76
|
+
|| !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
|
|
77
|
+
# define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
|
|
78
|
+
#endif
|
|
79
|
+
|
|
80
|
+
#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
|
81
|
+
# define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \
|
|
82
|
+
typename ::boost::enable_if_c<(::boost::type_traits::ice_not< \
|
|
83
|
+
(::boost::is_integral<Functor>::value)>::value), \
|
|
84
|
+
Type>::type
|
|
85
|
+
#else
|
|
86
|
+
// BCC doesn't recognize this depends on a template argument and complains
|
|
87
|
+
// about the use of 'typename'
|
|
88
|
+
# define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \
|
|
89
|
+
::boost::enable_if_c<(::boost::type_traits::ice_not< \
|
|
90
|
+
(::boost::is_integral<Functor>::value)>::value), \
|
|
91
|
+
Type>::type
|
|
92
|
+
#endif
|
|
93
|
+
|
|
94
|
+
#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
|
|
95
|
+
namespace boost {
|
|
96
|
+
|
|
97
|
+
#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG)
|
|
98
|
+
// The library shipping with MIPSpro 7.3.1.3m has a broken allocator<void>
|
|
99
|
+
class function_base;
|
|
100
|
+
|
|
101
|
+
template<typename Signature,
|
|
102
|
+
typename Allocator = std::allocator<function_base> >
|
|
103
|
+
class function;
|
|
104
|
+
#else
|
|
105
|
+
template<typename Signature, typename Allocator = std::allocator<void> >
|
|
106
|
+
class function;
|
|
107
|
+
#endif
|
|
108
|
+
|
|
109
|
+
template<typename Signature, typename Allocator>
|
|
110
|
+
inline void swap(function<Signature, Allocator>& f1,
|
|
111
|
+
function<Signature, Allocator>& f2)
|
|
112
|
+
{
|
|
113
|
+
f1.swap(f2);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
} // end namespace boost
|
|
117
|
+
#endif // have partial specialization
|
|
118
|
+
|
|
119
|
+
namespace boost {
|
|
120
|
+
namespace detail {
|
|
121
|
+
namespace function {
|
|
122
|
+
class X;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* A buffer used to store small function objects in
|
|
126
|
+
* boost::function. It is a union containing function pointers,
|
|
127
|
+
* object pointers, and a structure that resembles a bound
|
|
128
|
+
* member function pointer.
|
|
129
|
+
*/
|
|
130
|
+
union function_buffer
|
|
131
|
+
{
|
|
132
|
+
// For pointers to function objects
|
|
133
|
+
void* obj_ptr;
|
|
134
|
+
|
|
135
|
+
// For pointers to std::type_info objects
|
|
136
|
+
// (get_functor_type_tag, check_functor_type_tag).
|
|
137
|
+
const void* const_obj_ptr;
|
|
138
|
+
|
|
139
|
+
// For function pointers of all kinds
|
|
140
|
+
mutable void (*func_ptr)();
|
|
141
|
+
|
|
142
|
+
// For bound member pointers
|
|
143
|
+
struct bound_memfunc_ptr_t {
|
|
144
|
+
void (X::*memfunc_ptr)(int);
|
|
145
|
+
void* obj_ptr;
|
|
146
|
+
} bound_memfunc_ptr;
|
|
147
|
+
|
|
148
|
+
// To relax aliasing constraints
|
|
149
|
+
mutable char data;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* The unusable class is a placeholder for unused function arguments
|
|
154
|
+
* It is also completely unusable except that it constructable from
|
|
155
|
+
* anything. This helps compilers without partial specialization to
|
|
156
|
+
* handle Boost.Function objects returning void.
|
|
157
|
+
*/
|
|
158
|
+
struct unusable
|
|
159
|
+
{
|
|
160
|
+
unusable() {}
|
|
161
|
+
template<typename T> unusable(const T&) {}
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
/* Determine the return type. This supports compilers that do not support
|
|
165
|
+
* void returns or partial specialization by silently changing the return
|
|
166
|
+
* type to "unusable".
|
|
167
|
+
*/
|
|
168
|
+
template<typename T> struct function_return_type { typedef T type; };
|
|
169
|
+
|
|
170
|
+
template<>
|
|
171
|
+
struct function_return_type<void>
|
|
172
|
+
{
|
|
173
|
+
typedef unusable type;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
// The operation type to perform on the given functor/function pointer
|
|
177
|
+
enum functor_manager_operation_type {
|
|
178
|
+
clone_functor_tag,
|
|
179
|
+
destroy_functor_tag,
|
|
180
|
+
check_functor_type_tag,
|
|
181
|
+
get_functor_type_tag
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
// Tags used to decide between different types of functions
|
|
185
|
+
struct function_ptr_tag {};
|
|
186
|
+
struct function_obj_tag {};
|
|
187
|
+
struct member_ptr_tag {};
|
|
188
|
+
struct function_obj_ref_tag {};
|
|
189
|
+
|
|
190
|
+
template<typename F>
|
|
191
|
+
class get_function_tag
|
|
192
|
+
{
|
|
193
|
+
typedef typename mpl::if_c<(is_pointer<F>::value),
|
|
194
|
+
function_ptr_tag,
|
|
195
|
+
function_obj_tag>::type ptr_or_obj_tag;
|
|
196
|
+
|
|
197
|
+
typedef typename mpl::if_c<(is_member_pointer<F>::value),
|
|
198
|
+
member_ptr_tag,
|
|
199
|
+
ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag;
|
|
200
|
+
|
|
201
|
+
typedef typename mpl::if_c<(is_reference_wrapper<F>::value),
|
|
202
|
+
function_obj_ref_tag,
|
|
203
|
+
ptr_or_obj_or_mem_tag>::type or_ref_tag;
|
|
204
|
+
|
|
205
|
+
public:
|
|
206
|
+
typedef or_ref_tag type;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
// The trivial manager does nothing but return the same pointer (if we
|
|
210
|
+
// are cloning) or return the null pointer (if we are deleting).
|
|
211
|
+
template<typename F>
|
|
212
|
+
struct reference_manager
|
|
213
|
+
{
|
|
214
|
+
static inline void
|
|
215
|
+
manage(const function_buffer& in_buffer, function_buffer& out_buffer,
|
|
216
|
+
functor_manager_operation_type op)
|
|
217
|
+
{
|
|
218
|
+
switch (op) {
|
|
219
|
+
case clone_functor_tag:
|
|
220
|
+
out_buffer.obj_ptr = in_buffer.obj_ptr;
|
|
221
|
+
return;
|
|
222
|
+
|
|
223
|
+
case destroy_functor_tag:
|
|
224
|
+
out_buffer.obj_ptr = 0;
|
|
225
|
+
return;
|
|
226
|
+
|
|
227
|
+
case check_functor_type_tag:
|
|
228
|
+
{
|
|
229
|
+
// DPG TBD: Since we're only storing a pointer, it's
|
|
230
|
+
// possible that the user could ask for a base class or
|
|
231
|
+
// derived class. Is that okay?
|
|
232
|
+
const BOOST_FUNCTION_STD_NS::type_info& check_type =
|
|
233
|
+
*static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
|
|
234
|
+
if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(F)))
|
|
235
|
+
out_buffer.obj_ptr = in_buffer.obj_ptr;
|
|
236
|
+
else
|
|
237
|
+
out_buffer.obj_ptr = 0;
|
|
238
|
+
}
|
|
239
|
+
return;
|
|
240
|
+
|
|
241
|
+
case get_functor_type_tag:
|
|
242
|
+
out_buffer.const_obj_ptr = &typeid(F);
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Determine if boost::function can use the small-object
|
|
250
|
+
* optimization with the function object type F.
|
|
251
|
+
*/
|
|
252
|
+
template<typename F>
|
|
253
|
+
struct function_allows_small_object_optimization
|
|
254
|
+
{
|
|
255
|
+
BOOST_STATIC_CONSTANT
|
|
256
|
+
(bool,
|
|
257
|
+
value = ((sizeof(F) <= sizeof(function_buffer) &&
|
|
258
|
+
(alignment_of<function_buffer>::value
|
|
259
|
+
% alignment_of<F>::value == 0))));
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* The functor_manager class contains a static function "manage" which
|
|
264
|
+
* can clone or destroy the given function/function object pointer.
|
|
265
|
+
*/
|
|
266
|
+
template<typename Functor, typename Allocator>
|
|
267
|
+
struct functor_manager
|
|
268
|
+
{
|
|
269
|
+
private:
|
|
270
|
+
typedef Functor functor_type;
|
|
271
|
+
|
|
272
|
+
// For function pointers, the manager is trivial
|
|
273
|
+
static inline void
|
|
274
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
|
275
|
+
functor_manager_operation_type op, function_ptr_tag)
|
|
276
|
+
{
|
|
277
|
+
if (op == clone_functor_tag)
|
|
278
|
+
out_buffer.func_ptr = in_buffer.func_ptr;
|
|
279
|
+
else if (op == destroy_functor_tag)
|
|
280
|
+
out_buffer.func_ptr = 0;
|
|
281
|
+
else /* op == check_functor_type_tag */ {
|
|
282
|
+
const BOOST_FUNCTION_STD_NS::type_info& check_type =
|
|
283
|
+
*static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
|
|
284
|
+
if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
|
|
285
|
+
out_buffer.obj_ptr = &in_buffer.func_ptr;
|
|
286
|
+
else
|
|
287
|
+
out_buffer.obj_ptr = 0;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Function objects that fit in the small-object buffer.
|
|
292
|
+
static inline void
|
|
293
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
|
294
|
+
functor_manager_operation_type op, mpl::true_)
|
|
295
|
+
{
|
|
296
|
+
if (op == clone_functor_tag) {
|
|
297
|
+
const functor_type* in_functor =
|
|
298
|
+
reinterpret_cast<const functor_type*>(&in_buffer.data);
|
|
299
|
+
new ((void*)&out_buffer.data) functor_type(*in_functor);
|
|
300
|
+
} else if (op == destroy_functor_tag) {
|
|
301
|
+
// Some compilers (Borland, vc6, ...) are unhappy with ~functor_type.
|
|
302
|
+
reinterpret_cast<functor_type*>(&out_buffer.data)->~Functor();
|
|
303
|
+
} else /* op == check_functor_type_tag */ {
|
|
304
|
+
const BOOST_FUNCTION_STD_NS::type_info& check_type =
|
|
305
|
+
*static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
|
|
306
|
+
if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
|
|
307
|
+
out_buffer.obj_ptr = &in_buffer.data;
|
|
308
|
+
else
|
|
309
|
+
out_buffer.obj_ptr = 0;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Function objects that require heap allocation
|
|
314
|
+
static inline void
|
|
315
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
|
316
|
+
functor_manager_operation_type op, mpl::false_)
|
|
317
|
+
{
|
|
318
|
+
#ifndef BOOST_NO_STD_ALLOCATOR
|
|
319
|
+
typedef typename Allocator::template rebind<functor_type>::other
|
|
320
|
+
allocator_type;
|
|
321
|
+
typedef typename allocator_type::pointer pointer_type;
|
|
322
|
+
#else
|
|
323
|
+
typedef functor_type* pointer_type;
|
|
324
|
+
#endif // BOOST_NO_STD_ALLOCATOR
|
|
325
|
+
|
|
326
|
+
# ifndef BOOST_NO_STD_ALLOCATOR
|
|
327
|
+
allocator_type allocator;
|
|
328
|
+
# endif // BOOST_NO_STD_ALLOCATOR
|
|
329
|
+
|
|
330
|
+
if (op == clone_functor_tag) {
|
|
331
|
+
// GCC 2.95.3 gets the CV qualifiers wrong here, so we
|
|
332
|
+
// can't do the static_cast that we should do.
|
|
333
|
+
const functor_type* f =
|
|
334
|
+
(const functor_type*)(in_buffer.obj_ptr);
|
|
335
|
+
|
|
336
|
+
// Clone the functor
|
|
337
|
+
# ifndef BOOST_NO_STD_ALLOCATOR
|
|
338
|
+
pointer_type copy = allocator.allocate(1);
|
|
339
|
+
allocator.construct(copy, *f);
|
|
340
|
+
|
|
341
|
+
// Get back to the original pointer type
|
|
342
|
+
functor_type* new_f = static_cast<functor_type*>(copy);
|
|
343
|
+
# else
|
|
344
|
+
functor_type* new_f = new functor_type(*f);
|
|
345
|
+
# endif // BOOST_NO_STD_ALLOCATOR
|
|
346
|
+
out_buffer.obj_ptr = new_f;
|
|
347
|
+
} else if (op == destroy_functor_tag) {
|
|
348
|
+
/* Cast from the void pointer to the functor pointer type */
|
|
349
|
+
functor_type* f =
|
|
350
|
+
static_cast<functor_type*>(out_buffer.obj_ptr);
|
|
351
|
+
|
|
352
|
+
# ifndef BOOST_NO_STD_ALLOCATOR
|
|
353
|
+
/* Cast from the functor pointer type to the allocator's pointer
|
|
354
|
+
type */
|
|
355
|
+
pointer_type victim = static_cast<pointer_type>(f);
|
|
356
|
+
|
|
357
|
+
// Destroy and deallocate the functor
|
|
358
|
+
allocator.destroy(victim);
|
|
359
|
+
allocator.deallocate(victim, 1);
|
|
360
|
+
# else
|
|
361
|
+
delete f;
|
|
362
|
+
# endif // BOOST_NO_STD_ALLOCATOR
|
|
363
|
+
out_buffer.obj_ptr = 0;
|
|
364
|
+
} else /* op == check_functor_type_tag */ {
|
|
365
|
+
const BOOST_FUNCTION_STD_NS::type_info& check_type =
|
|
366
|
+
*static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
|
|
367
|
+
if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
|
|
368
|
+
out_buffer.obj_ptr = in_buffer.obj_ptr;
|
|
369
|
+
else
|
|
370
|
+
out_buffer.obj_ptr = 0;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// For function objects, we determine whether the function
|
|
375
|
+
// object can use the small-object optimization buffer or
|
|
376
|
+
// whether we need to allocate it on the heap.
|
|
377
|
+
static inline void
|
|
378
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
|
379
|
+
functor_manager_operation_type op, function_obj_tag)
|
|
380
|
+
{
|
|
381
|
+
manager(in_buffer, out_buffer, op,
|
|
382
|
+
mpl::bool_<(function_allows_small_object_optimization<functor_type>::value)>());
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// For member pointers, we treat them as function objects with
|
|
386
|
+
// the small-object optimization always enabled.
|
|
387
|
+
static inline void
|
|
388
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
|
389
|
+
functor_manager_operation_type op, member_ptr_tag)
|
|
390
|
+
{
|
|
391
|
+
manager(in_buffer, out_buffer, op, mpl::true_());
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
public:
|
|
395
|
+
/* Dispatch to an appropriate manager based on whether we have a
|
|
396
|
+
function pointer or a function object pointer. */
|
|
397
|
+
static inline void
|
|
398
|
+
manage(const function_buffer& in_buffer, function_buffer& out_buffer,
|
|
399
|
+
functor_manager_operation_type op)
|
|
400
|
+
{
|
|
401
|
+
typedef typename get_function_tag<functor_type>::type tag_type;
|
|
402
|
+
switch (op) {
|
|
403
|
+
case get_functor_type_tag:
|
|
404
|
+
out_buffer.const_obj_ptr = &typeid(functor_type);
|
|
405
|
+
return;
|
|
406
|
+
|
|
407
|
+
default:
|
|
408
|
+
manager(in_buffer, out_buffer, op, tag_type());
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
// A type that is only used for comparisons against zero
|
|
415
|
+
struct useless_clear_type {};
|
|
416
|
+
|
|
417
|
+
#ifdef BOOST_NO_SFINAE
|
|
418
|
+
// These routines perform comparisons between a Boost.Function
|
|
419
|
+
// object and an arbitrary function object (when the last
|
|
420
|
+
// parameter is mpl::bool_<false>) or against zero (when the
|
|
421
|
+
// last parameter is mpl::bool_<true>). They are only necessary
|
|
422
|
+
// for compilers that don't support SFINAE.
|
|
423
|
+
template<typename Function, typename Functor>
|
|
424
|
+
bool
|
|
425
|
+
compare_equal(const Function& f, const Functor&, int, mpl::bool_<true>)
|
|
426
|
+
{ return f.empty(); }
|
|
427
|
+
|
|
428
|
+
template<typename Function, typename Functor>
|
|
429
|
+
bool
|
|
430
|
+
compare_not_equal(const Function& f, const Functor&, int,
|
|
431
|
+
mpl::bool_<true>)
|
|
432
|
+
{ return !f.empty(); }
|
|
433
|
+
|
|
434
|
+
template<typename Function, typename Functor>
|
|
435
|
+
bool
|
|
436
|
+
compare_equal(const Function& f, const Functor& g, long,
|
|
437
|
+
mpl::bool_<false>)
|
|
438
|
+
{
|
|
439
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
440
|
+
return function_equal(*fp, g);
|
|
441
|
+
else return false;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
template<typename Function, typename Functor>
|
|
445
|
+
bool
|
|
446
|
+
compare_equal(const Function& f, const reference_wrapper<Functor>& g,
|
|
447
|
+
int, mpl::bool_<false>)
|
|
448
|
+
{
|
|
449
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
450
|
+
return fp == g.get_pointer();
|
|
451
|
+
else return false;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
template<typename Function, typename Functor>
|
|
455
|
+
bool
|
|
456
|
+
compare_not_equal(const Function& f, const Functor& g, long,
|
|
457
|
+
mpl::bool_<false>)
|
|
458
|
+
{
|
|
459
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
460
|
+
return !function_equal(*fp, g);
|
|
461
|
+
else return true;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
template<typename Function, typename Functor>
|
|
465
|
+
bool
|
|
466
|
+
compare_not_equal(const Function& f,
|
|
467
|
+
const reference_wrapper<Functor>& g, int,
|
|
468
|
+
mpl::bool_<false>)
|
|
469
|
+
{
|
|
470
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
471
|
+
return fp != g.get_pointer();
|
|
472
|
+
else return true;
|
|
473
|
+
}
|
|
474
|
+
#endif // BOOST_NO_SFINAE
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Stores the "manager" portion of the vtable for a
|
|
478
|
+
* boost::function object.
|
|
479
|
+
*/
|
|
480
|
+
struct vtable_base
|
|
481
|
+
{
|
|
482
|
+
void (*manager)(const function_buffer& in_buffer,
|
|
483
|
+
function_buffer& out_buffer,
|
|
484
|
+
functor_manager_operation_type op);
|
|
485
|
+
};
|
|
486
|
+
} // end namespace function
|
|
487
|
+
} // end namespace detail
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* The function_base class contains the basic elements needed for the
|
|
491
|
+
* function1, function2, function3, etc. classes. It is common to all
|
|
492
|
+
* functions (and as such can be used to tell if we have one of the
|
|
493
|
+
* functionN objects).
|
|
494
|
+
*/
|
|
495
|
+
class function_base
|
|
496
|
+
{
|
|
497
|
+
public:
|
|
498
|
+
function_base() : vtable(0) { }
|
|
499
|
+
|
|
500
|
+
/** Determine if the function is empty (i.e., has no target). */
|
|
501
|
+
bool empty() const { return !vtable; }
|
|
502
|
+
|
|
503
|
+
/** Retrieve the type of the stored function object, or typeid(void)
|
|
504
|
+
if this is empty. */
|
|
505
|
+
const BOOST_FUNCTION_STD_NS::type_info& target_type() const
|
|
506
|
+
{
|
|
507
|
+
if (!vtable) return typeid(void);
|
|
508
|
+
|
|
509
|
+
detail::function::function_buffer type;
|
|
510
|
+
vtable->manager(functor, type, detail::function::get_functor_type_tag);
|
|
511
|
+
return *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(type.const_obj_ptr);
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
template<typename Functor>
|
|
515
|
+
Functor* target()
|
|
516
|
+
{
|
|
517
|
+
if (!vtable) return 0;
|
|
518
|
+
|
|
519
|
+
detail::function::function_buffer type_result;
|
|
520
|
+
type_result.const_obj_ptr = &typeid(Functor);
|
|
521
|
+
vtable->manager(functor, type_result,
|
|
522
|
+
detail::function::check_functor_type_tag);
|
|
523
|
+
return static_cast<Functor*>(type_result.obj_ptr);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
template<typename Functor>
|
|
527
|
+
#if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
|
528
|
+
const Functor* target( Functor * = 0 ) const
|
|
529
|
+
#else
|
|
530
|
+
const Functor* target() const
|
|
531
|
+
#endif
|
|
532
|
+
{
|
|
533
|
+
if (!vtable) return 0;
|
|
534
|
+
|
|
535
|
+
detail::function::function_buffer type_result;
|
|
536
|
+
type_result.const_obj_ptr = &typeid(Functor);
|
|
537
|
+
vtable->manager(functor, type_result,
|
|
538
|
+
detail::function::check_functor_type_tag);
|
|
539
|
+
// GCC 2.95.3 gets the CV qualifiers wrong here, so we
|
|
540
|
+
// can't do the static_cast that we should do.
|
|
541
|
+
return (const Functor*)(type_result.obj_ptr);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
template<typename F>
|
|
545
|
+
bool contains(const F& f) const
|
|
546
|
+
{
|
|
547
|
+
#if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
|
548
|
+
if (const F* fp = this->target( (F*)0 ))
|
|
549
|
+
#else
|
|
550
|
+
if (const F* fp = this->template target<F>())
|
|
551
|
+
#endif
|
|
552
|
+
{
|
|
553
|
+
return function_equal(*fp, f);
|
|
554
|
+
} else {
|
|
555
|
+
return false;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
#if defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3
|
|
560
|
+
// GCC 3.3 and newer cannot copy with the global operator==, due to
|
|
561
|
+
// problems with instantiation of function return types before it
|
|
562
|
+
// has been verified that the argument types match up.
|
|
563
|
+
template<typename Functor>
|
|
564
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
565
|
+
operator==(Functor g) const
|
|
566
|
+
{
|
|
567
|
+
if (const Functor* fp = target<Functor>())
|
|
568
|
+
return function_equal(*fp, g);
|
|
569
|
+
else return false;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
template<typename Functor>
|
|
573
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
574
|
+
operator!=(Functor g) const
|
|
575
|
+
{
|
|
576
|
+
if (const Functor* fp = target<Functor>())
|
|
577
|
+
return !function_equal(*fp, g);
|
|
578
|
+
else return true;
|
|
579
|
+
}
|
|
580
|
+
#endif
|
|
581
|
+
|
|
582
|
+
public: // should be protected, but GCC 2.95.3 will fail to allow access
|
|
583
|
+
const detail::function::vtable_base* vtable;
|
|
584
|
+
mutable detail::function::function_buffer functor;
|
|
585
|
+
};
|
|
586
|
+
|
|
587
|
+
/**
|
|
588
|
+
* The bad_function_call exception class is thrown when a boost::function
|
|
589
|
+
* object is invoked
|
|
590
|
+
*/
|
|
591
|
+
class bad_function_call : public std::runtime_error
|
|
592
|
+
{
|
|
593
|
+
public:
|
|
594
|
+
bad_function_call() : std::runtime_error("call to empty boost::function") {}
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
#ifndef BOOST_NO_SFINAE
|
|
598
|
+
inline bool operator==(const function_base& f,
|
|
599
|
+
detail::function::useless_clear_type*)
|
|
600
|
+
{
|
|
601
|
+
return f.empty();
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
inline bool operator!=(const function_base& f,
|
|
605
|
+
detail::function::useless_clear_type*)
|
|
606
|
+
{
|
|
607
|
+
return !f.empty();
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
inline bool operator==(detail::function::useless_clear_type*,
|
|
611
|
+
const function_base& f)
|
|
612
|
+
{
|
|
613
|
+
return f.empty();
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
inline bool operator!=(detail::function::useless_clear_type*,
|
|
617
|
+
const function_base& f)
|
|
618
|
+
{
|
|
619
|
+
return !f.empty();
|
|
620
|
+
}
|
|
621
|
+
#endif
|
|
622
|
+
|
|
623
|
+
#ifdef BOOST_NO_SFINAE
|
|
624
|
+
// Comparisons between boost::function objects and arbitrary function objects
|
|
625
|
+
template<typename Functor>
|
|
626
|
+
inline bool operator==(const function_base& f, Functor g)
|
|
627
|
+
{
|
|
628
|
+
typedef mpl::bool_<(is_integral<Functor>::value)> integral;
|
|
629
|
+
return detail::function::compare_equal(f, g, 0, integral());
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
template<typename Functor>
|
|
633
|
+
inline bool operator==(Functor g, const function_base& f)
|
|
634
|
+
{
|
|
635
|
+
typedef mpl::bool_<(is_integral<Functor>::value)> integral;
|
|
636
|
+
return detail::function::compare_equal(f, g, 0, integral());
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
template<typename Functor>
|
|
640
|
+
inline bool operator!=(const function_base& f, Functor g)
|
|
641
|
+
{
|
|
642
|
+
typedef mpl::bool_<(is_integral<Functor>::value)> integral;
|
|
643
|
+
return detail::function::compare_not_equal(f, g, 0, integral());
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
template<typename Functor>
|
|
647
|
+
inline bool operator!=(Functor g, const function_base& f)
|
|
648
|
+
{
|
|
649
|
+
typedef mpl::bool_<(is_integral<Functor>::value)> integral;
|
|
650
|
+
return detail::function::compare_not_equal(f, g, 0, integral());
|
|
651
|
+
}
|
|
652
|
+
#else
|
|
653
|
+
|
|
654
|
+
# if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
|
|
655
|
+
// Comparisons between boost::function objects and arbitrary function
|
|
656
|
+
// objects. GCC 3.3 and before has an obnoxious bug that prevents this
|
|
657
|
+
// from working.
|
|
658
|
+
template<typename Functor>
|
|
659
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
660
|
+
operator==(const function_base& f, Functor g)
|
|
661
|
+
{
|
|
662
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
663
|
+
return function_equal(*fp, g);
|
|
664
|
+
else return false;
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
template<typename Functor>
|
|
668
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
669
|
+
operator==(Functor g, const function_base& f)
|
|
670
|
+
{
|
|
671
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
672
|
+
return function_equal(g, *fp);
|
|
673
|
+
else return false;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
template<typename Functor>
|
|
677
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
678
|
+
operator!=(const function_base& f, Functor g)
|
|
679
|
+
{
|
|
680
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
681
|
+
return !function_equal(*fp, g);
|
|
682
|
+
else return true;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
template<typename Functor>
|
|
686
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
687
|
+
operator!=(Functor g, const function_base& f)
|
|
688
|
+
{
|
|
689
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
690
|
+
return !function_equal(g, *fp);
|
|
691
|
+
else return true;
|
|
692
|
+
}
|
|
693
|
+
# endif
|
|
694
|
+
|
|
695
|
+
template<typename Functor>
|
|
696
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
697
|
+
operator==(const function_base& f, reference_wrapper<Functor> g)
|
|
698
|
+
{
|
|
699
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
700
|
+
return fp == g.get_pointer();
|
|
701
|
+
else return false;
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
template<typename Functor>
|
|
705
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
706
|
+
operator==(reference_wrapper<Functor> g, const function_base& f)
|
|
707
|
+
{
|
|
708
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
709
|
+
return g.get_pointer() == fp;
|
|
710
|
+
else return false;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
template<typename Functor>
|
|
714
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
715
|
+
operator!=(const function_base& f, reference_wrapper<Functor> g)
|
|
716
|
+
{
|
|
717
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
718
|
+
return fp != g.get_pointer();
|
|
719
|
+
else return true;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
template<typename Functor>
|
|
723
|
+
BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
|
|
724
|
+
operator!=(reference_wrapper<Functor> g, const function_base& f)
|
|
725
|
+
{
|
|
726
|
+
if (const Functor* fp = f.template target<Functor>())
|
|
727
|
+
return g.get_pointer() != fp;
|
|
728
|
+
else return true;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
#endif // Compiler supporting SFINAE
|
|
732
|
+
|
|
733
|
+
namespace detail {
|
|
734
|
+
namespace function {
|
|
735
|
+
inline bool has_empty_target(const function_base* f)
|
|
736
|
+
{
|
|
737
|
+
return f->empty();
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1310)
|
|
741
|
+
inline bool has_empty_target(const void*)
|
|
742
|
+
{
|
|
743
|
+
return false;
|
|
744
|
+
}
|
|
745
|
+
#else
|
|
746
|
+
inline bool has_empty_target(...)
|
|
747
|
+
{
|
|
748
|
+
return false;
|
|
749
|
+
}
|
|
750
|
+
#endif
|
|
751
|
+
} // end namespace function
|
|
752
|
+
} // end namespace detail
|
|
753
|
+
} // end namespace boost
|
|
754
|
+
|
|
755
|
+
#undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL
|
|
756
|
+
#undef BOOST_FUNCTION_COMPARE_TYPE_ID
|
|
757
|
+
|
|
758
|
+
#if defined(BOOST_MSVC)
|
|
759
|
+
# pragma warning( pop )
|
|
760
|
+
#endif
|
|
761
|
+
|
|
762
|
+
#endif // BOOST_FUNCTION_BASE_HEADER
|