passenger 2.0.1 → 2.0.2

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 (243) hide show
  1. data/Rakefile +2 -1
  2. data/doc/Security of user switching support.html +1 -1
  3. data/doc/Users guide.html +1 -1
  4. data/ext/apache2/ApplicationPoolServerExecutable.cpp +4 -2
  5. data/ext/apache2/Bucket.cpp +104 -0
  6. data/ext/apache2/Bucket.h +36 -0
  7. data/ext/apache2/Configuration.h +1 -1
  8. data/ext/apache2/Hooks.cpp +2 -5
  9. data/ext/apache2/Utils.h +1 -1
  10. data/ext/boost/non_type.hpp +27 -0
  11. metadata +7 -247
  12. data/doc/Architectural overview.html +0 -740
  13. data/doc/cxxapi/ApplicationPoolServer_8h-source.html +0 -677
  14. data/doc/cxxapi/ApplicationPool_8h-source.html +0 -212
  15. data/doc/cxxapi/Application_8h-source.html +0 -448
  16. data/doc/cxxapi/Configuration_8h-source.html +0 -180
  17. data/doc/cxxapi/DummySpawnManager_8h-source.html +0 -126
  18. data/doc/cxxapi/Exceptions_8h-source.html +0 -244
  19. data/doc/cxxapi/Hooks_8h-source.html +0 -63
  20. data/doc/cxxapi/Logging_8h-source.html +0 -136
  21. data/doc/cxxapi/MessageChannel_8h-source.html +0 -524
  22. data/doc/cxxapi/SpawnManager_8h-source.html +0 -593
  23. data/doc/cxxapi/StandardApplicationPool_8h-source.html +0 -713
  24. data/doc/cxxapi/System_8h-source.html +0 -251
  25. data/doc/cxxapi/Utils_8h-source.html +0 -283
  26. data/doc/cxxapi/annotated.html +0 -59
  27. data/doc/cxxapi/classClient-members.html +0 -35
  28. data/doc/cxxapi/classClient.html +0 -117
  29. data/doc/cxxapi/classDirectoryMapper-members.html +0 -38
  30. data/doc/cxxapi/classDirectoryMapper.html +0 -203
  31. data/doc/cxxapi/classHooks-members.html +0 -33
  32. data/doc/cxxapi/classHooks.html +0 -43
  33. data/doc/cxxapi/classPassenger_1_1Application-members.html +0 -38
  34. data/doc/cxxapi/classPassenger_1_1Application.html +0 -229
  35. data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +0 -40
  36. data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +0 -331
  37. data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +0 -36
  38. data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +0 -225
  39. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +0 -1
  40. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +0 -1
  41. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
  42. data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +0 -43
  43. data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +0 -329
  44. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +0 -33
  45. data/doc/cxxapi/classPassenger_1_1BusyException.html +0 -47
  46. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +0 -33
  47. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +0 -44
  48. data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +0 -33
  49. data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +0 -51
  50. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +0 -33
  51. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +0 -51
  52. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +0 -1
  53. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +0 -1
  54. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
  55. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +0 -38
  56. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +0 -61
  57. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +0 -1
  58. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +0 -1
  59. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
  60. data/doc/cxxapi/classPassenger_1_1IOException-members.html +0 -33
  61. data/doc/cxxapi/classPassenger_1_1IOException.html +0 -54
  62. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +0 -1
  63. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +0 -1
  64. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
  65. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +0 -47
  66. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +0 -591
  67. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +0 -35
  68. data/doc/cxxapi/classPassenger_1_1SpawnException.html +0 -77
  69. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +0 -37
  70. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +0 -255
  71. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +0 -42
  72. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +0 -372
  73. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +0 -1
  74. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +0 -1
  75. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
  76. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +0 -37
  77. data/doc/cxxapi/classPassenger_1_1SystemException.html +0 -154
  78. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +0 -1
  79. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +0 -1
  80. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
  81. data/doc/cxxapi/classPassenger_1_1TempFile-members.html +0 -36
  82. data/doc/cxxapi/classPassenger_1_1TempFile.html +0 -128
  83. data/doc/cxxapi/classPassenger_1_1Thread-members.html +0 -35
  84. data/doc/cxxapi/classPassenger_1_1Thread.html +0 -100
  85. data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption-members.html +0 -33
  86. data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption.html +0 -46
  87. data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption-members.html +0 -33
  88. data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption.html +0 -44
  89. data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption-members.html +0 -33
  90. data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption.html +0 -44
  91. data/doc/cxxapi/definitions_8h-source.html +0 -28
  92. data/doc/cxxapi/doxygen.css +0 -433
  93. data/doc/cxxapi/doxygen.png +0 -0
  94. data/doc/cxxapi/files.html +0 -41
  95. data/doc/cxxapi/ftv2blank.png +0 -0
  96. data/doc/cxxapi/ftv2doc.png +0 -0
  97. data/doc/cxxapi/ftv2folderclosed.png +0 -0
  98. data/doc/cxxapi/ftv2folderopen.png +0 -0
  99. data/doc/cxxapi/ftv2lastnode.png +0 -0
  100. data/doc/cxxapi/ftv2link.png +0 -0
  101. data/doc/cxxapi/ftv2mlastnode.png +0 -0
  102. data/doc/cxxapi/ftv2mnode.png +0 -0
  103. data/doc/cxxapi/ftv2node.png +0 -0
  104. data/doc/cxxapi/ftv2plastnode.png +0 -0
  105. data/doc/cxxapi/ftv2pnode.png +0 -0
  106. data/doc/cxxapi/ftv2vertline.png +0 -0
  107. data/doc/cxxapi/functions.html +0 -212
  108. data/doc/cxxapi/functions_func.html +0 -207
  109. data/doc/cxxapi/functions_type.html +0 -46
  110. data/doc/cxxapi/functions_vars.html +0 -48
  111. data/doc/cxxapi/graph_legend.dot +0 -22
  112. data/doc/cxxapi/graph_legend.html +0 -87
  113. data/doc/cxxapi/graph_legend.png +0 -0
  114. data/doc/cxxapi/group__Configuration.html +0 -236
  115. data/doc/cxxapi/group__Configuration.png +0 -0
  116. data/doc/cxxapi/group__Core.html +0 -51
  117. data/doc/cxxapi/group__Core.png +0 -0
  118. data/doc/cxxapi/group__Exceptions.html +0 -43
  119. data/doc/cxxapi/group__Hooks.html +0 -46
  120. data/doc/cxxapi/group__Hooks.png +0 -0
  121. data/doc/cxxapi/group__Support.html +0 -406
  122. data/doc/cxxapi/hierarchy.html +0 -67
  123. data/doc/cxxapi/index.html +0 -11
  124. data/doc/cxxapi/inherit__graph__0.map +0 -1
  125. data/doc/cxxapi/inherit__graph__0.md5 +0 -1
  126. data/doc/cxxapi/inherit__graph__0.png +0 -0
  127. data/doc/cxxapi/inherit__graph__1.map +0 -1
  128. data/doc/cxxapi/inherit__graph__1.md5 +0 -1
  129. data/doc/cxxapi/inherit__graph__1.png +0 -0
  130. data/doc/cxxapi/inherit__graph__10.map +0 -1
  131. data/doc/cxxapi/inherit__graph__10.md5 +0 -1
  132. data/doc/cxxapi/inherit__graph__10.png +0 -0
  133. data/doc/cxxapi/inherit__graph__11.map +0 -1
  134. data/doc/cxxapi/inherit__graph__11.md5 +0 -1
  135. data/doc/cxxapi/inherit__graph__11.png +0 -0
  136. data/doc/cxxapi/inherit__graph__12.map +0 -1
  137. data/doc/cxxapi/inherit__graph__12.md5 +0 -1
  138. data/doc/cxxapi/inherit__graph__12.png +0 -0
  139. data/doc/cxxapi/inherit__graph__13.map +0 -1
  140. data/doc/cxxapi/inherit__graph__13.md5 +0 -1
  141. data/doc/cxxapi/inherit__graph__13.png +0 -0
  142. data/doc/cxxapi/inherit__graph__14.map +0 -2
  143. data/doc/cxxapi/inherit__graph__14.md5 +0 -1
  144. data/doc/cxxapi/inherit__graph__14.png +0 -0
  145. data/doc/cxxapi/inherit__graph__15.map +0 -1
  146. data/doc/cxxapi/inherit__graph__15.md5 +0 -1
  147. data/doc/cxxapi/inherit__graph__15.png +0 -0
  148. data/doc/cxxapi/inherit__graph__16.map +0 -1
  149. data/doc/cxxapi/inherit__graph__16.md5 +0 -1
  150. data/doc/cxxapi/inherit__graph__16.png +0 -0
  151. data/doc/cxxapi/inherit__graph__17.map +0 -1
  152. data/doc/cxxapi/inherit__graph__17.md5 +0 -1
  153. data/doc/cxxapi/inherit__graph__17.png +0 -0
  154. data/doc/cxxapi/inherit__graph__2.map +0 -1
  155. data/doc/cxxapi/inherit__graph__2.md5 +0 -1
  156. data/doc/cxxapi/inherit__graph__2.png +0 -0
  157. data/doc/cxxapi/inherit__graph__3.map +0 -1
  158. data/doc/cxxapi/inherit__graph__3.md5 +0 -1
  159. data/doc/cxxapi/inherit__graph__3.png +0 -0
  160. data/doc/cxxapi/inherit__graph__4.map +0 -1
  161. data/doc/cxxapi/inherit__graph__4.md5 +0 -1
  162. data/doc/cxxapi/inherit__graph__4.png +0 -0
  163. data/doc/cxxapi/inherit__graph__5.map +0 -1
  164. data/doc/cxxapi/inherit__graph__5.md5 +0 -1
  165. data/doc/cxxapi/inherit__graph__5.png +0 -0
  166. data/doc/cxxapi/inherit__graph__6.map +0 -1
  167. data/doc/cxxapi/inherit__graph__6.md5 +0 -1
  168. data/doc/cxxapi/inherit__graph__6.png +0 -0
  169. data/doc/cxxapi/inherit__graph__7.map +0 -1
  170. data/doc/cxxapi/inherit__graph__7.md5 +0 -1
  171. data/doc/cxxapi/inherit__graph__7.png +0 -0
  172. data/doc/cxxapi/inherit__graph__8.map +0 -1
  173. data/doc/cxxapi/inherit__graph__8.md5 +0 -1
  174. data/doc/cxxapi/inherit__graph__8.png +0 -0
  175. data/doc/cxxapi/inherit__graph__9.map +0 -2
  176. data/doc/cxxapi/inherit__graph__9.md5 +0 -1
  177. data/doc/cxxapi/inherit__graph__9.png +0 -0
  178. data/doc/cxxapi/inherits.html +0 -102
  179. data/doc/cxxapi/main.html +0 -27
  180. data/doc/cxxapi/modules.html +0 -34
  181. data/doc/cxxapi/namespacePassenger.html +0 -208
  182. data/doc/cxxapi/namespacePassenger_1_1InterruptableCalls.html +0 -43
  183. data/doc/cxxapi/namespacemembers.html +0 -70
  184. data/doc/cxxapi/namespacemembers_func.html +0 -66
  185. data/doc/cxxapi/namespacemembers_type.html +0 -46
  186. data/doc/cxxapi/namespaces.html +0 -35
  187. data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +0 -33
  188. data/doc/cxxapi/structPassenger_1_1AnythingToString.html +0 -49
  189. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +0 -33
  190. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +0 -49
  191. data/doc/cxxapi/tab_b.gif +0 -0
  192. data/doc/cxxapi/tab_l.gif +0 -0
  193. data/doc/cxxapi/tab_r.gif +0 -0
  194. data/doc/cxxapi/tabs.css +0 -102
  195. data/doc/cxxapi/tree.html +0 -166
  196. data/doc/rdoc/classes/ConditionVariable.html +0 -160
  197. data/doc/rdoc/classes/Exception.html +0 -120
  198. data/doc/rdoc/classes/GC.html +0 -113
  199. data/doc/rdoc/classes/IO.html +0 -150
  200. data/doc/rdoc/classes/Passenger.html +0 -136
  201. data/doc/rdoc/classes/Passenger/AbstractRequestHandler.html +0 -401
  202. data/doc/rdoc/classes/Passenger/AbstractServer.html +0 -649
  203. data/doc/rdoc/classes/Passenger/AbstractServer/ServerAlreadyStarted.html +0 -97
  204. data/doc/rdoc/classes/Passenger/AbstractServer/ServerError.html +0 -96
  205. data/doc/rdoc/classes/Passenger/AbstractServer/ServerNotStarted.html +0 -97
  206. data/doc/rdoc/classes/Passenger/AbstractServer/UnknownMessage.html +0 -96
  207. data/doc/rdoc/classes/Passenger/AppInitError.html +0 -137
  208. data/doc/rdoc/classes/Passenger/Application.html +0 -296
  209. data/doc/rdoc/classes/Passenger/ConsoleTextTemplate.html +0 -172
  210. data/doc/rdoc/classes/Passenger/FrameworkInitError.html +0 -143
  211. data/doc/rdoc/classes/Passenger/HTMLTemplate.html +0 -175
  212. data/doc/rdoc/classes/Passenger/InitializationError.html +0 -141
  213. data/doc/rdoc/classes/Passenger/MessageChannel.html +0 -488
  214. data/doc/rdoc/classes/Passenger/NativeSupport.html +0 -320
  215. data/doc/rdoc/classes/Passenger/SpawnManager.html +0 -375
  216. data/doc/rdoc/classes/Passenger/UnknownError.html +0 -125
  217. data/doc/rdoc/classes/Passenger/Utils.html +0 -580
  218. data/doc/rdoc/classes/Passenger/VersionNotFound.html +0 -140
  219. data/doc/rdoc/classes/PlatformInfo.html +0 -292
  220. data/doc/rdoc/classes/RakeExtensions.html +0 -197
  221. data/doc/rdoc/created.rid +0 -1
  222. data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -230
  223. data/doc/rdoc/files/README.html +0 -150
  224. data/doc/rdoc/files/ext/passenger/native_support_c.html +0 -92
  225. data/doc/rdoc/files/lib/passenger/abstract_request_handler_rb.html +0 -125
  226. data/doc/rdoc/files/lib/passenger/abstract_server_rb.html +0 -127
  227. data/doc/rdoc/files/lib/passenger/application_rb.html +0 -123
  228. data/doc/rdoc/files/lib/passenger/console_text_template_rb.html +0 -122
  229. data/doc/rdoc/files/lib/passenger/constants_rb.html +0 -114
  230. data/doc/rdoc/files/lib/passenger/dependencies_rb.html +0 -130
  231. data/doc/rdoc/files/lib/passenger/exceptions_rb.html +0 -118
  232. data/doc/rdoc/files/lib/passenger/html_template_rb.html +0 -122
  233. data/doc/rdoc/files/lib/passenger/message_channel_rb.html +0 -118
  234. data/doc/rdoc/files/lib/passenger/platform_info_rb.html +0 -122
  235. data/doc/rdoc/files/lib/passenger/simple_benchmarking_rb.html +0 -118
  236. data/doc/rdoc/files/lib/passenger/spawn_manager_rb.html +0 -139
  237. data/doc/rdoc/files/lib/passenger/utils_rb.html +0 -130
  238. data/doc/rdoc/files/lib/rake/extensions_rb.html +0 -122
  239. data/doc/rdoc/fr_class_index.html +0 -71
  240. data/doc/rdoc/fr_file_index.html +0 -63
  241. data/doc/rdoc/fr_method_index.html +0 -120
  242. data/doc/rdoc/index.html +0 -26
  243. data/doc/rdoc/rdoc-style.css +0 -187
