passenger_dudemeister 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1565) hide show
  1. data/DEVELOPERS.TXT +113 -0
  2. data/INSTALL +6 -0
  3. data/LICENSE +19 -0
  4. data/NEWS +429 -0
  5. data/PACKAGING.TXT +25 -0
  6. data/README +45 -0
  7. data/Rakefile +56 -0
  8. data/bin/passenger +32 -0
  9. data/bin/passenger-config +46 -0
  10. data/bin/passenger-install-apache2-module +237 -0
  11. data/bin/passenger-install-nginx-module +476 -0
  12. data/bin/passenger-make-enterprisey +82 -0
  13. data/bin/passenger-memory-stats +171 -0
  14. data/bin/passenger-status +211 -0
  15. data/build/agents.rb +80 -0
  16. data/build/apache2.rb +168 -0
  17. data/build/basics.rb +105 -0
  18. data/build/common_library.rb +268 -0
  19. data/build/config.rb +42 -0
  20. data/build/cplusplus_support.rb +61 -0
  21. data/build/cxx_tests.rb +219 -0
  22. data/build/documentation.rb +84 -0
  23. data/build/gempackagetask.rb +99 -0
  24. data/build/integration_tests.rb +64 -0
  25. data/build/misc.rb +153 -0
  26. data/build/nginx.rb +72 -0
  27. data/build/oxt_tests.rb +59 -0
  28. data/build/packagetask.rb +186 -0
  29. data/build/packaging.rb +194 -0
  30. data/build/rake_extensions.rb +182 -0
  31. data/build/rdoctask.rb +209 -0
  32. data/build/rpm.rb +98 -0
  33. data/build/ruby_extension.rb +52 -0
  34. data/build/ruby_tests.rb +49 -0
  35. data/build/test_basics.rb +43 -0
  36. data/debian/README.Debian +15 -0
  37. data/debian/changelog +185 -0
  38. data/debian/compat +1 -0
  39. data/debian/control +49 -0
  40. data/debian/copyright +20 -0
  41. data/debian/libapache2-mod-passenger.install +1 -0
  42. data/debian/libapache2-mod-passenger.postinst +36 -0
  43. data/debian/libapache2-mod-passenger.prerm +15 -0
  44. data/debian/passenger-common.install +4 -0
  45. data/debian/passenger.conf +4 -0
  46. data/debian/passenger.load +1 -0
  47. data/debian/prerm +2 -0
  48. data/debian/rules +37 -0
  49. data/debian/watch +3 -0
  50. data/dev/copy_boost_headers.rb +155 -0
  51. data/dev/find_owner_pipe_leaks.rb +128 -0
  52. data/dev/render_error_pages.rb +116 -0
  53. data/doc/ApplicationPool algorithm.txt +615 -0
  54. data/doc/Architectural overview.html +1 -0
  55. data/doc/Architectural overview.txt +334 -0
  56. data/doc/Doxyfile +241 -0
  57. data/doc/Security of user switching support.html +1 -0
  58. data/doc/Security of user switching support.txt +197 -0
  59. data/doc/Users guide Apache.html +1 -0
  60. data/doc/Users guide Apache.txt +2208 -0
  61. data/doc/Users guide Nginx.html +1 -0
  62. data/doc/Users guide Nginx.txt +1394 -0
  63. data/doc/Users guide Standalone.html +1 -0
  64. data/doc/Users guide Standalone.txt +40 -0
  65. data/doc/definitions.h +5 -0
  66. data/doc/images/by_sa.png +0 -0
  67. data/doc/images/conservative_spawning.png +0 -0
  68. data/doc/images/conservative_spawning.svg +248 -0
  69. data/doc/images/icons/README +5 -0
  70. data/doc/images/icons/callouts/1.png +0 -0
  71. data/doc/images/icons/callouts/10.png +0 -0
  72. data/doc/images/icons/callouts/11.png +0 -0
  73. data/doc/images/icons/callouts/12.png +0 -0
  74. data/doc/images/icons/callouts/13.png +0 -0
  75. data/doc/images/icons/callouts/14.png +0 -0
  76. data/doc/images/icons/callouts/15.png +0 -0
  77. data/doc/images/icons/callouts/2.png +0 -0
  78. data/doc/images/icons/callouts/3.png +0 -0
  79. data/doc/images/icons/callouts/4.png +0 -0
  80. data/doc/images/icons/callouts/5.png +0 -0
  81. data/doc/images/icons/callouts/6.png +0 -0
  82. data/doc/images/icons/callouts/7.png +0 -0
  83. data/doc/images/icons/callouts/8.png +0 -0
  84. data/doc/images/icons/callouts/9.png +0 -0
  85. data/doc/images/icons/caution.png +0 -0
  86. data/doc/images/icons/example.png +0 -0
  87. data/doc/images/icons/home.png +0 -0
  88. data/doc/images/icons/important.png +0 -0
  89. data/doc/images/icons/next.png +0 -0
  90. data/doc/images/icons/note.png +0 -0
  91. data/doc/images/icons/prev.png +0 -0
  92. data/doc/images/icons/tip.png +0 -0
  93. data/doc/images/icons/up.png +0 -0
  94. data/doc/images/icons/warning.png +0 -0
  95. data/doc/images/passenger_architecture.png +0 -0
  96. data/doc/images/passenger_architecture.svg +401 -0
  97. data/doc/images/phusion_banner.png +0 -0
  98. data/doc/images/smart-lv2.png +0 -0
  99. data/doc/images/smart-lv2.svg +320 -0
  100. data/doc/images/spawn_server_architecture.png +0 -0
  101. data/doc/images/spawn_server_architecture.svg +655 -0
  102. data/doc/images/typical_isolated_web_application.png +0 -0
  103. data/doc/images/typical_isolated_web_application.svg +213 -0
  104. data/doc/rdoc/classes/ConditionVariable.html +215 -0
  105. data/doc/rdoc/classes/Exception.html +120 -0
  106. data/doc/rdoc/classes/GC.html +113 -0
  107. data/doc/rdoc/classes/IO.html +221 -0
  108. data/doc/rdoc/classes/PhusionPassenger.html +397 -0
  109. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +180 -0
  110. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +647 -0
  111. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +654 -0
  112. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +92 -0
  113. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +97 -0
  114. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +96 -0
  115. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +97 -0
  116. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +96 -0
  117. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +619 -0
  118. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +142 -0
  119. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +368 -0
  120. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +231 -0
  121. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +588 -0
  122. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +92 -0
  123. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +92 -0
  124. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +147 -0
  125. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +279 -0
  126. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +92 -0
  127. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +92 -0
  128. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +123 -0
  129. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +92 -0
  130. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +341 -0
  131. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +294 -0
  132. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +199 -0
  133. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +155 -0
  134. data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +367 -0
  135. data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +95 -0
  136. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +351 -0
  137. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +98 -0
  138. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +200 -0
  139. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +410 -0
  140. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +98 -0
  141. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +156 -0
  142. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +115 -0
  143. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +202 -0
  144. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +172 -0
  145. data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +273 -0
  146. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +145 -0
  147. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +162 -0
  148. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +141 -0
  149. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +92 -0
  150. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +673 -0
  151. data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +92 -0
  152. data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +415 -0
  153. data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +134 -0
  154. data/doc/rdoc/classes/PhusionPassenger/Packaging.html +129 -0
  155. data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +1972 -0
  156. data/doc/rdoc/classes/PhusionPassenger/Plugin.html +237 -0
  157. data/doc/rdoc/classes/PhusionPassenger/Rack.html +91 -0
  158. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +312 -0
  159. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +98 -0
  160. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +218 -0
  161. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +114 -0
  162. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +259 -0
  163. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +139 -0
  164. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +118 -0
  165. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +135 -0
  166. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +378 -0
  167. data/doc/rdoc/classes/PhusionPassenger/Standalone.html +111 -0
  168. data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +252 -0
  169. data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +161 -0
  170. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +368 -0
  171. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +132 -0
  172. data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +151 -0
  173. data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +189 -0
  174. data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +177 -0
  175. data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +341 -0
  176. data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +203 -0
  177. data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +156 -0
  178. data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +168 -0
  179. data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +86 -0
  180. data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +135 -0
  181. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +125 -0
  182. data/doc/rdoc/classes/PhusionPassenger/Utils.html +1543 -0
  183. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +204 -0
  184. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +171 -0
  185. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +140 -0
  186. data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +260 -0
  187. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +169 -0
  188. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +265 -0
  189. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +120 -0
  190. data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +561 -0
  191. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +140 -0
  192. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +89 -0
  193. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +182 -0
  194. data/doc/rdoc/classes/Process.html +115 -0
  195. data/doc/rdoc/classes/Signal.html +139 -0
  196. data/doc/rdoc/created.rid +1 -0
  197. data/doc/rdoc/files/DEVELOPERS_TXT.html +280 -0
  198. data/doc/rdoc/files/README.html +157 -0
  199. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +130 -0
  200. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +135 -0
  201. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +126 -0
  202. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +128 -0
  203. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +126 -0
  204. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +132 -0
  205. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +122 -0
  206. data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +129 -0
  207. data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +127 -0
  208. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +141 -0
  209. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +126 -0
  210. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +146 -0
  211. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +125 -0
  212. data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +132 -0
  213. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +126 -0
  214. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +122 -0
  215. data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +122 -0
  216. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +147 -0
  217. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +122 -0
  218. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +127 -0
  219. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +120 -0
  220. data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +127 -0
  221. data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +132 -0
  222. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
  223. data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +127 -0
  224. data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +129 -0
  225. data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +127 -0
  226. data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +126 -0
  227. data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +126 -0
  228. data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +126 -0
  229. data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +127 -0
  230. data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +128 -0
  231. data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +126 -0
  232. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +122 -0
  233. data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +127 -0
  234. data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +127 -0
  235. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +137 -0
  236. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +125 -0
  237. data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +127 -0
  238. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +122 -0
  239. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +160 -0
  240. data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +127 -0
  241. data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +136 -0
  242. data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +126 -0
  243. data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +126 -0
  244. data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +126 -0
  245. data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +127 -0
  246. data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +133 -0
  247. data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +136 -0
  248. data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +126 -0
  249. data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +126 -0
  250. data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +126 -0
  251. data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +127 -0
  252. data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +126 -0
  253. data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +120 -0
  254. data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +100 -0
  255. data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +122 -0
  256. data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +126 -0
  257. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +179 -0
  258. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +132 -0
  259. data/doc/rdoc/fr_class_index.html +138 -0
  260. data/doc/rdoc/fr_file_index.html +108 -0
  261. data/doc/rdoc/fr_method_index.html +433 -0
  262. data/doc/rdoc/index.html +26 -0
  263. data/doc/rdoc/rdoc-style.css +187 -0
  264. data/doc/template/horo.rb +613 -0
  265. data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +201 -0
  266. data/doc/users_guide_snippets/appendix_a_about.txt +13 -0
  267. data/doc/users_guide_snippets/appendix_b_terminology.txt +63 -0
  268. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +303 -0
  269. data/doc/users_guide_snippets/global_queueing_explained.txt +74 -0
  270. data/doc/users_guide_snippets/passenger_spawn_method.txt +49 -0
  271. data/doc/users_guide_snippets/rackup_specifications.txt +71 -0
  272. data/doc/users_guide_snippets/tips.txt +207 -0
  273. data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +22 -0
  274. data/ext/apache2/Bucket.cpp +190 -0
  275. data/ext/apache2/Bucket.h +87 -0
  276. data/ext/apache2/Configuration.cpp +717 -0
  277. data/ext/apache2/Configuration.h +51 -0
  278. data/ext/apache2/Configuration.hpp +462 -0
  279. data/ext/apache2/DirectoryMapper.h +280 -0
  280. data/ext/apache2/HelperAgent.cpp +365 -0
  281. data/ext/apache2/Hooks.cpp +1757 -0
  282. data/ext/apache2/Hooks.h +45 -0
  283. data/ext/apache2/mod_passenger.c +44 -0
  284. data/ext/boost/algorithm/string/case_conv.hpp +176 -0
  285. data/ext/boost/algorithm/string/compare.hpp +199 -0
  286. data/ext/boost/algorithm/string/concept.hpp +83 -0
  287. data/ext/boost/algorithm/string/config.hpp +28 -0
  288. data/ext/boost/algorithm/string/constants.hpp +36 -0
  289. data/ext/boost/algorithm/string/detail/case_conv.hpp +121 -0
  290. data/ext/boost/algorithm/string/detail/find_format.hpp +204 -0
  291. data/ext/boost/algorithm/string/detail/find_format_all.hpp +273 -0
  292. data/ext/boost/algorithm/string/detail/find_format_store.hpp +89 -0
  293. data/ext/boost/algorithm/string/detail/finder.hpp +646 -0
  294. data/ext/boost/algorithm/string/detail/formatter.hpp +94 -0
  295. data/ext/boost/algorithm/string/detail/replace_storage.hpp +159 -0
  296. data/ext/boost/algorithm/string/detail/sequence.hpp +200 -0
  297. data/ext/boost/algorithm/string/detail/util.hpp +106 -0
  298. data/ext/boost/algorithm/string/erase.hpp +844 -0
  299. data/ext/boost/algorithm/string/find_format.hpp +287 -0
  300. data/ext/boost/algorithm/string/finder.hpp +270 -0
  301. data/ext/boost/algorithm/string/formatter.hpp +103 -0
  302. data/ext/boost/algorithm/string/replace.hpp +928 -0
  303. data/ext/boost/algorithm/string/sequence_traits.hpp +193 -0
  304. data/ext/boost/algorithm/string/yes_no_type.hpp +33 -0
  305. data/ext/boost/assert.hpp +50 -0
  306. data/ext/boost/bind.hpp +24 -0
  307. data/ext/boost/bind/arg.hpp +62 -0
  308. data/ext/boost/bind/bind.hpp +1751 -0
  309. data/ext/boost/bind/bind_cc.hpp +117 -0
  310. data/ext/boost/bind/bind_mf2_cc.hpp +228 -0
  311. data/ext/boost/bind/bind_mf_cc.hpp +227 -0
  312. data/ext/boost/bind/bind_template.hpp +345 -0
  313. data/ext/boost/bind/mem_fn.hpp +389 -0
  314. data/ext/boost/bind/mem_fn_cc.hpp +103 -0
  315. data/ext/boost/bind/mem_fn_template.hpp +1047 -0
  316. data/ext/boost/bind/placeholders.hpp +69 -0
  317. data/ext/boost/bind/storage.hpp +475 -0
  318. data/ext/boost/call_traits.hpp +24 -0
  319. data/ext/boost/checked_delete.hpp +69 -0
  320. data/ext/boost/concept/assert.hpp +46 -0
  321. data/ext/boost/concept/detail/backward_compatibility.hpp +16 -0
  322. data/ext/boost/concept/detail/concept_def.hpp +51 -0
  323. data/ext/boost/concept/detail/concept_undef.hpp +5 -0
  324. data/ext/boost/concept/detail/general.hpp +75 -0
  325. data/ext/boost/concept/detail/has_constraints.hpp +50 -0
  326. data/ext/boost/concept/usage.hpp +44 -0
  327. data/ext/boost/concept_check.hpp +1007 -0
  328. data/ext/boost/config.hpp +70 -0
  329. data/ext/boost/config/abi/borland_prefix.hpp +27 -0
  330. data/ext/boost/config/abi/borland_suffix.hpp +12 -0
  331. data/ext/boost/config/abi/msvc_prefix.hpp +22 -0
  332. data/ext/boost/config/abi/msvc_suffix.hpp +8 -0
  333. data/ext/boost/config/abi_prefix.hpp +25 -0
  334. data/ext/boost/config/abi_suffix.hpp +27 -0
  335. data/ext/boost/config/auto_link.hpp +420 -0
  336. data/ext/boost/config/compiler/borland.hpp +275 -0
  337. data/ext/boost/config/compiler/clang.hpp +62 -0
  338. data/ext/boost/config/compiler/codegear.hpp +177 -0
  339. data/ext/boost/config/compiler/comeau.hpp +59 -0
  340. data/ext/boost/config/compiler/common_edg.hpp +99 -0
  341. data/ext/boost/config/compiler/compaq_cxx.hpp +19 -0
  342. data/ext/boost/config/compiler/digitalmars.hpp +93 -0
  343. data/ext/boost/config/compiler/gcc.hpp +243 -0
  344. data/ext/boost/config/compiler/gcc_xml.hpp +55 -0
  345. data/ext/boost/config/compiler/greenhills.hpp +28 -0
  346. data/ext/boost/config/compiler/hp_acc.hpp +127 -0
  347. data/ext/boost/config/compiler/intel.hpp +196 -0
  348. data/ext/boost/config/compiler/kai.hpp +33 -0
  349. data/ext/boost/config/compiler/metrowerks.hpp +139 -0
  350. data/ext/boost/config/compiler/mpw.hpp +81 -0
  351. data/ext/boost/config/compiler/nvcc.hpp +86 -0
  352. data/ext/boost/config/compiler/pgi.hpp +77 -0
  353. data/ext/boost/config/compiler/sgi_mipspro.hpp +29 -0
  354. data/ext/boost/config/compiler/sunpro_cc.hpp +144 -0
  355. data/ext/boost/config/compiler/vacpp.hpp +96 -0
  356. data/ext/boost/config/compiler/visualc.hpp +274 -0
  357. data/ext/boost/config/no_tr1/cmath.hpp +28 -0
  358. data/ext/boost/config/no_tr1/complex.hpp +28 -0
  359. data/ext/boost/config/no_tr1/functional.hpp +28 -0
  360. data/ext/boost/config/no_tr1/memory.hpp +28 -0
  361. data/ext/boost/config/no_tr1/utility.hpp +28 -0
  362. data/ext/boost/config/platform/aix.hpp +33 -0
  363. data/ext/boost/config/platform/amigaos.hpp +15 -0
  364. data/ext/boost/config/platform/beos.hpp +26 -0
  365. data/ext/boost/config/platform/bsd.hpp +86 -0
  366. data/ext/boost/config/platform/cygwin.hpp +48 -0
  367. data/ext/boost/config/platform/hpux.hpp +87 -0
  368. data/ext/boost/config/platform/irix.hpp +31 -0
  369. data/ext/boost/config/platform/linux.hpp +98 -0
  370. data/ext/boost/config/platform/macos.hpp +86 -0
  371. data/ext/boost/config/platform/qnxnto.hpp +31 -0
  372. data/ext/boost/config/platform/solaris.hpp +28 -0
  373. data/ext/boost/config/platform/symbian.hpp +94 -0
  374. data/ext/boost/config/platform/vxworks.hpp +31 -0
  375. data/ext/boost/config/platform/win32.hpp +65 -0
  376. data/ext/boost/config/posix_features.hpp +95 -0
  377. data/ext/boost/config/requires_threads.hpp +92 -0
  378. data/ext/boost/config/select_compiler_config.hpp +129 -0
  379. data/ext/boost/config/select_platform_config.hpp +98 -0
  380. data/ext/boost/config/select_stdlib_config.hpp +77 -0
  381. data/ext/boost/config/stdlib/dinkumware.hpp +148 -0
  382. data/ext/boost/config/stdlib/libcomo.hpp +72 -0
  383. data/ext/boost/config/stdlib/libstdcpp3.hpp +128 -0
  384. data/ext/boost/config/stdlib/modena.hpp +56 -0
  385. data/ext/boost/config/stdlib/msl.hpp +84 -0
  386. data/ext/boost/config/stdlib/roguewave.hpp +180 -0
  387. data/ext/boost/config/stdlib/sgi.hpp +137 -0
  388. data/ext/boost/config/stdlib/stlport.hpp +237 -0
  389. data/ext/boost/config/stdlib/vacpp.hpp +44 -0
  390. data/ext/boost/config/suffix.hpp +639 -0
  391. data/ext/boost/config/user.hpp +124 -0
  392. data/ext/boost/config/warning_disable.hpp +47 -0
  393. data/ext/boost/cstdint.hpp +504 -0
  394. data/ext/boost/current_function.hpp +67 -0
  395. data/ext/boost/date_time/adjust_functors.hpp +178 -0
  396. data/ext/boost/date_time/c_time.hpp +107 -0
  397. data/ext/boost/date_time/compiler_config.hpp +171 -0
  398. data/ext/boost/date_time/constrained_value.hpp +121 -0
  399. data/ext/boost/date_time/date.hpp +208 -0
  400. data/ext/boost/date_time/date_clock_device.hpp +77 -0
  401. data/ext/boost/date_time/date_defs.hpp +26 -0
  402. data/ext/boost/date_time/date_duration.hpp +146 -0
  403. data/ext/boost/date_time/date_duration_types.hpp +269 -0
  404. data/ext/boost/date_time/date_facet.hpp +764 -0
  405. data/ext/boost/date_time/date_format_simple.hpp +159 -0
  406. data/ext/boost/date_time/date_formatting.hpp +127 -0
  407. data/ext/boost/date_time/date_formatting_limited.hpp +121 -0
  408. data/ext/boost/date_time/date_formatting_locales.hpp +233 -0
  409. data/ext/boost/date_time/date_generator_formatter.hpp +265 -0
  410. data/ext/boost/date_time/date_generator_parser.hpp +330 -0
  411. data/ext/boost/date_time/date_generators.hpp +509 -0
  412. data/ext/boost/date_time/date_iterator.hpp +101 -0
  413. data/ext/boost/date_time/date_names_put.hpp +320 -0
  414. data/ext/boost/date_time/date_parsing.hpp +316 -0
  415. data/ext/boost/date_time/dst_rules.hpp +391 -0
  416. data/ext/boost/date_time/filetime_functions.hpp +170 -0
  417. data/ext/boost/date_time/format_date_parser.hpp +743 -0
  418. data/ext/boost/date_time/gregorian/conversion.hpp +68 -0
  419. data/ext/boost/date_time/gregorian/formatters.hpp +162 -0
  420. data/ext/boost/date_time/gregorian/formatters_limited.hpp +81 -0
  421. data/ext/boost/date_time/gregorian/greg_calendar.hpp +48 -0
  422. data/ext/boost/date_time/gregorian/greg_date.hpp +136 -0
  423. data/ext/boost/date_time/gregorian/greg_day.hpp +57 -0
  424. data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +38 -0
  425. data/ext/boost/date_time/gregorian/greg_duration.hpp +134 -0
  426. data/ext/boost/date_time/gregorian/greg_duration_types.hpp +43 -0
  427. data/ext/boost/date_time/gregorian/greg_month.hpp +105 -0
  428. data/ext/boost/date_time/gregorian/greg_weekday.hpp +66 -0
  429. data/ext/boost/date_time/gregorian/greg_year.hpp +53 -0
  430. data/ext/boost/date_time/gregorian/greg_ymd.hpp +33 -0
  431. data/ext/boost/date_time/gregorian/gregorian.hpp +38 -0
  432. data/ext/boost/date_time/gregorian/gregorian_io.hpp +784 -0
  433. data/ext/boost/date_time/gregorian/gregorian_types.hpp +109 -0
  434. data/ext/boost/date_time/gregorian/parsers.hpp +91 -0
  435. data/ext/boost/date_time/gregorian_calendar.hpp +70 -0
  436. data/ext/boost/date_time/gregorian_calendar.ipp +219 -0
  437. data/ext/boost/date_time/int_adapter.hpp +509 -0
  438. data/ext/boost/date_time/iso_format.hpp +303 -0
  439. data/ext/boost/date_time/locale_config.hpp +31 -0
  440. data/ext/boost/date_time/microsec_time_clock.hpp +127 -0
  441. data/ext/boost/date_time/parse_format_base.hpp +29 -0
  442. data/ext/boost/date_time/period.hpp +377 -0
  443. data/ext/boost/date_time/period_formatter.hpp +196 -0
  444. data/ext/boost/date_time/period_parser.hpp +198 -0
  445. data/ext/boost/date_time/posix_time/conversion.hpp +94 -0
  446. data/ext/boost/date_time/posix_time/date_duration_operators.hpp +114 -0
  447. data/ext/boost/date_time/posix_time/posix_time.hpp +39 -0
  448. data/ext/boost/date_time/posix_time/posix_time_config.hpp +178 -0
  449. data/ext/boost/date_time/posix_time/posix_time_duration.hpp +82 -0
  450. data/ext/boost/date_time/posix_time/posix_time_io.hpp +239 -0
  451. data/ext/boost/date_time/posix_time/posix_time_system.hpp +68 -0
  452. data/ext/boost/date_time/posix_time/posix_time_types.hpp +55 -0
  453. data/ext/boost/date_time/posix_time/ptime.hpp +65 -0
  454. data/ext/boost/date_time/posix_time/time_formatters.hpp +289 -0
  455. data/ext/boost/date_time/posix_time/time_parsers.hpp +44 -0
  456. data/ext/boost/date_time/posix_time/time_period.hpp +29 -0
  457. data/ext/boost/date_time/special_defs.hpp +25 -0
  458. data/ext/boost/date_time/special_values_formatter.hpp +96 -0
  459. data/ext/boost/date_time/special_values_parser.hpp +159 -0
  460. data/ext/boost/date_time/string_convert.hpp +33 -0
  461. data/ext/boost/date_time/string_parse_tree.hpp +278 -0
  462. data/ext/boost/date_time/strings_from_facet.hpp +125 -0
  463. data/ext/boost/date_time/time.hpp +191 -0
  464. data/ext/boost/date_time/time_clock.hpp +83 -0
  465. data/ext/boost/date_time/time_defs.hpp +43 -0
  466. data/ext/boost/date_time/time_duration.hpp +282 -0
  467. data/ext/boost/date_time/time_facet.hpp +1367 -0
  468. data/ext/boost/date_time/time_formatting_streams.hpp +122 -0
  469. data/ext/boost/date_time/time_iterator.hpp +52 -0
  470. data/ext/boost/date_time/time_parsing.hpp +321 -0
  471. data/ext/boost/date_time/time_resolution_traits.hpp +144 -0
  472. data/ext/boost/date_time/time_system_counted.hpp +254 -0
  473. data/ext/boost/date_time/time_system_split.hpp +207 -0
  474. data/ext/boost/date_time/wrapping_int.hpp +169 -0
  475. data/ext/boost/date_time/year_month_day.hpp +45 -0
  476. data/ext/boost/detail/call_traits.hpp +164 -0
  477. data/ext/boost/detail/endian.hpp +76 -0
  478. data/ext/boost/detail/indirect_traits.hpp +487 -0
  479. data/ext/boost/detail/iterator.hpp +494 -0
  480. data/ext/boost/detail/lcast_precision.hpp +184 -0
  481. data/ext/boost/detail/limits.hpp +449 -0
  482. data/ext/boost/detail/no_exceptions_support.hpp +87 -0
  483. data/ext/boost/detail/reference_content.hpp +141 -0
  484. data/ext/boost/detail/sp_typeinfo.hpp +129 -0
  485. data/ext/boost/detail/workaround.hpp +267 -0
  486. data/ext/boost/enable_shared_from_this.hpp +18 -0
  487. data/ext/boost/exception/current_exception_cast.hpp +43 -0
  488. data/ext/boost/exception/detail/attribute_noreturn.hpp +17 -0
  489. data/ext/boost/exception/detail/error_info_impl.hpp +75 -0
  490. data/ext/boost/exception/detail/exception_ptr.hpp +431 -0
  491. data/ext/boost/exception/detail/is_output_streamable.hpp +60 -0
  492. data/ext/boost/exception/detail/object_hex_dump.hpp +50 -0
  493. data/ext/boost/exception/detail/type_info.hpp +83 -0
  494. data/ext/boost/exception/diagnostic_information.hpp +184 -0
  495. data/ext/boost/exception/exception.hpp +436 -0
  496. data/ext/boost/exception/get_error_info.hpp +130 -0
  497. data/ext/boost/exception/info.hpp +200 -0
  498. data/ext/boost/exception/to_string.hpp +83 -0
  499. data/ext/boost/exception/to_string_stub.hpp +109 -0
  500. data/ext/boost/exception_ptr.hpp +11 -0
  501. data/ext/boost/function.hpp +66 -0
  502. data/ext/boost/function/detail/function_iterate.hpp +16 -0
  503. data/ext/boost/function/detail/maybe_include.hpp +267 -0
  504. data/ext/boost/function/detail/prologue.hpp +26 -0
  505. data/ext/boost/function/function_base.hpp +904 -0
  506. data/ext/boost/function/function_fwd.hpp +70 -0
  507. data/ext/boost/function/function_template.hpp +1158 -0
  508. data/ext/boost/function_equal.hpp +28 -0
  509. data/ext/boost/get_pointer.hpp +33 -0
  510. data/ext/boost/implicit_cast.hpp +29 -0
  511. data/ext/boost/integer.hpp +257 -0
  512. data/ext/boost/integer_fwd.hpp +180 -0
  513. data/ext/boost/integer_traits.hpp +261 -0
  514. data/ext/boost/io/ios_state.hpp +439 -0
  515. data/ext/boost/io_fwd.hpp +67 -0
  516. data/ext/boost/is_placeholder.hpp +31 -0
  517. data/ext/boost/iterator.hpp +59 -0
  518. data/ext/boost/iterator/detail/config_def.hpp +137 -0
  519. data/ext/boost/iterator/detail/config_undef.hpp +25 -0
  520. data/ext/boost/iterator/detail/enable_if.hpp +86 -0
  521. data/ext/boost/iterator/detail/facade_iterator_category.hpp +200 -0
  522. data/ext/boost/iterator/detail/minimum_category.hpp +116 -0
  523. data/ext/boost/iterator/interoperable.hpp +50 -0
  524. data/ext/boost/iterator/iterator_adaptor.hpp +371 -0
  525. data/ext/boost/iterator/iterator_categories.hpp +188 -0
  526. data/ext/boost/iterator/iterator_concepts.hpp +284 -0
  527. data/ext/boost/iterator/iterator_facade.hpp +878 -0
  528. data/ext/boost/iterator/iterator_traits.hpp +92 -0
  529. data/ext/boost/iterator/reverse_iterator.hpp +69 -0
  530. data/ext/boost/iterator/transform_iterator.hpp +187 -0
  531. data/ext/boost/lexical_cast.hpp +1213 -0
  532. data/ext/boost/limits.hpp +146 -0
  533. data/ext/boost/make_shared.hpp +17 -0
  534. data/ext/boost/mem_fn.hpp +24 -0
  535. data/ext/boost/memory_order.hpp +53 -0
  536. data/ext/boost/mpl/always.hpp +39 -0
  537. data/ext/boost/mpl/and.hpp +60 -0
  538. data/ext/boost/mpl/apply.hpp +229 -0
  539. data/ext/boost/mpl/apply_fwd.hpp +107 -0
  540. data/ext/boost/mpl/apply_wrap.hpp +234 -0
  541. data/ext/boost/mpl/arg.hpp +131 -0
  542. data/ext/boost/mpl/arg_fwd.hpp +28 -0
  543. data/ext/boost/mpl/assert.hpp +370 -0
  544. data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -0
  545. data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -0
  546. data/ext/boost/mpl/aux_/arity.hpp +39 -0
  547. data/ext/boost/mpl/aux_/arity_spec.hpp +67 -0
  548. data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -0
  549. data/ext/boost/mpl/aux_/config/adl.hpp +40 -0
  550. data/ext/boost/mpl/aux_/config/arrays.hpp +30 -0
  551. data/ext/boost/mpl/aux_/config/bcc.hpp +28 -0
  552. data/ext/boost/mpl/aux_/config/bind.hpp +33 -0
  553. data/ext/boost/mpl/aux_/config/compiler.hpp +66 -0
  554. data/ext/boost/mpl/aux_/config/ctps.hpp +30 -0
  555. data/ext/boost/mpl/aux_/config/dtp.hpp +46 -0
  556. data/ext/boost/mpl/aux_/config/eti.hpp +47 -0
  557. data/ext/boost/mpl/aux_/config/gcc.hpp +23 -0
  558. data/ext/boost/mpl/aux_/config/has_apply.hpp +32 -0
  559. data/ext/boost/mpl/aux_/config/has_xxx.hpp +34 -0
  560. data/ext/boost/mpl/aux_/config/integral.hpp +38 -0
  561. data/ext/boost/mpl/aux_/config/intel.hpp +21 -0
  562. data/ext/boost/mpl/aux_/config/lambda.hpp +32 -0
  563. data/ext/boost/mpl/aux_/config/msvc.hpp +21 -0
  564. data/ext/boost/mpl/aux_/config/msvc_typename.hpp +26 -0
  565. data/ext/boost/mpl/aux_/config/nttp.hpp +41 -0
  566. data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -0
  567. data/ext/boost/mpl/aux_/config/pp_counter.hpp +26 -0
  568. data/ext/boost/mpl/aux_/config/preprocessor.hpp +39 -0
  569. data/ext/boost/mpl/aux_/config/static_constant.hpp +25 -0
  570. data/ext/boost/mpl/aux_/config/ttp.hpp +41 -0
  571. data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +19 -0
  572. data/ext/boost/mpl/aux_/config/workaround.hpp +19 -0
  573. data/ext/boost/mpl/aux_/full_lambda.hpp +354 -0
  574. data/ext/boost/mpl/aux_/has_apply.hpp +32 -0
  575. data/ext/boost/mpl/aux_/has_type.hpp +23 -0
  576. data/ext/boost/mpl/aux_/include_preprocessed.hpp +42 -0
  577. data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -0
  578. data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -0
  579. data/ext/boost/mpl/aux_/lambda_support.hpp +169 -0
  580. data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -0
  581. data/ext/boost/mpl/aux_/na.hpp +95 -0
  582. data/ext/boost/mpl/aux_/na_assert.hpp +34 -0
  583. data/ext/boost/mpl/aux_/na_fwd.hpp +31 -0
  584. data/ext/boost/mpl/aux_/na_spec.hpp +175 -0
  585. data/ext/boost/mpl/aux_/nested_type_wknd.hpp +48 -0
  586. data/ext/boost/mpl/aux_/nttp_decl.hpp +35 -0
  587. data/ext/boost/mpl/aux_/preprocessed/gcc/and.hpp +69 -0
  588. data/ext/boost/mpl/aux_/preprocessed/gcc/apply.hpp +169 -0
  589. data/ext/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +52 -0
  590. data/ext/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +84 -0
  591. data/ext/boost/mpl/aux_/preprocessed/gcc/arg.hpp +123 -0
  592. data/ext/boost/mpl/aux_/preprocessed/gcc/bind.hpp +561 -0
  593. data/ext/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +52 -0
  594. data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -0
  595. data/ext/boost/mpl/aux_/preprocessed/gcc/or.hpp +69 -0
  596. data/ext/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +105 -0
  597. data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -0
  598. data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +97 -0
  599. data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -0
  600. data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -0
  601. data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -0
  602. data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -0
  603. data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -0
  604. data/ext/boost/mpl/aux_/static_cast.hpp +27 -0
  605. data/ext/boost/mpl/aux_/template_arity.hpp +189 -0
  606. data/ext/boost/mpl/aux_/template_arity_fwd.hpp +23 -0
  607. data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -0
  608. data/ext/boost/mpl/aux_/value_wknd.hpp +89 -0
  609. data/ext/boost/mpl/aux_/yes_no.hpp +58 -0
  610. data/ext/boost/mpl/bind.hpp +551 -0
  611. data/ext/boost/mpl/bind_fwd.hpp +99 -0
  612. data/ext/boost/mpl/bool.hpp +39 -0
  613. data/ext/boost/mpl/bool_fwd.hpp +33 -0
  614. data/ext/boost/mpl/eval_if.hpp +71 -0
  615. data/ext/boost/mpl/has_xxx.hpp +640 -0
  616. data/ext/boost/mpl/identity.hpp +45 -0
  617. data/ext/boost/mpl/if.hpp +135 -0
  618. data/ext/boost/mpl/int.hpp +22 -0
  619. data/ext/boost/mpl/int_fwd.hpp +27 -0
  620. data/ext/boost/mpl/integral_c.hpp +51 -0
  621. data/ext/boost/mpl/integral_c_fwd.hpp +32 -0
  622. data/ext/boost/mpl/integral_c_tag.hpp +26 -0
  623. data/ext/boost/mpl/lambda.hpp +29 -0
  624. data/ext/boost/mpl/lambda_fwd.hpp +57 -0
  625. data/ext/boost/mpl/limits/arity.hpp +21 -0
  626. data/ext/boost/mpl/logical.hpp +21 -0
  627. data/ext/boost/mpl/next.hpp +19 -0
  628. data/ext/boost/mpl/next_prior.hpp +49 -0
  629. data/ext/boost/mpl/not.hpp +51 -0
  630. data/ext/boost/mpl/or.hpp +61 -0
  631. data/ext/boost/mpl/placeholders.hpp +100 -0
  632. data/ext/boost/mpl/protect.hpp +55 -0
  633. data/ext/boost/mpl/quote.hpp +151 -0
  634. data/ext/boost/mpl/size_t.hpp +25 -0
  635. data/ext/boost/mpl/size_t_fwd.hpp +28 -0
  636. data/ext/boost/mpl/void.hpp +76 -0
  637. data/ext/boost/mpl/void_fwd.hpp +26 -0
  638. data/ext/boost/next_prior.hpp +51 -0
  639. data/ext/boost/non_type.hpp +27 -0
  640. data/ext/boost/noncopyable.hpp +36 -0
  641. data/ext/boost/none.hpp +28 -0
  642. data/ext/boost/none_t.hpp +24 -0
  643. data/ext/boost/operators.hpp +976 -0
  644. data/ext/boost/optional.hpp +18 -0
  645. data/ext/boost/optional/optional.hpp +924 -0
  646. data/ext/boost/optional/optional_fwd.hpp +22 -0
  647. data/ext/boost/preprocessor/arithmetic/add.hpp +51 -0
  648. data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -0
  649. data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
  650. data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -0
  651. data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
  652. data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -0
  653. data/ext/boost/preprocessor/array/data.hpp +28 -0
  654. data/ext/boost/preprocessor/array/elem.hpp +29 -0
  655. data/ext/boost/preprocessor/array/size.hpp +28 -0
  656. data/ext/boost/preprocessor/cat.hpp +35 -0
  657. data/ext/boost/preprocessor/comma_if.hpp +17 -0
  658. data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
  659. data/ext/boost/preprocessor/config/config.hpp +70 -0
  660. data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
  661. data/ext/boost/preprocessor/control/detail/while.hpp +536 -0
  662. data/ext/boost/preprocessor/control/expr_iif.hpp +31 -0
  663. data/ext/boost/preprocessor/control/if.hpp +30 -0
  664. data/ext/boost/preprocessor/control/iif.hpp +34 -0
  665. data/ext/boost/preprocessor/control/while.hpp +312 -0
  666. data/ext/boost/preprocessor/debug/error.hpp +33 -0
  667. data/ext/boost/preprocessor/detail/auto_rec.hpp +293 -0
  668. data/ext/boost/preprocessor/detail/check.hpp +48 -0
  669. data/ext/boost/preprocessor/detail/is_binary.hpp +30 -0
  670. data/ext/boost/preprocessor/empty.hpp +17 -0
  671. data/ext/boost/preprocessor/enum.hpp +17 -0
  672. data/ext/boost/preprocessor/enum_params.hpp +17 -0
  673. data/ext/boost/preprocessor/facilities/empty.hpp +21 -0
  674. data/ext/boost/preprocessor/facilities/identity.hpp +23 -0
  675. data/ext/boost/preprocessor/identity.hpp +17 -0
  676. data/ext/boost/preprocessor/inc.hpp +17 -0
  677. data/ext/boost/preprocessor/iterate.hpp +17 -0
  678. data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -0
  679. data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -0
  680. data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -0
  681. data/ext/boost/preprocessor/iteration/iterate.hpp +82 -0
  682. data/ext/boost/preprocessor/list/adt.hpp +73 -0
  683. data/ext/boost/preprocessor/list/append.hpp +40 -0
  684. data/ext/boost/preprocessor/list/detail/fold_left.hpp +279 -0
  685. data/ext/boost/preprocessor/list/detail/fold_right.hpp +277 -0
  686. data/ext/boost/preprocessor/list/fold_left.hpp +303 -0
  687. data/ext/boost/preprocessor/list/fold_right.hpp +40 -0
  688. data/ext/boost/preprocessor/list/for_each_i.hpp +65 -0
  689. data/ext/boost/preprocessor/list/reverse.hpp +40 -0
  690. data/ext/boost/preprocessor/list/transform.hpp +49 -0
  691. data/ext/boost/preprocessor/logical/and.hpp +30 -0
  692. data/ext/boost/preprocessor/logical/bitand.hpp +38 -0
  693. data/ext/boost/preprocessor/logical/bool.hpp +288 -0
  694. data/ext/boost/preprocessor/logical/compl.hpp +36 -0
  695. data/ext/boost/preprocessor/logical/not.hpp +30 -0
  696. data/ext/boost/preprocessor/punctuation/comma.hpp +21 -0
  697. data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -0
  698. data/ext/boost/preprocessor/repeat.hpp +17 -0
  699. data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -0
  700. data/ext/boost/preprocessor/repetition/enum.hpp +66 -0
  701. data/ext/boost/preprocessor/repetition/enum_binary_params.hpp +54 -0
  702. data/ext/boost/preprocessor/repetition/enum_params.hpp +41 -0
  703. data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -0
  704. data/ext/boost/preprocessor/repetition/for.hpp +306 -0
  705. data/ext/boost/preprocessor/repetition/repeat.hpp +825 -0
  706. data/ext/boost/preprocessor/repetition/repeat_from_to.hpp +87 -0
  707. data/ext/boost/preprocessor/seq/cat.hpp +48 -0
  708. data/ext/boost/preprocessor/seq/elem.hpp +304 -0
  709. data/ext/boost/preprocessor/seq/enum.hpp +288 -0
  710. data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
  711. data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -0
  712. data/ext/boost/preprocessor/seq/seq.hpp +44 -0
  713. data/ext/boost/preprocessor/seq/size.hpp +548 -0
  714. data/ext/boost/preprocessor/seq/transform.hpp +48 -0
  715. data/ext/boost/preprocessor/slot/detail/def.hpp +49 -0
  716. data/ext/boost/preprocessor/slot/detail/shared.hpp +247 -0
  717. data/ext/boost/preprocessor/slot/slot.hpp +32 -0
  718. data/ext/boost/preprocessor/stringize.hpp +33 -0
  719. data/ext/boost/preprocessor/tuple/eat.hpp +57 -0
  720. data/ext/boost/preprocessor/tuple/elem.hpp +385 -0
  721. data/ext/boost/preprocessor/tuple/rem.hpp +72 -0
  722. data/ext/boost/preprocessor/tuple/to_list.hpp +62 -0
  723. data/ext/boost/range/algorithm/equal.hpp +188 -0
  724. data/ext/boost/range/as_literal.hpp +127 -0
  725. data/ext/boost/range/begin.hpp +132 -0
  726. data/ext/boost/range/concepts.hpp +331 -0
  727. data/ext/boost/range/config.hpp +54 -0
  728. data/ext/boost/range/const_iterator.hpp +67 -0
  729. data/ext/boost/range/detail/common.hpp +117 -0
  730. data/ext/boost/range/detail/extract_optional_type.hpp +52 -0
  731. data/ext/boost/range/detail/implementation_help.hpp +103 -0
  732. data/ext/boost/range/detail/misc_concept.hpp +33 -0
  733. data/ext/boost/range/detail/sfinae.hpp +77 -0
  734. data/ext/boost/range/detail/str_types.hpp +38 -0
  735. data/ext/boost/range/difference_type.hpp +29 -0
  736. data/ext/boost/range/distance.hpp +34 -0
  737. data/ext/boost/range/empty.hpp +34 -0
  738. data/ext/boost/range/end.hpp +131 -0
  739. data/ext/boost/range/functions.hpp +27 -0
  740. data/ext/boost/range/iterator.hpp +72 -0
  741. data/ext/boost/range/iterator_range.hpp +16 -0
  742. data/ext/boost/range/iterator_range_core.hpp +542 -0
  743. data/ext/boost/range/iterator_range_io.hpp +93 -0
  744. data/ext/boost/range/mutable_iterator.hpp +67 -0
  745. data/ext/boost/range/rbegin.hpp +65 -0
  746. data/ext/boost/range/rend.hpp +65 -0
  747. data/ext/boost/range/reverse_iterator.hpp +40 -0
  748. data/ext/boost/range/size.hpp +36 -0
  749. data/ext/boost/range/size_type.hpp +79 -0
  750. data/ext/boost/range/value_type.hpp +34 -0
  751. data/ext/boost/ref.hpp +189 -0
  752. data/ext/boost/scoped_array.hpp +16 -0
  753. data/ext/boost/scoped_ptr.hpp +16 -0
  754. data/ext/boost/shared_array.hpp +19 -0
  755. data/ext/boost/shared_ptr.hpp +19 -0
  756. data/ext/boost/smart_ptr/bad_weak_ptr.hpp +59 -0
  757. data/ext/boost/smart_ptr/detail/atomic_count.hpp +119 -0
  758. data/ext/boost/smart_ptr/detail/atomic_count_gcc.hpp +72 -0
  759. data/ext/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +77 -0
  760. data/ext/boost/smart_ptr/detail/atomic_count_pthreads.hpp +96 -0
  761. data/ext/boost/smart_ptr/detail/atomic_count_solaris.hpp +59 -0
  762. data/ext/boost/smart_ptr/detail/atomic_count_sync.hpp +61 -0
  763. data/ext/boost/smart_ptr/detail/atomic_count_win32.hpp +63 -0
  764. data/ext/boost/smart_ptr/detail/operator_bool.hpp +56 -0
  765. data/ext/boost/smart_ptr/detail/shared_count.hpp +444 -0
  766. data/ext/boost/smart_ptr/detail/sp_convertible.hpp +76 -0
  767. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +70 -0
  768. data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +150 -0
  769. data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +170 -0
  770. data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +158 -0
  771. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +157 -0
  772. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +172 -0
  773. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +181 -0
  774. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +166 -0
  775. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +173 -0
  776. data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +107 -0
  777. data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +135 -0
  778. data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +113 -0
  779. data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +131 -0
  780. data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +155 -0
  781. data/ext/boost/smart_ptr/detail/sp_counted_base_w32.hpp +130 -0
  782. data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +231 -0
  783. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +49 -0
  784. data/ext/boost/smart_ptr/detail/spinlock.hpp +53 -0
  785. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +85 -0
  786. data/ext/boost/smart_ptr/detail/spinlock_nt.hpp +89 -0
  787. data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +87 -0
  788. data/ext/boost/smart_ptr/detail/spinlock_pt.hpp +79 -0
  789. data/ext/boost/smart_ptr/detail/spinlock_sync.hpp +87 -0
  790. data/ext/boost/smart_ptr/detail/yield_k.hpp +149 -0
  791. data/ext/boost/smart_ptr/enable_shared_from_this.hpp +79 -0
  792. data/ext/boost/smart_ptr/make_shared.hpp +508 -0
  793. data/ext/boost/smart_ptr/scoped_array.hpp +107 -0
  794. data/ext/boost/smart_ptr/scoped_ptr.hpp +131 -0
  795. data/ext/boost/smart_ptr/shared_array.hpp +147 -0
  796. data/ext/boost/smart_ptr/shared_ptr.hpp +701 -0
  797. data/ext/boost/smart_ptr/weak_ptr.hpp +230 -0
  798. data/ext/boost/src/pthread/once.cpp +51 -0
  799. data/ext/boost/src/pthread/thread.cpp +616 -0
  800. data/ext/boost/src/pthread/timeconv.inl +133 -0
  801. data/ext/boost/src/tss_null.cpp +34 -0
  802. data/ext/boost/static_assert.hpp +132 -0
  803. data/ext/boost/thread.hpp +26 -0
  804. data/ext/boost/thread/barrier.hpp +64 -0
  805. data/ext/boost/thread/condition.hpp +16 -0
  806. data/ext/boost/thread/condition_variable.hpp +21 -0
  807. data/ext/boost/thread/detail/config.hpp +100 -0
  808. data/ext/boost/thread/detail/force_cast.hpp +39 -0
  809. data/ext/boost/thread/detail/move.hpp +60 -0
  810. data/ext/boost/thread/detail/platform.hpp +71 -0
  811. data/ext/boost/thread/detail/singleton.hpp +59 -0
  812. data/ext/boost/thread/detail/thread.hpp +540 -0
  813. data/ext/boost/thread/detail/thread_group.hpp +108 -0
  814. data/ext/boost/thread/detail/thread_heap_alloc.hpp +23 -0
  815. data/ext/boost/thread/detail/thread_interruption.hpp +35 -0
  816. data/ext/boost/thread/detail/tss_hooks.hpp +65 -0
  817. data/ext/boost/thread/exceptions.hpp +223 -0
  818. data/ext/boost/thread/future.hpp +1375 -0
  819. data/ext/boost/thread/locks.hpp +1585 -0
  820. data/ext/boost/thread/mutex.hpp +21 -0
  821. data/ext/boost/thread/once.hpp +33 -0
  822. data/ext/boost/thread/pthread/condition_variable.hpp +179 -0
  823. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +102 -0
  824. data/ext/boost/thread/pthread/mutex.hpp +236 -0
  825. data/ext/boost/thread/pthread/once.hpp +95 -0
  826. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +54 -0
  827. data/ext/boost/thread/pthread/recursive_mutex.hpp +345 -0
  828. data/ext/boost/thread/pthread/shared_mutex.hpp +303 -0
  829. data/ext/boost/thread/pthread/thread_data.hpp +129 -0
  830. data/ext/boost/thread/pthread/thread_heap_alloc.hpp +242 -0
  831. data/ext/boost/thread/pthread/timespec.hpp +36 -0
  832. data/ext/boost/thread/recursive_mutex.hpp +21 -0
  833. data/ext/boost/thread/shared_mutex.hpp +21 -0
  834. data/ext/boost/thread/thread.hpp +27 -0
  835. data/ext/boost/thread/thread_time.hpp +50 -0
  836. data/ext/boost/thread/tss.hpp +113 -0
  837. data/ext/boost/thread/xtime.hpp +92 -0
  838. data/ext/boost/throw_exception.hpp +91 -0
  839. data/ext/boost/token_functions.hpp +641 -0
  840. data/ext/boost/token_iterator.hpp +128 -0
  841. data/ext/boost/tokenizer.hpp +98 -0
  842. data/ext/boost/type.hpp +18 -0
  843. data/ext/boost/type_traits/add_const.hpp +47 -0
  844. data/ext/boost/type_traits/add_pointer.hpp +72 -0
  845. data/ext/boost/type_traits/add_reference.hpp +107 -0
  846. data/ext/boost/type_traits/add_volatile.hpp +47 -0
  847. data/ext/boost/type_traits/alignment_of.hpp +128 -0
  848. data/ext/boost/type_traits/broken_compiler_spec.hpp +117 -0
  849. data/ext/boost/type_traits/composite_traits.hpp +29 -0
  850. data/ext/boost/type_traits/config.hpp +76 -0
  851. data/ext/boost/type_traits/conversion_traits.hpp +17 -0
  852. data/ext/boost/type_traits/detail/bool_trait_def.hpp +173 -0
  853. data/ext/boost/type_traits/detail/bool_trait_undef.hpp +27 -0
  854. data/ext/boost/type_traits/detail/cv_traits_impl.hpp +97 -0
  855. data/ext/boost/type_traits/detail/false_result.hpp +28 -0
  856. data/ext/boost/type_traits/detail/ice_and.hpp +35 -0
  857. data/ext/boost/type_traits/detail/ice_eq.hpp +36 -0
  858. data/ext/boost/type_traits/detail/ice_not.hpp +31 -0
  859. data/ext/boost/type_traits/detail/ice_or.hpp +34 -0
  860. data/ext/boost/type_traits/detail/is_function_ptr_helper.hpp +220 -0
  861. data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -0
  862. data/ext/boost/type_traits/detail/size_t_trait_def.hpp +58 -0
  863. data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +16 -0
  864. data/ext/boost/type_traits/detail/template_arity_spec.hpp +31 -0
  865. data/ext/boost/type_traits/detail/type_trait_def.hpp +61 -0
  866. data/ext/boost/type_traits/detail/type_trait_undef.hpp +19 -0
  867. data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -0
  868. data/ext/boost/type_traits/function_traits.hpp +236 -0
  869. data/ext/boost/type_traits/has_nothrow_copy.hpp +39 -0
  870. data/ext/boost/type_traits/has_trivial_copy.hpp +49 -0
  871. data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
  872. data/ext/boost/type_traits/ice.hpp +20 -0
  873. data/ext/boost/type_traits/integral_constant.hpp +53 -0
  874. data/ext/boost/type_traits/intrinsics.hpp +240 -0
  875. data/ext/boost/type_traits/is_abstract.hpp +153 -0
  876. data/ext/boost/type_traits/is_arithmetic.hpp +51 -0
  877. data/ext/boost/type_traits/is_array.hpp +91 -0
  878. data/ext/boost/type_traits/is_base_and_derived.hpp +254 -0
  879. data/ext/boost/type_traits/is_base_of.hpp +51 -0
  880. data/ext/boost/type_traits/is_class.hpp +140 -0
  881. data/ext/boost/type_traits/is_const.hpp +165 -0
  882. data/ext/boost/type_traits/is_convertible.hpp +430 -0
  883. data/ext/boost/type_traits/is_enum.hpp +189 -0
  884. data/ext/boost/type_traits/is_float.hpp +27 -0
  885. data/ext/boost/type_traits/is_function.hpp +106 -0
  886. data/ext/boost/type_traits/is_fundamental.hpp +45 -0
  887. data/ext/boost/type_traits/is_integral.hpp +78 -0
  888. data/ext/boost/type_traits/is_lvalue_reference.hpp +118 -0
  889. data/ext/boost/type_traits/is_member_function_pointer.hpp +136 -0
  890. data/ext/boost/type_traits/is_member_pointer.hpp +116 -0
  891. data/ext/boost/type_traits/is_pod.hpp +135 -0
  892. data/ext/boost/type_traits/is_pointer.hpp +162 -0
  893. data/ext/boost/type_traits/is_reference.hpp +45 -0
  894. data/ext/boost/type_traits/is_rvalue_reference.hpp +29 -0
  895. data/ext/boost/type_traits/is_same.hpp +103 -0
  896. data/ext/boost/type_traits/is_scalar.hpp +55 -0
  897. data/ext/boost/type_traits/is_signed.hpp +135 -0
  898. data/ext/boost/type_traits/is_union.hpp +49 -0
  899. data/ext/boost/type_traits/is_unsigned.hpp +130 -0
  900. data/ext/boost/type_traits/is_void.hpp +38 -0
  901. data/ext/boost/type_traits/is_volatile.hpp +152 -0
  902. data/ext/boost/type_traits/make_unsigned.hpp +137 -0
  903. data/ext/boost/type_traits/remove_const.hpp +90 -0
  904. data/ext/boost/type_traits/remove_cv.hpp +83 -0
  905. data/ext/boost/type_traits/remove_pointer.hpp +43 -0
  906. data/ext/boost/type_traits/remove_reference.hpp +70 -0
  907. data/ext/boost/type_traits/type_with_alignment.hpp +393 -0
  908. data/ext/boost/units/detail/utility.hpp +104 -0
  909. data/ext/boost/utility.hpp +20 -0
  910. data/ext/boost/utility/addressof.hpp +102 -0
  911. data/ext/boost/utility/base_from_member.hpp +87 -0
  912. data/ext/boost/utility/binary.hpp +708 -0
  913. data/ext/boost/utility/compare_pointees.hpp +68 -0
  914. data/ext/boost/utility/enable_if.hpp +119 -0
  915. data/ext/boost/visit_each.hpp +29 -0
  916. data/ext/boost/weak_ptr.hpp +18 -0
  917. data/ext/common/AbstractSpawnManager.h +110 -0
  918. data/ext/common/Account.h +175 -0
  919. data/ext/common/AccountsDatabase.cpp +81 -0
  920. data/ext/common/AccountsDatabase.h +130 -0
  921. data/ext/common/AgentBase.cpp +323 -0
  922. data/ext/common/AgentBase.h +39 -0
  923. data/ext/common/AgentsStarter.cpp +154 -0
  924. data/ext/common/AgentsStarter.h +81 -0
  925. data/ext/common/AgentsStarter.hpp +646 -0
  926. data/ext/common/ApplicationPool/Client.h +796 -0
  927. data/ext/common/ApplicationPool/Interface.h +295 -0
  928. data/ext/common/ApplicationPool/Pool.h +1327 -0
  929. data/ext/common/ApplicationPool/Server.h +475 -0
  930. data/ext/common/BCrypt.cpp +343 -0
  931. data/ext/common/BCrypt.h +73 -0
  932. data/ext/common/Blowfish.c +685 -0
  933. data/ext/common/Blowfish.h +103 -0
  934. data/ext/common/Constants.h +48 -0
  935. data/ext/common/EventedClient.h +702 -0
  936. data/ext/common/EventedMessageServer.h +327 -0
  937. data/ext/common/EventedServer.h +295 -0
  938. data/ext/common/Exceptions.h +348 -0
  939. data/ext/common/FileDescriptor.h +293 -0
  940. data/ext/common/HelperAgent/BacktracesServer.h +59 -0
  941. data/ext/common/IniFile.h +488 -0
  942. data/ext/common/Logging.cpp +64 -0
  943. data/ext/common/Logging.h +695 -0
  944. data/ext/common/LoggingAgent/ChangeNotifier.h +63 -0
  945. data/ext/common/LoggingAgent/DataStoreId.h +177 -0
  946. data/ext/common/LoggingAgent/LoggingServer.h +1343 -0
  947. data/ext/common/LoggingAgent/Main.cpp +278 -0
  948. data/ext/common/LoggingAgent/RemoteSender.h +468 -0
  949. data/ext/common/MessageChannel.h +737 -0
  950. data/ext/common/MessageClient.h +297 -0
  951. data/ext/common/MessageReadersWriters.h +508 -0
  952. data/ext/common/MessageServer.h +581 -0
  953. data/ext/common/PoolOptions.h +518 -0
  954. data/ext/common/Process.h +255 -0
  955. data/ext/common/RandomGenerator.h +160 -0
  956. data/ext/common/ResourceLocator.h +134 -0
  957. data/ext/common/SafeLibev.h +149 -0
  958. data/ext/common/ServerInstanceDir.h +347 -0
  959. data/ext/common/Session.h +470 -0
  960. data/ext/common/SpawnManager.h +616 -0
  961. data/ext/common/StaticString.h +298 -0
  962. data/ext/common/StringListCreator.h +83 -0
  963. data/ext/common/Utils.cpp +972 -0
  964. data/ext/common/Utils.h +428 -0
  965. data/ext/common/Utils/Base64.cpp +143 -0
  966. data/ext/common/Utils/Base64.h +83 -0
  967. data/ext/common/Utils/BlockingQueue.h +136 -0
  968. data/ext/common/Utils/BufferedIO.h +196 -0
  969. data/ext/common/Utils/CachedFileStat.cpp +62 -0
  970. data/ext/common/Utils/CachedFileStat.h +51 -0
  971. data/ext/common/Utils/CachedFileStat.hpp +243 -0
  972. data/ext/common/Utils/FileChangeChecker.h +209 -0
  973. data/ext/common/Utils/IOUtils.cpp +913 -0
  974. data/ext/common/Utils/IOUtils.h +370 -0
  975. data/ext/common/Utils/MD5.cpp +406 -0
  976. data/ext/common/Utils/MD5.h +98 -0
  977. data/ext/common/Utils/MemZeroGuard.h +103 -0
  978. data/ext/common/Utils/ProcessMetricsCollector.h +590 -0
  979. data/ext/common/Utils/ScopeGuard.h +72 -0
  980. data/ext/common/Utils/StrIntUtils.cpp +363 -0
  981. data/ext/common/Utils/StrIntUtils.h +231 -0
  982. data/ext/common/Utils/SystemTime.cpp +37 -0
  983. data/ext/common/Utils/SystemTime.h +201 -0
  984. data/ext/common/Utils/Timer.h +152 -0
  985. data/ext/common/Utils/VariantMap.h +363 -0
  986. data/ext/common/Utils/utf8.h +35 -0
  987. data/ext/common/Utils/utf8/checked.h +324 -0
  988. data/ext/common/Utils/utf8/core.h +359 -0
  989. data/ext/common/Utils/utf8/unchecked.h +229 -0
  990. data/ext/common/Watchdog.cpp +1001 -0
  991. data/ext/google/COPYING +28 -0
  992. data/ext/google/ChangeLog +167 -0
  993. data/ext/google/dense_hash_map +310 -0
  994. data/ext/google/dense_hash_set +287 -0
  995. data/ext/google/sparse_hash_map +294 -0
  996. data/ext/google/sparse_hash_set +275 -0
  997. data/ext/google/sparsehash/densehashtable.h +1062 -0
  998. data/ext/google/sparsehash/sparseconfig.h +55 -0
  999. data/ext/google/sparsehash/sparsehashtable.h +1015 -0
  1000. data/ext/google/sparsetable +1468 -0
  1001. data/ext/google/type_traits.h +250 -0
  1002. data/ext/libev/Changes +302 -0
  1003. data/ext/libev/LICENSE +36 -0
  1004. data/ext/libev/Makefile.am +18 -0
  1005. data/ext/libev/Makefile.in +685 -0
  1006. data/ext/libev/README +58 -0
  1007. data/ext/libev/aclocal.m4 +7549 -0
  1008. data/ext/libev/autogen.sh +6 -0
  1009. data/ext/libev/config.guess +1526 -0
  1010. data/ext/libev/config.h.in +121 -0
  1011. data/ext/libev/config.sub +1658 -0
  1012. data/ext/libev/configure +22156 -0
  1013. data/ext/libev/configure.ac +18 -0
  1014. data/ext/libev/ev++.h +800 -0
  1015. data/ext/libev/ev.c +3694 -0
  1016. data/ext/libev/ev.h +705 -0
  1017. data/ext/libev/ev_epoll.c +228 -0
  1018. data/ext/libev/ev_kqueue.c +196 -0
  1019. data/ext/libev/ev_poll.c +144 -0
  1020. data/ext/libev/ev_port.c +165 -0
  1021. data/ext/libev/ev_select.c +308 -0
  1022. data/ext/libev/ev_vars.h +187 -0
  1023. data/ext/libev/ev_win32.c +153 -0
  1024. data/ext/libev/ev_wrap.h +178 -0
  1025. data/ext/libev/event.c +401 -0
  1026. data/ext/libev/event.h +158 -0
  1027. data/ext/libev/install-sh +294 -0
  1028. data/ext/libev/libev.m4 +38 -0
  1029. data/ext/libev/ltmain.sh +6871 -0
  1030. data/ext/libev/missing +336 -0
  1031. data/ext/libev/mkinstalldirs +111 -0
  1032. data/ext/nginx/Configuration.c +1454 -0
  1033. data/ext/nginx/Configuration.h +94 -0
  1034. data/ext/nginx/ContentHandler.c +1360 -0
  1035. data/ext/nginx/ContentHandler.h +64 -0
  1036. data/ext/nginx/HelperAgent.cpp +988 -0
  1037. data/ext/nginx/HttpStatusExtractor.h +351 -0
  1038. data/ext/nginx/ScgiRequestParser.h +375 -0
  1039. data/ext/nginx/StaticContentHandler.c +256 -0
  1040. data/ext/nginx/StaticContentHandler.h +37 -0
  1041. data/ext/nginx/config +56 -0
  1042. data/ext/nginx/ngx_http_passenger_module.c +499 -0
  1043. data/ext/nginx/ngx_http_passenger_module.h +63 -0
  1044. data/ext/oxt/backtrace.cpp +185 -0
  1045. data/ext/oxt/backtrace.hpp +135 -0
  1046. data/ext/oxt/detail/backtrace_disabled.hpp +39 -0
  1047. data/ext/oxt/detail/backtrace_enabled.hpp +156 -0
  1048. data/ext/oxt/detail/spin_lock_darwin.hpp +69 -0
  1049. data/ext/oxt/detail/spin_lock_gcc_x86.hpp +81 -0
  1050. data/ext/oxt/detail/spin_lock_portable.hpp +38 -0
  1051. data/ext/oxt/detail/spin_lock_pthreads.hpp +97 -0
  1052. data/ext/oxt/detail/tracable_exception_disabled.hpp +46 -0
  1053. data/ext/oxt/detail/tracable_exception_enabled.hpp +48 -0
  1054. data/ext/oxt/dynamic_thread_group.hpp +195 -0
  1055. data/ext/oxt/macros.hpp +58 -0
  1056. data/ext/oxt/spin_lock.hpp +57 -0
  1057. data/ext/oxt/system_calls.cpp +477 -0
  1058. data/ext/oxt/system_calls.hpp +260 -0
  1059. data/ext/oxt/thread.cpp +32 -0
  1060. data/ext/oxt/thread.hpp +370 -0
  1061. data/ext/oxt/tracable_exception.cpp +87 -0
  1062. data/ext/oxt/tracable_exception.hpp +35 -0
  1063. data/ext/ruby/extconf.rb +41 -0
  1064. data/ext/ruby/passenger_native_support.c +1037 -0
  1065. data/helper-scripts/passenger-spawn-server +106 -0
  1066. data/helper-scripts/prespawn +63 -0
  1067. data/lib/phusion_passenger.rb +107 -0
  1068. data/lib/phusion_passenger/abstract_installer.rb +234 -0
  1069. data/lib/phusion_passenger/abstract_request_handler.rb +738 -0
  1070. data/lib/phusion_passenger/abstract_server.rb +372 -0
  1071. data/lib/phusion_passenger/abstract_server_collection.rb +335 -0
  1072. data/lib/phusion_passenger/admin_tools.rb +48 -0
  1073. data/lib/phusion_passenger/admin_tools/memory_stats.rb +299 -0
  1074. data/lib/phusion_passenger/admin_tools/server_instance.rb +334 -0
  1075. data/lib/phusion_passenger/analytics_logger.rb +342 -0
  1076. data/lib/phusion_passenger/app_process.rb +162 -0
  1077. data/lib/phusion_passenger/classic_rails/application_spawner.rb +344 -0
  1078. data/lib/phusion_passenger/classic_rails/cgi_fixed.rb +68 -0
  1079. data/lib/phusion_passenger/classic_rails/framework_spawner.rb +311 -0
  1080. data/lib/phusion_passenger/classic_rails/request_handler.rb +75 -0
  1081. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +65 -0
  1082. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +48 -0
  1083. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +59 -0
  1084. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb +54 -0
  1085. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +130 -0
  1086. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +47 -0
  1087. data/lib/phusion_passenger/classic_rails_extensions/init.rb +123 -0
  1088. data/lib/phusion_passenger/console_text_template.rb +66 -0
  1089. data/lib/phusion_passenger/constants.rb +35 -0
  1090. data/lib/phusion_passenger/debug_logging.rb +104 -0
  1091. data/lib/phusion_passenger/dependencies.rb +633 -0
  1092. data/lib/phusion_passenger/exceptions.rb +103 -0
  1093. data/lib/phusion_passenger/html_template.rb +107 -0
  1094. data/lib/phusion_passenger/message_channel.rb +387 -0
  1095. data/lib/phusion_passenger/message_client.rb +173 -0
  1096. data/lib/phusion_passenger/native_support.rb +166 -0
  1097. data/lib/phusion_passenger/packaging.rb +108 -0
  1098. data/lib/phusion_passenger/platform_info.rb +248 -0
  1099. data/lib/phusion_passenger/platform_info/apache.rb +332 -0
  1100. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +175 -0
  1101. data/lib/phusion_passenger/platform_info/compiler.rb +183 -0
  1102. data/lib/phusion_passenger/platform_info/curl.rb +61 -0
  1103. data/lib/phusion_passenger/platform_info/documentation_tools.rb +35 -0
  1104. data/lib/phusion_passenger/platform_info/linux.rb +77 -0
  1105. data/lib/phusion_passenger/platform_info/operating_system.rb +158 -0
  1106. data/lib/phusion_passenger/platform_info/ruby.rb +338 -0
  1107. data/lib/phusion_passenger/platform_info/zlib.rb +38 -0
  1108. data/lib/phusion_passenger/plugin.rb +96 -0
  1109. data/lib/phusion_passenger/public_api.rb +112 -0
  1110. data/lib/phusion_passenger/rack/application_spawner.rb +227 -0
  1111. data/lib/phusion_passenger/rack/request_handler.rb +145 -0
  1112. data/lib/phusion_passenger/rails3_extensions/init.rb +207 -0
  1113. data/lib/phusion_passenger/simple_benchmarking.rb +52 -0
  1114. data/lib/phusion_passenger/spawn_manager.rb +359 -0
  1115. data/lib/phusion_passenger/standalone/app_finder.rb +153 -0
  1116. data/lib/phusion_passenger/standalone/command.rb +241 -0
  1117. data/lib/phusion_passenger/standalone/config_file.rb +119 -0
  1118. data/lib/phusion_passenger/standalone/help_command.rb +57 -0
  1119. data/lib/phusion_passenger/standalone/main.rb +101 -0
  1120. data/lib/phusion_passenger/standalone/package_runtime_command.rb +92 -0
  1121. data/lib/phusion_passenger/standalone/runtime_installer.rb +479 -0
  1122. data/lib/phusion_passenger/standalone/start_command.rb +514 -0
  1123. data/lib/phusion_passenger/standalone/status_command.rb +62 -0
  1124. data/lib/phusion_passenger/standalone/stop_command.rb +74 -0
  1125. data/lib/phusion_passenger/standalone/utils.rb +46 -0
  1126. data/lib/phusion_passenger/standalone/version_command.rb +42 -0
  1127. data/lib/phusion_passenger/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +9 -0
  1128. data/lib/phusion_passenger/templates/apache2/config_snippets.txt.erb +13 -0
  1129. data/lib/phusion_passenger/templates/apache2/deployment_example.txt.erb +23 -0
  1130. data/lib/phusion_passenger/templates/apache2/no_write_permission_to_passenger_root.txt.erb +9 -0
  1131. data/lib/phusion_passenger/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
  1132. data/lib/phusion_passenger/templates/apache2/run_installer_as_root.txt.erb +8 -0
  1133. data/lib/phusion_passenger/templates/apache2/welcome.txt.erb +15 -0
  1134. data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +38 -0
  1135. data/lib/phusion_passenger/templates/app_init_error.html.erb +64 -0
  1136. data/lib/phusion_passenger/templates/database_error.html.erb +66 -0
  1137. data/lib/phusion_passenger/templates/error_layout.css +97 -0
  1138. data/lib/phusion_passenger/templates/error_layout.html.erb +39 -0
  1139. data/lib/phusion_passenger/templates/framework_init_error.html.erb +39 -0
  1140. data/lib/phusion_passenger/templates/general_error.html.erb +22 -0
  1141. data/lib/phusion_passenger/templates/load_error.html.erb +46 -0
  1142. data/lib/phusion_passenger/templates/nginx/ask_for_extra_configure_flags.txt.erb +8 -0
  1143. data/lib/phusion_passenger/templates/nginx/cannot_write_to_dir.txt.erb +11 -0
  1144. data/lib/phusion_passenger/templates/nginx/config_snippets.txt.erb +17 -0
  1145. data/lib/phusion_passenger/templates/nginx/config_snippets_inserted.txt.erb +20 -0
  1146. data/lib/phusion_passenger/templates/nginx/confirm_extra_configure_flags.txt.erb +5 -0
  1147. data/lib/phusion_passenger/templates/nginx/deployment_example.txt.erb +22 -0
  1148. data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_downloaded.txt.erb +11 -0
  1149. data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_extracted.txt.erb +11 -0
  1150. data/lib/phusion_passenger/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
  1151. data/lib/phusion_passenger/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +20 -0
  1152. data/lib/phusion_passenger/templates/nginx/query_download_and_install.txt.erb +21 -0
  1153. data/lib/phusion_passenger/templates/nginx/run_installer_as_root.txt.erb +8 -0
  1154. data/lib/phusion_passenger/templates/nginx/welcome.txt.erb +15 -0
  1155. data/lib/phusion_passenger/templates/standalone/cannot_write_to_dir.txt.erb +11 -0
  1156. data/lib/phusion_passenger/templates/standalone/config.erb +94 -0
  1157. data/lib/phusion_passenger/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +17 -0
  1158. data/lib/phusion_passenger/templates/standalone/run_installer_as_root.txt.erb +8 -0
  1159. data/lib/phusion_passenger/templates/standalone/welcome.txt.erb +8 -0
  1160. data/lib/phusion_passenger/templates/standalone_default_root/index.html +1 -0
  1161. data/lib/phusion_passenger/templates/version_not_found.html.erb +34 -0
  1162. data/lib/phusion_passenger/utils.rb +1080 -0
  1163. data/lib/phusion_passenger/utils/file_system_watcher.rb +186 -0
  1164. data/lib/phusion_passenger/utils/hosts_file_parser.rb +130 -0
  1165. data/lib/phusion_passenger/utils/rewindable_input.rb +125 -0
  1166. data/lib/phusion_passenger/utils/tmpdir.rb +70 -0
  1167. data/lib/phusion_passenger/utils/unseekable_socket.rb +196 -0
  1168. data/lib/phusion_passenger/wsgi/application_spawner.rb +108 -0
  1169. data/lib/phusion_passenger/wsgi/request_handler.py +199 -0
  1170. data/man/passenger-config.1 +29 -0
  1171. data/man/passenger-make-enterprisey.8 +23 -0
  1172. data/man/passenger-memory-stats.8 +33 -0
  1173. data/man/passenger-status.8 +43 -0
  1174. data/man/passenger-stress-test.1 +43 -0
  1175. data/resources/mime.types +73 -0
  1176. data/resources/union_station_gateway.crt +32 -0
  1177. data/test/config.yml.example +41 -0
  1178. data/test/cxx/ApplicationPool_PoolTest.cpp +33 -0
  1179. data/test/cxx/ApplicationPool_PoolTestCases.cpp +1029 -0
  1180. data/test/cxx/ApplicationPool_ServerTest.cpp +308 -0
  1181. data/test/cxx/ApplicationPool_Server_PoolTest.cpp +80 -0
  1182. data/test/cxx/Base64Test.cpp +50 -0
  1183. data/test/cxx/BufferedIOTest.cpp +364 -0
  1184. data/test/cxx/CachedFileStatTest.cpp +402 -0
  1185. data/test/cxx/CxxTestMain.cpp +122 -0
  1186. data/test/cxx/EventedClientTest.cpp +523 -0
  1187. data/test/cxx/FileChangeCheckerTest.cpp +329 -0
  1188. data/test/cxx/FileDescriptorTest.cpp +69 -0
  1189. data/test/cxx/HttpStatusExtractorTest.cpp +198 -0
  1190. data/test/cxx/IOUtilsTest.cpp +796 -0
  1191. data/test/cxx/LoggingTest.cpp +914 -0
  1192. data/test/cxx/MessageChannelTest.cpp +557 -0
  1193. data/test/cxx/MessageReadersWritersTest.cpp +574 -0
  1194. data/test/cxx/MessageServerTest.cpp +383 -0
  1195. data/test/cxx/PoolOptionsTest.cpp +116 -0
  1196. data/test/cxx/ProcessMetricsCollectorTest.cpp +121 -0
  1197. data/test/cxx/ScgiRequestParserTest.cpp +389 -0
  1198. data/test/cxx/ServerInstanceDirTest.cpp +186 -0
  1199. data/test/cxx/SpawnManagerTest.cpp +161 -0
  1200. data/test/cxx/StaticStringTest.cpp +220 -0
  1201. data/test/cxx/SystemTimeTest.cpp +37 -0
  1202. data/test/cxx/TestSupport.cpp +166 -0
  1203. data/test/cxx/TestSupport.h +254 -0
  1204. data/test/cxx/UtilsTest.cpp +491 -0
  1205. data/test/cxx/VariantMapTest.cpp +179 -0
  1206. data/test/integration_tests/apache2_tests.rb +666 -0
  1207. data/test/integration_tests/cgi_environment_spec.rb +26 -0
  1208. data/test/integration_tests/hello_world_rack_spec.rb +36 -0
  1209. data/test/integration_tests/hello_world_wsgi_spec.rb +41 -0
  1210. data/test/integration_tests/mycook_spec.rb +166 -0
  1211. data/test/integration_tests/nginx_tests.rb +260 -0
  1212. data/test/integration_tests/spec_helper.rb +19 -0
  1213. data/test/oxt/backtrace_test.cpp +88 -0
  1214. data/test/oxt/counter.hpp +55 -0
  1215. data/test/oxt/dynamic_thread_group_test.cpp +131 -0
  1216. data/test/oxt/oxt_test_main.cpp +25 -0
  1217. data/test/oxt/spin_lock_test.cpp +59 -0
  1218. data/test/oxt/syscall_interruption_test.cpp +38 -0
  1219. data/test/ruby/abstract_request_handler_spec.rb +406 -0
  1220. data/test/ruby/abstract_server_collection_spec.rb +247 -0
  1221. data/test/ruby/abstract_server_spec.rb +61 -0
  1222. data/test/ruby/admin_tools_spec.rb +362 -0
  1223. data/test/ruby/analytics_logger_spec.rb +253 -0
  1224. data/test/ruby/app_process_spec.rb +43 -0
  1225. data/test/ruby/classic_rails/application_spawner_spec.rb +89 -0
  1226. data/test/ruby/classic_rails/framework_spawner_spec.rb +92 -0
  1227. data/test/ruby/debug_logging_spec.rb +141 -0
  1228. data/test/ruby/message_channel_spec.rb +196 -0
  1229. data/test/ruby/rack/application_spawner_spec.rb +116 -0
  1230. data/test/ruby/shared/abstract_server_spec.rb +23 -0
  1231. data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +375 -0
  1232. data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +38 -0
  1233. data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +19 -0
  1234. data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +15 -0
  1235. data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +27 -0
  1236. data/test/ruby/shared/spawners/preloading_spawner_spec.rb +29 -0
  1237. data/test/ruby/shared/spawners/reload_all_spec.rb +36 -0
  1238. data/test/ruby/shared/spawners/reload_single_spec.rb +52 -0
  1239. data/test/ruby/shared/spawners/spawn_server_spec.rb +28 -0
  1240. data/test/ruby/shared/spawners/spawner_spec.rb +273 -0
  1241. data/test/ruby/shared/utils/pseudo_io_spec.rb +60 -0
  1242. data/test/ruby/spawn_manager_spec.rb +134 -0
  1243. data/test/ruby/spec_helper.rb +104 -0
  1244. data/test/ruby/utils/file_system_watcher_spec.rb +221 -0
  1245. data/test/ruby/utils/hosts_file_parser.rb +258 -0
  1246. data/test/ruby/utils/unseekable_socket_spec.rb +66 -0
  1247. data/test/ruby/utils_spec.rb +748 -0
  1248. data/test/ruby/wsgi/application_spawner_spec.rb +50 -0
  1249. data/test/stub/apache2/httpd.conf.erb +86 -0
  1250. data/test/stub/apache2/mime.types +748 -0
  1251. data/test/stub/garbage1.dat +0 -0
  1252. data/test/stub/garbage2.dat +0 -0
  1253. data/test/stub/garbage3.dat +0 -0
  1254. data/test/stub/http_request.yml +23 -0
  1255. data/test/stub/message_channel.rb +11 -0
  1256. data/test/stub/message_channel_2.rb +12 -0
  1257. data/test/stub/message_channel_3.rb +19 -0
  1258. data/test/stub/nginx/koi-utf +109 -0
  1259. data/test/stub/nginx/koi-win +103 -0
  1260. data/test/stub/nginx/mime.types +70 -0
  1261. data/test/stub/nginx/nginx.conf.erb +58 -0
  1262. data/test/stub/nginx/win-utf +126 -0
  1263. data/test/stub/rack/config.ru +4 -0
  1264. data/test/stub/rack/public/rack.jpg +0 -0
  1265. data/test/stub/rails_apps/1.2/empty/Rakefile +10 -0
  1266. data/test/stub/rails_apps/1.2/empty/app/controllers/application.rb +7 -0
  1267. data/test/stub/rails_apps/1.2/empty/app/helpers/application_helper.rb +3 -0
  1268. data/test/stub/rails_apps/1.2/empty/config/boot.rb +108 -0
  1269. data/test/stub/rails_apps/1.2/empty/config/database.yml +31 -0
  1270. data/test/stub/rails_apps/1.2/empty/config/environment.rb +66 -0
  1271. data/test/stub/rails_apps/1.2/empty/config/environments/development.rb +21 -0
  1272. data/test/stub/rails_apps/1.2/empty/config/environments/production.rb +18 -0
  1273. data/test/stub/rails_apps/1.2/empty/config/environments/staging.rb +18 -0
  1274. data/test/stub/rails_apps/1.2/empty/config/environments/test.rb +19 -0
  1275. data/test/stub/rails_apps/1.2/empty/config/routes.rb +23 -0
  1276. data/test/stub/rails_apps/1.2/empty/doc/README_FOR_APP +2 -0
  1277. data/test/stub/rails_apps/1.2/empty/public/404.html +30 -0
  1278. data/test/stub/rails_apps/1.2/empty/public/500.html +30 -0
  1279. data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +10 -0
  1280. data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +24 -0
  1281. data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +10 -0
  1282. data/test/stub/rails_apps/1.2/empty/public/favicon.ico +0 -0
  1283. data/test/stub/rails_apps/1.2/empty/public/images/rails.png +0 -0
  1284. data/test/stub/rails_apps/1.2/empty/public/robots.txt +1 -0
  1285. data/test/stub/rails_apps/1.2/empty/script/about +3 -0
  1286. data/test/stub/rails_apps/1.2/empty/script/breakpointer +3 -0
  1287. data/test/stub/rails_apps/1.2/empty/script/console +3 -0
  1288. data/test/stub/rails_apps/1.2/empty/script/destroy +3 -0
  1289. data/test/stub/rails_apps/1.2/empty/script/generate +3 -0
  1290. data/test/stub/rails_apps/1.2/empty/script/performance/benchmarker +3 -0
  1291. data/test/stub/rails_apps/1.2/empty/script/performance/profiler +3 -0
  1292. data/test/stub/rails_apps/1.2/empty/script/plugin +3 -0
  1293. data/test/stub/rails_apps/1.2/empty/script/process/inspector +3 -0
  1294. data/test/stub/rails_apps/1.2/empty/script/process/reaper +3 -0
  1295. data/test/stub/rails_apps/1.2/empty/script/process/spawner +3 -0
  1296. data/test/stub/rails_apps/1.2/empty/script/runner +3 -0
  1297. data/test/stub/rails_apps/1.2/empty/script/server +3 -0
  1298. data/test/stub/rails_apps/1.2/empty/test/test_helper.rb +28 -0
  1299. data/test/stub/rails_apps/2.0/empty/Rakefile +10 -0
  1300. data/test/stub/rails_apps/2.0/empty/app/controllers/application.rb +10 -0
  1301. data/test/stub/rails_apps/2.0/empty/app/helpers/application_helper.rb +3 -0
  1302. data/test/stub/rails_apps/2.0/empty/config/boot.rb +108 -0
  1303. data/test/stub/rails_apps/2.0/empty/config/database.yml +31 -0
  1304. data/test/stub/rails_apps/2.0/empty/config/environment.rb +59 -0
  1305. data/test/stub/rails_apps/2.0/empty/config/environments/development.rb +18 -0
  1306. data/test/stub/rails_apps/2.0/empty/config/environments/production.rb +18 -0
  1307. data/test/stub/rails_apps/2.0/empty/config/environments/staging.rb +18 -0
  1308. data/test/stub/rails_apps/2.0/empty/config/environments/test.rb +22 -0
  1309. data/test/stub/rails_apps/2.0/empty/config/initializers/inflections.rb +10 -0
  1310. data/test/stub/rails_apps/2.0/empty/config/initializers/mime_types.rb +5 -0
  1311. data/test/stub/rails_apps/2.0/empty/config/routes.rb +35 -0
  1312. data/test/stub/rails_apps/2.0/empty/doc/README_FOR_APP +2 -0
  1313. data/test/stub/rails_apps/2.0/empty/public/404.html +30 -0
  1314. data/test/stub/rails_apps/2.0/empty/public/422.html +30 -0
  1315. data/test/stub/rails_apps/2.0/empty/public/500.html +30 -0
  1316. data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +10 -0
  1317. data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +24 -0
  1318. data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +10 -0
  1319. data/test/stub/rails_apps/2.0/empty/public/favicon.ico +0 -0
  1320. data/test/stub/rails_apps/2.0/empty/public/images/rails.png +0 -0
  1321. data/test/stub/rails_apps/2.0/empty/public/robots.txt +5 -0
  1322. data/test/stub/rails_apps/2.0/empty/script/about +3 -0
  1323. data/test/stub/rails_apps/2.0/empty/script/console +3 -0
  1324. data/test/stub/rails_apps/2.0/empty/script/destroy +3 -0
  1325. data/test/stub/rails_apps/2.0/empty/script/generate +3 -0
  1326. data/test/stub/rails_apps/2.0/empty/script/performance/benchmarker +3 -0
  1327. data/test/stub/rails_apps/2.0/empty/script/performance/profiler +3 -0
  1328. data/test/stub/rails_apps/2.0/empty/script/performance/request +3 -0
  1329. data/test/stub/rails_apps/2.0/empty/script/plugin +3 -0
  1330. data/test/stub/rails_apps/2.0/empty/script/process/inspector +3 -0
  1331. data/test/stub/rails_apps/2.0/empty/script/process/reaper +3 -0
  1332. data/test/stub/rails_apps/2.0/empty/script/process/spawner +3 -0
  1333. data/test/stub/rails_apps/2.0/empty/script/runner +3 -0
  1334. data/test/stub/rails_apps/2.0/empty/script/server +3 -0
  1335. data/test/stub/rails_apps/2.0/empty/test/test_helper.rb +38 -0
  1336. data/test/stub/rails_apps/2.2/empty/Rakefile +10 -0
  1337. data/test/stub/rails_apps/2.2/empty/app/controllers/application.rb +15 -0
  1338. data/test/stub/rails_apps/2.2/empty/app/helpers/application_helper.rb +3 -0
  1339. data/test/stub/rails_apps/2.2/empty/config/boot.rb +109 -0
  1340. data/test/stub/rails_apps/2.2/empty/config/database.yml +31 -0
  1341. data/test/stub/rails_apps/2.2/empty/config/environment.rb +75 -0
  1342. data/test/stub/rails_apps/2.2/empty/config/environments/development.rb +17 -0
  1343. data/test/stub/rails_apps/2.2/empty/config/environments/production.rb +24 -0
  1344. data/test/stub/rails_apps/2.2/empty/config/environments/staging.rb +24 -0
  1345. data/test/stub/rails_apps/2.2/empty/config/environments/test.rb +22 -0
  1346. data/test/stub/rails_apps/2.2/empty/config/initializers/inflections.rb +10 -0
  1347. data/test/stub/rails_apps/2.2/empty/config/initializers/mime_types.rb +5 -0
  1348. data/test/stub/rails_apps/2.2/empty/config/initializers/new_rails_defaults.rb +17 -0
  1349. data/test/stub/rails_apps/2.2/empty/config/locales/en.yml +5 -0
  1350. data/test/stub/rails_apps/2.2/empty/config/routes.rb +43 -0
  1351. data/test/stub/rails_apps/2.2/empty/doc/README_FOR_APP +5 -0
  1352. data/test/stub/rails_apps/2.2/empty/public/404.html +30 -0
  1353. data/test/stub/rails_apps/2.2/empty/public/422.html +30 -0
  1354. data/test/stub/rails_apps/2.2/empty/public/500.html +33 -0
  1355. data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +10 -0
  1356. data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +24 -0
  1357. data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +10 -0
  1358. data/test/stub/rails_apps/2.2/empty/public/favicon.ico +0 -0
  1359. data/test/stub/rails_apps/2.2/empty/public/images/rails.png +0 -0
  1360. data/test/stub/rails_apps/2.2/empty/public/robots.txt +5 -0
  1361. data/test/stub/rails_apps/2.2/empty/script/about +4 -0
  1362. data/test/stub/rails_apps/2.2/empty/script/console +3 -0
  1363. data/test/stub/rails_apps/2.2/empty/script/dbconsole +3 -0
  1364. data/test/stub/rails_apps/2.2/empty/script/destroy +3 -0
  1365. data/test/stub/rails_apps/2.2/empty/script/generate +3 -0
  1366. data/test/stub/rails_apps/2.2/empty/script/performance/benchmarker +3 -0
  1367. data/test/stub/rails_apps/2.2/empty/script/performance/profiler +3 -0
  1368. data/test/stub/rails_apps/2.2/empty/script/performance/request +3 -0
  1369. data/test/stub/rails_apps/2.2/empty/script/plugin +3 -0
  1370. data/test/stub/rails_apps/2.2/empty/script/process/inspector +3 -0
  1371. data/test/stub/rails_apps/2.2/empty/script/process/reaper +3 -0
  1372. data/test/stub/rails_apps/2.2/empty/script/process/spawner +3 -0
  1373. data/test/stub/rails_apps/2.2/empty/script/runner +3 -0
  1374. data/test/stub/rails_apps/2.2/empty/script/server +3 -0
  1375. data/test/stub/rails_apps/2.2/empty/test/performance/browsing_test.rb +9 -0
  1376. data/test/stub/rails_apps/2.2/empty/test/test_helper.rb +38 -0
  1377. data/test/stub/rails_apps/2.3/empty/Rakefile +10 -0
  1378. data/test/stub/rails_apps/2.3/empty/app/controllers/application_controller.rb +10 -0
  1379. data/test/stub/rails_apps/2.3/empty/app/helpers/application_helper.rb +3 -0
  1380. data/test/stub/rails_apps/2.3/empty/config/boot.rb +110 -0
  1381. data/test/stub/rails_apps/2.3/empty/config/database.yml +31 -0
  1382. data/test/stub/rails_apps/2.3/empty/config/environment.rb +41 -0
  1383. data/test/stub/rails_apps/2.3/empty/config/environments/development.rb +17 -0
  1384. data/test/stub/rails_apps/2.3/empty/config/environments/production.rb +28 -0
  1385. data/test/stub/rails_apps/2.3/empty/config/environments/staging.rb +28 -0
  1386. data/test/stub/rails_apps/2.3/empty/config/environments/test.rb +28 -0
  1387. data/test/stub/rails_apps/2.3/empty/config/initializers/backtrace_silencers.rb +7 -0
  1388. data/test/stub/rails_apps/2.3/empty/config/initializers/inflections.rb +10 -0
  1389. data/test/stub/rails_apps/2.3/empty/config/initializers/mime_types.rb +5 -0
  1390. data/test/stub/rails_apps/2.3/empty/config/initializers/new_rails_defaults.rb +21 -0
  1391. data/test/stub/rails_apps/2.3/empty/config/initializers/session_store.rb +15 -0
  1392. data/test/stub/rails_apps/2.3/empty/config/locales/en.yml +5 -0
  1393. data/test/stub/rails_apps/2.3/empty/config/routes.rb +43 -0
  1394. data/test/stub/rails_apps/2.3/empty/db/seeds.rb +7 -0
  1395. data/test/stub/rails_apps/2.3/empty/doc/README_FOR_APP +2 -0
  1396. data/test/stub/rails_apps/2.3/empty/public/404.html +30 -0
  1397. data/test/stub/rails_apps/2.3/empty/public/422.html +30 -0
  1398. data/test/stub/rails_apps/2.3/empty/public/500.html +30 -0
  1399. data/test/stub/rails_apps/2.3/empty/public/favicon.ico +0 -0
  1400. data/test/stub/rails_apps/2.3/empty/public/images/rails.png +0 -0
  1401. data/test/stub/rails_apps/2.3/empty/public/robots.txt +5 -0
  1402. data/test/stub/rails_apps/2.3/empty/script/about +4 -0
  1403. data/test/stub/rails_apps/2.3/empty/script/console +3 -0
  1404. data/test/stub/rails_apps/2.3/empty/script/dbconsole +3 -0
  1405. data/test/stub/rails_apps/2.3/empty/script/destroy +3 -0
  1406. data/test/stub/rails_apps/2.3/empty/script/generate +3 -0
  1407. data/test/stub/rails_apps/2.3/empty/script/performance/benchmarker +3 -0
  1408. data/test/stub/rails_apps/2.3/empty/script/performance/profiler +3 -0
  1409. data/test/stub/rails_apps/2.3/empty/script/plugin +3 -0
  1410. data/test/stub/rails_apps/2.3/empty/script/runner +3 -0
  1411. data/test/stub/rails_apps/2.3/empty/script/server +3 -0
  1412. data/test/stub/rails_apps/2.3/empty/test/performance/browsing_test.rb +9 -0
  1413. data/test/stub/rails_apps/2.3/empty/test/test_helper.rb +38 -0
  1414. data/test/stub/rails_apps/2.3/foobar/Rakefile +10 -0
  1415. data/test/stub/rails_apps/2.3/foobar/app/controllers/application_controller.rb +12 -0
  1416. data/test/stub/rails_apps/2.3/foobar/app/controllers/bar_controller_1.rb +5 -0
  1417. data/test/stub/rails_apps/2.3/foobar/app/controllers/bar_controller_2.rb +5 -0
  1418. data/test/stub/rails_apps/2.3/foobar/app/controllers/foo_controller.rb +21 -0
  1419. data/test/stub/rails_apps/2.3/foobar/app/helpers/application_helper.rb +3 -0
  1420. data/test/stub/rails_apps/2.3/foobar/config/boot.rb +110 -0
  1421. data/test/stub/rails_apps/2.3/foobar/config/database.yml +19 -0
  1422. data/test/stub/rails_apps/2.3/foobar/config/environment.rb +59 -0
  1423. data/test/stub/rails_apps/2.3/foobar/config/environments/development.rb +17 -0
  1424. data/test/stub/rails_apps/2.3/foobar/config/environments/production.rb +18 -0
  1425. data/test/stub/rails_apps/2.3/foobar/config/environments/staging.rb +18 -0
  1426. data/test/stub/rails_apps/2.3/foobar/config/initializers/inflections.rb +10 -0
  1427. data/test/stub/rails_apps/2.3/foobar/config/initializers/mime_types.rb +5 -0
  1428. data/test/stub/rails_apps/2.3/foobar/config/routes.rb +35 -0
  1429. data/test/stub/rails_apps/2.3/foobar/script/about +3 -0
  1430. data/test/stub/rails_apps/2.3/foobar/script/console +3 -0
  1431. data/test/stub/rails_apps/2.3/foobar/script/dbconsole +3 -0
  1432. data/test/stub/rails_apps/2.3/foobar/script/destroy +3 -0
  1433. data/test/stub/rails_apps/2.3/foobar/script/generate +3 -0
  1434. data/test/stub/rails_apps/2.3/foobar/script/performance/benchmarker +3 -0
  1435. data/test/stub/rails_apps/2.3/foobar/script/performance/profiler +3 -0
  1436. data/test/stub/rails_apps/2.3/foobar/script/performance/request +3 -0
  1437. data/test/stub/rails_apps/2.3/foobar/script/plugin +3 -0
  1438. data/test/stub/rails_apps/2.3/foobar/script/process/inspector +3 -0
  1439. data/test/stub/rails_apps/2.3/foobar/script/process/reaper +3 -0
  1440. data/test/stub/rails_apps/2.3/foobar/script/process/spawner +3 -0
  1441. data/test/stub/rails_apps/2.3/foobar/script/runner +3 -0
  1442. data/test/stub/rails_apps/2.3/foobar/script/server +3 -0
  1443. data/test/stub/rails_apps/2.3/mycook/Rakefile +10 -0
  1444. data/test/stub/rails_apps/2.3/mycook/app/controllers/application_controller.rb +12 -0
  1445. data/test/stub/rails_apps/2.3/mycook/app/controllers/recipes_controller.rb +5 -0
  1446. data/test/stub/rails_apps/2.3/mycook/app/controllers/uploads_controller.rb +15 -0
  1447. data/test/stub/rails_apps/2.3/mycook/app/controllers/welcome_controller.rb +71 -0
  1448. data/test/stub/rails_apps/2.3/mycook/app/helpers/application_helper.rb +3 -0
  1449. data/test/stub/rails_apps/2.3/mycook/app/views/layouts/default.rhtml +26 -0
  1450. data/test/stub/rails_apps/2.3/mycook/app/views/recipes/create.rhtml +13 -0
  1451. data/test/stub/rails_apps/2.3/mycook/app/views/recipes/index.rhtml +3 -0
  1452. data/test/stub/rails_apps/2.3/mycook/app/views/recipes/new.rhtml +8 -0
  1453. data/test/stub/rails_apps/2.3/mycook/app/views/uploads/index.rhtml +1 -0
  1454. data/test/stub/rails_apps/2.3/mycook/app/views/uploads/new.html.erb +8 -0
  1455. data/test/stub/rails_apps/2.3/mycook/app/views/welcome/cached.rhtml +1 -0
  1456. data/test/stub/rails_apps/2.3/mycook/app/views/welcome/index.rhtml +20 -0
  1457. data/test/stub/rails_apps/2.3/mycook/config/boot.rb +110 -0
  1458. data/test/stub/rails_apps/2.3/mycook/config/database.yml +19 -0
  1459. data/test/stub/rails_apps/2.3/mycook/config/environment.rb +61 -0
  1460. data/test/stub/rails_apps/2.3/mycook/config/environments/development.rb +18 -0
  1461. data/test/stub/rails_apps/2.3/mycook/config/environments/production.rb +19 -0
  1462. data/test/stub/rails_apps/2.3/mycook/config/initializers/inflections.rb +10 -0
  1463. data/test/stub/rails_apps/2.3/mycook/config/initializers/mime_types.rb +5 -0
  1464. data/test/stub/rails_apps/2.3/mycook/config/routes.rb +38 -0
  1465. data/test/stub/rails_apps/2.3/mycook/log/useless.txt +1 -0
  1466. data/test/stub/rails_apps/2.3/mycook/public/404.html +30 -0
  1467. data/test/stub/rails_apps/2.3/mycook/public/422.html +30 -0
  1468. data/test/stub/rails_apps/2.3/mycook/public/500.html +30 -0
  1469. data/test/stub/rails_apps/2.3/mycook/public/dispatch.cgi +10 -0
  1470. data/test/stub/rails_apps/2.3/mycook/public/dispatch.fcgi +24 -0
  1471. data/test/stub/rails_apps/2.3/mycook/public/dispatch.rb +10 -0
  1472. data/test/stub/rails_apps/2.3/mycook/public/favicon.ico +0 -0
  1473. data/test/stub/rails_apps/2.3/mycook/public/images/angrywizard.gif +0 -0
  1474. data/test/stub/rails_apps/2.3/mycook/public/images/cookbook.gif +0 -0
  1475. data/test/stub/rails_apps/2.3/mycook/public/images/header.png +0 -0
  1476. data/test/stub/rails_apps/2.3/mycook/public/images/rails.png +0 -0
  1477. data/test/stub/rails_apps/2.3/mycook/public/javascripts/application.js +2 -0
  1478. data/test/stub/rails_apps/2.3/mycook/public/javascripts/controls.js +963 -0
  1479. data/test/stub/rails_apps/2.3/mycook/public/javascripts/dragdrop.js +973 -0
  1480. data/test/stub/rails_apps/2.3/mycook/public/javascripts/effects.js +1128 -0
  1481. data/test/stub/rails_apps/2.3/mycook/public/javascripts/prototype.js +4320 -0
  1482. data/test/stub/rails_apps/2.3/mycook/public/robots.txt +5 -0
  1483. data/test/stub/rails_apps/2.3/mycook/public/uploads.html +26 -0
  1484. data/test/stub/rails_apps/2.3/mycook/public/welcome/cached.html +26 -0
  1485. data/test/stub/rails_apps/2.3/mycook/script/about +3 -0
  1486. data/test/stub/rails_apps/2.3/mycook/script/console +3 -0
  1487. data/test/stub/rails_apps/2.3/mycook/script/dbconsole +3 -0
  1488. data/test/stub/rails_apps/2.3/mycook/script/destroy +3 -0
  1489. data/test/stub/rails_apps/2.3/mycook/script/generate +3 -0
  1490. data/test/stub/rails_apps/2.3/mycook/script/performance/benchmarker +3 -0
  1491. data/test/stub/rails_apps/2.3/mycook/script/performance/profiler +3 -0
  1492. data/test/stub/rails_apps/2.3/mycook/script/performance/request +3 -0
  1493. data/test/stub/rails_apps/2.3/mycook/script/plugin +3 -0
  1494. data/test/stub/rails_apps/2.3/mycook/script/process/inspector +3 -0
  1495. data/test/stub/rails_apps/2.3/mycook/script/process/reaper +3 -0
  1496. data/test/stub/rails_apps/2.3/mycook/script/process/spawner +3 -0
  1497. data/test/stub/rails_apps/2.3/mycook/script/runner +3 -0
  1498. data/test/stub/rails_apps/2.3/mycook/script/server +3 -0
  1499. data/test/stub/rails_apps/2.3/mycook/sites/some.site/public/uploads.html +26 -0
  1500. data/test/stub/rails_apps/2.3/mycook/sites/some.site/public/welcome/cached.html +26 -0
  1501. data/test/stub/rails_apps/2.3/mycook/tmp/cache/useless.txt +1 -0
  1502. data/test/stub/rails_apps/2.3/mycook/tmp/pids/useless.txt +1 -0
  1503. data/test/stub/rails_apps/2.3/mycook/tmp/sessions/useless.txt +1 -0
  1504. data/test/stub/rails_apps/2.3/mycook/tmp/sockets/useless.txt +1 -0
  1505. data/test/stub/rails_apps/3.0/empty/Gemfile +22 -0
  1506. data/test/stub/rails_apps/3.0/empty/Gemfile.lock +73 -0
  1507. data/test/stub/rails_apps/3.0/empty/Rakefile +10 -0
  1508. data/test/stub/rails_apps/3.0/empty/app/controllers/application_controller.rb +4 -0
  1509. data/test/stub/rails_apps/3.0/empty/app/helpers/application_helper.rb +2 -0
  1510. data/test/stub/rails_apps/3.0/empty/app/views/layouts/application.html.erb +14 -0
  1511. data/test/stub/rails_apps/3.0/empty/config.ru +4 -0
  1512. data/test/stub/rails_apps/3.0/empty/config/application.rb +48 -0
  1513. data/test/stub/rails_apps/3.0/empty/config/boot.rb +13 -0
  1514. data/test/stub/rails_apps/3.0/empty/config/database.yml +22 -0
  1515. data/test/stub/rails_apps/3.0/empty/config/environment.rb +5 -0
  1516. data/test/stub/rails_apps/3.0/empty/config/environments/development.rb +19 -0
  1517. data/test/stub/rails_apps/3.0/empty/config/environments/production.rb +48 -0
  1518. data/test/stub/rails_apps/3.0/empty/config/environments/test.rb +32 -0
  1519. data/test/stub/rails_apps/3.0/empty/config/initializers/backtrace_silencers.rb +7 -0
  1520. data/test/stub/rails_apps/3.0/empty/config/initializers/inflections.rb +10 -0
  1521. data/test/stub/rails_apps/3.0/empty/config/initializers/mime_types.rb +5 -0
  1522. data/test/stub/rails_apps/3.0/empty/config/initializers/passenger.rb +1 -0
  1523. data/test/stub/rails_apps/3.0/empty/config/initializers/secret_token.rb +7 -0
  1524. data/test/stub/rails_apps/3.0/empty/config/initializers/session_store.rb +8 -0
  1525. data/test/stub/rails_apps/3.0/empty/config/locales/en.yml +5 -0
  1526. data/test/stub/rails_apps/3.0/empty/config/routes.rb +58 -0
  1527. data/test/stub/rails_apps/3.0/empty/db/seeds.rb +7 -0
  1528. data/test/stub/rails_apps/3.0/empty/doc/README_FOR_APP +2 -0
  1529. data/test/stub/rails_apps/3.0/empty/public/404.html +26 -0
  1530. data/test/stub/rails_apps/3.0/empty/public/422.html +26 -0
  1531. data/test/stub/rails_apps/3.0/empty/public/500.html +26 -0
  1532. data/test/stub/rails_apps/3.0/empty/public/favicon.ico +0 -0
  1533. data/test/stub/rails_apps/3.0/empty/public/index.html +279 -0
  1534. data/test/stub/rails_apps/3.0/empty/public/robots.txt +5 -0
  1535. data/test/stub/rails_apps/3.0/empty/script/rails +9 -0
  1536. data/test/stub/rails_apps/3.0/empty/test/performance/browsing_test.rb +9 -0
  1537. data/test/stub/rails_apps/3.0/empty/test/test_helper.rb +13 -0
  1538. data/test/stub/spawn_server.rb +22 -0
  1539. data/test/stub/upload_data.txt +494 -0
  1540. data/test/stub/vendor_rails/minimal/README +1 -0
  1541. data/test/stub/vendor_rails/minimal/actionmailer/lib/action_mailer.rb +0 -0
  1542. data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +22 -0
  1543. data/test/stub/vendor_rails/minimal/actionpack/lib/action_pack.rb +0 -0
  1544. data/test/stub/vendor_rails/minimal/actionpack/lib/action_view.rb +0 -0
  1545. data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +7 -0
  1546. data/test/stub/vendor_rails/minimal/activeresource/lib/active_resource.rb +0 -0
  1547. data/test/stub/vendor_rails/minimal/activesupport/lib/active_support.rb +17 -0
  1548. data/test/stub/vendor_rails/minimal/activesupport/lib/active_support/whiny_nil.rb +0 -0
  1549. data/test/stub/vendor_rails/minimal/railties/lib/dispatcher.rb +0 -0
  1550. data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +57 -0
  1551. data/test/stub/vendor_rails/minimal/railties/lib/ruby_version_check.rb +1 -0
  1552. data/test/stub/wsgi/passenger_wsgi.py +3 -0
  1553. data/test/stub/wsgi/public/wsgi-snake.jpg +0 -0
  1554. data/test/stub/zsfa/header.png +0 -0
  1555. data/test/stub/zsfa/index.html +14 -0
  1556. data/test/stub/zsfa/zsfa.png +0 -0
  1557. data/test/support/allocate_memory.c +14 -0
  1558. data/test/support/apache2_controller.rb +258 -0
  1559. data/test/support/multipart.rb +62 -0
  1560. data/test/support/nginx_controller.rb +99 -0
  1561. data/test/support/test_helper.rb +448 -0
  1562. data/test/support/valgrind.h +2539 -0
  1563. data/test/tut/tut.h +1240 -0
  1564. data/test/tut/tut_reporter.h +256 -0
  1565. metadata +1703 -0
