passenger 2.2.9 → 2.2.10

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (435) hide show
  1. data/NEWS +10 -0
  2. data/doc/Architectural overview.html +202 -65
  3. data/doc/Security of user switching support.html +200 -63
  4. data/doc/Users guide Apache.html +266 -129
  5. data/doc/Users guide Nginx.html +234 -97
  6. data/doc/cxxapi/AbstractSpawnManager_8h-source.html +138 -0
  7. data/doc/cxxapi/Account_8h-source.html +202 -0
  8. data/doc/cxxapi/AccountsDatabase_8h-source.html +158 -0
  9. data/doc/cxxapi/AgentsStarter_8h-source.html +79 -0
  10. data/doc/cxxapi/BCrypt_8h-source.html +101 -0
  11. data/doc/cxxapi/BacktracesServer_8h-source.html +87 -0
  12. data/doc/cxxapi/Base64_8h-source.html +85 -0
  13. data/doc/cxxapi/Blowfish_8h-source.html +131 -0
  14. data/doc/cxxapi/Bucket_8h-source.html +1 -1
  15. data/doc/cxxapi/CachedFileStat_8h-source.html +49 -157
  16. data/doc/cxxapi/Configuration_8h-source.html +1 -1
  17. data/doc/cxxapi/Constants_8h-source.html +71 -0
  18. data/doc/cxxapi/ContentHandler_8h-source.html +92 -0
  19. data/doc/cxxapi/DirectoryMapper_8h-source.html +1 -1
  20. data/doc/cxxapi/Exceptions_8h-source.html +332 -236
  21. data/doc/cxxapi/FileChangeChecker_8h-source.html +237 -0
  22. data/doc/cxxapi/FileDescriptor_8h-source.html +206 -0
  23. data/doc/cxxapi/Hooks_8h-source.html +1 -1
  24. data/doc/cxxapi/HttpStatusExtractor_8h-source.html +378 -0
  25. data/doc/cxxapi/LoggingServer_8h-source.html +165 -0
  26. data/doc/cxxapi/Logging_8h-source.html +580 -112
  27. data/doc/cxxapi/MessageChannel_8h-source.html +789 -599
  28. data/doc/cxxapi/MessageClient_8h-source.html +297 -0
  29. data/doc/cxxapi/MessageServer_8h-source.html +607 -0
  30. data/doc/cxxapi/PoolOptions_8h-source.html +471 -278
  31. data/doc/cxxapi/Process_8h-source.html +272 -0
  32. data/doc/cxxapi/RandomGenerator_8h-source.html +156 -0
  33. data/doc/cxxapi/ResourceLocator_8h-source.html +104 -0
  34. data/doc/cxxapi/ScgiRequestParser_8h-source.html +399 -0
  35. data/doc/cxxapi/ServerInstanceDir_8h-source.html +356 -0
  36. data/doc/cxxapi/Session_8h-source.html +483 -0
  37. data/doc/cxxapi/SpawnManager_8h-source.html +590 -546
  38. data/doc/cxxapi/StaticContentHandler_8h-source.html +65 -0
  39. data/doc/cxxapi/StaticString_8h-source.html +214 -0
  40. data/doc/cxxapi/StringListCreator_8h-source.html +111 -0
  41. data/doc/cxxapi/SystemTime_8h-source.html +191 -78
  42. data/doc/cxxapi/Timer_8h-source.html +157 -0
  43. data/doc/cxxapi/Utils_8h-source.html +621 -434
  44. data/doc/cxxapi/Version_8h-source.html +59 -0
  45. data/doc/cxxapi/annotated.html +1 -1
  46. data/doc/cxxapi/apache2_2Configuration_8h-source.html +79 -0
  47. data/doc/cxxapi/classAgentWatcher-members.html +50 -0
  48. data/doc/cxxapi/classAgentWatcher.html +445 -0
  49. data/doc/cxxapi/classClient-members.html +4 -3
  50. data/doc/cxxapi/classClient.html +50 -46
  51. data/doc/cxxapi/classHooks-members.html +1 -1
  52. data/doc/cxxapi/classHooks.html +1 -1
  53. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +37 -0
  54. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +191 -0
  55. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.map +1 -0
  56. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.md5 +1 -0
  57. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.png +0 -0
  58. data/doc/cxxapi/{classPassenger_1_1DummySpawnManager-members.html → classPassenger_1_1ArgumentException-members.html} +3 -2
  59. data/doc/cxxapi/classPassenger_1_1ArgumentException.html +52 -0
  60. data/doc/cxxapi/classPassenger_1_1BacktracesServer-members.html +36 -0
  61. data/doc/cxxapi/classPassenger_1_1BacktracesServer.html +107 -0
  62. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.map +1 -0
  63. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.md5 +1 -0
  64. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.png +0 -0
  65. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +3 -3
  66. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +18 -34
  67. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +2 -1
  68. data/doc/cxxapi/classPassenger_1_1BusyException.html +3 -2
  69. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +2 -1
  70. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +3 -2
  71. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +1 -1
  72. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +1 -1
  73. data/doc/cxxapi/{classPassenger_1_1FileChecker-members.html → classPassenger_1_1EOFException-members.html} +3 -4
  74. data/doc/cxxapi/classPassenger_1_1EOFException.html +57 -0
  75. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.map +1 -0
  76. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.md5 +1 -0
  77. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.png +0 -0
  78. data/doc/cxxapi/classPassenger_1_1EventFd-members.html +33 -0
  79. data/doc/cxxapi/classPassenger_1_1EventFd.html +49 -0
  80. data/doc/cxxapi/classPassenger_1_1FileChangeChecker-members.html +37 -0
  81. data/doc/cxxapi/classPassenger_1_1FileChangeChecker.html +166 -0
  82. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +37 -0
  83. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +159 -0
  84. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +2 -1
  85. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +3 -2
  86. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +2 -1
  87. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +3 -2
  88. data/doc/cxxapi/{classPassenger_1_1ApplicationPoolServer-members.html → classPassenger_1_1HttpStatusExtractor-members.html} +6 -5
  89. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +128 -0
  90. data/doc/cxxapi/classPassenger_1_1IOException-members.html +2 -1
  91. data/doc/cxxapi/classPassenger_1_1IOException.html +4 -3
  92. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +2 -1
  93. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -1
  94. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
  95. data/doc/cxxapi/classPassenger_1_1MemZeroGuard-members.html +36 -0
  96. data/doc/cxxapi/classPassenger_1_1MemZeroGuard.html +147 -0
  97. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +12 -5
  98. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +267 -34
  99. data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +46 -0
  100. data/doc/cxxapi/classPassenger_1_1MessageServer.html +438 -0
  101. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +33 -0
  102. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +56 -0
  103. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +1 -0
  104. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -0
  105. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
  106. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +38 -0
  107. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +175 -0
  108. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +1 -0
  109. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -0
  110. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
  111. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +36 -0
  112. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +176 -0
  113. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.map +1 -0
  114. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.md5 +1 -0
  115. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.png +0 -0
  116. data/doc/cxxapi/classPassenger_1_1Process-members.html +40 -0
  117. data/doc/cxxapi/classPassenger_1_1Process.html +266 -0
  118. data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +33 -0
  119. data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +51 -0
  120. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +2 -1
  121. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +3 -2
  122. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +47 -0
  123. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +302 -0
  124. data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +33 -0
  125. data/doc/cxxapi/classPassenger_1_1SecurityException.html +52 -0
  126. data/doc/cxxapi/classPassenger_1_1Session-members.html +50 -0
  127. data/doc/cxxapi/classPassenger_1_1Session.html +577 -0
  128. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.map +1 -0
  129. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.md5 +1 -0
  130. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.png +0 -0
  131. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +2 -1
  132. data/doc/cxxapi/classPassenger_1_1SpawnException.html +5 -4
  133. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +8 -5
  134. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +127 -45
  135. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.map +1 -0
  136. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.md5 +1 -0
  137. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.png +0 -0
  138. data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +51 -0
  139. data/doc/cxxapi/classPassenger_1_1StandardSession.html +415 -0
  140. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.map +1 -0
  141. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.md5 +1 -0
  142. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.png +0 -0
  143. data/doc/cxxapi/classPassenger_1_1StaticString-members.html +33 -0
  144. data/doc/cxxapi/classPassenger_1_1StaticString.html +54 -0
  145. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +2 -1
  146. data/doc/cxxapi/classPassenger_1_1SystemException.html +4 -3
  147. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -0
  148. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -1
  149. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
  150. data/doc/cxxapi/classPassenger_1_1SystemTime-members.html +9 -1
  151. data/doc/cxxapi/classPassenger_1_1SystemTime.html +92 -8
  152. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +37 -0
  153. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +57 -0
  154. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.map +1 -0
  155. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.md5 +1 -0
  156. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.png +0 -0
  157. data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +33 -0
  158. data/doc/cxxapi/classPassenger_1_1TimeoutException.html +50 -0
  159. data/doc/cxxapi/{classPassenger_1_1Application-members.html → classPassenger_1_1Timer-members.html} +8 -7
  160. data/doc/cxxapi/classPassenger_1_1Timer.html +163 -0
  161. data/doc/cxxapi/classServer-members.html +33 -0
  162. data/doc/cxxapi/classServer.html +46 -0
  163. data/doc/cxxapi/classServerInstanceDirToucher-members.html +33 -0
  164. data/doc/cxxapi/classServerInstanceDirToucher.html +43 -0
  165. data/doc/cxxapi/classes.html +1 -1
  166. data/doc/cxxapi/definitions_8h-source.html +1 -1
  167. data/doc/cxxapi/files.html +1 -1
  168. data/doc/cxxapi/functions.html +1 -1
  169. data/doc/cxxapi/{functions_type.html → functions_enum.html} +7 -5
  170. data/doc/cxxapi/functions_eval.html +55 -0
  171. data/doc/cxxapi/functions_func.html +1 -1
  172. data/doc/cxxapi/functions_vars.html +106 -9
  173. data/doc/cxxapi/graph_legend.html +1 -1
  174. data/doc/cxxapi/group__Configuration.html +1 -1
  175. data/doc/cxxapi/group__Core.html +1 -1
  176. data/doc/cxxapi/group__Exceptions.html +17 -1
  177. data/doc/cxxapi/group__Hooks.html +1 -1
  178. data/doc/cxxapi/group__Support.html +1 -1
  179. data/doc/cxxapi/hierarchy.html +34 -12
  180. data/doc/cxxapi/inherit__graph__0.map +1 -1
  181. data/doc/cxxapi/inherit__graph__0.md5 +1 -1
  182. data/doc/cxxapi/inherit__graph__0.png +0 -0
  183. data/doc/cxxapi/inherit__graph__1.map +1 -1
  184. data/doc/cxxapi/inherit__graph__1.md5 +1 -1
  185. data/doc/cxxapi/inherit__graph__1.png +0 -0
  186. data/doc/cxxapi/inherit__graph__10.map +1 -1
  187. data/doc/cxxapi/inherit__graph__10.md5 +1 -1
  188. data/doc/cxxapi/inherit__graph__10.png +0 -0
  189. data/doc/cxxapi/inherit__graph__11.map +1 -1
  190. data/doc/cxxapi/inherit__graph__11.md5 +1 -1
  191. data/doc/cxxapi/inherit__graph__11.png +0 -0
  192. data/doc/cxxapi/inherit__graph__12.map +1 -1
  193. data/doc/cxxapi/inherit__graph__12.md5 +1 -1
  194. data/doc/cxxapi/inherit__graph__12.png +0 -0
  195. data/doc/cxxapi/inherit__graph__13.map +1 -1
  196. data/doc/cxxapi/inherit__graph__13.md5 +1 -1
  197. data/doc/cxxapi/inherit__graph__13.png +0 -0
  198. data/doc/cxxapi/inherit__graph__14.map +3 -2
  199. data/doc/cxxapi/inherit__graph__14.md5 +1 -1
  200. data/doc/cxxapi/inherit__graph__14.png +0 -0
  201. data/doc/cxxapi/inherit__graph__15.map +1 -1
  202. data/doc/cxxapi/inherit__graph__15.md5 +1 -1
  203. data/doc/cxxapi/inherit__graph__15.png +0 -0
  204. data/doc/cxxapi/inherit__graph__16.map +1 -1
  205. data/doc/cxxapi/inherit__graph__16.md5 +1 -1
  206. data/doc/cxxapi/inherit__graph__16.png +0 -0
  207. data/doc/cxxapi/inherit__graph__17.map +1 -1
  208. data/doc/cxxapi/inherit__graph__17.md5 +1 -1
  209. data/doc/cxxapi/inherit__graph__17.png +0 -0
  210. data/doc/cxxapi/inherit__graph__18.map +2 -1
  211. data/doc/cxxapi/inherit__graph__18.md5 +1 -1
  212. data/doc/cxxapi/inherit__graph__18.png +0 -0
  213. data/doc/cxxapi/inherit__graph__19.map +1 -1
  214. data/doc/cxxapi/inherit__graph__19.md5 +1 -1
  215. data/doc/cxxapi/inherit__graph__19.png +0 -0
  216. data/doc/cxxapi/inherit__graph__2.map +1 -1
  217. data/doc/cxxapi/inherit__graph__2.md5 +1 -1
  218. data/doc/cxxapi/inherit__graph__2.png +0 -0
  219. data/doc/cxxapi/inherit__graph__20.map +1 -2
  220. data/doc/cxxapi/inherit__graph__20.md5 +1 -1
  221. data/doc/cxxapi/inherit__graph__20.png +0 -0
  222. data/doc/cxxapi/inherit__graph__21.map +1 -1
  223. data/doc/cxxapi/inherit__graph__21.md5 +1 -1
  224. data/doc/cxxapi/inherit__graph__21.png +0 -0
  225. data/doc/cxxapi/inherit__graph__22.map +1 -0
  226. data/doc/cxxapi/inherit__graph__22.md5 +1 -0
  227. data/doc/cxxapi/inherit__graph__22.png +0 -0
  228. data/doc/cxxapi/inherit__graph__23.map +1 -0
  229. data/doc/cxxapi/inherit__graph__23.md5 +1 -0
  230. data/doc/cxxapi/inherit__graph__23.png +0 -0
  231. data/doc/cxxapi/inherit__graph__24.map +1 -0
  232. data/doc/cxxapi/inherit__graph__24.md5 +1 -0
  233. data/doc/cxxapi/inherit__graph__24.png +0 -0
  234. data/doc/cxxapi/inherit__graph__25.map +1 -0
  235. data/doc/cxxapi/inherit__graph__25.md5 +1 -0
  236. data/doc/cxxapi/inherit__graph__25.png +0 -0
  237. data/doc/cxxapi/inherit__graph__26.map +1 -0
  238. data/doc/cxxapi/inherit__graph__26.md5 +1 -0
  239. data/doc/cxxapi/inherit__graph__26.png +0 -0
  240. data/doc/cxxapi/inherit__graph__27.map +2 -0
  241. data/doc/cxxapi/inherit__graph__27.md5 +1 -0
  242. data/doc/cxxapi/inherit__graph__27.png +0 -0
  243. data/doc/cxxapi/inherit__graph__28.map +1 -0
  244. data/doc/cxxapi/inherit__graph__28.md5 +1 -0
  245. data/doc/cxxapi/inherit__graph__28.png +0 -0
  246. data/doc/cxxapi/inherit__graph__29.map +1 -0
  247. data/doc/cxxapi/inherit__graph__29.md5 +1 -0
  248. data/doc/cxxapi/inherit__graph__29.png +0 -0
  249. data/doc/cxxapi/inherit__graph__3.map +2 -1
  250. data/doc/cxxapi/inherit__graph__3.md5 +1 -1
  251. data/doc/cxxapi/inherit__graph__3.png +0 -0
  252. data/doc/cxxapi/inherit__graph__30.map +1 -0
  253. data/doc/cxxapi/inherit__graph__30.md5 +1 -0
  254. data/doc/cxxapi/inherit__graph__30.png +0 -0
  255. data/doc/cxxapi/inherit__graph__31.map +3 -0
  256. data/doc/cxxapi/inherit__graph__31.md5 +1 -0
  257. data/doc/cxxapi/inherit__graph__31.png +0 -0
  258. data/doc/cxxapi/inherit__graph__32.map +1 -0
  259. data/doc/cxxapi/inherit__graph__32.md5 +1 -0
  260. data/doc/cxxapi/inherit__graph__32.png +0 -0
  261. data/doc/cxxapi/inherit__graph__33.map +1 -0
  262. data/doc/cxxapi/inherit__graph__33.md5 +1 -0
  263. data/doc/cxxapi/inherit__graph__33.png +0 -0
  264. data/doc/cxxapi/inherit__graph__34.map +1 -0
  265. data/doc/cxxapi/inherit__graph__34.md5 +1 -0
  266. data/doc/cxxapi/inherit__graph__34.png +0 -0
  267. data/doc/cxxapi/inherit__graph__35.map +1 -0
  268. data/doc/cxxapi/inherit__graph__35.md5 +1 -0
  269. data/doc/cxxapi/inherit__graph__35.png +0 -0
  270. data/doc/cxxapi/inherit__graph__36.map +1 -0
  271. data/doc/cxxapi/inherit__graph__36.md5 +1 -0
  272. data/doc/cxxapi/inherit__graph__36.png +0 -0
  273. data/doc/cxxapi/inherit__graph__4.map +1 -1
  274. data/doc/cxxapi/inherit__graph__4.md5 +1 -1
  275. data/doc/cxxapi/inherit__graph__4.png +0 -0
  276. data/doc/cxxapi/inherit__graph__5.map +1 -1
  277. data/doc/cxxapi/inherit__graph__5.md5 +1 -1
  278. data/doc/cxxapi/inherit__graph__5.png +0 -0
  279. data/doc/cxxapi/inherit__graph__6.map +1 -2
  280. data/doc/cxxapi/inherit__graph__6.md5 +1 -1
  281. data/doc/cxxapi/inherit__graph__6.png +0 -0
  282. data/doc/cxxapi/inherit__graph__7.map +1 -1
  283. data/doc/cxxapi/inherit__graph__7.md5 +1 -1
  284. data/doc/cxxapi/inherit__graph__7.png +0 -0
  285. data/doc/cxxapi/inherit__graph__8.map +1 -1
  286. data/doc/cxxapi/inherit__graph__8.md5 +1 -1
  287. data/doc/cxxapi/inherit__graph__8.png +0 -0
  288. data/doc/cxxapi/inherit__graph__9.map +1 -1
  289. data/doc/cxxapi/inherit__graph__9.md5 +1 -1
  290. data/doc/cxxapi/inherit__graph__9.png +0 -0
  291. data/doc/cxxapi/inherits.html +81 -41
  292. data/doc/cxxapi/main.html +1 -1
  293. data/doc/cxxapi/md5_8h-source.html +121 -0
  294. data/doc/cxxapi/modules.html +1 -1
  295. data/doc/cxxapi/namespacePassenger.html +651 -0
  296. data/doc/cxxapi/namespacemembers.html +155 -0
  297. data/doc/cxxapi/namespacemembers_enum.html +46 -0
  298. data/doc/cxxapi/namespacemembers_eval.html +52 -0
  299. data/doc/cxxapi/namespacemembers_func.html +139 -0
  300. data/doc/cxxapi/namespacemembers_type.html +50 -0
  301. data/doc/cxxapi/namespaces.html +34 -0
  302. data/doc/cxxapi/nginx_2Configuration_8h-source.html +114 -0
  303. data/doc/cxxapi/ngx__http__passenger__module_8h-source.html +91 -0
  304. data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +2 -1
  305. data/doc/cxxapi/structPassenger_1_1AnythingToString.html +3 -2
  306. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +2 -1
  307. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +3 -2
  308. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +33 -0
  309. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +49 -0
  310. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +19 -7
  311. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +323 -53
  312. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +33 -0
  313. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +49 -0
  314. data/ext/common/MessageChannel.h +48 -4
  315. data/ext/common/Version.h +1 -1
  316. data/ext/nginx/HttpStatusExtractor.h +1 -0
  317. data/ext/nginx/ScgiRequestParser.h +1 -0
  318. data/ext/phusion_passenger/native_support.c +5 -1
  319. data/lib/phusion_passenger/constants.rb +1 -1
  320. data/lib/phusion_passenger/message_channel.rb +45 -3
  321. data/lib/phusion_passenger/rack/application_spawner.rb +4 -0
  322. data/lib/phusion_passenger/railz/application_spawner.rb +19 -1
  323. data/lib/phusion_passenger/utils.rb +3 -3
  324. data/lib/phusion_passenger/utils/rewindable_input.rb +5 -0
  325. data/test/MessageChannelTest.cpp +9 -1
  326. data/test/stub/message_channel.rb +1 -1
  327. data/test/stub/message_channel_2.rb +1 -1
  328. data/test/stub/message_channel_3.rb +2 -2
  329. metadata +173 -113
  330. data/doc/cxxapi/ApplicationPoolServer_8h-source.html +0 -833
  331. data/doc/cxxapi/ApplicationPool_8h-source.html +0 -226
  332. data/doc/cxxapi/Application_8h-source.html +0 -553
  333. data/doc/cxxapi/DummySpawnManager_8h-source.html +0 -130
  334. data/doc/cxxapi/FileChecker_8h-source.html +0 -134
  335. data/doc/cxxapi/StandardApplicationPool_8h-source.html +0 -842
  336. data/doc/cxxapi/classPassenger_1_1Application.html +0 -231
  337. data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +0 -41
  338. data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +0 -323
  339. data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +0 -227
  340. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +0 -1
  341. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +0 -1
  342. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
  343. data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +0 -44
  344. data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +0 -403
  345. data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +0 -53
  346. data/doc/cxxapi/classPassenger_1_1FileChecker.html +0 -124
  347. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +0 -44
  348. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +0 -342
  349. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +0 -1
  350. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +0 -1
  351. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
  352. data/doc/rdoc/classes/ConditionVariable.html +0 -194
  353. data/doc/rdoc/classes/Exception.html +0 -120
  354. data/doc/rdoc/classes/GC.html +0 -113
  355. data/doc/rdoc/classes/IO.html +0 -169
  356. data/doc/rdoc/classes/PhusionPassenger.html +0 -239
  357. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +0 -153
  358. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +0 -517
  359. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -719
  360. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +0 -97
  361. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +0 -96
  362. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +0 -97
  363. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +0 -96
  364. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +0 -598
  365. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +0 -140
  366. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +0 -317
  367. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html +0 -138
  368. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +0 -154
  369. data/doc/rdoc/classes/PhusionPassenger/Application.html +0 -283
  370. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +0 -172
  371. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +0 -145
  372. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +0 -175
  373. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +0 -141
  374. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +0 -92
  375. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +0 -489
  376. data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +0 -350
  377. data/doc/rdoc/classes/PhusionPassenger/Rack.html +0 -91
  378. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +0 -188
  379. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -199
  380. data/doc/rdoc/classes/PhusionPassenger/Railz.html +0 -95
  381. data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +0 -438
  382. data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html +0 -98
  383. data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +0 -200
  384. data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +0 -436
  385. data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html +0 -98
  386. data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +0 -155
  387. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +0 -402
  388. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +0 -125
  389. data/doc/rdoc/classes/PhusionPassenger/Utils.html +0 -805
  390. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +0 -169
  391. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +0 -247
  392. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +0 -120
  393. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +0 -140
  394. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +0 -89
  395. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +0 -188
  396. data/doc/rdoc/classes/PlatformInfo.html +0 -866
  397. data/doc/rdoc/classes/RakeExtensions.html +0 -197
  398. data/doc/rdoc/classes/Signal.html +0 -139
  399. data/doc/rdoc/created.rid +0 -1
  400. data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -255
  401. data/doc/rdoc/files/README.html +0 -157
  402. data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +0 -92
  403. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +0 -129
  404. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +0 -129
  405. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +0 -126
  406. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +0 -128
  407. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +0 -130
  408. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +0 -122
  409. data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +0 -127
  410. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +0 -126
  411. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +0 -122
  412. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +0 -134
  413. data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +0 -122
  414. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +0 -122
  415. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +0 -126
  416. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +0 -120
  417. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +0 -122
  418. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +0 -127
  419. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +0 -133
  420. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +0 -125
  421. data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +0 -140
  422. data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +0 -126
  423. data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +0 -145
  424. data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +0 -125
  425. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +0 -122
  426. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +0 -159
  427. data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +0 -100
  428. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -174
  429. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +0 -129
  430. data/doc/rdoc/files/misc/rake/extensions_rb.html +0 -130
  431. data/doc/rdoc/fr_class_index.html +0 -93
  432. data/doc/rdoc/fr_file_index.html +0 -77
  433. data/doc/rdoc/fr_method_index.html +0 -212
  434. data/doc/rdoc/index.html +0 -26
  435. data/doc/rdoc/rdoc-style.css +0 -187
