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
@@ -107,7 +107,7 @@
107
107
  <a name="l00086"></a>00086
108
108
  <a name="l00087"></a>00087 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BUCKET_H_ */</span>
109
109
  </pre></div></div>
110
- <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by&nbsp;
110
+ <hr size="1"><address style="text-align: right;"><small>Generated on Mon Feb 22 13:50:37 2010 for Passenger by&nbsp;
111
111
  <a href="http://www.doxygen.org/index.html">
112
112
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
113
113
  </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><a href="annotated.html"><span>Classes</span></a></li>
14
15
  <li class="current"><a href="files.html"><span>Files</span></a></li>
15
16
  </ul>
@@ -21,166 +22,57 @@
21
22
  </div>
22
23
  <h1>CachedFileStat.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
23
24
  <a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
24
- <a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2009 Phusion</span>
25
+ <a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2010 Phusion</span>
25
26
  <a name="l00004"></a>00004 <span class="comment"> *</span>
26
- <a name="l00005"></a>00005 <span class="comment"> * Phusion Passenger is a trademark of Hongli Lai &amp; Ninh Bui.</span>
27
+ <a name="l00005"></a>00005 <span class="comment"> * "Phusion Passenger" is a trademark of Hongli Lai &amp; Ninh Bui.</span>
27
28
  <a name="l00006"></a>00006 <span class="comment"> *</span>
28
- <a name="l00007"></a>00007 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
29
- <a name="l00008"></a>00008 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
30
- <a name="l00009"></a>00009 <span class="comment"> * the Free Software Foundation; version 2 of the License.</span>
31
- <a name="l00010"></a>00010 <span class="comment"> *</span>
32
- <a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
33
- <a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
34
- <a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
35
- <a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
36
- <a name="l00015"></a>00015 <span class="comment"> *</span>
37
- <a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License along</span>
38
- <a name="l00017"></a>00017 <span class="comment"> * with this program; if not, write to the Free Software Foundation, Inc.,</span>
39
- <a name="l00018"></a>00018 <span class="comment"> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span>
40
- <a name="l00019"></a>00019 <span class="comment"> */</span>
41
- <a name="l00020"></a>00020 <span class="preprocessor">#ifndef _PASSENGER_CACHED_FILE_STAT_H_</span>
42
- <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_CACHED_FILE_STAT_H_</span>
43
- <a name="l00022"></a>00022 <span class="preprocessor"></span>
44
- <a name="l00023"></a>00023 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
45
- <a name="l00024"></a>00024 <span class="preprocessor">#include &lt;sys/stat.h&gt;</span>
46
- <a name="l00025"></a>00025 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
47
- <a name="l00026"></a>00026 <span class="preprocessor">#include &lt;time.h&gt;</span>
48
- <a name="l00027"></a>00027
49
- <a name="l00028"></a>00028 <span class="preprocessor">#ifdef __cplusplus</span>
50
- <a name="l00029"></a>00029 <span class="preprocessor"></span>
51
- <a name="l00030"></a>00030 <span class="preprocessor">#include &lt;errno.h&gt;</span>
52
- <a name="l00031"></a>00031 <span class="preprocessor">#include &lt;string&gt;</span>
53
- <a name="l00032"></a>00032 <span class="preprocessor">#include &lt;oxt/system_calls.hpp&gt;</span>
54
- <a name="l00033"></a>00033
55
- <a name="l00034"></a>00034 <span class="preprocessor">#include "SystemTime.h"</span>
56
- <a name="l00035"></a>00035
57
- <a name="l00036"></a>00036 <span class="keyword">namespace </span>Passenger {
58
- <a name="l00037"></a>00037
59
- <a name="l00038"></a>00038 <span class="keyword">using namespace </span>std;
60
- <a name="l00039"></a>00039 <span class="keyword">using namespace </span>oxt;
61
- <a name="l00040"></a>00040 <span class="comment"></span>
62
- <a name="l00041"></a>00041 <span class="comment">/**</span>
63
- <a name="l00042"></a>00042 <span class="comment"> * CachedFileStat allows one to stat() a file at a throttled rate, in order</span>
64
- <a name="l00043"></a>00043 <span class="comment"> * to minimize stress on the filesystem. It does this by caching the old stat</span>
65
- <a name="l00044"></a>00044 <span class="comment"> * data for a specified amount of time.</span>
66
- <a name="l00045"></a>00045 <span class="comment"> */</span>
67
- <a name="l00046"></a>00046 <span class="keyword">class </span>CachedFileStat {
68
- <a name="l00047"></a>00047 <span class="keyword">private</span>:<span class="comment"></span>
69
- <a name="l00048"></a>00048 <span class="comment"> /** The last return value of stat(). */</span>
70
- <a name="l00049"></a>00049 <span class="keywordtype">int</span> last_result;
71
- <a name="l00050"></a>00050 <span class="comment"></span>
72
- <a name="l00051"></a>00051 <span class="comment"> /** The errno set by the last stat() call. */</span>
73
- <a name="l00052"></a>00052 <span class="keywordtype">int</span> last_errno;
74
- <a name="l00053"></a>00053 <span class="comment"></span>
75
- <a name="l00054"></a>00054 <span class="comment"> /** The filename of the file to stat. */</span>
76
- <a name="l00055"></a>00055 <span class="keywordtype">string</span> filename;
77
- <a name="l00056"></a>00056 <span class="comment"></span>
78
- <a name="l00057"></a>00057 <span class="comment"> /** The last time a stat() was performed. */</span>
79
- <a name="l00058"></a>00058 time_t last_time;
80
- <a name="l00059"></a>00059 <span class="comment"></span>
81
- <a name="l00060"></a>00060 <span class="comment"> /**</span>
82
- <a name="l00061"></a>00061 <span class="comment"> * Checks whether &lt;em&gt;interval&lt;/em&gt; seconds have elapsed since &lt;em&gt;begin&lt;/em&gt;</span>
83
- <a name="l00062"></a>00062 <span class="comment"> * The current time is returned via the &lt;tt&gt;currentTime&lt;/tt&gt; argument,</span>
84
- <a name="l00063"></a>00063 <span class="comment"> * so that the caller doesn't have to call time() again if it needs the current</span>
85
- <a name="l00064"></a>00064 <span class="comment"> * time.</span>
86
- <a name="l00065"></a>00065 <span class="comment"> *</span>
87
- <a name="l00066"></a>00066 <span class="comment"> * @pre begin &lt;= time(NULL)</span>
88
- <a name="l00067"></a>00067 <span class="comment"> * @return Whether &lt;tt&gt;interval&lt;/tt&gt; seconds have elapsed since &lt;tt&gt;begin&lt;/tt&gt;.</span>
89
- <a name="l00068"></a>00068 <span class="comment"> * @throws SystemException Something went wrong while retrieving the time.</span>
90
- <a name="l00069"></a>00069 <span class="comment"> * @throws boost::thread_interrupted</span>
91
- <a name="l00070"></a>00070 <span class="comment"> */</span>
92
- <a name="l00071"></a>00071 <span class="keywordtype">bool</span> expired(time_t begin, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> interval, time_t &amp;currentTime) {
93
- <a name="l00072"></a>00072 currentTime = <a class="code" href="classPassenger_1_1SystemTime.html#d643b3e5748ee929e013517e6aca046c" title="Returns the time since the Epoch, measured in seconds.">SystemTime::get</a>();
94
- <a name="l00073"></a>00073 <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) (currentTime - begin) &gt;= interval;
95
- <a name="l00074"></a>00074 }
96
- <a name="l00075"></a>00075
97
- <a name="l00076"></a>00076 <span class="keyword">public</span>:<span class="comment"></span>
98
- <a name="l00077"></a>00077 <span class="comment"> /** The cached stat info. */</span>
99
- <a name="l00078"></a>00078 <span class="keyword">struct </span>stat info;
100
- <a name="l00079"></a>00079 <span class="comment"></span>
101
- <a name="l00080"></a>00080 <span class="comment"> /**</span>
102
- <a name="l00081"></a>00081 <span class="comment"> * Creates a new CachedFileStat object. The file will not be</span>
103
- <a name="l00082"></a>00082 <span class="comment"> * stat()ted until you call refresh().</span>
104
- <a name="l00083"></a>00083 <span class="comment"> *</span>
105
- <a name="l00084"></a>00084 <span class="comment"> * @param filename The file to stat.</span>
106
- <a name="l00085"></a>00085 <span class="comment"> */</span>
107
- <a name="l00086"></a>00086 CachedFileStat(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;filename) {
108
- <a name="l00087"></a>00087 memset(&amp;info, 0, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> stat));
109
- <a name="l00088"></a>00088 last_result = -1;
110
- <a name="l00089"></a>00089 last_errno = 0;
111
- <a name="l00090"></a>00090 this-&gt;filename = filename;
112
- <a name="l00091"></a>00091 last_time = 0;
113
- <a name="l00092"></a>00092 }
114
- <a name="l00093"></a>00093 <span class="comment"></span>
115
- <a name="l00094"></a>00094 <span class="comment"> /**</span>
116
- <a name="l00095"></a>00095 <span class="comment"> * Re-stat() the file, if necessary. If &lt;tt&gt;throttleRate&lt;/tt&gt; seconds have</span>
117
- <a name="l00096"></a>00096 <span class="comment"> * passed since the last time stat() was called, then the file will be</span>
118
- <a name="l00097"></a>00097 <span class="comment"> * re-stat()ted.</span>
119
- <a name="l00098"></a>00098 <span class="comment"> *</span>
120
- <a name="l00099"></a>00099 <span class="comment"> * The stat information, which may either be the result of a new stat() call</span>
121
- <a name="l00100"></a>00100 <span class="comment"> * or just the old cached information, is be available in the &lt;tt&gt;info&lt;/tt&gt;</span>
122
- <a name="l00101"></a>00101 <span class="comment"> * member.</span>
123
- <a name="l00102"></a>00102 <span class="comment"> *</span>
124
- <a name="l00103"></a>00103 <span class="comment"> * @return 0 if the stat() call succeeded or if no stat() was performed,</span>
125
- <a name="l00104"></a>00104 <span class="comment"> * -1 if something went wrong while statting the file. In the latter</span>
126
- <a name="l00105"></a>00105 <span class="comment"> * case, &lt;tt&gt;errno&lt;/tt&gt; will be populated with an appropriate error code.</span>
127
- <a name="l00106"></a>00106 <span class="comment"> * @throws SystemException Something went wrong while retrieving the</span>
128
- <a name="l00107"></a>00107 <span class="comment"> * system time. stat() errors will &lt;em&gt;not&lt;/em&gt; result in SystemException</span>
129
- <a name="l00108"></a>00108 <span class="comment"> * being thrown.</span>
130
- <a name="l00109"></a>00109 <span class="comment"> * @throws boost::thread_interrupted</span>
131
- <a name="l00110"></a>00110 <span class="comment"> */</span>
132
- <a name="l00111"></a>00111 <span class="keywordtype">int</span> refresh(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> throttleRate) {
133
- <a name="l00112"></a>00112 time_t currentTime;
134
- <a name="l00113"></a>00113
135
- <a name="l00114"></a>00114 <span class="keywordflow">if</span> (expired(last_time, throttleRate, currentTime)) {
136
- <a name="l00115"></a>00115 last_result = syscalls::stat(filename.c_str(), &amp;info);
137
- <a name="l00116"></a>00116 last_errno = errno;
138
- <a name="l00117"></a>00117 last_time = currentTime;
139
- <a name="l00118"></a>00118 <span class="keywordflow">return</span> last_result;
140
- <a name="l00119"></a>00119 } <span class="keywordflow">else</span> {
141
- <a name="l00120"></a>00120 errno = last_errno;
142
- <a name="l00121"></a>00121 <span class="keywordflow">return</span> last_result;
143
- <a name="l00122"></a>00122 }
144
- <a name="l00123"></a>00123 }
145
- <a name="l00124"></a>00124 };
146
- <a name="l00125"></a>00125
147
- <a name="l00126"></a>00126 } <span class="comment">// namespace Passenger</span>
148
- <a name="l00127"></a>00127
149
- <a name="l00128"></a>00128 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span>
150
- <a name="l00129"></a>00129
151
- <a name="l00130"></a>00130
152
- <a name="l00131"></a>00131 <span class="preprocessor">#ifdef __cplusplus</span>
153
- <a name="l00132"></a>00132 <span class="preprocessor"></span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
154
- <a name="l00133"></a>00133 <span class="preprocessor">#endif</span>
155
- <a name="l00134"></a>00134 <span class="preprocessor"></span><span class="comment"></span>
156
- <a name="l00135"></a>00135 <span class="comment">/**</span>
157
- <a name="l00136"></a>00136 <span class="comment"> * CachedMultiFileStat allows one to stat() files at a throttled rate, in order</span>
158
- <a name="l00137"></a>00137 <span class="comment"> * to minimize stress on the filesystem. It does this by caching the old stat</span>
159
- <a name="l00138"></a>00138 <span class="comment"> * data for a specified amount of time.</span>
160
- <a name="l00139"></a>00139 <span class="comment"> *</span>
161
- <a name="l00140"></a>00140 <span class="comment"> * Unlike CachedFileStat, which can only stat() one specific file per</span>
162
- <a name="l00141"></a>00141 <span class="comment"> * CachedFileStat object, CachedMultiFileStat can stat() any file. The</span>
163
- <a name="l00142"></a>00142 <span class="comment"> * number of cached stat() information is limited by the given cache size.</span>
164
- <a name="l00143"></a>00143 <span class="comment"> *</span>
165
- <a name="l00144"></a>00144 <span class="comment"> * This class is fully thread-safe.</span>
166
- <a name="l00145"></a>00145 <span class="comment"> */</span>
167
- <a name="l00146"></a>00146 <span class="keyword">typedef</span> <span class="keyword">struct </span>CachedMultiFileStat CachedMultiFileStat;
168
- <a name="l00147"></a>00147
169
- <a name="l00148"></a>00148 CachedMultiFileStat *cached_multi_file_stat_new(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> max_size);
170
- <a name="l00149"></a>00149 <span class="keywordtype">void</span> cached_multi_file_stat_free(CachedMultiFileStat *mstat);
171
- <a name="l00150"></a>00150 <span class="keywordtype">int</span> cached_multi_file_stat_perform(CachedMultiFileStat *mstat,
172
- <a name="l00151"></a>00151 <span class="keyword">const</span> <span class="keywordtype">char</span> *filename,
173
- <a name="l00152"></a>00152 <span class="keyword">struct</span> stat *buf,
174
- <a name="l00153"></a>00153 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> throttle_rate);
175
- <a name="l00154"></a>00154
176
- <a name="l00155"></a>00155 <span class="preprocessor">#ifdef __cplusplus</span>
177
- <a name="l00156"></a>00156 <span class="preprocessor"></span> }
178
- <a name="l00157"></a>00157 <span class="preprocessor">#endif</span>
179
- <a name="l00158"></a>00158 <span class="preprocessor"></span>
180
- <a name="l00159"></a>00159 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_CACHED_FILE_STAT_H_ */</span>
181
- <a name="l00160"></a>00160
29
+ <a name="l00007"></a>00007 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span>
30
+ <a name="l00008"></a>00008 <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span>
31
+ <a name="l00009"></a>00009 <span class="comment"> * in the Software without restriction, including without limitation the rights</span>
32
+ <a name="l00010"></a>00010 <span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span>
33
+ <a name="l00011"></a>00011 <span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span>
34
+ <a name="l00012"></a>00012 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
35
+ <a name="l00013"></a>00013 <span class="comment"> *</span>
36
+ <a name="l00014"></a>00014 <span class="comment"> * The above copyright notice and this permission notice shall be included in</span>
37
+ <a name="l00015"></a>00015 <span class="comment"> * all copies or substantial portions of the Software.</span>
38
+ <a name="l00016"></a>00016 <span class="comment"> *</span>
39
+ <a name="l00017"></a>00017 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span>
40
+ <a name="l00018"></a>00018 <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
41
+ <a name="l00019"></a>00019 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span>
42
+ <a name="l00020"></a>00020 <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
43
+ <a name="l00021"></a>00021 <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span>
44
+ <a name="l00022"></a>00022 <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
45
+ <a name="l00023"></a>00023 <span class="comment"> * THE SOFTWARE.</span>
46
+ <a name="l00024"></a>00024 <span class="comment"> */</span>
47
+ <a name="l00025"></a>00025 <span class="preprocessor">#ifndef _PASSENGER_CACHED_FILE_STAT_H_</span>
48
+ <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_CACHED_FILE_STAT_H_</span>
49
+ <a name="l00027"></a>00027 <span class="preprocessor"></span>
50
+ <a name="l00028"></a>00028 <span class="preprocessor">#include &lt;sys/stat.h&gt;</span>
51
+ <a name="l00029"></a>00029
52
+ <a name="l00030"></a>00030 <span class="preprocessor">#ifdef __cplusplus</span>
53
+ <a name="l00031"></a>00031 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
54
+ <a name="l00032"></a>00032 <span class="preprocessor">#endif</span>
55
+ <a name="l00033"></a>00033 <span class="preprocessor"></span>
56
+ <a name="l00034"></a>00034 <span class="comment"></span>
57
+ <a name="l00035"></a>00035 <span class="comment">/** C bindings for Passenger::CachedFileStat. */</span>
58
+ <a name="l00036"></a>00036
59
+ <a name="l00037"></a>00037 <span class="keyword">typedef</span> <span class="keyword">struct </span>CachedFileStat CachedFileStat;
60
+ <a name="l00038"></a>00038
61
+ <a name="l00039"></a>00039 CachedFileStat *cached_file_stat_new(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> max_size);
62
+ <a name="l00040"></a>00040 <span class="keywordtype">void</span> cached_file_stat_free(CachedFileStat *cstat);
63
+ <a name="l00041"></a>00041 <span class="keywordtype">int</span> cached_file_stat_perform(CachedFileStat *cstat,
64
+ <a name="l00042"></a>00042 <span class="keyword">const</span> <span class="keywordtype">char</span> *filename,
65
+ <a name="l00043"></a>00043 <span class="keyword">struct</span> stat *buf,
66
+ <a name="l00044"></a>00044 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> throttle_rate);
67
+ <a name="l00045"></a>00045
68
+ <a name="l00046"></a>00046
69
+ <a name="l00047"></a>00047 <span class="preprocessor">#ifdef __cplusplus</span>
70
+ <a name="l00048"></a>00048 <span class="preprocessor"></span>}
71
+ <a name="l00049"></a>00049 <span class="preprocessor">#endif</span>
72
+ <a name="l00050"></a>00050 <span class="preprocessor"></span>
73
+ <a name="l00051"></a>00051 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_CACHED_FILE_STAT_H_ */</span>
182
74
  </pre></div></div>
