passenger 1.0.5 → 2.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 +33 -2
- data/INSTALL +4 -2
- data/LICENSE +11 -10
- data/README +23 -4
- data/Rakefile +179 -54
- data/benchmark/ApplicationPool.cpp +52 -0
- data/bin/passenger-config +18 -0
- data/bin/passenger-install-apache2-module +79 -14
- data/bin/passenger-make-enterprisey +14 -2
- data/bin/passenger-memory-stats +25 -2
- data/bin/passenger-spawn-server +20 -5
- data/bin/passenger-status +96 -0
- data/bin/passenger-stress-test +339 -0
- data/debian/compat +1 -0
- data/debian/control +21 -0
- data/debian/postinst +24 -0
- data/debian/prerm +2 -0
- data/doc/ApplicationPool algorithm.txt +66 -32
- data/doc/Architectural overview.html +1 -1
- data/doc/Security of user switching support.html +1 -1
- data/doc/Users guide.html +867 -243
- data/doc/Users guide.txt +830 -191
- data/doc/cxxapi/ApplicationPoolServer_8h-source.html +655 -524
- data/doc/cxxapi/ApplicationPool_8h-source.html +196 -173
- data/doc/cxxapi/Application_8h-source.html +430 -384
- data/doc/cxxapi/Configuration_8h-source.html +167 -132
- data/doc/cxxapi/DummySpawnManager_8h-source.html +110 -105
- data/doc/cxxapi/Exceptions_8h-source.html +229 -173
- data/doc/cxxapi/Hooks_8h-source.html +49 -44
- data/doc/cxxapi/Logging_8h-source.html +121 -88
- data/doc/cxxapi/MessageChannel_8h-source.html +501 -482
- data/doc/cxxapi/SpawnManager_8h-source.html +559 -518
- data/doc/cxxapi/StandardApplicationPool_8h-source.html +696 -537
- data/doc/cxxapi/System_8h-source.html +251 -0
- data/doc/cxxapi/Utils_8h-source.html +270 -163
- data/doc/cxxapi/annotated.html +40 -24
- data/doc/cxxapi/classClient-members.html +22 -17
- data/doc/cxxapi/classClient.html +22 -17
- data/doc/cxxapi/classDirectoryMapper-members.html +38 -0
- data/doc/cxxapi/classDirectoryMapper.html +203 -0
- data/doc/cxxapi/classHooks-members.html +33 -0
- data/doc/cxxapi/classHooks.html +43 -0
- data/doc/cxxapi/classPassenger_1_1Application-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1Application.html +38 -33
- data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +24 -18
- data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +94 -35
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +23 -18
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +53 -44
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +28 -21
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +91 -56
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1BusyException.html +47 -0
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +25 -22
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +27 -22
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +25 -20
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +38 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +61 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1IOException.html +26 -21
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +44 -21
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +26 -23
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +24 -19
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +64 -43
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +26 -19
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +89 -37
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1SystemException.html +32 -22
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1TempFile-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1TempFile.html +128 -0
- data/doc/cxxapi/classPassenger_1_1Thread-members.html +35 -0
- data/doc/cxxapi/classPassenger_1_1Thread.html +100 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption.html +46 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption.html +44 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption.html +44 -0
- data/doc/cxxapi/definitions_8h-source.html +14 -11
- data/doc/cxxapi/doxygen.css +152 -77
- data/doc/cxxapi/files.html +18 -12
- data/doc/cxxapi/functions.html +107 -55
- data/doc/cxxapi/functions_func.html +104 -55
- data/doc/cxxapi/functions_type.html +30 -24
- data/doc/cxxapi/functions_vars.html +48 -0
- data/doc/cxxapi/graph_legend.dot +19 -19
- data/doc/cxxapi/graph_legend.html +15 -10
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Configuration.html +18 -13
- data/doc/cxxapi/group__Configuration.png +0 -0
- data/doc/cxxapi/group__Core.html +23 -11
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +21 -10
- data/doc/cxxapi/group__Hooks.html +16 -11
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +169 -21
- data/doc/cxxapi/hierarchy.html +38 -22
- data/doc/cxxapi/index.html +1 -1
- data/doc/cxxapi/inherit__graph__0.map +1 -1
- data/doc/cxxapi/inherit__graph__0.md5 +1 -1
- data/doc/cxxapi/inherit__graph__0.png +0 -0
- data/doc/cxxapi/inherit__graph__1.map +1 -1
- data/doc/cxxapi/inherit__graph__1.md5 +1 -1
- data/doc/cxxapi/inherit__graph__1.png +0 -0
- data/doc/cxxapi/inherit__graph__10.map +1 -1
- data/doc/cxxapi/inherit__graph__10.md5 +1 -1
- data/doc/cxxapi/inherit__graph__10.png +0 -0
- data/doc/cxxapi/inherit__graph__11.map +1 -0
- data/doc/cxxapi/inherit__graph__11.md5 +1 -0
- data/doc/cxxapi/inherit__graph__11.png +0 -0
- data/doc/cxxapi/inherit__graph__12.map +1 -0
- data/doc/cxxapi/inherit__graph__12.md5 +1 -0
- data/doc/cxxapi/inherit__graph__12.png +0 -0
- data/doc/cxxapi/inherit__graph__13.map +1 -0
- data/doc/cxxapi/inherit__graph__13.md5 +1 -0
- data/doc/cxxapi/inherit__graph__13.png +0 -0
- data/doc/cxxapi/inherit__graph__14.map +2 -0
- data/doc/cxxapi/inherit__graph__14.md5 +1 -0
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +1 -0
- data/doc/cxxapi/inherit__graph__15.md5 +1 -0
- data/doc/cxxapi/inherit__graph__15.png +0 -0
- data/doc/cxxapi/inherit__graph__16.map +1 -0
- data/doc/cxxapi/inherit__graph__16.md5 +1 -0
- data/doc/cxxapi/inherit__graph__16.png +0 -0
- data/doc/cxxapi/inherit__graph__17.map +1 -0
- data/doc/cxxapi/inherit__graph__17.md5 +1 -0
- data/doc/cxxapi/inherit__graph__17.png +0 -0
- data/doc/cxxapi/inherit__graph__2.map +1 -1
- data/doc/cxxapi/inherit__graph__2.md5 +1 -1
- data/doc/cxxapi/inherit__graph__2.png +0 -0
- data/doc/cxxapi/inherit__graph__3.map +1 -1
- data/doc/cxxapi/inherit__graph__3.md5 +1 -1
- data/doc/cxxapi/inherit__graph__3.png +0 -0
- data/doc/cxxapi/inherit__graph__4.map +1 -2
- data/doc/cxxapi/inherit__graph__4.md5 +1 -1
- data/doc/cxxapi/inherit__graph__4.png +0 -0
- data/doc/cxxapi/inherit__graph__5.map +1 -1
- data/doc/cxxapi/inherit__graph__5.md5 +1 -1
- data/doc/cxxapi/inherit__graph__5.png +0 -0
- data/doc/cxxapi/inherit__graph__6.map +1 -1
- data/doc/cxxapi/inherit__graph__6.md5 +1 -1
- data/doc/cxxapi/inherit__graph__6.png +0 -0
- data/doc/cxxapi/inherit__graph__7.map +1 -5
- data/doc/cxxapi/inherit__graph__7.md5 +1 -1
- data/doc/cxxapi/inherit__graph__7.png +0 -0
- data/doc/cxxapi/inherit__graph__8.map +1 -1
- data/doc/cxxapi/inherit__graph__8.md5 +1 -1
- data/doc/cxxapi/inherit__graph__8.png +0 -0
- data/doc/cxxapi/inherit__graph__9.map +2 -1
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +80 -39
- data/doc/cxxapi/main.html +15 -10
- data/doc/cxxapi/modules.html +16 -11
- data/doc/cxxapi/namespacePassenger.html +208 -0
- data/doc/cxxapi/namespacePassenger_1_1InterruptableCalls.html +43 -0
- data/doc/cxxapi/namespacemembers.html +70 -0
- data/doc/cxxapi/namespacemembers_func.html +66 -0
- data/doc/cxxapi/namespacemembers_type.html +46 -0
- data/doc/cxxapi/namespaces.html +35 -0
- data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +22 -17
- data/doc/cxxapi/structPassenger_1_1AnythingToString.html +24 -19
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +23 -18
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +27 -22
- data/doc/cxxapi/tabs.css +1 -1
- data/doc/cxxapi/tree.html +41 -13
- data/doc/rdoc/classes/ConditionVariable.html +25 -23
- data/doc/rdoc/classes/Exception.html +11 -11
- data/doc/rdoc/classes/GC.html +4 -4
- data/doc/rdoc/classes/IO.html +8 -8
- data/doc/rdoc/classes/Passenger.html +27 -8
- data/doc/rdoc/classes/Passenger/AbstractRequestHandler.html +401 -0
- data/doc/rdoc/classes/Passenger/AbstractServer.html +248 -208
- data/doc/rdoc/classes/Passenger/AppInitError.html +37 -6
- data/doc/rdoc/classes/Passenger/Application.html +73 -74
- data/doc/rdoc/classes/Passenger/ConsoleTextTemplate.html +35 -35
- data/doc/rdoc/classes/Passenger/FrameworkInitError.html +17 -18
- data/doc/rdoc/classes/Passenger/HTMLTemplate.html +30 -30
- data/doc/rdoc/classes/Passenger/InitializationError.html +11 -11
- data/doc/rdoc/classes/Passenger/MessageChannel.html +138 -138
- data/doc/rdoc/classes/Passenger/SpawnManager.html +142 -145
- data/doc/rdoc/classes/Passenger/UnknownError.html +11 -11
- data/doc/rdoc/classes/Passenger/Utils.html +327 -99
- data/doc/rdoc/classes/Passenger/VersionNotFound.html +6 -6
- data/doc/rdoc/classes/PlatformInfo.html +10 -10
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +55 -3
- data/doc/rdoc/files/README.html +35 -5
- data/doc/rdoc/files/ext/passenger/native_support_c.html +1 -1
- data/doc/rdoc/files/lib/passenger/abstract_request_handler_rb.html +125 -0
- data/doc/rdoc/files/lib/passenger/abstract_server_rb.html +7 -1
- data/doc/rdoc/files/lib/passenger/application_rb.html +6 -2
- data/doc/rdoc/files/lib/passenger/console_text_template_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/constants_rb.html +114 -0
- data/doc/rdoc/files/lib/passenger/dependencies_rb.html +7 -1
- data/doc/rdoc/files/lib/passenger/exceptions_rb.html +118 -0
- data/doc/rdoc/files/lib/passenger/html_template_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/message_channel_rb.html +5 -5
- data/doc/rdoc/files/lib/passenger/platform_info_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/simple_benchmarking_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/spawn_manager_rb.html +19 -4
- data/doc/rdoc/files/lib/passenger/utils_rb.html +10 -3
- data/doc/rdoc/fr_class_index.html +1 -6
- data/doc/rdoc/fr_file_index.html +3 -4
- data/doc/rdoc/fr_method_index.html +55 -60
- data/ext/apache2/Application.h +105 -62
- data/ext/apache2/ApplicationPool.h +29 -9
- data/ext/apache2/ApplicationPoolServer.h +654 -0
- data/ext/apache2/ApplicationPoolServerExecutable.cpp +474 -0
- data/ext/apache2/Configuration.cpp +278 -63
- data/ext/apache2/Configuration.h +45 -13
- data/ext/apache2/DummySpawnManager.h +2 -0
- data/ext/apache2/Exceptions.h +53 -0
- data/ext/apache2/Hooks.cpp +484 -156
- data/ext/apache2/Hooks.h +2 -0
- data/ext/apache2/Logging.cpp +13 -1
- data/ext/apache2/Logging.h +36 -6
- data/ext/apache2/MessageChannel.h +32 -16
- data/ext/apache2/SpawnManager.h +90 -52
- data/ext/apache2/StandardApplicationPool.h +251 -95
- data/ext/apache2/System.cpp +232 -0
- data/ext/apache2/System.h +228 -0
- data/ext/apache2/Utils.cpp +80 -20
- data/ext/apache2/Utils.h +107 -3
- data/ext/apache2/mod_passenger.c +2 -0
- data/ext/boost/VERSION.TXT +1 -1
- data/ext/boost/algorithm/string/case_conv.hpp +176 -0
- data/ext/boost/algorithm/string/compare.hpp +199 -0
- data/ext/boost/algorithm/string/concept.hpp +83 -0
- data/ext/boost/algorithm/string/config.hpp +28 -0
- data/ext/boost/algorithm/string/constants.hpp +36 -0
- data/ext/boost/algorithm/string/detail/case_conv.hpp +112 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +193 -0
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +263 -0
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +71 -0
- data/ext/boost/algorithm/string/detail/finder.hpp +646 -0
- data/ext/boost/algorithm/string/detail/formatter.hpp +94 -0
- data/ext/boost/algorithm/string/detail/replace_storage.hpp +159 -0
- data/ext/boost/algorithm/string/detail/sequence.hpp +200 -0
- data/ext/boost/algorithm/string/detail/util.hpp +106 -0
- data/ext/boost/algorithm/string/erase.hpp +844 -0
- data/ext/boost/algorithm/string/find_format.hpp +269 -0
- data/ext/boost/algorithm/string/finder.hpp +270 -0
- data/ext/boost/algorithm/string/formatter.hpp +103 -0
- data/ext/boost/algorithm/string/replace.hpp +928 -0
- data/ext/boost/algorithm/string/sequence_traits.hpp +193 -0
- data/ext/boost/algorithm/string/yes_no_type.hpp +33 -0
- data/ext/boost/assert.hpp +50 -37
- data/ext/boost/bind.hpp +38 -0
- data/ext/boost/bind/arg.hpp +28 -2
- data/ext/boost/bind/bind_template.hpp +119 -0
- data/ext/boost/bind/placeholders.hpp +1 -1
- data/ext/boost/call_traits.hpp +24 -0
- data/ext/boost/checked_delete.hpp +69 -69
- data/ext/boost/concept/assert.hpp +46 -0
- data/ext/boost/concept/detail/concept_def.hpp +51 -0
- data/ext/boost/concept/detail/concept_undef.hpp +5 -0
- data/ext/boost/concept/detail/general.hpp +66 -0
- data/ext/boost/concept/detail/has_constraints.hpp +48 -0
- data/ext/boost/concept/usage.hpp +43 -0
- data/ext/boost/concept_check.hpp +988 -0
- data/ext/boost/config.hpp +70 -70
- data/ext/boost/config/abi/borland_prefix.hpp +27 -27
- data/ext/boost/config/abi/borland_suffix.hpp +12 -12
- data/ext/boost/config/abi/msvc_prefix.hpp +8 -8
- data/ext/boost/config/abi/msvc_suffix.hpp +8 -8
- data/ext/boost/config/abi_prefix.hpp +25 -20
- data/ext/boost/config/abi_suffix.hpp +26 -23
- data/ext/boost/config/auto_link.hpp +368 -363
- data/ext/boost/config/compiler/borland.hpp +209 -190
- data/ext/boost/config/compiler/comeau.hpp +59 -59
- data/ext/boost/config/compiler/common_edg.hpp +62 -62
- data/ext/boost/config/compiler/compaq_cxx.hpp +19 -19
- data/ext/boost/config/compiler/digitalmars.hpp +67 -49
- data/ext/boost/config/compiler/gcc.hpp +149 -105
- data/ext/boost/config/compiler/gcc_xml.hpp +30 -30
- data/ext/boost/config/compiler/greenhills.hpp +28 -28
- data/ext/boost/config/compiler/hp_acc.hpp +95 -72
- data/ext/boost/config/compiler/intel.hpp +162 -158
- data/ext/boost/config/compiler/kai.hpp +35 -35
- data/ext/boost/config/compiler/metrowerks.hpp +111 -104
- data/ext/boost/config/compiler/mpw.hpp +51 -51
- data/ext/boost/config/compiler/pgi.hpp +25 -0
- data/ext/boost/config/compiler/sgi_mipspro.hpp +28 -24
- data/ext/boost/config/compiler/sunpro_cc.hpp +98 -92
- data/ext/boost/config/compiler/vacpp.hpp +60 -57
- data/ext/boost/config/compiler/visualc.hpp +191 -178
- data/ext/boost/config/no_tr1/complex.hpp +28 -28
- data/ext/boost/config/no_tr1/functional.hpp +28 -28
- data/ext/boost/config/no_tr1/memory.hpp +28 -28
- data/ext/boost/config/no_tr1/utility.hpp +28 -28
- data/ext/boost/config/platform/aix.hpp +33 -33
- data/ext/boost/config/platform/amigaos.hpp +15 -15
- data/ext/boost/config/platform/beos.hpp +26 -26
- data/ext/boost/config/platform/bsd.hpp +73 -73
- data/ext/boost/config/platform/cygwin.hpp +51 -48
- data/ext/boost/config/platform/hpux.hpp +84 -85
- data/ext/boost/config/platform/irix.hpp +31 -31
- data/ext/boost/config/platform/linux.hpp +98 -98
- data/ext/boost/config/platform/macos.hpp +78 -78
- data/ext/boost/config/platform/qnxnto.hpp +31 -31
- data/ext/boost/config/platform/solaris.hpp +21 -21
- data/ext/boost/config/platform/win32.hpp +58 -58
- data/ext/boost/config/posix_features.hpp +95 -95
- data/ext/boost/config/requires_threads.hpp +92 -92
- data/ext/boost/config/select_compiler_config.hpp +115 -87
- data/ext/boost/config/select_platform_config.hpp +90 -90
- data/ext/boost/config/select_stdlib_config.hpp +68 -68
- data/ext/boost/config/stdlib/dinkumware.hpp +106 -106
- data/ext/boost/config/stdlib/libcomo.hpp +46 -46
- data/ext/boost/config/stdlib/libstdcpp3.hpp +73 -73
- data/ext/boost/config/stdlib/modena.hpp +30 -30
- data/ext/boost/config/stdlib/msl.hpp +59 -59
- data/ext/boost/config/stdlib/roguewave.hpp +153 -127
- data/ext/boost/config/stdlib/sgi.hpp +111 -111
- data/ext/boost/config/stdlib/stlport.hpp +201 -201
- data/ext/boost/config/stdlib/vacpp.hpp +18 -18
- data/ext/boost/config/suffix.hpp +566 -569
- data/ext/boost/config/user.hpp +124 -124
- data/ext/boost/cstdint.hpp +446 -446
- data/ext/boost/date_time/adjust_functors.hpp +178 -0
- data/ext/boost/date_time/c_time.hpp +91 -0
- data/ext/boost/date_time/compiler_config.hpp +149 -0
- data/ext/boost/date_time/constrained_value.hpp +98 -0
- data/ext/boost/date_time/date.hpp +197 -0
- data/ext/boost/date_time/date_clock_device.hpp +77 -0
- data/ext/boost/date_time/date_defs.hpp +26 -0
- data/ext/boost/date_time/date_duration.hpp +147 -0
- data/ext/boost/date_time/date_duration_types.hpp +269 -0
- data/ext/boost/date_time/date_facet.hpp +775 -0
- data/ext/boost/date_time/date_format_simple.hpp +159 -0
- data/ext/boost/date_time/date_formatting.hpp +127 -0
- data/ext/boost/date_time/date_formatting_limited.hpp +121 -0
- data/ext/boost/date_time/date_formatting_locales.hpp +233 -0
- data/ext/boost/date_time/date_generator_formatter.hpp +263 -0
- data/ext/boost/date_time/date_generator_parser.hpp +329 -0
- data/ext/boost/date_time/date_generators.hpp +509 -0
- data/ext/boost/date_time/date_iterator.hpp +101 -0
- data/ext/boost/date_time/date_names_put.hpp +320 -0
- data/ext/boost/date_time/date_parsing.hpp +299 -0
- data/ext/boost/date_time/dst_rules.hpp +391 -0
- data/ext/boost/date_time/filetime_functions.hpp +78 -0
- data/ext/boost/date_time/format_date_parser.hpp +731 -0
- data/ext/boost/date_time/gregorian/conversion.hpp +73 -0
- data/ext/boost/date_time/gregorian/formatters.hpp +162 -0
- data/ext/boost/date_time/gregorian/formatters_limited.hpp +81 -0
- data/ext/boost/date_time/gregorian/greg_calendar.hpp +47 -0
- data/ext/boost/date_time/gregorian/greg_date.hpp +135 -0
- data/ext/boost/date_time/gregorian/greg_day.hpp +57 -0
- data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +38 -0
- data/ext/boost/date_time/gregorian/greg_duration.hpp +38 -0
- data/ext/boost/date_time/gregorian/greg_duration_types.hpp +34 -0
- data/ext/boost/date_time/gregorian/greg_month.hpp +105 -0
- data/ext/boost/date_time/gregorian/greg_weekday.hpp +66 -0
- data/ext/boost/date_time/gregorian/greg_year.hpp +53 -0
- data/ext/boost/date_time/gregorian/greg_ymd.hpp +33 -0
- data/ext/boost/date_time/gregorian/gregorian.hpp +38 -0
- data/ext/boost/date_time/gregorian/gregorian_io.hpp +777 -0
- data/ext/boost/date_time/gregorian/gregorian_types.hpp +109 -0
- data/ext/boost/date_time/gregorian/parsers.hpp +91 -0
- data/ext/boost/date_time/gregorian_calendar.hpp +70 -0
- data/ext/boost/date_time/gregorian_calendar.ipp +219 -0
- data/ext/boost/date_time/int_adapter.hpp +507 -0
- data/ext/boost/date_time/iso_format.hpp +303 -0
- data/ext/boost/date_time/locale_config.hpp +31 -0
- data/ext/boost/date_time/microsec_time_clock.hpp +205 -0
- data/ext/boost/date_time/parse_format_base.hpp +29 -0
- data/ext/boost/date_time/period.hpp +377 -0
- data/ext/boost/date_time/period_formatter.hpp +196 -0
- data/ext/boost/date_time/period_parser.hpp +196 -0
- data/ext/boost/date_time/posix_time/conversion.hpp +93 -0
- data/ext/boost/date_time/posix_time/date_duration_operators.hpp +114 -0
- data/ext/boost/date_time/posix_time/posix_time.hpp +39 -0
- data/ext/boost/date_time/posix_time/posix_time_config.hpp +178 -0
- data/ext/boost/date_time/posix_time/posix_time_duration.hpp +82 -0
- data/ext/boost/date_time/posix_time/posix_time_io.hpp +246 -0
- data/ext/boost/date_time/posix_time/posix_time_system.hpp +68 -0
- data/ext/boost/date_time/posix_time/posix_time_types.hpp +55 -0
- data/ext/boost/date_time/posix_time/ptime.hpp +65 -0
- data/ext/boost/date_time/posix_time/time_formatters.hpp +289 -0
- data/ext/boost/date_time/posix_time/time_parsers.hpp +44 -0
- data/ext/boost/date_time/posix_time/time_period.hpp +29 -0
- data/ext/boost/date_time/special_defs.hpp +25 -0
- data/ext/boost/date_time/special_values_formatter.hpp +96 -0
- data/ext/boost/date_time/special_values_parser.hpp +159 -0
- data/ext/boost/date_time/string_convert.hpp +33 -0
- data/ext/boost/date_time/string_parse_tree.hpp +278 -0
- data/ext/boost/date_time/strings_from_facet.hpp +123 -0
- data/ext/boost/date_time/time.hpp +190 -0
- data/ext/boost/date_time/time_clock.hpp +83 -0
- data/ext/boost/date_time/time_defs.hpp +33 -0
- data/ext/boost/date_time/time_duration.hpp +281 -0
- data/ext/boost/date_time/time_facet.hpp +1263 -0
- data/ext/boost/date_time/time_formatting_streams.hpp +119 -0
- data/ext/boost/date_time/time_iterator.hpp +52 -0
- data/ext/boost/date_time/time_parsing.hpp +321 -0
- data/ext/boost/date_time/time_resolution_traits.hpp +140 -0
- data/ext/boost/date_time/time_system_counted.hpp +254 -0
- data/ext/boost/date_time/time_system_split.hpp +213 -0
- data/ext/boost/date_time/wrapping_int.hpp +163 -0
- data/ext/boost/date_time/year_month_day.hpp +45 -0
- data/ext/boost/detail/atomic_count.hpp +124 -0
- data/ext/boost/detail/atomic_count_gcc.hpp +68 -0
- data/ext/boost/detail/atomic_count_gcc_x86.hpp +84 -0
- data/ext/boost/detail/atomic_count_pthreads.hpp +96 -0
- data/ext/boost/detail/atomic_count_solaris.hpp +59 -0
- data/ext/boost/detail/atomic_count_sync.hpp +57 -0
- data/ext/boost/detail/atomic_count_win32.hpp +63 -0
- data/ext/boost/detail/bad_weak_ptr.hpp +59 -59
- data/ext/boost/detail/call_traits.hpp +164 -0
- data/ext/boost/detail/endian.hpp +73 -0
- data/ext/boost/detail/indirect_traits.hpp +487 -0
- data/ext/boost/detail/iterator.hpp +494 -0
- data/ext/boost/detail/lcast_precision.hpp +184 -0
- data/ext/boost/detail/limits.hpp +449 -0
- data/ext/boost/detail/reference_content.hpp +141 -141
- data/ext/boost/detail/shared_count.hpp +375 -376
- data/ext/boost/detail/sp_counted_base.hpp +81 -69
- data/ext/boost/detail/sp_counted_base_acc_ia64.hpp +150 -0
- data/ext/boost/detail/sp_counted_base_cw_ppc.hpp +170 -170
- data/ext/boost/detail/sp_counted_base_cw_x86.hpp +158 -158
- data/ext/boost/detail/sp_counted_base_gcc_ia64.hpp +157 -157
- data/ext/boost/detail/sp_counted_base_gcc_ppc.hpp +181 -181
- data/ext/boost/detail/sp_counted_base_gcc_sparc.hpp +166 -0
- data/ext/boost/detail/sp_counted_base_gcc_x86.hpp +173 -173
- data/ext/boost/detail/sp_counted_base_nt.hpp +107 -107
- data/ext/boost/detail/sp_counted_base_pt.hpp +135 -135
- data/ext/boost/detail/sp_counted_base_solaris.hpp +113 -0
- data/ext/boost/detail/sp_counted_base_sync.hpp +151 -0
- data/ext/boost/detail/sp_counted_base_w32.hpp +130 -130
- data/ext/boost/detail/sp_counted_impl.hpp +231 -232
- data/ext/boost/detail/sp_typeinfo.hpp +83 -0
- data/ext/boost/detail/workaround.hpp +202 -74
- data/ext/boost/enable_shared_from_this.hpp +73 -0
- data/ext/boost/function.hpp +4 -2
- data/ext/boost/function/detail/prologue.hpp +1 -0
- data/ext/boost/function/function_base.hpp +41 -15
- data/ext/boost/function/function_template.hpp +238 -106
- data/ext/boost/implicit_cast.hpp +29 -0
- data/ext/boost/integer_traits.hpp +236 -0
- data/ext/boost/io/ios_state.hpp +431 -0
- data/ext/boost/io_fwd.hpp +67 -0
- data/ext/boost/is_placeholder.hpp +31 -0
- data/ext/boost/iterator.hpp +59 -0
- data/ext/boost/iterator/detail/config_def.hpp +135 -0
- data/ext/boost/iterator/detail/config_undef.hpp +25 -0
- data/ext/boost/iterator/detail/enable_if.hpp +86 -0
- data/ext/boost/iterator/detail/facade_iterator_category.hpp +200 -0
- data/ext/boost/iterator/detail/minimum_category.hpp +116 -0
- data/ext/boost/iterator/interoperable.hpp +50 -0
- data/ext/boost/iterator/iterator_adaptor.hpp +366 -0
- data/ext/boost/iterator/iterator_categories.hpp +188 -0
- data/ext/boost/iterator/iterator_facade.hpp +879 -0
- data/ext/boost/iterator/iterator_traits.hpp +92 -0
- data/ext/boost/iterator/reverse_iterator.hpp +69 -0
- data/ext/boost/iterator/transform_iterator.hpp +188 -0
- data/ext/boost/lexical_cast.hpp +1205 -0
- data/ext/boost/limits.hpp +146 -144
- data/ext/boost/mpl/always.hpp +39 -39
- data/ext/boost/mpl/and.hpp +60 -56
- data/ext/boost/mpl/apply.hpp +225 -225
- data/ext/boost/mpl/apply_fwd.hpp +107 -107
- data/ext/boost/mpl/apply_wrap.hpp +200 -200
- data/ext/boost/mpl/arg.hpp +131 -131
- data/ext/boost/mpl/arg_fwd.hpp +28 -28
- data/ext/boost/mpl/assert.hpp +370 -361
- data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -48
- data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -31
- data/ext/boost/mpl/aux_/arity.hpp +39 -39
- data/ext/boost/mpl/aux_/arity_spec.hpp +67 -67
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -34
- data/ext/boost/mpl/aux_/config/adl.hpp +40 -40
- data/ext/boost/mpl/aux_/config/arrays.hpp +30 -30
- data/ext/boost/mpl/aux_/config/bind.hpp +33 -33
- data/ext/boost/mpl/aux_/config/compiler.hpp +64 -64
- data/ext/boost/mpl/aux_/config/ctps.hpp +30 -30
- data/ext/boost/mpl/aux_/config/dtp.hpp +46 -46
- data/ext/boost/mpl/aux_/config/eti.hpp +47 -47
- data/ext/boost/mpl/aux_/config/gcc.hpp +23 -23
- data/ext/boost/mpl/aux_/config/has_apply.hpp +32 -32
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +33 -33
- data/ext/boost/mpl/aux_/config/integral.hpp +38 -38
- data/ext/boost/mpl/aux_/config/intel.hpp +21 -21
- data/ext/boost/mpl/aux_/config/lambda.hpp +32 -32
- data/ext/boost/mpl/aux_/config/msvc.hpp +21 -21
- data/ext/boost/mpl/aux_/config/msvc_typename.hpp +26 -26
- data/ext/boost/mpl/aux_/config/nttp.hpp +41 -41
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -29
- data/ext/boost/mpl/aux_/config/pp_counter.hpp +26 -0
- data/ext/boost/mpl/aux_/config/preprocessor.hpp +39 -39
- data/ext/boost/mpl/aux_/config/static_constant.hpp +25 -25
- data/ext/boost/mpl/aux_/config/ttp.hpp +41 -39
- data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +19 -19
- data/ext/boost/mpl/aux_/config/workaround.hpp +19 -19
- data/ext/boost/mpl/aux_/full_lambda.hpp +350 -350
- data/ext/boost/mpl/aux_/has_apply.hpp +32 -32
- data/ext/boost/mpl/aux_/has_type.hpp +23 -23
- data/ext/boost/mpl/aux_/include_preprocessed.hpp +42 -42
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -93
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -25
- data/ext/boost/mpl/aux_/lambda_support.hpp +169 -169
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -34
- data/ext/boost/mpl/aux_/na.hpp +95 -95
- data/ext/boost/mpl/aux_/na_assert.hpp +34 -34
- data/ext/boost/mpl/aux_/na_fwd.hpp +31 -31
- data/ext/boost/mpl/aux_/na_spec.hpp +175 -175
- data/ext/boost/mpl/aux_/nested_type_wknd.hpp +48 -48
- data/ext/boost/mpl/aux_/nttp_decl.hpp +35 -35
- data/ext/boost/mpl/aux_/preprocessed/gcc/and.hpp +69 -69
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply.hpp +169 -169
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +52 -52
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +84 -84
- data/ext/boost/mpl/aux_/preprocessed/gcc/arg.hpp +123 -123
- data/ext/boost/mpl/aux_/preprocessed/gcc/bind.hpp +561 -561
- data/ext/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +52 -52
- data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -558
- data/ext/boost/mpl/aux_/preprocessed/gcc/or.hpp +69 -69
- data/ext/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +105 -105
- data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -123
- data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +101 -101
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -105
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -62
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -28
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -65
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -65
- data/ext/boost/mpl/aux_/static_cast.hpp +27 -27
- data/ext/boost/mpl/aux_/template_arity.hpp +189 -189
- data/ext/boost/mpl/aux_/template_arity_fwd.hpp +23 -23
- data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -47
- data/ext/boost/mpl/aux_/value_wknd.hpp +89 -89
- data/ext/boost/mpl/aux_/yes_no.hpp +58 -58
- data/ext/boost/mpl/bind.hpp +547 -547
- data/ext/boost/mpl/bind_fwd.hpp +99 -99
- data/ext/boost/mpl/bool.hpp +39 -39
- data/ext/boost/mpl/bool_fwd.hpp +33 -33
- data/ext/boost/mpl/eval_if.hpp +71 -71
- data/ext/boost/mpl/has_xxx.hpp +272 -233
- data/ext/boost/mpl/identity.hpp +45 -45
- data/ext/boost/mpl/if.hpp +135 -135
- data/ext/boost/mpl/int.hpp +22 -22
- data/ext/boost/mpl/int_fwd.hpp +27 -27
- data/ext/boost/mpl/integral_c.hpp +51 -51
- data/ext/boost/mpl/integral_c_fwd.hpp +32 -32
- data/ext/boost/mpl/integral_c_tag.hpp +26 -26
- data/ext/boost/mpl/lambda.hpp +29 -29
- data/ext/boost/mpl/lambda_fwd.hpp +57 -57
- data/ext/boost/mpl/limits/arity.hpp +21 -21
- data/ext/boost/mpl/logical.hpp +21 -21
- data/ext/boost/mpl/next.hpp +19 -19
- data/ext/boost/mpl/next_prior.hpp +49 -49
- data/ext/boost/mpl/not.hpp +51 -51
- data/ext/boost/mpl/or.hpp +61 -57
- data/ext/boost/mpl/placeholders.hpp +100 -100
- data/ext/boost/mpl/protect.hpp +55 -55
- data/ext/boost/mpl/quote.hpp +140 -140
- data/ext/boost/mpl/size_t.hpp +25 -25
- data/ext/boost/mpl/size_t_fwd.hpp +28 -28
- data/ext/boost/mpl/void.hpp +76 -76
- data/ext/boost/mpl/void_fwd.hpp +26 -26
- data/ext/boost/next_prior.hpp +51 -51
- data/ext/boost/noncopyable.hpp +36 -36
- data/ext/boost/none.hpp +28 -43
- data/ext/boost/none_t.hpp +24 -0
- data/ext/boost/operators.hpp +943 -0
- data/ext/boost/optional.hpp +18 -18
- data/ext/boost/optional/optional.hpp +922 -922
- data/ext/boost/optional/optional_fwd.hpp +22 -22
- data/ext/boost/preprocessor/arithmetic/add.hpp +51 -51
- data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -288
- data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -288
- data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -50
- data/ext/boost/preprocessor/array/data.hpp +28 -28
- data/ext/boost/preprocessor/array/elem.hpp +29 -29
- data/ext/boost/preprocessor/array/size.hpp +28 -28
- data/ext/boost/preprocessor/cat.hpp +35 -35
- data/ext/boost/preprocessor/comma_if.hpp +17 -17
- data/ext/boost/preprocessor/config/config.hpp +70 -70
- data/ext/boost/preprocessor/control/detail/while.hpp +536 -536
- data/ext/boost/preprocessor/control/expr_iif.hpp +31 -31
- data/ext/boost/preprocessor/control/if.hpp +30 -30
- data/ext/boost/preprocessor/control/iif.hpp +34 -34
- data/ext/boost/preprocessor/control/while.hpp +312 -312
- data/ext/boost/preprocessor/debug/error.hpp +33 -33
- data/ext/boost/preprocessor/detail/auto_rec.hpp +293 -293
- data/ext/boost/preprocessor/detail/check.hpp +48 -48
- data/ext/boost/preprocessor/detail/is_binary.hpp +30 -30
- data/ext/boost/preprocessor/empty.hpp +17 -17
- data/ext/boost/preprocessor/enum.hpp +17 -17
- data/ext/boost/preprocessor/enum_params.hpp +17 -17
- data/ext/boost/preprocessor/facilities/empty.hpp +21 -21
- data/ext/boost/preprocessor/facilities/identity.hpp +23 -23
- data/ext/boost/preprocessor/identity.hpp +17 -17
- data/ext/boost/preprocessor/inc.hpp +17 -17
- data/ext/boost/preprocessor/iterate.hpp +17 -17
- data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -99
- data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -1342
- data/ext/boost/preprocessor/iteration/iterate.hpp +82 -82
- data/ext/boost/preprocessor/list/adt.hpp +73 -73
- data/ext/boost/preprocessor/list/append.hpp +40 -40
- data/ext/boost/preprocessor/list/detail/fold_left.hpp +279 -279
- data/ext/boost/preprocessor/list/detail/fold_right.hpp +277 -277
- data/ext/boost/preprocessor/list/fold_left.hpp +303 -303
- data/ext/boost/preprocessor/list/fold_right.hpp +40 -40
- data/ext/boost/preprocessor/list/for_each_i.hpp +65 -65
- data/ext/boost/preprocessor/list/reverse.hpp +40 -40
- data/ext/boost/preprocessor/list/transform.hpp +49 -49
- data/ext/boost/preprocessor/logical/and.hpp +30 -30
- data/ext/boost/preprocessor/logical/bitand.hpp +38 -38
- data/ext/boost/preprocessor/logical/bool.hpp +288 -288
- data/ext/boost/preprocessor/logical/compl.hpp +36 -36
- data/ext/boost/preprocessor/punctuation/comma.hpp +21 -21
- data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -31
- data/ext/boost/preprocessor/repeat.hpp +17 -17
- data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -536
- data/ext/boost/preprocessor/repetition/enum.hpp +66 -66
- data/ext/boost/preprocessor/repetition/enum_binary_params.hpp +54 -54
- data/ext/boost/preprocessor/repetition/enum_params.hpp +41 -41
- data/ext/boost/preprocessor/repetition/for.hpp +306 -306
- data/ext/boost/preprocessor/repetition/repeat.hpp +825 -825
- data/ext/boost/preprocessor/repetition/repeat_from_to.hpp +87 -87
- data/ext/boost/preprocessor/seq/elem.hpp +304 -304
- data/ext/boost/preprocessor/seq/enum.hpp +288 -288
- data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -61
- data/ext/boost/preprocessor/seq/seq.hpp +44 -44
- data/ext/boost/preprocessor/seq/size.hpp +548 -548
- data/ext/boost/preprocessor/slot/detail/def.hpp +49 -49
- data/ext/boost/preprocessor/slot/detail/shared.hpp +247 -247
- data/ext/boost/preprocessor/slot/slot.hpp +32 -32
- data/ext/boost/preprocessor/stringize.hpp +33 -33
- data/ext/boost/preprocessor/tuple/eat.hpp +57 -57
- data/ext/boost/preprocessor/tuple/elem.hpp +385 -385
- data/ext/boost/preprocessor/tuple/rem.hpp +72 -72
- data/ext/boost/preprocessor/tuple/to_list.hpp +62 -62
- data/ext/boost/range/as_literal.hpp +131 -0
- data/ext/boost/range/begin.hpp +132 -0
- data/ext/boost/range/config.hpp +54 -0
- data/ext/boost/range/const_iterator.hpp +64 -0
- data/ext/boost/range/detail/common.hpp +117 -0
- data/ext/boost/range/detail/implementation_help.hpp +99 -0
- data/ext/boost/range/detail/sfinae.hpp +77 -0
- data/ext/boost/range/detail/str_types.hpp +38 -0
- data/ext/boost/range/difference_type.hpp +29 -0
- data/ext/boost/range/distance.hpp +34 -0
- data/ext/boost/range/empty.hpp +34 -0
- data/ext/boost/range/end.hpp +131 -0
- data/ext/boost/range/functions.hpp +27 -0
- data/ext/boost/range/iterator.hpp +72 -0
- data/ext/boost/range/iterator_range.hpp +643 -0
- data/ext/boost/range/mutable_iterator.hpp +64 -0
- data/ext/boost/range/rbegin.hpp +65 -0
- data/ext/boost/range/rend.hpp +65 -0
- data/ext/boost/range/reverse_iterator.hpp +40 -0
- data/ext/boost/range/size.hpp +36 -0
- data/ext/boost/range/size_type.hpp +78 -0
- data/ext/boost/range/value_type.hpp +34 -0
- data/ext/boost/shared_ptr.hpp +619 -558
- data/ext/boost/src/pthread/exceptions.cpp +146 -0
- data/ext/boost/src/pthread/once.cpp +51 -0
- data/ext/boost/src/pthread/thread.cpp +709 -0
- data/ext/boost/src/pthread/timeconv.inl +130 -0
- data/ext/boost/src/tss_null.cpp +2 -1
- data/ext/boost/src/win32/exceptions.cpp +124 -0
- data/ext/boost/src/win32/thread.cpp +629 -0
- data/ext/boost/src/win32/timeconv.inl +130 -0
- data/ext/boost/src/{tss_dll.cpp → win32/tss_dll.cpp} +0 -0
- data/ext/boost/src/win32/tss_pe.cpp +269 -0
- data/ext/boost/static_assert.hpp +122 -118
- data/ext/boost/thread.hpp +21 -19
- data/ext/boost/thread/condition.hpp +16 -201
- data/ext/boost/thread/condition_variable.hpp +21 -0
- data/ext/boost/thread/detail/config.hpp +94 -95
- data/ext/boost/thread/detail/move.hpp +33 -0
- data/ext/boost/thread/detail/platform.hpp +71 -0
- data/ext/boost/thread/exceptions.hpp +103 -92
- data/ext/boost/thread/locks.hpp +589 -0
- data/ext/boost/thread/mutex.hpp +21 -170
- data/ext/boost/thread/once.hpp +29 -37
- data/ext/boost/thread/pthread/condition_variable.hpp +184 -0
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +66 -0
- data/ext/boost/thread/pthread/mutex.hpp +211 -0
- data/ext/boost/thread/pthread/once.hpp +85 -0
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +50 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +249 -0
- data/ext/boost/thread/pthread/thread.hpp +331 -0
- data/ext/boost/thread/pthread/thread_data.hpp +101 -0
- data/ext/boost/thread/pthread/timespec.hpp +28 -0
- data/ext/boost/thread/pthread/tss.hpp +103 -0
- data/ext/boost/thread/recursive_mutex.hpp +21 -184
- data/ext/boost/thread/thread.hpp +22 -90
- data/ext/boost/thread/thread_time.hpp +46 -0
- data/ext/boost/thread/tss.hpp +18 -128
- data/ext/boost/thread/xtime.hpp +88 -54
- data/ext/boost/throw_exception.hpp +46 -46
- data/ext/boost/token_functions.hpp +621 -0
- data/ext/boost/token_iterator.hpp +128 -0
- data/ext/boost/tokenizer.hpp +98 -0
- data/ext/boost/type.hpp +18 -18
- data/ext/boost/type_traits/add_const.hpp +47 -47
- data/ext/boost/type_traits/add_pointer.hpp +72 -72
- data/ext/boost/type_traits/add_reference.hpp +89 -89
- data/ext/boost/type_traits/alignment_of.hpp +100 -100
- data/ext/boost/type_traits/broken_compiler_spec.hpp +117 -117
- data/ext/boost/type_traits/composite_traits.hpp +29 -29
- data/ext/boost/type_traits/config.hpp +76 -76
- data/ext/boost/type_traits/conversion_traits.hpp +17 -17
- data/ext/boost/type_traits/detail/bool_trait_def.hpp +173 -173
- data/ext/boost/type_traits/detail/bool_trait_undef.hpp +27 -27
- data/ext/boost/type_traits/detail/cv_traits_impl.hpp +97 -97
- data/ext/boost/type_traits/detail/false_result.hpp +28 -28
- data/ext/boost/type_traits/detail/ice_and.hpp +35 -35
- data/ext/boost/type_traits/detail/ice_eq.hpp +36 -36
- data/ext/boost/type_traits/detail/ice_not.hpp +31 -31
- data/ext/boost/type_traits/detail/ice_or.hpp +34 -34
- data/ext/boost/type_traits/detail/is_function_ptr_helper.hpp +220 -220
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -817
- data/ext/boost/type_traits/detail/size_t_trait_def.hpp +58 -58
- data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +16 -16
- data/ext/boost/type_traits/detail/template_arity_spec.hpp +31 -31
- data/ext/boost/type_traits/detail/type_trait_def.hpp +61 -61
- data/ext/boost/type_traits/detail/type_trait_undef.hpp +19 -19
- data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -26
- data/ext/boost/type_traits/function_traits.hpp +236 -236
- data/ext/boost/type_traits/has_nothrow_copy.hpp +39 -38
- data/ext/boost/type_traits/has_trivial_copy.hpp +49 -48
- data/ext/boost/type_traits/ice.hpp +20 -20
- data/ext/boost/type_traits/integral_constant.hpp +53 -53
- data/ext/boost/type_traits/intrinsics.hpp +153 -137
- data/ext/boost/type_traits/is_abstract.hpp +144 -137
- data/ext/boost/type_traits/is_arithmetic.hpp +43 -43
- data/ext/boost/type_traits/is_array.hpp +90 -90
- data/ext/boost/type_traits/is_class.hpp +128 -128
- data/ext/boost/type_traits/is_const.hpp +142 -142
- data/ext/boost/type_traits/is_convertible.hpp +418 -416
- data/ext/boost/type_traits/is_enum.hpp +180 -180
- data/ext/boost/type_traits/is_float.hpp +27 -27
- data/ext/boost/type_traits/is_function.hpp +95 -88
- data/ext/boost/type_traits/is_integral.hpp +73 -71
- data/ext/boost/type_traits/is_member_function_pointer.hpp +134 -126
- data/ext/boost/type_traits/is_member_pointer.hpp +114 -108
- data/ext/boost/type_traits/is_pod.hpp +135 -135
- data/ext/boost/type_traits/is_pointer.hpp +160 -149
- data/ext/boost/type_traits/is_reference.hpp +116 -116
- data/ext/boost/type_traits/is_same.hpp +103 -103
- data/ext/boost/type_traits/is_scalar.hpp +55 -55
- data/ext/boost/type_traits/is_union.hpp +49 -49
- data/ext/boost/type_traits/is_void.hpp +33 -33
- data/ext/boost/type_traits/is_volatile.hpp +131 -131
- data/ext/boost/type_traits/remove_const.hpp +78 -78
- data/ext/boost/type_traits/remove_cv.hpp +61 -61
- data/ext/boost/type_traits/remove_pointer.hpp +43 -43
- data/ext/boost/type_traits/remove_reference.hpp +50 -50
- data/ext/boost/type_traits/type_with_alignment.hpp +288 -288
- data/ext/boost/utility.hpp +19 -19
- data/ext/boost/utility/addressof.hpp +58 -58
- data/ext/boost/utility/base_from_member.hpp +87 -87
- data/ext/boost/utility/compare_pointees.hpp +68 -68
- data/ext/boost/utility/enable_if.hpp +119 -119
- data/ext/boost/weak_ptr.hpp +0 -6
- data/ext/passenger/extconf.rb +3 -0
- data/ext/passenger/native_support.c +2 -0
- data/lib/passenger/abstract_request_handler.rb +347 -0
- data/lib/passenger/abstract_server.rb +31 -5
- data/lib/passenger/application.rb +5 -16
- data/lib/passenger/console_text_template.rb +2 -0
- data/lib/passenger/constants.rb +26 -0
- data/lib/passenger/dependencies.rb +23 -3
- data/lib/passenger/exceptions.rb +91 -0
- data/lib/passenger/html_template.rb +2 -0
- data/lib/passenger/message_channel.rb +2 -1
- data/lib/passenger/platform_info.rb +2 -0
- data/lib/passenger/rack/application_spawner.rb +108 -0
- data/lib/passenger/rack/request_handler.rb +85 -0
- data/lib/passenger/railz/application_spawner.rb +317 -0
- data/lib/passenger/railz/cgi_fixed.rb +68 -0
- data/lib/passenger/railz/framework_spawner.rb +344 -0
- data/lib/passenger/railz/request_handler.rb +61 -0
- data/lib/passenger/simple_benchmarking.rb +2 -0
- data/lib/passenger/spawn_manager.rb +190 -83
- data/lib/passenger/templates/apache2_config_snippets.txt.erb +2 -2
- data/lib/passenger/templates/apache_must_be_compiled_with_compatible_mpm.txt.erb +9 -0
- data/lib/passenger/templates/app_exited_during_initialization.html.erb +3 -3
- data/lib/passenger/templates/app_init_error.html.erb +2 -2
- data/lib/passenger/templates/database_error.html.erb +19 -12
- data/lib/passenger/templates/deployment_example.txt.erb +3 -1
- data/lib/passenger/templates/error_layout.html.erb +1 -1
- data/lib/passenger/templates/load_error.html.erb +2 -2
- data/lib/passenger/templates/welcome.txt.erb +1 -1
- data/lib/passenger/utils.rb +138 -14
- data/lib/passenger/wsgi/application_spawner.rb +94 -0
- data/lib/passenger/wsgi/request_handler.py +138 -0
- data/man/passenger-config.1 +29 -0
- data/man/passenger-make-enterprisey.8 +23 -0
- data/man/passenger-memory-stats.8 +33 -0
- data/man/passenger-status.8 +43 -0
- data/man/passenger-stress-test.1 +43 -0
- data/misc/copy_boost_headers.rb +102 -0
- data/test/ApplicationPoolServerTest.cpp +5 -3
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +6 -2
- data/test/ApplicationPoolTest.cpp +31 -27
- data/test/UtilsTest.cpp +1 -0
- data/test/integration_tests.rb +327 -137
- data/test/ruby/abstract_server_spec.rb +17 -0
- data/test/ruby/application_spec.rb +43 -0
- data/test/ruby/message_channel_spec.rb +170 -0
- data/test/ruby/rack/application_spawner_spec.rb +43 -0
- data/test/ruby/rails/application_spawner_spec.rb +109 -0
- data/test/ruby/rails/framework_spawner_spec.rb +132 -0
- data/test/ruby/rails/minimal_spawner_spec.rb +37 -0
- data/test/ruby/rails/spawner_error_handling_spec.rb +52 -0
- data/test/ruby/rails/spawner_privilege_lowering_spec.rb +97 -0
- data/test/ruby/spawn_manager_spec.rb +178 -0
- data/test/ruby/spawn_server_spec.rb +26 -0
- data/test/stub/apache2/httpd.conf +75 -0
- data/test/stub/apache2/httpd.conf.erb +41 -40
- data/test/stub/message_channel_3.rb +2 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/rack/config.ru +4 -0
- data/test/stub/rack/public/rack.jpg +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/foobar}/app/controllers/application.rb +0 -0
- data/test/stub/rails_apps/foobar/app/controllers/bar_controller_1.rb +5 -0
- data/test/stub/rails_apps/foobar/app/controllers/bar_controller_2.rb +5 -0
- data/test/stub/rails_apps/foobar/app/controllers/foo_controller.rb +13 -0
- data/test/stub/{mycook → rails_apps/foobar}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/boot.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/database.yml +0 -0
- data/test/stub/rails_apps/foobar/config/environment.rb +59 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/environments/development.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/environments/production.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/initializers/inflections.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/foobar}/config/routes.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/application.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/recipes_controller.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/uploads_controller.rb +0 -0
- data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +35 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/layouts/default.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/create.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/index.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/new.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/uploads/index.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/uploads/new.html.erb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/welcome/cached.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/welcome/index.rhtml +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/boot.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/database.yml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/config/environment.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/environments/development.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/environments/production.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/initializers/inflections.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/config/routes.rb +0 -0
- data/test/stub/{broken-railsapp/public → rails_apps/mycook/log}/useless.txt +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/404.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/422.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/500.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.cgi +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.fcgi +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/favicon.ico +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/angrywizard.gif +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/cookbook.gif +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/header.png +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/rails.png +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/application.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/controls.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/dragdrop.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/effects.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/prototype.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/robots.txt +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/uploads.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/welcome/cached.html +0 -0
- data/test/stub/{broken-railsapp4/public → rails_apps/mycook/tmp/cache}/useless.txt +0 -0
- data/test/stub/{broken-railsapp5/public → rails_apps/mycook/tmp/pids}/useless.txt +0 -0
- data/test/stub/{railsapp-without-version-spec/public → rails_apps/mycook/tmp/sessions}/useless.txt +0 -0
- data/test/stub/rails_apps/mycook/tmp/sockets/useless.txt +1 -0
- data/test/stub/spawn_server.rb +6 -2
- data/test/stub/upload_data.txt +494 -0
- data/test/stub/vendor_rails/minimal/README +1 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionmailer/lib/action_mailer.rb +0 -0
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +19 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionpack/lib/action_pack.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionpack/lib/action_view.rb +0 -0
- data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +7 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activeresource/lib/active_resource.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activesupport/lib/active_support.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/railties/lib/dispatcher.rb +0 -0
- data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +51 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/railties/lib/ruby_version_check.rb +0 -0
- data/test/stub/wsgi/passenger_wsgi.py +3 -0
- data/test/stub/wsgi/public/wsgi-snake.jpg +0 -0
- data/test/support/apache2_controller.rb +196 -0
- data/test/support/config.rb +4 -1
- data/test/support/test_helper.rb +94 -0
- metadata +445 -1329
- data/doc/cxxapi/ApplicationPoolClientServer_8h-source.html +0 -673
- data/doc/rdoc/classes/Passenger/ApplicationSpawner.html +0 -334
- data/doc/rdoc/classes/Passenger/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/Passenger/CGIFixed.html +0 -200
- data/doc/rdoc/classes/Passenger/FrameworkSpawner.html +0 -429
- data/doc/rdoc/classes/Passenger/FrameworkSpawner/Error.html +0 -98
- data/doc/rdoc/classes/Passenger/RequestHandler.html +0 -425
- data/doc/rdoc/files/lib/passenger/application_spawner_rb.html +0 -128
- data/doc/rdoc/files/lib/passenger/cgi_fixed_rb.html +0 -127
- data/doc/rdoc/files/lib/passenger/framework_spawner_rb.html +0 -135
- data/doc/rdoc/files/lib/passenger/request_handler_rb.html +0 -122
- data/ext/apache2/ApplicationPoolClientServer.h +0 -653
- data/ext/boost/bind/apply.hpp +0 -74
- data/ext/boost/bind/make_adaptable.hpp +0 -187
- data/ext/boost/bind/mem_fn_vw.hpp +0 -130
- data/ext/boost/bind/protect.hpp +0 -144
- data/ext/boost/format.hpp +0 -59
- data/ext/boost/format/alt_sstream.hpp +0 -176
- data/ext/boost/format/alt_sstream_impl.hpp +0 -296
- data/ext/boost/format/detail/compat_workarounds.hpp +0 -86
- data/ext/boost/format/detail/config_macros.hpp +0 -97
- data/ext/boost/format/detail/msvc_disambiguater.hpp +0 -56
- data/ext/boost/format/detail/unset_macros.hpp +0 -34
- data/ext/boost/format/detail/workarounds_gcc-2_95.hpp +0 -162
- data/ext/boost/format/detail/workarounds_stlport.hpp +0 -42
- data/ext/boost/format/exceptions.hpp +0 -103
- data/ext/boost/format/feed_args.hpp +0 -267
- data/ext/boost/format/format_class.hpp +0 -143
- data/ext/boost/format/format_fwd.hpp +0 -49
- data/ext/boost/format/format_implementation.hpp +0 -277
- data/ext/boost/format/free_funcs.hpp +0 -70
- data/ext/boost/format/group.hpp +0 -676
- data/ext/boost/format/internals.hpp +0 -199
- data/ext/boost/format/internals_fwd.hpp +0 -60
- data/ext/boost/format/parsing.hpp +0 -491
- data/ext/boost/function/detail/gen_maybe_include.pl +0 -37
- data/ext/boost/function/function0.hpp +0 -12
- data/ext/boost/function/function1.hpp +0 -12
- data/ext/boost/function/function10.hpp +0 -12
- data/ext/boost/function/function2.hpp +0 -12
- data/ext/boost/function/function3.hpp +0 -12
- data/ext/boost/function/function4.hpp +0 -12
- data/ext/boost/function/function5.hpp +0 -12
- data/ext/boost/function/function6.hpp +0 -12
- data/ext/boost/function/function7.hpp +0 -12
- data/ext/boost/function/function8.hpp +0 -12
- data/ext/boost/function/function9.hpp +0 -12
- data/ext/boost/function/gen_function_N.pl +0 -26
- data/ext/boost/mpl/O1_size.hpp +0 -40
- data/ext/boost/mpl/O1_size_fwd.hpp +0 -24
- data/ext/boost/mpl/accumulate.hpp +0 -39
- data/ext/boost/mpl/advance.hpp +0 -76
- data/ext/boost/mpl/advance_fwd.hpp +0 -28
- data/ext/boost/mpl/alias.hpp +0 -21
- data/ext/boost/mpl/arithmetic.hpp +0 -25
- data/ext/boost/mpl/as_sequence.hpp +0 -38
- data/ext/boost/mpl/at.hpp +0 -52
- data/ext/boost/mpl/at_fwd.hpp +0 -24
- data/ext/boost/mpl/aux_/O1_size_impl.hpp +0 -87
- data/ext/boost/mpl/aux_/advance_backward.hpp +0 -124
- data/ext/boost/mpl/aux_/advance_forward.hpp +0 -123
- data/ext/boost/mpl/aux_/apply_1st.hpp +0 -35
- data/ext/boost/mpl/aux_/arithmetic_op.hpp +0 -92
- data/ext/boost/mpl/aux_/at_impl.hpp +0 -45
- data/ext/boost/mpl/aux_/back_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/basic_bind.hpp +0 -21
- data/ext/boost/mpl/aux_/begin_end_impl.hpp +0 -100
- data/ext/boost/mpl/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/aux_/comparison_op.hpp +0 -83
- data/ext/boost/mpl/aux_/config/dependent_nttp.hpp +0 -35
- data/ext/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +0 -27
- data/ext/boost/mpl/aux_/config/forwarding.hpp +0 -27
- data/ext/boost/mpl/aux_/config/operators.hpp +0 -33
- data/ext/boost/mpl/aux_/config/typeof.hpp +0 -38
- data/ext/boost/mpl/aux_/contains_impl.hpp +0 -61
- data/ext/boost/mpl/aux_/count_args.hpp +0 -105
- data/ext/boost/mpl/aux_/count_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/empty_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/erase_impl.hpp +0 -69
- data/ext/boost/mpl/aux_/erase_key_impl.hpp +0 -32
- data/ext/boost/mpl/aux_/filter_iter.hpp +0 -140
- data/ext/boost/mpl/aux_/find_if_pred.hpp +0 -31
- data/ext/boost/mpl/aux_/fold_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/fold_impl_body.hpp +0 -365
- data/ext/boost/mpl/aux_/fold_op.hpp +0 -37
- data/ext/boost/mpl/aux_/fold_pred.hpp +0 -37
- data/ext/boost/mpl/aux_/front_impl.hpp +0 -41
- data/ext/boost/mpl/aux_/has_begin.hpp +0 -23
- data/ext/boost/mpl/aux_/has_key_impl.hpp +0 -34
- data/ext/boost/mpl/aux_/has_rebind.hpp +0 -99
- data/ext/boost/mpl/aux_/has_size.hpp +0 -23
- data/ext/boost/mpl/aux_/has_tag.hpp +0 -23
- data/ext/boost/mpl/aux_/insert_impl.hpp +0 -68
- data/ext/boost/mpl/aux_/insert_range_impl.hpp +0 -77
- data/ext/boost/mpl/aux_/inserter_algorithm.hpp +0 -159
- data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +0 -64
- data/ext/boost/mpl/aux_/iter_apply.hpp +0 -47
- data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +0 -210
- data/ext/boost/mpl/aux_/iter_fold_impl.hpp +0 -42
- data/ext/boost/mpl/aux_/iter_push_front.hpp +0 -36
- data/ext/boost/mpl/aux_/joint_iter.hpp +0 -120
- data/ext/boost/mpl/aux_/lambda_no_ctps.hpp +0 -193
- data/ext/boost/mpl/aux_/lambda_spec.hpp +0 -49
- data/ext/boost/mpl/aux_/largest_int.hpp +0 -63
- data/ext/boost/mpl/aux_/logical_op.hpp +0 -165
- data/ext/boost/mpl/aux_/msvc_dtw.hpp +0 -68
- data/ext/boost/mpl/aux_/msvc_eti_base.hpp +0 -77
- data/ext/boost/mpl/aux_/msvc_is_class.hpp +0 -58
- data/ext/boost/mpl/aux_/msvc_type.hpp +0 -62
- data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +0 -77
- data/ext/boost/mpl/aux_/numeric_op.hpp +0 -311
- data/ext/boost/mpl/aux_/order_impl.hpp +0 -76
- data/ext/boost/mpl/aux_/overload_names.hpp +0 -48
- data/ext/boost/mpl/aux_/partition_op.hpp +0 -58
- data/ext/boost/mpl/aux_/pop_back_impl.hpp +0 -34
- data/ext/boost/mpl/aux_/pop_front_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/bcc/arg.hpp +0 -117
- data/ext/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +0 -300
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind.hpp +0 -397
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp +0 -558
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/inherit.hpp +0 -139
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/bcc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/bcc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/bcc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/bcc551/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +0 -306
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +0 -403
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp +0 -558
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc551/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/bcc551/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/dmc/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/dmc/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +0 -406
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind.hpp +0 -515
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp +0 -53
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp +0 -536
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/dmc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/dmc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/dmc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/dmc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/dmc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/gcc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/gcc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp +0 -132
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp +0 -132
- data/ext/boost/mpl/aux_/preprocessed/msvc60/and.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp +0 -247
- data/ext/boost/mpl/aux_/preprocessed/msvc60/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +0 -432
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp +0 -293
- data/ext/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +0 -293
- data/ext/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc60/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +0 -115
- data/ext/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/or.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp +0 -343
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp +0 -343
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/times.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/msvc70/and.hpp +0 -71
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +0 -160
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp +0 -138
- data/ext/boost/mpl/aux_/preprocessed/msvc70/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +0 -432
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +0 -115
- data/ext/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/or.hpp +0 -71
- data/ext/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/quote.hpp +0 -116
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/times.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/mwcw/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/mwcw/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind.hpp +0 -561
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/mwcw/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/mwcw/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/mwcw/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/and.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp +0 -268
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp +0 -50
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp +0 -78
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp +0 -486
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp +0 -590
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/or.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp +0 -116
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/times.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp +0 -369
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp +0 -466
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp +0 -111
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp +0 -110
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp +0 -110
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/times.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/and.hpp +0 -64
- data/ext/boost/mpl/aux_/preprocessed/plain/apply.hpp +0 -139
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/plain/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/plain/bind.hpp +0 -561
- data/ext/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/plain/bitand.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/bitor.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/bitxor.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/divides.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/equal_to.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/plain/greater.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/inherit.hpp +0 -125
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp +0 -228
- data/ext/boost/mpl/aux_/preprocessed/plain/less.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/less_equal.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/plain/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/minus.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/modulus.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/or.hpp +0 -64
- data/ext/boost/mpl/aux_/preprocessed/plain/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/plain/plus.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/plain/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_left.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_right.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/plain/times.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/plain/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessor/add.hpp +0 -65
- data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +0 -67
- data/ext/boost/mpl/aux_/preprocessor/ext_params.hpp +0 -78
- data/ext/boost/mpl/aux_/preprocessor/is_seq.hpp +0 -54
- data/ext/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +0 -32
- data/ext/boost/mpl/aux_/preprocessor/range.hpp +0 -23
- data/ext/boost/mpl/aux_/preprocessor/repeat.hpp +0 -51
- data/ext/boost/mpl/aux_/preprocessor/token_equal.hpp +0 -56
- data/ext/boost/mpl/aux_/preprocessor/tuple.hpp +0 -29
- data/ext/boost/mpl/aux_/ptr_to_ref.hpp +0 -46
- data/ext/boost/mpl/aux_/push_back_impl.hpp +0 -55
- data/ext/boost/mpl/aux_/push_front_impl.hpp +0 -56
- data/ext/boost/mpl/aux_/range_c/O1_size.hpp +0 -31
- data/ext/boost/mpl/aux_/range_c/back.hpp +0 -34
- data/ext/boost/mpl/aux_/range_c/empty.hpp +0 -37
- data/ext/boost/mpl/aux_/range_c/front.hpp +0 -33
- data/ext/boost/mpl/aux_/range_c/iterator.hpp +0 -106
- data/ext/boost/mpl/aux_/range_c/size.hpp +0 -37
- data/ext/boost/mpl/aux_/range_c/tag.hpp +0 -24
- data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/reverse_fold_impl_body.hpp +0 -412
- data/ext/boost/mpl/aux_/reverse_iter_fold_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/sequence_wrapper.hpp +0 -292
- data/ext/boost/mpl/aux_/shift_op.hpp +0 -87
- data/ext/boost/mpl/aux_/single_element_iter.hpp +0 -118
- data/ext/boost/mpl/aux_/size_impl.hpp +0 -52
- data/ext/boost/mpl/aux_/sort_impl.hpp +0 -121
- data/ext/boost/mpl/aux_/test.hpp +0 -32
- data/ext/boost/mpl/aux_/test/assert.hpp +0 -29
- data/ext/boost/mpl/aux_/test/data.hpp +0 -25
- data/ext/boost/mpl/aux_/test/test_case.hpp +0 -21
- data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +0 -56
- data/ext/boost/mpl/aux_/transform_iter.hpp +0 -123
- data/ext/boost/mpl/aux_/unwrap.hpp +0 -47
- data/ext/boost/mpl/back.hpp +0 -39
- data/ext/boost/mpl/back_fwd.hpp +0 -24
- data/ext/boost/mpl/back_inserter.hpp +0 -34
- data/ext/boost/mpl/base.hpp +0 -35
- data/ext/boost/mpl/begin.hpp +0 -19
- data/ext/boost/mpl/begin_end.hpp +0 -57
- data/ext/boost/mpl/begin_end_fwd.hpp +0 -27
- data/ext/boost/mpl/bitand.hpp +0 -23
- data/ext/boost/mpl/bitor.hpp +0 -23
- data/ext/boost/mpl/bitwise.hpp +0 -24
- data/ext/boost/mpl/bitxor.hpp +0 -23
- data/ext/boost/mpl/clear.hpp +0 -39
- data/ext/boost/mpl/clear_fwd.hpp +0 -24
- data/ext/boost/mpl/comparison.hpp +0 -24
- data/ext/boost/mpl/contains.hpp +0 -41
- data/ext/boost/mpl/contains_fwd.hpp +0 -25
- data/ext/boost/mpl/copy.hpp +0 -58
- data/ext/boost/mpl/copy_if.hpp +0 -96
- data/ext/boost/mpl/count.hpp +0 -40
- data/ext/boost/mpl/count_fwd.hpp +0 -24
- data/ext/boost/mpl/count_if.hpp +0 -79
- data/ext/boost/mpl/deque.hpp +0 -58
- data/ext/boost/mpl/deref.hpp +0 -41
- data/ext/boost/mpl/distance.hpp +0 -78
- data/ext/boost/mpl/distance_fwd.hpp +0 -28
- data/ext/boost/mpl/divides.hpp +0 -21
- data/ext/boost/mpl/empty.hpp +0 -39
- data/ext/boost/mpl/empty_base.hpp +0 -59
- data/ext/boost/mpl/empty_fwd.hpp +0 -24
- data/ext/boost/mpl/empty_sequence.hpp +0 -42
- data/ext/boost/mpl/end.hpp +0 -19
- data/ext/boost/mpl/equal.hpp +0 -112
- data/ext/boost/mpl/equal_to.hpp +0 -21
- data/ext/boost/mpl/erase.hpp +0 -42
- data/ext/boost/mpl/erase_fwd.hpp +0 -24
- data/ext/boost/mpl/erase_key.hpp +0 -41
- data/ext/boost/mpl/erase_key_fwd.hpp +0 -24
- data/ext/boost/mpl/filter_view.hpp +0 -46
- data/ext/boost/mpl/find.hpp +0 -38
- data/ext/boost/mpl/find_if.hpp +0 -50
- data/ext/boost/mpl/fold.hpp +0 -48
- data/ext/boost/mpl/for_each.hpp +0 -112
- data/ext/boost/mpl/front.hpp +0 -39
- data/ext/boost/mpl/front_fwd.hpp +0 -24
- data/ext/boost/mpl/front_inserter.hpp +0 -33
- data/ext/boost/mpl/greater.hpp +0 -21
- data/ext/boost/mpl/greater_equal.hpp +0 -21
- data/ext/boost/mpl/has_key.hpp +0 -41
- data/ext/boost/mpl/has_key_fwd.hpp +0 -25
- data/ext/boost/mpl/index_if.hpp +0 -60
- data/ext/boost/mpl/index_of.hpp +0 -39
- data/ext/boost/mpl/inherit.hpp +0 -229
- data/ext/boost/mpl/inherit_linearly.hpp +0 -39
- data/ext/boost/mpl/insert.hpp +0 -41
- data/ext/boost/mpl/insert_fwd.hpp +0 -24
- data/ext/boost/mpl/insert_range.hpp +0 -41
- data/ext/boost/mpl/insert_range_fwd.hpp +0 -24
- data/ext/boost/mpl/inserter.hpp +0 -32
- data/ext/boost/mpl/is_placeholder.hpp +0 -67
- data/ext/boost/mpl/is_sequence.hpp +0 -112
- data/ext/boost/mpl/iter_fold.hpp +0 -49
- data/ext/boost/mpl/iter_fold_if.hpp +0 -117
- data/ext/boost/mpl/iterator_category.hpp +0 -35
- data/ext/boost/mpl/iterator_range.hpp +0 -42
- data/ext/boost/mpl/iterator_tags.hpp +0 -27
- data/ext/boost/mpl/joint_view.hpp +0 -65
- data/ext/boost/mpl/key_type.hpp +0 -42
- data/ext/boost/mpl/key_type_fwd.hpp +0 -25
- data/ext/boost/mpl/less.hpp +0 -21
- data/ext/boost/mpl/less_equal.hpp +0 -21
- data/ext/boost/mpl/limits/list.hpp +0 -21
- data/ext/boost/mpl/limits/map.hpp +0 -21
- data/ext/boost/mpl/limits/set.hpp +0 -21
- data/ext/boost/mpl/limits/unrolling.hpp +0 -21
- data/ext/boost/mpl/limits/vector.hpp +0 -21
- data/ext/boost/mpl/list.hpp +0 -57
- data/ext/boost/mpl/list/aux_/O1_size.hpp +0 -33
- data/ext/boost/mpl/list/aux_/begin_end.hpp +0 -44
- data/ext/boost/mpl/list/aux_/clear.hpp +0 -34
- data/ext/boost/mpl/list/aux_/empty.hpp +0 -34
- data/ext/boost/mpl/list/aux_/front.hpp +0 -33
- data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +0 -35
- data/ext/boost/mpl/list/aux_/item.hpp +0 -55
- data/ext/boost/mpl/list/aux_/iterator.hpp +0 -76
- data/ext/boost/mpl/list/aux_/numbered.hpp +0 -68
- data/ext/boost/mpl/list/aux_/numbered_c.hpp +0 -71
- data/ext/boost/mpl/list/aux_/pop_front.hpp +0 -34
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +0 -149
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp +0 -164
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +0 -169
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp +0 -173
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30.hpp +0 -189
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp +0 -183
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40.hpp +0 -209
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp +0 -193
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50.hpp +0 -229
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp +0 -203
- data/ext/boost/mpl/list/aux_/push_back.hpp +0 -36
- data/ext/boost/mpl/list/aux_/push_front.hpp +0 -39
- data/ext/boost/mpl/list/aux_/size.hpp +0 -33
- data/ext/boost/mpl/list/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/list/list0.hpp +0 -42
- data/ext/boost/mpl/list/list0_c.hpp +0 -31
- data/ext/boost/mpl/list/list10.hpp +0 -43
- data/ext/boost/mpl/list/list10_c.hpp +0 -43
- data/ext/boost/mpl/list/list20.hpp +0 -43
- data/ext/boost/mpl/list/list20_c.hpp +0 -43
- data/ext/boost/mpl/list/list30.hpp +0 -43
- data/ext/boost/mpl/list/list30_c.hpp +0 -43
- data/ext/boost/mpl/list/list40.hpp +0 -43
- data/ext/boost/mpl/list/list40_c.hpp +0 -43
- data/ext/boost/mpl/list/list50.hpp +0 -43
- data/ext/boost/mpl/list/list50_c.hpp +0 -43
- data/ext/boost/mpl/list_c.hpp +0 -60
- data/ext/boost/mpl/long.hpp +0 -22
- data/ext/boost/mpl/long_fwd.hpp +0 -27
- data/ext/boost/mpl/lower_bound.hpp +0 -143
- data/ext/boost/mpl/map.hpp +0 -57
- data/ext/boost/mpl/map/aux_/at_impl.hpp +0 -144
- data/ext/boost/mpl/map/aux_/begin_end_impl.hpp +0 -50
- data/ext/boost/mpl/map/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/map/aux_/contains_impl.hpp +0 -43
- data/ext/boost/mpl/map/aux_/empty_impl.hpp +0 -34
- data/ext/boost/mpl/map/aux_/erase_impl.hpp +0 -41
- data/ext/boost/mpl/map/aux_/erase_key_impl.hpp +0 -53
- data/ext/boost/mpl/map/aux_/has_key_impl.hpp +0 -44
- data/ext/boost/mpl/map/aux_/include_preprocessed.hpp +0 -53
- data/ext/boost/mpl/map/aux_/insert_impl.hpp +0 -72
- data/ext/boost/mpl/map/aux_/item.hpp +0 -138
- data/ext/boost/mpl/map/aux_/iterator.hpp +0 -169
- data/ext/boost/mpl/map/aux_/key_type_impl.hpp +0 -36
- data/ext/boost/mpl/map/aux_/map0.hpp +0 -74
- data/ext/boost/mpl/map/aux_/numbered.hpp +0 -110
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp +0 -350
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp +0 -370
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp +0 -390
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp +0 -410
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp +0 -430
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map10.hpp +0 -290
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map20.hpp +0 -310
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map30.hpp +0 -330
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map40.hpp +0 -350
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map50.hpp +0 -370
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp +0 -150
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp +0 -170
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp +0 -190
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp +0 -210
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp +0 -230
- data/ext/boost/mpl/map/aux_/size_impl.hpp +0 -33
- data/ext/boost/mpl/map/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/map/aux_/value_type_impl.hpp +0 -36
- data/ext/boost/mpl/map/map0.hpp +0 -36
- data/ext/boost/mpl/map/map10.hpp +0 -44
- data/ext/boost/mpl/map/map20.hpp +0 -44
- data/ext/boost/mpl/map/map30.hpp +0 -44
- data/ext/boost/mpl/map/map40.hpp +0 -44
- data/ext/boost/mpl/map/map50.hpp +0 -44
- data/ext/boost/mpl/math/fixed_c.hpp +0 -36
- data/ext/boost/mpl/math/is_even.hpp +0 -54
- data/ext/boost/mpl/math/rational_c.hpp +0 -37
- data/ext/boost/mpl/max.hpp +0 -19
- data/ext/boost/mpl/max_element.hpp +0 -72
- data/ext/boost/mpl/min.hpp +0 -19
- data/ext/boost/mpl/min_element.hpp +0 -40
- data/ext/boost/mpl/min_max.hpp +0 -46
- data/ext/boost/mpl/minus.hpp +0 -21
- data/ext/boost/mpl/modulus.hpp +0 -22
- data/ext/boost/mpl/multiplies.hpp +0 -53
- data/ext/boost/mpl/multiset/aux_/count_impl.hpp +0 -82
- data/ext/boost/mpl/multiset/aux_/insert_impl.hpp +0 -34
- data/ext/boost/mpl/multiset/aux_/item.hpp +0 -114
- data/ext/boost/mpl/multiset/aux_/multiset0.hpp +0 -34
- data/ext/boost/mpl/multiset/aux_/tag.hpp +0 -23
- data/ext/boost/mpl/multiset/multiset0.hpp +0 -36
- data/ext/boost/mpl/negate.hpp +0 -81
- data/ext/boost/mpl/not_equal_to.hpp +0 -21
- data/ext/boost/mpl/numeric_cast.hpp +0 -41
- data/ext/boost/mpl/order.hpp +0 -41
- data/ext/boost/mpl/order_fwd.hpp +0 -25
- data/ext/boost/mpl/pair.hpp +0 -70
- data/ext/boost/mpl/pair_view.hpp +0 -169
- data/ext/boost/mpl/partition.hpp +0 -53
- data/ext/boost/mpl/plus.hpp +0 -21
- data/ext/boost/mpl/pop_back.hpp +0 -39
- data/ext/boost/mpl/pop_back_fwd.hpp +0 -24
- data/ext/boost/mpl/pop_front.hpp +0 -39
- data/ext/boost/mpl/pop_front_fwd.hpp +0 -24
- data/ext/boost/mpl/print.hpp +0 -74
- data/ext/boost/mpl/prior.hpp +0 -19
- data/ext/boost/mpl/push_back.hpp +0 -53
- data/ext/boost/mpl/push_back_fwd.hpp +0 -24
- data/ext/boost/mpl/push_front.hpp +0 -52
- data/ext/boost/mpl/push_front_fwd.hpp +0 -24
- data/ext/boost/mpl/range_c.hpp +0 -48
- data/ext/boost/mpl/remove.hpp +0 -52
- data/ext/boost/mpl/remove_if.hpp +0 -83
- data/ext/boost/mpl/replace.hpp +0 -55
- data/ext/boost/mpl/replace_if.hpp +0 -88
- data/ext/boost/mpl/reverse.hpp +0 -38
- data/ext/boost/mpl/reverse_fold.hpp +0 -50
- data/ext/boost/mpl/reverse_iter_fold.hpp +0 -56
- data/ext/boost/mpl/same_as.hpp +0 -55
- data/ext/boost/mpl/sequence_tag.hpp +0 -124
- data/ext/boost/mpl/sequence_tag_fwd.hpp +0 -26
- data/ext/boost/mpl/set.hpp +0 -57
- data/ext/boost/mpl/set/aux_/at_impl.hpp +0 -40
- data/ext/boost/mpl/set/aux_/begin_end_impl.hpp +0 -43
- data/ext/boost/mpl/set/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/set/aux_/empty_impl.hpp +0 -34
- data/ext/boost/mpl/set/aux_/erase_impl.hpp +0 -41
- data/ext/boost/mpl/set/aux_/erase_key_impl.hpp +0 -53
- data/ext/boost/mpl/set/aux_/has_key_impl.hpp +0 -60
- data/ext/boost/mpl/set/aux_/include_preprocessed.hpp +0 -42
- data/ext/boost/mpl/set/aux_/insert_impl.hpp +0 -65
- data/ext/boost/mpl/set/aux_/item.hpp +0 -82
- data/ext/boost/mpl/set/aux_/iterator.hpp +0 -97
- data/ext/boost/mpl/set/aux_/key_type_impl.hpp +0 -34
- data/ext/boost/mpl/set/aux_/numbered.hpp +0 -48
- data/ext/boost/mpl/set/aux_/numbered_c.hpp +0 -48
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10.hpp +0 -140
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp +0 -145
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20.hpp +0 -168
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp +0 -154
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30.hpp +0 -195
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp +0 -164
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40.hpp +0 -221
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp +0 -174
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50.hpp +0 -250
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp +0 -184
- data/ext/boost/mpl/set/aux_/set0.hpp +0 -69
- data/ext/boost/mpl/set/aux_/size_impl.hpp +0 -33
- data/ext/boost/mpl/set/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/set/aux_/value_type_impl.hpp +0 -34
- data/ext/boost/mpl/set/set0.hpp +0 -35
- data/ext/boost/mpl/set/set0_c.hpp +0 -32
- data/ext/boost/mpl/set/set10.hpp +0 -44
- data/ext/boost/mpl/set/set10_c.hpp +0 -45
- data/ext/boost/mpl/set/set20.hpp +0 -44
- data/ext/boost/mpl/set/set20_c.hpp +0 -45
- data/ext/boost/mpl/set/set30.hpp +0 -44
- data/ext/boost/mpl/set/set30_c.hpp +0 -45
- data/ext/boost/mpl/set/set40.hpp +0 -44
- data/ext/boost/mpl/set/set40_c.hpp +0 -45
- data/ext/boost/mpl/set/set50.hpp +0 -44
- data/ext/boost/mpl/set/set50_c.hpp +0 -45
- data/ext/boost/mpl/set_c.hpp +0 -60
- data/ext/boost/mpl/shift_left.hpp +0 -22
- data/ext/boost/mpl/shift_right.hpp +0 -22
- data/ext/boost/mpl/single_view.hpp +0 -38
- data/ext/boost/mpl/size.hpp +0 -42
- data/ext/boost/mpl/size_fwd.hpp +0 -24
- data/ext/boost/mpl/sizeof.hpp +0 -36
- data/ext/boost/mpl/sort.hpp +0 -27
- data/ext/boost/mpl/stable_partition.hpp +0 -75
- data/ext/boost/mpl/switch.hpp +0 -49
- data/ext/boost/mpl/tag.hpp +0 -52
- data/ext/boost/mpl/times.hpp +0 -21
- data/ext/boost/mpl/transform.hpp +0 -145
- data/ext/boost/mpl/transform_view.hpp +0 -46
- data/ext/boost/mpl/unique.hpp +0 -85
- data/ext/boost/mpl/unpack_args.hpp +0 -146
- data/ext/boost/mpl/upper_bound.hpp +0 -141
- data/ext/boost/mpl/value_type.hpp +0 -42
- data/ext/boost/mpl/value_type_fwd.hpp +0 -25
- data/ext/boost/mpl/vector.hpp +0 -57
- data/ext/boost/mpl/vector/aux_/O1_size.hpp +0 -56
- data/ext/boost/mpl/vector/aux_/at.hpp +0 -116
- data/ext/boost/mpl/vector/aux_/back.hpp +0 -59
- data/ext/boost/mpl/vector/aux_/begin_end.hpp +0 -49
- data/ext/boost/mpl/vector/aux_/clear.hpp +0 -55
- data/ext/boost/mpl/vector/aux_/empty.hpp +0 -68
- data/ext/boost/mpl/vector/aux_/front.hpp +0 -56
- data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +0 -55
- data/ext/boost/mpl/vector/aux_/item.hpp +0 -103
- data/ext/boost/mpl/vector/aux_/iterator.hpp +0 -130
- data/ext/boost/mpl/vector/aux_/numbered.hpp +0 -218
- data/ext/boost/mpl/vector/aux_/numbered_c.hpp +0 -77
- data/ext/boost/mpl/vector/aux_/pop_back.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/pop_front.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp +0 -1528
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp +0 -149
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp +0 -1804
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp +0 -195
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp +0 -2124
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp +0 -238
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp +0 -2444
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp +0 -281
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp +0 -2764
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp +0 -325
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +0 -829
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp +0 -149
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +0 -1144
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp +0 -195
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp +0 -1464
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp +0 -238
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp +0 -1784
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp +0 -281
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp +0 -2104
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp +0 -325
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +0 -139
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp +0 -154
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +0 -159
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp +0 -163
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp +0 -179
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp +0 -173
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp +0 -199
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp +0 -183
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp +0 -219
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp +0 -193
- data/ext/boost/mpl/vector/aux_/push_back.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/push_front.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/size.hpp +0 -49
- data/ext/boost/mpl/vector/aux_/tag.hpp +0 -32
- data/ext/boost/mpl/vector/aux_/vector0.hpp +0 -52
- data/ext/boost/mpl/vector/vector0.hpp +0 -34
- data/ext/boost/mpl/vector/vector0_c.hpp +0 -31
- data/ext/boost/mpl/vector/vector10.hpp +0 -45
- data/ext/boost/mpl/vector/vector10_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector20.hpp +0 -45
- data/ext/boost/mpl/vector/vector20_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector30.hpp +0 -45
- data/ext/boost/mpl/vector/vector30_c.hpp +0 -47
- data/ext/boost/mpl/vector/vector40.hpp +0 -45
- data/ext/boost/mpl/vector/vector40_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector50.hpp +0 -45
- data/ext/boost/mpl/vector/vector50_c.hpp +0 -46
- data/ext/boost/mpl/vector_c.hpp +0 -60
- data/ext/boost/mpl/zip_view.hpp +0 -64
- data/ext/boost/optional/optional_io.hpp +0 -84
- data/ext/boost/preprocessor/arithmetic.hpp +0 -25
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +0 -61
- data/ext/boost/preprocessor/arithmetic/div.hpp +0 -39
- data/ext/boost/preprocessor/arithmetic/mod.hpp +0 -39
- data/ext/boost/preprocessor/arithmetic/mul.hpp +0 -53
- data/ext/boost/preprocessor/array.hpp +0 -27
- data/ext/boost/preprocessor/array/insert.hpp +0 -55
- data/ext/boost/preprocessor/array/pop_back.hpp +0 -37
- data/ext/boost/preprocessor/array/pop_front.hpp +0 -38
- data/ext/boost/preprocessor/array/push_back.hpp +0 -33
- data/ext/boost/preprocessor/array/push_front.hpp +0 -33
- data/ext/boost/preprocessor/array/remove.hpp +0 -54
- data/ext/boost/preprocessor/array/replace.hpp +0 -49
- data/ext/boost/preprocessor/array/reverse.hpp +0 -29
- data/ext/boost/preprocessor/assert_msg.hpp +0 -17
- data/ext/boost/preprocessor/comma.hpp +0 -17
- data/ext/boost/preprocessor/comparison.hpp +0 -24
- data/ext/boost/preprocessor/comparison/equal.hpp +0 -34
- data/ext/boost/preprocessor/comparison/greater.hpp +0 -38
- data/ext/boost/preprocessor/comparison/greater_equal.hpp +0 -38
- data/ext/boost/preprocessor/comparison/less.hpp +0 -46
- data/ext/boost/preprocessor/comparison/less_equal.hpp +0 -39
- data/ext/boost/preprocessor/comparison/not_equal.hpp +0 -814
- data/ext/boost/preprocessor/config/limits.hpp +0 -29
- data/ext/boost/preprocessor/control.hpp +0 -22
- data/ext/boost/preprocessor/control/deduce_d.hpp +0 -22
- data/ext/boost/preprocessor/control/detail/dmc/while.hpp +0 -536
- data/ext/boost/preprocessor/control/detail/edg/while.hpp +0 -534
- data/ext/boost/preprocessor/control/detail/msvc/while.hpp +0 -277
- data/ext/boost/preprocessor/control/expr_if.hpp +0 -30
- data/ext/boost/preprocessor/debug.hpp +0 -18
- data/ext/boost/preprocessor/debug/assert.hpp +0 -44
- data/ext/boost/preprocessor/debug/line.hpp +0 -35
- data/ext/boost/preprocessor/dec.hpp +0 -17
- data/ext/boost/preprocessor/detail/dmc/auto_rec.hpp +0 -286
- data/ext/boost/preprocessor/detail/is_nullary.hpp +0 -30
- data/ext/boost/preprocessor/detail/is_unary.hpp +0 -30
- data/ext/boost/preprocessor/detail/null.hpp +0 -17
- data/ext/boost/preprocessor/detail/split.hpp +0 -35
- data/ext/boost/preprocessor/enum_params_with_a_default.hpp +0 -17
- data/ext/boost/preprocessor/enum_params_with_defaults.hpp +0 -17
- data/ext/boost/preprocessor/enum_shifted.hpp +0 -17
- data/ext/boost/preprocessor/enum_shifted_params.hpp +0 -17
- data/ext/boost/preprocessor/expand.hpp +0 -17
- data/ext/boost/preprocessor/expr_if.hpp +0 -17
- data/ext/boost/preprocessor/facilities.hpp +0 -21
- data/ext/boost/preprocessor/facilities/apply.hpp +0 -34
- data/ext/boost/preprocessor/facilities/expand.hpp +0 -28
- data/ext/boost/preprocessor/facilities/intercept.hpp +0 -277
- data/ext/boost/preprocessor/facilities/is_1.hpp +0 -23
- data/ext/boost/preprocessor/facilities/is_empty.hpp +0 -43
- data/ext/boost/preprocessor/facilities/is_empty_or_1.hpp +0 -30
- data/ext/boost/preprocessor/for.hpp +0 -17
- data/ext/boost/preprocessor/if.hpp +0 -17
- data/ext/boost/preprocessor/iteration.hpp +0 -19
- data/ext/boost/preprocessor/iteration/detail/bounds/lower2.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower3.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower4.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower5.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper2.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper3.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper4.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper5.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/finish.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/iter/forward2.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward3.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward4.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward5.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/reverse1.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse2.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse3.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse4.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse5.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/local.hpp +0 -812
- data/ext/boost/preprocessor/iteration/detail/rlocal.hpp +0 -782
- data/ext/boost/preprocessor/iteration/detail/self.hpp +0 -21
- data/ext/boost/preprocessor/iteration/detail/start.hpp +0 -99
- data/ext/boost/preprocessor/iteration/local.hpp +0 -26
- data/ext/boost/preprocessor/iteration/self.hpp +0 -19
- data/ext/boost/preprocessor/library.hpp +0 -34
- data/ext/boost/preprocessor/limits.hpp +0 -17
- data/ext/boost/preprocessor/list.hpp +0 -35
- data/ext/boost/preprocessor/list/at.hpp +0 -39
- data/ext/boost/preprocessor/list/cat.hpp +0 -42
- data/ext/boost/preprocessor/list/detail/dmc/fold_left.hpp +0 -279
- data/ext/boost/preprocessor/list/detail/edg/fold_left.hpp +0 -536
- data/ext/boost/preprocessor/list/detail/edg/fold_right.hpp +0 -794
- data/ext/boost/preprocessor/list/enum.hpp +0 -41
- data/ext/boost/preprocessor/list/filter.hpp +0 -54
- data/ext/boost/preprocessor/list/first_n.hpp +0 -58
- data/ext/boost/preprocessor/list/for_each.hpp +0 -49
- data/ext/boost/preprocessor/list/for_each_product.hpp +0 -141
- data/ext/boost/preprocessor/list/rest_n.hpp +0 -55
- data/ext/boost/preprocessor/list/size.hpp +0 -58
- data/ext/boost/preprocessor/list/to_tuple.hpp +0 -38
- data/ext/boost/preprocessor/logical.hpp +0 -29
- data/ext/boost/preprocessor/logical/bitnor.hpp +0 -38
- data/ext/boost/preprocessor/logical/bitor.hpp +0 -38
- data/ext/boost/preprocessor/logical/bitxor.hpp +0 -38
- data/ext/boost/preprocessor/logical/nor.hpp +0 -30
- data/ext/boost/preprocessor/logical/not.hpp +0 -30
- data/ext/boost/preprocessor/logical/or.hpp +0 -30
- data/ext/boost/preprocessor/logical/xor.hpp +0 -30
- data/ext/boost/preprocessor/max.hpp +0 -17
- data/ext/boost/preprocessor/min.hpp +0 -17
- data/ext/boost/preprocessor/punctuation.hpp +0 -20
- data/ext/boost/preprocessor/punctuation/paren.hpp +0 -23
- data/ext/boost/preprocessor/punctuation/paren_if.hpp +0 -38
- data/ext/boost/preprocessor/repeat_2nd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_3rd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to_2nd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to_3rd.hpp +0 -17
- data/ext/boost/preprocessor/repetition.hpp +0 -32
- data/ext/boost/preprocessor/repetition/deduce_r.hpp +0 -22
- data/ext/boost/preprocessor/repetition/deduce_z.hpp +0 -22
- data/ext/boost/preprocessor/repetition/detail/dmc/for.hpp +0 -536
- data/ext/boost/preprocessor/repetition/detail/edg/for.hpp +0 -534
- data/ext/boost/preprocessor/repetition/detail/msvc/for.hpp +0 -277
- data/ext/boost/preprocessor/repetition/enum_params_with_a_default.hpp +0 -25
- data/ext/boost/preprocessor/repetition/enum_params_with_defaults.hpp +0 -24
- data/ext/boost/preprocessor/repetition/enum_shifted.hpp +0 -68
- data/ext/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +0 -51
- data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +0 -44
- data/ext/boost/preprocessor/repetition/enum_trailing.hpp +0 -63
- data/ext/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +0 -53
- data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +0 -38
- data/ext/boost/preprocessor/selection.hpp +0 -18
- data/ext/boost/preprocessor/selection/max.hpp +0 -39
- data/ext/boost/preprocessor/selection/min.hpp +0 -39
- data/ext/boost/preprocessor/seq.hpp +0 -41
- data/ext/boost/preprocessor/seq/cat.hpp +0 -48
- data/ext/boost/preprocessor/seq/detail/split.hpp +0 -284
- data/ext/boost/preprocessor/seq/filter.hpp +0 -54
- data/ext/boost/preprocessor/seq/first_n.hpp +0 -30
- data/ext/boost/preprocessor/seq/fold_left.hpp +0 -1070
- data/ext/boost/preprocessor/seq/fold_right.hpp +0 -288
- data/ext/boost/preprocessor/seq/for_each.hpp +0 -60
- data/ext/boost/preprocessor/seq/for_each_product.hpp +0 -126
- data/ext/boost/preprocessor/seq/insert.hpp +0 -28
- data/ext/boost/preprocessor/seq/pop_back.hpp +0 -29
- data/ext/boost/preprocessor/seq/pop_front.hpp +0 -27
- data/ext/boost/preprocessor/seq/push_back.hpp +0 -19
- data/ext/boost/preprocessor/seq/push_front.hpp +0 -19
- data/ext/boost/preprocessor/seq/remove.hpp +0 -29
- data/ext/boost/preprocessor/seq/replace.hpp +0 -29
- data/ext/boost/preprocessor/seq/rest_n.hpp +0 -30
- data/ext/boost/preprocessor/seq/reverse.hpp +0 -39
- data/ext/boost/preprocessor/seq/subseq.hpp +0 -28
- data/ext/boost/preprocessor/seq/to_array.hpp +0 -28
- data/ext/boost/preprocessor/seq/to_tuple.hpp +0 -27
- data/ext/boost/preprocessor/seq/transform.hpp +0 -48
- data/ext/boost/preprocessor/slot.hpp +0 -17
- data/ext/boost/preprocessor/slot/counter.hpp +0 -25
- data/ext/boost/preprocessor/slot/detail/counter.hpp +0 -269
- data/ext/boost/preprocessor/slot/detail/slot1.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot2.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot3.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot4.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot5.hpp +0 -267
- data/ext/boost/preprocessor/tuple.hpp +0 -24
- data/ext/boost/preprocessor/tuple/reverse.hpp +0 -62
- data/ext/boost/preprocessor/tuple/to_seq.hpp +0 -60
- data/ext/boost/preprocessor/while.hpp +0 -17
- data/ext/boost/preprocessor/wstringize.hpp +0 -29
- data/ext/boost/src/barrier.cpp +0 -42
- data/ext/boost/src/condition.cpp +0 -692
- data/ext/boost/src/exceptions.cpp +0 -147
- data/ext/boost/src/mutex.cpp +0 -561
- data/ext/boost/src/mutex.inl +0 -128
- data/ext/boost/src/once.cpp +0 -213
- data/ext/boost/src/recursive_mutex.cpp +0 -1040
- data/ext/boost/src/thread.cpp +0 -371
- data/ext/boost/src/timeconv.inl +0 -130
- data/ext/boost/src/tss.cpp +0 -251
- data/ext/boost/src/tss_hooks.cpp +0 -212
- data/ext/boost/src/tss_pe.cpp +0 -179
- data/ext/boost/src/xtime.cpp +0 -158
- data/ext/boost/thread/barrier.hpp +0 -44
- data/ext/boost/thread/detail/force_cast.hpp +0 -39
- data/ext/boost/thread/detail/lock.hpp +0 -209
- data/ext/boost/thread/detail/read_write_lock.hpp +0 -1106
- data/ext/boost/thread/detail/singleton.hpp +0 -59
- data/ext/boost/thread/detail/tss_hooks.hpp +0 -78
- data/ext/boost/type_traits/add_cv.hpp +0 -48
- data/ext/boost/type_traits/add_volatile.hpp +0 -47
- data/ext/boost/type_traits/aligned_storage.hpp +0 -13
- data/ext/boost/type_traits/alignment_traits.hpp +0 -15
- data/ext/boost/type_traits/arithmetic_traits.hpp +0 -20
- data/ext/boost/type_traits/array_traits.hpp +0 -15
- data/ext/boost/type_traits/cv_traits.hpp +0 -24
- data/ext/boost/type_traits/decay.hpp +0 -44
- data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +0 -654
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +0 -2759
- data/ext/boost/type_traits/detail/wrap.hpp +0 -18
- data/ext/boost/type_traits/extent.hpp +0 -134
- data/ext/boost/type_traits/has_nothrow_assign.hpp +0 -38
- data/ext/boost/type_traits/has_nothrow_constructor.hpp +0 -38
- data/ext/boost/type_traits/has_nothrow_destructor.hpp +0 -25
- data/ext/boost/type_traits/has_trivial_assign.hpp +0 -50
- data/ext/boost/type_traits/has_trivial_constructor.hpp +0 -42
- data/ext/boost/type_traits/has_trivial_destructor.hpp +0 -42
- data/ext/boost/type_traits/has_virtual_destructor.hpp +0 -25
- data/ext/boost/type_traits/is_base_and_derived.hpp +0 -223
- data/ext/boost/type_traits/is_base_of.hpp +0 -40
- data/ext/boost/type_traits/is_compound.hpp +0 -40
- data/ext/boost/type_traits/is_empty.hpp +0 -211
- data/ext/boost/type_traits/is_floating_point.hpp +0 -27
- data/ext/boost/type_traits/is_fundamental.hpp +0 -41
- data/ext/boost/type_traits/is_member_object_pointer.hpp +0 -46
- data/ext/boost/type_traits/is_object.hpp +0 -53
- data/ext/boost/type_traits/is_polymorphic.hpp +0 -102
- data/ext/boost/type_traits/is_signed.hpp +0 -117
- data/ext/boost/type_traits/is_stateless.hpp +0 -48
- data/ext/boost/type_traits/is_unsigned.hpp +0 -114
- data/ext/boost/type_traits/msvc/remove_all_extents.hpp +0 -47
- data/ext/boost/type_traits/msvc/remove_bounds.hpp +0 -43
- data/ext/boost/type_traits/msvc/remove_const.hpp +0 -143
- data/ext/boost/type_traits/msvc/remove_cv.hpp +0 -190
- data/ext/boost/type_traits/msvc/remove_extent.hpp +0 -43
- data/ext/boost/type_traits/msvc/remove_pointer.hpp +0 -42
- data/ext/boost/type_traits/msvc/remove_reference.hpp +0 -42
- data/ext/boost/type_traits/msvc/remove_volatile.hpp +0 -143
- data/ext/boost/type_traits/msvc/typeof.hpp +0 -50
- data/ext/boost/type_traits/object_traits.hpp +0 -33
- data/ext/boost/type_traits/rank.hpp +0 -81
- data/ext/boost/type_traits/reference_traits.hpp +0 -15
- data/ext/boost/type_traits/remove_all_extents.hpp +0 -48
- data/ext/boost/type_traits/remove_bounds.hpp +0 -48
- data/ext/boost/type_traits/remove_extent.hpp +0 -48
- data/ext/boost/type_traits/remove_volatile.hpp +0 -77
- data/ext/boost/type_traits/same_traits.hpp +0 -15
- data/ext/boost/type_traits/transform_traits.hpp +0 -21
- data/ext/boost/type_traits/transform_traits_spec.hpp +0 -14
- data/ext/boost/utility/in_place_factory.hpp +0 -58
- data/ext/boost/utility/result_of.hpp +0 -66
- data/ext/boost/utility/typed_in_place_factory.hpp +0 -57
- data/ext/boost/utility/value_init.hpp +0 -77
- data/lib/passenger/application_spawner.rb +0 -329
- data/lib/passenger/cgi_fixed.rb +0 -66
- data/lib/passenger/framework_spawner.rb +0 -351
- data/lib/passenger/request_handler.rb +0 -333
- data/lib/passenger/templates/apache_must_be_compiled_with_prefork_mpm.txt.erb +0 -8
- data/test/abstract_server_spec.rb +0 -17
- data/test/application_spawner_spec.rb +0 -80
- data/test/application_spec.rb +0 -25
- data/test/framework_spawner_spec.rb +0 -101
- data/test/message_channel_spec.rb +0 -171
- data/test/minimal_spawner_spec.rb +0 -19
- data/test/spawn_manager_spec.rb +0 -107
- data/test/spawn_server_spec.rb +0 -25
- data/test/spawner_error_handling_spec.rb +0 -35
- data/test/spawner_privilege_lowering_spec.rb +0 -72
- data/test/stub/broken-railsapp/config/environment.rb +0 -2
- data/test/stub/broken-railsapp2/config/environment.rb +0 -3
- data/test/stub/broken-railsapp3/config/environment.rb +0 -4
- data/test/stub/broken-railsapp4/config/environment.rb +0 -1
- data/test/stub/broken-railsapp5/config/environment.rb +0 -1
- data/test/stub/broken-railsapp5/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/railties/lib/initializer.rb +0 -9
- data/test/stub/mycook/app/controllers/welcome_controller.rb +0 -23
- data/test/stub/railsapp-without-version-spec/app/controllers/foo_controller.rb +0 -5
- data/test/stub/railsapp-without-version-spec/config/environment.rb +0 -58
- data/test/support/apache2_config_writer.rb +0 -44
@@ -4,100 +4,133 @@
|
|
4
4
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
5
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
8
|
-
<div class="
|
9
|
-
<
|
10
|
-
<
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
</
|
7
|
+
<!-- Generated by Doxygen 1.5.5 -->
|
8
|
+
<div class="navigation" id="top">
|
9
|
+
<div class="tabs">
|
10
|
+
<ul>
|
11
|
+
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
|
+
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
+
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
|
+
<li><a href="annotated.html"><span>Classes</span></a></li>
|
15
|
+
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
16
18
|
<h1>Logging.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
17
19
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
18
20
|
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
|
19
21
|
<a name="l00004"></a>00004 <span class="comment"> *</span>
|
20
|
-
<a name="l00005"></a>00005 <span class="comment"> *
|
21
|
-
<a name="l00006"></a>00006 <span class="comment">
|
22
|
-
<a name="l00007"></a>00007 <span class="comment"> *
|
23
|
-
<a name="l00008"></a>00008 <span class="comment">
|
24
|
-
<a name="l00009"></a>00009 <span class="comment"> *
|
25
|
-
<a name="l00010"></a>00010 <span class="comment">
|
26
|
-
<a name="l00011"></a>00011 <span class="comment"> *
|
27
|
-
<a name="l00012"></a>00012 <span class="comment"> *
|
28
|
-
<a name="l00013"></a>00013 <span class="comment">
|
29
|
-
<a name="l00014"></a>00014 <span class="comment"> *
|
30
|
-
<a name="l00015"></a>00015 <span class="comment">
|
31
|
-
<a name="l00016"></a>00016 <span class="comment"> *
|
32
|
-
<a name="l00017"></a>00017 <span class="comment">
|
33
|
-
<a name="l00018"></a>00018 <span class="
|
34
|
-
<a name="l00019"></a>00019 <span class="
|
35
|
-
<a name="l00020"></a>00020 <span class="preprocessor"
|
36
|
-
<a name="l00021"></a>00021 <span class="preprocessor">#
|
37
|
-
<a name="l00022"></a>00022 <span class="preprocessor"
|
38
|
-
<a name="l00023"></a>00023 <span class="preprocessor">#include <
|
39
|
-
<a name="l00024"></a>00024
|
40
|
-
<a name="l00025"></a>00025 <span class="
|
41
|
-
<a name="l00026"></a>00026
|
42
|
-
<a name="l00027"></a>00027 <span class="
|
22
|
+
<a name="l00005"></a>00005 <span class="comment"> * Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.</span>
|
23
|
+
<a name="l00006"></a>00006 <span class="comment"> *</span>
|
24
|
+
<a name="l00007"></a>00007 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
|
25
|
+
<a name="l00008"></a>00008 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
|
26
|
+
<a name="l00009"></a>00009 <span class="comment"> * the Free Software Foundation; version 2 of the License.</span>
|
27
|
+
<a name="l00010"></a>00010 <span class="comment"> *</span>
|
28
|
+
<a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
|
29
|
+
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
30
|
+
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
31
|
+
<a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
|
32
|
+
<a name="l00015"></a>00015 <span class="comment"> *</span>
|
33
|
+
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License along</span>
|
34
|
+
<a name="l00017"></a>00017 <span class="comment"> * with this program; if not, write to the Free Software Foundation, Inc.,</span>
|
35
|
+
<a name="l00018"></a>00018 <span class="comment"> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span>
|
36
|
+
<a name="l00019"></a>00019 <span class="comment"> */</span>
|
37
|
+
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef _PASSENGER_LOGGING_H_</span>
|
38
|
+
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_LOGGING_H_</span>
|
39
|
+
<a name="l00022"></a>00022 <span class="preprocessor"></span>
|
40
|
+
<a name="l00023"></a>00023 <span class="preprocessor">#include <sys/types.h></span>
|
41
|
+
<a name="l00024"></a>00024 <span class="preprocessor">#include <sys/time.h></span>
|
42
|
+
<a name="l00025"></a>00025 <span class="preprocessor">#include <unistd.h></span>
|
43
|
+
<a name="l00026"></a>00026 <span class="preprocessor">#include <ostream></span>
|
44
|
+
<a name="l00027"></a>00027 <span class="preprocessor">#include <ctime></span>
|
43
45
|
<a name="l00028"></a>00028
|
44
|
-
<a name="l00029"></a>00029 <span class="keyword">
|
45
|
-
<a name="l00030"></a>00030
|
46
|
-
<a name="l00031"></a>00031 <span class="keyword">
|
46
|
+
<a name="l00029"></a>00029 <span class="keyword">namespace </span>Passenger {
|
47
|
+
<a name="l00030"></a>00030
|
48
|
+
<a name="l00031"></a>00031 <span class="keyword">using namespace </span>std;
|
47
49
|
<a name="l00032"></a>00032
|
48
|
-
<a name="l00033"></a>00033 <span class="
|
49
|
-
<a name="l00034"></a>00034 <span class="
|
50
|
-
<a name="l00035"></a>00035 <span class="
|
51
|
-
<a name="l00036"></a>00036
|
52
|
-
<a name="l00037"></a>00037 <span class="
|
53
|
-
<a name="l00038"></a>00038 <span class="
|
54
|
-
<a name="l00039"></a>00039 <span class="
|
55
|
-
<a name="l00040"></a>00040 <span class="
|
56
|
-
<a name="l00041"></a>00041 <span class="
|
57
|
-
<a name="l00042"></a>00042 <span class="
|
58
|
-
<a name="l00043"></a>00043 <span class="
|
59
|
-
<a name="l00044"></a>00044 <span class="preprocessor"
|
60
|
-
<a name="l00045"></a>00045 <span class="preprocessor">
|
61
|
-
<a name="l00046"></a>00046 <span class="preprocessor"
|
62
|
-
<a name="l00047"></a>00047 <span class="
|
63
|
-
<a name="l00048"></a>00048 <span class="
|
64
|
-
<a name="l00049"></a>00049 <span class="
|
65
|
-
<a name="l00050"></a>00050 <span class="
|
66
|
-
<a name="l00051"></a>00051 <span class="preprocessor"
|
67
|
-
<a name="l00052"></a>00052 <span class="preprocessor"
|
68
|
-
<a name="l00053"></a>00053 <span class="
|
69
|
-
<a name="l00054"></a>00054 <span class="
|
70
|
-
<a name="l00055"></a>00055 <span class="
|
71
|
-
<a name="l00056"></a>00056 <span class="
|
72
|
-
<a name="l00057"></a>00057 <span class="preprocessor"
|
73
|
-
<a name="l00058"></a>00058 <span class="preprocessor"
|
74
|
-
<a name="l00059"></a>00059 <span class="comment"
|
75
|
-
<a name="l00060"></a>00060 <span class="comment"
|
76
|
-
<a name="l00061"></a>00061 <span class="comment"> *
|
77
|
-
<a name="l00062"></a>00062 <span class="comment">
|
78
|
-
<a name="l00063"></a>00063 <span class="
|
79
|
-
<a name="l00064"></a>00064 <span class="preprocessor"
|
80
|
-
<a name="l00065"></a>00065 <span class="preprocessor"
|
81
|
-
<a name="l00066"></a>00066 <span class="
|
82
|
-
<a name="l00067"></a>00067 <span class="
|
83
|
-
<a name="l00068"></a>00068 <span class="
|
84
|
-
<a name="l00069"></a>00069 <span class="
|
85
|
-
<a name="l00070"></a>00070 <span class="preprocessor"
|
86
|
-
<a name="l00071"></a>00071 <span class="preprocessor"
|
87
|
-
<a name="l00072"></a>00072 <span class="
|
88
|
-
<a name="l00073"></a>00073 <span class="
|
89
|
-
<a name="l00074"></a>00074 <span class="
|
90
|
-
<a name="l00075"></a>00075 <span class="
|
91
|
-
<a name="l00076"></a>00076 <span class="preprocessor"
|
92
|
-
<a name="l00077"></a>00077 <span class="preprocessor"></span
|
93
|
-
<a name="l00078"></a>00078 <span class="preprocessor">#
|
94
|
-
<a name="l00079"></a>00079 <span class="preprocessor"></span>
|
95
|
-
<a name="l00080"></a>00080
|
96
|
-
<a name="l00081"></a>00081
|
97
|
-
<a name="l00082"></a>00082 <span class="preprocessor"
|
98
|
-
<a name="l00083"></a>00083
|
99
|
-
|
50
|
+
<a name="l00033"></a>00033 <span class="keyword">extern</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _logLevel;
|
51
|
+
<a name="l00034"></a>00034 <span class="keyword">extern</span> ostream *_logStream;
|
52
|
+
<a name="l00035"></a>00035 <span class="keyword">extern</span> ostream *_debugStream;
|
53
|
+
<a name="l00036"></a>00036
|
54
|
+
<a name="l00037"></a>00037 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getLogLevel();
|
55
|
+
<a name="l00038"></a>00038 <span class="keywordtype">void</span> setLogLevel(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> value);
|
56
|
+
<a name="l00039"></a>00039 <span class="keywordtype">void</span> setDebugFile(<span class="keyword">const</span> <span class="keywordtype">char</span> *logFile = NULL);
|
57
|
+
<a name="l00040"></a>00040 <span class="comment"></span>
|
58
|
+
<a name="l00041"></a>00041 <span class="comment">/**</span>
|
59
|
+
<a name="l00042"></a>00042 <span class="comment"> * Write the given expression to the log stream.</span>
|
60
|
+
<a name="l00043"></a>00043 <span class="comment"> */</span>
|
61
|
+
<a name="l00044"></a>00044 <span class="preprocessor">#define P_LOG(expr) \</span>
|
62
|
+
<a name="l00045"></a>00045 <span class="preprocessor"> do { \</span>
|
63
|
+
<a name="l00046"></a>00046 <span class="preprocessor"> if (Passenger::_logStream != 0) { \</span>
|
64
|
+
<a name="l00047"></a>00047 <span class="preprocessor"> time_t the_time = time(NULL); \</span>
|
65
|
+
<a name="l00048"></a>00048 <span class="preprocessor"> struct tm *the_tm = localtime(&the_time); \</span>
|
66
|
+
<a name="l00049"></a>00049 <span class="preprocessor"> char datetime_buf[60]; \</span>
|
67
|
+
<a name="l00050"></a>00050 <span class="preprocessor"> struct timeval tv; \</span>
|
68
|
+
<a name="l00051"></a>00051 <span class="preprocessor"> strftime(datetime_buf, sizeof(datetime_buf), "%x %H:%M:%S", the_tm); \</span>
|
69
|
+
<a name="l00052"></a>00052 <span class="preprocessor"> gettimeofday(&tv, NULL); \</span>
|
70
|
+
<a name="l00053"></a>00053 <span class="preprocessor"> *Passenger::_logStream << \</span>
|
71
|
+
<a name="l00054"></a>00054 <span class="preprocessor"> "[ pid=" << getpid() << " file=" << __FILE__ << ":" << __LINE__ << \</span>
|
72
|
+
<a name="l00055"></a>00055 <span class="preprocessor"> " time=" << datetime_buf << "." << (tv.tv_usec / 1000) << " ]:" << \</span>
|
73
|
+
<a name="l00056"></a>00056 <span class="preprocessor"> "\n " << expr << std::endl; \</span>
|
74
|
+
<a name="l00057"></a>00057 <span class="preprocessor"> } \</span>
|
75
|
+
<a name="l00058"></a>00058 <span class="preprocessor"> } while (false)</span>
|
76
|
+
<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="comment"></span>
|
77
|
+
<a name="l00060"></a>00060 <span class="comment">/**</span>
|
78
|
+
<a name="l00061"></a>00061 <span class="comment"> * Write the given expression, which represents a warning,</span>
|
79
|
+
<a name="l00062"></a>00062 <span class="comment"> * to the log stream.</span>
|
80
|
+
<a name="l00063"></a>00063 <span class="comment"> */</span>
|
81
|
+
<a name="l00064"></a>00064 <span class="preprocessor">#define P_WARN(expr) P_LOG(expr)</span>
|
82
|
+
<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="comment"></span>
|
83
|
+
<a name="l00066"></a>00066 <span class="comment">/**</span>
|
84
|
+
<a name="l00067"></a>00067 <span class="comment"> * Write the given expression, which represents an error,</span>
|
85
|
+
<a name="l00068"></a>00068 <span class="comment"> * to the log stream.</span>
|
86
|
+
<a name="l00069"></a>00069 <span class="comment"> */</span>
|
87
|
+
<a name="l00070"></a>00070 <span class="preprocessor">#define P_ERROR(expr) P_LOG(expr)</span>
|
88
|
+
<a name="l00071"></a>00071 <span class="preprocessor"></span><span class="comment"></span>
|
89
|
+
<a name="l00072"></a>00072 <span class="comment">/**</span>
|
90
|
+
<a name="l00073"></a>00073 <span class="comment"> * Write the given expression, which represents a debugging message,</span>
|
91
|
+
<a name="l00074"></a>00074 <span class="comment"> * to the log stream.</span>
|
92
|
+
<a name="l00075"></a>00075 <span class="comment"> */</span>
|
93
|
+
<a name="l00076"></a>00076 <span class="preprocessor">#define P_DEBUG(expr) P_TRACE(1, expr)</span>
|
94
|
+
<a name="l00077"></a>00077 <span class="preprocessor"></span>
|
95
|
+
<a name="l00078"></a>00078 <span class="preprocessor">#ifdef PASSENGER_DEBUG</span>
|
96
|
+
<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor"> #define P_TRACE(level, expr) \</span>
|
97
|
+
<a name="l00080"></a>00080 <span class="preprocessor"> do { \</span>
|
98
|
+
<a name="l00081"></a>00081 <span class="preprocessor"> if (Passenger::_logLevel >= level) { \</span>
|
99
|
+
<a name="l00082"></a>00082 <span class="preprocessor"> if (Passenger::_debugStream != 0) { \</span>
|
100
|
+
<a name="l00083"></a>00083 <span class="preprocessor"> time_t the_time = time(NULL); \</span>
|
101
|
+
<a name="l00084"></a>00084 <span class="preprocessor"> struct tm *the_tm = localtime(&the_time); \</span>
|
102
|
+
<a name="l00085"></a>00085 <span class="preprocessor"> char datetime_buf[60]; \</span>
|
103
|
+
<a name="l00086"></a>00086 <span class="preprocessor"> struct timeval tv; \</span>
|
104
|
+
<a name="l00087"></a>00087 <span class="preprocessor"> strftime(datetime_buf, sizeof(datetime_buf), "%x %H:%M:%S", the_tm); \</span>
|
105
|
+
<a name="l00088"></a>00088 <span class="preprocessor"> gettimeofday(&tv, NULL); \</span>
|
106
|
+
<a name="l00089"></a>00089 <span class="preprocessor"> *Passenger::_debugStream << \</span>
|
107
|
+
<a name="l00090"></a>00090 <span class="preprocessor"> "[ pid=" << getpid() << " file=" << __FILE__ << ":" << __LINE__ << \</span>
|
108
|
+
<a name="l00091"></a>00091 <span class="preprocessor"> " time=" << datetime_buf << "." << (tv.tv_usec / 1000) << " ]:" << \</span>
|
109
|
+
<a name="l00092"></a>00092 <span class="preprocessor"> "\n " << expr << std::endl; \</span>
|
110
|
+
<a name="l00093"></a>00093 <span class="preprocessor"> } \</span>
|
111
|
+
<a name="l00094"></a>00094 <span class="preprocessor"> } \</span>
|
112
|
+
<a name="l00095"></a>00095 <span class="preprocessor"> } while (false)</span>
|
113
|
+
<a name="l00096"></a>00096 <span class="preprocessor"></span>
|
114
|
+
<a name="l00097"></a>00097 <span class="preprocessor"> #define P_ASSERT(expr, result_if_failed, message) \</span>
|
115
|
+
<a name="l00098"></a>00098 <span class="preprocessor"> do { \</span>
|
116
|
+
<a name="l00099"></a>00099 <span class="preprocessor"> if (!(expr)) { \</span>
|
117
|
+
<a name="l00100"></a>00100 <span class="preprocessor"> P_ERROR("Assertion failed: " << message); \</span>
|
118
|
+
<a name="l00101"></a>00101 <span class="preprocessor"> return result_if_failed; \</span>
|
119
|
+
<a name="l00102"></a>00102 <span class="preprocessor"> } \</span>
|
120
|
+
<a name="l00103"></a>00103 <span class="preprocessor"> } while (false)</span>
|
121
|
+
<a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor">#else</span>
|
122
|
+
<a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor"> #define P_TRACE(level, expr) do { </span><span class="comment">/* nothing */</span> } while (false)
|
123
|
+
<a name="l00106"></a>00106
|
124
|
+
<a name="l00107"></a>00107 <span class="preprocessor"> #define P_ASSERT(expr, result_if_failed, message) do { </span><span class="comment">/* nothing */</span> } while (false)
|
125
|
+
<a name="l00108"></a>00108 <span class="preprocessor">#endif</span>
|
126
|
+
<a name="l00109"></a>00109 <span class="preprocessor"></span>
|
127
|
+
<a name="l00110"></a>00110 } <span class="comment">// namespace Passenger</span>
|
128
|
+
<a name="l00111"></a>00111
|
129
|
+
<a name="l00112"></a>00112 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_LOGGING_H_ */</span>
|
130
|
+
<a name="l00113"></a>00113
|
131
|
+
</pre></div></div>
|
132
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:42 2008 for Passenger by
|
100
133
|
<a href="http://www.doxygen.org/index.html">
|
101
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
134
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
102
135
|
</body>
|
103
136
|
</html>
|
@@ -4,502 +4,521 @@
|
|
4
4
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
5
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
8
|
-
<div class="
|
9
|
-
<
|
10
|
-
<
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
</
|
7
|
+
<!-- Generated by Doxygen 1.5.5 -->
|
8
|
+
<div class="navigation" id="top">
|
9
|
+
<div class="tabs">
|
10
|
+
<ul>
|
11
|
+
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
|
+
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
+
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
|
+
<li><a href="annotated.html"><span>Classes</span></a></li>
|
15
|
+
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
16
18
|
<h1>MessageChannel.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
17
19
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
18
20
|
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
|
19
21
|
<a name="l00004"></a>00004 <span class="comment"> *</span>
|
20
|
-
<a name="l00005"></a>00005 <span class="comment"> *
|
21
|
-
<a name="l00006"></a>00006 <span class="comment">
|
22
|
-
<a name="l00007"></a>00007 <span class="comment"> *
|
23
|
-
<a name="l00008"></a>00008 <span class="comment">
|
24
|
-
<a name="l00009"></a>00009 <span class="comment"> *
|
25
|
-
<a name="l00010"></a>00010 <span class="comment">
|
26
|
-
<a name="l00011"></a>00011 <span class="comment"> *
|
27
|
-
<a name="l00012"></a>00012 <span class="comment"> *
|
28
|
-
<a name="l00013"></a>00013 <span class="comment">
|
29
|
-
<a name="l00014"></a>00014 <span class="comment"> *
|
30
|
-
<a name="l00015"></a>00015 <span class="comment">
|
31
|
-
<a name="l00016"></a>00016 <span class="comment"> *
|
32
|
-
<a name="l00017"></a>00017 <span class="comment">
|
33
|
-
<a name="l00018"></a>00018 <span class="
|
34
|
-
<a name="l00019"></a>00019 <span class="
|
35
|
-
<a name="l00020"></a>00020 <span class="preprocessor"
|
36
|
-
<a name="l00021"></a>00021 <span class="preprocessor">#
|
37
|
-
<a name="l00022"></a>00022 <span class="preprocessor"
|
38
|
-
<a name="l00023"></a>00023 <span class="preprocessor">#include <
|
39
|
-
<a name="l00024"></a>00024 <span class="preprocessor">#include <
|
40
|
-
<a name="l00025"></a>00025
|
41
|
-
<a name="l00026"></a>00026 <span class="preprocessor">#include <
|
42
|
-
<a name="l00027"></a>00027
|
43
|
-
<a name="l00028"></a>00028 <span class="preprocessor">#include <
|
44
|
-
<a name="l00029"></a>00029 <span class="preprocessor">#include <
|
45
|
-
<a name="l00030"></a>00030 <span class="preprocessor">#include <
|
46
|
-
<a name="l00031"></a>00031 <span class="preprocessor">#include <
|
47
|
-
<a name="l00032"></a>00032
|
48
|
-
<a name="l00033"></a>00033 <span class="preprocessor">#include
|
49
|
-
<a name="l00034"></a>00034
|
50
|
-
<a name="l00035"></a>00035
|
51
|
-
<a name="l00036"></a>00036 <span class="
|
52
|
-
<a name="l00037"></a>00037
|
53
|
-
<a name="l00038"></a>00038
|
54
|
-
<a name="l00039"></a>00039 <span class="
|
55
|
-
<a name="l00040"></a>00040
|
56
|
-
<a name="l00041"></a>00041 <span class="
|
57
|
-
<a name="l00042"></a>00042 <span class="comment"
|
58
|
-
<a name="l00043"></a>00043 <span class="comment"
|
59
|
-
<a name="l00044"></a>00044 <span class="comment"> *
|
60
|
-
<a name="l00045"></a>00045 <span class="comment">
|
61
|
-
<a name="l00046"></a>00046 <span class="comment"> *
|
62
|
-
<a name="l00047"></a>00047 <span class="comment"> *
|
63
|
-
<a name="l00048"></a>00048 <span class="comment">
|
64
|
-
<a name="l00049"></a>00049 <span class="comment"> *
|
65
|
-
<a name="l00050"></a>00050 <span class="comment"> *
|
66
|
-
<a name="l00051"></a>00051 <span class="comment">
|
67
|
-
<a name="l00052"></a>00052 <span class="comment"> *
|
68
|
-
<a name="l00053"></a>00053 <span class="comment"> *
|
69
|
-
<a name="l00054"></a>00054 <span class="comment"> *
|
70
|
-
<a name="l00055"></a>00055 <span class="comment"> *
|
71
|
-
<a name="l00056"></a>00056 <span class="comment"> *
|
72
|
-
<a name="l00057"></a>00057 <span class="comment"> *
|
73
|
-
<a name="l00058"></a>00058 <span class="comment">
|
74
|
-
<a name="l00059"></a>00059 <span class="comment"> *
|
75
|
-
<a name="l00060"></a>00060 <span class="comment"> *
|
76
|
-
<a name="l00061"></a>00061 <span class="comment">
|
77
|
-
<a name="l00062"></a>00062 <span class="comment"> *
|
78
|
-
<a name="l00063"></a>00063 <span class="comment"> *
|
79
|
-
<a name="l00064"></a>00064 <span class="comment"> *
|
80
|
-
<a name="l00065"></a>00065 <span class="comment"> *
|
81
|
-
<a name="l00066"></a>00066 <span class="comment"> *
|
82
|
-
<a name="l00067"></a>00067 <span class="comment"> * channel2
|
83
|
-
<a name="l00068"></a>00068 <span class="comment"> *
|
84
|
-
<a name="l00069"></a>00069 <span class="comment"> *
|
85
|
-
<a name="l00070"></a>00070 <span class="comment">
|
86
|
-
<a name="l00071"></a>00071 <span class="comment"> *
|
87
|
-
<a name="l00072"></a>00072 <span class="comment"> *
|
88
|
-
<a name="l00073"></a>00073 <span class="comment">
|
89
|
-
<a name="l00074"></a>00074 <span class="comment"> *
|
90
|
-
<a name="l00075"></a>00075 <span class="comment"> *
|
91
|
-
<a name="l00076"></a>00076 <span class="comment">
|
92
|
-
<a name="l00077"></a>00077 <span class="comment"> *
|
93
|
-
<a name="l00078"></a>00078 <span class="comment"> *
|
94
|
-
<a name="l00079"></a>00079 <span class="comment">
|
95
|
-
<a name="l00080"></a>00080 <span class="comment"> *
|
96
|
-
<a name="l00081"></a>00081 <span class="comment">
|
97
|
-
<a name="l00082"></a>00082 <span class="comment"> *
|
98
|
-
<a name="l00083"></a>00083 <span class="comment"> *
|
99
|
-
<a name="l00084"></a>00084 <span class="comment">
|
100
|
-
<a name="l00085"></a>00085 <span class="comment"> *
|
101
|
-
<a name="l00086"></a>00086 <span class="comment"> *
|
102
|
-
<a name="l00087"></a>00087 <span class="comment"> *
|
103
|
-
<a name="l00088"></a>00088 <span class="comment"> *
|
104
|
-
<a name="l00089"></a>00089 <span class="comment"> *
|
105
|
-
<a name="l00090"></a>00090 <span class="comment"> *
|
106
|
-
<a name="l00091"></a>00091 <span class="comment"> *
|
107
|
-
<a name="l00092"></a>00092 <span class="comment">
|
108
|
-
<a name="l00093"></a>00093 <span class="comment"> *
|
109
|
-
<a name="l00094"></a>00094 <span class="comment">
|
110
|
-
<a name="l00095"></a
|
111
|
-
<a name="l00096"></a>00096 <span class="
|
112
|
-
<a name="l00097"></a>00097
|
113
|
-
<a name="l00098"></a>00098
|
114
|
-
<a name="l00099"></a>00099
|
115
|
-
<a name="l00100"></a>00100 <span class="keyword">
|
116
|
-
<a name="l00101"></a>00101
|
117
|
-
<a name="l00102"></a>00102
|
118
|
-
<a name="l00103"></a>00103 <span class="
|
119
|
-
<a name="l00104"></a>00104 <span class="comment">
|
120
|
-
<a name="l00105"></a>00105 <span class="comment"> *
|
121
|
-
<a name="l00106"></a>00106 <span class="comment">
|
122
|
-
<a name="l00107"></a
|
123
|
-
<a name="l00108"></a>00108
|
124
|
-
<a name="l00109"></a>00109
|
125
|
-
<a name="l00110"></a>00110
|
126
|
-
<a name="l00111"></a>00111
|
127
|
-
<a name="l00112"></a>00112
|
128
|
-
<a name="l00113"></a>00113 <span class="comment"
|
129
|
-
<a name="l00114"></a
|
130
|
-
<a name="l00115"></a>00115
|
131
|
-
<a name="l00116"></a>00116
|
132
|
-
<a name="l00117"></a>00117 <span class="
|
133
|
-
<a name="l00118"></a>00118
|
134
|
-
<a name="l00119"></a>00119
|
135
|
-
<a name="l00120"></a>00120
|
136
|
-
<a name="l00121"></a>00121 <span class="comment">
|
137
|
-
<a name="l00122"></a
|
138
|
-
<a name="l00123"></a>00123
|
139
|
-
<a name="l00124"></a>00124 <
|
140
|
-
<a name="l00125"></a>00125
|
141
|
-
<a name="l00126"></a>00126
|
142
|
-
<a name="l00127"></a>00127
|
143
|
-
<a name="l00128"></a>00128
|
144
|
-
<a name="l00129"></a>00129
|
145
|
-
<a name="l00130"></a>00130
|
146
|
-
<a name="l00131"></a>00131
|
147
|
-
<a name="l00132"></a>00132 <span class="
|
148
|
-
<a name="l00133"></a>00133
|
149
|
-
<a name="l00134"></a>00134
|
150
|
-
<a name="l00135"></a>00135
|
151
|
-
<a name="l00136"></a>00136
|
152
|
-
<a name="l00137"></a>00137 <span class="comment"
|
153
|
-
<a name="l00138"></a
|
154
|
-
<a name="l00139"></a>00139
|
155
|
-
<a name="l00140"></a>00140
|
156
|
-
<a name="l00141"></a>00141
|
157
|
-
<a name="l00142"></a>00142
|
158
|
-
<a name="l00143"></a>00143
|
159
|
-
<a name="l00144"></a>00144
|
160
|
-
<a name="l00145"></a>00145
|
161
|
-
<a name="l00146"></a>00146
|
162
|
-
<a name="l00147"></a>00147
|
163
|
-
<a name="l00148"></a
|
164
|
-
<a name="l00149"></a>00149
|
165
|
-
<a name="l00150"></a>00150
|
166
|
-
<a name="l00151"></a>00151
|
167
|
-
<a name="l00152"></a>00152
|
168
|
-
<a name="l00153"></a>00153
|
169
|
-
<a name="l00154"></a>00154
|
170
|
-
<a name="l00155"></a>00155
|
171
|
-
<a name="l00156"></a>00156
|
172
|
-
<a name="l00157"></a>00157
|
173
|
-
<a name="l00158"></a>00158
|
174
|
-
<a name="l00159"></a>00159
|
175
|
-
<a name="l00160"></a>00160
|
176
|
-
<a name="l00161"></a>00161
|
177
|
-
<a name="l00162"></a>00162
|
178
|
-
<a name="l00163"></a>00163
|
179
|
-
<a name="l00164"></a>00164
|
180
|
-
<a name="l00165"></a>00165
|
181
|
-
<a name="l00166"></a>00166
|
182
|
-
<a name="l00167"></a>00167 <span class="comment">
|
183
|
-
<a name="l00168"></a
|
184
|
-
<a name="l00169"></a>00169
|
185
|
-
<a name="l00170"></a>00170
|
186
|
-
<a name="l00171"></a>00171
|
187
|
-
<a name="l00172"></a>00172
|
188
|
-
<a name="l00173"></a>00173
|
189
|
-
<a name="l00174"></a>00174
|
190
|
-
<a name="l00175"></a>00175
|
191
|
-
<a name="l00176"></a>00176
|
192
|
-
<a name="l00177"></a>00177
|
193
|
-
<a name="l00178"></a>00178
|
194
|
-
<a name="l00179"></a>00179
|
195
|
-
<a name="l00180"></a>00180
|
196
|
-
<a name="l00181"></a>00181
|
197
|
-
<a name="l00182"></a>00182
|
198
|
-
<a name="l00183"></a>00183
|
199
|
-
<a name="l00184"></a>00184
|
200
|
-
<a name="l00185"></a>00185
|
201
|
-
<a name="l00186"></a>00186 <span class="
|
202
|
-
<a name="l00187"></a>00187
|
203
|
-
<a name="l00188"></a>00188
|
204
|
-
<a name="l00189"></a>00189 <span class="
|
205
|
-
<a name="l00190"></a>00190
|
206
|
-
<a name="l00191"></a>00191
|
207
|
-
<a name="l00192"></a>00192
|
208
|
-
<a name="l00193"></a
|
209
|
-
<a name="l00194"></a>00194 <a class="code" href="classPassenger_1_1MessageChannel.html#
|
22
|
+
<a name="l00005"></a>00005 <span class="comment"> * Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.</span>
|
23
|
+
<a name="l00006"></a>00006 <span class="comment"> *</span>
|
24
|
+
<a name="l00007"></a>00007 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
|
25
|
+
<a name="l00008"></a>00008 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
|
26
|
+
<a name="l00009"></a>00009 <span class="comment"> * the Free Software Foundation; version 2 of the License.</span>
|
27
|
+
<a name="l00010"></a>00010 <span class="comment"> *</span>
|
28
|
+
<a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
|
29
|
+
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
30
|
+
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
31
|
+
<a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
|
32
|
+
<a name="l00015"></a>00015 <span class="comment"> *</span>
|
33
|
+
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License along</span>
|
34
|
+
<a name="l00017"></a>00017 <span class="comment"> * with this program; if not, write to the Free Software Foundation, Inc.,</span>
|
35
|
+
<a name="l00018"></a>00018 <span class="comment"> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span>
|
36
|
+
<a name="l00019"></a>00019 <span class="comment"> */</span>
|
37
|
+
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef _PASSENGER_MESSAGE_CHANNEL_H_</span>
|
38
|
+
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_MESSAGE_CHANNEL_H_</span>
|
39
|
+
<a name="l00022"></a>00022 <span class="preprocessor"></span>
|
40
|
+
<a name="l00023"></a>00023 <span class="preprocessor">#include <algorithm></span>
|
41
|
+
<a name="l00024"></a>00024 <span class="preprocessor">#include <string></span>
|
42
|
+
<a name="l00025"></a>00025 <span class="preprocessor">#include <list></span>
|
43
|
+
<a name="l00026"></a>00026 <span class="preprocessor">#include <vector></span>
|
44
|
+
<a name="l00027"></a>00027
|
45
|
+
<a name="l00028"></a>00028 <span class="preprocessor">#include <sys/types.h></span>
|
46
|
+
<a name="l00029"></a>00029 <span class="preprocessor">#include <sys/socket.h></span>
|
47
|
+
<a name="l00030"></a>00030 <span class="preprocessor">#include <arpa/inet.h></span>
|
48
|
+
<a name="l00031"></a>00031 <span class="preprocessor">#include <errno.h></span>
|
49
|
+
<a name="l00032"></a>00032 <span class="preprocessor">#include <unistd.h></span>
|
50
|
+
<a name="l00033"></a>00033 <span class="preprocessor">#include <cstdarg></span>
|
51
|
+
<a name="l00034"></a>00034
|
52
|
+
<a name="l00035"></a>00035 <span class="preprocessor">#include "System.h"</span>
|
53
|
+
<a name="l00036"></a>00036 <span class="preprocessor">#include "Exceptions.h"</span>
|
54
|
+
<a name="l00037"></a>00037 <span class="preprocessor">#include "Utils.h"</span>
|
55
|
+
<a name="l00038"></a>00038
|
56
|
+
<a name="l00039"></a>00039 <span class="keyword">namespace </span>Passenger {
|
57
|
+
<a name="l00040"></a>00040
|
58
|
+
<a name="l00041"></a>00041 <span class="keyword">using namespace </span>std;
|
59
|
+
<a name="l00042"></a>00042 <span class="comment"></span>
|
60
|
+
<a name="l00043"></a>00043 <span class="comment">/**</span>
|
61
|
+
<a name="l00044"></a>00044 <span class="comment"> * Convenience class for I/O operations on file descriptors.</span>
|
62
|
+
<a name="l00045"></a>00045 <span class="comment"> *</span>
|
63
|
+
<a name="l00046"></a>00046 <span class="comment"> * This class provides convenience methods for:</span>
|
64
|
+
<a name="l00047"></a>00047 <span class="comment"> * - sending and receiving raw data over a file descriptor.</span>
|
65
|
+
<a name="l00048"></a>00048 <span class="comment"> * - sending and receiving messages over a file descriptor.</span>
|
66
|
+
<a name="l00049"></a>00049 <span class="comment"> * - file descriptor passing over a Unix socket.</span>
|
67
|
+
<a name="l00050"></a>00050 <span class="comment"> * All of these methods use exceptions for error reporting.</span>
|
68
|
+
<a name="l00051"></a>00051 <span class="comment"> *</span>
|
69
|
+
<a name="l00052"></a>00052 <span class="comment"> * There are two kinds of messages:</span>
|
70
|
+
<a name="l00053"></a>00053 <span class="comment"> * - Array messages. These are just a list of strings, and the message</span>
|
71
|
+
<a name="l00054"></a>00054 <span class="comment"> * itself has a specific length. The contained strings may not</span>
|
72
|
+
<a name="l00055"></a>00055 <span class="comment"> * contain NUL characters (<tt>'\\0'</tt>). Note that an array message</span>
|
73
|
+
<a name="l00056"></a>00056 <span class="comment"> * must have at least one element.</span>
|
74
|
+
<a name="l00057"></a>00057 <span class="comment"> * - Scalar messages. These are byte strings which may contain arbitrary</span>
|
75
|
+
<a name="l00058"></a>00058 <span class="comment"> * binary data. Scalar messages also have a specific length.</span>
|
76
|
+
<a name="l00059"></a>00059 <span class="comment"> * The protocol is designed to be low overhead, easy to implement and</span>
|
77
|
+
<a name="l00060"></a>00060 <span class="comment"> * easy to parse.</span>
|
78
|
+
<a name="l00061"></a>00061 <span class="comment"> *</span>
|
79
|
+
<a name="l00062"></a>00062 <span class="comment"> * MessageChannel is to be wrapped around a file descriptor. For example:</span>
|
80
|
+
<a name="l00063"></a>00063 <span class="comment"> * @code</span>
|
81
|
+
<a name="l00064"></a>00064 <span class="comment"> * int p[2];</span>
|
82
|
+
<a name="l00065"></a>00065 <span class="comment"> * pipe(p);</span>
|
83
|
+
<a name="l00066"></a>00066 <span class="comment"> * MessageChannel channel1(p[0]);</span>
|
84
|
+
<a name="l00067"></a>00067 <span class="comment"> * MessageChannel channel2(p[1]);</span>
|
85
|
+
<a name="l00068"></a>00068 <span class="comment"> * </span>
|
86
|
+
<a name="l00069"></a>00069 <span class="comment"> * // Send an array message.</span>
|
87
|
+
<a name="l00070"></a>00070 <span class="comment"> * channel2.write("hello", "world !!", NULL);</span>
|
88
|
+
<a name="l00071"></a>00071 <span class="comment"> * list<string> args;</span>
|
89
|
+
<a name="l00072"></a>00072 <span class="comment"> * channel1.read(args); // args now contains { "hello", "world !!" }</span>
|
90
|
+
<a name="l00073"></a>00073 <span class="comment"> *</span>
|
91
|
+
<a name="l00074"></a>00074 <span class="comment"> * // Send a scalar message.</span>
|
92
|
+
<a name="l00075"></a>00075 <span class="comment"> * channel2.writeScalar("some long string which can contain arbitrary binary data");</span>
|
93
|
+
<a name="l00076"></a>00076 <span class="comment"> * string str;</span>
|
94
|
+
<a name="l00077"></a>00077 <span class="comment"> * channel1.readScalar(str);</span>
|
95
|
+
<a name="l00078"></a>00078 <span class="comment"> * @endcode</span>
|
96
|
+
<a name="l00079"></a>00079 <span class="comment"> *</span>
|
97
|
+
<a name="l00080"></a>00080 <span class="comment"> * The life time of a MessageChannel is independent from that of the</span>
|
98
|
+
<a name="l00081"></a>00081 <span class="comment"> * wrapped file descriptor. If a MessageChannel object is destroyed,</span>
|
99
|
+
<a name="l00082"></a>00082 <span class="comment"> * the file descriptor is not automatically closed. Call close()</span>
|
100
|
+
<a name="l00083"></a>00083 <span class="comment"> * if you want to close the file descriptor.</span>
|
101
|
+
<a name="l00084"></a>00084 <span class="comment"> *</span>
|
102
|
+
<a name="l00085"></a>00085 <span class="comment"> * @note I/O operations are not buffered.</span>
|
103
|
+
<a name="l00086"></a>00086 <span class="comment"> * @note Be careful with mixing the sending/receiving of array messages,</span>
|
104
|
+
<a name="l00087"></a>00087 <span class="comment"> * scalar messages and file descriptors. If you send a collection of any</span>
|
105
|
+
<a name="l00088"></a>00088 <span class="comment"> * of these in a specific order, then the receiving side must receive them</span>
|
106
|
+
<a name="l00089"></a>00089 <span class="comment"> * in the exact some order. So suppose you first send a message, then a</span>
|
107
|
+
<a name="l00090"></a>00090 <span class="comment"> * file descriptor, then a scalar, then the receiving side must first</span>
|
108
|
+
<a name="l00091"></a>00091 <span class="comment"> * receive a message, then a file descriptor, then a scalar. If the</span>
|
109
|
+
<a name="l00092"></a>00092 <span class="comment"> * receiving side does things in the wrong order then bad things will</span>
|
110
|
+
<a name="l00093"></a>00093 <span class="comment"> * happen.</span>
|
111
|
+
<a name="l00094"></a>00094 <span class="comment"> * @note MessageChannel is not thread-safe, but is reentrant.</span>
|
112
|
+
<a name="l00095"></a>00095 <span class="comment"> *</span>
|
113
|
+
<a name="l00096"></a>00096 <span class="comment"> * @ingroup Support</span>
|
114
|
+
<a name="l00097"></a>00097 <span class="comment"> */</span>
|
115
|
+
<a name="l00098"></a><a class="code" href="classPassenger_1_1MessageChannel.html">00098</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> {
|
116
|
+
<a name="l00099"></a>00099 <span class="keyword">private</span>:
|
117
|
+
<a name="l00100"></a>00100 <span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">char</span> DELIMITER = <span class="charliteral">'\0'</span>;
|
118
|
+
<a name="l00101"></a>00101 <span class="keywordtype">int</span> fd;
|
119
|
+
<a name="l00102"></a>00102
|
120
|
+
<a name="l00103"></a>00103 <span class="keyword">public</span>:<span class="comment"></span>
|
121
|
+
<a name="l00104"></a>00104 <span class="comment"> /**</span>
|
122
|
+
<a name="l00105"></a>00105 <span class="comment"> * Construct a new MessageChannel with no underlying file descriptor.</span>
|
123
|
+
<a name="l00106"></a>00106 <span class="comment"> * Thus the resulting MessageChannel object will not be usable.</span>
|
124
|
+
<a name="l00107"></a>00107 <span class="comment"> * This constructor exists to allow one to declare an "empty"</span>
|
125
|
+
<a name="l00108"></a>00108 <span class="comment"> * MessageChannel variable which is to be initialized later.</span>
|
126
|
+
<a name="l00109"></a>00109 <span class="comment"> */</span>
|
127
|
+
<a name="l00110"></a><a class="code" href="classPassenger_1_1MessageChannel.html#73e7c9a8e421d29558838176aff02ca4">00110</a> <a class="code" href="classPassenger_1_1MessageChannel.html#73e7c9a8e421d29558838176aff02ca4" title="Construct a new MessageChannel with no underlying file descriptor.">MessageChannel</a>() {
|
128
|
+
<a name="l00111"></a>00111 this->fd = -1;
|
129
|
+
<a name="l00112"></a>00112 }
|
130
|
+
<a name="l00113"></a>00113 <span class="comment"></span>
|
131
|
+
<a name="l00114"></a>00114 <span class="comment"> /**</span>
|
132
|
+
<a name="l00115"></a>00115 <span class="comment"> * Construct a new MessageChannel with the given file descriptor.</span>
|
133
|
+
<a name="l00116"></a>00116 <span class="comment"> */</span>
|
134
|
+
<a name="l00117"></a><a class="code" href="classPassenger_1_1MessageChannel.html#486b6e74c4d0973eefbcfde65f898ca7">00117</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) {
|
135
|
+
<a name="l00118"></a>00118 this->fd = fd;
|
136
|
+
<a name="l00119"></a>00119 }
|
137
|
+
<a name="l00120"></a>00120 <span class="comment"></span>
|
138
|
+
<a name="l00121"></a>00121 <span class="comment"> /**</span>
|
139
|
+
<a name="l00122"></a>00122 <span class="comment"> * Close the underlying file descriptor. If this method is called multiple</span>
|
140
|
+
<a name="l00123"></a>00123 <span class="comment"> * times, the file descriptor will only be closed the first time.</span>
|
141
|
+
<a name="l00124"></a>00124 <span class="comment"> *</span>
|
142
|
+
<a name="l00125"></a>00125 <span class="comment"> * @throw SystemException</span>
|
143
|
+
<a name="l00126"></a>00126 <span class="comment"> * @throw boost::thread_interrupted</span>
|
144
|
+
<a name="l00127"></a>00127 <span class="comment"> */</span>
|
145
|
+
<a name="l00128"></a><a class="code" href="classPassenger_1_1MessageChannel.html#06309e208fc5e10642a2e9bbe0f351eb">00128</a> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1MessageChannel.html#06309e208fc5e10642a2e9bbe0f351eb" title="Close the underlying file descriptor.">close</a>() {
|
146
|
+
<a name="l00129"></a>00129 <span class="keywordflow">if</span> (fd != -1) {
|
147
|
+
<a name="l00130"></a>00130 <span class="keywordtype">int</span> ret = InterruptableCalls::close(fd);
|
148
|
+
<a name="l00131"></a>00131 <span class="keywordflow">if</span> (ret == -1) {
|
149
|
+
<a name="l00132"></a>00132 <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 close file descriptor"</span>, errno);
|
150
|
+
<a name="l00133"></a>00133 }
|
151
|
+
<a name="l00134"></a>00134 fd = -1;
|
152
|
+
<a name="l00135"></a>00135 }
|
153
|
+
<a name="l00136"></a>00136 }
|
154
|
+
<a name="l00137"></a>00137 <span class="comment"></span>
|
155
|
+
<a name="l00138"></a>00138 <span class="comment"> /**</span>
|
156
|
+
<a name="l00139"></a>00139 <span class="comment"> * Send an array message, which consists of the given elements, over the underlying</span>
|
157
|
+
<a name="l00140"></a>00140 <span class="comment"> * file descriptor.</span>
|
158
|
+
<a name="l00141"></a>00141 <span class="comment"> *</span>
|
159
|
+
<a name="l00142"></a>00142 <span class="comment"> * @param args The message elements.</span>
|
160
|
+
<a name="l00143"></a>00143 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
161
|
+
<a name="l00144"></a>00144 <span class="comment"> * @throws boost::thread_interrupted</span>
|
162
|
+
<a name="l00145"></a>00145 <span class="comment"> * @pre None of the message elements may contain a NUL character (<tt>'\\0'</tt>).</span>
|
163
|
+
<a name="l00146"></a>00146 <span class="comment"> * @see read(), write(const char *, ...)</span>
|
164
|
+
<a name="l00147"></a>00147 <span class="comment"> */</span>
|
165
|
+
<a name="l00148"></a><a class="code" href="classPassenger_1_1MessageChannel.html#9ad7a978cf8409e01ab2f0a2b6be5a0a">00148</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) {
|
166
|
+
<a name="l00149"></a>00149 list<string>::const_iterator it;
|
167
|
+
<a name="l00150"></a>00150 <span class="keywordtype">string</span> data;
|
168
|
+
<a name="l00151"></a>00151 uint16_t dataSize = 0;
|
169
|
+
<a name="l00152"></a>00152
|
170
|
+
<a name="l00153"></a>00153 <span class="keywordflow">for</span> (it = args.begin(); it != args.end(); it++) {
|
171
|
+
<a name="l00154"></a>00154 dataSize += it->size() + 1;
|
172
|
+
<a name="l00155"></a>00155 }
|
173
|
+
<a name="l00156"></a>00156 data.reserve(dataSize + <span class="keyword">sizeof</span>(dataSize));
|
174
|
+
<a name="l00157"></a>00157 dataSize = htons(dataSize);
|
175
|
+
<a name="l00158"></a>00158 data.append((<span class="keyword">const</span> <span class="keywordtype">char</span> *) &dataSize, <span class="keyword">sizeof</span>(dataSize));
|
176
|
+
<a name="l00159"></a>00159 <span class="keywordflow">for</span> (it = args.begin(); it != args.end(); it++) {
|
177
|
+
<a name="l00160"></a>00160 data.append(*it);
|
178
|
+
<a name="l00161"></a>00161 data.append(1, DELIMITER);
|
179
|
+
<a name="l00162"></a>00162 }
|
180
|
+
<a name="l00163"></a>00163
|
181
|
+
<a name="l00164"></a>00164 <a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef" title="Send a block of data over the underlying file descriptor.">writeRaw</a>(data);
|
182
|
+
<a name="l00165"></a>00165 }
|
183
|
+
<a name="l00166"></a>00166 <span class="comment"></span>
|
184
|
+
<a name="l00167"></a>00167 <span class="comment"> /**</span>
|
185
|
+
<a name="l00168"></a>00168 <span class="comment"> * Send an array message, which consists of the given strings, over the underlying</span>
|
186
|
+
<a name="l00169"></a>00169 <span class="comment"> * file descriptor.</span>
|
187
|
+
<a name="l00170"></a>00170 <span class="comment"> *</span>
|
188
|
+
<a name="l00171"></a>00171 <span class="comment"> * @param name The first element of the message to send.</span>
|
189
|
+
<a name="l00172"></a>00172 <span class="comment"> * @param ... Other elements of the message. These *must* be strings, i.e. of type char*.</span>
|
190
|
+
<a name="l00173"></a>00173 <span class="comment"> * It is also required to terminate this list with a NULL.</span>
|
191
|
+
<a name="l00174"></a>00174 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
192
|
+
<a name="l00175"></a>00175 <span class="comment"> * @throws boost::thread_interrupted</span>
|
193
|
+
<a name="l00176"></a>00176 <span class="comment"> * @pre None of the message elements may contain a NUL character (<tt>'\\0'</tt>).</span>
|
194
|
+
<a name="l00177"></a>00177 <span class="comment"> * @see read(), write(const list<string> &)</span>
|
195
|
+
<a name="l00178"></a>00178 <span class="comment"> */</span>
|
196
|
+
<a name="l00179"></a><a class="code" href="classPassenger_1_1MessageChannel.html#12cce3364023eacbe4fe09006cf3d38d">00179</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, ...) {
|
197
|
+
<a name="l00180"></a>00180 list<string> args;
|
198
|
+
<a name="l00181"></a>00181 args.push_back(name);
|
199
|
+
<a name="l00182"></a>00182
|
200
|
+
<a name="l00183"></a>00183 va_list ap;
|
201
|
+
<a name="l00184"></a>00184 va_start(ap, name);
|
202
|
+
<a name="l00185"></a>00185 <span class="keywordflow">while</span> (<span class="keyword">true</span>) {
|
203
|
+
<a name="l00186"></a>00186 <span class="keyword">const</span> <span class="keywordtype">char</span> *arg = va_arg(ap, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
204
|
+
<a name="l00187"></a>00187 <span class="keywordflow">if</span> (arg == NULL) {
|
205
|
+
<a name="l00188"></a>00188 <span class="keywordflow">break</span>;
|
206
|
+
<a name="l00189"></a>00189 } <span class="keywordflow">else</span> {
|
207
|
+
<a name="l00190"></a>00190 args.push_back(arg);
|
208
|
+
<a name="l00191"></a>00191 }
|
209
|
+
<a name="l00192"></a>00192 }
|
210
|
+
<a name="l00193"></a>00193 va_end(ap);
|
211
|
+
<a name="l00194"></a>00194 <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);
|
210
212
|
<a name="l00195"></a>00195 }
|
211
213
|
<a name="l00196"></a>00196 <span class="comment"></span>
|
212
214
|
<a name="l00197"></a>00197 <span class="comment"> /**</span>
|
213
215
|
<a name="l00198"></a>00198 <span class="comment"> * Send a scalar message over the underlying file descriptor.</span>
|
214
216
|
<a name="l00199"></a>00199 <span class="comment"> *</span>
|
215
|
-
<a name="l00200"></a>00200 <span class="comment"> * @param
|
216
|
-
<a name="l00201"></a>00201 <span class="comment"> * @
|
217
|
-
<a name="l00202"></a>00202 <span class="comment"> * @
|
218
|
-
<a name="l00203"></a>00203 <span class="comment"> * @
|
219
|
-
<a name="l00204"></a>00204 <span class="comment">
|
220
|
-
<a name="l00205"></a>00205 <span class="
|
221
|
-
<a name="l00206"></a
|
222
|
-
<a name="l00207"></a>00207
|
223
|
-
<a name="l00208"></a>00208
|
224
|
-
<a name="l00209"></a>00209
|
225
|
-
<a name="l00210"></a>00210
|
226
|
-
<a name="l00211"></a>00211
|
227
|
-
<a name="l00212"></a>00212 <span class="comment">
|
228
|
-
<a name="l00213"></a>00213 <span class="comment"> *
|
229
|
-
<a name="l00214"></a>00214 <span class="comment"> *
|
230
|
-
<a name="l00215"></a>00215 <span class="comment">
|
231
|
-
<a name="l00216"></a>00216 <span class="comment"> * @
|
232
|
-
<a name="l00217"></a>00217 <span class="comment"> * @
|
233
|
-
<a name="l00218"></a>00218 <span class="comment">
|
234
|
-
<a name="l00219"></a>00219
|
235
|
-
<a name="l00220"></a>00220
|
236
|
-
<a name="l00221"></a>00221 <span class="
|
237
|
-
<a name="l00222"></a
|
238
|
-
<a name="l00223"></a>00223
|
239
|
-
<a name="l00224"></a>00224
|
240
|
-
<a name="l00225"></a>00225
|
241
|
-
<a name="l00226"></a>00226
|
242
|
-
<a name="l00227"></a>00227
|
243
|
-
<a name="l00228"></a>00228
|
244
|
-
<a name="l00229"></a>00229
|
245
|
-
<a name="l00230"></a>00230
|
246
|
-
<a name="l00231"></a>00231
|
247
|
-
<a name="l00232"></a>00232
|
248
|
-
<a name="l00233"></a>00233
|
249
|
-
<a name="l00234"></a>00234
|
250
|
-
<a name="l00235"></a>00235
|
251
|
-
<a name="l00236"></a>00236 <span class="
|
252
|
-
<a name="l00237"></a>00237
|
253
|
-
<a name="l00238"></a>00238
|
254
|
-
<a name="l00239"></a>00239
|
255
|
-
<a name="l00240"></a>00240
|
256
|
-
<a name="l00241"></a>00241
|
257
|
-
<a name="l00242"></a>00242
|
258
|
-
<a name="l00243"></a>00243 <span class="
|
259
|
-
<a name="l00244"></a>00244
|
260
|
-
<a name="l00245"></a
|
261
|
-
<a name="l00246"></a>00246 <
|
217
|
+
<a name="l00200"></a>00200 <span class="comment"> * @param str The scalar message's content.</span>
|
218
|
+
<a name="l00201"></a>00201 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
219
|
+
<a name="l00202"></a>00202 <span class="comment"> * @throws boost::thread_interrupted</span>
|
220
|
+
<a name="l00203"></a>00203 <span class="comment"> * @see readScalar(), writeScalar(const char *, unsigned int)</span>
|
221
|
+
<a name="l00204"></a>00204 <span class="comment"> */</span>
|
222
|
+
<a name="l00205"></a><a class="code" href="classPassenger_1_1MessageChannel.html#44e01a783c48abadeea0d915b9893bfb">00205</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) {
|
223
|
+
<a name="l00206"></a>00206 <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());
|
224
|
+
<a name="l00207"></a>00207 }
|
225
|
+
<a name="l00208"></a>00208 <span class="comment"></span>
|
226
|
+
<a name="l00209"></a>00209 <span class="comment"> /**</span>
|
227
|
+
<a name="l00210"></a>00210 <span class="comment"> * Send a scalar message over the underlying file descriptor.</span>
|
228
|
+
<a name="l00211"></a>00211 <span class="comment"> *</span>
|
229
|
+
<a name="l00212"></a>00212 <span class="comment"> * @param data The scalar message's content.</span>
|
230
|
+
<a name="l00213"></a>00213 <span class="comment"> * @param size The number of bytes in <tt>data</tt>.</span>
|
231
|
+
<a name="l00214"></a>00214 <span class="comment"> * @pre <tt>data != NULL</tt></span>
|
232
|
+
<a name="l00215"></a>00215 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
233
|
+
<a name="l00216"></a>00216 <span class="comment"> * @throws boost::thread_interrupted</span>
|
234
|
+
<a name="l00217"></a>00217 <span class="comment"> * @see readScalar(), writeScalar(const string &)</span>
|
235
|
+
<a name="l00218"></a>00218 <span class="comment"> */</span>
|
236
|
+
<a name="l00219"></a><a class="code" href="classPassenger_1_1MessageChannel.html#80977020ef895f3ea790c5d28a333dda">00219</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) {
|
237
|
+
<a name="l00220"></a>00220 uint32_t l = htonl(size);
|
238
|
+
<a name="l00221"></a>00221 <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));
|
239
|
+
<a name="l00222"></a>00222 <a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef" title="Send a block of data over the underlying file descriptor.">writeRaw</a>(data, size);
|
240
|
+
<a name="l00223"></a>00223 }
|
241
|
+
<a name="l00224"></a>00224 <span class="comment"></span>
|
242
|
+
<a name="l00225"></a>00225 <span class="comment"> /**</span>
|
243
|
+
<a name="l00226"></a>00226 <span class="comment"> * Send a block of data over the underlying file descriptor.</span>
|
244
|
+
<a name="l00227"></a>00227 <span class="comment"> * This method blocks until everything is sent.</span>
|
245
|
+
<a name="l00228"></a>00228 <span class="comment"> *</span>
|
246
|
+
<a name="l00229"></a>00229 <span class="comment"> * @param data The data to send.</span>
|
247
|
+
<a name="l00230"></a>00230 <span class="comment"> * @param size The number of bytes in <tt>data</tt>.</span>
|
248
|
+
<a name="l00231"></a>00231 <span class="comment"> * @pre <tt>data != NULL</tt></span>
|
249
|
+
<a name="l00232"></a>00232 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
250
|
+
<a name="l00233"></a>00233 <span class="comment"> * @throws boost::thread_interrupted</span>
|
251
|
+
<a name="l00234"></a>00234 <span class="comment"> * @see readRaw()</span>
|
252
|
+
<a name="l00235"></a>00235 <span class="comment"> */</span>
|
253
|
+
<a name="l00236"></a><a class="code" href="classPassenger_1_1MessageChannel.html#069314e4c7e1fe8c8ab36e16d2cc5fef">00236</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) {
|
254
|
+
<a name="l00237"></a>00237 ssize_t ret;
|
255
|
+
<a name="l00238"></a>00238 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> written = 0;
|
256
|
+
<a name="l00239"></a>00239 <span class="keywordflow">do</span> {
|
257
|
+
<a name="l00240"></a>00240 ret = InterruptableCalls::write(fd, data + written, size - written);
|
258
|
+
<a name="l00241"></a>00241 <span class="keywordflow">if</span> (ret == -1) {
|
259
|
+
<a name="l00242"></a>00242 <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);
|
260
|
+
<a name="l00243"></a>00243 } <span class="keywordflow">else</span> {
|
261
|
+
<a name="l00244"></a>00244 written += ret;
|
262
|
+
<a name="l00245"></a>00245 }
|
263
|
+
<a name="l00246"></a>00246 } <span class="keywordflow">while</span> (written < size);
|
262
264
|
<a name="l00247"></a>00247 }
|
263
265
|
<a name="l00248"></a>00248 <span class="comment"></span>
|
264
266
|
<a name="l00249"></a>00249 <span class="comment"> /**</span>
|
265
|
-
<a name="l00250"></a>00250 <span class="comment"> *
|
266
|
-
<a name="l00251"></a>00251 <span class="comment"> *
|
267
|
+
<a name="l00250"></a>00250 <span class="comment"> * Send a block of data over the underlying file descriptor.</span>
|
268
|
+
<a name="l00251"></a>00251 <span class="comment"> * This method blocks until everything is sent.</span>
|
267
269
|
<a name="l00252"></a>00252 <span class="comment"> *</span>
|
268
|
-
<a name="l00253"></a>00253 <span class="comment"> * @param
|
269
|
-
<a name="l00254"></a>00254 <span class="comment"> * @
|
270
|
-
<a name="l00255"></a>00255 <span class="comment"> * @
|
271
|
-
<a name="l00256"></a>00256 <span class="comment"> * @
|
270
|
+
<a name="l00253"></a>00253 <span class="comment"> * @param data The data to send.</span>
|
271
|
+
<a name="l00254"></a>00254 <span class="comment"> * @pre <tt>data != NULL</tt></span>
|
272
|
+
<a name="l00255"></a>00255 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
273
|
+
<a name="l00256"></a>00256 <span class="comment"> * @throws boost::thread_interrupted</span>
|
272
274
|
<a name="l00257"></a>00257 <span class="comment"> */</span>
|
273
|
-
<a name="l00258"></a><a class="code" href="classPassenger_1_1MessageChannel.html#
|
274
|
-
<a name="l00259"></a>00259 <
|
275
|
-
<a name="l00260"></a>00260
|
276
|
-
<a name="l00261"></a>00261
|
277
|
-
<a name="l00262"></a>00262 <span class="
|
278
|
-
<a name="l00263"></a>00263 <span class="
|
279
|
-
<a name="l00264"></a>00264
|
280
|
-
<a name="l00265"></a>00265
|
281
|
-
<a name="l00266"></a>00266
|
282
|
-
<a name="l00267"></a>00267 <span class="
|
283
|
-
<a name="l00268"></a>00268 <span class="
|
284
|
-
<a name="l00269"></a>00269 <span class="
|
285
|
-
<a name="l00270"></a>00270 <span class="
|
286
|
-
<a name="l00271"></a>00271
|
287
|
-
<a name="l00272"></a>00272
|
288
|
-
<a name="l00273"></a>00273
|
289
|
-
<a name="l00274"></a>00274
|
290
|
-
<a name="l00275"></a>00275 <span class="
|
291
|
-
<a name="l00276"></a>00276
|
292
|
-
<a name="l00277"></a>00277
|
293
|
-
<a name="l00278"></a>00278
|
294
|
-
<a name="l00279"></a>00279
|
295
|
-
<a name="l00280"></a>00280
|
296
|
-
<a name="l00281"></a>00281
|
297
|
-
<a name="l00282"></a>00282
|
298
|
-
<a name="l00283"></a>00283
|
299
|
-
<a name="l00284"></a>00284
|
300
|
-
<a name="l00285"></a>00285
|
301
|
-
<a name="l00286"></a>00286
|
302
|
-
<a name="l00287"></a>00287
|
303
|
-
<a name="l00288"></a>00288
|
304
|
-
<a name="l00289"></a>00289
|
305
|
-
<a name="l00290"></a>00290
|
306
|
-
<a name="l00291"></a>00291
|
307
|
-
<a name="l00292"></a>00292
|
308
|
-
<a name="l00293"></a>00293
|
309
|
-
<a name="l00294"></a>00294
|
310
|
-
<a name="l00295"></a>00295
|
311
|
-
<a name="l00296"></a>00296
|
312
|
-
<a name="l00297"></a>00297
|
313
|
-
<a name="l00298"></a>00298
|
314
|
-
<a name="l00299"></a>00299
|
315
|
-
<a name="l00300"></a>00300
|
316
|
-
<a name="l00301"></a>00301
|
317
|
-
<a name="l00302"></a>00302
|
318
|
-
<a name="l00303"></a>00303
|
319
|
-
<a name="l00304"></a>00304 <span class="
|
320
|
-
<a name="l00305"></a>00305 <span class="
|
321
|
-
<a name="l00306"></a>00306
|
322
|
-
<a name="l00307"></a>00307 <span class="
|
323
|
-
<a name="l00308"></a>00308 <span class="
|
324
|
-
<a name="l00309"></a>00309 <span class="
|
325
|
-
<a name="l00310"></a>00310 <span class="
|
326
|
-
<a name="l00311"></a
|
327
|
-
<a name="l00312"></a>00312
|
328
|
-
<a name="l00313"></a>00313 <span class="
|
329
|
-
<a name="l00314"></a>00314
|
330
|
-
<a name="l00315"></a>00315
|
331
|
-
<a name="l00316"></a>00316
|
332
|
-
<a name="l00317"></a>00317
|
333
|
-
<a name="l00318"></a>00318
|
334
|
-
<a name="l00319"></a>00319
|
335
|
-
<a name="l00320"></a>00320
|
336
|
-
<a name="l00321"></a>00321
|
337
|
-
<a name="l00322"></a>00322
|
338
|
-
<a name="l00323"></a>00323
|
339
|
-
<a name="l00324"></a>00324
|
340
|
-
<a name="l00325"></a>00325
|
341
|
-
<a name="l00326"></a>00326
|
342
|
-
<a name="l00327"></a>00327
|
343
|
-
<a name="l00328"></a>00328
|
344
|
-
<a name="l00329"></a>00329
|
345
|
-
<a name="l00330"></a>00330
|
346
|
-
<a name="l00331"></a>00331
|
347
|
-
<a name="l00332"></a>00332
|
348
|
-
<a name="l00333"></a>00333
|
349
|
-
<a name="l00334"></a>00334 <span class="
|
350
|
-
<a name="l00335"></a>00335
|
351
|
-
<a name="l00336"></a>00336
|
352
|
-
<a name="l00337"></a>00337 <span class="keywordflow">if</span> (ret ==
|
353
|
-
<a name="l00338"></a>00338 <span class="keywordflow">
|
354
|
-
<a name="l00339"></a>00339 }
|
355
|
-
<a name="l00340"></a>00340
|
356
|
-
<a name="l00341"></a>00341
|
357
|
-
<a name="l00342"></a>00342
|
358
|
-
<a name="l00343"></a>00343
|
359
|
-
<a name="l00344"></a>00344
|
360
|
-
<a name="l00345"></a>00345
|
361
|
-
<a name="l00346"></a>00346
|
362
|
-
<a name="l00347"></a>00347
|
363
|
-
<a name="l00348"></a>00348 <span class="
|
364
|
-
<a name="l00349"></a>00349
|
365
|
-
<a name="l00350"></a>00350
|
366
|
-
<a name="l00351"></a>00351
|
367
|
-
<a name="l00352"></a>00352
|
368
|
-
<a name="l00353"></a>00353
|
369
|
-
<a name="l00354"></a>00354
|
370
|
-
<a name="l00355"></a>00355
|
371
|
-
<a name="l00356"></a>00356
|
372
|
-
<a name="l00357"></a>00357
|
373
|
-
<a name="l00358"></a>00358
|
374
|
-
<a name="l00359"></a>00359
|
375
|
-
<a name="l00360"></a>00360
|
376
|
-
<a name="l00361"></a>00361
|
377
|
-
<a name="l00362"></a>00362
|
378
|
-
<a name="l00363"></a>00363
|
379
|
-
<a name="l00364"></a
|
380
|
-
<a name="l00365"></a>00365
|
381
|
-
<a name="l00366"></a>00366 <span class="
|
382
|
-
<a name="l00367"></a>00367
|
383
|
-
<a name="l00368"></a>00368
|
384
|
-
<a name="l00369"></a>00369
|
385
|
-
<a name="l00370"></a>00370
|
386
|
-
<a name="l00371"></a>00371
|
387
|
-
<a name="l00372"></a>00372
|
388
|
-
<a name="l00373"></a>00373
|
389
|
-
<a name="l00374"></a>00374
|
390
|
-
<a name="l00375"></a>00375
|
391
|
-
<a name="l00376"></a>00376
|
392
|
-
<a name="l00377"></a>00377
|
393
|
-
<a name="l00378"></a
|
394
|
-
<a name="l00379"></a>00379
|
395
|
-
<a name="l00380"></a>00380
|
396
|
-
<a name="l00381"></a>00381
|
397
|
-
<a name="l00382"></a>00382
|
398
|
-
<a name="l00383"></a>00383
|
399
|
-
<a name="l00384"></a>00384
|
400
|
-
<a name="l00385"></a>00385
|
401
|
-
<a name="l00386"></a>00386
|
402
|
-
<a name="l00387"></a>00387
|
403
|
-
<a name="l00388"></a>00388
|
404
|
-
<a name="l00389"></a>00389
|
405
|
-
<a name="l00390"></a>00390
|
406
|
-
<a name="l00391"></a>00391
|
407
|
-
<a name="l00392"></a>00392
|
408
|
-
<a name="l00393"></a>00393
|
409
|
-
<a name="l00394"></a>00394
|
410
|
-
<a name="l00395"></a>00395 <span class="
|
411
|
-
<a name="l00396"></a>00396
|
412
|
-
<a name="l00397"></a>00397
|
413
|
-
<a name="l00398"></a>00398
|
414
|
-
<a name="l00399"></a>00399
|
415
|
-
<a name="l00400"></a>00400
|
416
|
-
<a name="l00401"></a>00401
|
417
|
-
<a name="l00402"></a>00402
|
418
|
-
<a name="l00403"></a>00403 <span class="comment">
|
419
|
-
<a name="l00404"></a
|
420
|
-
<a name="l00405"></a>00405
|
421
|
-
<a name="l00406"></a>00406
|
422
|
-
<a name="l00407"></a>00407
|
423
|
-
<a name="l00408"></a>00408
|
424
|
-
<a name="l00409"></a>00409
|
425
|
-
<a name="l00410"></a>00410
|
426
|
-
<a name="l00411"></a>00411
|
427
|
-
<a name="l00412"></a>00412
|
428
|
-
<a name="l00413"></a>00413
|
429
|
-
<a name="l00414"></a>00414
|
430
|
-
<a name="l00415"></a>00415
|
431
|
-
<a name="l00416"></a>00416
|
432
|
-
<a name="l00417"></a>00417
|
433
|
-
<a name="l00418"></a>00418
|
434
|
-
<a name="l00419"></a>00419
|
435
|
-
<a name="l00420"></a>00420
|
436
|
-
<a name="l00421"></a>00421
|
437
|
-
<a name="l00422"></a>00422
|
438
|
-
<a name="l00423"></a>00423
|
439
|
-
<a name="l00424"></a>00424 <span class="
|
440
|
-
<a name="l00425"></a>00425
|
441
|
-
<a name="l00426"></a>00426 <span class="
|
442
|
-
<a name="l00427"></a>00427 <span class="
|
443
|
-
<a name="l00428"></a>00428
|
444
|
-
<a name="l00429"></a>00429 <span class="
|
445
|
-
<a name="l00430"></a>00430
|
446
|
-
<a name="l00431"></a>00431
|
447
|
-
<a name="l00432"></a>00432
|
448
|
-
<a name="l00433"></a>00433 <span class="
|
449
|
-
<a name="l00434"></a
|
450
|
-
<a name="l00435"></a>00435
|
451
|
-
<a name="l00436"></a>00436
|
452
|
-
<a name="l00437"></a>00437
|
453
|
-
<a name="l00438"></a>00438 <span class="
|
454
|
-
<a name="l00439"></a>00439 <span class="
|
455
|
-
<a name="l00440"></a>00440
|
456
|
-
<a name="l00441"></a>00441
|
457
|
-
<a name="l00442"></a>00442
|
458
|
-
<a name="l00443"></a>00443
|
459
|
-
<a name="l00444"></a>00444
|
460
|
-
<a name="l00445"></a>00445 <span class="
|
461
|
-
<a name="l00446"></a>00446 <span class="
|
462
|
-
<a name="l00447"></a>00447 <span class="
|
463
|
-
<a name="l00448"></a>00448
|
464
|
-
<a name="l00449"></a>00449
|
465
|
-
<a name="l00450"></a>00450
|
466
|
-
<a name="l00451"></a>00451
|
467
|
-
<a name="l00452"></a>00452
|
468
|
-
<a name="l00453"></a>00453
|
469
|
-
<a name="l00454"></a>00454
|
470
|
-
<a name="l00455"></a>00455
|
471
|
-
<a name="l00456"></a>00456
|
472
|
-
<a name="l00457"></a>00457
|
473
|
-
<a name="l00458"></a>00458
|
474
|
-
<a name="l00459"></a>00459
|
475
|
-
<a name="l00460"></a>00460
|
476
|
-
<a name="l00461"></a>00461
|
477
|
-
<a name="l00462"></a>00462
|
478
|
-
<a name="l00463"></a>00463
|
479
|
-
<a name="l00464"></a>00464
|
480
|
-
<a name="l00465"></a>00465 <span class="
|
481
|
-
<a name="l00466"></a>00466
|
482
|
-
<a name="l00467"></a>00467
|
483
|
-
<a name="l00468"></a>00468
|
484
|
-
<a name="l00469"></a>00469
|
485
|
-
<a name="l00470"></a>00470 <span class="
|
486
|
-
<a name="l00471"></a>00471
|
487
|
-
<a name="l00472"></a>00472
|
488
|
-
<a name="l00473"></a>00473
|
489
|
-
<a name="l00474"></a>00474
|
490
|
-
<a name="l00475"></a>00475
|
491
|
-
<a name="l00476"></a>00476
|
492
|
-
<a name="l00477"></a>00477 <span class="
|
493
|
-
<a name="l00478"></a>00478
|
494
|
-
<a name="l00479"></a>00479
|
495
|
-
<a name="l00480"></a>00480
|
496
|
-
<a name="l00481"></a>00481
|
497
|
-
<a name="l00482"></a>00482
|
498
|
-
<a name="l00483"></a>00483
|
499
|
-
<a name="l00484"></a>00484
|
500
|
-
<a name="l00485"></a>00485
|
501
|
-
|
275
|
+
<a name="l00258"></a><a class="code" href="classPassenger_1_1MessageChannel.html#cfa38f4f0e22ec16350b8cc159e8e364">00258</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) {
|
276
|
+
<a name="l00259"></a>00259 <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());
|
277
|
+
<a name="l00260"></a>00260 }
|
278
|
+
<a name="l00261"></a>00261 <span class="comment"></span>
|
279
|
+
<a name="l00262"></a>00262 <span class="comment"> /**</span>
|
280
|
+
<a name="l00263"></a>00263 <span class="comment"> * Pass a file descriptor. This only works if the underlying file</span>
|
281
|
+
<a name="l00264"></a>00264 <span class="comment"> * descriptor is a Unix socket.</span>
|
282
|
+
<a name="l00265"></a>00265 <span class="comment"> *</span>
|
283
|
+
<a name="l00266"></a>00266 <span class="comment"> * @param fileDescriptor The file descriptor to pass.</span>
|
284
|
+
<a name="l00267"></a>00267 <span class="comment"> * @throws SystemException Something went wrong during file descriptor passing.</span>
|
285
|
+
<a name="l00268"></a>00268 <span class="comment"> * @throws boost::thread_interrupted</span>
|
286
|
+
<a name="l00269"></a>00269 <span class="comment"> * @pre <tt>fileDescriptor >= 0</tt></span>
|
287
|
+
<a name="l00270"></a>00270 <span class="comment"> * @see readFileDescriptor()</span>
|
288
|
+
<a name="l00271"></a>00271 <span class="comment"> */</span>
|
289
|
+
<a name="l00272"></a><a class="code" href="classPassenger_1_1MessageChannel.html#73e3f3cda384c085a2af0e820ccd3e98">00272</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) {
|
290
|
+
<a name="l00273"></a>00273 <span class="keyword">struct </span>msghdr msg;
|
291
|
+
<a name="l00274"></a>00274 <span class="keyword">struct </span>iovec vec;
|
292
|
+
<a name="l00275"></a>00275 <span class="keywordtype">char</span> dummy[1];
|
293
|
+
<a name="l00276"></a>00276 <span class="preprocessor"> #ifdef __APPLE__</span>
|
294
|
+
<a name="l00277"></a>00277 <span class="preprocessor"></span> <span class="keyword">struct </span>{
|
295
|
+
<a name="l00278"></a>00278 <span class="keyword">struct </span>cmsghdr header;
|
296
|
+
<a name="l00279"></a>00279 <span class="keywordtype">int</span> fd;
|
297
|
+
<a name="l00280"></a>00280 } control_data;
|
298
|
+
<a name="l00281"></a>00281 <span class="preprocessor"> #else</span>
|
299
|
+
<a name="l00282"></a>00282 <span class="preprocessor"></span> <span class="keywordtype">char</span> control_data[CMSG_SPACE(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>))];
|
300
|
+
<a name="l00283"></a>00283 <span class="preprocessor"> #endif</span>
|
301
|
+
<a name="l00284"></a>00284 <span class="preprocessor"></span> <span class="keyword">struct </span>cmsghdr *control_header;
|
302
|
+
<a name="l00285"></a>00285 <span class="keywordtype">int</span> ret;
|
303
|
+
<a name="l00286"></a>00286
|
304
|
+
<a name="l00287"></a>00287 msg.msg_name = NULL;
|
305
|
+
<a name="l00288"></a>00288 msg.msg_namelen = 0;
|
306
|
+
<a name="l00289"></a>00289
|
307
|
+
<a name="l00290"></a>00290 <span class="comment">/* Linux and Solaris require msg_iov to be non-NULL. */</span>
|
308
|
+
<a name="l00291"></a>00291 dummy[0] = <span class="charliteral">'\0'</span>;
|
309
|
+
<a name="l00292"></a>00292 vec.iov_base = dummy;
|
310
|
+
<a name="l00293"></a>00293 vec.iov_len = <span class="keyword">sizeof</span>(dummy);
|
311
|
+
<a name="l00294"></a>00294 msg.msg_iov = &vec;
|
312
|
+
<a name="l00295"></a>00295 msg.msg_iovlen = 1;
|
313
|
+
<a name="l00296"></a>00296
|
314
|
+
<a name="l00297"></a>00297 msg.msg_control = (caddr_t) &control_data;
|
315
|
+
<a name="l00298"></a>00298 msg.msg_controllen = <span class="keyword">sizeof</span>(control_data);
|
316
|
+
<a name="l00299"></a>00299 msg.msg_flags = 0;
|
317
|
+
<a name="l00300"></a>00300
|
318
|
+
<a name="l00301"></a>00301 control_header = CMSG_FIRSTHDR(&msg);
|
319
|
+
<a name="l00302"></a>00302 control_header->cmsg_level = SOL_SOCKET;
|
320
|
+
<a name="l00303"></a>00303 control_header->cmsg_type = SCM_RIGHTS;
|
321
|
+
<a name="l00304"></a>00304 <span class="preprocessor"> #ifdef __APPLE__</span>
|
322
|
+
<a name="l00305"></a>00305 <span class="preprocessor"></span> control_header->cmsg_len = <span class="keyword">sizeof</span>(control_data);
|
323
|
+
<a name="l00306"></a>00306 control_data.fd = fileDescriptor;
|
324
|
+
<a name="l00307"></a>00307 <span class="preprocessor"> #else</span>
|
325
|
+
<a name="l00308"></a>00308 <span class="preprocessor"></span> control_header->cmsg_len = CMSG_LEN(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>));
|
326
|
+
<a name="l00309"></a>00309 memcpy(CMSG_DATA(control_header), &fileDescriptor, <span class="keyword">sizeof</span>(<span class="keywordtype">int</span>));
|
327
|
+
<a name="l00310"></a>00310 <span class="preprocessor"> #endif</span>
|
328
|
+
<a name="l00311"></a>00311 <span class="preprocessor"></span>
|
329
|
+
<a name="l00312"></a>00312 ret = InterruptableCalls::sendmsg(fd, &msg, 0);
|
330
|
+
<a name="l00313"></a>00313 <span class="keywordflow">if</span> (ret == -1) {
|
331
|
+
<a name="l00314"></a>00314 <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);
|
332
|
+
<a name="l00315"></a>00315 }
|
333
|
+
<a name="l00316"></a>00316 }
|
334
|
+
<a name="l00317"></a>00317 <span class="comment"></span>
|
335
|
+
<a name="l00318"></a>00318 <span class="comment"> /**</span>
|
336
|
+
<a name="l00319"></a>00319 <span class="comment"> * Read an array message from the underlying file descriptor.</span>
|
337
|
+
<a name="l00320"></a>00320 <span class="comment"> *</span>
|
338
|
+
<a name="l00321"></a>00321 <span class="comment"> * @param args The message will be put in this variable.</span>
|
339
|
+
<a name="l00322"></a>00322 <span class="comment"> * @return Whether end-of-file has been reached. If so, then the contents</span>
|
340
|
+
<a name="l00323"></a>00323 <span class="comment"> * of <tt>args</tt> will be undefined.</span>
|
341
|
+
<a name="l00324"></a>00324 <span class="comment"> * @throws SystemException If an error occured while receiving the message.</span>
|
342
|
+
<a name="l00325"></a>00325 <span class="comment"> * @throws boost::thread_interrupted</span>
|
343
|
+
<a name="l00326"></a>00326 <span class="comment"> * @see write()</span>
|
344
|
+
<a name="l00327"></a>00327 <span class="comment"> */</span>
|
345
|
+
<a name="l00328"></a><a class="code" href="classPassenger_1_1MessageChannel.html#129659b60d1a663337873d2af944431e">00328</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) {
|
346
|
+
<a name="l00329"></a>00329 uint16_t size;
|
347
|
+
<a name="l00330"></a>00330 <span class="keywordtype">int</span> ret;
|
348
|
+
<a name="l00331"></a>00331 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> alreadyRead = 0;
|
349
|
+
<a name="l00332"></a>00332
|
350
|
+
<a name="l00333"></a>00333 <span class="keywordflow">do</span> {
|
351
|
+
<a name="l00334"></a>00334 ret = InterruptableCalls::read(fd, (<span class="keywordtype">char</span> *) &size + alreadyRead, <span class="keyword">sizeof</span>(size) - alreadyRead);
|
352
|
+
<a name="l00335"></a>00335 <span class="keywordflow">if</span> (ret == -1) {
|
353
|
+
<a name="l00336"></a>00336 <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);
|
354
|
+
<a name="l00337"></a>00337 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ret == 0) {
|
355
|
+
<a name="l00338"></a>00338 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
356
|
+
<a name="l00339"></a>00339 }
|
357
|
+
<a name="l00340"></a>00340 alreadyRead += ret;
|
358
|
+
<a name="l00341"></a>00341 } <span class="keywordflow">while</span> (alreadyRead < <span class="keyword">sizeof</span>(size));
|
359
|
+
<a name="l00342"></a>00342 size = ntohs(size);
|
360
|
+
<a name="l00343"></a>00343
|
361
|
+
<a name="l00344"></a>00344 <span class="keywordtype">string</span> buffer;
|
362
|
+
<a name="l00345"></a>00345 args.clear();
|
363
|
+
<a name="l00346"></a>00346 buffer.reserve(size);
|
364
|
+
<a name="l00347"></a>00347 <span class="keywordflow">while</span> (buffer.size() < size) {
|
365
|
+
<a name="l00348"></a>00348 <span class="keywordtype">char</span> tmp[1024 * 8];
|
366
|
+
<a name="l00349"></a>00349 ret = InterruptableCalls::read(fd, tmp, min(size - buffer.size(), <span class="keyword">sizeof</span>(tmp)));
|
367
|
+
<a name="l00350"></a>00350 <span class="keywordflow">if</span> (ret == -1) {
|
368
|
+
<a name="l00351"></a>00351 <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);
|
369
|
+
<a name="l00352"></a>00352 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ret == 0) {
|
370
|
+
<a name="l00353"></a>00353 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
371
|
+
<a name="l00354"></a>00354 }
|
372
|
+
<a name="l00355"></a>00355 buffer.append(tmp, ret);
|
373
|
+
<a name="l00356"></a>00356 }
|
374
|
+
<a name="l00357"></a>00357
|
375
|
+
<a name="l00358"></a>00358 <span class="keywordflow">if</span> (!buffer.empty()) {
|
376
|
+
<a name="l00359"></a>00359 string::size_type start = 0, pos;
|
377
|
+
<a name="l00360"></a>00360 <span class="keyword">const</span> <span class="keywordtype">string</span> &const_buffer(buffer);
|
378
|
+
<a name="l00361"></a>00361 <span class="keywordflow">while</span> ((pos = const_buffer.find(<span class="charliteral">'\0'</span>, start)) != string::npos) {
|
379
|
+
<a name="l00362"></a>00362 args.push_back(const_buffer.substr(start, pos - start));
|
380
|
+
<a name="l00363"></a>00363 start = pos + 1;
|
381
|
+
<a name="l00364"></a>00364 }
|
382
|
+
<a name="l00365"></a>00365 }
|
383
|
+
<a name="l00366"></a>00366 <span class="keywordflow">return</span> <span class="keyword">true</span>;
|
384
|
+
<a name="l00367"></a>00367 }
|
385
|
+
<a name="l00368"></a>00368 <span class="comment"></span>
|
386
|
+
<a name="l00369"></a>00369 <span class="comment"> /**</span>
|
387
|
+
<a name="l00370"></a>00370 <span class="comment"> * Read a scalar message from the underlying file descriptor.</span>
|
388
|
+
<a name="l00371"></a>00371 <span class="comment"> *</span>
|
389
|
+
<a name="l00372"></a>00372 <span class="comment"> * @param output The message will be put in here.</span>
|
390
|
+
<a name="l00373"></a>00373 <span class="comment"> * @returns Whether end-of-file was reached during reading.</span>
|
391
|
+
<a name="l00374"></a>00374 <span class="comment"> * @throws SystemException An error occured while writing the data to the file descriptor.</span>
|
392
|
+
<a name="l00375"></a>00375 <span class="comment"> * @throws boost::thread_interrupted</span>
|
393
|
+
<a name="l00376"></a>00376 <span class="comment"> * @see writeScalar()</span>
|
394
|
+
<a name="l00377"></a>00377 <span class="comment"> */</span>
|
395
|
+
<a name="l00378"></a><a class="code" href="classPassenger_1_1MessageChannel.html#4ce6a0e751b5e3563bee583c231569bc">00378</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) {
|
396
|
+
<a name="l00379"></a>00379 uint32_t size;
|
397
|
+
<a name="l00380"></a>00380 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> remaining;
|
398
|
+
<a name="l00381"></a>00381
|
399
|
+
<a name="l00382"></a>00382 <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))) {
|
400
|
+
<a name="l00383"></a>00383 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
401
|
+
<a name="l00384"></a>00384 }
|
402
|
+
<a name="l00385"></a>00385 size = ntohl(size);
|
403
|
+
<a name="l00386"></a>00386
|
404
|
+
<a name="l00387"></a>00387 output.clear();
|
405
|
+
<a name="l00388"></a>00388 output.reserve(size);
|
406
|
+
<a name="l00389"></a>00389 remaining = size;
|
407
|
+
<a name="l00390"></a>00390 <span class="keywordflow">while</span> (remaining > 0) {
|
408
|
+
<a name="l00391"></a>00391 <span class="keywordtype">char</span> buf[1024 * 32];
|
409
|
+
<a name="l00392"></a>00392 <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);
|
410
|
+
<a name="l00393"></a>00393
|
411
|
+
<a name="l00394"></a>00394 <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)) {
|
412
|
+
<a name="l00395"></a>00395 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
413
|
+
<a name="l00396"></a>00396 }
|
414
|
+
<a name="l00397"></a>00397 output.append(buf, blockSize);
|
415
|
+
<a name="l00398"></a>00398 remaining -= blockSize;
|
416
|
+
<a name="l00399"></a>00399 }
|
417
|
+
<a name="l00400"></a>00400 <span class="keywordflow">return</span> <span class="keyword">true</span>;
|
418
|
+
<a name="l00401"></a>00401 }
|
419
|
+
<a name="l00402"></a>00402 <span class="comment"></span>
|
420
|
+
<a name="l00403"></a>00403 <span class="comment"> /**</span>
|
421
|
+
<a name="l00404"></a>00404 <span class="comment"> * Read exactly <tt>size</tt> bytes of data from the underlying file descriptor,</span>
|
422
|
+
<a name="l00405"></a>00405 <span class="comment"> * and put the result in <tt>buf</tt>. If end-of-file has been reached, or if</span>
|
423
|
+
<a name="l00406"></a>00406 <span class="comment"> * end-of-file was encountered before <tt>size</tt> bytes have been read, then</span>
|
424
|
+
<a name="l00407"></a>00407 <span class="comment"> * <tt>false</tt> will be returned. Otherwise (i.e. if the read was successful),</span>
|
425
|
+
<a name="l00408"></a>00408 <span class="comment"> * <tt>true</tt> will be returned.</span>
|
426
|
+
<a name="l00409"></a>00409 <span class="comment"> *</span>
|
427
|
+
<a name="l00410"></a>00410 <span class="comment"> * @param buf The buffer to place the read data in. This buffer must be at least</span>
|
428
|
+
<a name="l00411"></a>00411 <span class="comment"> * <tt>size</tt> bytes long.</span>
|
429
|
+
<a name="l00412"></a>00412 <span class="comment"> * @param size The number of bytes to read.</span>
|
430
|
+
<a name="l00413"></a>00413 <span class="comment"> * @return Whether reading was successful or whether EOF was reached.</span>
|
431
|
+
<a name="l00414"></a>00414 <span class="comment"> * @pre buf != NULL</span>
|
432
|
+
<a name="l00415"></a>00415 <span class="comment"> * @throws SystemException Something went wrong during reading.</span>
|
433
|
+
<a name="l00416"></a>00416 <span class="comment"> * @throws boost::thread_interrupted</span>
|
434
|
+
<a name="l00417"></a>00417 <span class="comment"> * @see writeRaw()</span>
|
435
|
+
<a name="l00418"></a>00418 <span class="comment"> */</span>
|
436
|
+
<a name="l00419"></a><a class="code" href="classPassenger_1_1MessageChannel.html#cd1d1bd1cc787784c8b54f5471fff479">00419</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) {
|
437
|
+
<a name="l00420"></a>00420 ssize_t ret;
|
438
|
+
<a name="l00421"></a>00421 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> alreadyRead = 0;
|
439
|
+
<a name="l00422"></a>00422
|
440
|
+
<a name="l00423"></a>00423 <span class="keywordflow">while</span> (alreadyRead < size) {
|
441
|
+
<a name="l00424"></a>00424 ret = InterruptableCalls::read(fd, (<span class="keywordtype">char</span> *) buf + alreadyRead, size - alreadyRead);
|
442
|
+
<a name="l00425"></a>00425 <span class="keywordflow">if</span> (ret == -1) {
|
443
|
+
<a name="l00426"></a>00426 <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);
|
444
|
+
<a name="l00427"></a>00427 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ret == 0) {
|
445
|
+
<a name="l00428"></a>00428 <span class="keywordflow">return</span> <span class="keyword">false</span>;
|
446
|
+
<a name="l00429"></a>00429 } <span class="keywordflow">else</span> {
|
447
|
+
<a name="l00430"></a>00430 alreadyRead += ret;
|
448
|
+
<a name="l00431"></a>00431 }
|
449
|
+
<a name="l00432"></a>00432 }
|
450
|
+
<a name="l00433"></a>00433 <span class="keywordflow">return</span> <span class="keyword">true</span>;
|
451
|
+
<a name="l00434"></a>00434 }
|
452
|
+
<a name="l00435"></a>00435 <span class="comment"></span>
|
453
|
+
<a name="l00436"></a>00436 <span class="comment"> /**</span>
|
454
|
+
<a name="l00437"></a>00437 <span class="comment"> * Receive a file descriptor, which had been passed over the underlying</span>
|
455
|
+
<a name="l00438"></a>00438 <span class="comment"> * file descriptor.</span>
|
456
|
+
<a name="l00439"></a>00439 <span class="comment"> *</span>
|
457
|
+
<a name="l00440"></a>00440 <span class="comment"> * @return The passed file descriptor.</span>
|
458
|
+
<a name="l00441"></a>00441 <span class="comment"> * @throws SystemException If something went wrong during the</span>
|
459
|
+
<a name="l00442"></a>00442 <span class="comment"> * receiving of a file descriptor. Perhaps the underlying</span>
|
460
|
+
<a name="l00443"></a>00443 <span class="comment"> * file descriptor isn't a Unix socket.</span>
|
461
|
+
<a name="l00444"></a>00444 <span class="comment"> * @throws IOException Whatever was received doesn't seem to be a</span>
|
462
|
+
<a name="l00445"></a>00445 <span class="comment"> * file descriptor.</span>
|
463
|
+
<a name="l00446"></a>00446 <span class="comment"> * @throws boost::thread_interrupted</span>
|
464
|
+
<a name="l00447"></a>00447 <span class="comment"> */</span>
|
465
|
+
<a name="l00448"></a><a class="code" href="classPassenger_1_1MessageChannel.html#1561b7e4a0f4d39ea431f456e5655488">00448</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>() {
|
466
|
+
<a name="l00449"></a>00449 <span class="keyword">struct </span>msghdr msg;
|
467
|
+
<a name="l00450"></a>00450 <span class="keyword">struct </span>iovec vec;
|
468
|
+
<a name="l00451"></a>00451 <span class="keywordtype">char</span> dummy[1];
|
469
|
+
<a name="l00452"></a>00452 <span class="preprocessor"> #ifdef __APPLE__</span>
|
470
|
+
<a name="l00453"></a>00453 <span class="preprocessor"></span> <span class="comment">// File descriptor passing macros (CMSG_*) seem to be broken</span>
|
471
|
+
<a name="l00454"></a>00454 <span class="comment">// on 64-bit MacOS X. This structure works around the problem.</span>
|
472
|
+
<a name="l00455"></a>00455 <span class="keyword">struct </span>{
|
473
|
+
<a name="l00456"></a>00456 <span class="keyword">struct </span>cmsghdr header;
|
474
|
+
<a name="l00457"></a>00457 <span class="keywordtype">int</span> fd;
|
475
|
+
<a name="l00458"></a>00458 } control_data;
|
476
|
+
<a name="l00459"></a>00459 <span class="preprocessor"> #define EXPECTED_CMSG_LEN sizeof(control_data)</span>
|
477
|
+
<a name="l00460"></a>00460 <span class="preprocessor"></span><span class="preprocessor"> #else</span>
|
478
|
+
<a name="l00461"></a>00461 <span class="preprocessor"></span> <span class="keywordtype">char</span> control_data[CMSG_SPACE(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>))];
|
479
|
+
<a name="l00462"></a>00462 <span class="preprocessor"> #define EXPECTED_CMSG_LEN CMSG_LEN(sizeof(int))</span>
|
480
|
+
<a name="l00463"></a>00463 <span class="preprocessor"></span><span class="preprocessor"> #endif</span>
|
481
|
+
<a name="l00464"></a>00464 <span class="preprocessor"></span> <span class="keyword">struct </span>cmsghdr *control_header;
|
482
|
+
<a name="l00465"></a>00465 <span class="keywordtype">int</span> ret;
|
483
|
+
<a name="l00466"></a>00466
|
484
|
+
<a name="l00467"></a>00467 msg.msg_name = NULL;
|
485
|
+
<a name="l00468"></a>00468 msg.msg_namelen = 0;
|
486
|
+
<a name="l00469"></a>00469
|
487
|
+
<a name="l00470"></a>00470 dummy[0] = <span class="charliteral">'\0'</span>;
|
488
|
+
<a name="l00471"></a>00471 vec.iov_base = dummy;
|
489
|
+
<a name="l00472"></a>00472 vec.iov_len = <span class="keyword">sizeof</span>(dummy);
|
490
|
+
<a name="l00473"></a>00473 msg.msg_iov = &vec;
|
491
|
+
<a name="l00474"></a>00474 msg.msg_iovlen = 1;
|
492
|
+
<a name="l00475"></a>00475
|
493
|
+
<a name="l00476"></a>00476 msg.msg_control = (caddr_t) &control_data;
|
494
|
+
<a name="l00477"></a>00477 msg.msg_controllen = <span class="keyword">sizeof</span>(control_data);
|
495
|
+
<a name="l00478"></a>00478 msg.msg_flags = 0;
|
496
|
+
<a name="l00479"></a>00479
|
497
|
+
<a name="l00480"></a>00480 ret = InterruptableCalls::recvmsg(fd, &msg, 0);
|
498
|
+
<a name="l00481"></a>00481 <span class="keywordflow">if</span> (ret == -1) {
|
499
|
+
<a name="l00482"></a>00482 <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);
|
500
|
+
<a name="l00483"></a>00483 }
|
501
|
+
<a name="l00484"></a>00484
|
502
|
+
<a name="l00485"></a>00485 control_header = CMSG_FIRSTHDR(&msg);
|
503
|
+
<a name="l00486"></a>00486 <span class="keywordflow">if</span> (control_header->cmsg_len != EXPECTED_CMSG_LEN
|
504
|
+
<a name="l00487"></a>00487 || control_header->cmsg_level != SOL_SOCKET
|
505
|
+
<a name="l00488"></a>00488 || control_header->cmsg_type != SCM_RIGHTS) {
|
506
|
+
<a name="l00489"></a>00489 <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>);
|
507
|
+
<a name="l00490"></a>00490 }
|
508
|
+
<a name="l00491"></a>00491 <span class="preprocessor"> #ifdef __APPLE__</span>
|
509
|
+
<a name="l00492"></a>00492 <span class="preprocessor"></span> <span class="keywordflow">return</span> control_data.fd;
|
510
|
+
<a name="l00493"></a>00493 <span class="preprocessor"> #else</span>
|
511
|
+
<a name="l00494"></a>00494 <span class="preprocessor"></span> <span class="keywordflow">return</span> *((<span class="keywordtype">int</span> *) CMSG_DATA(control_header));
|
512
|
+
<a name="l00495"></a>00495 <span class="preprocessor"> #endif</span>
|
513
|
+
<a name="l00496"></a>00496 <span class="preprocessor"></span> }
|
514
|
+
<a name="l00497"></a>00497 };
|
515
|
+
<a name="l00498"></a>00498
|
516
|
+
<a name="l00499"></a>00499 } <span class="comment">// namespace Passenger</span>
|
517
|
+
<a name="l00500"></a>00500
|
518
|
+
<a name="l00501"></a>00501 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_MESSAGE_CHANNEL_H_ */</span>
|
519
|
+
</pre></div></div>
|
520
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:42 2008 for Passenger by
|
502
521
|
<a href="http://www.doxygen.org/index.html">
|
503
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
522
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
504
523
|
</body>
|
505
524
|
</html>
|