@@ -0,0 +1 @@
1
+ <area shape="rect" href="$classPassenger_1_1StandardSession.html" title="A &quot;standard&quot; implementation of Session." alt="" coords="5,80,203,107">
@@ -0,0 +1 @@
1
+ f31235f65ac59d3f1a094ede9749d187
@@ -10,6 +10,7 @@
10
10
  <ul>
11
11
  <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
12
  <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
14
  <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
14
15
  <li><a href="files.html"><span>Files</span></a></li>
15
16
  </ul>
@@ -27,7 +28,7 @@
27
28
  <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnException.html#6f675a37edd7070875d0744e7dd010a1">getErrorPage</a>() const </td><td><a class="el" href="classPassenger_1_1SpawnException.html">Passenger::SpawnException</a></td><td><code> [inline]</code></td></tr>
28
29
  <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnException.html#e65dc272e183fd9e5637a4091cc6bbf4">hasErrorPage</a>() const </td><td><a class="el" href="classPassenger_1_1SpawnException.html">Passenger::SpawnException</a></td><td><code> [inline]</code></td></tr>
29
30
  </table></div>
30
- <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by&nbsp;
31
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:48 2010 for Passenger by&nbsp;
31
32
  <a href="http://www.doxygen.org/index.html">
32
33
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
33
34
  </body>
