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,58 @@
|
|
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: Hooks.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>Hooks.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_HOOKS_H_</span>
|
34
|
+
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_HOOKS_H_</span>
|
35
|
+
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
36
|
+
<a name="l00021"></a>00021 <span class="preprocessor">#include <apr_pools.h></span>
|
37
|
+
<a name="l00022"></a>00022
|
38
|
+
<a name="l00023"></a>00023 <span class="preprocessor">#ifdef __cplusplus</span>
|
39
|
+
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
|
40
|
+
<a name="l00025"></a>00025 <span class="preprocessor">#endif</span>
|
41
|
+
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="comment"></span>
|
42
|
+
<a name="l00027"></a>00027 <span class="comment">/**</span>
|
43
|
+
<a name="l00028"></a>00028 <span class="comment"> * @defgroup Hooks Apache hooks</span>
|
44
|
+
<a name="l00029"></a>00029 <span class="comment"> * @ingroup Core</span>
|
45
|
+
<a name="l00030"></a>00030 <span class="comment"> */</span>
|
46
|
+
<a name="l00031"></a>00031
|
47
|
+
<a name="l00032"></a>00032 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__Hooks.html#g9d8409a5d1bee7cbe4568fac5a5ae4b3" title="Apache hook registration function.">passenger_register_hooks</a>(apr_pool_t *p);
|
48
|
+
<a name="l00033"></a>00033
|
49
|
+
<a name="l00034"></a>00034 <span class="preprocessor">#ifdef __cplusplus</span>
|
50
|
+
<a name="l00035"></a>00035 <span class="preprocessor"></span>}
|
51
|
+
<a name="l00036"></a>00036 <span class="preprocessor">#endif</span>
|
52
|
+
<a name="l00037"></a>00037 <span class="preprocessor"></span>
|
53
|
+
<a name="l00038"></a>00038 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_HOOKS_H_ */</span>
|
54
|
+
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 11 18:16:04 2008 for Passenger by
|
55
|
+
<a href="http://www.doxygen.org/index.html">
|
56
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
|
57
|
+
</body>
|
58
|
+
</html>
|
@@ -0,0 +1,103 @@
|
|
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: Logging.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>Logging.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_LOGGING_H_</span>
|
34
|
+
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_LOGGING_H_</span>
|
35
|
+
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
36
|
+
<a name="l00021"></a>00021 <span class="preprocessor">#include <sys/types.h></span>
|
37
|
+
<a name="l00022"></a>00022 <span class="preprocessor">#include <unistd.h></span>
|
38
|
+
<a name="l00023"></a>00023 <span class="preprocessor">#include <ostream></span>
|
39
|
+
<a name="l00024"></a>00024
|
40
|
+
<a name="l00025"></a>00025 <span class="keyword">namespace </span>Passenger {
|
41
|
+
<a name="l00026"></a>00026
|
42
|
+
<a name="l00027"></a>00027 <span class="keyword">using namespace </span>std;
|
43
|
+
<a name="l00028"></a>00028
|
44
|
+
<a name="l00029"></a>00029 <span class="keyword">extern</span> <span class="keywordtype">int</span> _debugLevel;
|
45
|
+
<a name="l00030"></a>00030 <span class="keyword">extern</span> ostream *_logStream;
|
46
|
+
<a name="l00031"></a>00031 <span class="keyword">extern</span> ostream *_debugStream;
|
47
|
+
<a name="l00032"></a>00032
|
48
|
+
<a name="l00033"></a>00033 <span class="keywordtype">void</span> setDebugFile(<span class="keyword">const</span> <span class="keywordtype">char</span> *logFile = NULL);
|
49
|
+
<a name="l00034"></a>00034 <span class="comment"></span>
|
50
|
+
<a name="l00035"></a>00035 <span class="comment">/**</span>
|
51
|
+
<a name="l00036"></a>00036 <span class="comment"> * Write the given expression to the log stream.</span>
|
52
|
+
<a name="l00037"></a>00037 <span class="comment"> */</span>
|
53
|
+
<a name="l00038"></a>00038 <span class="preprocessor">#define P_LOG(expr) \</span>
|
54
|
+
<a name="l00039"></a>00039 <span class="preprocessor"> do { \</span>
|
55
|
+
<a name="l00040"></a>00040 <span class="preprocessor"> if (Passenger::_logStream != 0) { \</span>
|
56
|
+
<a name="l00041"></a>00041 <span class="preprocessor"> *Passenger::_logStream << \</span>
|
57
|
+
<a name="l00042"></a>00042 <span class="preprocessor"> "[" << getpid() << ":" << __FILE__ << ":" << __LINE__ << "] " << \</span>
|
58
|
+
<a name="l00043"></a>00043 <span class="preprocessor"> expr << std::endl; \</span>
|
59
|
+
<a name="l00044"></a>00044 <span class="preprocessor"> } \</span>
|
60
|
+
<a name="l00045"></a>00045 <span class="preprocessor"> } while (false)</span>
|
61
|
+
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="comment"></span>
|
62
|
+
<a name="l00047"></a>00047 <span class="comment">/**</span>
|
63
|
+
<a name="l00048"></a>00048 <span class="comment"> * Write the given expression, which represents a warning,</span>
|
64
|
+
<a name="l00049"></a>00049 <span class="comment"> * to the log stream.</span>
|
65
|
+
<a name="l00050"></a>00050 <span class="comment"> */</span>
|
66
|
+
<a name="l00051"></a>00051 <span class="preprocessor">#define P_WARN(expr) P_LOG(expr)</span>
|
67
|
+
<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="comment"></span>
|
68
|
+
<a name="l00053"></a>00053 <span class="comment">/**</span>
|
69
|
+
<a name="l00054"></a>00054 <span class="comment"> * Write the given expression, which represents an error,</span>
|
70
|
+
<a name="l00055"></a>00055 <span class="comment"> * to the log stream.</span>
|
71
|
+
<a name="l00056"></a>00056 <span class="comment"> */</span>
|
72
|
+
<a name="l00057"></a>00057 <span class="preprocessor">#define P_ERROR(expr) P_LOG(expr)</span>
|
73
|
+
<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="comment"></span>
|
74
|
+
<a name="l00059"></a>00059 <span class="comment">/**</span>
|
75
|
+
<a name="l00060"></a>00060 <span class="comment"> * Write the given expression, which represents a debugging message,</span>
|
76
|
+
<a name="l00061"></a>00061 <span class="comment"> * to the log stream.</span>
|
77
|
+
<a name="l00062"></a>00062 <span class="comment"> */</span>
|
78
|
+
<a name="l00063"></a>00063 <span class="preprocessor">#define P_DEBUG(expr) P_TRACE(1, expr)</span>
|
79
|
+
<a name="l00064"></a>00064 <span class="preprocessor"></span>
|
80
|
+
<a name="l00065"></a>00065 <span class="preprocessor">#ifdef PASSENGER_DEBUG</span>
|
81
|
+
<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor"> #define P_TRACE(level, expr) \</span>
|
82
|
+
<a name="l00067"></a>00067 <span class="preprocessor"> do { \</span>
|
83
|
+
<a name="l00068"></a>00068 <span class="preprocessor"> if (Passenger::_debugLevel >= level) { \</span>
|
84
|
+
<a name="l00069"></a>00069 <span class="preprocessor"> if (Passenger::_debugStream != 0) { \</span>
|
85
|
+
<a name="l00070"></a>00070 <span class="preprocessor"> *Passenger::_debugStream << \</span>
|
86
|
+
<a name="l00071"></a>00071 <span class="preprocessor"> "[" << getpid() << ":" << __FILE__ << ":" << __LINE__ << "] " << \</span>
|
87
|
+
<a name="l00072"></a>00072 <span class="preprocessor"> expr << std::endl; \</span>
|
88
|
+
<a name="l00073"></a>00073 <span class="preprocessor"> } \</span>
|
89
|
+
<a name="l00074"></a>00074 <span class="preprocessor"> } \</span>
|
90
|
+
<a name="l00075"></a>00075 <span class="preprocessor"> } while (false)</span>
|
91
|
+
<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor">#else</span>
|
92
|
+
<a name="l00077"></a>00077 <span class="preprocessor"></span><span class="preprocessor"> #define P_TRACE(level, expr) do { </span><span class="comment">/* nothing */</span> } while (false)
|
93
|
+
<a name="l00078"></a>00078 <span class="preprocessor">#endif</span>
|
94
|
+
<a name="l00079"></a>00079 <span class="preprocessor"></span>
|
95
|
+
<a name="l00080"></a>00080 } <span class="comment">// namespace Passenger</span>
|
96
|
+
<a name="l00081"></a>00081
|
97
|
+
<a name="l00082"></a>00082 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_LOGGING_H_ */</span>
|
98
|
+
<a name="l00083"></a>00083
|
99
|
+
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 11 18:16:04 2008 for Passenger by
|
100
|
+
<a href="http://www.doxygen.org/index.html">
|
101
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
|
102
|
+
</body>
|
103
|
+
</html>
|
@@ -0,0 +1,483 @@
|
|
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: MessageChannel.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>MessageChannel.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_MESSAGE_CHANNEL_H_</span>
|
34
|
+
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_MESSAGE_CHANNEL_H_</span>
|
35
|
+
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
36
|
+
<a name="l00021"></a>00021 <span class="preprocessor">#include <algorithm></span>
|
37
|
+
<a name="l00022"></a>00022 <span class="preprocessor">#include <string></span>
|
38
|
+
<a name="l00023"></a>00023 <span class="preprocessor">#include <list></span>
|
39
|
+
<a name="l00024"></a>00024 <span class="preprocessor">#include <vector></span>
|
40
|
+
<a name="l00025"></a>00025
|
41
|
+
<a name="l00026"></a>00026 <span class="preprocessor">#include <sys/types.h></span>
|
42
|
+
<a name="l00027"></a>00027 <span class="preprocessor">#include <sys/socket.h></span>
|
43
|
+
<a name="l00028"></a>00028 <span class="preprocessor">#include <arpa/inet.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 <unistd.h></span>
|
46
|
+
<a name="l00031"></a>00031 <span class="preprocessor">#include <cstdarg></span>
|
47
|
+
<a name="l00032"></a>00032
|
48
|
+
<a name="l00033"></a>00033 <span class="preprocessor">#include "Exceptions.h"</span>
|
49
|
+
<a name="l00034"></a>00034 <span class="preprocessor">#include "Utils.h"</span>
|
50
|
+
<a name="l00035"></a>00035
|
51
|
+
<a name="l00036"></a>00036 <span class="keyword">namespace </span>Passenger {
|
52
|
+
<a name="l00037"></a>00037
|
53
|
+
<a name="l00038"></a>00038 <span class="keyword">using namespace </span>std;
|
54
|
+
<a name="l00039"></a>00039 <span class="comment"></span>
|
55
|
+
<a name="l00040"></a>00040 <span class="comment">/**</span>
|
56
|
+
<a name="l00041"></a>00041 <span class="comment"> * Convenience class for I/O operations on file descriptors.</span>
|
57
|
+
<a name="l00042"></a>00042 <span class="comment"> *</span>
|
58
|
+
<a name="l00043"></a>00043 <span class="comment"> * This class provides convenience methods for:</span>
|
59
|
+
<a name="l00044"></a>00044 <span class="comment"> * - sending and receiving raw data over a file descriptor.</span>
|
60
|
+
<a name="l00045"></a>00045 <span class="comment"> * - sending and receiving messages over a file descriptor.</span>
|
61
|
+
<a name="l00046"></a>00046 <span class="comment"> * - file descriptor passing over a Unix socket.</span>
|
62
|
+
<a name="l00047"></a>00047 <span class="comment"> * All of these methods use exceptions for error reporting.</span>
|
63
|
+
<a name="l00048"></a>00048 <span class="comment"> *</span>
|
64
|
+
<a name="l00049"></a>00049 <span class="comment"> * There are two kinds of messages:</span>
|
65
|
+
<a name="l00050"></a>00050 <span class="comment"> * - Array messages. These are just a list of strings, and the message</span>
|
66
|
+
<a name="l00051"></a>00051 <span class="comment"> * itself has a specific length. The contained strings may not</span>
|
67
|
+
<a name="l00052"></a>00052 <span class="comment"> * contain NUL characters (<tt>'\\0'</tt>). Note that an array message</span>
|
68
|
+
<a name="l00053"></a>00053 <span class="comment"> * must have at least one element.</span>
|
69
|
+
<a name="l00054"></a>00054 <span class="comment"> * - Scalar messages. These are byte strings which may contain arbitrary</span>
|
70
|
+
<a name="l00055"></a>00055 <span class="comment"> * binary data. Scalar messages also have a specific length.</span>
|
71
|
+
<a name="l00056"></a>00056 <span class="comment"> * The protocol is designed to be low overhead, easy to implement and</span>
|
72
|
+
<a name="l00057"></a>00057 <span class="comment"> * easy to parse.</span>
|
73
|
+
<a name="l00058"></a>00058 <span class="comment"> *</span>
|
74
|
+
<a name="l00059"></a>00059 <span class="comment"> * MessageChannel is to be wrapped around a file descriptor. For example:</span>
|
75
|
+
<a name="l00060"></a>00060 <span class="comment"> * @code</span>
|
76
|
+
<a name="l00061"></a>00061 <span class="comment"> * int p[2];</span>
|
77
|
+
<a name="l00062"></a>00062 <span class="comment"> * pipe(p);</span>
|
78
|
+
<a name="l00063"></a>00063 <span class="comment"> * MessageChannel channel1(p[0]);</span>
|
79
|
+
<a name="l00064"></a>00064 <span class="comment"> * MessageChannel channel2(p[1]);</span>
|
80
|
+
<a name="l00065"></a>00065 <span class="comment"> * </span>
|
81
|
+
<a name="l00066"></a>00066 <span class="comment"> * // Send an array message.</span>
|
82
|
+
<a name="l00067"></a>00067 <span class="comment"> * channel2.write("hello", "world !!", NULL);</span>
|
83
|
+
<a name="l00068"></a>00068 <span class="comment"> * list<string> args;</span>
|
84
|
+
<a name="l00069"></a>00069 <span class="comment"> * channel1.read(args); // args now contains { "hello", "world !!" }</span>
|
85
|
+
<a name="l00070"></a>00070 <span class="comment"> *</span>
|
86
|
+
<a name="l00071"></a>00071 <span class="comment"> * // Send a scalar message.</span>
|
87
|
+
<a name="l00072"></a>00072 <span class="comment"> * channel2.writeScalar("some long string which can contain arbitrary binary data");</span>
|
88
|
+
<a name="l00073"></a>00073 <span class="comment"> * string str;</span>
|
89
|
+
<a name="l00074"></a>00074 <span class="comment"> * channel1.readScalar(str);</span>
|
90
|
+
<a name="l00075"></a>00075 <span class="comment"> * @endcode</span>
|
91
|
+
<a name="l00076"></a>00076 <span class="comment"> *</span>
|
92
|
+
<a name="l00077"></a>00077 <span class="comment"> * The life time of a MessageChannel is independent from that of the</span>
|
93
|
+
<a name="l00078"></a>00078 <span class="comment"> * wrapped file descriptor. If a MessageChannel object is destroyed,</span>
|
94
|
+
<a name="l00079"></a>00079 <span class="comment"> * the file descriptor is not automatically closed. Call close()</span>
|
95
|
+
<a name="l00080"></a>00080 <span class="comment"> * if you want to close the file descriptor.</span>
|
96
|
+
<a name="l00081"></a>00081 <span class="comment"> *</span>
|
97
|
+
<a name="l00082"></a>00082 <span class="comment"> * @note I/O operations are not buffered.</span>
|
98
|
+
<a name="l00083"></a>00083 <span class="comment"> * @note Be careful with mixing the sending/receiving of array messages,</span>
|
99
|
+
<a name="l00084"></a>00084 <span class="comment"> * scalar messages and file descriptors. If you send a collection of any</span>
|
100
|
+
<a name="l00085"></a>00085 <span class="comment"> * of these in a specific order, then the receiving side must receive them</span>
|
101
|
+
<a name="l00086"></a>00086 <span class="comment"> * in the exact some order. So suppose you first send a message, then a</span>
|
102
|
+
<a name="l00087"></a>00087 <span class="comment"> * file descriptor, then a scalar, then the receiving side must first</span>
|
103
|
+
<a name="l00088"></a>00088 <span class="comment"> * receive a message, then a file descriptor, then a scalar. If the</span>
|
104
|
+
<a name="l00089"></a>00089 <span class="comment"> * receiving side does things in the wrong order then bad things will</span>
|
105
|
+
<a name="l00090"></a>00090 <span class="comment"> * happen.</span>
|
106
|
+
<a name="l00091"></a>00091 <span class="comment"> * @note MessageChannel is thread-safe.</span>
|
107
|
+
<a name="l00092"></a>00092 <span class="comment"> *</span>
|
108
|
+
<a name="l00093"></a>00093 <span class="comment"> * @ingroup Support</span>
|
109
|
+
<a name="l00094"></a>00094 <span class="comment"> */</span>
|
110
|
+
<a name="l00095"></a><a class="code" href="classPassenger_1_1MessageChannel.html">00095</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1MessageChannel.html" title="Convenience class for I/O operations on file descriptors.">MessageChannel</a> {
|
111
|
+
<a name="l00096"></a>00096 <span class="keyword">private</span>:
|
112
|
+
<a name="l00097"></a>00097 <span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">char</span> DELIMITER = <span class="charliteral">'\0'</span>;
|
113
|
+
<a name="l00098"></a>00098 <span class="keywordtype">int</span> fd;
|
114
|
+
<a name="l00099"></a>00099
|
115
|
+
<a name="l00100"></a>00100 <span class="keyword">public</span>:<span class="comment"></span>
|
116
|
+
<a name="l00101"></a>00101 <span class="comment"> /**</span>
|
117
|
+
<a name="l00102"></a>00102 <span class="comment"> * Construct a new MessageChannel with no underlying file descriptor.</span>
|
118
|
+
<a name="l00103"></a>00103 <span class="comment"> * Thus the resulting MessageChannel object will not be usable.</span>
|
119
|
+
<a name="l00104"></a>00104 <span class="comment"> * This constructor exists to allow one to declare an "empty"</span>
|
120
|
+
<a name="l00105"></a>00105 <span class="comment"> * MessageChannel variable which is to be initialized later.</span>
|
121
|
+
<a name="l00106"></a>00106 <span class="comment"> */</span>
|
122
|
+
<a name="l00107"></a><a class="code" href="classPassenger_1_1MessageChannel.html#73e7c9a8e421d29558838176aff02ca4">00107</a> <a class="code" href="classPassenger_1_1MessageChannel.html#73e7c9a8e421d29558838176aff02ca4" title="Construct a new MessageChannel with no underlying file descriptor.">MessageChannel</a>() {
|
123
|
+
<a name="l00108"></a>00108 this->fd = -1;
|
124
|
+
<a name="l00109"></a>00109 }
|
125
|
+
<a name="l00110"></a>00110 <span class="comment"></span>
|
126
|
+
<a name="l00111"></a>00111 <span class="comment"> /**</span>
|
127
|
+
<a name="l00112"></a>00112 <span class="comment"> * Construct a new MessageChannel with the given file descriptor.</span>
|
128
|
+
<a name="l00113"></a>00113 <span class="comment"> */</span>
|
129
|
+
<a name="l00114"></a><a class="code" href="classPassenger_1_1MessageChannel.html#486b6e74c4d0973eefbcfde65f898ca7">00114</a> <a class="code" href="classPassenger_1_1MessageChannel.html#73e7c9a8e421d29558838176aff02ca4" title="Construct a new MessageChannel with no underlying file descriptor.">MessageChannel</a>(<span class="keywordtype">int</span> fd) {
|
130
|
+
<a name="l00115"></a>00115 this->fd = fd;
|
131
|
+
<a name="l00116"></a>00116 }
|
132
|
+
<a name="l00117"></a>00117 <span class="comment"></span>
|
133
|
+
<a name="l00118"></a>00118 <span class="comment"> /**</span>
|
134
|
+
<a name="l00119"></a>00119 <span class="comment"> * Close the underlying file descriptor. If this method is called multiple</span>
|
135
|
+
<a name="l00120"></a>00120 <span class="comment"> * times, the file descriptor will only be closed the first time.</span>
|
136
|
+
<a name="l00121"></a>00121 <span class="comment"> */</span>
|
137
|
+
<a name="l00122"></a><a class="code" href="classPassenger_1_1MessageChannel.html#06309e208fc5e10642a2e9bbe0f351eb">00122</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#06309e208fc5e10642a2e9bbe0f351eb" title="Close the underlying file descriptor.">close</a>() {
|
138
|
+
<a name="l00123"></a>00123 <span class="keywordflow">if</span> (fd != -1) {<a class="code" href="classPassenger_1_1MessageChannel.html#06309e208fc5e10642a2e9bbe0f351eb" title="Close the underlying file descriptor."></a>
|
139
|
+
<a name="l00124"></a>00124 <a class="code" href="classPassenger_1_1MessageChannel.html#06309e208fc5e10642a2e9bbe0f351eb" title="Close the underlying file descriptor."> ::close</a>(fd);
|
140
|
+
<a name="l00125"></a>00125 fd = -1;
|
141
|
+
<a name="l00126"></a>00126 }
|
142
|
+
<a name="l00127"></a>00127 }
|
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"> * Send an array message, which consists of the given elements, over the underlying</span>
|
146
|
+
<a name="l00131"></a>00131 <span class="comment"> * file descriptor.</span>
|
147
|
+
<a name="l00132"></a>00132 <span class="comment"> *</span>
|
148
|
+
<a name="l00133"></a>00133 <span class="comment"> * @param args The message elements.</span>
|
149
|
+
<a name="l00134"></a>00134 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
150
|
+
<a name="l00135"></a>00135 <span class="comment"> * @pre None of the message elements may contain a NUL character (<tt>'\\0'</tt>).</span>
|
151
|
+
<a name="l00136"></a>00136 <span class="comment"> * @see read(), write(const char *, ...)</span>
|
152
|
+
<a name="l00137"></a>00137 <span class="comment"> */</span>
|
153
|
+
<a name="l00138"></a><a class="code" href="classPassenger_1_1MessageChannel.html#9ad7a978cf8409e01ab2f0a2b6be5a0a">00138</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#9ad7a978cf8409e01ab2f0a2b6be5a0a" title="Send an array message, which consists of the given elements, over the underlying...">write</a>(<span class="keyword">const</span> list<string> &args) {
|
154
|
+
<a name="l00139"></a>00139 list<string>::const_iterator it;
|
155
|
+
<a name="l00140"></a>00140 <span class="keywordtype">string</span> data;
|
156
|
+
<a name="l00141"></a>00141 uint16_t dataSize = 0;
|
157
|
+
<a name="l00142"></a>00142
|
158
|
+
<a name="l00143"></a>00143 <span class="keywordflow">for</span> (it = args.begin(); it != args.end(); it++) {
|
159
|
+
<a name="l00144"></a>00144 dataSize += it->size() + 1;
|
160
|
+
<a name="l00145"></a>00145 }
|
161
|
+
<a name="l00146"></a>00146 data.reserve(dataSize + <span class="keyword">sizeof</span>(dataSize));
|
162
|
+
<a name="l00147"></a>00147 dataSize = htons(dataSize);
|
163
|
+
<a name="l00148"></a>00148 data.append((<span class="keyword">const</span> <span class="keywordtype">char</span> *) &dataSize, <span class="keyword">sizeof</span>(dataSize));
|
164
|
+
<a name="l00149"></a>00149 <span class="keywordflow">for</span> (it = args.begin(); it != args.end(); it++) {
|
165
|
+
<a name="l00150"></a>00150 data.append(*it);
|
166
|
+
<a name="l00151"></a>00151 data.append(1, DELIMITER);
|
167
|
+
<a name="l00152"></a>00152 }
|
168
|
+
<a name="l00153"></a>00153
|
169
|
+
<a name="l00154"></a>00154 <a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef" title="Send a block of data over the underlying file descriptor.">writeRaw</a>(data);
|
170
|
+
<a name="l00155"></a>00155 }
|
171
|
+
<a name="l00156"></a>00156 <span class="comment"></span>
|
172
|
+
<a name="l00157"></a>00157 <span class="comment"> /**</span>
|
173
|
+
<a name="l00158"></a>00158 <span class="comment"> * Send an array message, which consists of the given strings, over the underlying</span>
|
174
|
+
<a name="l00159"></a>00159 <span class="comment"> * file descriptor.</span>
|
175
|
+
<a name="l00160"></a>00160 <span class="comment"> *</span>
|
176
|
+
<a name="l00161"></a>00161 <span class="comment"> * @param name The first element of the message to send.</span>
|
177
|
+
<a name="l00162"></a>00162 <span class="comment"> * @param ... Other elements of the message. These *must* be strings, i.e. of type char*.</span>
|
178
|
+
<a name="l00163"></a>00163 <span class="comment"> * It is also required to terminate this list with a NULL.</span>
|
179
|
+
<a name="l00164"></a>00164 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
180
|
+
<a name="l00165"></a>00165 <span class="comment"> * @pre None of the message elements may contain a NUL character (<tt>'\\0'</tt>).</span>
|
181
|
+
<a name="l00166"></a>00166 <span class="comment"> * @see read(), write(const list<string> &)</span>
|
182
|
+
<a name="l00167"></a>00167 <span class="comment"> */</span>
|
183
|
+
<a name="l00168"></a><a class="code" href="classPassenger_1_1MessageChannel.html#12cce3364023eacbe4fe09006cf3d38d">00168</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#9ad7a978cf8409e01ab2f0a2b6be5a0a" title="Send an array message, which consists of the given elements, over the underlying...">write</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, ...) {
|
184
|
+
<a name="l00169"></a>00169 list<string> args;
|
185
|
+
<a name="l00170"></a>00170 args.push_back(name);
|
186
|
+
<a name="l00171"></a>00171
|
187
|
+
<a name="l00172"></a>00172 va_list ap;
|
188
|
+
<a name="l00173"></a>00173 va_start(ap, name);
|
189
|
+
<a name="l00174"></a>00174 <span class="keywordflow">while</span> (<span class="keyword">true</span>) {
|
190
|
+
<a name="l00175"></a>00175 <span class="keyword">const</span> <span class="keywordtype">char</span> *arg = va_arg(ap, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
191
|
+
<a name="l00176"></a>00176 <span class="keywordflow">if</span> (arg == NULL) {
|
192
|
+
<a name="l00177"></a>00177 <span class="keywordflow">break</span>;
|
193
|
+
<a name="l00178"></a>00178 } <span class="keywordflow">else</span> {
|
194
|
+
<a name="l00179"></a>00179 args.push_back(arg);
|
195
|
+
<a name="l00180"></a>00180 }
|
196
|
+
<a name="l00181"></a>00181 }
|
197
|
+
<a name="l00182"></a>00182 va_end(ap);
|
198
|
+
<a name="l00183"></a>00183 <a class="code" href="classPassenger_1_1MessageChannel.html#9ad7a978cf8409e01ab2f0a2b6be5a0a" title="Send an array message, which consists of the given elements, over the underlying...">write</a>(args);
|
199
|
+
<a name="l00184"></a>00184 }
|
200
|
+
<a name="l00185"></a>00185 <span class="comment"></span>
|
201
|
+
<a name="l00186"></a>00186 <span class="comment"> /**</span>
|
202
|
+
<a name="l00187"></a>00187 <span class="comment"> * Send a scalar message over the underlying file descriptor.</span>
|
203
|
+
<a name="l00188"></a>00188 <span class="comment"> *</span>
|
204
|
+
<a name="l00189"></a>00189 <span class="comment"> * @param str The scalar message's content.</span>
|
205
|
+
<a name="l00190"></a>00190 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
206
|
+
<a name="l00191"></a>00191 <span class="comment"> * @see readScalar(), writeScalar(const char *, unsigned int)</span>
|
207
|
+
<a name="l00192"></a>00192 <span class="comment"> */</span>
|
208
|
+
<a name="l00193"></a><a class="code" href="classPassenger_1_1MessageChannel.html#44e01a783c48abadeea0d915b9893bfb">00193</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#44e01a783c48abadeea0d915b9893bfb" title="Send a scalar message over the underlying file descriptor.">writeScalar</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &str) {
|
209
|
+
<a name="l00194"></a>00194 <a class="code" href="classPassenger_1_1MessageChannel.html#44e01a783c48abadeea0d915b9893bfb" title="Send a scalar message over the underlying file descriptor.">writeScalar</a>(str.c_str(), str.size());
|
210
|
+
<a name="l00195"></a>00195 }
|
211
|
+
<a name="l00196"></a>00196 <span class="comment"></span>
|
212
|
+
<a name="l00197"></a>00197 <span class="comment"> /**</span>
|
213
|
+
<a name="l00198"></a>00198 <span class="comment"> * Send a scalar message over the underlying file descriptor.</span>
|
214
|
+
<a name="l00199"></a>00199 <span class="comment"> *</span>
|
215
|
+
<a name="l00200"></a>00200 <span class="comment"> * @param data The scalar message's content.</span>
|
216
|
+
<a name="l00201"></a>00201 <span class="comment"> * @param size The number of bytes in <tt>data</tt>.</span>
|
217
|
+
<a name="l00202"></a>00202 <span class="comment"> * @pre <tt>data != NULL</tt></span>
|
218
|
+
<a name="l00203"></a>00203 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
219
|
+
<a name="l00204"></a>00204 <span class="comment"> * @see readScalar(), writeScalar(const string &)</span>
|
220
|
+
<a name="l00205"></a>00205 <span class="comment"> */</span>
|
221
|
+
<a name="l00206"></a><a class="code" href="classPassenger_1_1MessageChannel.html#80977020ef895f3ea790c5d28a333dda">00206</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#44e01a783c48abadeea0d915b9893bfb" title="Send a scalar message over the underlying file descriptor.">writeScalar</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size) {
|
222
|
+
<a name="l00207"></a>00207 uint32_t l = htonl(size);
|
223
|
+
<a name="l00208"></a>00208 <a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef" title="Send a block of data over the underlying file descriptor.">writeRaw</a>((<span class="keyword">const</span> <span class="keywordtype">char</span> *) &l, <span class="keyword">sizeof</span>(uint32_t));
|
224
|
+
<a name="l00209"></a>00209 <a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef" title="Send a block of data over the underlying file descriptor.">writeRaw</a>(data, size);
|
225
|
+
<a name="l00210"></a>00210 }
|
226
|
+
<a name="l00211"></a>00211 <span class="comment"></span>
|
227
|
+
<a name="l00212"></a>00212 <span class="comment"> /**</span>
|
228
|
+
<a name="l00213"></a>00213 <span class="comment"> * Send a block of data over the underlying file descriptor.</span>
|
229
|
+
<a name="l00214"></a>00214 <span class="comment"> * This method blocks until everything is sent.</span>
|
230
|
+
<a name="l00215"></a>00215 <span class="comment"> *</span>
|
231
|
+
<a name="l00216"></a>00216 <span class="comment"> * @param data The data to send.</span>
|
232
|
+
<a name="l00217"></a>00217 <span class="comment"> * @param size The number of bytes in <tt>data</tt>.</span>
|
233
|
+
<a name="l00218"></a>00218 <span class="comment"> * @pre <tt>data != NULL</tt></span>
|
234
|
+
<a name="l00219"></a>00219 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
235
|
+
<a name="l00220"></a>00220 <span class="comment"> * @see readRaw()</span>
|
236
|
+
<a name="l00221"></a>00221 <span class="comment"> */</span>
|
237
|
+
<a name="l00222"></a><a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef">00222</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef" title="Send a block of data over the underlying file descriptor.">writeRaw</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size) {
|
238
|
+
<a name="l00223"></a>00223 ssize_t ret;
|
239
|
+
<a name="l00224"></a>00224 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> written = 0;
|
240
|
+
<a name="l00225"></a>00225 <span class="keywordflow">do</span> {
|
241
|
+
<a name="l00226"></a>00226 <span class="keywordflow">do</span> {
|
242
|
+
<a name="l00227"></a>00227 ret =<a class="code" href="classPassenger_1_1MessageChannel.html#9ad7a978cf8409e01ab2f0a2b6be5a0a" title="Send an array message, which consists of the given elements, over the underlying..."> ::write</a>(fd, data + written, size - written);
|
243
|
+
<a name="l00228"></a>00228 } <span class="keywordflow">while</span> (ret == -1 && errno == EINTR);
|
244
|
+
<a name="l00229"></a>00229 <span class="keywordflow">if</span> (ret == -1) {
|
245
|
+
<a name="l00230"></a>00230 <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">"write() failed"</span>, errno);
|
246
|
+
<a name="l00231"></a>00231 } <span class="keywordflow">else</span> {
|
247
|
+
<a name="l00232"></a>00232 written += ret;
|
248
|
+
<a name="l00233"></a>00233 }
|
249
|
+
<a name="l00234"></a>00234 } <span class="keywordflow">while</span> (written < size);
|
250
|
+
<a name="l00235"></a>00235 }
|
251
|
+
<a name="l00236"></a>00236 <span class="comment"></span>
|
252
|
+
<a name="l00237"></a>00237 <span class="comment"> /**</span>
|
253
|
+
<a name="l00238"></a>00238 <span class="comment"> * Send a block of data over the underlying file descriptor.</span>
|
254
|
+
<a name="l00239"></a>00239 <span class="comment"> * This method blocks until everything is sent.</span>
|
255
|
+
<a name="l00240"></a>00240 <span class="comment"> *</span>
|
256
|
+
<a name="l00241"></a>00241 <span class="comment"> * @param data The data to send.</span>
|
257
|
+
<a name="l00242"></a>00242 <span class="comment"> * @pre <tt>data != NULL</tt></span>
|
258
|
+
<a name="l00243"></a>00243 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
259
|
+
<a name="l00244"></a>00244 <span class="comment"> */</span>
|
260
|
+
<a name="l00245"></a><a class="code" href="classPassenger_1_1MessageChannel.html#cfa38f4f0e22ec16350b8cc159e8e364">00245</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef" title="Send a block of data over the underlying file descriptor.">writeRaw</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &data) {
|
261
|
+
<a name="l00246"></a>00246 <a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef" title="Send a block of data over the underlying file descriptor.">writeRaw</a>(data.c_str(), data.size());
|
262
|
+
<a name="l00247"></a>00247 }
|
263
|
+
<a name="l00248"></a>00248 <span class="comment"></span>
|
264
|
+
<a name="l00249"></a>00249 <span class="comment"> /**</span>
|
265
|
+
<a name="l00250"></a>00250 <span class="comment"> * Pass a file descriptor. This only works if the underlying file</span>
|
266
|
+
<a name="l00251"></a>00251 <span class="comment"> * descriptor is a Unix socket.</span>
|
267
|
+
<a name="l00252"></a>00252 <span class="comment"> *</span>
|
268
|
+
<a name="l00253"></a>00253 <span class="comment"> * @param fileDescriptor The file descriptor to pass.</span>
|
269
|
+
<a name="l00254"></a>00254 <span class="comment"> * @throws SystemException Something went wrong during file descriptor passing.</span>
|
270
|
+
<a name="l00255"></a>00255 <span class="comment"> * @pre <tt>fileDescriptor >= 0</tt></span>
|
271
|
+
<a name="l00256"></a>00256 <span class="comment"> * @see readFileDescriptor()</span>
|
272
|
+
<a name="l00257"></a>00257 <span class="comment"> */</span>
|
273
|
+
<a name="l00258"></a><a class="code" href="classPassenger_1_1MessageChannel.html#73e3f3cda384c085a2af0e820ccd3e98">00258</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#73e3f3cda384c085a2af0e820ccd3e98" title="Pass a file descriptor.">writeFileDescriptor</a>(<span class="keywordtype">int</span> fileDescriptor) {
|
274
|
+
<a name="l00259"></a>00259 <span class="keyword">struct </span>msghdr msg;
|
275
|
+
<a name="l00260"></a>00260 <span class="keyword">struct </span>iovec vec[1];
|
276
|
+
<a name="l00261"></a>00261 <span class="keywordtype">char</span> buf[1];
|
277
|
+
<a name="l00262"></a>00262 <span class="keyword">struct </span>{
|
278
|
+
<a name="l00263"></a>00263 <span class="keyword">struct </span>cmsghdr hdr;
|
279
|
+
<a name="l00264"></a>00264 <span class="keywordtype">int</span> fd;
|
280
|
+
<a name="l00265"></a>00265 } cmsg;
|
281
|
+
<a name="l00266"></a>00266
|
282
|
+
<a name="l00267"></a>00267 msg.msg_name = NULL;
|
283
|
+
<a name="l00268"></a>00268 msg.msg_namelen = 0;
|
284
|
+
<a name="l00269"></a>00269
|
285
|
+
<a name="l00270"></a>00270 <span class="comment">/* Linux and Solaris doesn't work if msg_iov is NULL. */</span>
|
286
|
+
<a name="l00271"></a>00271 buf[0] = <span class="charliteral">'\0'</span>;
|
287
|
+
<a name="l00272"></a>00272 vec[0].iov_base = buf;
|
288
|
+
<a name="l00273"></a>00273 vec[0].iov_len = 1;
|
289
|
+
<a name="l00274"></a>00274 msg.msg_iov = vec;
|
290
|
+
<a name="l00275"></a>00275 msg.msg_iovlen = 1;
|
291
|
+
<a name="l00276"></a>00276
|
292
|
+
<a name="l00277"></a>00277 msg.msg_control = (caddr_t)&cmsg;
|
293
|
+
<a name="l00278"></a>00278 msg.msg_controllen = CMSG_SPACE(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>));
|
294
|
+
<a name="l00279"></a>00279 msg.msg_flags = 0;
|
295
|
+
<a name="l00280"></a>00280 cmsg.hdr.cmsg_len = CMSG_LEN(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>));
|
296
|
+
<a name="l00281"></a>00281 cmsg.hdr.cmsg_level = SOL_SOCKET;
|
297
|
+
<a name="l00282"></a>00282 cmsg.hdr.cmsg_type = SCM_RIGHTS;
|
298
|
+
<a name="l00283"></a>00283 cmsg.fd = fileDescriptor;
|
299
|
+
<a name="l00284"></a>00284
|
300
|
+
<a name="l00285"></a>00285 <span class="keywordflow">if</span> (sendmsg(fd, &msg, 0) == -1) {
|
301
|
+
<a name="l00286"></a>00286 <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 send file descriptor with sendmsg()"</span>, errno);
|
302
|
+
<a name="l00287"></a>00287 }
|
303
|
+
<a name="l00288"></a>00288 }
|
304
|
+
<a name="l00289"></a>00289 <span class="comment"></span>
|
305
|
+
<a name="l00290"></a>00290 <span class="comment"> /**</span>
|
306
|
+
<a name="l00291"></a>00291 <span class="comment"> * Read an array message from the underlying file descriptor.</span>
|
307
|
+
<a name="l00292"></a>00292 <span class="comment"> *</span>
|
308
|
+
<a name="l00293"></a>00293 <span class="comment"> * @param args The message will be put in this variable.</span>
|
309
|
+
<a name="l00294"></a>00294 <span class="comment"> * @return Whether end-of-file has been reached. If so, then the contents</span>
|
310
|
+
<a name="l00295"></a>00295 <span class="comment"> * of <tt>args</tt> will be undefined.</span>
|
311
|
+
<a name="l00296"></a>00296 <span class="comment"> * @throws SystemException If an error occured while receiving the message.</span>
|
312
|
+
<a name="l00297"></a>00297 <span class="comment"> * @see write()</span>
|
313
|
+
<a name="l00298"></a>00298 <span class="comment"> */</span>
|
314
|
+
<a name="l00299"></a><a class="code" href="classPassenger_1_1MessageChannel.html#129659b60d1a663337873d2af944431e">00299</a> <span class="keywordtype">bool</span> <a class="code" href="classPassenger_1_1MessageChannel.html#129659b60d1a663337873d2af944431e" title="Read an array message from the underlying file descriptor.">read</a>(vector<string> &args) {
|
315
|
+
<a name="l00300"></a>00300 uint16_t size;
|
316
|
+
<a name="l00301"></a>00301 <span class="keywordtype">int</span> ret;
|
317
|
+
<a name="l00302"></a>00302 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> alreadyRead = 0;
|
318
|
+
<a name="l00303"></a>00303
|
319
|
+
<a name="l00304"></a>00304 <span class="keywordflow">do</span> {
|
320
|
+
<a name="l00305"></a>00305 <span class="keywordflow">do</span> {
|
321
|
+
<a name="l00306"></a>00306 ret =<a class="code" href="classPassenger_1_1MessageChannel.html#129659b60d1a663337873d2af944431e" title="Read an array message from the underlying file descriptor."> ::read</a>(fd, (<span class="keywordtype">char</span> *) &size + alreadyRead, <span class="keyword">sizeof</span>(size) - alreadyRead);
|
322
|
+
<a name="l00307"></a>00307 } <span class="keywordflow">while</span> (ret == -1 && errno == EINTR);
|
323
|
+
<a name="l00308"></a>00308 <span class="keywordflow">if</span> (ret == -1) {
|
324
|
+
<a name="l00309"></a>00309 <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">"read() failed"</span>, errno);
|
325
|
+
<a name="l00310"></a>00310 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ret == 0) {
|
326
|
+
<a name="l00311"></a>00311 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
327
|
+
<a name="l00312"></a>00312 }
|
328
|
+
<a name="l00313"></a>00313 alreadyRead += ret;
|
329
|
+
<a name="l00314"></a>00314 } <span class="keywordflow">while</span> (alreadyRead < <span class="keyword">sizeof</span>(size));
|
330
|
+
<a name="l00315"></a>00315 size = ntohs(size);
|
331
|
+
<a name="l00316"></a>00316
|
332
|
+
<a name="l00317"></a>00317 <span class="keywordtype">string</span> buffer;
|
333
|
+
<a name="l00318"></a>00318 args.clear();
|
334
|
+
<a name="l00319"></a>00319 buffer.reserve(size);
|
335
|
+
<a name="l00320"></a>00320 <span class="keywordflow">while</span> (buffer.size() < size) {
|
336
|
+
<a name="l00321"></a>00321 <span class="keywordtype">char</span> tmp[1024 * 8];
|
337
|
+
<a name="l00322"></a>00322 <span class="keywordflow">do</span> {
|
338
|
+
<a name="l00323"></a>00323 ret =<a class="code" href="classPassenger_1_1MessageChannel.html#129659b60d1a663337873d2af944431e" title="Read an array message from the underlying file descriptor."> ::read</a>(fd, tmp, min(size - buffer.size(), <span class="keyword">sizeof</span>(tmp)));
|
339
|
+
<a name="l00324"></a>00324 } <span class="keywordflow">while</span> (ret == -1 && errno == EINTR);
|
340
|
+
<a name="l00325"></a>00325 <span class="keywordflow">if</span> (ret == -1) {
|
341
|
+
<a name="l00326"></a>00326 <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">"read() failed"</span>, errno);
|
342
|
+
<a name="l00327"></a>00327 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ret == 0) {
|
343
|
+
<a name="l00328"></a>00328 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
344
|
+
<a name="l00329"></a>00329 }
|
345
|
+
<a name="l00330"></a>00330 buffer.append(tmp, ret);
|
346
|
+
<a name="l00331"></a>00331 }
|
347
|
+
<a name="l00332"></a>00332
|
348
|
+
<a name="l00333"></a>00333 <span class="keywordflow">if</span> (!buffer.empty()) {
|
349
|
+
<a name="l00334"></a>00334 string::size_type start = 0, pos;
|
350
|
+
<a name="l00335"></a>00335 <span class="keyword">const</span> <span class="keywordtype">string</span> &const_buffer(buffer);
|
351
|
+
<a name="l00336"></a>00336 <span class="keywordflow">while</span> ((pos = const_buffer.find(<span class="charliteral">'\0'</span>, start)) != string::npos) {
|
352
|
+
<a name="l00337"></a>00337 args.push_back(const_buffer.substr(start, pos - start));
|
353
|
+
<a name="l00338"></a>00338 start = pos + 1;
|
354
|
+
<a name="l00339"></a>00339 }
|
355
|
+
<a name="l00340"></a>00340 }
|
356
|
+
<a name="l00341"></a>00341 <span class="keywordflow">return</span> <span class="keyword">true</span>;
|
357
|
+
<a name="l00342"></a>00342 }
|
358
|
+
<a name="l00343"></a>00343 <span class="comment"></span>
|
359
|
+
<a name="l00344"></a>00344 <span class="comment"> /**</span>
|
360
|
+
<a name="l00345"></a>00345 <span class="comment"> * Read a scalar message from the underlying file descriptor.</span>
|
361
|
+
<a name="l00346"></a>00346 <span class="comment"> *</span>
|
362
|
+
<a name="l00347"></a>00347 <span class="comment"> * @param output The message will be put in here.</span>
|
363
|
+
<a name="l00348"></a>00348 <span class="comment"> * @returns Whether end-of-file was reached during reading.</span>
|
364
|
+
<a name="l00349"></a>00349 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
365
|
+
<a name="l00350"></a>00350 <span class="comment"> * @see writeScalar()</span>
|
366
|
+
<a name="l00351"></a>00351 <span class="comment"> */</span>
|
367
|
+
<a name="l00352"></a><a class="code" href="classPassenger_1_1MessageChannel.html#4ce6a0e751b5e3563bee583c231569bc">00352</a> <span class="keywordtype">bool</span> <a class="code" href="classPassenger_1_1MessageChannel.html#4ce6a0e751b5e3563bee583c231569bc" title="Read a scalar message from the underlying file descriptor.">readScalar</a>(<span class="keywordtype">string</span> &output) {
|
368
|
+
<a name="l00353"></a>00353 uint32_t size;
|
369
|
+
<a name="l00354"></a>00354 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> remaining;
|
370
|
+
<a name="l00355"></a>00355
|
371
|
+
<a name="l00356"></a>00356 <span class="keywordflow">if</span> (!<a class="code" href="classPassenger_1_1MessageChannel.html#cd1d1bd1cc787784c8b54f5471fff479" title="Read exactly size bytes of data from the underlying file descriptor, and put the...">readRaw</a>(&size, <span class="keyword">sizeof</span>(uint32_t))) {
|
372
|
+
<a name="l00357"></a>00357 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
373
|
+
<a name="l00358"></a>00358 }
|
374
|
+
<a name="l00359"></a>00359 size = ntohl(size);
|
375
|
+
<a name="l00360"></a>00360
|
376
|
+
<a name="l00361"></a>00361 output.clear();
|
377
|
+
<a name="l00362"></a>00362 output.reserve(size);
|
378
|
+
<a name="l00363"></a>00363 remaining = size;
|
379
|
+
<a name="l00364"></a>00364 <span class="keywordflow">while</span> (remaining > 0) {
|
380
|
+
<a name="l00365"></a>00365 <span class="keywordtype">char</span> buf[1024 * 32];
|
381
|
+
<a name="l00366"></a>00366 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockSize = min((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) <span class="keyword">sizeof</span>(buf), remaining);
|
382
|
+
<a name="l00367"></a>00367
|
383
|
+
<a name="l00368"></a>00368 <span class="keywordflow">if</span> (!<a class="code" href="classPassenger_1_1MessageChannel.html#cd1d1bd1cc787784c8b54f5471fff479" title="Read exactly size bytes of data from the underlying file descriptor, and put the...">readRaw</a>(buf, blockSize)) {
|
384
|
+
<a name="l00369"></a>00369 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
385
|
+
<a name="l00370"></a>00370 }
|
386
|
+
<a name="l00371"></a>00371 output.append(buf, blockSize);
|
387
|
+
<a name="l00372"></a>00372 remaining -= blockSize;
|
388
|
+
<a name="l00373"></a>00373 }
|
389
|
+
<a name="l00374"></a>00374 <span class="keywordflow">return</span> <span class="keyword">true</span>;
|
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"> /**</span>
|
393
|
+
<a name="l00378"></a>00378 <span class="comment"> * Read exactly <tt>size</tt> bytes of data from the underlying file descriptor,</span>
|
394
|
+
<a name="l00379"></a>00379 <span class="comment"> * and put the result in <tt>buf</tt>. If end-of-file has been reached, or if</span>
|
395
|
+
<a name="l00380"></a>00380 <span class="comment"> * end-of-file was encountered before <tt>size</tt> bytes have been read, then</span>
|
396
|
+
<a name="l00381"></a>00381 <span class="comment"> * <tt>false</tt> will be returned. Otherwise (i.e. if the read was successful),</span>
|
397
|
+
<a name="l00382"></a>00382 <span class="comment"> * <tt>true</tt> will be returned.</span>
|
398
|
+
<a name="l00383"></a>00383 <span class="comment"> *</span>
|
399
|
+
<a name="l00384"></a>00384 <span class="comment"> * @param buf The buffer to place the read data in. This buffer must be at least</span>
|
400
|
+
<a name="l00385"></a>00385 <span class="comment"> * <tt>size</tt> bytes long.</span>
|
401
|
+
<a name="l00386"></a>00386 <span class="comment"> * @param size The number of bytes to read.</span>
|
402
|
+
<a name="l00387"></a>00387 <span class="comment"> * @return Whether reading was successful or whether EOF was reached.</span>
|
403
|
+
<a name="l00388"></a>00388 <span class="comment"> * @pre buf != NULL</span>
|
404
|
+
<a name="l00389"></a>00389 <span class="comment"> * @throws SystemException Something went wrong during reading.</span>
|
405
|
+
<a name="l00390"></a>00390 <span class="comment"> * @see writeRaw()</span>
|
406
|
+
<a name="l00391"></a>00391 <span class="comment"> */</span>
|
407
|
+
<a name="l00392"></a><a class="code" href="classPassenger_1_1MessageChannel.html#cd1d1bd1cc787784c8b54f5471fff479">00392</a> <span class="keywordtype">bool</span> <a class="code" href="classPassenger_1_1MessageChannel.html#cd1d1bd1cc787784c8b54f5471fff479" title="Read exactly size bytes of data from the underlying file descriptor, and put the...">readRaw</a>(<span class="keywordtype">void</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size) {
|
408
|
+
<a name="l00393"></a>00393 ssize_t ret;
|
409
|
+
<a name="l00394"></a>00394 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> alreadyRead = 0;
|
410
|
+
<a name="l00395"></a>00395
|
411
|
+
<a name="l00396"></a>00396 <span class="keywordflow">while</span> (alreadyRead < size) {
|
412
|
+
<a name="l00397"></a>00397 <span class="keywordflow">do</span> {
|
413
|
+
<a name="l00398"></a>00398 ret =<a class="code" href="classPassenger_1_1MessageChannel.html#129659b60d1a663337873d2af944431e" title="Read an array message from the underlying file descriptor."> ::read</a>(fd, (<span class="keywordtype">char</span> *) buf + alreadyRead, size - alreadyRead);
|
414
|
+
<a name="l00399"></a>00399 } <span class="keywordflow">while</span> (ret == -1 && errno == EINTR);
|
415
|
+
<a name="l00400"></a>00400 <span class="keywordflow">if</span> (ret == -1) {
|
416
|
+
<a name="l00401"></a>00401 <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">"read() failed"</span>, errno);
|
417
|
+
<a name="l00402"></a>00402 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ret == 0) {
|
418
|
+
<a name="l00403"></a>00403 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
419
|
+
<a name="l00404"></a>00404 } <span class="keywordflow">else</span> {
|
420
|
+
<a name="l00405"></a>00405 alreadyRead += ret;
|
421
|
+
<a name="l00406"></a>00406 }
|
422
|
+
<a name="l00407"></a>00407 }
|
423
|
+
<a name="l00408"></a>00408 <span class="keywordflow">return</span> <span class="keyword">true</span>;
|
424
|
+
<a name="l00409"></a>00409 }
|
425
|
+
<a name="l00410"></a>00410 <span class="comment"></span>
|
426
|
+
<a name="l00411"></a>00411 <span class="comment"> /**</span>
|
427
|
+
<a name="l00412"></a>00412 <span class="comment"> * Receive a file descriptor, which had been passed over the underlying</span>
|
428
|
+
<a name="l00413"></a>00413 <span class="comment"> * file descriptor.</span>
|
429
|
+
<a name="l00414"></a>00414 <span class="comment"> *</span>
|
430
|
+
<a name="l00415"></a>00415 <span class="comment"> * @return The passed file descriptor.</span>
|
431
|
+
<a name="l00416"></a>00416 <span class="comment"> * @throws SystemException If something went wrong during the</span>
|
432
|
+
<a name="l00417"></a>00417 <span class="comment"> * receiving of a file descriptor. Perhaps the underlying</span>
|
433
|
+
<a name="l00418"></a>00418 <span class="comment"> * file descriptor isn't a Unix socket.</span>
|
434
|
+
<a name="l00419"></a>00419 <span class="comment"> * @throws IOException Whatever was received doesn't seem to be a</span>
|
435
|
+
<a name="l00420"></a>00420 <span class="comment"> * file descriptor.</span>
|
436
|
+
<a name="l00421"></a>00421 <span class="comment"> */</span>
|
437
|
+
<a name="l00422"></a><a class="code" href="classPassenger_1_1MessageChannel.html#1561b7e4a0f4d39ea431f456e5655488">00422</a> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1MessageChannel.html#1561b7e4a0f4d39ea431f456e5655488" title="Receive a file descriptor, which had been passed over the underlying file descriptor...">readFileDescriptor</a>() {
|
438
|
+
<a name="l00423"></a>00423 <span class="keyword">struct </span>msghdr msg;
|
439
|
+
<a name="l00424"></a>00424 <span class="keyword">struct </span>iovec vec[2];
|
440
|
+
<a name="l00425"></a>00425 <span class="keywordtype">char</span> buf[1];
|
441
|
+
<a name="l00426"></a>00426 <span class="keyword">struct </span>{
|
442
|
+
<a name="l00427"></a>00427 <span class="keyword">struct </span>cmsghdr hdr;
|
443
|
+
<a name="l00428"></a>00428 <span class="keywordtype">int</span> fd;
|
444
|
+
<a name="l00429"></a>00429 } cmsg;
|
445
|
+
<a name="l00430"></a>00430
|
446
|
+
<a name="l00431"></a>00431 msg.msg_name = NULL;
|
447
|
+
<a name="l00432"></a>00432 msg.msg_namelen = 0;
|
448
|
+
<a name="l00433"></a>00433
|
449
|
+
<a name="l00434"></a>00434 vec[0].iov_base = buf;
|
450
|
+
<a name="l00435"></a>00435 vec[0].iov_len = <span class="keyword">sizeof</span>(buf);
|
451
|
+
<a name="l00436"></a>00436 msg.msg_iov = vec;
|
452
|
+
<a name="l00437"></a>00437 msg.msg_iovlen = 1;
|
453
|
+
<a name="l00438"></a>00438
|
454
|
+
<a name="l00439"></a>00439 msg.msg_control = (caddr_t)&cmsg;
|
455
|
+
<a name="l00440"></a>00440 msg.msg_controllen = CMSG_SPACE(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>));
|
456
|
+
<a name="l00441"></a>00441 msg.msg_flags = 0;
|
457
|
+
<a name="l00442"></a>00442 cmsg.hdr.cmsg_len = CMSG_LEN(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>));
|
458
|
+
<a name="l00443"></a>00443 cmsg.hdr.cmsg_level = SOL_SOCKET;
|
459
|
+
<a name="l00444"></a>00444 cmsg.hdr.cmsg_type = SCM_RIGHTS;
|
460
|
+
<a name="l00445"></a>00445 cmsg.fd = -1;
|
461
|
+
<a name="l00446"></a>00446
|
462
|
+
<a name="l00447"></a>00447 <span class="keywordflow">if</span> (recvmsg(fd, &msg, 0) == -1) {
|
463
|
+
<a name="l00448"></a>00448 <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 read file descriptor with recvmsg()"</span>, errno);
|
464
|
+
<a name="l00449"></a>00449 }
|
465
|
+
<a name="l00450"></a>00450
|
466
|
+
<a name="l00451"></a>00451 <span class="keywordflow">if</span> (msg.msg_controllen != CMSG_SPACE(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>))
|
467
|
+
<a name="l00452"></a>00452 || cmsg.hdr.cmsg_len != CMSG_SPACE(0) + <span class="keyword">sizeof</span>(<span class="keywordtype">int</span>)
|
468
|
+
<a name="l00453"></a>00453 || cmsg.hdr.cmsg_level != SOL_SOCKET
|
469
|
+
<a name="l00454"></a>00454 || cmsg.hdr.cmsg_type != SCM_RIGHTS) {
|
470
|
+
<a name="l00455"></a>00455 <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">"No valid file descriptor received."</span>);
|
471
|
+
<a name="l00456"></a>00456 }
|
472
|
+
<a name="l00457"></a>00457 <span class="keywordflow">return</span> cmsg.fd;
|
473
|
+
<a name="l00458"></a>00458 }
|
474
|
+
<a name="l00459"></a>00459 };
|
475
|
+
<a name="l00460"></a>00460
|
476
|
+
<a name="l00461"></a>00461 } <span class="comment">// namespace Passenger</span>
|
477
|
+
<a name="l00462"></a>00462
|
478
|
+
<a name="l00463"></a>00463 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_MESSAGE_CHANNEL_H_ */</span>
|
479
|
+
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 11 18:16:04 2008 for Passenger by
|
480
|
+
<a href="http://www.doxygen.org/index.html">
|
481
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
|
482
|
+
</body>
|
483
|
+
</html>
|