183
- <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:10 2009 for Passenger by&nbsp;
75
+ <hr size="1"><address style="text-align: right;"><small>Generated on Mon Feb 8 22:53:21 2010 for Passenger by&nbsp;
184
76
  <a href="http://www.doxygen.org/index.html">
185
77
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
186
78
  </body>
@@ -425,7 +425,7 @@
425
425
  <a name="l00404"></a>00404
426
426
  <a name="l00405"></a>00405 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_CONFIGURATION_H_ */</span>
427
427
  </pre></div></div>
428
- <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by&nbsp;
428
+ <hr size="1"><address style="text-align: right;"><small>Generated on Mon Feb 22 13:50:37 2010 for Passenger by&nbsp;
429
429
  <a href="http://www.doxygen.org/index.html">
430
430
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
431
431
  </body>
@@ -0,0 +1,71 @@
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: Constants.h Source File</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><a href="annotated.html"><span>Classes</span></a></li>
15
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
16
+ </ul>
17
+ </div>
18
+ <div class="tabs">
19
+ <ul>
20
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
21
+ </ul>
22
+ </div>
23
+ <h1>Constants.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
24
+ <a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
25
+ <a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2010 Phusion</span>
26
+ <a name="l00004"></a>00004 <span class="comment"> *</span>
27
+ <a name="l00005"></a>00005 <span class="comment"> * "Phusion Passenger" is a trademark of Hongli Lai &amp; Ninh Bui.</span>
28
+ <a name="l00006"></a>00006 <span class="comment"> *</span>
29
+ <a name="l00007"></a>00007 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span>
30
+ <a name="l00008"></a>00008 <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span>
31
+ <a name="l00009"></a>00009 <span class="comment"> * in the Software without restriction, including without limitation the rights</span>
32
+ <a name="l00010"></a>00010 <span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span>
33
+ <a name="l00011"></a>00011 <span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span>
34
+ <a name="l00012"></a>00012 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
35
+ <a name="l00013"></a>00013 <span class="comment"> *</span>
36
+ <a name="l00014"></a>00014 <span class="comment"> * The above copyright notice and this permission notice shall be included in</span>
37
+ <a name="l00015"></a>00015 <span class="comment"> * all copies or substantial portions of the Software.</span>
38
+ <a name="l00016"></a>00016 <span class="comment"> *</span>
39
+ <a name="l00017"></a>00017 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span>
40
+ <a name="l00018"></a>00018 <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
41
+ <a name="l00019"></a>00019 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span>
42
+ <a name="l00020"></a>00020 <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
43
+ <a name="l00021"></a>00021 <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span>
44
+ <a name="l00022"></a>00022 <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
45
+ <a name="l00023"></a>00023 <span class="comment"> * THE SOFTWARE.</span>
46
+ <a name="l00024"></a>00024 <span class="comment"> */</span>
47
+ <a name="l00025"></a>00025 <span class="preprocessor">#ifndef _PASSENGER_CONSTANTS_H_</span>
48
+ <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_CONSTANTS_H_</span>
49
+ <a name="l00027"></a>00027 <span class="preprocessor"></span>
50
+ <a name="l00028"></a>00028 <span class="comment">/* Don't forget to update lib/phusion_passenger.rb too. */</span>
51
+ <a name="l00029"></a>00029 <span class="preprocessor">#define PASSENGER_VERSION "2.9.1"</span>
52
+ <a name="l00030"></a>00030 <span class="preprocessor"></span>
53
+ <a name="l00031"></a>00031 <span class="preprocessor">#define DEFAULT_LOG_LEVEL 0</span>
54
+ <a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_MAX_POOL_SIZE 6</span>
55
+ <a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_POOL_IDLE_TIME 300</span>
56
+ <a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_MAX_INSTANCES_PER_APP 0</span>
57
+ <a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_WEB_APP_USER "nobody"</span>
58
+ <a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_ANALYTICS_LOG_USER DEFAULT_WEB_APP_USER</span>
59
+ <a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_ANALYTICS_LOG_GROUP ""</span>
60
+ <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_ANALYTICS_LOG_PERMISSIONS "u=rwx,g=rx,o=rx"</span>
61
+ <a name="l00039"></a>00039 <span class="preprocessor"></span>
62
+ <a name="l00040"></a>00040 <span class="preprocessor">#define MESSAGE_SERVER_MAX_PASSWORD_SIZE 100</span>
63
+ <a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_BACKEND_ACCOUNT_RIGHTS Account::DETACH</span>
64
+ <a name="l00042"></a>00042 <span class="preprocessor"></span>
65
+ <a name="l00043"></a>00043 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_CONSTANTS_H */</span>
66
+ </pre></div></div>
67
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:45 2010 for Passenger by&nbsp;
68
+ <a href="http://www.doxygen.org/index.html">
69
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
70
+ </body>
71
+ </html>
@@ -0,0 +1,92 @@
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: ContentHandler.h Source File</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><a href="annotated.html"><span>Classes</span></a></li>
15
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
16
+ </ul>
17
+ </div>
18
+ <div class="tabs">
19
+ <ul>
20
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
21
+ </ul>
22
+ </div>
23
+ <h1>ContentHandler.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
24
+ <a name="l00002"></a>00002 <span class="comment"> * Copyright (C) Igor Sysoev</span>
25
+ <a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2007 Manlio Perillo (manlio.perillo@gmail.com)</span>
26
+ <a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2010 Phusion</span>
27
+ <a name="l00005"></a>00005 <span class="comment"> *</span>
28
+ <a name="l00006"></a>00006 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
29
+ <a name="l00007"></a>00007 <span class="comment"> * modification, are permitted provided that the following conditions</span>
30
+ <a name="l00008"></a>00008 <span class="comment"> * are met:</span>
31
+ <a name="l00009"></a>00009 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
32
+ <a name="l00010"></a>00010 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
33
+ <a name="l00011"></a>00011 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
34
+ <a name="l00012"></a>00012 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
35
+ <a name="l00013"></a>00013 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
36
+ <a name="l00014"></a>00014 <span class="comment"> *</span>
37
+ <a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND</span>
38
+ <a name="l00016"></a>00016 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
39
+ <a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
40
+ <a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE</span>
41
+ <a name="l00019"></a>00019 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
42
+ <a name="l00020"></a>00020 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
43
+ <a name="l00021"></a>00021 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
44
+ <a name="l00022"></a>00022 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
45
+ <a name="l00023"></a>00023 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
46
+ <a name="l00024"></a>00024 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
47
+ <a name="l00025"></a>00025 <span class="comment"> * SUCH DAMAGE.</span>
48
+ <a name="l00026"></a>00026 <span class="comment"> */</span>
49
+ <a name="l00027"></a>00027
50
+ <a name="l00028"></a>00028 <span class="preprocessor">#ifndef _PASSENGER_NGINX_CONTENT_HANDLER_H_</span>
51
+ <a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_NGINX_CONTENT_HANDLER_H_</span>
52
+ <a name="l00030"></a>00030 <span class="preprocessor"></span>
53
+ <a name="l00031"></a>00031 <span class="preprocessor">#include &lt;ngx_core.h&gt;</span>
54
+ <a name="l00032"></a>00032 <span class="preprocessor">#include &lt;ngx_http.h&gt;</span>
55
+ <a name="l00033"></a>00033
56
+ <a name="l00034"></a>00034
57
+ <a name="l00035"></a>00035 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
58
+ <a name="l00036"></a>00036 AP_RAILS,
59
+ <a name="l00037"></a>00037 AP_RACK,
60
+ <a name="l00038"></a>00038 AP_WSGI,
61
+ <a name="l00039"></a>00039 AP_NONE
62
+ <a name="l00040"></a>00040 } passenger_app_type_t;
63
+ <a name="l00041"></a>00041
64
+ <a name="l00042"></a>00042 <span class="keyword">typedef</span> <span class="keyword">struct </span>{<span class="comment"></span>
65
+ <a name="l00043"></a>00043 <span class="comment"> /** Proxy state. */</span>
66
+ <a name="l00044"></a>00044 ngx_uint_t status;
67
+ <a name="l00045"></a>00045 ngx_uint_t status_count;
68
+ <a name="l00046"></a>00046 u_char *status_start;
69
+ <a name="l00047"></a>00047 u_char *status_end;
70
+ <a name="l00048"></a>00048 <span class="comment"></span>
71
+ <a name="l00049"></a>00049 <span class="comment"> /** The backend application's 'public' directory. */</span>
72
+ <a name="l00050"></a>00050 ngx_str_t public_dir;
73
+ <a name="l00051"></a>00051 <span class="comment"></span>
74
+ <a name="l00052"></a>00052 <span class="comment"> /** The application's base URI. Points to an empty string if none. */</span>
75
+ <a name="l00053"></a>00053 ngx_str_t base_uri;
76
+ <a name="l00054"></a>00054 <span class="comment"></span>
77
+ <a name="l00055"></a>00055 <span class="comment"> /** The backend application's type. */</span>
78
+ <a name="l00056"></a>00056 passenger_app_type_t app_type;
79
+ <a name="l00057"></a>00057 } passenger_context_t;
80
+ <a name="l00058"></a>00058
81
+ <a name="l00059"></a>00059
82
+ <a name="l00060"></a>00060 ngx_int_t passenger_content_handler(ngx_http_request_t *r);
83
+ <a name="l00061"></a>00061
84
+ <a name="l00062"></a>00062
85
+ <a name="l00063"></a>00063 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_NGINX_CONTENT_HANDLER_H_ */</span>
86
+ <a name="l00064"></a>00064
87
+ </pre></div></div>
88
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:45 2010 for Passenger by&nbsp;
89
+ <a href="http://www.doxygen.org/index.html">
90
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
91
+ </body>
92
+ </html>
@@ -316,7 +316,7 @@
316
316
  <a name="l00295"></a>00295 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_DIRECTORY_MAPPER_H_ */</span>