@@ -10,6 +10,7 @@
10
10
  <ul>
11
11
  <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
12
  <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
14
  <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
14
15
  <li><a href="files.html"><span>Files</span></a></li>
15
16
  </ul>
@@ -21,11 +22,11 @@
21
22
  <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
22
23
  </ul>
23
24
  </div>
24
- <div class="navpath"><b>Passenger</b>::<a class="el" href="classPassenger_1_1SpawnException.html">SpawnException</a>
25
+ <div class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1SpawnException.html">SpawnException</a>
25
26
  </div>
26
27
  </div>
27
28
  <div class="contents">
28
- <h1>Passenger::SpawnException Class Reference</h1><!-- doxytag: class="Passenger::SpawnException" -->Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> or <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> fails to spawn an application instance.
29
+ <h1>Passenger::SpawnException Class Reference</h1><!-- doxytag: class="Passenger::SpawnException" -->Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> or ApplicationPool fails to spawn an application instance.
29
30
  <a href="#_details">More...</a>
30
31
  <p>
31
32
  <code>#include &lt;<a class="el" href="Exceptions_8h-source.html">Exceptions.h</a>&gt;</code>
@@ -44,7 +45,7 @@ bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
44
45
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the error page content. <a href="#6f675a37edd7070875d0744e7dd010a1"></a><br></td></tr>
45
46
  </table>