@@ -0,0 +1,193 @@
1
+ // Boost string_algo library sequence_traits.hpp header file ---------------------------//
2
+
3
+ // Copyright Pavol Droba 2002-2003.
4
+ //
5
+ // Distributed under the Boost Software License, Version 1.0.
6
+ // (See accompanying file LICENSE_1_0.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt)
8
+
9
+ // See http://www.boost.org/ for updates, documentation, and revision history.
10
+
11
+ #ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP
12
+ #define BOOST_STRING_SEQUENCE_TRAITS_HPP
13
+
14
+ #include <boost/config.hpp>
15
+ #include <boost/mpl/bool.hpp>
16
+ #include <boost/algorithm/string/yes_no_type.hpp>
17
+
18
+ /*! \file
19
+ Traits defined in this header are used by various algorithms to achieve
20
+ better performance for specific containers.
21
+ Traits provide fail-safe defaults. If a container supports some of these
22
+ features, it is possible to specialize the specific trait for this container.
23
+ For lacking compilers, it is possible of define an override for a specific tester
24
+ function.
25
+
26
+ Due to a language restriction, it is not currently possible to define specializations for
27
+ stl containers without including the corresponding header. To decrease the overhead
28
+ needed by this inclusion, user can selectively include a specialization
29
+ header for a specific container. They are located in boost/algorithm/string/stl
30
+ directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp
31
+ header which contains specializations for all stl containers.
32
+ */
33
+
34
+ namespace boost {
35
+ namespace algorithm {
36
+
37
+ // sequence traits -----------------------------------------------//
38
+
39
+ #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
40
+
41
+ //! Native replace tester
42
+ /*!
43
+ Declare an override of this tester function with return
44
+ type boost::string_algo::yes_type for a sequence with this property.
45
+
46
+ \return yes_type if the container has basic_string like native replace
47
+ method.
48
+ */
49
+ no_type has_native_replace_tester(...);
50
+
51
+ //! Stable iterators tester
52
+ /*!
53
+ Declare an override of this tester function with return
54
+ type boost::string_algo::yes_type for a sequence with this property.
55
+
56
+ \return yes_type if the sequence's insert/replace/erase methods do not invalidate
57
+ existing iterators.
58
+ */
59
+ no_type has_stable_iterators_tester(...);
60
+
61
+ //! const time insert tester
62
+ /*!
63
+ Declare an override of this tester function with return
64
+ type boost::string_algo::yes_type for a sequence with this property.
65
+
66
+ \return yes_type if the sequence's insert method is working in constant time
67
+ */
68
+ no_type has_const_time_insert_tester(...);
69
+
70
+ //! const time erase tester
71
+ /*!
72
+ Declare an override of this tester function with return
73
+ type boost::string_algo::yes_type for a sequence with this property.
74
+
75
+ \return yes_type if the sequence's erase method is working in constant time
76
+ */
77
+ no_type has_const_time_erase_tester(...);
78
+
79
+ #endif //BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
80
+
81
+ //! Native replace trait
82
+ /*!
83
+ This trait specifies that the sequence has \c std::string like replace method
84
+ */
85
+ template< typename T >
86
+ class has_native_replace
87
+ {
88
+
89
+ #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
90
+ private:
91
+ static T* t;
92
+ public:
93
+ BOOST_STATIC_CONSTANT(bool, value=(
94
+ sizeof(has_native_replace_tester(t))==sizeof(yes_type) ) );
95
+ #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
96
+ public:
97
+ # if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
98
+ enum { value = false };
99
+ # else
100
+ BOOST_STATIC_CONSTANT(bool, value=false);
101
+ # endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
102
+ #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
103
+
104
+
105
+ typedef mpl::bool_<has_native_replace<T>::value> type;
106
+ };
107
+
108
+
109
+ //! Stable iterators trait
110
+ /*!
111
+ This trait specifies that the sequence has stable iterators. It means
112
+ that operations like insert/erase/replace do not invalidate iterators.
113
+ */
114
+ template< typename T >
115
+ class has_stable_iterators
116
+ {
117
+ #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
118
+ private:
119
+ static T* t;
120
+ public:
121
+ BOOST_STATIC_CONSTANT(bool, value=(
122
+ sizeof(has_stable_iterators_tester(t))==sizeof(yes_type) ) );
123
+ #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
124
+ public:
125
+ # if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
126
+ enum { value = false };
127
+ # else
128
+ BOOST_STATIC_CONSTANT(bool, value=false);
129
+ # endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
130
+ #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
131
+
132
+ typedef mpl::bool_<has_stable_iterators<T>::value> type;
133
+ };
134
+
135
+
136
+ //! Const time insert trait
137
+ /*!
138
+ This trait specifies that the sequence's insert method has
139
+ constant time complexity.
140
+ */
141
+ template< typename T >
142
+ class has_const_time_insert
143
+ {
144
+ #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
145
+ private:
146
+ static T* t;
147
+ public:
148
+ BOOST_STATIC_CONSTANT(bool, value=(
149
+ sizeof(has_const_time_insert_tester(t))==sizeof(yes_type) ) );
150
+ #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
151
+ public:
152
+ # if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
153
+ enum { value = false };
154
+ # else
155
+ BOOST_STATIC_CONSTANT(bool, value=false);
156
+ # endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
157
+ #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
158
+
159
+ typedef mpl::bool_<has_const_time_insert<T>::value> type;
160
+ };
161
+
162
+
163
+ //! Const time erase trait
164
+ /*!
165
+ This trait specifies that the sequence's erase method has
166
+ constant time complexity.
167
+ */
168
+ template< typename T >
169
+ class has_const_time_erase
170
+ {
171
+ #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
172
+ private:
173
+ static T* t;
174
+ public:
175
+ BOOST_STATIC_CONSTANT(bool, value=(
176
+ sizeof(has_const_time_erase_tester(t))==sizeof(yes_type) ) );
177
+ #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
178
+ public:
179
+ # if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
180
+ enum { value = false };
181
+ # else
182
+ BOOST_STATIC_CONSTANT(bool, value=false);
183
+ # endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
184
+ #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
185
+
186
+ typedef mpl::bool_<has_const_time_erase<T>::value> type;
187
+ };
188
+
189
+ } // namespace algorithm
190
+ } // namespace boost
191
+
192
+
193
+ #endif // BOOST_STRING_SEQUENCE_TRAITS_HPP
@@ -0,0 +1,33 @@
1
+ // Boost string_algo library yes_no_type.hpp header file ---------------------------//
2
+
3
+ // Copyright Pavol Droba 2002-2003.
4
+ //
5
+ // Distributed under the Boost Software License, Version 1.0.
6
+ // (See accompanying file LICENSE_1_0.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt)
8
+
9
+ // See http://www.boost.org/ for updates, documentation, and revision history.
10
+
11
+ #ifndef BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
12
+ #define BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
13
+
14
+ namespace boost {
15
+ namespace algorithm {
16
+
17
+ // taken from boost mailing-list
18
+ // when yes_no_type will become officially
19
+ // a part of boost distribution, this header
20
+ // will be deprecated
21
+ template<int I> struct size_descriptor
22
+ {
23
+ typedef char (& type)[I];
24
+ };
25
+
26
+ typedef size_descriptor<1>::type yes_type;
27
+ typedef size_descriptor<2>::type no_type;
28
+
29
+ } // namespace algorithm
30
+ } // namespace boost
31
+
32
+
33
+ #endif // BOOST_STRING_YES_NO_TYPE_DETAIL_HPP
@@ -0,0 +1,50 @@
1
+ //
2
+ // boost/assert.hpp - BOOST_ASSERT(expr)
3
+ //
4
+ // Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
5
+ // Copyright (c) 2007 Peter Dimov
6
+ //
7
+ // Distributed under the Boost Software License, Version 1.0. (See
8
+ // accompanying file LICENSE_1_0.txt or copy at
9
+ // http://www.boost.org/LICENSE_1_0.txt)
10
+ //
11
+ // Note: There are no include guards. This is intentional.
12
+ //
13
+ // See http://www.boost.org/libs/utility/assert.html for documentation.
14
+ //
15
+
16
+ #undef BOOST_ASSERT
17
+
18
+ #if defined(BOOST_DISABLE_ASSERTS)
19
+
20
+ # define BOOST_ASSERT(expr) ((void)0)
21
+
22
+ #elif defined(BOOST_ENABLE_ASSERT_HANDLER)
23
+
24
+ #include <boost/current_function.hpp>
25
+
26
+ namespace boost
27
+ {
28
+
29
+ void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined
30
+
31
+ } // namespace boost
32
+
33
+ #define BOOST_ASSERT(expr) ((expr)? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
34
+
35
+ #else
36
+ # include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
37
+ # define BOOST_ASSERT(expr) assert(expr)
38
+ #endif
39
+
40
+ #undef BOOST_VERIFY
41
+
42
+ #if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
43
+
44
+ # define BOOST_VERIFY(expr) ((void)(expr))
45
+
46
+ #else
47
+
48
+ # define BOOST_VERIFY(expr) BOOST_ASSERT(expr)
49
+
50
+ #endif
@@ -0,0 +1,24 @@
1
+ #ifndef BOOST_BIND_HPP_INCLUDED
2
+ #define BOOST_BIND_HPP_INCLUDED
3
+
4
+ // MS compatible compilers support #pragma once
5
+
6
+ #if defined(_MSC_VER) && (_MSC_VER >= 1020)
7
+ # pragma once
8
+ #endif
9
+
10
+ //
11
+ // bind.hpp - binds function objects to arguments
12
+ //
13
+ // Copyright (c) 2009 Peter Dimov
14
+ //
15
+ // Distributed under the Boost Software License, Version 1.0.
16
+ // See accompanying file LICENSE_1_0.txt or copy at
17
+ // http://www.boost.org/LICENSE_1_0.txt
18
+ //
19
+ // See http://www.boost.org/libs/bind/bind.html for documentation.
20
+ //
21
+
22
+ #include <boost/bind/bind.hpp>
23
+
24
+ #endif // #ifndef BOOST_BIND_HPP_INCLUDED
@@ -0,0 +1,62 @@
1
+ #ifndef BOOST_BIND_ARG_HPP_INCLUDED
2
+ #define BOOST_BIND_ARG_HPP_INCLUDED
3
+
4
+ // MS compatible compilers support #pragma once
5
+
6
+ #if defined(_MSC_VER) && (_MSC_VER >= 1020)
7
+ # pragma once
8
+ #endif
9
+
10
+ //
11
+ // bind/arg.hpp
12
+ //
13
+ // Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
14
+ //
15
+ // Distributed under the Boost Software License, Version 1.0. (See
16
+ // accompanying file LICENSE_1_0.txt or copy at
17
+ // http://www.boost.org/LICENSE_1_0.txt)
18
+ //
19
+ // See http://www.boost.org/libs/bind/bind.html for documentation.
20
+ //
21
+
22
+ #include <boost/config.hpp>
23
+ #include <boost/is_placeholder.hpp>
24
+
25
+ namespace boost
26
+ {
27
+
28
+ template< int I > struct arg
29
+ {
30
+ arg()
31
+ {
32
+ }
33
+
34
+ template< class T > arg( T const & /* t */ )
35
+ {
36
+ // static assert I == is_placeholder<T>::value
37
+ typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];
38
+ }
39
+ };
40
+
41
+ template< int I > bool operator==( arg<I> const &, arg<I> const & )
42
+ {
43
+ return true;
44
+ }
45
+
46
+ #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
47
+
48
+ template< int I > struct is_placeholder< arg<I> >
49
+ {
50
+ enum _vt { value = I };
51
+ };
52
+
53
+ template< int I > struct is_placeholder< arg<I> (*) () >
54
+ {
55
+ enum _vt { value = I };
56
+ };
57
+
58
+ #endif
59
+
60
+ } // namespace boost
61
+
62
+ #endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED
@@ -0,0 +1,1751 @@
1
+ #ifndef BOOST_BIND_BIND_HPP_INCLUDED
2
+ #define BOOST_BIND_BIND_HPP_INCLUDED
3
+
4
+ // MS compatible compilers support #pragma once
5
+
6
+ #if defined(_MSC_VER) && (_MSC_VER >= 1020)
7
+ # pragma once
8
+ #endif
9
+
10
+ //
11
+ // bind.hpp - binds function objects to arguments
12
+ //
13
+ // Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.
14
+ // Copyright (c) 2001 David Abrahams
15
+ // Copyright (c) 2005 Peter Dimov
16
+ //
17
+ // Distributed under the Boost Software License, Version 1.0. (See
18
+ // accompanying file LICENSE_1_0.txt or copy at
19
+ // http://www.boost.org/LICENSE_1_0.txt)
20
+ //
21
+ // See http://www.boost.org/libs/bind/bind.html for documentation.
22
+ //
23
+
24
+ #include <boost/config.hpp>
25
+ #include <boost/ref.hpp>
26
+ #include <boost/mem_fn.hpp>
27
+ #include <boost/type.hpp>
28
+ #include <boost/is_placeholder.hpp>
29
+ #include <boost/bind/arg.hpp>
30
+ #include <boost/detail/workaround.hpp>
31
+ #include <boost/visit_each.hpp>
32
+
33
+ // Borland-specific bug, visit_each() silently fails to produce code
34
+
35
+ #if defined(__BORLANDC__)
36
+ # define BOOST_BIND_VISIT_EACH boost::visit_each
37
+ #else
38
+ # define BOOST_BIND_VISIT_EACH visit_each
39
+ #endif
40
+
41
+ #include <boost/bind/storage.hpp>
42
+
43
+ #ifdef BOOST_MSVC
44
+ # pragma warning(push)
45
+ # pragma warning(disable: 4512) // assignment operator could not be generated
46
+ #endif
47
+
48
+ namespace boost
49
+ {
50
+
51
+ template<class T> class weak_ptr;
52
+
53
+ namespace _bi // implementation details
54
+ {
55
+
56
+ // result_traits
57
+
58
+ template<class R, class F> struct result_traits
59
+ {
60
+ typedef R type;
61
+ };
62
+
63
+ #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
64
+
65
+ struct unspecified {};
66
+
67
+ template<class F> struct result_traits<unspecified, F>
68
+ {
69
+ typedef typename F::result_type type;
70
+ };
71
+
72
+ template<class F> struct result_traits< unspecified, reference_wrapper<F> >
73
+ {
74
+ typedef typename F::result_type type;
75
+ };
76
+
77
+ #endif
78
+
79
+ // ref_compare
80
+
81
+ template<class T> bool ref_compare( T const & a, T const & b, long )
82
+ {
83
+ return a == b;
84
+ }
85
+
86
+ template<int I> bool ref_compare( arg<I> const &, arg<I> const &, int )
87
+ {
88
+ return true;
89
+ }
90
+
91
+ template<int I> bool ref_compare( arg<I> (*) (), arg<I> (*) (), int )
92
+ {
93
+ return true;
94
+ }
95
+
96
+ template<class T> bool ref_compare( reference_wrapper<T> const & a, reference_wrapper<T> const & b, int )
97
+ {
98
+ return a.get_pointer() == b.get_pointer();
99
+ }
100
+
101
+ // bind_t forward declaration for listN
102
+
103
+ template<class R, class F, class L> class bind_t;
104
+
105
+ template<class R, class F, class L> bool ref_compare( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
106
+ {
107
+ return a.compare( b );
108
+ }
109
+
110
+ // value
111
+
112
+ template<class T> class value
113
+ {
114
+ public:
115
+
116
+ value(T const & t): t_(t) {}
117
+
118
+ T & get() { return t_; }
119
+ T const & get() const { return t_; }
120
+
121
+ bool operator==(value const & rhs) const
122
+ {
123
+ return t_ == rhs.t_;
124
+ }
125
+
126
+ private:
127
+
128
+ T t_;
129
+ };
130
+
131
+ // ref_compare for weak_ptr
132
+
133
+ template<class T> bool ref_compare( value< weak_ptr<T> > const & a, value< weak_ptr<T> > const & b, int )
134
+ {
135
+ return !(a.get() < b.get()) && !(b.get() < a.get());
136
+ }
137
+
138
+ // type
139
+
140
+ template<class T> class type {};
141
+
142
+ // unwrap
143
+
144
+ template<class F> struct unwrapper
145
+ {
146
+ static inline F & unwrap( F & f, long )
147
+ {
148
+ return f;
149
+ }
150
+
151
+ template<class F2> static inline F2 & unwrap( reference_wrapper<F2> rf, int )
152
+ {
153
+ return rf.get();
154
+ }
155
+
156
+ template<class R, class T> static inline _mfi::dm<R, T> unwrap( R T::* pm, int )
157
+ {
158
+ return _mfi::dm<R, T>( pm );
159
+ }
160
+ };
161
+
162
+ // listN
163
+
164
+ class list0
165
+ {
166
+ public:
167
+
168
+ list0() {}
169
+
170
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
171
+
172
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
173
+
174
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
175
+
176
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
177
+
178
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
179
+
180
+ template<class R, class F, class A> R operator()(type<R>, F & f, A &, long)
181
+ {
182
+ return unwrapper<F>::unwrap(f, 0)();
183
+ }
184
+
185
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A &, long) const
186
+ {
187
+ return unwrapper<F const>::unwrap(f, 0)();
188
+ }
189
+
190
+ template<class F, class A> void operator()(type<void>, F & f, A &, int)
191
+ {
192
+ unwrapper<F>::unwrap(f, 0)();
193
+ }
194
+
195
+ template<class F, class A> void operator()(type<void>, F const & f, A &, int) const
196
+ {
197
+ unwrapper<F const>::unwrap(f, 0)();
198
+ }
199
+
200
+ template<class V> void accept(V &) const
201
+ {
202
+ }
203
+
204
+ bool operator==(list0 const &) const
205
+ {
206
+ return true;
207
+ }
208
+ };
209
+
210
+ #ifdef BOOST_MSVC
211
+ // MSVC is bright enough to realise that the parameter rhs
212
+ // in operator==may be unused for some template argument types:
213
+ #pragma warning(push)
214
+ #pragma warning(disable:4100)
215
+ #endif
216
+
217
+ template< class A1 > class list1: private storage1< A1 >
218
+ {
219
+ private:
220
+
221
+ typedef storage1< A1 > base_type;
222
+
223
+ public:
224
+
225
+ explicit list1( A1 a1 ): base_type( a1 ) {}
226
+
227
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
228
+
229
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
230
+
231
+ template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
232
+
233
+ template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
234
+
235
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
236
+
237
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
238
+
239
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
240
+
241
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
242
+ {
243
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
244
+ }
245
+
246
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
247
+ {
248
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
249
+ }
250
+
251
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
252
+ {
253
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
254
+ }
255
+
256
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
257
+ {
258
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
259
+ }
260
+
261
+ template<class V> void accept(V & v) const
262
+ {
263
+ base_type::accept(v);
264
+ }
265
+
266
+ bool operator==(list1 const & rhs) const
267
+ {
268
+ return ref_compare(base_type::a1_, rhs.a1_, 0);
269
+ }
270
+ };
271
+
272
+ struct logical_and;
273
+ struct logical_or;
274
+
275
+ template< class A1, class A2 > class list2: private storage2< A1, A2 >
276
+ {
277
+ private:
278
+
279
+ typedef storage2< A1, A2 > base_type;
280
+
281
+ public:
282
+
283
+ list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}
284
+
285
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
286
+ A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
287
+
288
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
289
+ A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
290
+
291
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
292
+
293
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
294
+
295
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
296
+
297
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
298
+
299
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
300
+
301
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
302
+ {
303
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
304
+ }
305
+
306
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
307
+ {
308
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
309
+ }
310
+
311
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
312
+ {
313
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
314
+ }
315
+
316
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
317
+ {
318
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
319
+ }
320
+
321
+ template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )
322
+ {
323
+ return a[ base_type::a1_ ] && a[ base_type::a2_ ];
324
+ }
325
+
326
+ template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const
327
+ {
328
+ return a[ base_type::a1_ ] && a[ base_type::a2_ ];
329
+ }
330
+
331
+ template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )
332
+ {
333
+ return a[ base_type::a1_ ] || a[ base_type::a2_ ];
334
+ }
335
+
336
+ template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const
337
+ {
338
+ return a[ base_type::a1_ ] || a[ base_type::a2_ ];
339
+ }
340
+
341
+ template<class V> void accept(V & v) const
342
+ {
343
+ base_type::accept(v);
344
+ }
345
+
346
+ bool operator==(list2 const & rhs) const
347
+ {
348
+ return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0);
349
+ }
350
+ };
351
+
352
+ template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 >
353
+ {
354
+ private:
355
+
356
+ typedef storage3< A1, A2, A3 > base_type;
357
+
358
+ public:
359
+
360
+ list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}
361
+
362
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
363
+ A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
364
+ A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
365
+
366
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
367
+ A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
368
+ A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
369
+
370
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
371
+
372
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
373
+
374
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
375
+
376
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
377
+
378
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
379
+
380
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
381
+ {
382
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
383
+ }
384
+
385
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
386
+ {
387
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
388
+ }
389
+
390
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
391
+ {
392
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
393
+ }
394
+
395
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
396
+ {
397
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
398
+ }
399
+
400
+ template<class V> void accept(V & v) const
401
+ {
402
+ base_type::accept(v);
403
+ }
404
+
405
+ bool operator==(list3 const & rhs) const
406
+ {
407
+ return
408
+
409
+ ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
410
+ ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
411
+ ref_compare( base_type::a3_, rhs.a3_, 0 );
412
+ }
413
+ };
414
+
415
+ template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 >
416
+ {
417
+ private:
418
+
419
+ typedef storage4< A1, A2, A3, A4 > base_type;
420
+
421
+ public:
422
+
423
+ list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {}
424
+
425
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
426
+ A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
427
+ A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
428
+ A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
429
+
430
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
431
+ A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
432
+ A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
433
+ A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
434
+
435
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
436
+
437
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
438
+
439
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
440
+
441
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
442
+
443
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
444
+
445
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
446
+ {
447
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
448
+ }
449
+
450
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
451
+ {
452
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
453
+ }
454
+
455
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
456
+ {
457
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
458
+ }
459
+
460
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
461
+ {
462
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
463
+ }
464
+
465
+ template<class V> void accept(V & v) const
466
+ {
467
+ base_type::accept(v);
468
+ }
469
+
470
+ bool operator==(list4 const & rhs) const
471
+ {
472
+ return
473
+
474
+ ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
475
+ ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
476
+ ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
477
+ ref_compare( base_type::a4_, rhs.a4_, 0 );
478
+ }
479
+ };
480
+
481
+ template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 >
482
+ {
483
+ private:
484
+
485
+ typedef storage5< A1, A2, A3, A4, A5 > base_type;
486
+
487
+ public:
488
+
489
+ list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {}
490
+
491
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
492
+ A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
493
+ A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
494
+ A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
495
+ A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
496
+
497
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
498
+ A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
499
+ A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
500
+ A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
501
+ A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
502
+
503
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
504
+
505
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
506
+
507
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
508
+
509
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
510
+
511
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
512
+
513
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
514
+ {
515
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
516
+ }
517
+
518
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
519
+ {
520
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
521
+ }
522
+
523
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
524
+ {
525
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
526
+ }
527
+
528
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
529
+ {
530
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
531
+ }
532
+
533
+ template<class V> void accept(V & v) const
534
+ {
535
+ base_type::accept(v);
536
+ }
537
+
538
+ bool operator==(list5 const & rhs) const
539
+ {
540
+ return
541
+
542
+ ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
543
+ ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
544
+ ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
545
+ ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
546
+ ref_compare( base_type::a5_, rhs.a5_, 0 );
547
+ }
548
+ };
549
+
550
+ template<class A1, class A2, class A3, class A4, class A5, class A6> class list6: private storage6< A1, A2, A3, A4, A5, A6 >
551
+ {
552
+ private:
553
+
554
+ typedef storage6< A1, A2, A3, A4, A5, A6 > base_type;
555
+
556
+ public:
557
+
558
+ list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {}
559
+
560
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
561
+ A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
562
+ A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
563
+ A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
564
+ A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
565
+ A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
566
+
567
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
568
+ A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
569
+ A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
570
+ A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
571
+ A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
572
+ A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
573
+
574
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
575
+
576
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
577
+
578
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
579
+
580
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
581
+
582
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
583
+
584
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
585
+ {
586
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
587
+ }
588
+
589
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
590
+ {
591
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
592
+ }
593
+
594
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
595
+ {
596
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
597
+ }
598
+
599
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
600
+ {
601
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
602
+ }
603
+
604
+ template<class V> void accept(V & v) const
605
+ {
606
+ base_type::accept(v);
607
+ }
608
+
609
+ bool operator==(list6 const & rhs) const
610
+ {
611
+ return
612
+
613
+ ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
614
+ ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
615
+ ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
616
+ ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
617
+ ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
618
+ ref_compare( base_type::a6_, rhs.a6_, 0 );
619
+ }
620
+ };
621
+
622
+ template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 >
623
+ {
624
+ private:
625
+
626
+ typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type;
627
+
628
+ public:
629
+
630
+ list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {}
631
+
632
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
633
+ A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
634
+ A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
635
+ A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
636
+ A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
637
+ A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
638
+ A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
639
+
640
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
641
+ A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
642
+ A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
643
+ A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
644
+ A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
645
+ A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
646
+ A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
647
+
648
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
649
+
650
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
651
+
652
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
653
+
654
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
655
+
656
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
657
+
658
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
659
+ {
660
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
661
+ }
662
+
663
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
664
+ {
665
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
666
+ }
667
+
668
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
669
+ {
670
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
671
+ }
672
+
673
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
674
+ {
675
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
676
+ }
677
+
678
+ template<class V> void accept(V & v) const
679
+ {
680
+ base_type::accept(v);
681
+ }
682
+
683
+ bool operator==(list7 const & rhs) const
684
+ {
685
+ return
686
+
687
+ ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
688
+ ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
689
+ ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
690
+ ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
691
+ ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
692
+ ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
693
+ ref_compare( base_type::a7_, rhs.a7_, 0 );
694
+ }
695
+ };
696
+
697
+ template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
698
+ {
699
+ private:
700
+
701
+ typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type;
702
+
703
+ public:
704
+
705
+ list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
706
+
707
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
708
+ A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
709
+ A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
710
+ A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
711
+ A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
712
+ A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
713
+ A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
714
+ A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
715
+
716
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
717
+ A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
718
+ A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
719
+ A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
720
+ A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
721
+ A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
722
+ A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
723
+ A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
724
+
725
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
726
+
727
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
728
+
729
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
730
+
731
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
732
+
733
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
734
+
735
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
736
+ {
737
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
738
+ }
739
+
740
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
741
+ {
742
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
743
+ }
744
+
745
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
746
+ {
747
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
748
+ }
749
+
750
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
751
+ {
752
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
753
+ }
754
+
755
+ template<class V> void accept(V & v) const
756
+ {
757
+ base_type::accept(v);
758
+ }
759
+
760
+ bool operator==(list8 const & rhs) const
761
+ {
762
+ return
763
+
764
+ ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
765
+ ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
766
+ ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
767
+ ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
768
+ ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
769
+ ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
770
+ ref_compare( base_type::a7_, rhs.a7_, 0 ) &&
771
+ ref_compare( base_type::a8_, rhs.a8_, 0 );
772
+ }
773
+ };
774
+
775
+ template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 >
776
+ {
777
+ private:
778
+
779
+ typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type;
780
+
781
+ public:
782
+
783
+ list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {}
784
+
785
+ A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
786
+ A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
787
+ A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
788
+ A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
789
+ A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
790
+ A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
791
+ A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
792
+ A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
793
+ A9 operator[] (boost::arg<9>) const { return base_type::a9_; }
794
+
795
+ A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
796
+ A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
797
+ A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
798
+ A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
799
+ A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
800
+ A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
801
+ A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
802
+ A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
803
+ A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; }
804
+
805
+ template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
806
+
807
+ template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
808
+
809
+ template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
810
+
811
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
812
+
813
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
814
+
815
+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
816
+ {
817
+ return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
818
+ }
819
+
820
+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
821
+ {
822
+ return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
823
+ }
824
+
825
+ template<class F, class A> void operator()(type<void>, F & f, A & a, int)
826
+ {
827
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
828
+ }
829
+
830
+ template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
831
+ {
832
+ unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
833
+ }
834
+
835
+ template<class V> void accept(V & v) const
836
+ {
837
+ base_type::accept(v);
838
+ }
839
+
840
+ bool operator==(list9 const & rhs) const
841
+ {
842
+ return
843
+
844
+ ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
845
+ ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
846
+ ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
847
+ ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
848
+ ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
849
+ ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
850
+ ref_compare( base_type::a7_, rhs.a7_, 0 ) &&
851
+ ref_compare( base_type::a8_, rhs.a8_, 0 ) &&
852
+ ref_compare( base_type::a9_, rhs.a9_, 0 );
853
+ }
854
+ };
855
+
856
+ #ifdef BOOST_MSVC
857
+ #pragma warning(pop)
858
+ #endif
859
+
860
+ // bind_t
861
+
862
+ #ifndef BOOST_NO_VOID_RETURNS
863
+
864
+ template<class R, class F, class L> class bind_t
865
+ {
866
+ public:
867
+
868
+ typedef bind_t this_type;
869
+
870
+ bind_t(F f, L const & l): f_(f), l_(l) {}
871
+
872
+ #define BOOST_BIND_RETURN return
873
+ #include <boost/bind/bind_template.hpp>
874
+ #undef BOOST_BIND_RETURN
875
+
876
+ };
877
+
878
+ #else
879
+
880
+ template<class R> struct bind_t_generator
881
+ {
882
+
883
+ template<class F, class L> class implementation
884
+ {
885
+ public:
886
+
887
+ typedef implementation this_type;
888
+
889
+ implementation(F f, L const & l): f_(f), l_(l) {}
890
+
891
+ #define BOOST_BIND_RETURN return
892
+ #include <boost/bind/bind_template.hpp>
893
+ #undef BOOST_BIND_RETURN
894
+
895
+ };
896
+
897
+ };
898
+
899
+ template<> struct bind_t_generator<void>
900
+ {
901
+
902
+ template<class F, class L> class implementation
903
+ {
904
+ private:
905
+
906
+ typedef void R;
907
+
908
+ public:
909
+
910
+ typedef implementation this_type;
911
+
912
+ implementation(F f, L const & l): f_(f), l_(l) {}
913
+
914
+ #define BOOST_BIND_RETURN
915
+ #include <boost/bind/bind_template.hpp>
916
+ #undef BOOST_BIND_RETURN
917
+
918
+ };
919
+
920
+ };
921
+
922
+ template<class R2, class F, class L> class bind_t: public bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>
923
+ {
924
+ public:
925
+
926
+ bind_t(F f, L const & l): bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>(f, l) {}
927
+
928
+ };
929
+
930
+ #endif
931
+
932
+ // function_equal
933
+
934
+ #ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
935
+
936
+ // put overloads in _bi, rely on ADL
937
+
938
+ # ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
939
+
940
+ template<class R, class F, class L> bool function_equal( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )
941
+ {
942
+ return a.compare(b);
943
+ }
944
+
945
+ # else
946
+
947
+ template<class R, class F, class L> bool function_equal_impl( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
948
+ {
949
+ return a.compare(b);
950
+ }
951
+
952
+ # endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
953
+
954
+ #else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
955
+
956
+ // put overloads in boost
957
+
958
+ } // namespace _bi
959
+
960
+ # ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
961
+
962
+ template<class R, class F, class L> bool function_equal( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b )
963
+ {
964
+ return a.compare(b);
965
+ }
966
+
967
+ # else
968
+
969
+ template<class R, class F, class L> bool function_equal_impl( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b, int )
970
+ {
971
+ return a.compare(b);
972
+ }
973
+
974
+ # endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
975
+
976
+ namespace _bi
977
+ {
978
+
979
+ #endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
980
+
981
+ // add_value
982
+
983
+ #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
984
+
985
+ #if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) )
986
+
987
+ template<class T> struct add_value
988
+ {
989
+ typedef _bi::value<T> type;
990
+ };
991
+
992
+ #else
993
+
994
+ template< class T, int I > struct add_value_2
995
+ {
996
+ typedef boost::arg<I> type;
997
+ };
998
+
999
+ template< class T > struct add_value_2< T, 0 >
1000
+ {
1001
+ typedef _bi::value< T > type;
1002
+ };
1003
+
1004
+ template<class T> struct add_value
1005
+ {
1006
+ typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type;
1007
+ };
1008
+
1009
+ #endif
1010
+
1011
+ template<class T> struct add_value< value<T> >
1012
+ {
1013
+ typedef _bi::value<T> type;
1014
+ };
1015
+
1016
+ template<class T> struct add_value< reference_wrapper<T> >
1017
+ {
1018
+ typedef reference_wrapper<T> type;
1019
+ };
1020
+
1021
+ template<int I> struct add_value< arg<I> >
1022
+ {
1023
+ typedef boost::arg<I> type;
1024
+ };
1025
+
1026
+ template<int I> struct add_value< arg<I> (*) () >
1027
+ {
1028
+ typedef boost::arg<I> (*type) ();
1029
+ };
1030
+
1031
+ template<class R, class F, class L> struct add_value< bind_t<R, F, L> >
1032
+ {
1033
+ typedef bind_t<R, F, L> type;
1034
+ };
1035
+
1036
+ #else
1037
+
1038
+ template<int I> struct _avt_0;
1039
+
1040
+ template<> struct _avt_0<1>
1041
+ {
1042
+ template<class T> struct inner
1043
+ {
1044
+ typedef T type;
1045
+ };
1046
+ };
1047
+
1048
+ template<> struct _avt_0<2>
1049
+ {
1050
+ template<class T> struct inner
1051
+ {
1052
+ typedef value<T> type;
1053
+ };
1054
+ };
1055
+
1056
+ typedef char (&_avt_r1) [1];
1057
+ typedef char (&_avt_r2) [2];
1058
+
1059
+ template<class T> _avt_r1 _avt_f(value<T>);
1060
+ template<class T> _avt_r1 _avt_f(reference_wrapper<T>);
1061
+ template<int I> _avt_r1 _avt_f(arg<I>);
1062
+ template<int I> _avt_r1 _avt_f(arg<I> (*) ());
1063
+ template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);
1064
+
1065
+ _avt_r2 _avt_f(...);
1066
+
1067
+ template<class T> struct add_value
1068
+ {
1069
+ static T t();
1070
+ typedef typename _avt_0<sizeof(_avt_f(t()))>::template inner<T>::type type;
1071
+ };
1072
+
1073
+ #endif
1074
+
1075
+ // list_av_N
1076
+
1077
+ template<class A1> struct list_av_1
1078
+ {
1079
+ typedef typename add_value<A1>::type B1;
1080
+ typedef list1<B1> type;
1081
+ };
1082
+
1083
+ template<class A1, class A2> struct list_av_2
1084
+ {
1085
+ typedef typename add_value<A1>::type B1;
1086
+ typedef typename add_value<A2>::type B2;
1087
+ typedef list2<B1, B2> type;
1088
+ };
1089
+
1090
+ template<class A1, class A2, class A3> struct list_av_3
1091
+ {
1092
+ typedef typename add_value<A1>::type B1;
1093
+ typedef typename add_value<A2>::type B2;
1094
+ typedef typename add_value<A3>::type B3;
1095
+ typedef list3<B1, B2, B3> type;
1096
+ };
1097
+
1098
+ template<class A1, class A2, class A3, class A4> struct list_av_4
1099
+ {
1100
+ typedef typename add_value<A1>::type B1;
1101
+ typedef typename add_value<A2>::type B2;
1102
+ typedef typename add_value<A3>::type B3;
1103
+ typedef typename add_value<A4>::type B4;
1104
+ typedef list4<B1, B2, B3, B4> type;
1105
+ };
1106
+
1107
+ template<class A1, class A2, class A3, class A4, class A5> struct list_av_5
1108
+ {
1109
+ typedef typename add_value<A1>::type B1;
1110
+ typedef typename add_value<A2>::type B2;
1111
+ typedef typename add_value<A3>::type B3;
1112
+ typedef typename add_value<A4>::type B4;
1113
+ typedef typename add_value<A5>::type B5;
1114
+ typedef list5<B1, B2, B3, B4, B5> type;
1115
+ };
1116
+
1117
+ template<class A1, class A2, class A3, class A4, class A5, class A6> struct list_av_6
1118
+ {
1119
+ typedef typename add_value<A1>::type B1;
1120
+ typedef typename add_value<A2>::type B2;
1121
+ typedef typename add_value<A3>::type B3;
1122
+ typedef typename add_value<A4>::type B4;
1123
+ typedef typename add_value<A5>::type B5;
1124
+ typedef typename add_value<A6>::type B6;
1125
+ typedef list6<B1, B2, B3, B4, B5, B6> type;
1126
+ };
1127
+
1128
+ template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct list_av_7
1129
+ {
1130
+ typedef typename add_value<A1>::type B1;
1131
+ typedef typename add_value<A2>::type B2;
1132
+ typedef typename add_value<A3>::type B3;
1133
+ typedef typename add_value<A4>::type B4;
1134
+ typedef typename add_value<A5>::type B5;
1135
+ typedef typename add_value<A6>::type B6;
1136
+ typedef typename add_value<A7>::type B7;
1137
+ typedef list7<B1, B2, B3, B4, B5, B6, B7> type;
1138
+ };
1139
+
1140
+ template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct list_av_8
1141
+ {
1142
+ typedef typename add_value<A1>::type B1;
1143
+ typedef typename add_value<A2>::type B2;
1144
+ typedef typename add_value<A3>::type B3;
1145
+ typedef typename add_value<A4>::type B4;
1146
+ typedef typename add_value<A5>::type B5;
1147
+ typedef typename add_value<A6>::type B6;
1148
+ typedef typename add_value<A7>::type B7;
1149
+ typedef typename add_value<A8>::type B8;
1150
+ typedef list8<B1, B2, B3, B4, B5, B6, B7, B8> type;
1151
+ };
1152
+
1153
+ template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> struct list_av_9
1154
+ {
1155
+ typedef typename add_value<A1>::type B1;
1156
+ typedef typename add_value<A2>::type B2;
1157
+ typedef typename add_value<A3>::type B3;
1158
+ typedef typename add_value<A4>::type B4;
1159
+ typedef typename add_value<A5>::type B5;
1160
+ typedef typename add_value<A6>::type B6;
1161
+ typedef typename add_value<A7>::type B7;
1162
+ typedef typename add_value<A8>::type B8;
1163
+ typedef typename add_value<A9>::type B9;
1164
+ typedef list9<B1, B2, B3, B4, B5, B6, B7, B8, B9> type;
1165
+ };
1166
+
1167
+ // operator!
1168
+
1169
+ struct logical_not
1170
+ {
1171
+ template<class V> bool operator()(V const & v) const { return !v; }
1172
+ };
1173
+
1174
+ template<class R, class F, class L>
1175
+ bind_t< bool, logical_not, list1< bind_t<R, F, L> > >
1176
+ operator! (bind_t<R, F, L> const & f)
1177
+ {
1178
+ typedef list1< bind_t<R, F, L> > list_type;
1179
+ return bind_t<bool, logical_not, list_type> ( logical_not(), list_type(f) );
1180
+ }
1181
+
1182
+ // relational operators
1183
+
1184
+ #define BOOST_BIND_OPERATOR( op, name ) \
1185
+ \
1186
+ struct name \
1187
+ { \
1188
+ template<class V, class W> bool operator()(V const & v, W const & w) const { return v op w; } \
1189
+ }; \
1190
+ \
1191
+ template<class R, class F, class L, class A2> \
1192
+ bind_t< bool, name, list2< bind_t<R, F, L>, typename add_value<A2>::type > > \
1193
+ operator op (bind_t<R, F, L> const & f, A2 a2) \
1194
+ { \
1195
+ typedef typename add_value<A2>::type B2; \
1196
+ typedef list2< bind_t<R, F, L>, B2> list_type; \
1197
+ return bind_t<bool, name, list_type> ( name(), list_type(f, a2) ); \
1198
+ }
1199
+
1200
+ BOOST_BIND_OPERATOR( ==, equal )
1201
+ BOOST_BIND_OPERATOR( !=, not_equal )
1202
+
1203
+ BOOST_BIND_OPERATOR( <, less )
1204
+ BOOST_BIND_OPERATOR( <=, less_equal )
1205
+
1206
+ BOOST_BIND_OPERATOR( >, greater )
1207
+ BOOST_BIND_OPERATOR( >=, greater_equal )
1208
+
1209
+ BOOST_BIND_OPERATOR( &&, logical_and )
1210
+ BOOST_BIND_OPERATOR( ||, logical_or )
1211
+
1212
+ #undef BOOST_BIND_OPERATOR
1213
+
1214
+ #if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3)
1215
+
1216
+ // resolve ambiguity with rel_ops
1217
+
1218
+ #define BOOST_BIND_OPERATOR( op, name ) \
1219
+ \
1220
+ template<class R, class F, class L> \
1221
+ bind_t< bool, name, list2< bind_t<R, F, L>, bind_t<R, F, L> > > \
1222
+ operator op (bind_t<R, F, L> const & f, bind_t<R, F, L> const & g) \
1223
+ { \
1224
+ typedef list2< bind_t<R, F, L>, bind_t<R, F, L> > list_type; \
1225
+ return bind_t<bool, name, list_type> ( name(), list_type(f, g) ); \
1226
+ }
1227
+
1228
+ BOOST_BIND_OPERATOR( !=, not_equal )
1229
+ BOOST_BIND_OPERATOR( <=, less_equal )
1230
+ BOOST_BIND_OPERATOR( >, greater )
1231
+ BOOST_BIND_OPERATOR( >=, greater_equal )
1232
+
1233
+ #endif
1234
+
1235
+ // visit_each, ADL
1236
+
1237
+ #if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \
1238
+ && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
1239
+
1240
+ template<class V, class T> void visit_each( V & v, value<T> const & t, int )
1241
+ {
1242
+ using boost::visit_each;
1243
+ BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
1244
+ }
1245
+
1246
+ template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F, L> const & t, int )
1247
+ {
1248
+ t.accept( v );
1249
+ }
1250
+
1251
+ #endif
1252
+
1253
+ } // namespace _bi
1254
+
1255
+ // visit_each, no ADL
1256
+
1257
+ #if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \
1258
+ || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
1259
+
1260
+ template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int )
1261
+ {
1262
+ BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
1263
+ }
1264
+
1265
+ template<class V, class R, class F, class L> void visit_each( V & v, _bi::bind_t<R, F, L> const & t, int )
1266
+ {
1267
+ t.accept( v );
1268
+ }
1269
+
1270
+ #endif
1271
+
1272
+ // is_bind_expression
1273
+
1274
+ template< class T > struct is_bind_expression
1275
+ {
1276
+ enum _vt { value = 0 };
1277
+ };
1278
+
1279
+ #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
1280
+
1281
+ template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >
1282
+ {
1283
+ enum _vt { value = 1 };
1284
+ };
1285
+
1286
+ #endif
1287
+
1288
+ // bind
1289
+
1290
+ #ifndef BOOST_BIND
1291
+ #define BOOST_BIND bind
1292
+ #endif
1293
+
1294
+ // generic function objects
1295
+
1296
+ template<class R, class F>
1297
+ _bi::bind_t<R, F, _bi::list0>
1298
+ BOOST_BIND(F f)
1299
+ {
1300
+ typedef _bi::list0 list_type;
1301
+ return _bi::bind_t<R, F, list_type> (f, list_type());
1302
+ }
1303
+
1304
+ template<class R, class F, class A1>
1305
+ _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
1306
+ BOOST_BIND(F f, A1 a1)
1307
+ {
1308
+ typedef typename _bi::list_av_1<A1>::type list_type;
1309
+ return _bi::bind_t<R, F, list_type> (f, list_type(a1));
1310
+ }
1311
+
1312
+ template<class R, class F, class A1, class A2>
1313
+ _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
1314
+ BOOST_BIND(F f, A1 a1, A2 a2)
1315
+ {
1316
+ typedef typename _bi::list_av_2<A1, A2>::type list_type;
1317
+ return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
1318
+ }
1319
+
1320
+ template<class R, class F, class A1, class A2, class A3>
1321
+ _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>
1322
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
1323
+ {
1324
+ typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
1325
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
1326
+ }
1327
+
1328
+ template<class R, class F, class A1, class A2, class A3, class A4>
1329
+ _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
1330
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
1331
+ {
1332
+ typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
1333
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
1334
+ }
1335
+
1336
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5>
1337
+ _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
1338
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
1339
+ {
1340
+ typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
1341
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
1342
+ }
1343
+
1344
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
1345
+ _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
1346
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
1347
+ {
1348
+ typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
1349
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
1350
+ }
1351
+
1352
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
1353
+ _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
1354
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
1355
+ {
1356
+ typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
1357
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
1358
+ }
1359
+
1360
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
1361
+ _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
1362
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
1363
+ {
1364
+ typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
1365
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
1366
+ }
1367
+
1368
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
1369
+ _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
1370
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
1371
+ {
1372
+ typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
1373
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
1374
+ }
1375
+
1376
+ // generic function objects, alternative syntax
1377
+
1378
+ template<class R, class F>
1379
+ _bi::bind_t<R, F, _bi::list0>
1380
+ BOOST_BIND(boost::type<R>, F f)
1381
+ {
1382
+ typedef _bi::list0 list_type;
1383
+ return _bi::bind_t<R, F, list_type> (f, list_type());
1384
+ }
1385
+
1386
+ template<class R, class F, class A1>
1387
+ _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
1388
+ BOOST_BIND(boost::type<R>, F f, A1 a1)
1389
+ {
1390
+ typedef typename _bi::list_av_1<A1>::type list_type;
1391
+ return _bi::bind_t<R, F, list_type> (f, list_type(a1));
1392
+ }
1393
+
1394
+ template<class R, class F, class A1, class A2>
1395
+ _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
1396
+ BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2)
1397
+ {
1398
+ typedef typename _bi::list_av_2<A1, A2>::type list_type;
1399
+ return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
1400
+ }
1401
+
1402
+ template<class R, class F, class A1, class A2, class A3>
1403
+ _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>
1404
+ BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3)
1405
+ {
1406
+ typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
1407
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
1408
+ }
1409
+
1410
+ template<class R, class F, class A1, class A2, class A3, class A4>
1411
+ _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
1412
+ BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4)
1413
+ {
1414
+ typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
1415
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
1416
+ }
1417
+
1418
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5>
1419
+ _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
1420
+ BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
1421
+ {
1422
+ typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
1423
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
1424
+ }
1425
+
1426
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
1427
+ _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
1428
+ BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
1429
+ {
1430
+ typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
1431
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
1432
+ }
1433
+
1434
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
1435
+ _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
1436
+ BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
1437
+ {
1438
+ typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
1439
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
1440
+ }
1441
+
1442
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
1443
+ _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
1444
+ BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
1445
+ {
1446
+ typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
1447
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
1448
+ }
1449
+
1450
+ template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
1451
+ _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
1452
+ BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
1453
+ {
1454
+ typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
1455
+ return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
1456
+ }
1457
+
1458
+ #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
1459
+
1460
+ // adaptable function objects
1461
+
1462
+ template<class F>
1463
+ _bi::bind_t<_bi::unspecified, F, _bi::list0>
1464
+ BOOST_BIND(F f)
1465
+ {
1466
+ typedef _bi::list0 list_type;
1467
+ return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type());
1468
+ }
1469
+
1470
+ template<class F, class A1>
1471
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1<A1>::type>
1472
+ BOOST_BIND(F f, A1 a1)
1473
+ {
1474
+ typedef typename _bi::list_av_1<A1>::type list_type;
1475
+ return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1));
1476
+ }
1477
+
1478
+ template<class F, class A1, class A2>
1479
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2<A1, A2>::type>
1480
+ BOOST_BIND(F f, A1 a1, A2 a2)
1481
+ {
1482
+ typedef typename _bi::list_av_2<A1, A2>::type list_type;
1483
+ return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2));
1484
+ }
1485
+
1486
+ template<class F, class A1, class A2, class A3>
1487
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3<A1, A2, A3>::type>
1488
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
1489
+ {
1490
+ typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
1491
+ return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3));
1492
+ }
1493
+
1494
+ template<class F, class A1, class A2, class A3, class A4>
1495
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
1496
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
1497
+ {
1498
+ typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
1499
+ return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4));
1500
+ }
1501
+
1502
+ template<class F, class A1, class A2, class A3, class A4, class A5>
1503
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
1504
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
1505
+ {
1506
+ typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
1507
+ return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
1508
+ }
1509
+
1510
+ template<class F, class A1, class A2, class A3, class A4, class A5, class A6>
1511
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
1512
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
1513
+ {
1514
+ typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
1515
+ return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
1516
+ }
1517
+
1518
+ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
1519
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
1520
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
1521
+ {
1522
+ typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
1523
+ return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
1524
+ }
1525
+
1526
+ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
1527
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
1528
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
1529
+ {
1530
+ typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
1531
+ return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
1532
+ }
1533
+
1534
+ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
1535
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
1536
+ BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
1537
+ {
1538
+ typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
1539
+ return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
1540
+ }
1541
+
1542
+ #endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
1543
+
1544
+ // function pointers
1545
+
1546
+ #define BOOST_BIND_CC
1547
+ #define BOOST_BIND_ST
1548
+
1549
+ #include <boost/bind/bind_cc.hpp>
1550
+
1551
+ #undef BOOST_BIND_CC
1552
+ #undef BOOST_BIND_ST
1553
+
1554
+ #ifdef BOOST_BIND_ENABLE_STDCALL
1555
+
1556
+ #define BOOST_BIND_CC __stdcall
1557
+ #define BOOST_BIND_ST
1558
+
1559
+ #include <boost/bind/bind_cc.hpp>
1560
+
1561
+ #undef BOOST_BIND_CC
1562
+ #undef BOOST_BIND_ST
1563
+
1564
+ #endif
1565
+
1566
+ #ifdef BOOST_BIND_ENABLE_FASTCALL
1567
+
1568
+ #define BOOST_BIND_CC __fastcall
1569
+ #define BOOST_BIND_ST
1570
+
1571
+ #include <boost/bind/bind_cc.hpp>
1572
+
1573
+ #undef BOOST_BIND_CC
1574
+ #undef BOOST_BIND_ST
1575
+
1576
+ #endif
1577
+
1578
+ #ifdef BOOST_BIND_ENABLE_PASCAL
1579
+
1580
+ #define BOOST_BIND_ST pascal
1581
+ #define BOOST_BIND_CC
1582
+
1583
+ #include <boost/bind/bind_cc.hpp>
1584
+
1585
+ #undef BOOST_BIND_ST
1586
+ #undef BOOST_BIND_CC
1587
+
1588
+ #endif
1589
+
1590
+ // member function pointers
1591
+
1592
+ #define BOOST_BIND_MF_NAME(X) X
1593
+ #define BOOST_BIND_MF_CC
1594
+
1595
+ #include <boost/bind/bind_mf_cc.hpp>
1596
+ #include <boost/bind/bind_mf2_cc.hpp>
1597
+
1598
+ #undef BOOST_BIND_MF_NAME
1599
+ #undef BOOST_BIND_MF_CC
1600
+
1601
+ #ifdef BOOST_MEM_FN_ENABLE_CDECL
1602
+
1603
+ #define BOOST_BIND_MF_NAME(X) X##_cdecl
1604
+ #define BOOST_BIND_MF_CC __cdecl
1605
+
1606
+ #include <boost/bind/bind_mf_cc.hpp>
1607
+ #include <boost/bind/bind_mf2_cc.hpp>
1608
+
1609
+ #undef BOOST_BIND_MF_NAME
1610
+ #undef BOOST_BIND_MF_CC
1611
+
1612
+ #endif
1613
+
1614
+ #ifdef BOOST_MEM_FN_ENABLE_STDCALL
1615
+
1616
+ #define BOOST_BIND_MF_NAME(X) X##_stdcall
1617
+ #define BOOST_BIND_MF_CC __stdcall
1618
+
1619
+ #include <boost/bind/bind_mf_cc.hpp>
1620
+ #include <boost/bind/bind_mf2_cc.hpp>
1621
+
1622
+ #undef BOOST_BIND_MF_NAME
1623
+ #undef BOOST_BIND_MF_CC
1624
+
1625
+ #endif
1626
+
1627
+ #ifdef BOOST_MEM_FN_ENABLE_FASTCALL
1628
+
1629
+ #define BOOST_BIND_MF_NAME(X) X##_fastcall
1630
+ #define BOOST_BIND_MF_CC __fastcall
1631
+
1632
+ #include <boost/bind/bind_mf_cc.hpp>
1633
+ #include <boost/bind/bind_mf2_cc.hpp>
1634
+
1635
+ #undef BOOST_BIND_MF_NAME
1636
+ #undef BOOST_BIND_MF_CC
1637
+
1638
+ #endif
1639
+
1640
+ // data member pointers
1641
+
1642
+ #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
1643
+ || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) ) )
1644
+
1645
+ template<class R, class T, class A1>
1646
+ _bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type >
1647
+ BOOST_BIND(R T::*f, A1 a1)
1648
+ {
1649
+ typedef _mfi::dm<R, T> F;
1650
+ typedef typename _bi::list_av_1<A1>::type list_type;
1651
+ return _bi::bind_t<R, F, list_type>( F(f), list_type(a1) );
1652
+ }
1653
+
1654
+ #else
1655
+
1656
+ namespace _bi
1657
+ {
1658
+
1659
+ template< class Pm, int I > struct add_cref;
1660
+
1661
+ template< class M, class T > struct add_cref< M T::*, 0 >
1662
+ {
1663
+ typedef M type;
1664
+ };
1665
+
1666
+ template< class M, class T > struct add_cref< M T::*, 1 >
1667
+ {
1668
+ #ifdef BOOST_MSVC
1669
+ #pragma warning(push)
1670
+ #pragma warning(disable:4180)
1671
+ #endif
1672
+ typedef M const & type;
1673
+ #ifdef BOOST_MSVC
1674
+ #pragma warning(pop)
1675
+ #endif
1676
+ };
1677
+
1678
+ template< class R, class T > struct add_cref< R (T::*) (), 1 >
1679
+ {
1680
+ typedef void type;
1681
+ };
1682
+
1683
+ #if !( defined(__IBMCPP__) && BOOST_WORKAROUND( __IBMCPP__, BOOST_TESTED_AT(600) ) )
1684
+
1685
+ template< class R, class T > struct add_cref< R (T::*) () const, 1 >
1686
+ {
1687
+ typedef void type;
1688
+ };
1689
+
1690
+ #endif // __IBMCPP__
1691
+
1692
+ template<class R> struct isref
1693
+ {
1694
+ enum value_type { value = 0 };
1695
+ };
1696
+
1697
+ template<class R> struct isref< R& >
1698
+ {
1699
+ enum value_type { value = 1 };
1700
+ };
1701
+
1702
+ template<class R> struct isref< R* >
1703
+ {
1704
+ enum value_type { value = 1 };
1705
+ };
1706
+
1707
+ template<class Pm, class A1> struct dm_result
1708
+ {
1709
+ typedef typename add_cref< Pm, 1 >::type type;
1710
+ };
1711
+
1712
+ template<class Pm, class R, class F, class L> struct dm_result< Pm, bind_t<R, F, L> >
1713
+ {
1714
+ typedef typename bind_t<R, F, L>::result_type result_type;
1715
+ typedef typename add_cref< Pm, isref< result_type >::value >::type type;
1716
+ };
1717
+
1718
+ } // namespace _bi
1719
+
1720
+ template< class A1, class M, class T >
1721
+
1722
+ _bi::bind_t<
1723
+ typename _bi::dm_result< M T::*, A1 >::type,
1724
+ _mfi::dm<M, T>,
1725
+ typename _bi::list_av_1<A1>::type
1726
+ >
1727
+
1728
+ BOOST_BIND( M T::*f, A1 a1 )
1729
+ {
1730
+ typedef typename _bi::dm_result< M T::*, A1 >::type result_type;
1731
+ typedef _mfi::dm<M, T> F;
1732
+ typedef typename _bi::list_av_1<A1>::type list_type;
1733
+ return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );
1734
+ }
1735
+
1736
+ #endif
1737
+
1738
+ } // namespace boost
1739
+
1740
+ #ifndef BOOST_BIND_NO_PLACEHOLDERS
1741
+
1742
+ # include <boost/bind/placeholders.hpp>
1743
+
1744
+ #endif
1745
+
1746
+ #ifdef BOOST_MSVC
1747
+ # pragma warning(default: 4512) // assignment operator could not be generated
1748
+ # pragma warning(pop)
1749
+ #endif
1750
+
1751
+ #endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED