passenger 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/DEVELOPERS.TXT +52 -0
- data/INSTALL +2 -0
- data/LICENSE +352 -0
- data/README +19 -0
- data/Rakefile +435 -0
- data/benchmark/DummyRequestHandler.cpp +101 -0
- data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +126 -0
- data/benchmark/dispatcher.rb +46 -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-install-apache2-module +274 -0
- data/bin/passenger-spawn-server +38 -0
- data/doc/ApplicationPool algorithm.txt +290 -0
- data/doc/Architectural overview.html +740 -0
- data/doc/Architectural overview.txt +339 -0
- data/doc/Doxyfile +241 -0
- data/doc/Security of user switching support.html +605 -0
- data/doc/Security of user switching support.txt +197 -0
- data/doc/Users guide.html +1356 -0
- data/doc/Users guide.txt +707 -0
- data/doc/cxxapi/ApplicationPoolClientServer_8h-source.html +673 -0
- data/doc/cxxapi/ApplicationPool_8h-source.html +189 -0
- data/doc/cxxapi/Application_8h-source.html +402 -0
- data/doc/cxxapi/Configuration_8h-source.html +145 -0
- data/doc/cxxapi/DummySpawnManager_8h-source.html +121 -0
- data/doc/cxxapi/Exceptions_8h-source.html +188 -0
- data/doc/cxxapi/Hooks_8h-source.html +58 -0
- data/doc/cxxapi/Logging_8h-source.html +103 -0
- data/doc/cxxapi/MessageChannel_8h-source.html +483 -0
- data/doc/cxxapi/SpawnManager_8h-source.html +552 -0
- data/doc/cxxapi/StandardApplicationPool_8h-source.html +554 -0
- data/doc/cxxapi/Utils_8h-source.html +176 -0
- data/doc/cxxapi/annotated.html +43 -0
- data/doc/cxxapi/classPassenger_1_1Application-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1Application.html +224 -0
- data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +34 -0
- data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +272 -0
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +31 -0
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +216 -0
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +294 -0
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +28 -0
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +46 -0
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +28 -0
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +46 -0
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +28 -0
- data/doc/cxxapi/classPassenger_1_1IOException.html +49 -0
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +42 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +568 -0
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +30 -0
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +74 -0
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +32 -0
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +234 -0
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +35 -0
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +320 -0
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +32 -0
- data/doc/cxxapi/classPassenger_1_1SystemException.html +144 -0
- data/doc/cxxapi/definitions_8h-source.html +25 -0
- data/doc/cxxapi/doxygen.css +358 -0
- data/doc/cxxapi/doxygen.png +0 -0
- data/doc/cxxapi/files.html +35 -0
- data/doc/cxxapi/ftv2blank.png +0 -0
- data/doc/cxxapi/ftv2doc.png +0 -0
- data/doc/cxxapi/ftv2folderclosed.png +0 -0
- data/doc/cxxapi/ftv2folderopen.png +0 -0
- data/doc/cxxapi/ftv2lastnode.png +0 -0
- data/doc/cxxapi/ftv2link.png +0 -0
- data/doc/cxxapi/ftv2mlastnode.png +0 -0
- data/doc/cxxapi/ftv2mnode.png +0 -0
- data/doc/cxxapi/ftv2node.png +0 -0
- data/doc/cxxapi/ftv2plastnode.png +0 -0
- data/doc/cxxapi/ftv2pnode.png +0 -0
- data/doc/cxxapi/ftv2vertline.png +0 -0
- data/doc/cxxapi/functions.html +160 -0
- data/doc/cxxapi/functions_func.html +158 -0
- data/doc/cxxapi/functions_type.html +40 -0
- data/doc/cxxapi/graph_legend.dot +22 -0
- data/doc/cxxapi/graph_legend.html +82 -0
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Configuration.html +231 -0
- data/doc/cxxapi/group__Configuration.png +0 -0
- data/doc/cxxapi/group__Core.html +39 -0
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +32 -0
- data/doc/cxxapi/group__Hooks.html +41 -0
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +258 -0
- data/doc/cxxapi/hierarchy.html +51 -0
- data/doc/cxxapi/index.html +11 -0
- data/doc/cxxapi/inherit__graph__0.map +1 -0
- data/doc/cxxapi/inherit__graph__0.md5 +1 -0
- data/doc/cxxapi/inherit__graph__0.png +0 -0
- data/doc/cxxapi/inherit__graph__1.map +1 -0
- data/doc/cxxapi/inherit__graph__1.md5 +1 -0
- data/doc/cxxapi/inherit__graph__1.png +0 -0
- data/doc/cxxapi/inherit__graph__2.map +1 -0
- data/doc/cxxapi/inherit__graph__2.md5 +1 -0
- data/doc/cxxapi/inherit__graph__2.png +0 -0
- data/doc/cxxapi/inherit__graph__3.map +1 -0
- data/doc/cxxapi/inherit__graph__3.md5 +1 -0
- data/doc/cxxapi/inherit__graph__3.png +0 -0
- data/doc/cxxapi/inherit__graph__4.map +2 -0
- data/doc/cxxapi/inherit__graph__4.md5 +1 -0
- data/doc/cxxapi/inherit__graph__4.png +0 -0
- data/doc/cxxapi/inherit__graph__5.map +1 -0
- data/doc/cxxapi/inherit__graph__5.md5 +1 -0
- data/doc/cxxapi/inherit__graph__5.png +0 -0
- data/doc/cxxapi/inherit__graph__6.map +1 -0
- data/doc/cxxapi/inherit__graph__6.md5 +1 -0
- data/doc/cxxapi/inherit__graph__6.png +0 -0
- data/doc/cxxapi/inherit__graph__7.map +5 -0
- data/doc/cxxapi/inherit__graph__7.md5 +1 -0
- data/doc/cxxapi/inherit__graph__7.png +0 -0
- data/doc/cxxapi/inherit__graph__8.map +1 -0
- data/doc/cxxapi/inherit__graph__8.md5 +1 -0
- data/doc/cxxapi/inherit__graph__8.png +0 -0
- data/doc/cxxapi/inherit__graph__9.map +1 -0
- data/doc/cxxapi/inherit__graph__9.md5 +1 -0
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +61 -0
- data/doc/cxxapi/main.html +22 -0
- data/doc/cxxapi/modules.html +29 -0
- data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +28 -0
- data/doc/cxxapi/structPassenger_1_1AnythingToString.html +44 -0
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +28 -0
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +44 -0
- data/doc/cxxapi/tab_b.gif +0 -0
- data/doc/cxxapi/tab_l.gif +0 -0
- data/doc/cxxapi/tab_r.gif +0 -0
- data/doc/cxxapi/tabs.css +102 -0
- data/doc/cxxapi/tree.html +138 -0
- data/doc/definitions.h +5 -0
- data/doc/images/by_sa.png +0 -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/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 +158 -0
- data/doc/rdoc/classes/Exception.html +120 -0
- data/doc/rdoc/classes/GC.html +113 -0
- data/doc/rdoc/classes/IO.html +150 -0
- data/doc/rdoc/classes/Passenger.html +117 -0
- data/doc/rdoc/classes/Passenger/AbstractServer.html +609 -0
- data/doc/rdoc/classes/Passenger/AbstractServer/ServerAlreadyStarted.html +97 -0
- data/doc/rdoc/classes/Passenger/AbstractServer/ServerError.html +96 -0
- data/doc/rdoc/classes/Passenger/AbstractServer/ServerNotStarted.html +97 -0
- data/doc/rdoc/classes/Passenger/AbstractServer/UnknownMessage.html +96 -0
- data/doc/rdoc/classes/Passenger/AppInitError.html +106 -0
- data/doc/rdoc/classes/Passenger/Application.html +297 -0
- data/doc/rdoc/classes/Passenger/ApplicationSpawner.html +334 -0
- data/doc/rdoc/classes/Passenger/ApplicationSpawner/Error.html +98 -0
- data/doc/rdoc/classes/Passenger/CGIFixed.html +200 -0
- data/doc/rdoc/classes/Passenger/ConsoleTextTemplate.html +172 -0
- data/doc/rdoc/classes/Passenger/FrameworkInitError.html +144 -0
- data/doc/rdoc/classes/Passenger/FrameworkSpawner.html +429 -0
- data/doc/rdoc/classes/Passenger/FrameworkSpawner/Error.html +98 -0
- data/doc/rdoc/classes/Passenger/HTMLTemplate.html +175 -0
- data/doc/rdoc/classes/Passenger/InitializationError.html +141 -0
- data/doc/rdoc/classes/Passenger/MessageChannel.html +488 -0
- data/doc/rdoc/classes/Passenger/NativeSupport.html +320 -0
- data/doc/rdoc/classes/Passenger/RequestHandler.html +415 -0
- data/doc/rdoc/classes/Passenger/SpawnManager.html +373 -0
- data/doc/rdoc/classes/Passenger/UnknownError.html +125 -0
- data/doc/rdoc/classes/Passenger/Utils.html +352 -0
- data/doc/rdoc/classes/Passenger/VersionNotFound.html +140 -0
- data/doc/rdoc/classes/PlatformInfo.html +279 -0
- data/doc/rdoc/classes/RakeExtensions.html +197 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/DEVELOPERS_TXT.html +178 -0
- data/doc/rdoc/files/README.html +120 -0
- data/doc/rdoc/files/ext/passenger/native_support_c.html +92 -0
- data/doc/rdoc/files/lib/passenger/abstract_server_rb.html +121 -0
- data/doc/rdoc/files/lib/passenger/application_rb.html +119 -0
- data/doc/rdoc/files/lib/passenger/application_spawner_rb.html +128 -0
- data/doc/rdoc/files/lib/passenger/cgi_fixed_rb.html +127 -0
- data/doc/rdoc/files/lib/passenger/console_text_template_rb.html +118 -0
- data/doc/rdoc/files/lib/passenger/dependencies_rb.html +124 -0
- data/doc/rdoc/files/lib/passenger/framework_spawner_rb.html +135 -0
- data/doc/rdoc/files/lib/passenger/html_template_rb.html +118 -0
- data/doc/rdoc/files/lib/passenger/message_channel_rb.html +118 -0
- data/doc/rdoc/files/lib/passenger/platform_info_rb.html +118 -0
- data/doc/rdoc/files/lib/passenger/request_handler_rb.html +122 -0
- data/doc/rdoc/files/lib/passenger/simple_benchmarking_rb.html +114 -0
- data/doc/rdoc/files/lib/passenger/spawn_manager_rb.html +124 -0
- data/doc/rdoc/files/lib/passenger/utils_rb.html +123 -0
- data/doc/rdoc/files/lib/rake/extensions_rb.html +122 -0
- data/doc/rdoc/fr_class_index.html +76 -0
- data/doc/rdoc/fr_file_index.html +64 -0
- data/doc/rdoc/fr_method_index.html +125 -0
- data/doc/rdoc/index.html +26 -0
- data/doc/rdoc/rdoc-style.css +187 -0
- data/doc/template/horo.rb +613 -0
- data/ext/apache2/Application.h +382 -0
- data/ext/apache2/ApplicationPool.h +169 -0
- data/ext/apache2/ApplicationPoolClientServer.h +653 -0
- data/ext/apache2/Configuration.cpp +294 -0
- data/ext/apache2/Configuration.h +125 -0
- data/ext/apache2/DummySpawnManager.h +101 -0
- data/ext/apache2/Exceptions.h +168 -0
- data/ext/apache2/Hooks.cpp +630 -0
- data/ext/apache2/Hooks.h +38 -0
- data/ext/apache2/LICENSE-CNRI.TXT +64 -0
- data/ext/apache2/Logging.cpp +48 -0
- data/ext/apache2/Logging.h +83 -0
- data/ext/apache2/MessageChannel.h +463 -0
- data/ext/apache2/SpawnManager.h +532 -0
- data/ext/apache2/StandardApplicationPool.h +534 -0
- data/ext/apache2/Utils.cpp +108 -0
- data/ext/apache2/Utils.h +156 -0
- data/ext/apache2/mod_passenger.c +31 -0
- data/ext/boost/LICENSE.TXT +23 -0
- data/ext/boost/VERSION.TXT +1 -0
- data/ext/boost/assert.hpp +37 -0
- data/ext/boost/bind.hpp +1651 -0
- data/ext/boost/bind/apply.hpp +74 -0
- data/ext/boost/bind/arg.hpp +36 -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 +226 -0
- data/ext/boost/bind/make_adaptable.hpp +187 -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/mem_fn_vw.hpp +130 -0
- data/ext/boost/bind/placeholders.hpp +68 -0
- data/ext/boost/bind/protect.hpp +144 -0
- data/ext/boost/bind/storage.hpp +475 -0
- data/ext/boost/checked_delete.hpp +69 -0
- data/ext/boost/config.hpp +70 -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 +20 -0
- data/ext/boost/config/abi_suffix.hpp +23 -0
- data/ext/boost/config/auto_link.hpp +363 -0
- data/ext/boost/config/compiler/borland.hpp +190 -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 +49 -0
- data/ext/boost/config/compiler/gcc.hpp +105 -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 +72 -0
- data/ext/boost/config/compiler/intel.hpp +158 -0
- data/ext/boost/config/compiler/kai.hpp +35 -0
- data/ext/boost/config/compiler/metrowerks.hpp +104 -0
- data/ext/boost/config/compiler/mpw.hpp +51 -0
- data/ext/boost/config/compiler/sgi_mipspro.hpp +24 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +92 -0
- data/ext/boost/config/compiler/vacpp.hpp +57 -0
- data/ext/boost/config/compiler/visualc.hpp +178 -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 +48 -0
- data/ext/boost/config/platform/hpux.hpp +85 -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 +87 -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 +127 -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 +569 -0
- data/ext/boost/config/user.hpp +124 -0
- data/ext/boost/cstdint.hpp +446 -0
- data/ext/boost/detail/bad_weak_ptr.hpp +59 -0
- data/ext/boost/detail/reference_content.hpp +141 -0
- data/ext/boost/detail/shared_count.hpp +376 -0
- data/ext/boost/detail/sp_counted_base.hpp +69 -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_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_w32.hpp +130 -0
- data/ext/boost/detail/sp_counted_impl.hpp +232 -0
- data/ext/boost/detail/workaround.hpp +74 -0
- data/ext/boost/format.hpp +59 -0
- data/ext/boost/format/alt_sstream.hpp +176 -0
- data/ext/boost/format/alt_sstream_impl.hpp +296 -0
- data/ext/boost/format/detail/compat_workarounds.hpp +86 -0
- data/ext/boost/format/detail/config_macros.hpp +97 -0
- data/ext/boost/format/detail/msvc_disambiguater.hpp +56 -0
- data/ext/boost/format/detail/unset_macros.hpp +34 -0
- data/ext/boost/format/detail/workarounds_gcc-2_95.hpp +162 -0
- data/ext/boost/format/detail/workarounds_stlport.hpp +42 -0
- data/ext/boost/format/exceptions.hpp +103 -0
- data/ext/boost/format/feed_args.hpp +267 -0
- data/ext/boost/format/format_class.hpp +143 -0
- data/ext/boost/format/format_fwd.hpp +49 -0
- data/ext/boost/format/format_implementation.hpp +277 -0
- data/ext/boost/format/free_funcs.hpp +70 -0
- data/ext/boost/format/group.hpp +676 -0
- data/ext/boost/format/internals.hpp +199 -0
- data/ext/boost/format/internals_fwd.hpp +60 -0
- data/ext/boost/format/parsing.hpp +491 -0
- data/ext/boost/function.hpp +64 -0
- data/ext/boost/function/detail/function_iterate.hpp +16 -0
- data/ext/boost/function/detail/gen_maybe_include.pl +37 -0
- data/ext/boost/function/detail/maybe_include.hpp +267 -0
- data/ext/boost/function/detail/prologue.hpp +24 -0
- data/ext/boost/function/function0.hpp +12 -0
- data/ext/boost/function/function1.hpp +12 -0
- data/ext/boost/function/function10.hpp +12 -0
- data/ext/boost/function/function2.hpp +12 -0
- data/ext/boost/function/function3.hpp +12 -0
- data/ext/boost/function/function4.hpp +12 -0
- data/ext/boost/function/function5.hpp +12 -0
- data/ext/boost/function/function6.hpp +12 -0
- data/ext/boost/function/function7.hpp +12 -0
- data/ext/boost/function/function8.hpp +12 -0
- data/ext/boost/function/function9.hpp +12 -0
- data/ext/boost/function/function_base.hpp +736 -0
- data/ext/boost/function/function_template.hpp +837 -0
- data/ext/boost/function/gen_function_N.pl +26 -0
- data/ext/boost/function_equal.hpp +28 -0
- data/ext/boost/get_pointer.hpp +29 -0
- data/ext/boost/limits.hpp +144 -0
- data/ext/boost/mem_fn.hpp +389 -0
- data/ext/boost/mpl/O1_size.hpp +40 -0
- data/ext/boost/mpl/O1_size_fwd.hpp +24 -0
- data/ext/boost/mpl/accumulate.hpp +39 -0
- data/ext/boost/mpl/advance.hpp +76 -0
- data/ext/boost/mpl/advance_fwd.hpp +28 -0
- data/ext/boost/mpl/alias.hpp +21 -0
- data/ext/boost/mpl/always.hpp +39 -0
- data/ext/boost/mpl/and.hpp +56 -0
- data/ext/boost/mpl/apply.hpp +225 -0
- data/ext/boost/mpl/apply_fwd.hpp +107 -0
- data/ext/boost/mpl/apply_wrap.hpp +200 -0
- data/ext/boost/mpl/arg.hpp +131 -0
- data/ext/boost/mpl/arg_fwd.hpp +28 -0
- data/ext/boost/mpl/arithmetic.hpp +25 -0
- data/ext/boost/mpl/as_sequence.hpp +38 -0
- data/ext/boost/mpl/assert.hpp +361 -0
- data/ext/boost/mpl/at.hpp +52 -0
- data/ext/boost/mpl/at_fwd.hpp +24 -0
- data/ext/boost/mpl/aux_/O1_size_impl.hpp +87 -0
- data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -0
- data/ext/boost/mpl/aux_/advance_backward.hpp +124 -0
- data/ext/boost/mpl/aux_/advance_forward.hpp +123 -0
- data/ext/boost/mpl/aux_/apply_1st.hpp +35 -0
- data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -0
- data/ext/boost/mpl/aux_/arithmetic_op.hpp +92 -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_/at_impl.hpp +45 -0
- data/ext/boost/mpl/aux_/back_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/basic_bind.hpp +21 -0
- data/ext/boost/mpl/aux_/begin_end_impl.hpp +100 -0
- data/ext/boost/mpl/aux_/clear_impl.hpp +35 -0
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -0
- data/ext/boost/mpl/aux_/comparison_op.hpp +83 -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/dependent_nttp.hpp +35 -0
- data/ext/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +27 -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/forwarding.hpp +27 -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/operators.hpp +33 -0
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -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 +39 -0
- data/ext/boost/mpl/aux_/config/typeof.hpp +38 -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_/contains_impl.hpp +61 -0
- data/ext/boost/mpl/aux_/count_args.hpp +105 -0
- data/ext/boost/mpl/aux_/count_impl.hpp +44 -0
- data/ext/boost/mpl/aux_/empty_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/erase_impl.hpp +69 -0
- data/ext/boost/mpl/aux_/erase_key_impl.hpp +32 -0
- data/ext/boost/mpl/aux_/filter_iter.hpp +140 -0
- data/ext/boost/mpl/aux_/find_if_pred.hpp +31 -0
- data/ext/boost/mpl/aux_/fold_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/fold_impl_body.hpp +365 -0
- data/ext/boost/mpl/aux_/fold_op.hpp +37 -0
- data/ext/boost/mpl/aux_/fold_pred.hpp +37 -0
- data/ext/boost/mpl/aux_/front_impl.hpp +41 -0
- data/ext/boost/mpl/aux_/full_lambda.hpp +350 -0
- data/ext/boost/mpl/aux_/has_apply.hpp +32 -0
- data/ext/boost/mpl/aux_/has_begin.hpp +23 -0
- data/ext/boost/mpl/aux_/has_key_impl.hpp +34 -0
- data/ext/boost/mpl/aux_/has_rebind.hpp +99 -0
- data/ext/boost/mpl/aux_/has_size.hpp +23 -0
- data/ext/boost/mpl/aux_/has_tag.hpp +23 -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_/insert_impl.hpp +68 -0
- data/ext/boost/mpl/aux_/insert_range_impl.hpp +77 -0
- data/ext/boost/mpl/aux_/inserter_algorithm.hpp +159 -0
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -0
- data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +64 -0
- data/ext/boost/mpl/aux_/iter_apply.hpp +47 -0
- data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +210 -0
- data/ext/boost/mpl/aux_/iter_fold_impl.hpp +42 -0
- data/ext/boost/mpl/aux_/iter_push_front.hpp +36 -0
- data/ext/boost/mpl/aux_/joint_iter.hpp +120 -0
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -0
- data/ext/boost/mpl/aux_/lambda_no_ctps.hpp +193 -0
- data/ext/boost/mpl/aux_/lambda_spec.hpp +49 -0
- data/ext/boost/mpl/aux_/lambda_support.hpp +169 -0
- data/ext/boost/mpl/aux_/largest_int.hpp +63 -0
- data/ext/boost/mpl/aux_/logical_op.hpp +165 -0
- data/ext/boost/mpl/aux_/msvc_dtw.hpp +68 -0
- data/ext/boost/mpl/aux_/msvc_eti_base.hpp +77 -0
- data/ext/boost/mpl/aux_/msvc_is_class.hpp +58 -0
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -0
- data/ext/boost/mpl/aux_/msvc_type.hpp +62 -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_/numeric_cast_utils.hpp +77 -0
- data/ext/boost/mpl/aux_/numeric_op.hpp +311 -0
- data/ext/boost/mpl/aux_/order_impl.hpp +76 -0
- data/ext/boost/mpl/aux_/overload_names.hpp +48 -0
- data/ext/boost/mpl/aux_/partition_op.hpp +58 -0
- data/ext/boost/mpl/aux_/pop_back_impl.hpp +34 -0
- data/ext/boost/mpl/aux_/pop_front_impl.hpp +44 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp +456 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/arg.hpp +117 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +300 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind.hpp +397 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp +558 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/inherit.hpp +139 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/quote.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp +456 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +306 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +403 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp +558 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/quote.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp +84 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +406 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind.hpp +515 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp +53 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp +536 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/quote.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +97 -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/basic_bind.hpp +440 -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/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +94 -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/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp +132 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp +132 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/and.hpp +73 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply.hpp +166 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp +247 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +432 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +149 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +149 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +149 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/deque.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +148 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp +293 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp +166 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +293 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/map.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +148 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +115 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/or.hpp +73 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +148 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/quote.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp +343 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp +343 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +114 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +114 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/times.hpp +148 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp +109 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/and.hpp +71 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +160 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp +138 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +432 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +151 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +151 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +151 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/deque.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +150 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp +245 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp +166 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp +245 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/map.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +150 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +115 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/or.hpp +71 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +150 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/quote.hpp +116 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp +114 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp +114 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/times.hpp +150 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp +109 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp +456 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp +440 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind.hpp +561 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/quote.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/and.hpp +73 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp +268 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp +50 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp +78 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp +486 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp +590 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp +134 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp +134 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp +134 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp +245 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp +166 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp +245 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/map.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/or.hpp +73 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp +116 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/times.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp +109 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp +84 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp +369 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp +466 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp +157 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp +157 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp +157 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp +156 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp +156 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp +111 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp +156 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp +110 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp +110 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/times.hpp +156 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/and.hpp +64 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/apply.hpp +139 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp +84 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp +440 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bind.hpp +561 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bitand.hpp +142 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bitor.hpp +142 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bitxor.hpp +142 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/divides.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/equal_to.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/greater.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/inherit.hpp +125 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp +228 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/less.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/less_equal.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/minus.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/modulus.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/or.hpp +64 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/plus.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/quote.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_left.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_right.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/template_arity.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/times.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessor/add.hpp +65 -0
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +67 -0
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -0
- data/ext/boost/mpl/aux_/preprocessor/ext_params.hpp +78 -0
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -0
- data/ext/boost/mpl/aux_/preprocessor/is_seq.hpp +54 -0
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -0
- data/ext/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +32 -0
- data/ext/boost/mpl/aux_/preprocessor/range.hpp +23 -0
- data/ext/boost/mpl/aux_/preprocessor/repeat.hpp +51 -0
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -0
- data/ext/boost/mpl/aux_/preprocessor/token_equal.hpp +56 -0
- data/ext/boost/mpl/aux_/preprocessor/tuple.hpp +29 -0
- data/ext/boost/mpl/aux_/ptr_to_ref.hpp +46 -0
- data/ext/boost/mpl/aux_/push_back_impl.hpp +55 -0
- data/ext/boost/mpl/aux_/push_front_impl.hpp +56 -0
- data/ext/boost/mpl/aux_/range_c/O1_size.hpp +31 -0
- data/ext/boost/mpl/aux_/range_c/back.hpp +34 -0
- data/ext/boost/mpl/aux_/range_c/empty.hpp +37 -0
- data/ext/boost/mpl/aux_/range_c/front.hpp +33 -0
- data/ext/boost/mpl/aux_/range_c/iterator.hpp +106 -0
- data/ext/boost/mpl/aux_/range_c/size.hpp +37 -0
- data/ext/boost/mpl/aux_/range_c/tag.hpp +24 -0
- data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +44 -0
- data/ext/boost/mpl/aux_/reverse_fold_impl_body.hpp +412 -0
- data/ext/boost/mpl/aux_/reverse_iter_fold_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/sequence_wrapper.hpp +292 -0
- data/ext/boost/mpl/aux_/shift_op.hpp +87 -0
- data/ext/boost/mpl/aux_/single_element_iter.hpp +118 -0
- data/ext/boost/mpl/aux_/size_impl.hpp +52 -0
- data/ext/boost/mpl/aux_/sort_impl.hpp +121 -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_/test.hpp +32 -0
- data/ext/boost/mpl/aux_/test/assert.hpp +29 -0
- data/ext/boost/mpl/aux_/test/data.hpp +25 -0
- data/ext/boost/mpl/aux_/test/test_case.hpp +21 -0
- data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +56 -0
- data/ext/boost/mpl/aux_/transform_iter.hpp +123 -0
- data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -0
- data/ext/boost/mpl/aux_/unwrap.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/back.hpp +39 -0
- data/ext/boost/mpl/back_fwd.hpp +24 -0
- data/ext/boost/mpl/back_inserter.hpp +34 -0
- data/ext/boost/mpl/base.hpp +35 -0
- data/ext/boost/mpl/begin.hpp +19 -0
- data/ext/boost/mpl/begin_end.hpp +57 -0
- data/ext/boost/mpl/begin_end_fwd.hpp +27 -0
- data/ext/boost/mpl/bind.hpp +547 -0
- data/ext/boost/mpl/bind_fwd.hpp +99 -0
- data/ext/boost/mpl/bitand.hpp +23 -0
- data/ext/boost/mpl/bitor.hpp +23 -0
- data/ext/boost/mpl/bitwise.hpp +24 -0
- data/ext/boost/mpl/bitxor.hpp +23 -0
- data/ext/boost/mpl/bool.hpp +39 -0
- data/ext/boost/mpl/bool_fwd.hpp +33 -0
- data/ext/boost/mpl/clear.hpp +39 -0
- data/ext/boost/mpl/clear_fwd.hpp +24 -0
- data/ext/boost/mpl/comparison.hpp +24 -0
- data/ext/boost/mpl/contains.hpp +41 -0
- data/ext/boost/mpl/contains_fwd.hpp +25 -0
- data/ext/boost/mpl/copy.hpp +58 -0
- data/ext/boost/mpl/copy_if.hpp +96 -0
- data/ext/boost/mpl/count.hpp +40 -0
- data/ext/boost/mpl/count_fwd.hpp +24 -0
- data/ext/boost/mpl/count_if.hpp +79 -0
- data/ext/boost/mpl/deque.hpp +58 -0
- data/ext/boost/mpl/deref.hpp +41 -0
- data/ext/boost/mpl/distance.hpp +78 -0
- data/ext/boost/mpl/distance_fwd.hpp +28 -0
- data/ext/boost/mpl/divides.hpp +21 -0
- data/ext/boost/mpl/empty.hpp +39 -0
- data/ext/boost/mpl/empty_base.hpp +59 -0
- data/ext/boost/mpl/empty_fwd.hpp +24 -0
- data/ext/boost/mpl/empty_sequence.hpp +42 -0
- data/ext/boost/mpl/end.hpp +19 -0
- data/ext/boost/mpl/equal.hpp +112 -0
- data/ext/boost/mpl/equal_to.hpp +21 -0
- data/ext/boost/mpl/erase.hpp +42 -0
- data/ext/boost/mpl/erase_fwd.hpp +24 -0
- data/ext/boost/mpl/erase_key.hpp +41 -0
- data/ext/boost/mpl/erase_key_fwd.hpp +24 -0
- data/ext/boost/mpl/eval_if.hpp +71 -0
- data/ext/boost/mpl/filter_view.hpp +46 -0
- data/ext/boost/mpl/find.hpp +38 -0
- data/ext/boost/mpl/find_if.hpp +50 -0
- data/ext/boost/mpl/fold.hpp +48 -0
- data/ext/boost/mpl/for_each.hpp +112 -0
- data/ext/boost/mpl/front.hpp +39 -0
- data/ext/boost/mpl/front_fwd.hpp +24 -0
- data/ext/boost/mpl/front_inserter.hpp +33 -0
- data/ext/boost/mpl/greater.hpp +21 -0
- data/ext/boost/mpl/greater_equal.hpp +21 -0
- data/ext/boost/mpl/has_key.hpp +41 -0
- data/ext/boost/mpl/has_key_fwd.hpp +25 -0
- data/ext/boost/mpl/has_xxx.hpp +233 -0
- data/ext/boost/mpl/identity.hpp +45 -0
- data/ext/boost/mpl/if.hpp +135 -0
- data/ext/boost/mpl/index_if.hpp +60 -0
- data/ext/boost/mpl/index_of.hpp +39 -0
- data/ext/boost/mpl/inherit.hpp +229 -0
- data/ext/boost/mpl/inherit_linearly.hpp +39 -0
- data/ext/boost/mpl/insert.hpp +41 -0
- data/ext/boost/mpl/insert_fwd.hpp +24 -0
- data/ext/boost/mpl/insert_range.hpp +41 -0
- data/ext/boost/mpl/insert_range_fwd.hpp +24 -0
- data/ext/boost/mpl/inserter.hpp +32 -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/is_placeholder.hpp +67 -0
- data/ext/boost/mpl/is_sequence.hpp +112 -0
- data/ext/boost/mpl/iter_fold.hpp +49 -0
- data/ext/boost/mpl/iter_fold_if.hpp +117 -0
- data/ext/boost/mpl/iterator_category.hpp +35 -0
- data/ext/boost/mpl/iterator_range.hpp +42 -0
- data/ext/boost/mpl/iterator_tags.hpp +27 -0
- data/ext/boost/mpl/joint_view.hpp +65 -0
- data/ext/boost/mpl/key_type.hpp +42 -0
- data/ext/boost/mpl/key_type_fwd.hpp +25 -0
- data/ext/boost/mpl/lambda.hpp +29 -0
- data/ext/boost/mpl/lambda_fwd.hpp +57 -0
- data/ext/boost/mpl/less.hpp +21 -0
- data/ext/boost/mpl/less_equal.hpp +21 -0
- data/ext/boost/mpl/limits/arity.hpp +21 -0
- data/ext/boost/mpl/limits/list.hpp +21 -0
- data/ext/boost/mpl/limits/map.hpp +21 -0
- data/ext/boost/mpl/limits/set.hpp +21 -0
- data/ext/boost/mpl/limits/unrolling.hpp +21 -0
- data/ext/boost/mpl/limits/vector.hpp +21 -0
- data/ext/boost/mpl/list.hpp +57 -0
- data/ext/boost/mpl/list/aux_/O1_size.hpp +33 -0
- data/ext/boost/mpl/list/aux_/begin_end.hpp +44 -0
- data/ext/boost/mpl/list/aux_/clear.hpp +34 -0
- data/ext/boost/mpl/list/aux_/empty.hpp +34 -0
- data/ext/boost/mpl/list/aux_/front.hpp +33 -0
- data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +35 -0
- data/ext/boost/mpl/list/aux_/item.hpp +55 -0
- data/ext/boost/mpl/list/aux_/iterator.hpp +76 -0
- data/ext/boost/mpl/list/aux_/numbered.hpp +68 -0
- data/ext/boost/mpl/list/aux_/numbered_c.hpp +71 -0
- data/ext/boost/mpl/list/aux_/pop_front.hpp +34 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +149 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp +164 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +169 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp +173 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30.hpp +189 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp +183 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40.hpp +209 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp +193 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50.hpp +229 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp +203 -0
- data/ext/boost/mpl/list/aux_/push_back.hpp +36 -0
- data/ext/boost/mpl/list/aux_/push_front.hpp +39 -0
- data/ext/boost/mpl/list/aux_/size.hpp +33 -0
- data/ext/boost/mpl/list/aux_/tag.hpp +24 -0
- data/ext/boost/mpl/list/list0.hpp +42 -0
- data/ext/boost/mpl/list/list0_c.hpp +31 -0
- data/ext/boost/mpl/list/list10.hpp +43 -0
- data/ext/boost/mpl/list/list10_c.hpp +43 -0
- data/ext/boost/mpl/list/list20.hpp +43 -0
- data/ext/boost/mpl/list/list20_c.hpp +43 -0
- data/ext/boost/mpl/list/list30.hpp +43 -0
- data/ext/boost/mpl/list/list30_c.hpp +43 -0
- data/ext/boost/mpl/list/list40.hpp +43 -0
- data/ext/boost/mpl/list/list40_c.hpp +43 -0
- data/ext/boost/mpl/list/list50.hpp +43 -0
- data/ext/boost/mpl/list/list50_c.hpp +43 -0
- data/ext/boost/mpl/list_c.hpp +60 -0
- data/ext/boost/mpl/logical.hpp +21 -0
- data/ext/boost/mpl/long.hpp +22 -0
- data/ext/boost/mpl/long_fwd.hpp +27 -0
- data/ext/boost/mpl/lower_bound.hpp +143 -0
- data/ext/boost/mpl/map.hpp +57 -0
- data/ext/boost/mpl/map/aux_/at_impl.hpp +144 -0
- data/ext/boost/mpl/map/aux_/begin_end_impl.hpp +50 -0
- data/ext/boost/mpl/map/aux_/clear_impl.hpp +35 -0
- data/ext/boost/mpl/map/aux_/contains_impl.hpp +43 -0
- data/ext/boost/mpl/map/aux_/empty_impl.hpp +34 -0
- data/ext/boost/mpl/map/aux_/erase_impl.hpp +41 -0
- data/ext/boost/mpl/map/aux_/erase_key_impl.hpp +53 -0
- data/ext/boost/mpl/map/aux_/has_key_impl.hpp +44 -0
- data/ext/boost/mpl/map/aux_/include_preprocessed.hpp +53 -0
- data/ext/boost/mpl/map/aux_/insert_impl.hpp +72 -0
- data/ext/boost/mpl/map/aux_/item.hpp +138 -0
- data/ext/boost/mpl/map/aux_/iterator.hpp +169 -0
- data/ext/boost/mpl/map/aux_/key_type_impl.hpp +36 -0
- data/ext/boost/mpl/map/aux_/map0.hpp +74 -0
- data/ext/boost/mpl/map/aux_/numbered.hpp +110 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp +350 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp +370 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp +390 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp +410 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp +430 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map10.hpp +290 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map20.hpp +310 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map30.hpp +330 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map40.hpp +350 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map50.hpp +370 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp +150 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp +170 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp +190 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp +210 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp +230 -0
- data/ext/boost/mpl/map/aux_/size_impl.hpp +33 -0
- data/ext/boost/mpl/map/aux_/tag.hpp +24 -0
- data/ext/boost/mpl/map/aux_/value_type_impl.hpp +36 -0
- data/ext/boost/mpl/map/map0.hpp +36 -0
- data/ext/boost/mpl/map/map10.hpp +44 -0
- data/ext/boost/mpl/map/map20.hpp +44 -0
- data/ext/boost/mpl/map/map30.hpp +44 -0
- data/ext/boost/mpl/map/map40.hpp +44 -0
- data/ext/boost/mpl/map/map50.hpp +44 -0
- data/ext/boost/mpl/math/fixed_c.hpp +36 -0
- data/ext/boost/mpl/math/is_even.hpp +54 -0
- data/ext/boost/mpl/math/rational_c.hpp +37 -0
- data/ext/boost/mpl/max.hpp +19 -0
- data/ext/boost/mpl/max_element.hpp +72 -0
- data/ext/boost/mpl/min.hpp +19 -0
- data/ext/boost/mpl/min_element.hpp +40 -0
- data/ext/boost/mpl/min_max.hpp +46 -0
- data/ext/boost/mpl/minus.hpp +21 -0
- data/ext/boost/mpl/modulus.hpp +22 -0
- data/ext/boost/mpl/multiplies.hpp +53 -0
- data/ext/boost/mpl/multiset/aux_/count_impl.hpp +82 -0
- data/ext/boost/mpl/multiset/aux_/insert_impl.hpp +34 -0
- data/ext/boost/mpl/multiset/aux_/item.hpp +114 -0
- data/ext/boost/mpl/multiset/aux_/multiset0.hpp +34 -0
- data/ext/boost/mpl/multiset/aux_/tag.hpp +23 -0
- data/ext/boost/mpl/multiset/multiset0.hpp +36 -0
- data/ext/boost/mpl/negate.hpp +81 -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/not_equal_to.hpp +21 -0
- data/ext/boost/mpl/numeric_cast.hpp +41 -0
- data/ext/boost/mpl/or.hpp +57 -0
- data/ext/boost/mpl/order.hpp +41 -0
- data/ext/boost/mpl/order_fwd.hpp +25 -0
- data/ext/boost/mpl/pair.hpp +70 -0
- data/ext/boost/mpl/pair_view.hpp +169 -0
- data/ext/boost/mpl/partition.hpp +53 -0
- data/ext/boost/mpl/placeholders.hpp +100 -0
- data/ext/boost/mpl/plus.hpp +21 -0
- data/ext/boost/mpl/pop_back.hpp +39 -0
- data/ext/boost/mpl/pop_back_fwd.hpp +24 -0
- data/ext/boost/mpl/pop_front.hpp +39 -0
- data/ext/boost/mpl/pop_front_fwd.hpp +24 -0
- data/ext/boost/mpl/print.hpp +74 -0
- data/ext/boost/mpl/prior.hpp +19 -0
- data/ext/boost/mpl/protect.hpp +55 -0
- data/ext/boost/mpl/push_back.hpp +53 -0
- data/ext/boost/mpl/push_back_fwd.hpp +24 -0
- data/ext/boost/mpl/push_front.hpp +52 -0
- data/ext/boost/mpl/push_front_fwd.hpp +24 -0
- data/ext/boost/mpl/quote.hpp +140 -0
- data/ext/boost/mpl/range_c.hpp +48 -0
- data/ext/boost/mpl/remove.hpp +52 -0
- data/ext/boost/mpl/remove_if.hpp +83 -0
- data/ext/boost/mpl/replace.hpp +55 -0
- data/ext/boost/mpl/replace_if.hpp +88 -0
- data/ext/boost/mpl/reverse.hpp +38 -0
- data/ext/boost/mpl/reverse_fold.hpp +50 -0
- data/ext/boost/mpl/reverse_iter_fold.hpp +56 -0
- data/ext/boost/mpl/same_as.hpp +55 -0
- data/ext/boost/mpl/sequence_tag.hpp +124 -0
- data/ext/boost/mpl/sequence_tag_fwd.hpp +26 -0
- data/ext/boost/mpl/set.hpp +57 -0
- data/ext/boost/mpl/set/aux_/at_impl.hpp +40 -0
- data/ext/boost/mpl/set/aux_/begin_end_impl.hpp +43 -0
- data/ext/boost/mpl/set/aux_/clear_impl.hpp +35 -0
- data/ext/boost/mpl/set/aux_/empty_impl.hpp +34 -0
- data/ext/boost/mpl/set/aux_/erase_impl.hpp +41 -0
- data/ext/boost/mpl/set/aux_/erase_key_impl.hpp +53 -0
- data/ext/boost/mpl/set/aux_/has_key_impl.hpp +60 -0
- data/ext/boost/mpl/set/aux_/include_preprocessed.hpp +42 -0
- data/ext/boost/mpl/set/aux_/insert_impl.hpp +65 -0
- data/ext/boost/mpl/set/aux_/item.hpp +82 -0
- data/ext/boost/mpl/set/aux_/iterator.hpp +97 -0
- data/ext/boost/mpl/set/aux_/key_type_impl.hpp +34 -0
- data/ext/boost/mpl/set/aux_/numbered.hpp +48 -0
- data/ext/boost/mpl/set/aux_/numbered_c.hpp +48 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10.hpp +140 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp +145 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20.hpp +168 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp +154 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30.hpp +195 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp +164 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40.hpp +221 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp +174 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50.hpp +250 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp +184 -0
- data/ext/boost/mpl/set/aux_/set0.hpp +69 -0
- data/ext/boost/mpl/set/aux_/size_impl.hpp +33 -0
- data/ext/boost/mpl/set/aux_/tag.hpp +24 -0
- data/ext/boost/mpl/set/aux_/value_type_impl.hpp +34 -0
- data/ext/boost/mpl/set/set0.hpp +35 -0
- data/ext/boost/mpl/set/set0_c.hpp +32 -0
- data/ext/boost/mpl/set/set10.hpp +44 -0
- data/ext/boost/mpl/set/set10_c.hpp +45 -0
- data/ext/boost/mpl/set/set20.hpp +44 -0
- data/ext/boost/mpl/set/set20_c.hpp +45 -0
- data/ext/boost/mpl/set/set30.hpp +44 -0
- data/ext/boost/mpl/set/set30_c.hpp +45 -0
- data/ext/boost/mpl/set/set40.hpp +44 -0
- data/ext/boost/mpl/set/set40_c.hpp +45 -0
- data/ext/boost/mpl/set/set50.hpp +44 -0
- data/ext/boost/mpl/set/set50_c.hpp +45 -0
- data/ext/boost/mpl/set_c.hpp +60 -0
- data/ext/boost/mpl/shift_left.hpp +22 -0
- data/ext/boost/mpl/shift_right.hpp +22 -0
- data/ext/boost/mpl/single_view.hpp +38 -0
- data/ext/boost/mpl/size.hpp +42 -0
- data/ext/boost/mpl/size_fwd.hpp +24 -0
- data/ext/boost/mpl/size_t.hpp +25 -0
- data/ext/boost/mpl/size_t_fwd.hpp +28 -0
- data/ext/boost/mpl/sizeof.hpp +36 -0
- data/ext/boost/mpl/sort.hpp +27 -0
- data/ext/boost/mpl/stable_partition.hpp +75 -0
- data/ext/boost/mpl/switch.hpp +49 -0
- data/ext/boost/mpl/tag.hpp +52 -0
- data/ext/boost/mpl/times.hpp +21 -0
- data/ext/boost/mpl/transform.hpp +145 -0
- data/ext/boost/mpl/transform_view.hpp +46 -0
- data/ext/boost/mpl/unique.hpp +85 -0
- data/ext/boost/mpl/unpack_args.hpp +146 -0
- data/ext/boost/mpl/upper_bound.hpp +141 -0
- data/ext/boost/mpl/value_type.hpp +42 -0
- data/ext/boost/mpl/value_type_fwd.hpp +25 -0
- data/ext/boost/mpl/vector.hpp +57 -0
- data/ext/boost/mpl/vector/aux_/O1_size.hpp +56 -0
- data/ext/boost/mpl/vector/aux_/at.hpp +116 -0
- data/ext/boost/mpl/vector/aux_/back.hpp +59 -0
- data/ext/boost/mpl/vector/aux_/begin_end.hpp +49 -0
- data/ext/boost/mpl/vector/aux_/clear.hpp +55 -0
- data/ext/boost/mpl/vector/aux_/empty.hpp +68 -0
- data/ext/boost/mpl/vector/aux_/front.hpp +56 -0
- data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +55 -0
- data/ext/boost/mpl/vector/aux_/item.hpp +103 -0
- data/ext/boost/mpl/vector/aux_/iterator.hpp +130 -0
- data/ext/boost/mpl/vector/aux_/numbered.hpp +218 -0
- data/ext/boost/mpl/vector/aux_/numbered_c.hpp +77 -0
- data/ext/boost/mpl/vector/aux_/pop_back.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/pop_front.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp +1528 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp +149 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp +1804 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp +195 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp +2124 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp +238 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp +2444 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp +281 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp +2764 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp +325 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +829 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp +149 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +1144 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp +195 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp +1464 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp +238 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp +1784 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp +281 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp +2104 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp +325 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +139 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp +154 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +159 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp +163 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp +179 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp +173 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp +199 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp +183 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp +219 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp +193 -0
- data/ext/boost/mpl/vector/aux_/push_back.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/push_front.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/size.hpp +49 -0
- data/ext/boost/mpl/vector/aux_/tag.hpp +32 -0
- data/ext/boost/mpl/vector/aux_/vector0.hpp +52 -0
- data/ext/boost/mpl/vector/vector0.hpp +34 -0
- data/ext/boost/mpl/vector/vector0_c.hpp +31 -0
- data/ext/boost/mpl/vector/vector10.hpp +45 -0
- data/ext/boost/mpl/vector/vector10_c.hpp +46 -0
- data/ext/boost/mpl/vector/vector20.hpp +45 -0
- data/ext/boost/mpl/vector/vector20_c.hpp +46 -0
- data/ext/boost/mpl/vector/vector30.hpp +45 -0
- data/ext/boost/mpl/vector/vector30_c.hpp +47 -0
- data/ext/boost/mpl/vector/vector40.hpp +45 -0
- data/ext/boost/mpl/vector/vector40_c.hpp +46 -0
- data/ext/boost/mpl/vector/vector50.hpp +45 -0
- data/ext/boost/mpl/vector/vector50_c.hpp +46 -0
- data/ext/boost/mpl/vector_c.hpp +60 -0
- data/ext/boost/mpl/void.hpp +76 -0
- data/ext/boost/mpl/void_fwd.hpp +26 -0
- data/ext/boost/mpl/zip_view.hpp +64 -0
- data/ext/boost/next_prior.hpp +51 -0
- data/ext/boost/noncopyable.hpp +36 -0
- data/ext/boost/none.hpp +43 -0
- data/ext/boost/optional.hpp +18 -0
- data/ext/boost/optional/optional.hpp +922 -0
- data/ext/boost/optional/optional_fwd.hpp +22 -0
- data/ext/boost/optional/optional_io.hpp +84 -0
- data/ext/boost/preprocessor/arithmetic.hpp +25 -0
- data/ext/boost/preprocessor/arithmetic/add.hpp +51 -0
- data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -0
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
- data/ext/boost/preprocessor/arithmetic/div.hpp +39 -0
- data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -0
- data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
- data/ext/boost/preprocessor/arithmetic/mul.hpp +53 -0
- data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -0
- data/ext/boost/preprocessor/array.hpp +27 -0
- data/ext/boost/preprocessor/array/data.hpp +28 -0
- data/ext/boost/preprocessor/array/elem.hpp +29 -0
- data/ext/boost/preprocessor/array/insert.hpp +55 -0
- data/ext/boost/preprocessor/array/pop_back.hpp +37 -0
- data/ext/boost/preprocessor/array/pop_front.hpp +38 -0
- data/ext/boost/preprocessor/array/push_back.hpp +33 -0
- data/ext/boost/preprocessor/array/push_front.hpp +33 -0
- data/ext/boost/preprocessor/array/remove.hpp +54 -0
- data/ext/boost/preprocessor/array/replace.hpp +49 -0
- data/ext/boost/preprocessor/array/reverse.hpp +29 -0
- data/ext/boost/preprocessor/array/size.hpp +28 -0
- data/ext/boost/preprocessor/assert_msg.hpp +17 -0
- data/ext/boost/preprocessor/cat.hpp +35 -0
- data/ext/boost/preprocessor/comma.hpp +17 -0
- data/ext/boost/preprocessor/comma_if.hpp +17 -0
- data/ext/boost/preprocessor/comparison.hpp +24 -0
- data/ext/boost/preprocessor/comparison/equal.hpp +34 -0
- data/ext/boost/preprocessor/comparison/greater.hpp +38 -0
- data/ext/boost/preprocessor/comparison/greater_equal.hpp +38 -0
- data/ext/boost/preprocessor/comparison/less.hpp +46 -0
- data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
- data/ext/boost/preprocessor/comparison/not_equal.hpp +814 -0
- data/ext/boost/preprocessor/config/config.hpp +70 -0
- data/ext/boost/preprocessor/config/limits.hpp +29 -0
- data/ext/boost/preprocessor/control.hpp +22 -0
- data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
- data/ext/boost/preprocessor/control/detail/dmc/while.hpp +536 -0
- data/ext/boost/preprocessor/control/detail/edg/while.hpp +534 -0
- data/ext/boost/preprocessor/control/detail/msvc/while.hpp +277 -0
- data/ext/boost/preprocessor/control/detail/while.hpp +536 -0
- data/ext/boost/preprocessor/control/expr_if.hpp +30 -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.hpp +18 -0
- data/ext/boost/preprocessor/debug/assert.hpp +44 -0
- data/ext/boost/preprocessor/debug/error.hpp +33 -0
- data/ext/boost/preprocessor/debug/line.hpp +35 -0
- data/ext/boost/preprocessor/dec.hpp +17 -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/dmc/auto_rec.hpp +286 -0
- data/ext/boost/preprocessor/detail/is_binary.hpp +30 -0
- data/ext/boost/preprocessor/detail/is_nullary.hpp +30 -0
- data/ext/boost/preprocessor/detail/is_unary.hpp +30 -0
- data/ext/boost/preprocessor/detail/null.hpp +17 -0
- data/ext/boost/preprocessor/detail/split.hpp +35 -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/enum_params_with_a_default.hpp +17 -0
- data/ext/boost/preprocessor/enum_params_with_defaults.hpp +17 -0
- data/ext/boost/preprocessor/enum_shifted.hpp +17 -0
- data/ext/boost/preprocessor/enum_shifted_params.hpp +17 -0
- data/ext/boost/preprocessor/expand.hpp +17 -0
- data/ext/boost/preprocessor/expr_if.hpp +17 -0
- data/ext/boost/preprocessor/facilities.hpp +21 -0
- data/ext/boost/preprocessor/facilities/apply.hpp +34 -0
- data/ext/boost/preprocessor/facilities/empty.hpp +21 -0
- data/ext/boost/preprocessor/facilities/expand.hpp +28 -0
- data/ext/boost/preprocessor/facilities/identity.hpp +23 -0
- data/ext/boost/preprocessor/facilities/intercept.hpp +277 -0
- data/ext/boost/preprocessor/facilities/is_1.hpp +23 -0
- data/ext/boost/preprocessor/facilities/is_empty.hpp +43 -0
- data/ext/boost/preprocessor/facilities/is_empty_or_1.hpp +30 -0
- data/ext/boost/preprocessor/for.hpp +17 -0
- data/ext/boost/preprocessor/identity.hpp +17 -0
- data/ext/boost/preprocessor/if.hpp +17 -0
- data/ext/boost/preprocessor/inc.hpp +17 -0
- data/ext/boost/preprocessor/iterate.hpp +17 -0
- data/ext/boost/preprocessor/iteration.hpp +19 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower2.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower3.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower4.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower5.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper2.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper3.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper4.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper5.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/finish.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward2.hpp +1338 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward3.hpp +1338 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward4.hpp +1338 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward5.hpp +1338 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse1.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse2.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse3.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse4.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse5.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/local.hpp +812 -0
- data/ext/boost/preprocessor/iteration/detail/rlocal.hpp +782 -0
- data/ext/boost/preprocessor/iteration/detail/self.hpp +21 -0
- data/ext/boost/preprocessor/iteration/detail/start.hpp +99 -0
- data/ext/boost/preprocessor/iteration/iterate.hpp +82 -0
- data/ext/boost/preprocessor/iteration/local.hpp +26 -0
- data/ext/boost/preprocessor/iteration/self.hpp +19 -0
- data/ext/boost/preprocessor/library.hpp +34 -0
- data/ext/boost/preprocessor/limits.hpp +17 -0
- data/ext/boost/preprocessor/list.hpp +35 -0
- data/ext/boost/preprocessor/list/adt.hpp +73 -0
- data/ext/boost/preprocessor/list/append.hpp +40 -0
- data/ext/boost/preprocessor/list/at.hpp +39 -0
- data/ext/boost/preprocessor/list/cat.hpp +42 -0
- data/ext/boost/preprocessor/list/detail/dmc/fold_left.hpp +279 -0
- data/ext/boost/preprocessor/list/detail/edg/fold_left.hpp +536 -0
- data/ext/boost/preprocessor/list/detail/edg/fold_right.hpp +794 -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/enum.hpp +41 -0
- data/ext/boost/preprocessor/list/filter.hpp +54 -0
- data/ext/boost/preprocessor/list/first_n.hpp +58 -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.hpp +49 -0
- data/ext/boost/preprocessor/list/for_each_i.hpp +65 -0
- data/ext/boost/preprocessor/list/for_each_product.hpp +141 -0
- data/ext/boost/preprocessor/list/rest_n.hpp +55 -0
- data/ext/boost/preprocessor/list/reverse.hpp +40 -0
- data/ext/boost/preprocessor/list/size.hpp +58 -0
- data/ext/boost/preprocessor/list/to_tuple.hpp +38 -0
- data/ext/boost/preprocessor/list/transform.hpp +49 -0
- data/ext/boost/preprocessor/logical.hpp +29 -0
- data/ext/boost/preprocessor/logical/and.hpp +30 -0
- data/ext/boost/preprocessor/logical/bitand.hpp +38 -0
- data/ext/boost/preprocessor/logical/bitnor.hpp +38 -0
- data/ext/boost/preprocessor/logical/bitor.hpp +38 -0
- data/ext/boost/preprocessor/logical/bitxor.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/logical/nor.hpp +30 -0
- data/ext/boost/preprocessor/logical/not.hpp +30 -0
- data/ext/boost/preprocessor/logical/or.hpp +30 -0
- data/ext/boost/preprocessor/logical/xor.hpp +30 -0
- data/ext/boost/preprocessor/max.hpp +17 -0
- data/ext/boost/preprocessor/min.hpp +17 -0
- data/ext/boost/preprocessor/punctuation.hpp +20 -0
- data/ext/boost/preprocessor/punctuation/comma.hpp +21 -0
- data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -0
- data/ext/boost/preprocessor/punctuation/paren.hpp +23 -0
- data/ext/boost/preprocessor/punctuation/paren_if.hpp +38 -0
- data/ext/boost/preprocessor/repeat.hpp +17 -0
- data/ext/boost/preprocessor/repeat_2nd.hpp +17 -0
- data/ext/boost/preprocessor/repeat_3rd.hpp +17 -0
- data/ext/boost/preprocessor/repeat_from_to.hpp +17 -0
- data/ext/boost/preprocessor/repeat_from_to_2nd.hpp +17 -0
- data/ext/boost/preprocessor/repeat_from_to_3rd.hpp +17 -0
- data/ext/boost/preprocessor/repetition.hpp +32 -0
- data/ext/boost/preprocessor/repetition/deduce_r.hpp +22 -0
- data/ext/boost/preprocessor/repetition/deduce_z.hpp +22 -0
- data/ext/boost/preprocessor/repetition/detail/dmc/for.hpp +536 -0
- data/ext/boost/preprocessor/repetition/detail/edg/for.hpp +534 -0
- data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -0
- data/ext/boost/preprocessor/repetition/detail/msvc/for.hpp +277 -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/enum_params_with_a_default.hpp +25 -0
- data/ext/boost/preprocessor/repetition/enum_params_with_defaults.hpp +24 -0
- data/ext/boost/preprocessor/repetition/enum_shifted.hpp +68 -0
- data/ext/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +51 -0
- data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
- data/ext/boost/preprocessor/repetition/enum_trailing.hpp +63 -0
- data/ext/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +53 -0
- data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -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/selection.hpp +18 -0
- data/ext/boost/preprocessor/selection/max.hpp +39 -0
- data/ext/boost/preprocessor/selection/min.hpp +39 -0
- data/ext/boost/preprocessor/seq.hpp +41 -0
- data/ext/boost/preprocessor/seq/cat.hpp +48 -0
- data/ext/boost/preprocessor/seq/detail/split.hpp +284 -0
- data/ext/boost/preprocessor/seq/elem.hpp +304 -0
- data/ext/boost/preprocessor/seq/enum.hpp +288 -0
- data/ext/boost/preprocessor/seq/filter.hpp +54 -0
- data/ext/boost/preprocessor/seq/first_n.hpp +30 -0
- data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
- data/ext/boost/preprocessor/seq/fold_right.hpp +288 -0
- data/ext/boost/preprocessor/seq/for_each.hpp +60 -0
- data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -0
- data/ext/boost/preprocessor/seq/for_each_product.hpp +126 -0
- data/ext/boost/preprocessor/seq/insert.hpp +28 -0
- data/ext/boost/preprocessor/seq/pop_back.hpp +29 -0
- data/ext/boost/preprocessor/seq/pop_front.hpp +27 -0
- data/ext/boost/preprocessor/seq/push_back.hpp +19 -0
- data/ext/boost/preprocessor/seq/push_front.hpp +19 -0
- data/ext/boost/preprocessor/seq/remove.hpp +29 -0
- data/ext/boost/preprocessor/seq/replace.hpp +29 -0
- data/ext/boost/preprocessor/seq/rest_n.hpp +30 -0
- data/ext/boost/preprocessor/seq/reverse.hpp +39 -0
- data/ext/boost/preprocessor/seq/seq.hpp +44 -0
- data/ext/boost/preprocessor/seq/size.hpp +548 -0
- data/ext/boost/preprocessor/seq/subseq.hpp +28 -0
- data/ext/boost/preprocessor/seq/to_array.hpp +28 -0
- data/ext/boost/preprocessor/seq/to_tuple.hpp +27 -0
- data/ext/boost/preprocessor/seq/transform.hpp +48 -0
- data/ext/boost/preprocessor/slot.hpp +17 -0
- data/ext/boost/preprocessor/slot/counter.hpp +25 -0
- data/ext/boost/preprocessor/slot/detail/counter.hpp +269 -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/detail/slot1.hpp +267 -0
- data/ext/boost/preprocessor/slot/detail/slot2.hpp +267 -0
- data/ext/boost/preprocessor/slot/detail/slot3.hpp +267 -0
- data/ext/boost/preprocessor/slot/detail/slot4.hpp +267 -0
- data/ext/boost/preprocessor/slot/detail/slot5.hpp +267 -0
- data/ext/boost/preprocessor/slot/slot.hpp +32 -0
- data/ext/boost/preprocessor/stringize.hpp +33 -0
- data/ext/boost/preprocessor/tuple.hpp +24 -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/reverse.hpp +62 -0
- data/ext/boost/preprocessor/tuple/to_list.hpp +62 -0
- data/ext/boost/preprocessor/tuple/to_seq.hpp +60 -0
- data/ext/boost/preprocessor/while.hpp +17 -0
- data/ext/boost/preprocessor/wstringize.hpp +29 -0
- data/ext/boost/ref.hpp +178 -0
- data/ext/boost/shared_ptr.hpp +558 -0
- data/ext/boost/src/barrier.cpp +42 -0
- data/ext/boost/src/condition.cpp +692 -0
- data/ext/boost/src/exceptions.cpp +147 -0
- data/ext/boost/src/mutex.cpp +561 -0
- data/ext/boost/src/mutex.inl +128 -0
- data/ext/boost/src/once.cpp +213 -0
- data/ext/boost/src/recursive_mutex.cpp +1040 -0
- data/ext/boost/src/thread.cpp +371 -0
- data/ext/boost/src/timeconv.inl +130 -0
- data/ext/boost/src/tss.cpp +251 -0
- data/ext/boost/src/tss_dll.cpp +72 -0
- data/ext/boost/src/tss_hooks.cpp +212 -0
- data/ext/boost/src/tss_null.cpp +33 -0
- data/ext/boost/src/tss_pe.cpp +179 -0
- data/ext/boost/src/xtime.cpp +158 -0
- data/ext/boost/static_assert.hpp +118 -0
- data/ext/boost/thread.hpp +19 -0
- data/ext/boost/thread/barrier.hpp +44 -0
- data/ext/boost/thread/condition.hpp +201 -0
- data/ext/boost/thread/detail/config.hpp +95 -0
- data/ext/boost/thread/detail/force_cast.hpp +39 -0
- data/ext/boost/thread/detail/lock.hpp +209 -0
- data/ext/boost/thread/detail/read_write_lock.hpp +1106 -0
- data/ext/boost/thread/detail/singleton.hpp +59 -0
- data/ext/boost/thread/detail/tss_hooks.hpp +78 -0
- data/ext/boost/thread/exceptions.hpp +97 -0
- data/ext/boost/thread/mutex.hpp +170 -0
- data/ext/boost/thread/once.hpp +37 -0
- data/ext/boost/thread/recursive_mutex.hpp +184 -0
- data/ext/boost/thread/thread.hpp +90 -0
- data/ext/boost/thread/tss.hpp +128 -0
- data/ext/boost/thread/xtime.hpp +54 -0
- data/ext/boost/throw_exception.hpp +46 -0
- data/ext/boost/type.hpp +18 -0
- data/ext/boost/type_traits/add_const.hpp +47 -0
- data/ext/boost/type_traits/add_cv.hpp +48 -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/add_volatile.hpp +47 -0
- data/ext/boost/type_traits/aligned_storage.hpp +13 -0
- data/ext/boost/type_traits/alignment_of.hpp +100 -0
- data/ext/boost/type_traits/alignment_traits.hpp +15 -0
- data/ext/boost/type_traits/arithmetic_traits.hpp +20 -0
- data/ext/boost/type_traits/array_traits.hpp +15 -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/cv_traits.hpp +24 -0
- data/ext/boost/type_traits/decay.hpp +44 -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_function_ptr_tester.hpp +654 -0
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -0
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +2759 -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/wrap.hpp +18 -0
- data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -0
- data/ext/boost/type_traits/extent.hpp +134 -0
- data/ext/boost/type_traits/function_traits.hpp +236 -0
- data/ext/boost/type_traits/has_nothrow_assign.hpp +38 -0
- data/ext/boost/type_traits/has_nothrow_constructor.hpp +38 -0
- data/ext/boost/type_traits/has_nothrow_copy.hpp +38 -0
- data/ext/boost/type_traits/has_nothrow_destructor.hpp +25 -0
- data/ext/boost/type_traits/has_trivial_assign.hpp +50 -0
- data/ext/boost/type_traits/has_trivial_constructor.hpp +42 -0
- data/ext/boost/type_traits/has_trivial_copy.hpp +48 -0
- data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
- data/ext/boost/type_traits/has_virtual_destructor.hpp +25 -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 +137 -0
- data/ext/boost/type_traits/is_abstract.hpp +137 -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_base_and_derived.hpp +223 -0
- data/ext/boost/type_traits/is_base_of.hpp +40 -0
- data/ext/boost/type_traits/is_class.hpp +128 -0
- data/ext/boost/type_traits/is_compound.hpp +40 -0
- data/ext/boost/type_traits/is_const.hpp +142 -0
- data/ext/boost/type_traits/is_convertible.hpp +416 -0
- data/ext/boost/type_traits/is_empty.hpp +211 -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_floating_point.hpp +27 -0
- data/ext/boost/type_traits/is_function.hpp +88 -0
- data/ext/boost/type_traits/is_fundamental.hpp +41 -0
- data/ext/boost/type_traits/is_integral.hpp +71 -0
- data/ext/boost/type_traits/is_member_function_pointer.hpp +126 -0
- data/ext/boost/type_traits/is_member_object_pointer.hpp +46 -0
- data/ext/boost/type_traits/is_member_pointer.hpp +108 -0
- data/ext/boost/type_traits/is_object.hpp +53 -0
- data/ext/boost/type_traits/is_pod.hpp +135 -0
- data/ext/boost/type_traits/is_pointer.hpp +149 -0
- data/ext/boost/type_traits/is_polymorphic.hpp +102 -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_signed.hpp +117 -0
- data/ext/boost/type_traits/is_stateless.hpp +48 -0
- data/ext/boost/type_traits/is_union.hpp +49 -0
- data/ext/boost/type_traits/is_unsigned.hpp +114 -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/msvc/remove_all_extents.hpp +47 -0
- data/ext/boost/type_traits/msvc/remove_bounds.hpp +43 -0
- data/ext/boost/type_traits/msvc/remove_const.hpp +143 -0
- data/ext/boost/type_traits/msvc/remove_cv.hpp +190 -0
- data/ext/boost/type_traits/msvc/remove_extent.hpp +43 -0
- data/ext/boost/type_traits/msvc/remove_pointer.hpp +42 -0
- data/ext/boost/type_traits/msvc/remove_reference.hpp +42 -0
- data/ext/boost/type_traits/msvc/remove_volatile.hpp +143 -0
- data/ext/boost/type_traits/msvc/typeof.hpp +50 -0
- data/ext/boost/type_traits/object_traits.hpp +33 -0
- data/ext/boost/type_traits/rank.hpp +81 -0
- data/ext/boost/type_traits/reference_traits.hpp +15 -0
- data/ext/boost/type_traits/remove_all_extents.hpp +48 -0
- data/ext/boost/type_traits/remove_bounds.hpp +48 -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_extent.hpp +48 -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/remove_volatile.hpp +77 -0
- data/ext/boost/type_traits/same_traits.hpp +15 -0
- data/ext/boost/type_traits/transform_traits.hpp +21 -0
- data/ext/boost/type_traits/transform_traits_spec.hpp +14 -0
- data/ext/boost/type_traits/type_with_alignment.hpp +288 -0
- data/ext/boost/utility.hpp +19 -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/in_place_factory.hpp +58 -0
- data/ext/boost/utility/result_of.hpp +66 -0
- data/ext/boost/utility/typed_in_place_factory.hpp +57 -0
- data/ext/boost/utility/value_init.hpp +77 -0
- data/ext/boost/visit_each.hpp +29 -0
- data/ext/boost/weak_ptr.hpp +194 -0
- data/ext/passenger/extconf.rb +17 -0
- data/ext/passenger/native_support.c +247 -0
- data/lib/passenger/abstract_server.rb +308 -0
- data/lib/passenger/application.rb +120 -0
- data/lib/passenger/application_spawner.rb +295 -0
- data/lib/passenger/cgi_fixed.rb +66 -0
- data/lib/passenger/console_text_template.rb +59 -0
- data/lib/passenger/dependencies.rb +285 -0
- data/lib/passenger/framework_spawner.rb +349 -0
- data/lib/passenger/html_template.rb +102 -0
- data/lib/passenger/message_channel.rb +221 -0
- data/lib/passenger/platform_info.rb +246 -0
- data/lib/passenger/request_handler.rb +324 -0
- data/lib/passenger/simple_benchmarking.rb +45 -0
- data/lib/passenger/spawn_manager.rb +251 -0
- data/lib/passenger/templates/apache2_config_snippets.txt.erb +13 -0
- data/lib/passenger/templates/apache_must_be_compiled_with_prefork_mpm.txt.erb +8 -0
- data/lib/passenger/templates/app_exited_during_initialization.html.erb +18 -0
- data/lib/passenger/templates/app_init_error.html.erb +64 -0
- data/lib/passenger/templates/database_error.html.erb +59 -0
- data/lib/passenger/templates/deployment_example.txt.erb +18 -0
- data/lib/passenger/templates/error_layout.css +97 -0
- data/lib/passenger/templates/error_layout.html.erb +39 -0
- data/lib/passenger/templates/framework_init_error.html.erb +39 -0
- data/lib/passenger/templates/general_error.html.erb +22 -0
- data/lib/passenger/templates/invalid_app_root.html.erb +9 -0
- data/lib/passenger/templates/load_error.html.erb +46 -0
- data/lib/passenger/templates/no_write_permission_to_passenger_root.txt.erb +9 -0
- data/lib/passenger/templates/osx_broken_apache_warning.txt.erb +23 -0
- data/lib/passenger/templates/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
- data/lib/passenger/templates/run_installer_as_root.txt.erb +8 -0
- data/lib/passenger/templates/version_not_found.html.erb +25 -0
- data/lib/passenger/templates/welcome.txt.erb +15 -0
- data/lib/passenger/utils.rb +222 -0
- data/lib/rake/cplusplus.rb +43 -0
- data/lib/rake/extensions.rb +175 -0
- data/lib/rake/gempackagetask.rb +105 -0
- data/lib/rake/packagetask.rb +186 -0
- data/lib/rake/rdoctask.rb +148 -0
- data/misc/find_owner_pipe_leaks.rb +121 -0
- data/misc/render_error_pages.rb +105 -0
- data/test/ApplicationPoolServerTest.cpp +100 -0
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +23 -0
- data/test/ApplicationPoolTest.cpp +348 -0
- data/test/CxxTestMain.cpp +24 -0
- data/test/MessageChannelTest.cpp +310 -0
- data/test/SpawnManagerTest.cpp +64 -0
- data/test/StandardApplicationPoolTest.cpp +21 -0
- data/test/UtilsTest.cpp +100 -0
- data/test/abstract_server_spec.rb +17 -0
- data/test/application_spawner_spec.rb +78 -0
- data/test/application_spec.rb +25 -0
- data/test/config.yml.example +21 -0
- data/test/framework_spawner_spec.rb +99 -0
- data/test/integration_tests.rb +356 -0
- data/test/message_channel_spec.rb +171 -0
- data/test/minimal_spawner_spec.rb +19 -0
- data/test/spawn_manager_spec.rb +105 -0
- data/test/spawn_server_spec.rb +25 -0
- data/test/spawner_error_handling_spec.rb +35 -0
- data/test/spawner_privilege_lowering_spec.rb +71 -0
- data/test/stub/apache2/httpd.conf +72 -0
- data/test/stub/apache2/httpd.conf.erb +77 -0
- data/test/stub/apache2/mime.types +748 -0
- data/test/stub/broken-railsapp/config/environment.rb +2 -0
- data/test/stub/broken-railsapp/public/useless.txt +1 -0
- data/test/stub/broken-railsapp2/config/environment.rb +3 -0
- data/test/stub/broken-railsapp3/config/environment.rb +4 -0
- data/test/stub/broken-railsapp4/config/environment.rb +1 -0
- data/test/stub/broken-railsapp4/public/useless.txt +1 -0
- data/test/stub/broken-railsapp5/config/environment.rb +1 -0
- data/test/stub/broken-railsapp5/public/useless.txt +1 -0
- data/test/stub/broken-railsapp5/vendor/rails/actionmailer/lib/action_mailer.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/actionpack/lib/action_pack.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/actionpack/lib/action_view.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/activeresource/lib/active_resource.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/activesupport/lib/active_support.rb +17 -0
- data/test/stub/broken-railsapp5/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/railties/lib/dispatcher.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/railties/lib/initializer.rb +9 -0
- data/test/stub/broken-railsapp5/vendor/rails/railties/lib/ruby_version_check.rb +1 -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 +15 -0
- data/test/stub/minimal-railsapp/README +3 -0
- data/test/stub/minimal-railsapp/config/application.rb +0 -0
- data/test/stub/minimal-railsapp/config/environment.rb +3 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionmailer/lib/action_mailer.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb +6 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_pack.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_view.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activeresource/lib/active_resource.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support.rb +17 -0
- data/test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/railties/lib/dispatcher.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/railties/lib/initializer.rb +8 -0
- data/test/stub/minimal-railsapp/vendor/rails/railties/lib/ruby_version_check.rb +1 -0
- data/test/stub/mycook/app/controllers/application.rb +12 -0
- data/test/stub/mycook/app/controllers/recipes_controller.rb +5 -0
- data/test/stub/mycook/app/controllers/uploads_controller.rb +11 -0
- data/test/stub/mycook/app/controllers/welcome_controller.rb +23 -0
- data/test/stub/mycook/app/helpers/application_helper.rb +3 -0
- data/test/stub/mycook/app/views/layouts/default.rhtml +26 -0
- data/test/stub/mycook/app/views/recipes/create.rhtml +13 -0
- data/test/stub/mycook/app/views/recipes/index.rhtml +3 -0
- data/test/stub/mycook/app/views/recipes/new.rhtml +8 -0
- data/test/stub/mycook/app/views/uploads/index.rhtml +1 -0
- data/test/stub/mycook/app/views/uploads/new.html.erb +8 -0
- data/test/stub/mycook/app/views/welcome/cached.rhtml +1 -0
- data/test/stub/mycook/app/views/welcome/index.rhtml +20 -0
- data/test/stub/mycook/config/boot.rb +108 -0
- data/test/stub/mycook/config/database.yml +19 -0
- data/test/stub/mycook/config/environment.rb +61 -0
- data/test/stub/mycook/config/environments/development.rb +18 -0
- data/test/stub/mycook/config/environments/production.rb +19 -0
- data/test/stub/mycook/config/environments/test.rb +22 -0
- data/test/stub/mycook/config/initializers/inflections.rb +10 -0
- data/test/stub/mycook/config/initializers/mime_types.rb +5 -0
- data/test/stub/mycook/config/routes.rb +38 -0
- data/test/stub/mycook/public/404.html +30 -0
- data/test/stub/mycook/public/422.html +30 -0
- data/test/stub/mycook/public/500.html +30 -0
- data/test/stub/mycook/public/dispatch.cgi +10 -0
- data/test/stub/mycook/public/dispatch.fcgi +24 -0
- data/test/stub/mycook/public/dispatch.rb +10 -0
- data/test/stub/mycook/public/favicon.ico +0 -0
- data/test/stub/mycook/public/images/angrywizard.gif +0 -0
- data/test/stub/mycook/public/images/cookbook.gif +0 -0
- data/test/stub/mycook/public/images/header.png +0 -0
- data/test/stub/mycook/public/images/rails.png +0 -0
- data/test/stub/mycook/public/javascripts/application.js +2 -0
- data/test/stub/mycook/public/javascripts/controls.js +963 -0
- data/test/stub/mycook/public/javascripts/dragdrop.js +972 -0
- data/test/stub/mycook/public/javascripts/effects.js +1120 -0
- data/test/stub/mycook/public/javascripts/prototype.js +4225 -0
- data/test/stub/mycook/public/robots.txt +5 -0
- data/test/stub/mycook/public/uploads.html +26 -0
- data/test/stub/mycook/public/welcome/cached.html +26 -0
- data/test/stub/railsapp-without-version-spec/app/controllers/application.rb +12 -0
- data/test/stub/railsapp-without-version-spec/app/controllers/foo_controller.rb +5 -0
- data/test/stub/railsapp-without-version-spec/app/helpers/application_helper.rb +3 -0
- data/test/stub/railsapp-without-version-spec/config/boot.rb +108 -0
- data/test/stub/railsapp-without-version-spec/config/database.yml +19 -0
- data/test/stub/railsapp-without-version-spec/config/environment.rb +58 -0
- data/test/stub/railsapp-without-version-spec/config/environments/development.rb +18 -0
- data/test/stub/railsapp-without-version-spec/config/environments/production.rb +19 -0
- data/test/stub/railsapp-without-version-spec/config/environments/test.rb +22 -0
- data/test/stub/railsapp-without-version-spec/config/initializers/inflections.rb +10 -0
- data/test/stub/railsapp-without-version-spec/config/initializers/mime_types.rb +5 -0
- data/test/stub/railsapp-without-version-spec/config/routes.rb +35 -0
- data/test/stub/railsapp-without-version-spec/public/useless.txt +1 -0
- data/test/stub/railsapp/app/controllers/application.rb +12 -0
- data/test/stub/railsapp/app/controllers/bar_controller_1.rb +5 -0
- data/test/stub/railsapp/app/controllers/bar_controller_2.rb +5 -0
- data/test/stub/railsapp/app/controllers/foo_controller.rb +5 -0
- data/test/stub/railsapp/app/helpers/application_helper.rb +3 -0
- data/test/stub/railsapp/config/boot.rb +108 -0
- data/test/stub/railsapp/config/database.yml +19 -0
- data/test/stub/railsapp/config/environment.rb +59 -0
- data/test/stub/railsapp/config/environments/development.rb +18 -0
- data/test/stub/railsapp/config/environments/production.rb +19 -0
- data/test/stub/railsapp/config/environments/test.rb +22 -0
- data/test/stub/railsapp/config/initializers/inflections.rb +10 -0
- data/test/stub/railsapp/config/initializers/mime_types.rb +5 -0
- data/test/stub/railsapp/config/routes.rb +35 -0
- data/test/stub/railsapp/public/useless.txt +1 -0
- data/test/stub/railsapp2/app/controllers/application.rb +12 -0
- data/test/stub/railsapp2/app/controllers/foo_controller.rb +5 -0
- data/test/stub/railsapp2/app/helpers/application_helper.rb +3 -0
- data/test/stub/railsapp2/config/boot.rb +108 -0
- data/test/stub/railsapp2/config/database.yml +19 -0
- data/test/stub/railsapp2/config/environment.rb +59 -0
- data/test/stub/railsapp2/config/environments/development.rb +18 -0
- data/test/stub/railsapp2/config/environments/production.rb +19 -0
- data/test/stub/railsapp2/config/environments/test.rb +22 -0
- data/test/stub/railsapp2/config/initializers/inflections.rb +10 -0
- data/test/stub/railsapp2/config/initializers/mime_types.rb +5 -0
- data/test/stub/railsapp2/config/routes.rb +35 -0
- data/test/stub/railsapp2/public/useless.txt +1 -0
- data/test/stub/spawn_server.rb +17 -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/apache2_config_writer.rb +44 -0
- data/test/support/config.rb +10 -0
- data/test/support/multipart.rb +62 -0
- data/test/support/run_rspec_tests.rb +10 -0
- data/test/support/tut.h +1219 -0
- data/test/support/tut_reporter.h +256 -0
- data/test/support/valgrind.h +2539 -0
- metadata +2204 -0
@@ -0,0 +1,189 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
|
+
<title>Passenger: ApplicationPool.h Source File</title>
|
4
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="tabs.css" rel="stylesheet" type="text/css">
|
6
|
+
</head><body>
|
7
|
+
<!-- Generated by Doxygen 1.5.3 -->
|
8
|
+
<div class="tabs">
|
9
|
+
<ul>
|
10
|
+
<li><a href="main.html"><span>Main Page</span></a></li>
|
11
|
+
<li><a href="modules.html"><span>Modules</span></a></li>
|
12
|
+
<li><a href="annotated.html"><span>Classes</span></a></li>
|
13
|
+
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
14
|
+
</ul>
|
15
|
+
</div>
|
16
|
+
<h1>ApplicationPool.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
17
|
+
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
18
|
+
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
|
19
|
+
<a name="l00004"></a>00004 <span class="comment"> *</span>
|
20
|
+
<a name="l00005"></a>00005 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
|
21
|
+
<a name="l00006"></a>00006 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
|
22
|
+
<a name="l00007"></a>00007 <span class="comment"> * the Free Software Foundation; version 2 of the License.</span>
|
23
|
+
<a name="l00008"></a>00008 <span class="comment"> *</span>
|
24
|
+
<a name="l00009"></a>00009 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
|
25
|
+
<a name="l00010"></a>00010 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
26
|
+
<a name="l00011"></a>00011 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
27
|
+
<a name="l00012"></a>00012 <span class="comment"> * GNU General Public License for more details.</span>
|
28
|
+
<a name="l00013"></a>00013 <span class="comment"> *</span>
|
29
|
+
<a name="l00014"></a>00014 <span class="comment"> * You should have received a copy of the GNU General Public License along</span>
|
30
|
+
<a name="l00015"></a>00015 <span class="comment"> * with this program; if not, write to the Free Software Foundation, Inc.,</span>
|
31
|
+
<a name="l00016"></a>00016 <span class="comment"> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span>
|
32
|
+
<a name="l00017"></a>00017 <span class="comment"> */</span>
|
33
|
+
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef _PASSENGER_APPLICATION_POOL_H_</span>
|
34
|
+
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_APPLICATION_POOL_H_</span>
|
35
|
+
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
36
|
+
<a name="l00021"></a>00021 <span class="preprocessor">#include <boost/shared_ptr.hpp></span>
|
37
|
+
<a name="l00022"></a>00022 <span class="preprocessor">#include <sys/types.h></span>
|
38
|
+
<a name="l00023"></a>00023
|
39
|
+
<a name="l00024"></a>00024 <span class="preprocessor">#include "Application.h"</span>
|
40
|
+
<a name="l00025"></a>00025
|
41
|
+
<a name="l00026"></a>00026 <span class="keyword">namespace </span>Passenger {
|
42
|
+
<a name="l00027"></a>00027
|
43
|
+
<a name="l00028"></a>00028 <span class="keyword">using namespace </span>std;
|
44
|
+
<a name="l00029"></a>00029 <span class="keyword">using namespace </span>boost;
|
45
|
+
<a name="l00030"></a>00030 <span class="comment"></span>
|
46
|
+
<a name="l00031"></a>00031 <span class="comment">/**</span>
|
47
|
+
<a name="l00032"></a>00032 <span class="comment"> * A persistent pool of Applications.</span>
|
48
|
+
<a name="l00033"></a>00033 <span class="comment"> *</span>
|
49
|
+
<a name="l00034"></a>00034 <span class="comment"> * Spawning Ruby on Rails application instances is a very expensive operation.</span>
|
50
|
+
<a name="l00035"></a>00035 <span class="comment"> * Despite best efforts to make the operation less expensive (see SpawnManager),</span>
|
51
|
+
<a name="l00036"></a>00036 <span class="comment"> * it remains expensive compared to the cost of processing an HTTP request/response.</span>
|
52
|
+
<a name="l00037"></a>00037 <span class="comment"> * So, in order to solve this, some sort of caching/pooling mechanism will be required.</span>
|
53
|
+
<a name="l00038"></a>00038 <span class="comment"> * ApplicationPool provides this.</span>
|
54
|
+
<a name="l00039"></a>00039 <span class="comment"> *</span>
|
55
|
+
<a name="l00040"></a>00040 <span class="comment"> * Normally, one would use SpawnManager to spawn a new RoR application instance,</span>
|
56
|
+
<a name="l00041"></a>00041 <span class="comment"> * then use Application::connect() to create a new session with that application</span>
|
57
|
+
<a name="l00042"></a>00042 <span class="comment"> * instance, and then use the returned Session object to send the request and</span>
|
58
|
+
<a name="l00043"></a>00043 <span class="comment"> * to read the HTTP response. ApplicationPool replaces the first step with</span>
|
59
|
+
<a name="l00044"></a>00044 <span class="comment"> * a call to Application::get(). For example:</span>
|
60
|
+
<a name="l00045"></a>00045 <span class="comment"> * @code</span>
|
61
|
+
<a name="l00046"></a>00046 <span class="comment"> * ApplicationPool pool = some_function_which_creates_an_application_pool();</span>
|
62
|
+
<a name="l00047"></a>00047 <span class="comment"> * </span>
|
63
|
+
<a name="l00048"></a>00048 <span class="comment"> * // Connect to the application and get the newly opened session.</span>
|
64
|
+
<a name="l00049"></a>00049 <span class="comment"> * Application::SessionPtr session(pool->get("/home/webapps/foo"));</span>
|
65
|
+
<a name="l00050"></a>00050 <span class="comment"> * </span>
|
66
|
+
<a name="l00051"></a>00051 <span class="comment"> * // Send the request headers and request body data.</span>
|
67
|
+
<a name="l00052"></a>00052 <span class="comment"> * session->sendHeaders(...);</span>
|
68
|
+
<a name="l00053"></a>00053 <span class="comment"> * session->sendBodyBlock(...);</span>
|
69
|
+
<a name="l00054"></a>00054 <span class="comment"> * // Done sending data, so we close the writer channel.</span>
|
70
|
+
<a name="l00055"></a>00055 <span class="comment"> * session->closeWriter();</span>
|
71
|
+
<a name="l00056"></a>00056 <span class="comment"> *</span>
|
72
|
+
<a name="l00057"></a>00057 <span class="comment"> * // Now read the HTTP response.</span>
|
73
|
+
<a name="l00058"></a>00058 <span class="comment"> * string responseData = readAllDataFromSocket(session->getReader());</span>
|
74
|
+
<a name="l00059"></a>00059 <span class="comment"> * // Done reading data, so we close the reader channel.</span>
|
75
|
+
<a name="l00060"></a>00060 <span class="comment"> * session->closeReader();</span>
|
76
|
+
<a name="l00061"></a>00061 <span class="comment"> *</span>
|
77
|
+
<a name="l00062"></a>00062 <span class="comment"> * // This session has now finished, so we close the session by resetting</span>
|
78
|
+
<a name="l00063"></a>00063 <span class="comment"> * // the smart pointer to NULL (thereby destroying the Session object).</span>
|
79
|
+
<a name="l00064"></a>00064 <span class="comment"> * session.reset();</span>
|
80
|
+
<a name="l00065"></a>00065 <span class="comment"> *</span>
|
81
|
+
<a name="l00066"></a>00066 <span class="comment"> * // We can connect to an Application multiple times. Just make sure</span>
|
82
|
+
<a name="l00067"></a>00067 <span class="comment"> * // the previous session is closed.</span>
|
83
|
+
<a name="l00068"></a>00068 <span class="comment"> * session = app->connect("/home/webapps/bar")</span>
|
84
|
+
<a name="l00069"></a>00069 <span class="comment"> * @endcode</span>
|
85
|
+
<a name="l00070"></a>00070 <span class="comment"> *</span>
|
86
|
+
<a name="l00071"></a>00071 <span class="comment"> * Internally, ApplicationPool::get() will keep spawned applications instances in</span>
|
87
|
+
<a name="l00072"></a>00072 <span class="comment"> * memory, and reuse them if possible. It will try to keep spawning to a minimum.</span>
|
88
|
+
<a name="l00073"></a>00073 <span class="comment"> * Furthermore, if an application instance hasn't been used for a while, it</span>
|
89
|
+
<a name="l00074"></a>00074 <span class="comment"> * will be automatically shutdown in order to save memory. Restart requests are</span>
|
90
|
+
<a name="l00075"></a>00075 <span class="comment"> * honored: if an application has the file 'restart.txt' in its 'tmp' folder,</span>
|
91
|
+
<a name="l00076"></a>00076 <span class="comment"> * then get() will shutdown existing instances of that application and spawn</span>
|
92
|
+
<a name="l00077"></a>00077 <span class="comment"> * a new instance (this is useful when a new version of an application has been</span>
|
93
|
+
<a name="l00078"></a>00078 <span class="comment"> * deployed). And finally, one can set a hard limit on the maximum number of</span>
|
94
|
+
<a name="l00079"></a>00079 <span class="comment"> * applications instances that may be spawned (see ApplicationPool::setMax()).</span>
|
95
|
+
<a name="l00080"></a>00080 <span class="comment"> *</span>
|
96
|
+
<a name="l00081"></a>00081 <span class="comment"> * Note that ApplicationPool is just an interface (i.e. a pure virtual class).</span>
|
97
|
+
<a name="l00082"></a>00082 <span class="comment"> * For concrete classes, see StandardApplicationPool and ApplicationPoolServer.</span>
|
98
|
+
<a name="l00083"></a>00083 <span class="comment"> * The exact pooling algorithm depends on the implementation class.</span>
|
99
|
+
<a name="l00084"></a>00084 <span class="comment"> *</span>
|
100
|
+
<a name="l00085"></a>00085 <span class="comment"> * @ingroup Support</span>
|
101
|
+
<a name="l00086"></a>00086 <span class="comment"> */</span>
|
102
|
+
<a name="l00087"></a><a class="code" href="classPassenger_1_1ApplicationPool.html">00087</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> {
|
103
|
+
<a name="l00088"></a>00088 <span class="keyword">public</span>:
|
104
|
+
<a name="l00089"></a>00089 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>() {};
|
105
|
+
<a name="l00090"></a>00090 <span class="comment"></span>
|
106
|
+
<a name="l00091"></a>00091 <span class="comment"> /**</span>
|
107
|
+
<a name="l00092"></a>00092 <span class="comment"> * Open a new session with the application specified by <tt>appRoot</tt>.</span>
|
108
|
+
<a name="l00093"></a>00093 <span class="comment"> * See the class description for ApplicationPool, as well as Application::connect(),</span>
|
109
|
+
<a name="l00094"></a>00094 <span class="comment"> * on how to use the returned session object.</span>
|
110
|
+
<a name="l00095"></a>00095 <span class="comment"> *</span>
|
111
|
+
<a name="l00096"></a>00096 <span class="comment"> * Internally, this method may either spawn a new application instance, or use</span>
|
112
|
+
<a name="l00097"></a>00097 <span class="comment"> * an existing one.</span>
|
113
|
+
<a name="l00098"></a>00098 <span class="comment"> *</span>
|
114
|
+
<a name="l00099"></a>00099 <span class="comment"> * If <tt>lowerPrivilege</tt> is true, then any newly spawned application</span>
|
115
|
+
<a name="l00100"></a>00100 <span class="comment"> * instances will have lower privileges. See SpawnManager::SpawnManager()'s</span>
|
116
|
+
<a name="l00101"></a>00101 <span class="comment"> * description of <tt>lowerPrivilege</tt> and <tt>lowestUser</tt> for details.</span>
|
117
|
+
<a name="l00102"></a>00102 <span class="comment"> *</span>
|
118
|
+
<a name="l00103"></a>00103 <span class="comment"> * @param appRoot The application root of a RoR application, i.e. the folder that</span>
|
119
|
+
<a name="l00104"></a>00104 <span class="comment"> * contains 'app/', 'public/', 'config/', etc. This must be a valid</span>
|
120
|
+
<a name="l00105"></a>00105 <span class="comment"> * directory, but does not have to be an absolute path.</span>
|
121
|
+
<a name="l00106"></a>00106 <span class="comment"> * @param lowerPrivilege Whether to lower the application's privileges.</span>
|
122
|
+
<a name="l00107"></a>00107 <span class="comment"> * @param lowestUser The user to fallback to if lowering privilege fails.</span>
|
123
|
+
<a name="l00108"></a>00108 <span class="comment"> * @return A session object.</span>
|
124
|
+
<a name="l00109"></a>00109 <span class="comment"> * @throw SpawnException An attempt was made to spawn a new application instance, but that attempt failed.</span>
|
125
|
+
<a name="l00110"></a>00110 <span class="comment"> * @throw IOException Something else went wrong.</span>
|
126
|
+
<a name="l00111"></a>00111 <span class="comment"> * @note Applications are uniquely identified with the application root</span>
|
127
|
+
<a name="l00112"></a>00112 <span class="comment"> * string. So although <tt>appRoot</tt> does not have to be absolute, it</span>
|
128
|
+
<a name="l00113"></a>00113 <span class="comment"> * should be. If one calls <tt>get("/home/foo")</tt> and</span>
|
129
|
+
<a name="l00114"></a>00114 <span class="comment"> * <tt>get("/home/../home/foo")</tt>, then ApplicationPool will think</span>
|
130
|
+
<a name="l00115"></a>00115 <span class="comment"> * they're 2 different applications, and thus will spawn 2 application instances.</span>
|
131
|
+
<a name="l00116"></a>00116 <span class="comment"> */</span>
|
132
|
+
<a name="l00117"></a>00117 <span class="keyword">virtual</span> <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">Application::SessionPtr</a> <span class="keyword">get</span>(<span class="keyword">const</span> <span class="keywordtype">string</span> &appRoot, <span class="keywordtype">bool</span> lowerPrivilege = <span class="keyword">true</span>, <span class="keyword">const</span> <span class="keywordtype">string</span> &lowestUser = <span class="stringliteral">"nobody"</span>) = 0;
|
133
|
+
<a name="l00118"></a>00118 <span class="comment"></span>
|
134
|
+
<a name="l00119"></a>00119 <span class="comment"> /**</span>
|
135
|
+
<a name="l00120"></a>00120 <span class="comment"> * Clear all application instances that are currently in the pool.</span>
|
136
|
+
<a name="l00121"></a>00121 <span class="comment"> *</span>
|
137
|
+
<a name="l00122"></a>00122 <span class="comment"> * This method is used by unit tests to verify that the implementation is correct,</span>
|
138
|
+
<a name="l00123"></a>00123 <span class="comment"> * and thus should not be called directly.</span>
|
139
|
+
<a name="l00124"></a>00124 <span class="comment"> */</span>
|
140
|
+
<a name="l00125"></a>00125 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1ApplicationPool.html#74db4d7a693d45b16320b2296a0c0997" title="Clear all application instances that are currently in the pool.">clear</a>() = 0;
|
141
|
+
<a name="l00126"></a>00126
|
142
|
+
<a name="l00127"></a>00127 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaxIdleTime(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seconds) = 0;
|
143
|
+
<a name="l00128"></a>00128 <span class="comment"></span>
|
144
|
+
<a name="l00129"></a>00129 <span class="comment"> /**</span>
|
145
|
+
<a name="l00130"></a>00130 <span class="comment"> * Set a hard limit on the number of application instances that this ApplicationPool</span>
|
146
|
+
<a name="l00131"></a>00131 <span class="comment"> * may spawn. The exact behavior depends on the used algorithm, and is not specified by</span>
|
147
|
+
<a name="l00132"></a>00132 <span class="comment"> * these API docs.</span>
|
148
|
+
<a name="l00133"></a>00133 <span class="comment"> *</span>
|
149
|
+
<a name="l00134"></a>00134 <span class="comment"> * It is allowed to set a limit lower than the current number of spawned applications.</span>
|
150
|
+
<a name="l00135"></a>00135 <span class="comment"> */</span>
|
151
|
+
<a name="l00136"></a>00136 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794" title="Set a hard limit on the number of application instances that this ApplicationPool...">setMax</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> max) = 0;
|
152
|
+
<a name="l00137"></a>00137 <span class="comment"></span>
|
153
|
+
<a name="l00138"></a>00138 <span class="comment"> /**</span>
|
154
|
+
<a name="l00139"></a>00139 <span class="comment"> * Get the number of active applications in the pool.</span>
|
155
|
+
<a name="l00140"></a>00140 <span class="comment"> *</span>
|
156
|
+
<a name="l00141"></a>00141 <span class="comment"> * This method exposes an implementation detail of the underlying pooling algorithm.</span>
|
157
|
+
<a name="l00142"></a>00142 <span class="comment"> * It is used by unit tests to verify that the implementation is correct,</span>
|
158
|
+
<a name="l00143"></a>00143 <span class="comment"> * and thus should not be called directly.</span>
|
159
|
+
<a name="l00144"></a>00144 <span class="comment"> */</span>
|
160
|
+
<a name="l00145"></a>00145 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1ApplicationPool.html#06d1eae044d4d761ce77cf09049df8c8" title="Get the number of active applications in the pool.">getActive</a>() <span class="keyword">const</span> = 0;
|
161
|
+
<a name="l00146"></a>00146 <span class="comment"></span>
|
162
|
+
<a name="l00147"></a>00147 <span class="comment"> /**</span>
|
163
|
+
<a name="l00148"></a>00148 <span class="comment"> * Get the number of active applications in the pool.</span>
|
164
|
+
<a name="l00149"></a>00149 <span class="comment"> *</span>
|
165
|
+
<a name="l00150"></a>00150 <span class="comment"> * This method exposes an implementation detail of the underlying pooling algorithm.</span>
|
166
|
+
<a name="l00151"></a>00151 <span class="comment"> * It is used by unit tests to verify that the implementation is correct,</span>
|
167
|
+
<a name="l00152"></a>00152 <span class="comment"> * and thus should not be called directly.</span>
|
168
|
+
<a name="l00153"></a>00153 <span class="comment"> */</span>
|
169
|
+
<a name="l00154"></a>00154 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1ApplicationPool.html#93b0277beb510855f85fee5de5c369bb" title="Get the number of active applications in the pool.">getCount</a>() <span class="keyword">const</span> = 0;
|
170
|
+
<a name="l00155"></a>00155 <span class="comment"></span>
|
171
|
+
<a name="l00156"></a>00156 <span class="comment"> /**</span>
|
172
|
+
<a name="l00157"></a>00157 <span class="comment"> * Get the process ID of the spawn server that is used.</span>
|
173
|
+
<a name="l00158"></a>00158 <span class="comment"> *</span>
|
174
|
+
<a name="l00159"></a>00159 <span class="comment"> * This method exposes an implementation detail. It is used by unit tests to verify</span>
|
175
|
+
<a name="l00160"></a>00160 <span class="comment"> * that the implementation is correct, and thus should not be used directly.</span>
|
176
|
+
<a name="l00161"></a>00161 <span class="comment"> */</span>
|
177
|
+
<a name="l00162"></a>00162 <span class="keyword">virtual</span> pid_t <a class="code" href="classPassenger_1_1ApplicationPool.html#d9149c3b434ef8e18fd15a77af1a6c2c" title="Get the process ID of the spawn server that is used.">getSpawnServerPid</a>() <span class="keyword">const</span> = 0;
|
178
|
+
<a name="l00163"></a>00163 };
|
179
|
+
<a name="l00164"></a>00164
|
180
|
+
<a name="l00165"></a>00165 <span class="keyword">typedef</span> shared_ptr<ApplicationPool> ApplicationPoolPtr;
|
181
|
+
<a name="l00166"></a>00166
|
182
|
+
<a name="l00167"></a>00167 }; <span class="comment">// namespace Passenger</span>
|
183
|
+
<a name="l00168"></a>00168
|
184
|
+
<a name="l00169"></a>00169 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_APPLICATION_POOL_H_ */</span>
|
185
|
+
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 11 18:16:04 2008 for Passenger by
|
186
|
+
<a href="http://www.doxygen.org/index.html">
|
187
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
|
188
|
+
</body>
|
189
|
+
</html>
|
@@ -0,0 +1,402 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
|
+
<title>Passenger: Application.h Source File</title>
|
4
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="tabs.css" rel="stylesheet" type="text/css">
|
6
|
+
</head><body>
|
7
|
+
<!-- Generated by Doxygen 1.5.3 -->
|
8
|
+
<div class="tabs">
|
9
|
+
<ul>
|
10
|
+
<li><a href="main.html"><span>Main Page</span></a></li>
|
11
|
+
<li><a href="modules.html"><span>Modules</span></a></li>
|
12
|
+
<li><a href="annotated.html"><span>Classes</span></a></li>
|
13
|
+
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
14
|
+
</ul>
|
15
|
+
</div>
|
16
|
+
<h1>Application.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
17
|
+
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
18
|
+
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
|
19
|
+
<a name="l00004"></a>00004 <span class="comment"> *</span>
|
20
|
+
<a name="l00005"></a>00005 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
|
21
|
+
<a name="l00006"></a>00006 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
|
22
|
+
<a name="l00007"></a>00007 <span class="comment"> * the Free Software Foundation; version 2 of the License.</span>
|
23
|
+
<a name="l00008"></a>00008 <span class="comment"> *</span>
|
24
|
+
<a name="l00009"></a>00009 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
|
25
|
+
<a name="l00010"></a>00010 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
26
|
+
<a name="l00011"></a>00011 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
27
|
+
<a name="l00012"></a>00012 <span class="comment"> * GNU General Public License for more details.</span>
|
28
|
+
<a name="l00013"></a>00013 <span class="comment"> *</span>
|
29
|
+
<a name="l00014"></a>00014 <span class="comment"> * You should have received a copy of the GNU General Public License along</span>
|
30
|
+
<a name="l00015"></a>00015 <span class="comment"> * with this program; if not, write to the Free Software Foundation, Inc.,</span>
|
31
|
+
<a name="l00016"></a>00016 <span class="comment"> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span>
|
32
|
+
<a name="l00017"></a>00017 <span class="comment"> */</span>
|
33
|
+
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef _PASSENGER_APPLICATION_H_</span>
|
34
|
+
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_APPLICATION_H_</span>
|
35
|
+
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
36
|
+
<a name="l00021"></a>00021 <span class="preprocessor">#include <boost/shared_ptr.hpp></span>
|
37
|
+
<a name="l00022"></a>00022 <span class="preprocessor">#include <boost/function.hpp></span>
|
38
|
+
<a name="l00023"></a>00023 <span class="preprocessor">#include <string></span>
|
39
|
+
<a name="l00024"></a>00024
|
40
|
+
<a name="l00025"></a>00025 <span class="preprocessor">#include <sys/types.h></span>
|
41
|
+
<a name="l00026"></a>00026 <span class="preprocessor">#include <sys/socket.h></span>
|
42
|
+
<a name="l00027"></a>00027 <span class="preprocessor">#include <sys/un.h></span>
|
43
|
+
<a name="l00028"></a>00028 <span class="preprocessor">#include <unistd.h></span>
|
44
|
+
<a name="l00029"></a>00029 <span class="preprocessor">#include <errno.h></span>
|
45
|
+
<a name="l00030"></a>00030 <span class="preprocessor">#include <ctime></span>
|
46
|
+
<a name="l00031"></a>00031 <span class="preprocessor">#include <cstring></span>
|
47
|
+
<a name="l00032"></a>00032
|
48
|
+
<a name="l00033"></a>00033 <span class="preprocessor">#include "MessageChannel.h"</span>
|
49
|
+
<a name="l00034"></a>00034 <span class="preprocessor">#include "Exceptions.h"</span>
|
50
|
+
<a name="l00035"></a>00035 <span class="preprocessor">#include "Logging.h"</span>
|
51
|
+
<a name="l00036"></a>00036
|
52
|
+
<a name="l00037"></a>00037 <span class="keyword">namespace </span>Passenger {
|
53
|
+
<a name="l00038"></a>00038
|
54
|
+
<a name="l00039"></a>00039 <span class="keyword">using namespace </span>std;
|
55
|
+
<a name="l00040"></a>00040 <span class="keyword">using namespace </span>boost;
|
56
|
+
<a name="l00041"></a>00041 <span class="comment"></span>
|
57
|
+
<a name="l00042"></a>00042 <span class="comment">/**</span>
|
58
|
+
<a name="l00043"></a>00043 <span class="comment"> * Represents a single Ruby on Rails application instance.</span>
|
59
|
+
<a name="l00044"></a>00044 <span class="comment"> *</span>
|
60
|
+
<a name="l00045"></a>00045 <span class="comment"> * @ingroup Support</span>
|
61
|
+
<a name="l00046"></a>00046 <span class="comment"> */</span>
|
62
|
+
<a name="l00047"></a><a class="code" href="classPassenger_1_1Application.html">00047</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1Application.html" title="Represents a single Ruby on Rails application instance.">Application</a> {
|
63
|
+
<a name="l00048"></a>00048 <span class="keyword">public</span>:
|
64
|
+
<a name="l00049"></a><a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">00049</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails application...">Session</a>;<span class="comment"></span>
|
65
|
+
<a name="l00050"></a>00050 <span class="comment"> /** Convenient alias for Session smart pointer. */</span>
|
66
|
+
<a name="l00051"></a>00051 <span class="keyword">typedef</span> shared_ptr<Session> <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">SessionPtr</a>;
|
67
|
+
<a name="l00052"></a>00052 <span class="comment"></span>
|
68
|
+
<a name="l00053"></a>00053 <span class="comment"> /**</span>
|
69
|
+
<a name="l00054"></a>00054 <span class="comment"> * Represents the life time of a single request/response pair of a Ruby on Rails</span>
|
70
|
+
<a name="l00055"></a>00055 <span class="comment"> * application.</span>
|
71
|
+
<a name="l00056"></a>00056 <span class="comment"> *</span>
|
72
|
+
<a name="l00057"></a>00057 <span class="comment"> * Session is used to forward a single HTTP request to a Ruby on Rails application.</span>
|
73
|
+
<a name="l00058"></a>00058 <span class="comment"> * A Session has two communication channels: one for reading data from</span>
|
74
|
+
<a name="l00059"></a>00059 <span class="comment"> * the RoR application, and one for writing data to the RoR application.</span>
|
75
|
+
<a name="l00060"></a>00060 <span class="comment"> *</span>
|
76
|
+
<a name="l00061"></a>00061 <span class="comment"> * In general, a session object is to be used in the following manner:</span>
|
77
|
+
<a name="l00062"></a>00062 <span class="comment"> *</span>
|
78
|
+
<a name="l00063"></a>00063 <span class="comment"> * -# Convert the HTTP request headers into a string, as expected by sendHeaders().</span>
|
79
|
+
<a name="l00064"></a>00064 <span class="comment"> * Then send that string by calling sendHeaders().</span>
|
80
|
+
<a name="l00065"></a>00065 <span class="comment"> * -# In case of a POST of PUT request, send the HTTP request body by calling</span>
|
81
|
+
<a name="l00066"></a>00066 <span class="comment"> * sendBodyBlock(), possibly multiple times.</span>
|
82
|
+
<a name="l00067"></a>00067 <span class="comment"> * -# Close the writer channel since you're now done sending data.</span>
|
83
|
+
<a name="l00068"></a>00068 <span class="comment"> * -# The HTTP response can now be read through the reader channel (getReader()).</span>
|
84
|
+
<a name="l00069"></a>00069 <span class="comment"> * -# When the HTTP response has been read, the session must be closed.</span>
|
85
|
+
<a name="l00070"></a>00070 <span class="comment"> * This is done by destroying the Session object.</span>
|
86
|
+
<a name="l00071"></a>00071 <span class="comment"> *</span>
|
87
|
+
<a name="l00072"></a>00072 <span class="comment"> * A usage example is shown in Application::connect(). </span>
|
88
|
+
<a name="l00073"></a>00073 <span class="comment"> */</span>
|
89
|
+
<a name="l00074"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html">00074</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails application...">Session</a> {
|
90
|
+
<a name="l00075"></a>00075 <span class="keyword">public</span>:
|
91
|
+
<a name="l00076"></a>00076 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails application...">Session</a>() {}
|
92
|
+
<a name="l00077"></a>00077 <span class="comment"></span>
|
93
|
+
<a name="l00078"></a>00078 <span class="comment"> /**</span>
|
94
|
+
<a name="l00079"></a>00079 <span class="comment"> * Send HTTP request headers to the RoR application. The HTTP headers must be</span>
|
95
|
+
<a name="l00080"></a>00080 <span class="comment"> * converted into CGI headers, and then encoded into a string that matches this grammar:</span>
|
96
|
+
<a name="l00081"></a>00081 <span class="comment"> *</span>
|
97
|
+
<a name="l00082"></a>00082 <span class="comment"> @verbatim</span>
|
98
|
+
<a name="l00083"></a>00083 <span class="comment"> headers ::= header*</span>
|
99
|
+
<a name="l00084"></a>00084 <span class="comment"> header ::= name NUL value NUL</span>
|
100
|
+
<a name="l00085"></a>00085 <span class="comment"> name ::= notnull+</span>
|
101
|
+
<a name="l00086"></a>00086 <span class="comment"> value ::= notnull+</span>
|
102
|
+
<a name="l00087"></a>00087 <span class="comment"> notnull ::= "\x01" | "\x02" | "\x02" | ... | "\xFF"</span>
|
103
|
+
<a name="l00088"></a>00088 <span class="comment"> NUL = "\x00"</span>
|
104
|
+
<a name="l00089"></a>00089 <span class="comment"> @endverbatim</span>
|
105
|
+
<a name="l00090"></a>00090 <span class="comment"> *</span>
|
106
|
+
<a name="l00091"></a>00091 <span class="comment"> * This method should be the first one to be called during the lifetime of a Session</span>
|
107
|
+
<a name="l00092"></a>00092 <span class="comment"> * object. Otherwise strange things may happen.</span>
|
108
|
+
<a name="l00093"></a>00093 <span class="comment"> *</span>
|
109
|
+
<a name="l00094"></a>00094 <span class="comment"> * @param headers The HTTP request headers, converted into CGI headers and encoded as</span>
|
110
|
+
<a name="l00095"></a>00095 <span class="comment"> * a string, according to the description.</span>
|
111
|
+
<a name="l00096"></a>00096 <span class="comment"> * @param size The size, in bytes, of <tt>headers</tt>.</span>
|
112
|
+
<a name="l00097"></a>00097 <span class="comment"> * @pre headers != NULL</span>
|
113
|
+
<a name="l00098"></a>00098 <span class="comment"> * @throws IOException The writer channel has already been closed.</span>
|
114
|
+
<a name="l00099"></a>00099 <span class="comment"> * @throws SystemException Something went wrong during writing.</span>
|
115
|
+
<a name="l00100"></a>00100 <span class="comment"> */</span>
|
116
|
+
<a name="l00101"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#78a4c93fd80f6d913f092c488ea4d360">00101</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#78a4c93fd80f6d913f092c488ea4d360" title="Send HTTP request headers to the RoR application.">sendHeaders</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *headers, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size) {
|
117
|
+
<a name="l00102"></a>00102 <span class="keywordtype">int</span> writer = <a class="code" href="classPassenger_1_1Application_1_1Session.html#ffdb4345b8fd695e66d123cb62a9b160" title="Get the writer channel&#39;s file descriptor.">getWriter</a>();
|
118
|
+
<a name="l00103"></a>00103 <span class="keywordflow">if</span> (writer == -1) {
|
119
|
+
<a name="l00104"></a>00104 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(<span class="stringliteral">"Cannot write headers to the request handler because the writer channel has already been closed."</span>);
|
120
|
+
<a name="l00105"></a>00105 }
|
121
|
+
<a name="l00106"></a>00106 <span class="keywordflow">try</span> {
|
122
|
+
<a name="l00107"></a>00107 <a class="code" href="classPassenger_1_1MessageChannel.html" title="Convenience class for I/O operations on file descriptors.">MessageChannel</a>(writer).writeScalar(headers, size);
|
123
|
+
<a name="l00108"></a>00108 } <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a> &e) {
|
124
|
+
<a name="l00109"></a>00109 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a>(<span class="stringliteral">"An error occured while writing headers to the request handler"</span>, e.<a class="code" href="classPassenger_1_1SystemException.html#ee7a6672bf79b72a4c3ee70c57d6a47c" title="The value of errno at the time the error occured.">code</a>());
|
125
|
+
<a name="l00110"></a>00110 }
|
126
|
+
<a name="l00111"></a>00111 }
|
127
|
+
<a name="l00112"></a>00112 <span class="comment"></span>
|
128
|
+
<a name="l00113"></a>00113 <span class="comment"> /**</span>
|
129
|
+
<a name="l00114"></a>00114 <span class="comment"> * Convenience shortcut for sendHeaders(const char *, unsigned int)</span>
|
130
|
+
<a name="l00115"></a>00115 <span class="comment"> * @param headers</span>
|
131
|
+
<a name="l00116"></a>00116 <span class="comment"> * @throws IOException The writer channel has already been closed.</span>
|
132
|
+
<a name="l00117"></a>00117 <span class="comment"> * @throws SystemException Something went wrong during writing.</span>
|
133
|
+
<a name="l00118"></a>00118 <span class="comment"> */</span>
|
134
|
+
<a name="l00119"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#4fee03667f626d68c565495bcb19771a">00119</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#78a4c93fd80f6d913f092c488ea4d360" title="Send HTTP request headers to the RoR application.">sendHeaders</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &headers) {
|
135
|
+
<a name="l00120"></a>00120 <a class="code" href="classPassenger_1_1Application_1_1Session.html#78a4c93fd80f6d913f092c488ea4d360" title="Send HTTP request headers to the RoR application.">sendHeaders</a>(headers.c_str(), headers.size());
|
136
|
+
<a name="l00121"></a>00121 }
|
137
|
+
<a name="l00122"></a>00122 <span class="comment"></span>
|
138
|
+
<a name="l00123"></a>00123 <span class="comment"> /**</span>
|
139
|
+
<a name="l00124"></a>00124 <span class="comment"> * Send a chunk of HTTP request body data to the RoR application.</span>
|
140
|
+
<a name="l00125"></a>00125 <span class="comment"> * You can call this method as many times as is required to transfer</span>
|
141
|
+
<a name="l00126"></a>00126 <span class="comment"> * the entire HTTP request body.</span>
|
142
|
+
<a name="l00127"></a>00127 <span class="comment"> *</span>
|
143
|
+
<a name="l00128"></a>00128 <span class="comment"> * This method should only be called after a sendHeaders(). Otherwise</span>
|
144
|
+
<a name="l00129"></a>00129 <span class="comment"> * strange things may happen.</span>
|
145
|
+
<a name="l00130"></a>00130 <span class="comment"> *</span>
|
146
|
+
<a name="l00131"></a>00131 <span class="comment"> * @param block A block of HTTP request body data to send.</span>
|
147
|
+
<a name="l00132"></a>00132 <span class="comment"> * @param size The size, in bytes, of <tt>block</tt>.</span>
|
148
|
+
<a name="l00133"></a>00133 <span class="comment"> * @throws IOException The writer channel has already been closed.</span>
|
149
|
+
<a name="l00134"></a>00134 <span class="comment"> * @throws SystemException Something went wrong during writing.</span>
|
150
|
+
<a name="l00135"></a>00135 <span class="comment"> */</span>
|
151
|
+
<a name="l00136"></a><a class="code" href="classPassenger_1_1Application_1_1Session.html#2091e4b60dcbe42ab80fa387610fd669">00136</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#2091e4b60dcbe42ab80fa387610fd669" title="Send a chunk of HTTP request body data to the RoR application.">sendBodyBlock</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *block, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size) {
|
152
|
+
<a name="l00137"></a>00137 <span class="keywordtype">int</span> writer = <a class="code" href="classPassenger_1_1Application_1_1Session.html#ffdb4345b8fd695e66d123cb62a9b160" title="Get the writer channel&#39;s file descriptor.">getWriter</a>();
|
153
|
+
<a name="l00138"></a>00138 <span class="keywordflow">if</span> (writer == -1) {
|
154
|
+
<a name="l00139"></a>00139 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(<span class="stringliteral">"Cannot write request body block to the request handler because the writer channel has already been closed."</span>);
|
155
|
+
<a name="l00140"></a>00140 }
|
156
|
+
<a name="l00141"></a>00141 <span class="keywordflow">try</span> {
|
157
|
+
<a name="l00142"></a>00142 <a class="code" href="classPassenger_1_1MessageChannel.html" title="Convenience class for I/O operations on file descriptors.">MessageChannel</a>(writer).writeRaw(block, size);
|
158
|
+
<a name="l00143"></a>00143 } <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a> &e) {
|
159
|
+
<a name="l00144"></a>00144 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a>(<span class="stringliteral">"An error occured while request body to the request handler"</span>, e.<a class="code" href="classPassenger_1_1SystemException.html#ee7a6672bf79b72a4c3ee70c57d6a47c" title="The value of errno at the time the error occured.">code</a>());
|
160
|
+
<a name="l00145"></a>00145 }
|
161
|
+
<a name="l00146"></a>00146 }
|
162
|
+
<a name="l00147"></a>00147 <span class="comment"></span>
|
163
|
+
<a name="l00148"></a>00148 <span class="comment"> /**</span>
|
164
|
+
<a name="l00149"></a>00149 <span class="comment"> * Get the reader channel's file descriptor.</span>
|
165
|
+
<a name="l00150"></a>00150 <span class="comment"> *</span>
|
166
|
+
<a name="l00151"></a>00151 <span class="comment"> * @pre The reader channel has not been closed.</span>
|
167
|
+
<a name="l00152"></a>00152 <span class="comment"> */</span>
|
168
|
+
<a name="l00153"></a>00153 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#5635d9d04f400b0caefaacf1e4859c02" title="Get the reader channel&#39;s file descriptor.">getReader</a>() <span class="keyword">const</span> = 0;
|
169
|
+
<a name="l00154"></a>00154 <span class="comment"></span>
|
170
|
+
<a name="l00155"></a>00155 <span class="comment"> /**</span>
|
171
|
+
<a name="l00156"></a>00156 <span class="comment"> * Close the reader channel. This method may be safely called multiple times.</span>
|
172
|
+
<a name="l00157"></a>00157 <span class="comment"> */</span>
|
173
|
+
<a name="l00158"></a>00158 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#49230041744ff4e48ddd3358febd56a9" title="Close the reader channel.">closeReader</a>() = 0;
|
174
|
+
<a name="l00159"></a>00159 <span class="comment"></span>
|
175
|
+
<a name="l00160"></a>00160 <span class="comment"> /**</span>
|
176
|
+
<a name="l00161"></a>00161 <span class="comment"> * Get the writer channel's file descriptor. You should rarely have to</span>
|
177
|
+
<a name="l00162"></a>00162 <span class="comment"> * use this directly. One should only use sendHeaders() and sendBodyBlock()</span>
|
178
|
+
<a name="l00163"></a>00163 <span class="comment"> * whenever possible.</span>
|
179
|
+
<a name="l00164"></a>00164 <span class="comment"> *</span>
|
180
|
+
<a name="l00165"></a>00165 <span class="comment"> * @pre The writer channel has not been closed.</span>
|
181
|
+
<a name="l00166"></a>00166 <span class="comment"> */</span>
|
182
|
+
<a name="l00167"></a>00167 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#ffdb4345b8fd695e66d123cb62a9b160" title="Get the writer channel&#39;s file descriptor.">getWriter</a>() <span class="keyword">const</span> = 0;
|
183
|
+
<a name="l00168"></a>00168 <span class="comment"></span>
|
184
|
+
<a name="l00169"></a>00169 <span class="comment"> /**</span>
|
185
|
+
<a name="l00170"></a>00170 <span class="comment"> * Close the writer channel. This method may be safely called multiple times.</span>
|
186
|
+
<a name="l00171"></a>00171 <span class="comment"> */</span>
|
187
|
+
<a name="l00172"></a>00172 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1Application_1_1Session.html#ecaa3575efd70130a4adfec203120d74" title="Close the writer channel.">closeWriter</a>() = 0;
|
188
|
+
<a name="l00173"></a>00173 <span class="comment"></span>
|
189
|
+
<a name="l00174"></a>00174 <span class="comment"> /**</span>
|
190
|
+
<a name="l00175"></a>00175 <span class="comment"> * Get the process ID of the application instance that belongs to this session.</span>
|
191
|
+
<a name="l00176"></a>00176 <span class="comment"> */</span>
|
192
|
+
<a name="l00177"></a>00177 <span class="keyword">virtual</span> pid_t <a class="code" href="classPassenger_1_1Application_1_1Session.html#2215bec32917c48d1a9f6386b88d018b" title="Get the process ID of the application instance that belongs to this session.">getPid</a>() <span class="keyword">const</span> = 0;
|
193
|
+
<a name="l00178"></a>00178 };
|
194
|
+
<a name="l00179"></a>00179
|
195
|
+
<a name="l00180"></a>00180 <span class="keyword">private</span>:<span class="comment"></span>
|
196
|
+
<a name="l00181"></a>00181 <span class="comment"> /**</span>
|
197
|
+
<a name="l00182"></a>00182 <span class="comment"> * A "standard" implementation of Session.</span>
|
198
|
+
<a name="l00183"></a>00183 <span class="comment"> */</span>
|
199
|
+
<a name="l00184"></a>00184 <span class="keyword">class </span>StandardSession: <span class="keyword">public</span> Session {
|
200
|
+
<a name="l00185"></a>00185 <span class="keyword">protected</span>:
|
201
|
+
<a name="l00186"></a>00186 function<void()> closeCallback;
|
202
|
+
<a name="l00187"></a>00187 <span class="keywordtype">bool</span> readerClosed, writerClosed;
|
203
|
+
<a name="l00188"></a>00188 <span class="keywordtype">int</span> fd;
|
204
|
+
<a name="l00189"></a>00189 pid_t pid;
|
205
|
+
<a name="l00190"></a>00190
|
206
|
+
<a name="l00191"></a>00191 <span class="keyword">public</span>:
|
207
|
+
<a name="l00192"></a>00192 StandardSession(pid_t pid,
|
208
|
+
<a name="l00193"></a>00193 <span class="keyword">const</span> function<<span class="keywordtype">void</span>()> &closeCallback,
|
209
|
+
<a name="l00194"></a>00194 <span class="keywordtype">int</span> fd) {
|
210
|
+
<a name="l00195"></a>00195 this->pid = pid;
|
211
|
+
<a name="l00196"></a>00196 this->closeCallback = closeCallback;
|
212
|
+
<a name="l00197"></a>00197 this->fd = fd;
|
213
|
+
<a name="l00198"></a>00198 readerClosed = writerClosed = <span class="keyword">false</span>;
|
214
|
+
<a name="l00199"></a>00199 }
|
215
|
+
<a name="l00200"></a>00200
|
216
|
+
<a name="l00201"></a>00201 <span class="keyword">virtual</span> ~StandardSession() {
|
217
|
+
<a name="l00202"></a>00202 closeReader();
|
218
|
+
<a name="l00203"></a>00203 closeWriter();
|
219
|
+
<a name="l00204"></a>00204 closeCallback();
|
220
|
+
<a name="l00205"></a>00205 }
|
221
|
+
<a name="l00206"></a>00206
|
222
|
+
<a name="l00207"></a>00207 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getReader()<span class="keyword"> const </span>{
|
223
|
+
<a name="l00208"></a>00208 <span class="keywordflow">return</span> fd;
|
224
|
+
<a name="l00209"></a>00209 }
|
225
|
+
<a name="l00210"></a>00210
|
226
|
+
<a name="l00211"></a>00211 <span class="keyword">virtual</span> <span class="keywordtype">void</span> closeReader() {
|
227
|
+
<a name="l00212"></a>00212 readerClosed = <span class="keyword">true</span>;
|
228
|
+
<a name="l00213"></a>00213 <span class="keywordflow">if</span> (readerClosed && writerClosed && fd != -1) {
|
229
|
+
<a name="l00214"></a>00214 close(fd);
|
230
|
+
<a name="l00215"></a>00215 fd = -1;
|
231
|
+
<a name="l00216"></a>00216 }
|
232
|
+
<a name="l00217"></a>00217 }
|
233
|
+
<a name="l00218"></a>00218
|
234
|
+
<a name="l00219"></a>00219 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getWriter()<span class="keyword"> const </span>{
|
235
|
+
<a name="l00220"></a>00220 <span class="keywordflow">return</span> fd;
|
236
|
+
<a name="l00221"></a>00221 }
|
237
|
+
<a name="l00222"></a>00222
|
238
|
+
<a name="l00223"></a>00223 <span class="keyword">virtual</span> <span class="keywordtype">void</span> closeWriter() {
|
239
|
+
<a name="l00224"></a>00224 writerClosed = <span class="keyword">true</span>;
|
240
|
+
<a name="l00225"></a>00225 <span class="keywordflow">if</span> (readerClosed && writerClosed && fd != -1) {
|
241
|
+
<a name="l00226"></a>00226 close(fd);
|
242
|
+
<a name="l00227"></a>00227 fd = -1;
|
243
|
+
<a name="l00228"></a>00228 }
|
244
|
+
<a name="l00229"></a>00229 }
|
245
|
+
<a name="l00230"></a>00230
|
246
|
+
<a name="l00231"></a>00231 <span class="keyword">virtual</span> pid_t <a class="code" href="classPassenger_1_1Application.html#94d2cce1c2c1d3441325f1498a22bf02" title="Returns the process ID of this application instance.">getPid</a>()<span class="keyword"> const </span>{
|
247
|
+
<a name="l00232"></a>00232 <span class="keywordflow">return</span> pid;
|
248
|
+
<a name="l00233"></a>00233 }
|
249
|
+
<a name="l00234"></a>00234 };
|
250
|
+
<a name="l00235"></a>00235
|
251
|
+
<a name="l00236"></a>00236 <span class="keywordtype">string</span> appRoot;
|
252
|
+
<a name="l00237"></a>00237 pid_t pid;
|
253
|
+
<a name="l00238"></a>00238 <span class="keywordtype">string</span> listenSocketName;
|
254
|
+
<a name="l00239"></a>00239 <span class="keywordtype">bool</span> usingAbstractNamespace;
|
255
|
+
<a name="l00240"></a>00240 <span class="keywordtype">int</span> ownerPipe;
|
256
|
+
<a name="l00241"></a>00241
|
257
|
+
<a name="l00242"></a>00242 <span class="keyword">public</span>:<span class="comment"></span>
|
258
|
+
<a name="l00243"></a>00243 <span class="comment"> /**</span>
|
259
|
+
<a name="l00244"></a>00244 <span class="comment"> * Construct a new Application object.</span>
|
260
|
+
<a name="l00245"></a>00245 <span class="comment"> *</span>
|
261
|
+
<a name="l00246"></a>00246 <span class="comment"> * @param theAppRoot The application root of a RoR application, i.e. the folder that</span>
|
262
|
+
<a name="l00247"></a>00247 <span class="comment"> * contains 'app/', 'public/', 'config/', etc. This must be a valid directory,</span>
|
263
|
+
<a name="l00248"></a>00248 <span class="comment"> * but the path does not have to be absolute.</span>
|
264
|
+
<a name="l00249"></a>00249 <span class="comment"> * @param pid The process ID of this application instance.</span>
|
265
|
+
<a name="l00250"></a>00250 <span class="comment"> * @param listenSocketName The name of the listener socket of this application instance.</span>
|
266
|
+
<a name="l00251"></a>00251 <span class="comment"> * @param usingAbstractNamespace Whether <tt>listenSocketName</tt> refers to a Unix</span>
|
267
|
+
<a name="l00252"></a>00252 <span class="comment"> * socket on the abstract namespace. Note that listenSocketName must not</span>
|
268
|
+
<a name="l00253"></a>00253 <span class="comment"> * contain the leading null byte, even if it's an abstract namespace socket.</span>
|
269
|
+
<a name="l00254"></a>00254 <span class="comment"> * @param ownerPipe The owner pipe of this application instance.</span>
|
270
|
+
<a name="l00255"></a>00255 <span class="comment"> * @post getAppRoot() == theAppRoot && getPid() == pid</span>
|
271
|
+
<a name="l00256"></a>00256 <span class="comment"> */</span>
|
272
|
+
<a name="l00257"></a><a class="code" href="classPassenger_1_1Application.html#163509167eef118470b72661ac8acd5d">00257</a> <a class="code" href="classPassenger_1_1Application.html#163509167eef118470b72661ac8acd5d" title="Construct a new Application object.">Application</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &theAppRoot, pid_t pid, <span class="keyword">const</span> <span class="keywordtype">string</span> &listenSocketName,
|
273
|
+
<a name="l00258"></a>00258 <span class="keywordtype">bool</span> usingAbstractNamespace, <span class="keywordtype">int</span> ownerPipe) {
|
274
|
+
<a name="l00259"></a>00259 appRoot = theAppRoot;
|
275
|
+
<a name="l00260"></a>00260 this->pid = pid;
|
276
|
+
<a name="l00261"></a>00261 this->listenSocketName = listenSocketName;
|
277
|
+
<a name="l00262"></a>00262 this->usingAbstractNamespace = usingAbstractNamespace;
|
278
|
+
<a name="l00263"></a>00263 this->ownerPipe = ownerPipe;
|
279
|
+
<a name="l00264"></a>00264 P_TRACE(2, <span class="stringliteral">"Application "</span> << <span class="keyword">this</span> << <span class="stringliteral">": created."</span>);
|
280
|
+
<a name="l00265"></a>00265 }
|
281
|
+
<a name="l00266"></a>00266
|
282
|
+
<a name="l00267"></a>00267 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1Application.html" title="Represents a single Ruby on Rails application instance.">Application</a>() {
|
283
|
+
<a name="l00268"></a>00268 <span class="keywordflow">if</span> (ownerPipe != -1) {
|
284
|
+
<a name="l00269"></a>00269 close(ownerPipe);
|
285
|
+
<a name="l00270"></a>00270 }
|
286
|
+
<a name="l00271"></a>00271 <span class="keywordflow">if</span> (!usingAbstractNamespace) {
|
287
|
+
<a name="l00272"></a>00272 unlink(listenSocketName.c_str());
|
288
|
+
<a name="l00273"></a>00273 }
|
289
|
+
<a name="l00274"></a>00274 P_TRACE(2, <span class="stringliteral">"Application "</span> << <span class="keyword">this</span> << <span class="stringliteral">": destroyed."</span>);
|
290
|
+
<a name="l00275"></a>00275 }
|
291
|
+
<a name="l00276"></a>00276 <span class="comment"></span>
|
292
|
+
<a name="l00277"></a>00277 <span class="comment"> /**</span>
|
293
|
+
<a name="l00278"></a>00278 <span class="comment"> * Returns the application root for this RoR application. See the constructor</span>
|
294
|
+
<a name="l00279"></a>00279 <span class="comment"> * for information about the application root.</span>
|
295
|
+
<a name="l00280"></a>00280 <span class="comment"> */</span>
|
296
|
+
<a name="l00281"></a><a class="code" href="classPassenger_1_1Application.html#0a0665852e7ebc8fb8ab0772fa90bc56">00281</a> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1Application.html#0a0665852e7ebc8fb8ab0772fa90bc56" title="Returns the application root for this RoR application.">getAppRoot</a>()<span class="keyword"> const </span>{
|
297
|
+
<a name="l00282"></a>00282 <span class="keywordflow">return</span> appRoot;
|
298
|
+
<a name="l00283"></a>00283 }
|
299
|
+
<a name="l00284"></a>00284 <span class="comment"></span>
|
300
|
+
<a name="l00285"></a>00285 <span class="comment"> /**</span>
|
301
|
+
<a name="l00286"></a>00286 <span class="comment"> * Returns the process ID of this application instance.</span>
|
302
|
+
<a name="l00287"></a>00287 <span class="comment"> */</span>
|
303
|
+
<a name="l00288"></a><a class="code" href="classPassenger_1_1Application.html#94d2cce1c2c1d3441325f1498a22bf02">00288</a> pid_t <a class="code" href="classPassenger_1_1Application.html#94d2cce1c2c1d3441325f1498a22bf02" title="Returns the process ID of this application instance.">getPid</a>()<span class="keyword"> const </span>{
|
304
|
+
<a name="l00289"></a>00289 <span class="keywordflow">return</span> pid;
|
305
|
+
<a name="l00290"></a>00290 }
|
306
|
+
<a name="l00291"></a>00291 <span class="comment"></span>
|
307
|
+
<a name="l00292"></a>00292 <span class="comment"> /**</span>
|
308
|
+
<a name="l00293"></a>00293 <span class="comment"> * Connect to this application instance with the purpose of sending</span>
|
309
|
+
<a name="l00294"></a>00294 <span class="comment"> * a request to the application. Once connected, a new session will</span>
|
310
|
+
<a name="l00295"></a>00295 <span class="comment"> * be opened. This session represents the life time of a single</span>
|
311
|
+
<a name="l00296"></a>00296 <span class="comment"> * request/response pair, and can be used to send the request</span>
|
312
|
+
<a name="l00297"></a>00297 <span class="comment"> * data to the application instance, as well as receiving the response</span>
|
313
|
+
<a name="l00298"></a>00298 <span class="comment"> * data.</span>
|
314
|
+
<a name="l00299"></a>00299 <span class="comment"> *</span>
|
315
|
+
<a name="l00300"></a>00300 <span class="comment"> * The use of connect() is demonstrated in the following example.</span>
|
316
|
+
<a name="l00301"></a>00301 <span class="comment"> * @code</span>
|
317
|
+
<a name="l00302"></a>00302 <span class="comment"> * // Connect to the application and get the newly opened session.</span>
|
318
|
+
<a name="l00303"></a>00303 <span class="comment"> * Application::SessionPtr session(app->connect("/home/webapps/foo"));</span>
|
319
|
+
<a name="l00304"></a>00304 <span class="comment"> * </span>
|
320
|
+
<a name="l00305"></a>00305 <span class="comment"> * // Send the request headers and request body data.</span>
|
321
|
+
<a name="l00306"></a>00306 <span class="comment"> * session->sendHeaders(...);</span>
|
322
|
+
<a name="l00307"></a>00307 <span class="comment"> * session->sendBodyBlock(...);</span>
|
323
|
+
<a name="l00308"></a>00308 <span class="comment"> * // Done sending data, so we close the writer channel.</span>
|
324
|
+
<a name="l00309"></a>00309 <span class="comment"> * session->closeWriter();</span>
|
325
|
+
<a name="l00310"></a>00310 <span class="comment"> *</span>
|
326
|
+
<a name="l00311"></a>00311 <span class="comment"> * // Now read the HTTP response.</span>
|
327
|
+
<a name="l00312"></a>00312 <span class="comment"> * string responseData = readAllDataFromSocket(session->getReader());</span>
|
328
|
+
<a name="l00313"></a>00313 <span class="comment"> * // Done reading data, so we close the reader channel.</span>
|
329
|
+
<a name="l00314"></a>00314 <span class="comment"> * session->closeReader();</span>
|
330
|
+
<a name="l00315"></a>00315 <span class="comment"> *</span>
|
331
|
+
<a name="l00316"></a>00316 <span class="comment"> * // This session has now finished, so we close the session by resetting</span>
|
332
|
+
<a name="l00317"></a>00317 <span class="comment"> * // the smart pointer to NULL (thereby destroying the Session object).</span>
|
333
|
+
<a name="l00318"></a>00318 <span class="comment"> * session.reset();</span>
|
334
|
+
<a name="l00319"></a>00319 <span class="comment"> *</span>
|
335
|
+
<a name="l00320"></a>00320 <span class="comment"> * // We can connect to an Application multiple times. Just make sure</span>
|
336
|
+
<a name="l00321"></a>00321 <span class="comment"> * // the previous session is closed.</span>
|
337
|
+
<a name="l00322"></a>00322 <span class="comment"> * session = app->connect("/home/webapps/bar")</span>
|
338
|
+
<a name="l00323"></a>00323 <span class="comment"> * @endcode</span>
|
339
|
+
<a name="l00324"></a>00324 <span class="comment"> *</span>
|
340
|
+
<a name="l00325"></a>00325 <span class="comment"> * Note that a RoR application instance can only process one</span>
|
341
|
+
<a name="l00326"></a>00326 <span class="comment"> * request at the same time, and thus only one session at the same time.</span>
|
342
|
+
<a name="l00327"></a>00327 <span class="comment"> * You <b>must</b> close a session when you no longer need if. You you</span>
|
343
|
+
<a name="l00328"></a>00328 <span class="comment"> * call connect() without having properly closed a previous session,</span>
|
344
|
+
<a name="l00329"></a>00329 <span class="comment"> * you might cause a deadlock because the application instance may be</span>
|
345
|
+
<a name="l00330"></a>00330 <span class="comment"> * waiting for you to close the previous session.</span>
|
346
|
+
<a name="l00331"></a>00331 <span class="comment"> *</span>
|
347
|
+
<a name="l00332"></a>00332 <span class="comment"> * @return A smart pointer to a Session object, which represents the created session.</span>
|
348
|
+
<a name="l00333"></a>00333 <span class="comment"> * @param closeCallback A function which will be called when the session has been closed.</span>
|
349
|
+
<a name="l00334"></a>00334 <span class="comment"> * @post this->getSessions() == old->getSessions() + 1</span>
|
350
|
+
<a name="l00335"></a>00335 <span class="comment"> * @throws SystemException Something went wrong during the connection process.</span>
|
351
|
+
<a name="l00336"></a>00336 <span class="comment"> * @throws IOException Something went wrong during the connection process.</span>
|
352
|
+
<a name="l00337"></a>00337 <span class="comment"> */</span>
|
353
|
+
<a name="l00338"></a><a class="code" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379">00338</a> <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">SessionPtr</a> <a class="code" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379" title="Connect to this application instance with the purpose of sending a request to the...">connect</a>(<span class="keyword">const</span> function<<span class="keywordtype">void</span>()> &closeCallback)<span class="keyword"> const </span>{
|
354
|
+
<a name="l00339"></a>00339 <span class="keywordtype">int</span> fd, ret;
|
355
|
+
<a name="l00340"></a>00340
|
356
|
+
<a name="l00341"></a>00341 <span class="keywordflow">do</span> {
|
357
|
+
<a name="l00342"></a>00342 fd = socket(PF_UNIX, SOCK_STREAM, 0);
|
358
|
+
<a name="l00343"></a>00343 } <span class="keywordflow">while</span> (fd == -1 && errno == EINTR);
|
359
|
+
<a name="l00344"></a>00344 <span class="keywordflow">if</span> (fd == -1) {
|
360
|
+
<a name="l00345"></a>00345 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a>(<span class="stringliteral">"Cannot create a new unconnected Unix socket"</span>, errno);
|
361
|
+
<a name="l00346"></a>00346 }
|
362
|
+
<a name="l00347"></a>00347
|
363
|
+
<a name="l00348"></a>00348 <span class="keyword">struct </span>sockaddr_un addr;
|
364
|
+
<a name="l00349"></a>00349 addr.sun_family = AF_UNIX;
|
365
|
+
<a name="l00350"></a>00350 <span class="keywordflow">if</span> (usingAbstractNamespace) {
|
366
|
+
<a name="l00351"></a>00351 strncpy(addr.sun_path + 1, listenSocketName.c_str(), <span class="keyword">sizeof</span>(addr.sun_path) - 1);
|
367
|
+
<a name="l00352"></a>00352 addr.sun_path[0] = <span class="charliteral">'\0'</span>;
|
368
|
+
<a name="l00353"></a>00353 } <span class="keywordflow">else</span> {
|
369
|
+
<a name="l00354"></a>00354 strncpy(addr.sun_path, listenSocketName.c_str(), <span class="keyword">sizeof</span>(addr.sun_path));
|
370
|
+
<a name="l00355"></a>00355 }
|
371
|
+
<a name="l00356"></a>00356 addr.sun_path[<span class="keyword">sizeof</span>(addr.sun_path) - 1] = <span class="charliteral">'\0'</span>;
|
372
|
+
<a name="l00357"></a>00357 <span class="keywordflow">do</span> {
|
373
|
+
<a name="l00358"></a>00358 ret =<a class="code" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379" title="Connect to this application instance with the purpose of sending a request to the..."> ::connect</a>(fd, (<span class="keyword">const</span> sockaddr *) &addr, <span class="keyword">sizeof</span>(addr));
|
374
|
+
<a name="l00359"></a>00359 } <span class="keywordflow">while</span> (ret == -1 && errno == EINTR);
|
375
|
+
<a name="l00360"></a>00360 <span class="keywordflow">if</span> (ret == -1) {
|
376
|
+
<a name="l00361"></a>00361 <span class="keywordtype">int</span> e = errno;
|
377
|
+
<a name="l00362"></a>00362 <span class="keywordtype">string</span> message(<span class="stringliteral">"Cannot connect to Unix socket '"</span>);
|
378
|
+
<a name="l00363"></a>00363 message.append(listenSocketName);
|
379
|
+
<a name="l00364"></a>00364 message.append(<span class="stringliteral">"' on the abstract namespace"</span>);
|
380
|
+
<a name="l00365"></a>00365 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a>(message, e);
|
381
|
+
<a name="l00366"></a>00366 }
|
382
|
+
<a name="l00367"></a>00367
|
383
|
+
<a name="l00368"></a>00368 <span class="keywordflow">return</span> <a class="code" href="group__Support.html#g41b6c4a82fed72531a147de0505a8396" title="Convenience shortcut for creating a shared_ptr.">ptr</a>(<span class="keyword">new</span> StandardSession(pid, closeCallback, fd));
|
384
|
+
<a name="l00369"></a>00369 }
|
385
|
+
<a name="l00370"></a>00370
|
386
|
+
<a name="l00371"></a>00371 <span class="keywordtype">void</span> detach() {
|
387
|
+
<a name="l00372"></a>00372 close(ownerPipe);
|
388
|
+
<a name="l00373"></a>00373 ownerPipe = -1;
|
389
|
+
<a name="l00374"></a>00374 }
|
390
|
+
<a name="l00375"></a>00375 };
|
391
|
+
<a name="l00376"></a>00376 <span class="comment"></span>
|
392
|
+
<a name="l00377"></a>00377 <span class="comment">/** Convenient alias for Application smart pointer. */</span>
|
393
|
+
<a name="l00378"></a>00378 <span class="keyword">typedef</span> shared_ptr<Application> ApplicationPtr;
|
394
|
+
<a name="l00379"></a>00379
|
395
|
+
<a name="l00380"></a>00380 } <span class="comment">// namespace Passenger</span>
|
396
|
+
<a name="l00381"></a>00381
|
397
|
+
<a name="l00382"></a>00382 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_APPLICATION_H_ */</span>
|
398
|
+
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 11 18:16:04 2008 for Passenger by
|
399
|
+
<a href="http://www.doxygen.org/index.html">
|
400
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
|
401
|
+
</body>
|
402
|
+
</html>
|