46
47
  <hr><a name="_details"></a><h2>Detailed Description</h2>
47
- Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> or <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> fails to spawn an application instance.
48
+ Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> or ApplicationPool fails to spawn an application instance.
48
49
  <p>
49
50
  The exception may contain an error page, which is a user-friendly HTML page with details about the error. <hr><h2>Member Function Documentation</h2>
50
51
  <a class="anchor" name="6f675a37edd7070875d0744e7dd010a1"></a><!-- doxytag: member="Passenger::SpawnException::getErrorPage" ref="6f675a37edd7070875d0744e7dd010a1" args="() const " -->
@@ -72,7 +73,7 @@ Return the error page content.
72
73
  <hr>The documentation for this class was generated from the following file:<ul>
73
74
  <li><a class="el" href="Exceptions_8h-source.html">Exceptions.h</a></ul>
74
75
  </div>
75
- <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by&nbsp;
76
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:48 2010 for Passenger by&nbsp;
76
77
  <a href="http://www.doxygen.org/index.html">
77
78
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
78
79
  </body>
@@ -10,6 +10,7 @@
10
10
  <ul>
11
11
  <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
12
  <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
14
  <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
14
15
  <li><a href="files.html"><span>Files</span></a></li>
15
16
  </ul>
@@ -24,12 +25,14 @@
24
25
  </div>
25
26
  <div class="contents">
26
27
  <h1>Passenger::SpawnManager Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a>, including all inherited members.<p><table>