@@ -1,33 +0,0 @@
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="doxygen.css" rel="stylesheet" type="text/css">
5
- <link href="tabs.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
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>Hooks Member List</h1>This is the complete list of members for <a class="el" href="classHooks.html">Hooks</a>, including all inherited members.<p><table>
28
- </table></div>
29
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:42 2008 for Passenger by&nbsp;
30
- <a href="http://www.doxygen.org/index.html">
31
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
32
- </body>
33
- </html>
@@ -1,43 +0,0 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
- <title>Passenger: Hooks Class Reference</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
- <link href="tabs.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
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>Hooks Class Reference<br>
28
- <small>
29
- [<a class="el" href="group__Core.html">Core Apache-related classes and functions</a>]</small>
30
- </h1><!-- doxytag: class="Hooks" -->
31
- <p>
32
- <a href="classHooks-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
33
- Apache hook functions, wrapped in a class. <table border="0" cellpadding="0" cellspacing="0">
34
- <tr><td></td></tr>
35
- </table>
36
- <hr>The documentation for this class was generated from the following file:<ul>
37
- <li>Hooks.cpp</ul>
38
- </div>
39
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:42 2008 for Passenger by&nbsp;
40
- <a href="http://www.doxygen.org/index.html">
41
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
42
- </body>
43
- </html>
@@ -1,38 +0,0 @@
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="doxygen.css" rel="stylesheet" type="text/css">
5
- <link href="tabs.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
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::Application Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a>, including all inherited members.<p><table>
28
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Application.html#163509167eef118470b72661ac8acd5d">Application</a>(const string &amp;theAppRoot, pid_t pid, const string &amp;listenSocketName, bool usingAbstractNamespace, int ownerPipe)</td><td><a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a></td><td><code> [inline]</code></td></tr>
29
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379">connect</a>(const function&lt; void()&gt; &amp;closeCallback) const </td><td><a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a></td><td><code> [inline]</code></td></tr>
30
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Application.html#0a0665852e7ebc8fb8ab0772fa90bc56">getAppRoot</a>() const </td><td><a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a></td><td><code> [inline]</code></td></tr>
31
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Application.html#94d2cce1c2c1d3441325f1498a22bf02">getPid</a>() const </td><td><a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a></td><td><code> [inline]</code></td></tr>
32
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">SessionPtr</a> typedef</td><td><a class="el" href="classPassenger_1_1Application.html">Passenger::Application</a></td><td></td></tr>
33
- </table></div>
34
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:44 2008 for Passenger by&nbsp;
35
- <a href="http://www.doxygen.org/index.html">
36
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
37
- </body>
38
- </html>
@@ -1,229 +0,0 @@
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: Passenger::Application Class Reference</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
- <link href="tabs.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
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 class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1Application.html">Application</a>
26
- </div>
27
- </div>
28
- <div class="contents">
29
- <h1>Passenger::Application Class Reference<br>
30
- <small>
31
- [<a class="el" href="group__Support.html">Apache-independent support classes and function</a>]</small>
32
- </h1><!-- doxytag: class="Passenger::Application" --><code>#include &lt;<a class="el" href="Application_8h-source.html">Application.h</a>&gt;</code>
33
- <p>
34
-
35
- <p>
36
- <a href="classPassenger_1_1Application-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
37
- Represents a single Ruby on Rails or Rack application instance. <table border="0" cellpadding="0" cellspacing="0">
38
- <tr><td></td></tr>
39
- <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
40
- <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef shared_ptr&lt; <a class="el" href="classPassenger_1_1Application_1_1Session.html">Session</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">SessionPtr</a></td></tr>
41
-
42
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenient alias for <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> smart pointer. <a href="#d14f673494991460b16246a527ad8ad9"></a><br></td></tr>
43
- <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
44
- <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application.html#163509167eef118470b72661ac8acd5d">Application</a> (const string &amp;theAppRoot, pid_t pid, const string &amp;listenSocketName, bool usingAbstractNamespace, int ownerPipe)</td></tr>
45
-
46
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a new <a class="el" href="classPassenger_1_1Application.html" title="Represents a single Ruby on Rails or Rack application instance.">Application</a> object. <a href="#163509167eef118470b72661ac8acd5d"></a><br></td></tr>
47
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application.html#0a0665852e7ebc8fb8ab0772fa90bc56">getAppRoot</a> () const </td></tr>
48
-
49
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the application root for this application. <a href="#0a0665852e7ebc8fb8ab0772fa90bc56"></a><br></td></tr>
50
- <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="94d2cce1c2c1d3441325f1498a22bf02"></a><!-- doxytag: member="Passenger::Application::getPid" ref="94d2cce1c2c1d3441325f1498a22bf02" args="() const " -->
51
- pid_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application.html#94d2cce1c2c1d3441325f1498a22bf02">getPid</a> () const </td></tr>
52
-
53
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the process ID of this application instance. <br></td></tr>
54
- <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">SessionPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379">connect</a> (const function&lt; void()&gt; &amp;closeCallback) const </td></tr>
55
-
56
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Connect to this application instance with the purpose of sending a request to the application. <a href="#34636f796ff3924ad5ec142aaa581379"></a><br></td></tr>
57
- <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
58
- <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1Application_1_1Session.html">Session</a></td></tr>
59
-
60
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents the life time of a single request/response pair of a Ruby on Rails or Rack application. <a href="classPassenger_1_1Application_1_1Session.html#_details">More...</a><br></td></tr>
61
- </table>
62
- <hr><h2>Member Typedef Documentation</h2>
63
- <a class="anchor" name="d14f673494991460b16246a527ad8ad9"></a><!-- doxytag: member="Passenger::Application::SessionPtr" ref="d14f673494991460b16246a527ad8ad9" args="" -->
64
- <div class="memitem">
65
- <div class="memproto">
66
- <table class="memname">
67
- <tr>
68
- <td class="memname">typedef shared_ptr&lt;<a class="el" href="classPassenger_1_1Application_1_1Session.html">Session</a>&gt; <a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">Passenger::Application::SessionPtr</a> </td>
69
- </tr>
70
- </table>
71
- </div>
72
- <div class="memdoc">
73
-
74
- <p>
75
- Convenient alias for <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> smart pointer.
76
- <p>
77
-
78
- </div>
79
- </div><p>
80
- <hr><h2>Constructor &amp; Destructor Documentation</h2>
81
- <a class="anchor" name="163509167eef118470b72661ac8acd5d"></a><!-- doxytag: member="Passenger::Application::Application" ref="163509167eef118470b72661ac8acd5d" args="(const string &amp;theAppRoot, pid_t pid, const string &amp;listenSocketName, bool usingAbstractNamespace, int ownerPipe)" -->
82
- <div class="memitem">
83
- <div class="memproto">
84
- <table class="memname">
85
- <tr>
86
- <td class="memname">Passenger::Application::Application </td>
87
- <td>(</td>
88
- <td class="paramtype">const string &amp;&nbsp;</td>
89
- <td class="paramname"> <em>theAppRoot</em>, </td>
90
- </tr>
91
- <tr>
92
- <td class="paramkey"></td>
93
- <td></td>
94
- <td class="paramtype">pid_t&nbsp;</td>
95
- <td class="paramname"> <em>pid</em>, </td>
96
- </tr>
97
- <tr>
98
- <td class="paramkey"></td>
99
- <td></td>
100
- <td class="paramtype">const string &amp;&nbsp;</td>
101
- <td class="paramname"> <em>listenSocketName</em>, </td>
102
- </tr>
103
- <tr>
104
- <td class="paramkey"></td>
105
- <td></td>
106
- <td class="paramtype">bool&nbsp;</td>
107
- <td class="paramname"> <em>usingAbstractNamespace</em>, </td>
108
- </tr>
109
- <tr>
110
- <td class="paramkey"></td>
111
- <td></td>
112
- <td class="paramtype">int&nbsp;</td>
113
- <td class="paramname"> <em>ownerPipe</em></td><td>&nbsp;</td>
114
- </tr>
115
- <tr>
116
- <td></td>
117
- <td>)</td>
118
- <td></td><td></td><td width="100%"><code> [inline]</code></td>
119
- </tr>
120
- </table>
121
- </div>
122
- <div class="memdoc">
123
-
124
- <p>
125
- Construct a new <a class="el" href="classPassenger_1_1Application.html" title="Represents a single Ruby on Rails or Rack application instance.">Application</a> object.
126
- <p>
127
- <dl compact><dt><b>Parameters:</b></dt><dd>
128
- <table border="0" cellspacing="2" cellpadding="0">
129
- <tr><td valign="top"></td><td valign="top"><em>theAppRoot</em>&nbsp;</td><td>The application root of an application. In case of a Rails application, this is the folder that contains 'app/', 'public/', 'config/', etc. This must be a valid directory, but the path does not have to be absolute. </td></tr>
130
- <tr><td valign="top"></td><td valign="top"><em>pid</em>&nbsp;</td><td>The process ID of this application instance. </td></tr>
131
- <tr><td valign="top"></td><td valign="top"><em>listenSocketName</em>&nbsp;</td><td>The name of the listener socket of this application instance. </td></tr>
132
- <tr><td valign="top"></td><td valign="top"><em>usingAbstractNamespace</em>&nbsp;</td><td>Whether <code>listenSocketName</code> refers to a Unix socket on the abstract namespace. Note that listenSocketName must not contain the leading null byte, even if it's an abstract namespace socket. </td></tr>
133
- <tr><td valign="top"></td><td valign="top"><em>ownerPipe</em>&nbsp;</td><td>The owner pipe of this application instance. </td></tr>
134
- </table>
135
- </dl>
136
- <dl class="post" compact><dt><b>Postcondition:</b></dt><dd><a class="el" href="classPassenger_1_1Application.html#0a0665852e7ebc8fb8ab0772fa90bc56" title="Returns the application root for this application.">getAppRoot()</a> == theAppRoot &amp;&amp; <a class="el" href="classPassenger_1_1Application.html#94d2cce1c2c1d3441325f1498a22bf02" title="Returns the process ID of this application instance.">getPid()</a> == pid </dd></dl>
137
-
138
- </div>
139
- </div><p>
140
- <hr><h2>Member Function Documentation</h2>
141
- <a class="anchor" name="0a0665852e7ebc8fb8ab0772fa90bc56"></a><!-- doxytag: member="Passenger::Application::getAppRoot" ref="0a0665852e7ebc8fb8ab0772fa90bc56" args="() const " -->
142
- <div class="memitem">
143
- <div class="memproto">
144
- <table class="memname">
145
- <tr>
146
- <td class="memname">string Passenger::Application::getAppRoot </td>
147
- <td>(</td>
148
- <td class="paramname"> </td>
149
- <td>&nbsp;)&nbsp;</td>
150
- <td width="100%"> const<code> [inline]</code></td>
151
- </tr>
152
- </table>
153
- </div>
154
- <div class="memdoc">
155
-
156
- <p>
157
- Returns the application root for this application.
158
- <p>
159
- See the constructor for information about the application root.
160
- </div>
161
- </div><p>
162
- <a class="anchor" name="34636f796ff3924ad5ec142aaa581379"></a><!-- doxytag: member="Passenger::Application::connect" ref="34636f796ff3924ad5ec142aaa581379" args="(const function&lt; void()&gt; &amp;closeCallback) const " -->
163
- <div class="memitem">
164
- <div class="memproto">
165
- <table class="memname">
166
- <tr>
167
- <td class="memname"><a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">SessionPtr</a> Passenger::Application::connect </td>
168
- <td>(</td>
169
- <td class="paramtype">const function&lt; void()&gt; &amp;&nbsp;</td>
170
- <td class="paramname"> <em>closeCallback</em> </td>
171
- <td>&nbsp;)&nbsp;</td>
172
- <td width="100%"> const<code> [inline]</code></td>
173
- </tr>
174
- </table>
175
- </div>
176
- <div class="memdoc">
177
-
178
- <p>
179
- Connect to this application instance with the purpose of sending a request to the application.
180
- <p>
181
- Once connected, a new session will be opened. This session represents the life time of a single request/response pair, and can be used to send the request data to the application instance, as well as receiving the response data.<p>
182
- The use of <a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379" title="Connect to this application instance with the purpose of sending a request to the...">connect()</a> is demonstrated in the following example. <div class="fragment"><pre class="fragment"> <span class="comment">// Connect to the application and get the newly opened session.</span>
183
- <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">Application::SessionPtr</a> session(app-&gt;connect(<span class="stringliteral">"/home/webapps/foo"</span>));
184
-
185
- <span class="comment">// Send the request headers and request body data.</span>
186
- session-&gt;sendHeaders(...);
187
- session-&gt;sendBodyBlock(...);
188
- <span class="comment">// Done sending data, so we close the writer channel.</span>
189
- session-&gt;closeWriter();
190
-
191
- <span class="comment">// Now read the HTTP response.</span>
192
- <span class="keywordtype">string</span> responseData = readAllDataFromSocket(session-&gt;getReader());
193
- <span class="comment">// Done reading data, so we close the reader channel.</span>
194
- session-&gt;closeReader();
195
-
196
- <span class="comment">// This session has now finished, so we close the session by resetting</span>
197
- <span class="comment">// the smart pointer to NULL (thereby destroying the Session object).</span>
198
- session.reset();
199
-
200
- <span class="comment">// We can connect to an Application multiple times. Just make sure</span>
201
- <span class="comment">// the previous session is closed.</span>
202
- session = app-&gt;connect(<span class="stringliteral">"/home/webapps/bar"</span>)
203
- </pre></div><p>
204
- Note that a RoR application instance can only process one request at the same time, and thus only one session at the same time. It's unspecified whether Rack applications can handle multiple simultanous sessions.<p>
205
- You <b>must</b> close a session when you no longer need if. If you call <a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379" title="Connect to this application instance with the purpose of sending a request to the...">connect()</a> without having properly closed a previous session, you might cause a deadlock because the application instance may be waiting for you to close the previous session.<p>
206
- <dl class="return" compact><dt><b>Returns:</b></dt><dd>A smart pointer to a <a class="el" href="classPassenger_1_1Application_1_1Session.html" title="Represents the life time of a single request/response pair of a Ruby on Rails or...">Session</a> object, which represents the created session. </dd></dl>
207
- <dl compact><dt><b>Parameters:</b></dt><dd>
208
- <table border="0" cellspacing="2" cellpadding="0">
209
- <tr><td valign="top"></td><td valign="top"><em>closeCallback</em>&nbsp;</td><td>A function which will be called when the session has been closed. </td></tr>
210
- </table>
211
- </dl>
212
- <dl class="post" compact><dt><b>Postcondition:</b></dt><dd>this-&gt;getSessions() == old-&gt;getSessions() + 1 </dd></dl>
213
- <dl compact><dt><b>Exceptions:</b></dt><dd>
214
- <table border="0" cellspacing="2" cellpadding="0">
215
- <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>Something went wrong during the connection process. </td></tr>
216
- <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>Something went wrong during the connection process. </td></tr>
217
- </table>
218
- </dl>
219
-
220
- </div>
221
- </div><p>
222
- <hr>The documentation for this class was generated from the following file:<ul>
223
- <li><a class="el" href="Application_8h-source.html">Application.h</a></ul>
224
- </div>
225
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:44 2008 for Passenger by&nbsp;
226
- <a href="http://www.doxygen.org/index.html">
227
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
228
- </body>
229
- </html>
@@ -1,40 +0,0 @@
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="doxygen.css" rel="stylesheet" type="text/css">
5
- <link href="tabs.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
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::ApplicationPool Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a>, including all inherited members.<p><table>
28
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#74db4d7a693d45b16320b2296a0c0997">clear</a>()=0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
29
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#9f486e1c0a4187f7fdb95d1382a85282">get</a>(const string &amp;appRoot, bool lowerPrivilege=true, const string &amp;lowestUser=&quot;nobody&quot;, const string &amp;environment=&quot;production&quot;, const string &amp;spawnMethod=&quot;smart&quot;, const string &amp;appType=&quot;rails&quot;)=0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
30
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#06d1eae044d4d761ce77cf09049df8c8">getActive</a>() const =0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
31
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#93b0277beb510855f85fee5de5c369bb">getCount</a>() const =0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
32
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#d9149c3b434ef8e18fd15a77af1a6c2c">getSpawnServerPid</a>() const =0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
33
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794">setMax</a>(unsigned int max)=0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
34
- <tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#b0437434c79b5444ac0faf768f1410e8">setMaxPerApp</a>(unsigned int max)=0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
35
- </table></div>
36
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:44 2008 for Passenger by&nbsp;
37
- <a href="http://www.doxygen.org/index.html">
38
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
39
- </body>
40
- </html>
@@ -1,331 +0,0 @@
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: Passenger::ApplicationPool Class Reference</title>
4
- <link href="doxygen.css" rel="stylesheet" type="text/css">
5
- <link href="tabs.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.5 -->
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 class="navpath"><a class="el" href="namespacePassenger.html">Passenger</a>::<a class="el" href="classPassenger_1_1ApplicationPool.html">ApplicationPool</a>
26
- </div>
27
- </div>
28
- <div class="contents">
29
- <h1>Passenger::ApplicationPool Class Reference<br>
30
- <small>
31
- [<a class="el" href="group__Support.html">Apache-independent support classes and function</a>]</small>
32
- </h1><!-- doxytag: class="Passenger::ApplicationPool" --><code>#include &lt;<a class="el" href="ApplicationPool_8h-source.html">ApplicationPool.h</a>&gt;</code>
33
- <p>
34
- <div class="dynheader">
35
- Inheritance diagram for Passenger::ApplicationPool:</div>
36
- <div class="dynsection">
37
- <p><center><img src="classPassenger_1_1ApplicationPool__inherit__graph.png" border="0" usemap="#Passenger_1_1ApplicationPool__inherit__map" alt="Inheritance graph"></center>
38
- <map name="Passenger_1_1ApplicationPool__inherit__map">
39
- <area shape="rect" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single&#45;process environments." alt="" coords="5,81,237,105"></map>
40
- <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
41
-
42
- <p>
43
- <a href="classPassenger_1_1ApplicationPool-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
44
- A persistent pool of Applications.
45
- <p>
46
- Spawning application instances, especially Ruby on Rails ones, is a very expensive operation. Despite best efforts to make the operation less expensive (see <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a>), it remains expensive compared to the cost of processing an HTTP request/response. So, in order to solve this, some sort of caching/pooling mechanism will be required. <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> provides this.<p>
47
- Normally, one would use <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> to spawn a new RoR/Rack application instance, then use <a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379" title="Connect to this application instance with the purpose of sending a request to the...">Application::connect()</a> to create a new session with that application instance, and then use the returned Session object to send the request and to read the HTTP response. <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> replaces the first step with a call to Application::get(). For example: <div class="fragment"><pre class="fragment"> ApplicationPool pool = some_function_which_creates_an_application_pool();
48
-
49
- <span class="comment">// Connect to the application and get the newly opened session.</span>
50
- <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">Application::SessionPtr</a> session(pool-&gt;get(<span class="stringliteral">"/home/webapps/foo"</span>));
51
-
52
- <span class="comment">// Send the request headers and request body data.</span>
53
- session-&gt;sendHeaders(...);
54
- session-&gt;sendBodyBlock(...);
55
- <span class="comment">// Done sending data, so we shutdown the writer stream.</span>
56
- session-&gt;shutdownWriter();
57
-
58
- <span class="comment">// Now read the HTTP response.</span>
59
- <span class="keywordtype">string</span> responseData = readAllDataFromSocket(session-&gt;getStream());
60
- <span class="comment">// Done reading data, so we shutdown the reader stream.</span>
61
- session-&gt;shutdownReader();
62
-
63
- <span class="comment">// This session has now finished, so we close the session by resetting</span>
64
- <span class="comment">// the smart pointer to NULL (thereby destroying the Session object).</span>
65
- session.reset();
66
-
67
- <span class="comment">// We can connect to an Application multiple times. Just make sure</span>
68
- <span class="comment">// the previous session is closed.</span>
69
- session = app-&gt;connect(<span class="stringliteral">"/home/webapps/bar"</span>)
70
- </pre></div><p>
71
- Internally, <a class="el" href="classPassenger_1_1ApplicationPool.html#9f486e1c0a4187f7fdb95d1382a85282" title="Open a new session with the application specified by appRoot.">ApplicationPool::get()</a> will keep spawned applications instances in memory, and reuse them if possible. It wil* <dl compact><dt><b>Exceptions:</b></dt><dd>
72
- <table border="0" cellspacing="2" cellpadding="0">
73
- <tr><td valign="top"></td><td valign="top"><em>l</em>&nbsp;</td><td>try to keep spawning to a minimum. Furthermore, if an application instance hasn't been used for a while, it will be automatically shutdown in order to save memory. Restart requests are honored: if an application has the file 'restart.txt' in its 'tmp' folder, then <a class="el" href="classPassenger_1_1ApplicationPool.html#9f486e1c0a4187f7fdb95d1382a85282" title="Open a new session with the application specified by appRoot.">get()</a> will shutdown existing instances of that application and spawn a new instance (this is useful when a new version of an application has been deployed). And finally, one can set a hard limit on the maximum number of applications instances that may be spawned (see <a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794" title="Set a hard limit on the number of application instances that this ApplicationPool...">ApplicationPool::setMax()</a>).</td></tr>
74
- </table>
75
- </dl>
76
- Note that <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> is just an interface (i.e. a pure virtual class). For concrete classes, see <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> and <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a>. The exact pooling algorithm depends on the implementation class. <table border="0" cellpadding="0" cellspacing="0">
77
- <tr><td></td></tr>
78
- <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
79
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">Application::SessionPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#9f486e1c0a4187f7fdb95d1382a85282">get</a> (const string &amp;appRoot, bool lowerPrivilege=true, const string &amp;lowestUser=&quot;nobody&quot;, const string &amp;environment=&quot;production&quot;, const string &amp;spawnMethod=&quot;smart&quot;, const string &amp;appType=&quot;rails&quot;)=0</td></tr>
80
-
81
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open a new session with the application specified by <code>appRoot</code>. <a href="#9f486e1c0a4187f7fdb95d1382a85282"></a><br></td></tr>
82
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#74db4d7a693d45b16320b2296a0c0997">clear</a> ()=0</td></tr>
83
-
84
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear all application instances that are currently in the pool. <a href="#74db4d7a693d45b16320b2296a0c0997"></a><br></td></tr>
85
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794">setMax</a> (unsigned int max)=0</td></tr>
86
-
87
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a hard limit on the number of application instances that this <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> may spawn. <a href="#0e0f21972ab130c9c0f90c2212328794"></a><br></td></tr>
88
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#06d1eae044d4d761ce77cf09049df8c8">getActive</a> () const =0</td></tr>
89
-
90
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of active applications in the pool. <a href="#06d1eae044d4d761ce77cf09049df8c8"></a><br></td></tr>
91
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#93b0277beb510855f85fee5de5c369bb">getCount</a> () const =0</td></tr>
92
-
93
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of active applications in the pool. <a href="#93b0277beb510855f85fee5de5c369bb"></a><br></td></tr>
94
- <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#b0437434c79b5444ac0faf768f1410e8">setMaxPerApp</a> (unsigned int max)=0</td></tr>
95
-
96
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a hard limit on the number of application instances that a single application may spawn in this <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>. <a href="#b0437434c79b5444ac0faf768f1410e8"></a><br></td></tr>
97
- <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_1ApplicationPool.html#d9149c3b434ef8e18fd15a77af1a6c2c">getSpawnServerPid</a> () const =0</td></tr>
98
-
99
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the process ID of the spawn server that is used. <a href="#d9149c3b434ef8e18fd15a77af1a6c2c"></a><br></td></tr>
100
- </table>
101
- <hr><h2>Member Function Documentation</h2>
102
- <a class="anchor" name="9f486e1c0a4187f7fdb95d1382a85282"></a><!-- doxytag: member="Passenger::ApplicationPool::get" ref="9f486e1c0a4187f7fdb95d1382a85282" args="(const string &amp;appRoot, bool lowerPrivilege=true, const string &amp;lowestUser=&quot;nobody&quot;, const string &amp;environment=&quot;production&quot;, const string &amp;spawnMethod=&quot;smart&quot;, const string &amp;appType=&quot;rails&quot;)=0" -->
103
- <div class="memitem">
104
- <div class="memproto">
105
- <table class="memname">
106
- <tr>
107
- <td class="memname">virtual <a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">Application::SessionPtr</a> Passenger::ApplicationPool::get </td>
108
- <td>(</td>
109
- <td class="paramtype">const string &amp;&nbsp;</td>
110
- <td class="paramname"> <em>appRoot</em>, </td>
111
- </tr>
112
- <tr>
113
- <td class="paramkey"></td>
114
- <td></td>
115
- <td class="paramtype">bool&nbsp;</td>
116
- <td class="paramname"> <em>lowerPrivilege</em> = <code>true</code>, </td>
117
- </tr>
118
- <tr>
119
- <td class="paramkey"></td>
120
- <td></td>
121
- <td class="paramtype">const string &amp;&nbsp;</td>
122
- <td class="paramname"> <em>lowestUser</em> = <code>&quot;nobody&quot;</code>, </td>
123
- </tr>
124
- <tr>
125
- <td class="paramkey"></td>
126
- <td></td>
127
- <td class="paramtype">const string &amp;&nbsp;</td>
128
- <td class="paramname"> <em>environment</em> = <code>&quot;production&quot;</code>, </td>
129
- </tr>
130
- <tr>
131
- <td class="paramkey"></td>
132
- <td></td>
133
- <td class="paramtype">const string &amp;&nbsp;</td>
134
- <td class="paramname"> <em>spawnMethod</em> = <code>&quot;smart&quot;</code>, </td>
135
- </tr>
136
- <tr>
137
- <td class="paramkey"></td>
138
- <td></td>
139
- <td class="paramtype">const string &amp;&nbsp;</td>
140
- <td class="paramname"> <em>appType</em> = <code>&quot;rails&quot;</code></td><td>&nbsp;</td>
141
- </tr>
142
- <tr>
143
- <td></td>
144
- <td>)</td>
145
- <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
146
- </tr>
147
- </table>
148
- </div>
149
- <div class="memdoc">
150
-
151
- <p>
152
- Open a new session with the application specified by <code>appRoot</code>.
153
- <p>
154
- See the class description for <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>, as well as <a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379" title="Connect to this application instance with the purpose of sending a request to the...">Application::connect()</a>, on how to use the returned session object.<p>
155
- Internally, this method may either spawn a new application instance, or use an existing one.<p>
156
- If <code>lowerPrivilege</code> is true, then any newly spawned application instances will have lower privileges. See <a class="el" href="classPassenger_1_1SpawnManager.html#fdefbbbad39833912ae7f9f106083099" title="Construct a new SpawnManager.">SpawnManager::SpawnManager()</a>'s description of <code>lowerPrivilege</code> and <code>lowestUser</code> for details.<p>
157
- <dl compact><dt><b>Parameters:</b></dt><dd>
158
- <table border="0" cellspacing="2" cellpadding="0">
159
- <tr><td valign="top"></td><td valign="top"><em>appRoot</em>&nbsp;</td><td>The application root of a RoR application, i.e. the folder that contains 'app/', 'public/', 'config/', etc. This must be a valid directory, but does not have to be an absolute path. </td></tr>
160
- <tr><td valign="top"></td><td valign="top"><em>lowerPrivilege</em>&nbsp;</td><td>Whether to lower the application's privileges. </td></tr>
161
- <tr><td valign="top"></td><td valign="top"><em>lowestUser</em>&nbsp;</td><td>The user to fallback to if lowering privilege fails. </td></tr>
162
- <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>The RAILS_ENV/RACK_ENV environment that should be used. May not be empty. </td></tr>
163
- <tr><td valign="top"></td><td valign="top"><em>spawnMethod</em>&nbsp;</td><td>The spawn method to use. Either "smart" or "conservative". See the Ruby class <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> for details. </td></tr>
164
- <tr><td valign="top"></td><td valign="top"><em>appType</em>&nbsp;</td><td>The application type. Either "rails" or "rack". </td></tr>
165
- </table>
166
- </dl>
167
- <dl class="return" compact><dt><b>Returns:</b></dt><dd>A session object. </dd></dl>
168
- <dl compact><dt><b>Exceptions:</b></dt><dd>
169
- <table border="0" cellspacing="2" cellpadding="0">
170
- <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>An attempt was made to spawn a new application instance, but that attempt failed. </td></tr>
171
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request.">BusyException</a></em>&nbsp;</td><td>The application pool is too busy right now, and cannot satisfy the request. One should either abort, or try again later. </td></tr>
172
- <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>Something else went wrong. </td></tr>
173
- <tr><td valign="top"></td><td valign="top"><em>thread_interrupted</em>&nbsp;</td><td></td></tr>
174
- </table>
175
- </dl>
176
- <dl class="note" compact><dt><b>Note:</b></dt><dd>Applications are uniquely identified with the application root string. So although <code>appRoot</code> does not have to be absolute, it should be. If one calls <code>get("/home/foo")</code> and <code>get("/home/../home/foo")</code>, then <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> will think they're 2 different applications, and thus will spawn 2 application instances. </dd></dl>
177
-
178
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#0dcdd88c39d7f1a1d667e24c3cb9b243">Passenger::StandardApplicationPool</a>.</p>
179
-
180
- </div>
181
- </div><p>
182
- <a class="anchor" name="74db4d7a693d45b16320b2296a0c0997"></a><!-- doxytag: member="Passenger::ApplicationPool::clear" ref="74db4d7a693d45b16320b2296a0c0997" args="()=0" -->
183
- <div class="memitem">
184
- <div class="memproto">
185
- <table class="memname">
186
- <tr>
187
- <td class="memname">virtual void Passenger::ApplicationPool::clear </td>
188
- <td>(</td>
189
- <td class="paramname"> </td>
190
- <td>&nbsp;)&nbsp;</td>
191
- <td width="100%"><code> [pure virtual]</code></td>
192
- </tr>
193
- </table>
194
- </div>
195
- <div class="memdoc">
196
-
197
- <p>
198
- Clear all application instances that are currently in the pool.
199
- <p>
200
- This method is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
201
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#bcf8faeb4f431ae07ea0e20270661d08">Passenger::StandardApplicationPool</a>.</p>
202
-
203
- </div>
204
- </div><p>
205
- <a class="anchor" name="0e0f21972ab130c9c0f90c2212328794"></a><!-- doxytag: member="Passenger::ApplicationPool::setMax" ref="0e0f21972ab130c9c0f90c2212328794" args="(unsigned int max)=0" -->
206
- <div class="memitem">
207
- <div class="memproto">
208
- <table class="memname">
209
- <tr>
210
- <td class="memname">virtual void Passenger::ApplicationPool::setMax </td>
211
- <td>(</td>
212
- <td class="paramtype">unsigned int&nbsp;</td>
213
- <td class="paramname"> <em>max</em> </td>
214
- <td>&nbsp;)&nbsp;</td>
215
- <td width="100%"><code> [pure virtual]</code></td>
216
- </tr>
217
- </table>
218
- </div>
219
- <div class="memdoc">
220
-
221
- <p>
222
- Set a hard limit on the number of application instances that this <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> may spawn.
223
- <p>
224
- The exact behavior depends on the used algorithm, and is not specified by these API docs.<p>
225
- It is allowed to set a limit lower than the current number of spawned applications.
226
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#04ef8c92da189520ad2022f4f82e9553">Passenger::StandardApplicationPool</a>.</p>
227
-
228
- </div>
229
- </div><p>
230
- <a class="anchor" name="06d1eae044d4d761ce77cf09049df8c8"></a><!-- doxytag: member="Passenger::ApplicationPool::getActive" ref="06d1eae044d4d761ce77cf09049df8c8" args="() const =0" -->
231
- <div class="memitem">
232
- <div class="memproto">
233
- <table class="memname">
234
- <tr>
235
- <td class="memname">virtual unsigned int Passenger::ApplicationPool::getActive </td>
236
- <td>(</td>
237
- <td class="paramname"> </td>
238
- <td>&nbsp;)&nbsp;</td>
239
- <td width="100%"> const<code> [pure virtual]</code></td>
240
- </tr>
241
- </table>
242
- </div>
243
- <div class="memdoc">
244
-
245
- <p>
246
- Get the number of active applications in the pool.
247
- <p>
248
- This method exposes an implementation detail of the underlying pooling algorithm. It is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
249
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#7773c4a3dfbd88eac72401d063831788">Passenger::StandardApplicationPool</a>.</p>
250
-
251
- </div>
252
- </div><p>
253
- <a class="anchor" name="93b0277beb510855f85fee5de5c369bb"></a><!-- doxytag: member="Passenger::ApplicationPool::getCount" ref="93b0277beb510855f85fee5de5c369bb" args="() const =0" -->
254
- <div class="memitem">
255
- <div class="memproto">
256
- <table class="memname">
257
- <tr>
258
- <td class="memname">virtual unsigned int Passenger::ApplicationPool::getCount </td>
259
- <td>(</td>
260
- <td class="paramname"> </td>
261
- <td>&nbsp;)&nbsp;</td>
262
- <td width="100%"> const<code> [pure virtual]</code></td>
263
- </tr>
264
- </table>
265
- </div>
266
- <div class="memdoc">
267
-
268
- <p>
269
- Get the number of active applications in the pool.
270
- <p>
271
- This method exposes an implementation detail of the underlying pooling algorithm. It is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
272
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#cdbfe2b9ffacdab4438c879c2411bf02">Passenger::StandardApplicationPool</a>.</p>
273
-
274
- </div>
275
- </div><p>
276
- <a class="anchor" name="b0437434c79b5444ac0faf768f1410e8"></a><!-- doxytag: member="Passenger::ApplicationPool::setMaxPerApp" ref="b0437434c79b5444ac0faf768f1410e8" args="(unsigned int max)=0" -->
277
- <div class="memitem">
278
- <div class="memproto">
279
- <table class="memname">
280
- <tr>
281
- <td class="memname">virtual void Passenger::ApplicationPool::setMaxPerApp </td>
282
- <td>(</td>
283
- <td class="paramtype">unsigned int&nbsp;</td>
284
- <td class="paramname"> <em>max</em> </td>
285
- <td>&nbsp;)&nbsp;</td>
286
- <td width="100%"><code> [pure virtual]</code></td>
287
- </tr>
288
- </table>
289
- </div>
290
- <div class="memdoc">
291
-
292
- <p>
293
- Set a hard limit on the number of application instances that a single application may spawn in this <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>.
294
- <p>
295
- The exact behavior depends on the used algorithm, and is not specified by these API docs.<p>
296
- It is allowed to set a limit lower than the current number of spawned applications.
297
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#3bafcda8d880f70561ad8a9da16e26ef">Passenger::StandardApplicationPool</a>.</p>
298
-
299
- </div>
300
- </div><p>
301
- <a class="anchor" name="d9149c3b434ef8e18fd15a77af1a6c2c"></a><!-- doxytag: member="Passenger::ApplicationPool::getSpawnServerPid" ref="d9149c3b434ef8e18fd15a77af1a6c2c" args="() const =0" -->
302
- <div class="memitem">
303
- <div class="memproto">
304
- <table class="memname">
305
- <tr>
306
- <td class="memname">virtual pid_t Passenger::ApplicationPool::getSpawnServerPid </td>
307
- <td>(</td>
308
- <td class="paramname"> </td>
309
- <td>&nbsp;)&nbsp;</td>
310
- <td width="100%"> const<code> [pure virtual]</code></td>
311
- </tr>
312
- </table>
313
- </div>
314
- <div class="memdoc">
315
-
316
- <p>
317
- Get the process ID of the spawn server that is used.
318
- <p>
319
- This method exposes an implementation detail. It is used by unit tests to verify that the implementation is correct, and thus should not be used directly.
320
- <p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#6955152d237920988d20297d2fff5660">Passenger::StandardApplicationPool</a>.</p>
321
-
322
- </div>
323
- </div><p>
324
- <hr>The documentation for this class was generated from the following file:<ul>
325
- <li><a class="el" href="ApplicationPool_8h-source.html">ApplicationPool.h</a></ul>
326
- </div>
327
- <hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:44 2008 for Passenger by&nbsp;
328
- <a href="http://www.doxygen.org/index.html">
329
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
330
- </body>
331
- </html>