317
317
  <a name="l00296"></a>00296
318
318
  </pre></div></div>
319
- <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 8 11:42:56 2010 for Passenger by&nbsp;
319
+ <hr size="1"><address style="text-align: right;"><small>Generated on Mon Feb 22 13:50:37 2010 for Passenger by&nbsp;
320
320
  <a href="http://www.doxygen.org/index.html">
321
321
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
322
322
  </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><a href="annotated.html"><span>Classes</span></a></li>
14
15
  <li class="current"><a href="files.html"><span>Files</span></a></li>
15
16
  </ul>
@@ -21,246 +22,341 @@
21
22
  </div>
22
23
  <h1>Exceptions.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
23
24
  <a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
24
- <a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
25
+ <a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2010 Phusion</span>
25
26
  <a name="l00004"></a>00004 <span class="comment"> *</span>
26
- <a name="l00005"></a>00005 <span class="comment"> * Phusion Passenger is a trademark of Hongli Lai &amp; Ninh Bui.</span>
27
+ <a name="l00005"></a>00005 <span class="comment"> * "Phusion Passenger" is a trademark of Hongli Lai &amp; Ninh Bui.</span>
27
28
  <a name="l00006"></a>00006 <span class="comment"> *</span>
28
- <a name="l00007"></a>00007 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
29
- <a name="l00008"></a>00008 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
30
- <a name="l00009"></a>00009 <span class="comment"> * the Free Software Foundation; version 2 of the License.</span>
31
- <a name="l00010"></a>00010 <span class="comment"> *</span>
32
- <a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
33
- <a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
34
- <a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
35
- <a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
36
- <a name="l00015"></a>00015 <span class="comment"> *</span>
37
- <a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License along</span>
38
- <a name="l00017"></a>00017 <span class="comment"> * with this program; if not, write to the Free Software Foundation, Inc.,</span>
39
- <a name="l00018"></a>00018 <span class="comment"> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span>
40
- <a name="l00019"></a>00019 <span class="comment"> */</span>
41
- <a name="l00020"></a>00020 <span class="preprocessor">#ifndef _PASSENGER_EXCEPTIONS_H_</span>
42
- <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_EXCEPTIONS_H_</span>
43
- <a name="l00022"></a>00022 <span class="preprocessor"></span>
44
- <a name="l00023"></a>00023 <span class="preprocessor">#include &lt;oxt/tracable_exception.hpp&gt;</span>
45
- <a name="l00024"></a>00024 <span class="preprocessor">#include &lt;string&gt;</span>
46
- <a name="l00025"></a>00025 <span class="preprocessor">#include &lt;sstream&gt;</span>
47
- <a name="l00026"></a>00026 <span class="preprocessor">#include &lt;cstring&gt;</span>
48
- <a name="l00027"></a>00027 <span class="comment"></span>
49
- <a name="l00028"></a>00028 <span class="comment">/**</span>
50
- <a name="l00029"></a>00029 <span class="comment"> * @defgroup Exceptions Exceptions</span>
51
- <a name="l00030"></a>00030 <span class="comment"> */</span>
52
- <a name="l00031"></a>00031
53
- <a name="l00032"></a>00032 <span class="keyword">namespace </span>Passenger {
54
- <a name="l00033"></a>00033
55
- <a name="l00034"></a>00034 <span class="keyword">using namespace </span>std;
56
- <a name="l00035"></a>00035 <span class="comment"></span>
57
- <a name="l00036"></a>00036 <span class="comment">/**</span>
58
- <a name="l00037"></a>00037 <span class="comment"> * Represents an error returned by a system call or a standard library call.</span>
59
- <a name="l00038"></a>00038 <span class="comment"> *</span>
60
- <a name="l00039"></a>00039 <span class="comment"> * Use the code() method to find out the value of &lt;tt&gt;errno&lt;/tt&gt; at the time</span>
61
- <a name="l00040"></a>00040 <span class="comment"> * the error occured.</span>
62
- <a name="l00041"></a>00041 <span class="comment"> *</span>
63
- <a name="l00042"></a>00042 <span class="comment"> * @ingroup Exceptions</span>
64
- <a name="l00043"></a>00043 <span class="comment"> */</span>
65
- <a name="l00044"></a><a class="code" href="classPassenger_1_1SystemException.html">00044</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a>: <span class="keyword">public</span> oxt::tracable_exception {
66
- <a name="l00045"></a>00045 <span class="keyword">private</span>:
67
- <a name="l00046"></a>00046 <span class="keywordtype">string</span> briefMessage;
68
- <a name="l00047"></a>00047 <span class="keywordtype">string</span> systemMessage;
69
- <a name="l00048"></a>00048 <span class="keywordtype">string</span> fullMessage;
70
- <a name="l00049"></a>00049 <span class="keywordtype">int</span> m_code;
71
- <a name="l00050"></a>00050 <span class="keyword">public</span>:<span class="comment"></span>
72
- <a name="l00051"></a>00051 <span class="comment"> /**</span>
73
- <a name="l00052"></a>00052 <span class="comment"> * Create a new SystemException.</span>
74
- <a name="l00053"></a>00053 <span class="comment"> *</span>
75
- <a name="l00054"></a>00054 <span class="comment"> * @param briefMessage A brief message describing the error.</span>
76
- <a name="l00055"></a>00055 <span class="comment"> * @param errorCode The error code, i.e. the value of errno right after the error occured.</span>
77
- <a name="l00056"></a>00056 <span class="comment"> * @note A system description of the error will be appended to the given message.</span>
78
- <a name="l00057"></a>00057 <span class="comment"> * For example, if &lt;tt&gt;errorCode&lt;/tt&gt; is &lt;tt&gt;EBADF&lt;/tt&gt;, and &lt;tt&gt;briefMessage&lt;/tt&gt;</span>
79
- <a name="l00058"></a>00058 <span class="comment"> * is &lt;em&gt;"Something happened"&lt;/em&gt;, then what() will return &lt;em&gt;"Something happened: Bad</span>
80
- <a name="l00059"></a>00059 <span class="comment"> * file descriptor (10)"&lt;/em&gt; (if 10 is the number for EBADF).</span>
81
- <a name="l00060"></a>00060 <span class="comment"> * @post code() == errorCode</span>
82
- <a name="l00061"></a>00061 <span class="comment"> * @post brief() == briefMessage</span>
83
- <a name="l00062"></a>00062 <span class="comment"> */</span>
84
- <a name="l00063"></a><a class="code" href="classPassenger_1_1SystemException.html#1f0f33c63934ee40c5cd9c338c8aa04b">00063</a> <a class="code" href="classPassenger_1_1SystemException.html#1f0f33c63934ee40c5cd9c338c8aa04b" title="Create a new SystemException.">SystemException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;briefMessage, <span class="keywordtype">int</span> errorCode) {
85
- <a name="l00064"></a>00064 stringstream str;
86
- <a name="l00065"></a>00065
87
- <a name="l00066"></a>00066 str &lt;&lt; strerror(errorCode) &lt;&lt; <span class="stringliteral">" ("</span> &lt;&lt; errorCode &lt;&lt; <span class="stringliteral">")"</span>;
88
- <a name="l00067"></a>00067 systemMessage = str.str();
89
- <a name="l00068"></a>00068
90
- <a name="l00069"></a>00069 setBriefMessage(briefMessage);
91
- <a name="l00070"></a>00070 m_code = errorCode;
92
- <a name="l00071"></a>00071 }
93
- <a name="l00072"></a>00072
94
- <a name="l00073"></a>00073 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a>() throw() {}
95
- <a name="l00074"></a>00074
96
- <a name="l00075"></a>00075 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> throw() {
97
- <a name="l00076"></a>00076 <span class="keywordflow">return</span> fullMessage.c_str();
98
- <a name="l00077"></a>00077 }
99
- <a name="l00078"></a>00078
100
- <a name="l00079"></a>00079 <span class="keywordtype">void</span> setBriefMessage(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message) {
101
- <a name="l00080"></a>00080 briefMessage = message;
102
- <a name="l00081"></a>00081 fullMessage = briefMessage + <span class="stringliteral">": "</span> + systemMessage;
29
+ <a name="l00007"></a>00007 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span>
30
+ <a name="l00008"></a>00008 <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span>
31
+ <a name="l00009"></a>00009 <span class="comment"> * in the Software without restriction, including without limitation the rights</span>
32
+ <a name="l00010"></a>00010 <span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span>
33
+ <a name="l00011"></a>00011 <span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span>
34
+ <a name="l00012"></a>00012 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
35
+ <a name="l00013"></a>00013 <span class="comment"> *</span>
36
+ <a name="l00014"></a>00014 <span class="comment"> * The above copyright notice and this permission notice shall be included in</span>
37
+ <a name="l00015"></a>00015 <span class="comment"> * all copies or substantial portions of the Software.</span>
38
+ <a name="l00016"></a>00016 <span class="comment"> *</span>
39
+ <a name="l00017"></a>00017 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span>
40
+ <a name="l00018"></a>00018 <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
41
+ <a name="l00019"></a>00019 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span>
42
+ <a name="l00020"></a>00020 <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
43
+ <a name="l00021"></a>00021 <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span>
44
+ <a name="l00022"></a>00022 <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
45
+ <a name="l00023"></a>00023 <span class="comment"> * THE SOFTWARE.</span>
46
+ <a name="l00024"></a>00024 <span class="comment"> */</span>
47
+ <a name="l00025"></a>00025 <span class="preprocessor">#ifndef _PASSENGER_EXCEPTIONS_H_</span>
48
+ <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_EXCEPTIONS_H_</span>
49
+ <a name="l00027"></a>00027 <span class="preprocessor"></span>
50
+ <a name="l00028"></a>00028 <span class="preprocessor">#include &lt;oxt/tracable_exception.hpp&gt;</span>
51
+ <a name="l00029"></a>00029 <span class="preprocessor">#include &lt;string&gt;</span>
52
+ <a name="l00030"></a>00030 <span class="preprocessor">#include &lt;sstream&gt;</span>
53
+ <a name="l00031"></a>00031 <span class="preprocessor">#include &lt;cstring&gt;</span>
54
+ <a name="l00032"></a>00032 <span class="comment"></span>
55
+ <a name="l00033"></a>00033 <span class="comment">/**</span>
56
+ <a name="l00034"></a>00034 <span class="comment"> * @defgroup Exceptions Exceptions</span>
57
+ <a name="l00035"></a>00035 <span class="comment"> */</span>
58
+ <a name="l00036"></a>00036
59
+ <a name="l00037"></a>00037 <span class="keyword">namespace </span>Passenger {
60
+ <a name="l00038"></a>00038
61
+ <a name="l00039"></a>00039 <span class="keyword">using namespace </span>std;
62
+ <a name="l00040"></a>00040 <span class="comment"></span>
63
+ <a name="l00041"></a>00041 <span class="comment">/**</span>
64
+ <a name="l00042"></a>00042 <span class="comment"> * Represents an error returned by a system call or a standard library call.</span>
65
+ <a name="l00043"></a>00043 <span class="comment"> *</span>
66
+ <a name="l00044"></a>00044 <span class="comment"> * Use the code() method to find out the value of &lt;tt&gt;errno&lt;/tt&gt; at the time</span>
67
+ <a name="l00045"></a>00045 <span class="comment"> * the error occured.</span>
68
+ <a name="l00046"></a>00046 <span class="comment"> *</span>
69
+ <a name="l00047"></a>00047 <span class="comment"> * @ingroup Exceptions</span>
70
+ <a name="l00048"></a>00048 <span class="comment"> */</span>
71
+ <a name="l00049"></a><a class="code" href="classPassenger_1_1SystemException.html">00049</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a>: <span class="keyword">public</span> oxt::tracable_exception {
72
+ <a name="l00050"></a>00050 <span class="keyword">private</span>:
73
+ <a name="l00051"></a>00051 <span class="keywordtype">string</span> briefMessage;
74
+ <a name="l00052"></a>00052 <span class="keywordtype">string</span> systemMessage;
75
+ <a name="l00053"></a>00053 <span class="keywordtype">string</span> fullMessage;
76
+ <a name="l00054"></a>00054 <span class="keywordtype">int</span> m_code;
77
+ <a name="l00055"></a>00055 <span class="keyword">public</span>:<span class="comment"></span>
78
+ <a name="l00056"></a>00056 <span class="comment"> /**</span>
79
+ <a name="l00057"></a>00057 <span class="comment"> * Create a new SystemException.</span>
80
+ <a name="l00058"></a>00058 <span class="comment"> *</span>
81
+ <a name="l00059"></a>00059 <span class="comment"> * @param briefMessage A brief message describing the error.</span>
82
+ <a name="l00060"></a>00060 <span class="comment"> * @param errorCode The error code, i.e. the value of errno right after the error occured.</span>
83
+ <a name="l00061"></a>00061 <span class="comment"> * @note A system description of the error will be appended to the given message.</span>
84
+ <a name="l00062"></a>00062 <span class="comment"> * For example, if &lt;tt&gt;errorCode&lt;/tt&gt; is &lt;tt&gt;EBADF&lt;/tt&gt;, and &lt;tt&gt;briefMessage&lt;/tt&gt;</span>
85
+ <a name="l00063"></a>00063 <span class="comment"> * is &lt;em&gt;"Something happened"&lt;/em&gt;, then what() will return &lt;em&gt;"Something happened: Bad</span>
86
+ <a name="l00064"></a>00064 <span class="comment"> * file descriptor (10)"&lt;/em&gt; (if 10 is the number for EBADF).</span>
87
+ <a name="l00065"></a>00065 <span class="comment"> * @post code() == errorCode</span>
88
+ <a name="l00066"></a>00066 <span class="comment"> * @post brief() == briefMessage</span>
89
+ <a name="l00067"></a>00067 <span class="comment"> */</span>
90
+ <a name="l00068"></a><a class="code" href="classPassenger_1_1SystemException.html#1f0f33c63934ee40c5cd9c338c8aa04b">00068</a> <a class="code" href="classPassenger_1_1SystemException.html#1f0f33c63934ee40c5cd9c338c8aa04b" title="Create a new SystemException.">SystemException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;briefMessage, <span class="keywordtype">int</span> errorCode) {
91
+ <a name="l00069"></a>00069 stringstream str;
92
+ <a name="l00070"></a>00070
93
+ <a name="l00071"></a>00071 str &lt;&lt; strerror(errorCode) &lt;&lt; <span class="stringliteral">" ("</span> &lt;&lt; errorCode &lt;&lt; <span class="stringliteral">")"</span>;
94
+ <a name="l00072"></a>00072 systemMessage = str.str();
95
+ <a name="l00073"></a>00073
96
+ <a name="l00074"></a>00074 setBriefMessage(briefMessage);
97
+ <a name="l00075"></a>00075 m_code = errorCode;
98
+ <a name="l00076"></a>00076 }
99
+ <a name="l00077"></a>00077
100
+ <a name="l00078"></a>00078 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a>() throw() {}
101
+ <a name="l00079"></a>00079
102
+ <a name="l00080"></a>00080 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> throw() {
103
+ <a name="l00081"></a>00081 <span class="keywordflow">return</span> fullMessage.c_str();
103
104
  <a name="l00082"></a>00082 }
104
- <a name="l00083"></a>00083 <span class="comment"></span>
105
- <a name="l00084"></a>00084 <span class="comment"> /**</span>
106
- <a name="l00085"></a>00085 <span class="comment"> * The value of &lt;tt&gt;errno&lt;/tt&gt; at the time the error occured.</span>
107
- <a name="l00086"></a>00086 <span class="comment"> */</span>
108
- <a name="l00087"></a><a class="code" href="classPassenger_1_1SystemException.html#ee7a6672bf79b72a4c3ee70c57d6a47c">00087</a> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1SystemException.html#ee7a6672bf79b72a4c3ee70c57d6a47c" title="The value of errno at the time the error occured.">code</a>() <span class="keyword">const</span> throw() {
109
- <a name="l00088"></a>00088 <span class="keywordflow">return</span> m_code;
110
- <a name="l00089"></a>00089 }
111
- <a name="l00090"></a>00090 <span class="comment"></span>
112
- <a name="l00091"></a>00091 <span class="comment"> /**</span>
113
- <a name="l00092"></a>00092 <span class="comment"> * Returns a brief version of the exception message. This message does</span>
114
- <a name="l00093"></a>00093 <span class="comment"> * not include the system error description, and is equivalent to the</span>
115
- <a name="l00094"></a>00094 <span class="comment"> * value of the &lt;tt&gt;message&lt;/tt&gt; parameter as passed to the constructor.</span>
116
- <a name="l00095"></a>00095 <span class="comment"> */</span>
117
- <a name="l00096"></a><a class="code" href="classPassenger_1_1SystemException.html#84fa2ab4f5b7b96704734fcdfdaa0269">00096</a> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1SystemException.html#84fa2ab4f5b7b96704734fcdfdaa0269" title="Returns a brief version of the exception message.">brief</a>() <span class="keyword">const</span> throw() {
118
- <a name="l00097"></a>00097 <span class="keywordflow">return</span> briefMessage;
119
- <a name="l00098"></a>00098 }
120
- <a name="l00099"></a>00099 <span class="comment"></span>
121
- <a name="l00100"></a>00100 <span class="comment"> /**</span>
122
- <a name="l00101"></a>00101 <span class="comment"> * Returns the system's error message. This message contains both the</span>
123
- <a name="l00102"></a>00102 <span class="comment"> * content of &lt;tt&gt;strerror(errno)&lt;/tt&gt; and the errno number itself.</span>
124
- <a name="l00103"></a>00103 <span class="comment"> */</span>
125
- <a name="l00104"></a><a class="code" href="classPassenger_1_1SystemException.html#0ef41d755fea2c9b1db2252e7c418dc8">00104</a> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1SystemException.html#0ef41d755fea2c9b1db2252e7c418dc8" title="Returns the system&amp;#39;s error message.">sys</a>() <span class="keyword">const</span> throw() {
126
- <a name="l00105"></a>00105 <span class="keywordflow">return</span> systemMessage;
127
- <a name="l00106"></a>00106 }
128
- <a name="l00107"></a>00107 };
129
- <a name="l00108"></a>00108 <span class="comment"></span>
130
- <a name="l00109"></a>00109 <span class="comment">/**</span>
131
- <a name="l00110"></a>00110 <span class="comment"> * A filesystem error, as returned by the operating system. This may include,</span>
132
- <a name="l00111"></a>00111 <span class="comment"> * for example, permission errors.</span>
133
- <a name="l00112"></a>00112 <span class="comment"> *</span>
134
- <a name="l00113"></a>00113 <span class="comment"> * @ingroup Exceptions</span>
135
- <a name="l00114"></a>00114 <span class="comment"> */</span>
136
- <a name="l00115"></a><a class="code" href="classPassenger_1_1FileSystemException.html">00115</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system.">FileSystemException</a>: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a> {
137
- <a name="l00116"></a>00116 <span class="keyword">private</span>:
138
- <a name="l00117"></a>00117 <span class="keywordtype">string</span> m_filename;
139
- <a name="l00118"></a>00118 <span class="keyword">public</span>:
140
- <a name="l00119"></a>00119 <a class="code" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system.">FileSystemException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message, <span class="keywordtype">int</span> errorCode,
141
- <a name="l00120"></a>00120 <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;<a class="code" href="classPassenger_1_1FileSystemException.html#7eef8fefd84a07efa9fe3a76129a4386" title="The filename that&amp;#39;s associated to the error.">filename</a>)
142
- <a name="l00121"></a>00121 : <a class="code" href="classPassenger_1_1SystemException.html#1f0f33c63934ee40c5cd9c338c8aa04b" title="Create a new SystemException.">SystemException</a>(message, errorCode),
143
- <a name="l00122"></a>00122 m_filename(filename) {}
144
- <a name="l00123"></a>00123
145
- <a name="l00124"></a>00124 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system.">FileSystemException</a>() <span class="keywordflow">throw</span>() {}
146
- <a name="l00125"></a>00125 <span class="comment"></span>
147
- <a name="l00126"></a>00126 <span class="comment"> /**</span>
148
- <a name="l00127"></a>00127 <span class="comment"> * The filename that's associated to the error.</span>
149
- <a name="l00128"></a>00128 <span class="comment"> */</span>
150
- <a name="l00129"></a><a class="code" href="classPassenger_1_1FileSystemException.html#7eef8fefd84a07efa9fe3a76129a4386">00129</a> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1FileSystemException.html#7eef8fefd84a07efa9fe3a76129a4386" title="The filename that&amp;#39;s associated to the error.">filename</a>() <span class="keyword">const</span> throw() {
151
- <a name="l00130"></a>00130 <span class="keywordflow">return</span> m_filename;
152
- <a name="l00131"></a>00131 }
153
- <a name="l00132"></a>00132 };
154
- <a name="l00133"></a>00133 <span class="comment"></span>
155
- <a name="l00134"></a>00134 <span class="comment">/**</span>
156
- <a name="l00135"></a>00135 <span class="comment"> * Represents an error that occured during an I/O operation.</span>
157
- <a name="l00136"></a>00136 <span class="comment"> *</span>
158
- <a name="l00137"></a>00137 <span class="comment"> * @ingroup Exceptions</span>
159
- <a name="l00138"></a>00138 <span class="comment"> */</span>
160
- <a name="l00139"></a><a class="code" href="classPassenger_1_1IOException.html">00139</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>: <span class="keyword">public</span> oxt::tracable_exception {
161
- <a name="l00140"></a>00140 <span class="keyword">private</span>:
162
- <a name="l00141"></a>00141 <span class="keywordtype">string</span> msg;
163
- <a name="l00142"></a>00142 <span class="keyword">public</span>:
164
- <a name="l00143"></a>00143 <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
165
- <a name="l00144"></a>00144 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>() <span class="keywordflow">throw</span>() {}
166
- <a name="l00145"></a>00145 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
167
- <a name="l00146"></a>00146 };
168
- <a name="l00147"></a>00147 <span class="comment"></span>
169
- <a name="l00148"></a>00148 <span class="comment">/**</span>
170
- <a name="l00149"></a>00149 <span class="comment"> * Thrown when a certain file cannot be found.</span>
171
- <a name="l00150"></a>00150 <span class="comment"> */</span>
172
- <a name="l00151"></a><a class="code" href="classPassenger_1_1FileNotFoundException.html">00151</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1FileNotFoundException.html" title="Thrown when a certain file cannot be found.">FileNotFoundException</a>: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a> {
173
- <a name="l00152"></a>00152 <span class="keyword">public</span>:
174
- <a name="l00153"></a>00153 <a class="code" href="classPassenger_1_1FileNotFoundException.html" title="Thrown when a certain file cannot be found.">FileNotFoundException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(message) {}
175
- <a name="l00154"></a>00154 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1FileNotFoundException.html" title="Thrown when a certain file cannot be found.">FileNotFoundException</a>() <span class="keywordflow">throw</span>() {}
176
- <a name="l00155"></a>00155 };
177
- <a name="l00156"></a>00156 <span class="comment"></span>
178
- <a name="l00157"></a>00157 <span class="comment">/**</span>
179
- <a name="l00158"></a>00158 <span class="comment"> * Thrown when an invalid configuration is given.</span>
180
- <a name="l00159"></a>00159 <span class="comment"> */</span>
181
- <a name="l00160"></a><a class="code" href="classPassenger_1_1ConfigurationException.html">00160</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1ConfigurationException.html" title="Thrown when an invalid configuration is given.">ConfigurationException</a>: <span class="keyword">public</span> oxt::tracable_exception {
182
- <a name="l00161"></a>00161 <span class="keyword">private</span>:
183
- <a name="l00162"></a>00162 <span class="keywordtype">string</span> msg;
184
- <a name="l00163"></a>00163 <span class="keyword">public</span>:
185
- <a name="l00164"></a>00164 <a class="code" href="classPassenger_1_1ConfigurationException.html" title="Thrown when an invalid configuration is given.">ConfigurationException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
186
- <a name="l00165"></a>00165 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1ConfigurationException.html" title="Thrown when an invalid configuration is given.">ConfigurationException</a>() <span class="keywordflow">throw</span>() {}
187
- <a name="l00166"></a>00166 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
188
- <a name="l00167"></a>00167 };
189
- <a name="l00168"></a>00168 <span class="comment"></span>
190
- <a name="l00169"></a>00169 <span class="comment">/**</span>
191
- <a name="l00170"></a>00170 <span class="comment"> * Thrown when SpawnManager or ApplicationPool fails to spawn an application</span>
192
- <a name="l00171"></a>00171 <span class="comment"> * instance. The exception may contain an error page, which is a user-friendly</span>
193
- <a name="l00172"></a>00172 <span class="comment"> * HTML page with details about the error.</span>
194
- <a name="l00173"></a>00173 <span class="comment"> */</span>
195
- <a name="l00174"></a><a class="code" href="classPassenger_1_1SpawnException.html">00174</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>: <span class="keyword">public</span> oxt::tracable_exception {
196
- <a name="l00175"></a>00175 <span class="keyword">private</span>:
197
- <a name="l00176"></a>00176 <span class="keywordtype">string</span> msg;
198
- <a name="l00177"></a>00177 <span class="keywordtype">bool</span> m_hasErrorPage;
199
- <a name="l00178"></a>00178 <span class="keywordtype">string</span> m_errorPage;
200
- <a name="l00179"></a>00179 <span class="keyword">public</span>:
201
- <a name="l00180"></a>00180 <a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message)
202
- <a name="l00181"></a>00181 : msg(message) {
203
- <a name="l00182"></a>00182 m_hasErrorPage = <span class="keyword">false</span>;
204
- <a name="l00183"></a>00183 }
205
- <a name="l00184"></a>00184
206
- <a name="l00185"></a>00185 <a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message, <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;errorPage)
207
- <a name="l00186"></a>00186 : msg(message), m_errorPage(errorPage) {
208
- <a name="l00187"></a>00187 m_hasErrorPage = <span class="keyword">true</span>;
209
- <a name="l00188"></a>00188 }
210
- <a name="l00189"></a>00189
211
- <a name="l00190"></a>00190 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>() <span class="keywordflow">throw</span>() {}
212
- <a name="l00191"></a>00191 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
213
- <a name="l00192"></a>00192 <span class="comment"></span>
214
- <a name="l00193"></a>00193 <span class="comment"> /**</span>
215
- <a name="l00194"></a>00194 <span class="comment"> * Check whether an error page is available.</span>
216
- <a name="l00195"></a>00195 <span class="comment"> */</span>
217
- <a name="l00196"></a><a class="code" href="classPassenger_1_1SpawnException.html#e65dc272e183fd9e5637a4091cc6bbf4">00196</a> <span class="keywordtype">bool</span> <a class="code" href="classPassenger_1_1SpawnException.html#e65dc272e183fd9e5637a4091cc6bbf4" title="Check whether an error page is available.">hasErrorPage</a>()<span class="keyword"> const </span>{
218
- <a name="l00197"></a>00197 <span class="keywordflow">return</span> m_hasErrorPage;
219
- <a name="l00198"></a>00198 }
220
- <a name="l00199"></a>00199 <span class="comment"></span>
221
- <a name="l00200"></a>00200 <span class="comment"> /**</span>
222
- <a name="l00201"></a>00201 <span class="comment"> * Return the error page content.</span>
223
- <a name="l00202"></a>00202 <span class="comment"> *</span>
224
- <a name="l00203"></a>00203 <span class="comment"> * @pre hasErrorPage()</span>
225
- <a name="l00204"></a>00204 <span class="comment"> */</span>
226
- <a name="l00205"></a><a class="code" href="classPassenger_1_1SpawnException.html#6f675a37edd7070875d0744e7dd010a1">00205</a> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1SpawnException.html#6f675a37edd7070875d0744e7dd010a1" title="Return the error page content.">getErrorPage</a>()<span class="keyword"> const </span>{
227
- <a name="l00206"></a>00206 <span class="keywordflow">return</span> m_errorPage;
228
- <a name="l00207"></a>00207 }
229
- <a name="l00208"></a>00208 };
230
- <a name="l00209"></a>00209 <span class="comment"></span>
231
- <a name="l00210"></a>00210 <span class="comment">/**</span>
232
- <a name="l00211"></a>00211 <span class="comment"> * A generic runtime exception.</span>
233
- <a name="l00212"></a>00212 <span class="comment"> *</span>
234
- <a name="l00213"></a>00213 <span class="comment"> * @ingroup Exceptions</span>
235
- <a name="l00214"></a>00214 <span class="comment"> */</span>
236
- <a name="l00215"></a><a class="code" href="classPassenger_1_1RuntimeException.html">00215</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1RuntimeException.html" title="A generic runtime exception.">RuntimeException</a>: <span class="keyword">public</span> oxt::tracable_exception {
237
- <a name="l00216"></a>00216 <span class="keyword">private</span>:
238
- <a name="l00217"></a>00217 <span class="keywordtype">string</span> msg;
239
- <a name="l00218"></a>00218 <span class="keyword">public</span>:
240
- <a name="l00219"></a>00219 <a class="code" href="classPassenger_1_1RuntimeException.html" title="A generic runtime exception.">RuntimeException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
241
- <a name="l00220"></a>00220 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1RuntimeException.html" title="A generic runtime exception.">RuntimeException</a>() <span class="keywordflow">throw</span>() {}
242
- <a name="l00221"></a>00221 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
243
- <a name="l00222"></a>00222 };
244
- <a name="l00223"></a>00223 <span class="comment"></span>
245
- <a name="l00224"></a>00224 <span class="comment">/**</span>
246
- <a name="l00225"></a>00225 <span class="comment"> * The application pool is too busy and cannot fulfill a get() request.</span>
247
- <a name="l00226"></a>00226 <span class="comment"> *</span>
248
- <a name="l00227"></a>00227 <span class="comment"> * @ingroup Exceptions</span>
249
- <a name="l00228"></a>00228 <span class="comment"> */</span>
250
- <a name="l00229"></a><a class="code" href="classPassenger_1_1BusyException.html">00229</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request.">BusyException</a>: <span class="keyword">public</span> oxt::tracable_exception {
251
- <a name="l00230"></a>00230 <span class="keyword">private</span>:
252
- <a name="l00231"></a>00231 <span class="keywordtype">string</span> msg;
253
- <a name="l00232"></a>00232 <span class="keyword">public</span>:
254
- <a name="l00233"></a>00233 <a class="code" href="classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request.">BusyException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
255
- <a name="l00234"></a>00234 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request.">BusyException</a>() <span class="keywordflow">throw</span>() {}
256
- <a name="l00235"></a>00235 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
257
- <a name="l00236"></a>00236 };
258
- <a name="l00237"></a>00237
259
- <a name="l00238"></a>00238 } <span class="comment">// namespace Passenger</span>
260
- <a name="l00239"></a>00239
261
- <a name="l00240"></a>00240 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_EXCEPTIONS_H_ */</span>
105
+ <a name="l00083"></a>00083
106
+ <a name="l00084"></a>00084 <span class="keywordtype">void</span> setBriefMessage(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message) {
107
+ <a name="l00085"></a>00085 briefMessage = message;
108
+ <a name="l00086"></a>00086 fullMessage = briefMessage + <span class="stringliteral">": "</span> + systemMessage;
109
+ <a name="l00087"></a>00087 }
110
+ <a name="l00088"></a>00088 <span class="comment"></span>
111
+ <a name="l00089"></a>00089 <span class="comment"> /**</span>
112
+ <a name="l00090"></a>00090 <span class="comment"> * The value of &lt;tt&gt;errno&lt;/tt&gt; at the time the error occured.</span>
113
+ <a name="l00091"></a>00091 <span class="comment"> */</span>
114
+ <a name="l00092"></a><a class="code" href="classPassenger_1_1SystemException.html#ee7a6672bf79b72a4c3ee70c57d6a47c">00092</a> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1SystemException.html#ee7a6672bf79b72a4c3ee70c57d6a47c" title="The value of errno at the time the error occured.">code</a>() <span class="keyword">const</span> throw() {
115
+ <a name="l00093"></a>00093 <span class="keywordflow">return</span> m_code;
116
+ <a name="l00094"></a>00094 }
117
+ <a name="l00095"></a>00095 <span class="comment"></span>
118
+ <a name="l00096"></a>00096 <span class="comment"> /**</span>
119
+ <a name="l00097"></a>00097 <span class="comment"> * Returns a brief version of the exception message. This message does</span>
120
+ <a name="l00098"></a>00098 <span class="comment"> * not include the system error description, and is equivalent to the</span>
121
+ <a name="l00099"></a>00099 <span class="comment"> * value of the &lt;tt&gt;message&lt;/tt&gt; parameter as passed to the constructor.</span>
122
+ <a name="l00100"></a>00100 <span class="comment"> */</span>
123
+ <a name="l00101"></a><a class="code" href="classPassenger_1_1SystemException.html#84fa2ab4f5b7b96704734fcdfdaa0269">00101</a> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1SystemException.html#84fa2ab4f5b7b96704734fcdfdaa0269" title="Returns a brief version of the exception message.">brief</a>() <span class="keyword">const</span> throw() {
124
+ <a name="l00102"></a>00102 <span class="keywordflow">return</span> briefMessage;
125
+ <a name="l00103"></a>00103 }
126
+ <a name="l00104"></a>00104 <span class="comment"></span>
127
+ <a name="l00105"></a>00105 <span class="comment"> /**</span>
128
+ <a name="l00106"></a>00106 <span class="comment"> * Returns the system's error message. This message contains both the</span>
129
+ <a name="l00107"></a>00107 <span class="comment"> * content of &lt;tt&gt;strerror(errno)&lt;/tt&gt; and the errno number itself.</span>
130
+ <a name="l00108"></a>00108 <span class="comment"> */</span>
131
+ <a name="l00109"></a><a class="code" href="classPassenger_1_1SystemException.html#0ef41d755fea2c9b1db2252e7c418dc8">00109</a> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1SystemException.html#0ef41d755fea2c9b1db2252e7c418dc8" title="Returns the system&amp;#39;s error message.">sys</a>() <span class="keyword">const</span> throw() {
132
+ <a name="l00110"></a>00110 <span class="keywordflow">return</span> systemMessage;
133
+ <a name="l00111"></a>00111 }
134
+ <a name="l00112"></a>00112 };
135
+ <a name="l00113"></a>00113 <span class="comment"></span>
136
+ <a name="l00114"></a>00114 <span class="comment">/**</span>
137
+ <a name="l00115"></a>00115 <span class="comment"> * A filesystem error, as returned by the operating system. This may include,</span>
138
+ <a name="l00116"></a>00116 <span class="comment"> * for example, permission errors.</span>
139
+ <a name="l00117"></a>00117 <span class="comment"> *</span>
140
+ <a name="l00118"></a>00118 <span class="comment"> * @ingroup Exceptions</span>
141
+ <a name="l00119"></a>00119 <span class="comment"> */</span>
142
+ <a name="l00120"></a><a class="code" href="classPassenger_1_1FileSystemException.html">00120</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system.">FileSystemException</a>: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a> {
143
+ <a name="l00121"></a>00121 <span class="keyword">private</span>:
144
+ <a name="l00122"></a>00122 <span class="keywordtype">string</span> m_filename;
145
+ <a name="l00123"></a>00123 <span class="keyword">public</span>:
146
+ <a name="l00124"></a>00124 <a class="code" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system.">FileSystemException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message, <span class="keywordtype">int</span> errorCode,
147
+ <a name="l00125"></a>00125 <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;<a class="code" href="classPassenger_1_1FileSystemException.html#7eef8fefd84a07efa9fe3a76129a4386" title="The filename that&amp;#39;s associated to the error.">filename</a>)
148
+ <a name="l00126"></a>00126 : <a class="code" href="classPassenger_1_1SystemException.html#1f0f33c63934ee40c5cd9c338c8aa04b" title="Create a new SystemException.">SystemException</a>(message, errorCode),
149
+ <a name="l00127"></a>00127 m_filename(filename) {}
150
+ <a name="l00128"></a>00128
151
+ <a name="l00129"></a>00129 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system.">FileSystemException</a>() <span class="keywordflow">throw</span>() {}
152
+ <a name="l00130"></a>00130 <span class="comment"></span>
153
+ <a name="l00131"></a>00131 <span class="comment"> /**</span>
154
+ <a name="l00132"></a>00132 <span class="comment"> * The filename that's associated to the error.</span>
155
+ <a name="l00133"></a>00133 <span class="comment"> */</span>
156
+ <a name="l00134"></a><a class="code" href="classPassenger_1_1FileSystemException.html#7eef8fefd84a07efa9fe3a76129a4386">00134</a> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1FileSystemException.html#7eef8fefd84a07efa9fe3a76129a4386" title="The filename that&amp;#39;s associated to the error.">filename</a>() <span class="keyword">const</span> throw() {
157
+ <a name="l00135"></a>00135 <span class="keywordflow">return</span> m_filename;
158
+ <a name="l00136"></a>00136 }
159
+ <a name="l00137"></a>00137 };
160
+ <a name="l00138"></a>00138 <span class="comment"></span>
161
+ <a name="l00139"></a>00139 <span class="comment">/**</span>
162
+ <a name="l00140"></a>00140 <span class="comment"> * Unable to retrieve the system time using &lt;tt&gt;time()&lt;/tt&gt;.</span>
163
+ <a name="l00141"></a>00141 <span class="comment"> *</span>
164
+ <a name="l00142"></a>00142 <span class="comment"> * @ingroup Exceptions</span>
165
+ <a name="l00143"></a>00143 <span class="comment"> */</span>
166
+ <a name="l00144"></a><a class="code" href="classPassenger_1_1TimeRetrievalException.html">00144</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1TimeRetrievalException.html" title="Unable to retrieve the system time using time().">TimeRetrievalException</a>: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a> {
167
+ <a name="l00145"></a>00145 <span class="keyword">public</span>:
168
+ <a name="l00146"></a>00146 <a class="code" href="classPassenger_1_1TimeRetrievalException.html" title="Unable to retrieve the system time using time().">TimeRetrievalException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message, <span class="keywordtype">int</span> errorCode)
169
+ <a name="l00147"></a>00147 : <a class="code" href="classPassenger_1_1SystemException.html#1f0f33c63934ee40c5cd9c338c8aa04b" title="Create a new SystemException.">SystemException</a>(message, errorCode)
170
+ <a name="l00148"></a>00148 {}
171
+ <a name="l00149"></a>00149 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1TimeRetrievalException.html" title="Unable to retrieve the system time using time().">TimeRetrievalException</a>() <span class="keywordflow">throw</span>() {}
172
+ <a name="l00150"></a>00150 };
173
+ <a name="l00151"></a>00151 <span class="comment"></span>
174
+ <a name="l00152"></a>00152 <span class="comment">/**</span>
175
+ <a name="l00153"></a>00153 <span class="comment"> * Represents an error that occured during an I/O operation.</span>
176
+ <a name="l00154"></a>00154 <span class="comment"> *</span>
177
+ <a name="l00155"></a>00155 <span class="comment"> * @ingroup Exceptions</span>
178
+ <a name="l00156"></a>00156 <span class="comment"> */</span>
179
+ <a name="l00157"></a><a class="code" href="classPassenger_1_1IOException.html">00157</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>: <span class="keyword">public</span> oxt::tracable_exception {
180
+ <a name="l00158"></a>00158 <span class="keyword">private</span>:
181
+ <a name="l00159"></a>00159 <span class="keywordtype">string</span> msg;
182
+ <a name="l00160"></a>00160 <span class="keyword">public</span>:
183
+ <a name="l00161"></a>00161 <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
184
+ <a name="l00162"></a>00162 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>() <span class="keywordflow">throw</span>() {}
185
+ <a name="l00163"></a>00163 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
186
+ <a name="l00164"></a>00164 };
187
+ <a name="l00165"></a>00165 <span class="comment"></span>
188
+ <a name="l00166"></a>00166 <span class="comment">/**</span>
189
+ <a name="l00167"></a>00167 <span class="comment"> * Thrown when a certain file cannot be found.</span>
190
+ <a name="l00168"></a>00168 <span class="comment"> */</span>
191
+ <a name="l00169"></a><a class="code" href="classPassenger_1_1FileNotFoundException.html">00169</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1FileNotFoundException.html" title="Thrown when a certain file cannot be found.">FileNotFoundException</a>: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a> {
192
+ <a name="l00170"></a>00170 <span class="keyword">public</span>:
193
+ <a name="l00171"></a>00171 <a class="code" href="classPassenger_1_1FileNotFoundException.html" title="Thrown when a certain file cannot be found.">FileNotFoundException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(message) {}
194
+ <a name="l00172"></a>00172 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1FileNotFoundException.html" title="Thrown when a certain file cannot be found.">FileNotFoundException</a>() <span class="keywordflow">throw</span>() {}
195
+ <a name="l00173"></a>00173 };
196
+ <a name="l00174"></a>00174 <span class="comment"></span>
197
+ <a name="l00175"></a>00175 <span class="comment">/**</span>
198
+ <a name="l00176"></a>00176 <span class="comment"> * An unexpected end-of-file I/O error.</span>
199
+ <a name="l00177"></a>00177 <span class="comment"> *</span>
200
+ <a name="l00178"></a>00178 <span class="comment"> * @ingroup Exceptions</span>
201
+ <a name="l00179"></a>00179 <span class="comment"> */</span>
202
+ <a name="l00180"></a><a class="code" href="classPassenger_1_1EOFException.html">00180</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1EOFException.html" title="An unexpected end-of-file I/O error.">EOFException</a>: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a> {
203
+ <a name="l00181"></a>00181 <span class="keyword">public</span>:
204
+ <a name="l00182"></a>00182 <a class="code" href="classPassenger_1_1EOFException.html" title="An unexpected end-of-file I/O error.">EOFException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(message) {}
205
+ <a name="l00183"></a>00183 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1EOFException.html" title="An unexpected end-of-file I/O error.">EOFException</a>() <span class="keywordflow">throw</span>() {}
206
+ <a name="l00184"></a>00184 };
207
+ <a name="l00185"></a>00185 <span class="comment"></span>
208
+ <a name="l00186"></a>00186 <span class="comment">/**</span>
209
+ <a name="l00187"></a>00187 <span class="comment"> * Thrown when an invalid configuration is given.</span>
210
+ <a name="l00188"></a>00188 <span class="comment"> */</span>
211
+ <a name="l00189"></a><a class="code" href="classPassenger_1_1ConfigurationException.html">00189</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1ConfigurationException.html" title="Thrown when an invalid configuration is given.">ConfigurationException</a>: <span class="keyword">public</span> oxt::tracable_exception {
212
+ <a name="l00190"></a>00190 <span class="keyword">private</span>:
213
+ <a name="l00191"></a>00191 <span class="keywordtype">string</span> msg;
214
+ <a name="l00192"></a>00192 <span class="keyword">public</span>:
215
+ <a name="l00193"></a>00193 <a class="code" href="classPassenger_1_1ConfigurationException.html" title="Thrown when an invalid configuration is given.">ConfigurationException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
216
+ <a name="l00194"></a>00194 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1ConfigurationException.html" title="Thrown when an invalid configuration is given.">ConfigurationException</a>() <span class="keywordflow">throw</span>() {}
217
+ <a name="l00195"></a>00195 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
218
+ <a name="l00196"></a>00196 };
219
+ <a name="l00197"></a>00197 <span class="comment"></span>
220
+ <a name="l00198"></a>00198 <span class="comment">/**</span>
221
+ <a name="l00199"></a>00199 <span class="comment"> * Thrown when SpawnManager or ApplicationPool fails to spawn an application</span>
222
+ <a name="l00200"></a>00200 <span class="comment"> * instance. The exception may contain an error page, which is a user-friendly</span>
223
+ <a name="l00201"></a>00201 <span class="comment"> * HTML page with details about the error.</span>
224
+ <a name="l00202"></a>00202 <span class="comment"> */</span>
225
+ <a name="l00203"></a><a class="code" href="classPassenger_1_1SpawnException.html">00203</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>: <span class="keyword">public</span> oxt::tracable_exception {
226
+ <a name="l00204"></a>00204 <span class="keyword">private</span>:
227
+ <a name="l00205"></a>00205 <span class="keywordtype">string</span> msg;
228
+ <a name="l00206"></a>00206 <span class="keywordtype">bool</span> m_hasErrorPage;
229
+ <a name="l00207"></a>00207 <span class="keywordtype">string</span> m_errorPage;
230
+ <a name="l00208"></a>00208 <span class="keyword">public</span>:
231
+ <a name="l00209"></a>00209 <a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message)
232
+ <a name="l00210"></a>00210 : msg(message) {
233
+ <a name="l00211"></a>00211 m_hasErrorPage = <span class="keyword">false</span>;
234
+ <a name="l00212"></a>00212 }
235
+ <a name="l00213"></a>00213
236
+ <a name="l00214"></a>00214 <a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message, <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;errorPage)
237
+ <a name="l00215"></a>00215 : msg(message), m_errorPage(errorPage) {
238
+ <a name="l00216"></a>00216 m_hasErrorPage = <span class="keyword">true</span>;
239
+ <a name="l00217"></a>00217 }
240
+ <a name="l00218"></a>00218
241
+ <a name="l00219"></a>00219 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>() <span class="keywordflow">throw</span>() {}
242
+ <a name="l00220"></a>00220 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
243
+ <a name="l00221"></a>00221 <span class="comment"></span>
244
+ <a name="l00222"></a>00222 <span class="comment"> /**</span>
245
+ <a name="l00223"></a>00223 <span class="comment"> * Check whether an error page is available.</span>
246
+ <a name="l00224"></a>00224 <span class="comment"> */</span>
247
+ <a name="l00225"></a><a class="code" href="classPassenger_1_1SpawnException.html#e65dc272e183fd9e5637a4091cc6bbf4">00225</a> <span class="keywordtype">bool</span> <a class="code" href="classPassenger_1_1SpawnException.html#e65dc272e183fd9e5637a4091cc6bbf4" title="Check whether an error page is available.">hasErrorPage</a>()<span class="keyword"> const </span>{
248
+ <a name="l00226"></a>00226 <span class="keywordflow">return</span> m_hasErrorPage;
249
+ <a name="l00227"></a>00227 }
250
+ <a name="l00228"></a>00228 <span class="comment"></span>
251
+ <a name="l00229"></a>00229 <span class="comment"> /**</span>
252
+ <a name="l00230"></a>00230 <span class="comment"> * Return the error page content.</span>
253
+ <a name="l00231"></a>00231 <span class="comment"> *</span>
254
+ <a name="l00232"></a>00232 <span class="comment"> * @pre hasErrorPage()</span>
255
+ <a name="l00233"></a>00233 <span class="comment"> */</span>
256
+ <a name="l00234"></a><a class="code" href="classPassenger_1_1SpawnException.html#6f675a37edd7070875d0744e7dd010a1">00234</a> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="classPassenger_1_1SpawnException.html#6f675a37edd7070875d0744e7dd010a1" title="Return the error page content.">getErrorPage</a>()<span class="keyword"> const </span>{
257
+ <a name="l00235"></a>00235 <span class="keywordflow">return</span> m_errorPage;
258
+ <a name="l00236"></a>00236 }
259
+ <a name="l00237"></a>00237 };
260
+ <a name="l00238"></a>00238 <span class="comment"></span>
261
+ <a name="l00239"></a>00239 <span class="comment">/**</span>
262
+ <a name="l00240"></a>00240 <span class="comment"> * Indicates that a specified argument is incorrect or violates a requirement.</span>
263
+ <a name="l00241"></a>00241 <span class="comment"> *</span>
264
+ <a name="l00242"></a>00242 <span class="comment"> * @ingroup Exceptions</span>
265
+ <a name="l00243"></a>00243 <span class="comment"> */</span>
266
+ <a name="l00244"></a><a class="code" href="classPassenger_1_1ArgumentException.html">00244</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1ArgumentException.html" title="Indicates that a specified argument is incorrect or violates a requirement.">ArgumentException</a>: <span class="keyword">public</span> oxt::tracable_exception {
267
+ <a name="l00245"></a>00245 <span class="keyword">private</span>:
268
+ <a name="l00246"></a>00246 <span class="keywordtype">string</span> msg;
269
+ <a name="l00247"></a>00247 <span class="keyword">public</span>:
270
+ <a name="l00248"></a>00248 <a class="code" href="classPassenger_1_1ArgumentException.html" title="Indicates that a specified argument is incorrect or violates a requirement.">ArgumentException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
271
+ <a name="l00249"></a>00249 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1ArgumentException.html" title="Indicates that a specified argument is incorrect or violates a requirement.">ArgumentException</a>() <span class="keywordflow">throw</span>() {}
272
+ <a name="l00250"></a>00250 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
273
+ <a name="l00251"></a>00251 };
274
+ <a name="l00252"></a>00252
275
+ <a name="l00253"></a>00253 <span class="comment">/*</span>
276
+ <a name="l00254"></a>00254 <span class="comment"> * @ingroup Exceptions</span>
277
+ <a name="l00255"></a>00255 <span class="comment"> */</span>
278
+ <a name="l00256"></a>00256 <span class="keyword">class </span>InvalidModeStringException: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1ArgumentException.html" title="Indicates that a specified argument is incorrect or violates a requirement.">ArgumentException</a> {
279
+ <a name="l00257"></a>00257 <span class="keyword">public</span>:
280
+ <a name="l00258"></a>00258 InvalidModeStringException(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): <a class="code" href="classPassenger_1_1ArgumentException.html" title="Indicates that a specified argument is incorrect or violates a requirement.">ArgumentException</a>(message) {}
281
+ <a name="l00259"></a>00259 };
282
+ <a name="l00260"></a>00260 <span class="comment"></span>
283
+ <a name="l00261"></a>00261 <span class="comment">/**</span>
284
+ <a name="l00262"></a>00262 <span class="comment"> * A generic runtime exception.</span>
285
+ <a name="l00263"></a>00263 <span class="comment"> *</span>
286
+ <a name="l00264"></a>00264 <span class="comment"> * @ingroup Exceptions</span>
287
+ <a name="l00265"></a>00265 <span class="comment"> */</span>
288
+ <a name="l00266"></a><a class="code" href="classPassenger_1_1RuntimeException.html">00266</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1RuntimeException.html" title="A generic runtime exception.">RuntimeException</a>: <span class="keyword">public</span> oxt::tracable_exception {
289
+ <a name="l00267"></a>00267 <span class="keyword">private</span>:
290
+ <a name="l00268"></a>00268 <span class="keywordtype">string</span> msg;
291
+ <a name="l00269"></a>00269 <span class="keyword">public</span>:
292
+ <a name="l00270"></a>00270 <a class="code" href="classPassenger_1_1RuntimeException.html" title="A generic runtime exception.">RuntimeException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
293
+ <a name="l00271"></a>00271 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1RuntimeException.html" title="A generic runtime exception.">RuntimeException</a>() <span class="keywordflow">throw</span>() {}
294
+ <a name="l00272"></a>00272 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
295
+ <a name="l00273"></a>00273 };
296
+ <a name="l00274"></a>00274 <span class="comment"></span>
297
+ <a name="l00275"></a>00275 <span class="comment">/**</span>
298
+ <a name="l00276"></a>00276 <span class="comment"> * An exception indicating that some timeout expired.</span>
299
+ <a name="l00277"></a>00277 <span class="comment"> *</span>
300
+ <a name="l00278"></a>00278 <span class="comment"> * @ingroup Exceptions</span>
301
+ <a name="l00279"></a>00279 <span class="comment"> */</span>
302
+ <a name="l00280"></a><a class="code" href="classPassenger_1_1TimeoutException.html">00280</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1TimeoutException.html" title="An exception indicating that some timeout expired.">TimeoutException</a>: <span class="keyword">public</span> oxt::tracable_exception {
303
+ <a name="l00281"></a>00281 <span class="keyword">private</span>:
304
+ <a name="l00282"></a>00282 <span class="keywordtype">string</span> msg;
305
+ <a name="l00283"></a>00283 <span class="keyword">public</span>:
306
+ <a name="l00284"></a>00284 <a class="code" href="classPassenger_1_1TimeoutException.html" title="An exception indicating that some timeout expired.">TimeoutException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
307
+ <a name="l00285"></a>00285 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1TimeoutException.html" title="An exception indicating that some timeout expired.">TimeoutException</a>() <span class="keywordflow">throw</span>() {}
308
+ <a name="l00286"></a>00286 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
309
+ <a name="l00287"></a>00287 };
310
+ <a name="l00288"></a>00288 <span class="comment"></span>
311
+ <a name="l00289"></a>00289 <span class="comment">/**</span>
312
+ <a name="l00290"></a>00290 <span class="comment"> * Represents some kind of security error.</span>
313
+ <a name="l00291"></a>00291 <span class="comment"> *</span>
314
+ <a name="l00292"></a>00292 <span class="comment"> * @ingroup Exceptions</span>
315
+ <a name="l00293"></a>00293 <span class="comment"> */</span>
316
+ <a name="l00294"></a><a class="code" href="classPassenger_1_1SecurityException.html">00294</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1SecurityException.html" title="Represents some kind of security error.">SecurityException</a>: <span class="keyword">public</span> oxt::tracable_exception {
317
+ <a name="l00295"></a>00295 <span class="keyword">private</span>:
318
+ <a name="l00296"></a>00296 <span class="keywordtype">string</span> msg;
319
+ <a name="l00297"></a>00297 <span class="keyword">public</span>:
320
+ <a name="l00298"></a>00298 <a class="code" href="classPassenger_1_1SecurityException.html" title="Represents some kind of security error.">SecurityException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
321
+ <a name="l00299"></a>00299 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1SecurityException.html" title="Represents some kind of security error.">SecurityException</a>() <span class="keywordflow">throw</span>() {}
322
+ <a name="l00300"></a>00300 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
323
+ <a name="l00301"></a>00301 };
324
+ <a name="l00302"></a>00302 <span class="comment"></span>
325
+ <a name="l00303"></a>00303 <span class="comment">/**</span>
326
+ <a name="l00304"></a>00304 <span class="comment"> * @ingroup Exceptions</span>
327
+ <a name="l00305"></a>00305 <span class="comment"> */</span>
328
+ <a name="l00306"></a>00306 <span class="keyword">class </span>NonExistentUserException: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1SecurityException.html" title="Represents some kind of security error.">SecurityException</a> {
329
+ <a name="l00307"></a>00307 <span class="keyword">public</span>:
330
+ <a name="l00308"></a>00308 NonExistentUserException(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): <a class="code" href="classPassenger_1_1SecurityException.html" title="Represents some kind of security error.">SecurityException</a>(message) {}
331
+ <a name="l00309"></a>00309 };
332
+ <a name="l00310"></a>00310 <span class="comment"></span>
333
+ <a name="l00311"></a>00311 <span class="comment">/**</span>
334
+ <a name="l00312"></a>00312 <span class="comment"> * @ingroup Exceptions</span>
335
+ <a name="l00313"></a>00313 <span class="comment"> */</span>
336
+ <a name="l00314"></a>00314 <span class="keyword">class </span>NonExistentGroupException: <span class="keyword">public</span> SecurityException {
337
+ <a name="l00315"></a>00315 <span class="keyword">public</span>:
338
+ <a name="l00316"></a>00316 NonExistentGroupException(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): SecurityException(message) {}
339
+ <a name="l00317"></a>00317 };
340
+ <a name="l00318"></a>00318 <span class="comment"></span>
341
+ <a name="l00319"></a>00319 <span class="comment">/**</span>
342
+ <a name="l00320"></a>00320 <span class="comment"> * The application pool is too busy and cannot fulfill a get() request.</span>
343
+ <a name="l00321"></a>00321 <span class="comment"> *</span>
344
+ <a name="l00322"></a>00322 <span class="comment"> * @ingroup Exceptions</span>
345
+ <a name="l00323"></a>00323 <span class="comment"> */</span>
346
+ <a name="l00324"></a><a class="code" href="classPassenger_1_1BusyException.html">00324</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request.">BusyException</a>: <span class="keyword">public</span> oxt::tracable_exception {
347
+ <a name="l00325"></a>00325 <span class="keyword">private</span>:
348
+ <a name="l00326"></a>00326 <span class="keywordtype">string</span> msg;
349
+ <a name="l00327"></a>00327 <span class="keyword">public</span>:
350
+ <a name="l00328"></a>00328 <a class="code" href="classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request.">BusyException</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message): msg(message) {}
351
+ <a name="l00329"></a>00329 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1BusyException.html" title="The application pool is too busy and cannot fulfill a get() request.">BusyException</a>() <span class="keywordflow">throw</span>() {}
352
+ <a name="l00330"></a>00330 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *what() <span class="keyword">const</span> <span class="keywordflow">throw</span>() { <span class="keywordflow">return</span> msg.c_str(); }
353
+ <a name="l00331"></a>00331 };
354
+ <a name="l00332"></a>00332
355
+ <a name="l00333"></a>00333 } <span class="comment">// namespace Passenger</span>
356
+ <a name="l00334"></a>00334
357
+ <a name="l00335"></a>00335 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_EXCEPTIONS_H_ */</span>
262
358
  </pre></div></div>
263
- <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:10 2009 for Passenger by&nbsp;
359
+ <hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 21 12:22:45 2010 for Passenger by&nbsp;
264
360
  <a href="http://www.doxygen.org/index.html">
265
361
  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
266
362
  </body>