27
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#1f77e2e7e6cb464028c13a29f983ad8e">getServerPid</a>() const </td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
28
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#2e85c43042b9556ca2fd74b8d28956ce">reload</a>(const string &amp;appRoot)</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
29
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64">spawn</a>(const PoolOptions &amp;PoolOptions)</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
30
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#fdefbbbad39833912ae7f9f106083099">SpawnManager</a>(const string &amp;spawnServerCommand, const string &amp;logFile=&quot;&quot;, const string &amp;rubyCommand=&quot;ruby&quot;, const string &amp;user=&quot;&quot;)</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
28
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#f34df8cfccfc64507999f1b48bc5a126">getServerPid</a>() const </td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline, virtual]</code></td></tr>
29
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#9210212c23c5a8ee5ee4dd5c9dcdf57d">killSpawnServer</a>() const </td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline, virtual]</code></td></tr>
30
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#ad71b2ea9431f3286f23a6e6f80e0981">reload</a>(const string &amp;appRoot)</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline, virtual]</code></td></tr>
31
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#88a94ba4d41dab492cb1dc8a0f998973">spawn</a>(const PoolOptions &amp;options)</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline, virtual]</code></td></tr>
32
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#5805c2919457e5bcb0eaf4f7107ba555">SpawnManager</a>(const string &amp;spawnServerCommand, const ServerInstanceDir::GenerationPtr &amp;generation, const AccountsDatabasePtr &amp;accountsDatabase=AccountsDatabasePtr(), const string &amp;rubyCommand=&quot;ruby&quot;, const string &amp;loggingAgentAddress=&quot;&quot;, const string &amp;loggingAgentUsername=&quot;&quot;, const string &amp;loggingAgentPassword=&quot;&quot;)</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
33
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#b4dfcb11c58b07d8144b18dd99abed45">spawnServerStarted</a>()</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline, protected, virtual]</code></td></tr>
31
34
  </table></div>
32
- <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by&nbsp;
35
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:48 2010 for Passenger by&nbsp;
33
36
  <a href="http://www.doxygen.org/index.html">
34
37
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
35
38
  </body>
@@ -10,6 +10,7 @@
10
10
  <ul>
11
11
  <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
12
  <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
14
  <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
14
15
  <li><a href="files.html"><span>Files</span></a></li>
15
16
  </ul>
@@ -21,49 +22,59 @@
21
22
  <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
22
23
  </ul>
23
24
  </div>
24
- <div class="navpath"><b>Passenger</b>::<a class="el" href="classPassenger_1_1SpawnManager.html">SpawnManager</a>
25
+ <div class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1SpawnManager.html">SpawnManager</a>
25
26
  </div>
26
27
  </div>
27
28
  <div class="contents">
28
29
  <h1>Passenger::SpawnManager Class Reference<br>
29
30
  <small>
30
31
  [<a class="el" href="group__Support.html">Apache-independent support classes and function</a>]</small>
31
- </h1><!-- doxytag: class="Passenger::SpawnManager" -->Spawning of Ruby on Rails/Rack application instances.
32
+ </h1><!-- doxytag: class="Passenger::SpawnManager" --><!-- doxytag: inherits="Passenger::AbstractSpawnManager" -->An <a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> implementation.
32
33
  <a href="#_details">More...</a>
33
34
  <p>
34
35
  <code>#include &lt;<a class="el" href="SpawnManager_8h-source.html">SpawnManager.h</a>&gt;</code>
35
36
  <p>
37
+ <div class="dynheader">
38
+ Inheritance diagram for Passenger::SpawnManager:</div>
39
+ <div class="dynsection">
40
+ <p><center><img src="classPassenger_1_1SpawnManager__inherit__graph.png" border="0" usemap="#Passenger_1_1SpawnManager__inherit__map" alt="Inheritance graph"></center>
41
+ <map name="Passenger_1_1SpawnManager__inherit__map">
42
+ <area shape="rect" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes." alt="" coords="6,5,246,32"></map>
43
+ <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
36
44
 
37
45
  <p>
38
46
  <a href="classPassenger_1_1SpawnManager-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
39
47
  <tr><td></td></tr>
40
48
  <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
41
- <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#fdefbbbad39833912ae7f9f106083099">SpawnManager</a> (const string &amp;spawnServerCommand, const string &amp;logFile=&quot;&quot;, const string &amp;rubyCommand=&quot;ruby&quot;, const string &amp;user=&quot;&quot;)</td></tr>
49
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#5805c2919457e5bcb0eaf4f7107ba555">SpawnManager</a> (const string &amp;spawnServerCommand, const ServerInstanceDir::GenerationPtr &amp;generation, const AccountsDatabasePtr &amp;accountsDatabase=AccountsDatabasePtr(), const string &amp;rubyCommand=&quot;ruby&quot;, const string &amp;loggingAgentAddress=&quot;&quot;, const string &amp;loggingAgentUsername=&quot;&quot;, const string &amp;loggingAgentPassword=&quot;&quot;)</td></tr>
42
50
 
43
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a new <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a>. <a href="#fdefbbbad39833912ae7f9f106083099"></a><br></td></tr>
44
- <tr><td class="memItemLeft" nowrap align="right" valign="top">ApplicationPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64">spawn</a> (const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> &amp;<a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a>)</td></tr>
51
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a new <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a>. <a href="#5805c2919457e5bcb0eaf4f7107ba555"></a><br></td></tr>
52
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="namespacePassenger.html#ced1f248465136b313c6dec5fe6ca492">ProcessPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#88a94ba4d41dab492cb1dc8a0f998973">spawn</a> (const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> &amp;options)</td></tr>
45
53
 
46
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Spawn a new instance of an application. <a href="#af035d564cc4e6683508939c9d6dbb64"></a><br></td></tr>
47
- <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#2e85c43042b9556ca2fd74b8d28956ce">reload</a> (const string &amp;appRoot)</td></tr>
54
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Spawn a new application process. <a href="#88a94ba4d41dab492cb1dc8a0f998973"></a><br></td></tr>
55
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#ad71b2ea9431f3286f23a6e6f80e0981">reload</a> (const string &amp;appRoot)</td></tr>
48
56
 
49
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove the cached application instances at the given application root. <a href="#2e85c43042b9556ca2fd74b8d28956ce"></a><br></td></tr>
50
- <tr><td class="memItemLeft" nowrap align="right" valign="top">pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#1f77e2e7e6cb464028c13a29f983ad8e">getServerPid</a> () const </td></tr>
57
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shutdown the ApplicationSpawner server that's running at the given application root. <a href="#ad71b2ea9431f3286f23a6e6f80e0981"></a><br></td></tr>
58
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#9210212c23c5a8ee5ee4dd5c9dcdf57d">killSpawnServer</a> () const </td></tr>
51
59
 
52
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the Process ID of the spawn server. <a href="#1f77e2e7e6cb464028c13a29f983ad8e"></a><br></td></tr>
60
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Forcefully kill the spawn server. <a href="#9210212c23c5a8ee5ee4dd5c9dcdf57d"></a><br></td></tr>
61
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#f34df8cfccfc64507999f1b48bc5a126">getServerPid</a> () const </td></tr>
62
+
63
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the spawn server's PID. <a href="#f34df8cfccfc64507999f1b48bc5a126"></a><br></td></tr>
64
+ <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
65
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#b4dfcb11c58b07d8144b18dd99abed45">spawnServerStarted</a> ()</td></tr>
66
+
67
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A method which is called after the spawn server has started. <a href="#b4dfcb11c58b07d8144b18dd99abed45"></a><br></td></tr>
53
68
  </table>
54
69
  <hr><a name="_details"></a><h2>Detailed Description</h2>
55
- Spawning of Ruby on Rails/Rack application instances.
70
+ An <a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> implementation.
56
71
  <p>
57
- This class is responsible for spawning new instances of Ruby on Rails or Rack applications. Use the <a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64" title="Spawn a new instance of an application.">spawn()</a> method to do so.<p>
58
- <dl class="note" compact><dt><b>Note:</b></dt><dd>This class is fully thread-safe.</dd></dl>
59
- <h2>Implementation details</h2>
60
- <p>
61
- Internally, this class makes use of a spawn server, which is written in Ruby. This server is automatically started when a <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> instance is created, and automatically shutdown when that instance is destroyed. The existance of the spawn server is almost totally transparent to users of this class. Spawn requests are sent to the server, and details about the spawned process is returned.<p>
62
- If the spawn server dies during the middle of an operation, it will be restarted. See <a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64" title="Spawn a new instance of an application.">spawn()</a> for full details.<p>
72
+ Internally, this class makes use of a spawn server, which is written in Ruby. This server is automatically started when a <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> instance is created, and automatically shutdown when that instance is destroyed. The existance of the spawn server is almost totally transparent to users of this class. Spawn requests are sent to the server, and details about the spawned process is returned.<p>
73
+ If the spawn server dies during the middle of an operation, it will be restarted. See <a class="el" href="classPassenger_1_1SpawnManager.html#88a94ba4d41dab492cb1dc8a0f998973" title="Spawn a new application process.">spawn()</a> for full details.<p>
63
74
  The communication channel with the server is anonymous, i.e. no other processes can access the communication channel, so communication is guaranteed to be safe (unless, of course, if the spawn server itself is a trojan).<p>
64
- The server will try to keep the spawning time as small as possible, by keeping corresponding Ruby on Rails frameworks and application code in memory. So the second time an instance of the same application is spawned, the spawn time is significantly lower than the first time. Nevertheless, spawning is a relatively expensive operation (compared to the processing of a typical HTTP request/response), and so should be avoided whenever possible.<p>
75
+ The server will try to keep the spawning time as small as possible, by keeping corresponding Ruby on Rails frameworks and application code in memory. So the second time a process of the same application is spawned, the spawn time is significantly lower than the first time. Nevertheless, spawning is a relatively expensive operation (compared to the processing of a typical HTTP request/response), and so should be avoided whenever possible.<p>
65
76
  See the documentation of the spawn server for full implementation details. <hr><h2>Constructor &amp; Destructor Documentation</h2>
66
- <a class="anchor" name="fdefbbbad39833912ae7f9f106083099"></a><!-- doxytag: member="Passenger::SpawnManager::SpawnManager" ref="fdefbbbad39833912ae7f9f106083099" args="(const string &amp;spawnServerCommand, const string &amp;logFile=&quot;&quot;, const string &amp;rubyCommand=&quot;ruby&quot;, const string &amp;user=&quot;&quot;)" -->
77
+ <a class="anchor" name="5805c2919457e5bcb0eaf4f7107ba555"></a><!-- doxytag: member="Passenger::SpawnManager::SpawnManager" ref="5805c2919457e5bcb0eaf4f7107ba555" args="(const string &amp;spawnServerCommand, const ServerInstanceDir::GenerationPtr &amp;generation, const AccountsDatabasePtr &amp;accountsDatabase=AccountsDatabasePtr(), const string &amp;rubyCommand=&quot;ruby&quot;, const string &amp;loggingAgentAddress=&quot;&quot;, const string &amp;loggingAgentUsername=&quot;&quot;, const string &amp;loggingAgentPassword=&quot;&quot;)" -->
67
78
  <div class="memitem">
68
79
  <div class="memproto">
69
80
  <table class="memname">
@@ -76,8 +87,14 @@ See the documentation of the spawn server for full implementation details. <hr><
76
87
  <tr>
77
88
  <td class="paramkey"></td>
78
89
  <td></td>
79
- <td class="paramtype">const string &amp;&nbsp;</td>
80
- <td class="paramname"> <em>logFile</em> = <code>&quot;&quot;</code>, </td>
90
+ <td class="paramtype">const ServerInstanceDir::GenerationPtr &amp;&nbsp;</td>
91
+ <td class="paramname"> <em>generation</em>, </td>
92
+ </tr>
93
+ <tr>
94
+ <td class="paramkey"></td>
95
+ <td></td>
96
+ <td class="paramtype">const AccountsDatabasePtr &amp;&nbsp;</td>
97
+ <td class="paramname"> <em>accountsDatabase</em> = <code>AccountsDatabasePtr()</code>, </td>
81
98
  </tr>
82
99
  <tr>
83
100
  <td class="paramkey"></td>
@@ -89,7 +106,19 @@ See the documentation of the spawn server for full implementation details. <hr><
89
106
  <td class="paramkey"></td>
90
107
  <td></td>
91
108
  <td class="paramtype">const string &amp;&nbsp;</td>
92
- <td class="paramname"> <em>user</em> = <code>&quot;&quot;</code></td><td>&nbsp;</td>
109
+ <td class="paramname"> <em>loggingAgentAddress</em> = <code>&quot;&quot;</code>, </td>
110
+ </tr>
111
+ <tr>
112
+ <td class="paramkey"></td>
113
+ <td></td>
114
+ <td class="paramtype">const string &amp;&nbsp;</td>
115
+ <td class="paramname"> <em>loggingAgentUsername</em> = <code>&quot;&quot;</code>, </td>
116
+ </tr>
117
+ <tr>
118
+ <td class="paramkey"></td>
119
+ <td></td>
120
+ <td class="paramtype">const string &amp;&nbsp;</td>
121
+ <td class="paramname"> <em>loggingAgentPassword</em> = <code>&quot;&quot;</code></td><td>&nbsp;</td>
93
122
  </tr>
94
123
  <tr>
95
124
  <td></td>
@@ -101,67 +130,94 @@ See the documentation of the spawn server for full implementation details. <hr><
101
130
  <div class="memdoc">
102
131
 
103
132
  <p>
104
- Construct a new <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a>.
133
+ Construct a new <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a>.
105
134
  <p>
106
135
  <dl compact><dt><b>Parameters:</b></dt><dd>
107
136
  <table border="0" cellspacing="2" cellpadding="0">
108
137
  <tr><td valign="top"></td><td valign="top"><em>spawnServerCommand</em>&nbsp;</td><td>The filename of the spawn server to use. </td></tr>
109
- <tr><td valign="top"></td><td valign="top"><em>logFile</em>&nbsp;</td><td>Specify a log file that the spawn server should use. Messages on its standard output and standard error channels will be written to this log file. If an empty string is specified, no log file will be used, and the spawn server will use the same standard output/error channels as the current process. </td></tr>
138
+ <tr><td valign="top"></td><td valign="top"><em>generation</em>&nbsp;</td><td>The server instance dir generation in which generation-specific are stored. </td></tr>
139
+ <tr><td valign="top"></td><td valign="top"><em>accountsDatabase</em>&nbsp;</td><td>An accounts database. <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> will automatically create a new account for each spawned process, assigning it the rights as set in the <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object. This account is also automatically deleted when no longer needed. May be a null pointer. </td></tr>
110
140
  <tr><td valign="top"></td><td valign="top"><em>rubyCommand</em>&nbsp;</td><td>The Ruby interpreter's command. </td></tr>
111
- <tr><td valign="top"></td><td valign="top"><em>user</em>&nbsp;</td><td>The user that the spawn manager should run as. This parameter only has effect if the current process is running as root. If the empty string is given, or if the <code>user</code> is not a valid username, then the spawn manager will be run as the current user. </td></tr>
112
141
  </table>
113
142
  </dl>
114
143
  <dl compact><dt><b>Exceptions:</b></dt><dd>
115
144
  <table border="0" cellspacing="2" cellpadding="0">
145
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1RuntimeException.html" title="A generic runtime exception.">RuntimeException</a></em>&nbsp;</td><td>An error occurred while creating a Unix server socket. </td></tr>
116
146
  <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em>&nbsp;</td><td>An error occured while trying to setup the spawn server. </td></tr>
117
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em>&nbsp;</td><td>The specified log file could not be opened. </td></tr>
147
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a></em>&nbsp;</td><td>An error occurred while generating random data. </td></tr>
118
148
  </table>
119
149
  </dl>
120
150
 
121
151
  </div>
122
152
  </div><p>
123
153
  <hr><h2>Member Function Documentation</h2>
124
- <a class="anchor" name="1f77e2e7e6cb464028c13a29f983ad8e"></a><!-- doxytag: member="Passenger::SpawnManager::getServerPid" ref="1f77e2e7e6cb464028c13a29f983ad8e" args="() const " -->
154
+ <a class="anchor" name="f34df8cfccfc64507999f1b48bc5a126"></a><!-- doxytag: member="Passenger::SpawnManager::getServerPid" ref="f34df8cfccfc64507999f1b48bc5a126" args="() const " -->
155
+ <div class="memitem">
156
+ <div class="memproto">
157
+ <table class="memname">
158
+ <tr>
159
+ <td class="memname">virtual pid_t Passenger::SpawnManager::getServerPid </td>
160
+ <td>(</td>
161
+ <td class="paramname"> </td>
162
+ <td>&nbsp;)&nbsp;</td>
163
+ <td> const<code> [inline, virtual]</code></td>
164
+ </tr>
165
+ </table>
166
+ </div>
167
+ <div class="memdoc">
168
+
169
+ <p>
170
+ Returns the spawn server's PID.
171
+ <p>
172
+ Used within unit tests.
173
+ <p>Implements <a class="el" href="classPassenger_1_1AbstractSpawnManager.html#a630e8c364f391b54c0bfb723326836a">Passenger::AbstractSpawnManager</a>.</p>
174
+
175
+ </div>
176
+ </div><p>
177
+ <a class="anchor" name="9210212c23c5a8ee5ee4dd5c9dcdf57d"></a><!-- doxytag: member="Passenger::SpawnManager::killSpawnServer" ref="9210212c23c5a8ee5ee4dd5c9dcdf57d" args="() const " -->
125
178
  <div class="memitem">
126
179
  <div class="memproto">
127
180
  <table class="memname">
128
181
  <tr>
129
- <td class="memname">pid_t Passenger::SpawnManager::getServerPid </td>
182
+ <td class="memname">virtual void Passenger::SpawnManager::killSpawnServer </td>
130
183
  <td>(</td>
131
184
  <td class="paramname"> </td>
132
185
  <td>&nbsp;)&nbsp;</td>
133
- <td> const<code> [inline]</code></td>
186
+ <td> const<code> [inline, virtual]</code></td>
134
187
  </tr>
135
188
  </table>
136
189
  </div>
137
190
  <div class="memdoc">
138
191
 
139
192
  <p>
140
- Get the Process ID of the spawn server.
193
+ Forcefully kill the spawn server.
141
194
  <p>
142
- This method is used in the unit tests and should not be used directly.
195
+ This AbstractSpawnManager's state will not be modified, so that it won't know that the spawn server is killed until next time it sends a command to it.<p>
196
+ Used within unit tests.
197
+ <p>Implements <a class="el" href="classPassenger_1_1AbstractSpawnManager.html#225574ef363847058554fde9d5704950">Passenger::AbstractSpawnManager</a>.</p>
198
+
143
199
  </div>
144
200
  </div><p>
145
- <a class="anchor" name="2e85c43042b9556ca2fd74b8d28956ce"></a><!-- doxytag: member="Passenger::SpawnManager::reload" ref="2e85c43042b9556ca2fd74b8d28956ce" args="(const string &amp;appRoot)" -->
201
+ <a class="anchor" name="ad71b2ea9431f3286f23a6e6f80e0981"></a><!-- doxytag: member="Passenger::SpawnManager::reload" ref="ad71b2ea9431f3286f23a6e6f80e0981" args="(const string &amp;appRoot)" -->
146
202
  <div class="memitem">
147
203
  <div class="memproto">
148
204
  <table class="memname">
149
205
  <tr>
150
- <td class="memname">void Passenger::SpawnManager::reload </td>
206
+ <td class="memname">virtual void Passenger::SpawnManager::reload </td>
151
207
  <td>(</td>
152
208
  <td class="paramtype">const string &amp;&nbsp;</td>
153
209
  <td class="paramname"> <em>appRoot</em> </td>
154
210
  <td>&nbsp;)&nbsp;</td>
155
- <td><code> [inline]</code></td>
211
+ <td><code> [inline, virtual]</code></td>
156
212
  </tr>
157
213
  </table>
158
214
  </div>
159
215
  <div class="memdoc">
160
216
 
161
217
  <p>
162
- Remove the cached application instances at the given application root.
218
+ Shutdown the ApplicationSpawner server that's running at the given application root.
163
219
  <p>
164
- <a class="el" href="classPassenger_1_1Application.html" title="Represents a single Ruby on Rails or Rack application instance.">Application</a> code might be cached in memory. But once it a while, it will be necessary to reload the code for an application, such as after deploying a new version of the application. This method makes sure that any cached application code is removed, so that the next time an application instance is spawned, the application code will be freshly loaded into memory.<p>
220
+ This method should be called when it's time to reload an application.<p>
165
221
  <dl compact><dt><b>Exceptions:</b></dt><dd>
166
222
  <table border="0" cellspacing="2" cellpadding="0">
167
223
  <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a></em>&nbsp;</td><td>Unable to communicate with the spawn server, even after a restart. </td></tr>
@@ -169,48 +225,74 @@ Remove the cached application instances at the given application root.
169
225
  </table>
170
226
  </dl>
171
227
 
228
+ <p>Implements <a class="el" href="classPassenger_1_1AbstractSpawnManager.html#5043681dbfb9b77fa0679c510ede853c">Passenger::AbstractSpawnManager</a>.</p>
229
+
172
230
  </div>
173
231
  </div><p>
174
- <a class="anchor" name="af035d564cc4e6683508939c9d6dbb64"></a><!-- doxytag: member="Passenger::SpawnManager::spawn" ref="af035d564cc4e6683508939c9d6dbb64" args="(const PoolOptions &amp;PoolOptions)" -->
232
+ <a class="anchor" name="88a94ba4d41dab492cb1dc8a0f998973"></a><!-- doxytag: member="Passenger::SpawnManager::spawn" ref="88a94ba4d41dab492cb1dc8a0f998973" args="(const PoolOptions &amp;options)" -->
175
233
  <div class="memitem">
176
234
  <div class="memproto">
177
235
  <table class="memname">
178
236
  <tr>
179
- <td class="memname">ApplicationPtr Passenger::SpawnManager::spawn </td>
237
+ <td class="memname">virtual <a class="el" href="namespacePassenger.html#ced1f248465136b313c6dec5fe6ca492">ProcessPtr</a> Passenger::SpawnManager::spawn </td>
180
238
  <td>(</td>
181
239
  <td class="paramtype">const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> &amp;&nbsp;</td>
182
- <td class="paramname"> <em>PoolOptions</em> </td>
240
+ <td class="paramname"> <em>options</em> </td>
183
241
  <td>&nbsp;)&nbsp;</td>
184
- <td><code> [inline]</code></td>
242
+ <td><code> [inline, virtual]</code></td>
185
243
  </tr>
186
244
  </table>
187
245
  </div>
188
246
  <div class="memdoc">
189
247
 
190
248
  <p>
191
- Spawn a new instance of an application.
249
+ Spawn a new application process.
192
250
  <p>
193
- Spawning details are to be passed via the <code><a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a></code> parameter.<p>
251
+ Spawning details are to be passed via the <code>options</code> argument.<p>
194
252
  If the spawn server died during the spawning process, then the server will be automatically restarted, and another spawn attempt will be made. If restarting the server fails, or if the second spawn attempt fails, then an exception will be thrown.<p>
195
253
  <dl compact><dt><b>Parameters:</b></dt><dd>
196
254
  <table border="0" cellspacing="2" cellpadding="0">
197
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a></em>&nbsp;</td><td>An object containing the details for this spawn operation, such as which application to spawn. See <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> for details. </td></tr>
255
+ <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>An object containing the details for this spawn operation, such as which application to spawn. See <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> for details. </td></tr>
198
256
  </table>
199
257
  </dl>
200
- <dl class="return" compact><dt><b>Returns:</b></dt><dd>A smart pointer to an <a class="el" href="classPassenger_1_1Application.html" title="Represents a single Ruby on Rails or Rack application instance.">Application</a> object, which represents the application instance that has been spawned. Use this object to communicate with the spawned application. </dd></dl>
258
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>A smart pointer to a <a class="el" href="classPassenger_1_1Process.html" title="Represents a single application process, as spawned by SpawnManager or by ApplicationPool::Interface...">Process</a> object, which represents the application process that has been spawned. Use this object to communicate with the spawned process. </dd></dl>
201
259
  <dl compact><dt><b>Exceptions:</b></dt><dd>
202
260
  <table border="0" cellspacing="2" cellpadding="0">
203
261
  <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a></em>&nbsp;</td><td>Something went wrong. </td></tr>
204
262
  <tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em>&nbsp;</td><td></td></tr>
263
+ <tr><td valign="top"></td><td valign="top"><em>Anything</em>&nbsp;</td><td>thrown by options.environmentVariables-&gt;getItems(). </td></tr>
205
264
  </table>
206
265
  </dl>
207
266
 
267
+ <p>Implements <a class="el" href="classPassenger_1_1AbstractSpawnManager.html#6ca7efc68595bf962f5cce5e6407f176">Passenger::AbstractSpawnManager</a>.</p>
268
+
269
+ </div>
270
+ </div><p>
271
+ <a class="anchor" name="b4dfcb11c58b07d8144b18dd99abed45"></a><!-- doxytag: member="Passenger::SpawnManager::spawnServerStarted" ref="b4dfcb11c58b07d8144b18dd99abed45" args="()" -->
272
+ <div class="memitem">
273
+ <div class="memproto">
274
+ <table class="memname">
275
+ <tr>
276
+ <td class="memname">virtual void Passenger::SpawnManager::spawnServerStarted </td>
277
+ <td>(</td>
278
+ <td class="paramname"> </td>
279
+ <td>&nbsp;)&nbsp;</td>
280
+ <td><code> [inline, protected, virtual]</code></td>
281
+ </tr>
282
+ </table>
283
+ </div>
284
+ <div class="memdoc">
285
+
286
+ <p>
287
+ A method which is called after the spawn server has started.
288
+ <p>
289
+ It doesn't do anything by default and serves as a hook for unit tests.
208
290
  </div>
209
291
  </div><p>
210
292
  <hr>The documentation for this class was generated from the following file:<ul>
211
293
  <li><a class="el" href="SpawnManager_8h-source.html">SpawnManager.h</a></ul>
212
294
  </div>
213
- <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by&nbsp;
295
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:48 2010 for Passenger by&nbsp;
214
296
  <a href="http://www.doxygen.org/index.html">
215
297
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
216
298
  </body>
@@ -0,0 +1 @@
1
+ <area shape="rect" href="$classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes." alt="" coords="6,5,246,32">
@@ -0,0 +1 @@
1
+ 9998e622834d84aef6d85c4672a6723e
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Passenger: Member List</title>
4
+ <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="modules.html"><span>Modules</span></a></li>
13
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
15
+ <li><a href="files.html"><span>Files</span></a></li>
16
+ </ul>
17
+ </div>
18
+ <div class="tabs">
19
+ <ul>
20
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
21
+ <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
22
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
23
+ </ul>
24
+ </div>
25
+ </div>
26
+ <div class="contents">
27
+ <h1>Passenger::StandardSession Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a>, including all inherited members.<p><table>
28
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#f5cdfa78db1fca6303ccd43ac5126b6b">closeStream</a>()</td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
29
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#3666d401df82696fe945fcbb66804785">discardStream</a>()</td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
30
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#51d4e04acc68526a450b1fce2142dea9">fd</a></td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [protected]</code></td></tr>
31
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#eaf4f7097f7b3430dc88e8070cad5899">getConnectPassword</a>() const </td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline]</code></td></tr>
32
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#496bbb49ac5f8d86ac6c37e979e7e3e8">getPid</a>() const </td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
33
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#720e98b8dd246eeca004c8e625c0d4d3">getSocketName</a>() const </td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
34
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#3a59997280d5f7fcaa901716cd8451a2">getSocketType</a>() const </td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
35
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#a3491d2151ba3b94c1b19a4f18bade6a">getStream</a>() const </td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
36
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#c283db6faf2fcd1827baf3ebac276677">initiate</a>()</td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
37
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#40cdaad38dfbb7995955f11bb27bba61">initiated</a>() const </td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
38
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#2203d81e25fe5066aed351608deecf7b">sendBodyBlock</a>(const char *block, unsigned int size)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
39
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#8f8a39f78dd2672b00f1ff01e4d6d671">sendHeaders</a>(const char *headers, unsigned int size)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
40
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#8253d81e64adc0dc72b1dc65a5117aba">sendHeaders</a>(const StaticString &amp;headers)</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
41
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#960346d8c27ff1ae9017d753e41a159a">setReaderTimeout</a>(unsigned int msec)</td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
42
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#bb51c323ac0e24011191862f6dec7a75">setWriterTimeout</a>(unsigned int msec)</td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
43
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#c92d4d081d6145ba8d441c8cf88fae74">shutdownReader</a>()</td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
44
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardSession.html#045a8f7f849c34086b0832fdba7a2915">shutdownWriter</a>()</td><td><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td><code> [inline, virtual]</code></td></tr>
45
+ <tr class="memlist"><td><a class="el" href="classPassenger_1_1Session.html#c982015e84f64dbec70daef8fdbd31d9">~Session</a>()</td><td><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td><code> [inline, virtual]</code></td></tr>
46
+ </table></div>
47
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:48 2010 for Passenger by&nbsp;
48
+ <a href="http://www.doxygen.org/index.html">
49
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
50
+ </body>
51
+ </html>