passenger 3.0.3 → 3.0.4

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 (621) hide show
  1. data/NEWS +14 -0
  2. data/ext/apache2/Hooks.cpp +2 -2
  3. data/ext/boost/thread/exceptions.hpp +8 -1
  4. data/ext/common/Constants.h +1 -1
  5. data/ext/nginx/Configuration.c +2 -1
  6. data/lib/phusion_passenger.rb +1 -1
  7. metadata +4 -618
  8. data/doc/cxxapi/AbstractSpawnManager_8h-source.html +0 -138
  9. data/doc/cxxapi/AbstractSpawnManager_8h_source.html +0 -141
  10. data/doc/cxxapi/Account_8h-source.html +0 -202
  11. data/doc/cxxapi/Account_8h_source.html +0 -206
  12. data/doc/cxxapi/AccountsDatabase_8h-source.html +0 -158
  13. data/doc/cxxapi/AccountsDatabase_8h_source.html +0 -161
  14. data/doc/cxxapi/AgentBase_8h_source.html +0 -70
  15. data/doc/cxxapi/AgentsStarter_8h-source.html +0 -79
  16. data/doc/cxxapi/AgentsStarter_8h_source.html +0 -112
  17. data/doc/cxxapi/BCrypt_8h-source.html +0 -101
  18. data/doc/cxxapi/BCrypt_8h_source.html +0 -104
  19. data/doc/cxxapi/BacktracesServer_8h-source.html +0 -87
  20. data/doc/cxxapi/Base64_8h-source.html +0 -85
  21. data/doc/cxxapi/Blowfish_8h-source.html +0 -131
  22. data/doc/cxxapi/Blowfish_8h_source.html +0 -134
  23. data/doc/cxxapi/Bucket_8h-source.html +0 -115
  24. data/doc/cxxapi/Bucket_8h_source.html +0 -118
  25. data/doc/cxxapi/CachedFileStat_8h-source.html +0 -79
  26. data/doc/cxxapi/Configuration_8h-source.html +0 -432
  27. data/doc/cxxapi/Configuration_8h_source.html +0 -435
  28. data/doc/cxxapi/Constants_8h-source.html +0 -71
  29. data/doc/cxxapi/Constants_8h_source.html +0 -79
  30. data/doc/cxxapi/ContentHandler_8h-source.html +0 -92
  31. data/doc/cxxapi/ContentHandler_8h_source.html +0 -95
  32. data/doc/cxxapi/DirectoryMapper_8h-source.html +0 -324
  33. data/doc/cxxapi/DirectoryMapper_8h_source.html +0 -311
  34. data/doc/cxxapi/EventedClient_8h_source.html +0 -733
  35. data/doc/cxxapi/EventedMessageServer_8h_source.html +0 -358
  36. data/doc/cxxapi/EventedServer_8h-source.html +0 -415
  37. data/doc/cxxapi/EventedServer_8h_source.html +0 -326
  38. data/doc/cxxapi/Exceptions_8h-source.html +0 -363
  39. data/doc/cxxapi/Exceptions_8h_source.html +0 -393
  40. data/doc/cxxapi/FileChangeChecker_8h-source.html +0 -237
  41. data/doc/cxxapi/FileDescriptor_8h-source.html +0 -206
  42. data/doc/cxxapi/FileDescriptor_8h_source.html +0 -324
  43. data/doc/cxxapi/Hooks_8h-source.html +0 -73
  44. data/doc/cxxapi/Hooks_8h_source.html +0 -76
  45. data/doc/cxxapi/HttpStatusExtractor_8h-source.html +0 -379
  46. data/doc/cxxapi/HttpStatusExtractor_8h_source.html +0 -382
  47. data/doc/cxxapi/IniFile_8h_source.html +0 -527
  48. data/doc/cxxapi/LoggingServer_8h-source.html +0 -165
  49. data/doc/cxxapi/Logging_8h-source.html +0 -709
  50. data/doc/cxxapi/Logging_8h_source.html +0 -796
  51. data/doc/cxxapi/MessageChannel_8h-source.html +0 -852
  52. data/doc/cxxapi/MessageChannel_8h_source.html +0 -776
  53. data/doc/cxxapi/MessageClient_8h-source.html +0 -297
  54. data/doc/cxxapi/MessageClient_8h_source.html +0 -328
  55. data/doc/cxxapi/MessageReadersWriters_8h-source.html +0 -451
  56. data/doc/cxxapi/MessageReadersWriters_8h_source.html +0 -539
  57. data/doc/cxxapi/MessageServer_8h-source.html +0 -607
  58. data/doc/cxxapi/MessageServer_8h_source.html +0 -612
  59. data/doc/cxxapi/PoolOptions_8h-source.html +0 -511
  60. data/doc/cxxapi/PoolOptions_8h_source.html +0 -549
  61. data/doc/cxxapi/Process_8h-source.html +0 -283
  62. data/doc/cxxapi/Process_8h_source.html +0 -286
  63. data/doc/cxxapi/RandomGenerator_8h-source.html +0 -183
  64. data/doc/cxxapi/RandomGenerator_8h_source.html +0 -191
  65. data/doc/cxxapi/ResourceLocator_8h-source.html +0 -104
  66. data/doc/cxxapi/ResourceLocator_8h_source.html +0 -166
  67. data/doc/cxxapi/SafeLibev_8h_source.html +0 -180
  68. data/doc/cxxapi/ScgiRequestParser_8h-source.html +0 -400
  69. data/doc/cxxapi/ScgiRequestParser_8h_source.html +0 -406
  70. data/doc/cxxapi/ServerInstanceDir_8h-source.html +0 -356
  71. data/doc/cxxapi/ServerInstanceDir_8h_source.html +0 -378
  72. data/doc/cxxapi/Session_8h-source.html +0 -496
  73. data/doc/cxxapi/Session_8h_source.html +0 -501
  74. data/doc/cxxapi/SpawnManager_8h-source.html +0 -632
  75. data/doc/cxxapi/SpawnManager_8h_source.html +0 -647
  76. data/doc/cxxapi/StaticContentHandler_8h-source.html +0 -65
  77. data/doc/cxxapi/StaticContentHandler_8h_source.html +0 -68
  78. data/doc/cxxapi/StaticString_8h-source.html +0 -214
  79. data/doc/cxxapi/StaticString_8h_source.html +0 -329
  80. data/doc/cxxapi/StringListCreator_8h-source.html +0 -111
  81. data/doc/cxxapi/StringListCreator_8h_source.html +0 -114
  82. data/doc/cxxapi/SystemTime_8h-source.html +0 -222
  83. data/doc/cxxapi/Timer_8h-source.html +0 -157
  84. data/doc/cxxapi/Utils_8h-source.html +0 -688
  85. data/doc/cxxapi/Utils_8h_source.html +0 -459
  86. data/doc/cxxapi/Version_8h-source.html +0 -59
  87. data/doc/cxxapi/annotated.html +0 -87
  88. data/doc/cxxapi/apache2_2Configuration_8h-source.html +0 -79
  89. data/doc/cxxapi/apache2_2Configuration_8h_source.html +0 -82
  90. data/doc/cxxapi/classAgentWatcher-members.html +0 -54
  91. data/doc/cxxapi/classAgentWatcher.html +0 -419
  92. data/doc/cxxapi/classClient-members.html +0 -38
  93. data/doc/cxxapi/classClient.html +0 -123
  94. data/doc/cxxapi/classHooks-members.html +0 -40
  95. data/doc/cxxapi/classHooks.html +0 -153
  96. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +0 -40
  97. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +0 -187
  98. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.map +0 -1
  99. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.md5 +0 -1
  100. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager__inherit__graph.png +0 -0
  101. data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +0 -36
  102. data/doc/cxxapi/classPassenger_1_1ArgumentException.html +0 -56
  103. data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +0 -37
  104. data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +0 -113
  105. data/doc/cxxapi/classPassenger_1_1ArrayReader-members.html +0 -33
  106. data/doc/cxxapi/classPassenger_1_1ArrayReader.html +0 -47
  107. data/doc/cxxapi/classPassenger_1_1BacktracesServer-members.html +0 -36
  108. data/doc/cxxapi/classPassenger_1_1BacktracesServer.html +0 -107
  109. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.map +0 -1
  110. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.md5 +0 -1
  111. data/doc/cxxapi/classPassenger_1_1BacktracesServer__inherit__graph.png +0 -0
  112. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +0 -38
  113. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +0 -112
  114. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +0 -36
  115. data/doc/cxxapi/classPassenger_1_1BusyException.html +0 -54
  116. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +0 -36
  117. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +0 -51
  118. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +0 -41
  119. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +0 -223
  120. data/doc/cxxapi/classPassenger_1_1EOFException-members.html +0 -36
  121. data/doc/cxxapi/classPassenger_1_1EOFException.html +0 -61
  122. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.map +0 -1
  123. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.md5 +0 -1
  124. data/doc/cxxapi/classPassenger_1_1EOFException__inherit__graph.png +0 -0
  125. data/doc/cxxapi/classPassenger_1_1EventFd-members.html +0 -36
  126. data/doc/cxxapi/classPassenger_1_1EventFd.html +0 -52
  127. data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +0 -59
  128. data/doc/cxxapi/classPassenger_1_1EventedClient.html +0 -531
  129. data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +0 -37
  130. data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +0 -59
  131. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +0 -3
  132. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +0 -1
  133. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
  134. data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +0 -37
  135. data/doc/cxxapi/classPassenger_1_1EventedServer.html +0 -93
  136. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +0 -3
  137. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +0 -1
  138. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
  139. data/doc/cxxapi/classPassenger_1_1FileChangeChecker-members.html +0 -37
  140. data/doc/cxxapi/classPassenger_1_1FileChangeChecker.html +0 -166
  141. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +0 -41
  142. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +0 -178
  143. data/doc/cxxapi/classPassenger_1_1FileDescriptorPair-members.html +0 -36
  144. data/doc/cxxapi/classPassenger_1_1FileDescriptorPair.html +0 -52
  145. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +0 -36
  146. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +0 -58
  147. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +0 -1
  148. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +0 -1
  149. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
  150. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +0 -41
  151. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +0 -66
  152. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +0 -1
  153. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +0 -1
  154. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
  155. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +0 -39
  156. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +0 -128
  157. data/doc/cxxapi/classPassenger_1_1IOException-members.html +0 -36
  158. data/doc/cxxapi/classPassenger_1_1IOException.html +0 -61
  159. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +0 -2
  160. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +0 -1
  161. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
  162. data/doc/cxxapi/classPassenger_1_1MemZeroGuard-members.html +0 -36
  163. data/doc/cxxapi/classPassenger_1_1MemZeroGuard.html +0 -147
  164. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +0 -57
  165. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +0 -839
  166. data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +0 -49
  167. data/doc/cxxapi/classPassenger_1_1MessageServer.html +0 -407
  168. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +0 -36
  169. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +0 -58
  170. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +0 -3
  171. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +0 -1
  172. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
  173. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +0 -41
  174. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +0 -165
  175. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +0 -3
  176. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +0 -1
  177. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
  178. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +0 -39
  179. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +0 -173
  180. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.map +0 -1
  181. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.md5 +0 -1
  182. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler__inherit__graph.png +0 -0
  183. data/doc/cxxapi/classPassenger_1_1Process-members.html +0 -44
  184. data/doc/cxxapi/classPassenger_1_1Process.html +0 -290
  185. data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +0 -37
  186. data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +0 -79
  187. data/doc/cxxapi/classPassenger_1_1ResourceLocator-members.html +0 -36
  188. data/doc/cxxapi/classPassenger_1_1ResourceLocator.html +0 -51
  189. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +0 -36
  190. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +0 -54
  191. data/doc/cxxapi/classPassenger_1_1SafeLibev-members.html +0 -36
  192. data/doc/cxxapi/classPassenger_1_1SafeLibev.html +0 -51
  193. data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +0 -37
  194. data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +0 -76
  195. data/doc/cxxapi/classPassenger_1_1ScalarReader-members.html +0 -33
  196. data/doc/cxxapi/classPassenger_1_1ScalarReader.html +0 -47
  197. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +0 -50
  198. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +0 -285
  199. data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +0 -36
  200. data/doc/cxxapi/classPassenger_1_1SecurityException.html +0 -56
  201. data/doc/cxxapi/classPassenger_1_1Session-members.html +0 -53
  202. data/doc/cxxapi/classPassenger_1_1Session.html +0 -556
  203. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.map +0 -1
  204. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.md5 +0 -1
  205. data/doc/cxxapi/classPassenger_1_1Session__inherit__graph.png +0 -0
  206. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +0 -39
  207. data/doc/cxxapi/classPassenger_1_1SpawnException.html +0 -101
  208. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +0 -42
  209. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +0 -292
  210. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.map +0 -1
  211. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.md5 +0 -1
  212. data/doc/cxxapi/classPassenger_1_1SpawnManager__inherit__graph.png +0 -0
  213. data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +0 -54
  214. data/doc/cxxapi/classPassenger_1_1StandardSession.html +0 -394
  215. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.map +0 -1
  216. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.md5 +0 -1
  217. data/doc/cxxapi/classPassenger_1_1StandardSession__inherit__graph.png +0 -0
  218. data/doc/cxxapi/classPassenger_1_1StaticString-members.html +0 -36
  219. data/doc/cxxapi/classPassenger_1_1StaticString.html +0 -56
  220. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +0 -40
  221. data/doc/cxxapi/classPassenger_1_1SystemException.html +0 -155
  222. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +0 -2
  223. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +0 -1
  224. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
  225. data/doc/cxxapi/classPassenger_1_1SystemTime-members.html +0 -43
  226. data/doc/cxxapi/classPassenger_1_1SystemTime.html +0 -173
  227. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +0 -40
  228. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +0 -61
  229. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.map +0 -1
  230. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.md5 +0 -1
  231. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException__inherit__graph.png +0 -0
  232. data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +0 -36
  233. data/doc/cxxapi/classPassenger_1_1TimeoutException.html +0 -54
  234. data/doc/cxxapi/classPassenger_1_1Timer-members.html +0 -38
  235. data/doc/cxxapi/classPassenger_1_1Timer.html +0 -163
  236. data/doc/cxxapi/classPassenger_1_1Uint16Message-members.html +0 -36
  237. data/doc/cxxapi/classPassenger_1_1Uint16Message.html +0 -51
  238. data/doc/cxxapi/classPassenger_1_1Uint16Reader-members.html +0 -33
  239. data/doc/cxxapi/classPassenger_1_1Uint16Reader.html +0 -47
  240. data/doc/cxxapi/classPassenger_1_1Uint32Message-members.html +0 -36
  241. data/doc/cxxapi/classPassenger_1_1Uint32Message.html +0 -51
  242. data/doc/cxxapi/classPassenger_1_1Uint32Reader-members.html +0 -33
  243. data/doc/cxxapi/classPassenger_1_1Uint32Reader.html +0 -47
  244. data/doc/cxxapi/classServer-members.html +0 -36
  245. data/doc/cxxapi/classServer.html +0 -49
  246. data/doc/cxxapi/classServerInstanceDirToucher-members.html +0 -36
  247. data/doc/cxxapi/classServerInstanceDirToucher.html +0 -47
  248. data/doc/cxxapi/classes.html +0 -52
  249. data/doc/cxxapi/definitions_8h-source.html +0 -33
  250. data/doc/cxxapi/definitions_8h_source.html +0 -36
  251. data/doc/cxxapi/doxygen.css +0 -532
  252. data/doc/cxxapi/doxygen.png +0 -0
  253. data/doc/cxxapi/files.html +0 -76
  254. data/doc/cxxapi/ftv2blank.png +0 -0
  255. data/doc/cxxapi/ftv2doc.png +0 -0
  256. data/doc/cxxapi/ftv2folderclosed.png +0 -0
  257. data/doc/cxxapi/ftv2folderopen.png +0 -0
  258. data/doc/cxxapi/ftv2lastnode.png +0 -0
  259. data/doc/cxxapi/ftv2link.png +0 -0
  260. data/doc/cxxapi/ftv2mlastnode.png +0 -0
  261. data/doc/cxxapi/ftv2mnode.png +0 -0
  262. data/doc/cxxapi/ftv2node.png +0 -0
  263. data/doc/cxxapi/ftv2plastnode.png +0 -0
  264. data/doc/cxxapi/ftv2pnode.png +0 -0
  265. data/doc/cxxapi/ftv2vertline.png +0 -0
  266. data/doc/cxxapi/functions.html +0 -103
  267. data/doc/cxxapi/functions_0x62.html +0 -82
  268. data/doc/cxxapi/functions_0x63.html +0 -102
  269. data/doc/cxxapi/functions_0x64.html +0 -102
  270. data/doc/cxxapi/functions_0x65.html +0 -88
  271. data/doc/cxxapi/functions_0x66.html +0 -100
  272. data/doc/cxxapi/functions_0x67.html +0 -167
  273. data/doc/cxxapi/functions_0x68.html +0 -88
  274. data/doc/cxxapi/functions_0x69.html +0 -96
  275. data/doc/cxxapi/functions_0x6b.html +0 -80
  276. data/doc/cxxapi/functions_0x6c.html +0 -88
  277. data/doc/cxxapi/functions_0x6d.html +0 -88
  278. data/doc/cxxapi/functions_0x6e.html +0 -86
  279. data/doc/cxxapi/functions_0x6f.html +0 -94
  280. data/doc/cxxapi/functions_0x70.html +0 -94
  281. data/doc/cxxapi/functions_0x72.html +0 -110
  282. data/doc/cxxapi/functions_0x73.html +0 -171
  283. data/doc/cxxapi/functions_0x74.html +0 -85
  284. data/doc/cxxapi/functions_0x75.html +0 -85
  285. data/doc/cxxapi/functions_0x77.html +0 -92
  286. data/doc/cxxapi/functions_0x7e.html +0 -79
  287. data/doc/cxxapi/functions_enum.html +0 -49
  288. data/doc/cxxapi/functions_eval.html +0 -67
  289. data/doc/cxxapi/functions_func.html +0 -531
  290. data/doc/cxxapi/functions_vars.html +0 -278
  291. data/doc/cxxapi/graph_legend.dot +0 -22
  292. data/doc/cxxapi/graph_legend.html +0 -92
  293. data/doc/cxxapi/graph_legend.png +0 -0
  294. data/doc/cxxapi/group__Configuration.html +0 -198
  295. data/doc/cxxapi/group__Configuration.map +0 -3
  296. data/doc/cxxapi/group__Configuration.png +0 -0
  297. data/doc/cxxapi/group__Core.html +0 -46
  298. data/doc/cxxapi/group__Core.map +0 -3
  299. data/doc/cxxapi/group__Core.png +0 -0
  300. data/doc/cxxapi/group__Exceptions.html +0 -53
  301. data/doc/cxxapi/group__Hooks.html +0 -42
  302. data/doc/cxxapi/group__Hooks.map +0 -3
  303. data/doc/cxxapi/group__Hooks.png +0 -0
  304. data/doc/cxxapi/group__Support.html +0 -538
  305. data/doc/cxxapi/hierarchy.html +0 -101
  306. data/doc/cxxapi/index.html +0 -16
  307. data/doc/cxxapi/inherit__graph__0.map +0 -1
  308. data/doc/cxxapi/inherit__graph__0.md5 +0 -1
  309. data/doc/cxxapi/inherit__graph__0.png +0 -0
  310. data/doc/cxxapi/inherit__graph__1.map +0 -1
  311. data/doc/cxxapi/inherit__graph__1.md5 +0 -1
  312. data/doc/cxxapi/inherit__graph__1.png +0 -0
  313. data/doc/cxxapi/inherit__graph__10.map +0 -3
  314. data/doc/cxxapi/inherit__graph__10.md5 +0 -1
  315. data/doc/cxxapi/inherit__graph__10.png +0 -0
  316. data/doc/cxxapi/inherit__graph__11.map +0 -4
  317. data/doc/cxxapi/inherit__graph__11.md5 +0 -1
  318. data/doc/cxxapi/inherit__graph__11.png +0 -0
  319. data/doc/cxxapi/inherit__graph__12.map +0 -3
  320. data/doc/cxxapi/inherit__graph__12.md5 +0 -1
  321. data/doc/cxxapi/inherit__graph__12.png +0 -0
  322. data/doc/cxxapi/inherit__graph__13.map +0 -3
  323. data/doc/cxxapi/inherit__graph__13.md5 +0 -1
  324. data/doc/cxxapi/inherit__graph__13.png +0 -0
  325. data/doc/cxxapi/inherit__graph__14.map +0 -3
  326. data/doc/cxxapi/inherit__graph__14.md5 +0 -1
  327. data/doc/cxxapi/inherit__graph__14.png +0 -0
  328. data/doc/cxxapi/inherit__graph__15.map +0 -3
  329. data/doc/cxxapi/inherit__graph__15.md5 +0 -1
  330. data/doc/cxxapi/inherit__graph__15.png +0 -0
  331. data/doc/cxxapi/inherit__graph__16.map +0 -5
  332. data/doc/cxxapi/inherit__graph__16.md5 +0 -1
  333. data/doc/cxxapi/inherit__graph__16.png +0 -0
  334. data/doc/cxxapi/inherit__graph__17.map +0 -3
  335. data/doc/cxxapi/inherit__graph__17.md5 +0 -1
  336. data/doc/cxxapi/inherit__graph__17.png +0 -0
  337. data/doc/cxxapi/inherit__graph__18.map +0 -3
  338. data/doc/cxxapi/inherit__graph__18.md5 +0 -1
  339. data/doc/cxxapi/inherit__graph__18.png +0 -0
  340. data/doc/cxxapi/inherit__graph__19.map +0 -4
  341. data/doc/cxxapi/inherit__graph__19.md5 +0 -1
  342. data/doc/cxxapi/inherit__graph__19.png +0 -0
  343. data/doc/cxxapi/inherit__graph__2.map +0 -1
  344. data/doc/cxxapi/inherit__graph__2.md5 +0 -1
  345. data/doc/cxxapi/inherit__graph__2.png +0 -0
  346. data/doc/cxxapi/inherit__graph__20.map +0 -3
  347. data/doc/cxxapi/inherit__graph__20.md5 +0 -1
  348. data/doc/cxxapi/inherit__graph__20.png +0 -0
  349. data/doc/cxxapi/inherit__graph__21.map +0 -3
  350. data/doc/cxxapi/inherit__graph__21.md5 +0 -1
  351. data/doc/cxxapi/inherit__graph__21.png +0 -0
  352. data/doc/cxxapi/inherit__graph__22.map +0 -3
  353. data/doc/cxxapi/inherit__graph__22.md5 +0 -1
  354. data/doc/cxxapi/inherit__graph__22.png +0 -0
  355. data/doc/cxxapi/inherit__graph__23.map +0 -3
  356. data/doc/cxxapi/inherit__graph__23.md5 +0 -1
  357. data/doc/cxxapi/inherit__graph__23.png +0 -0
  358. data/doc/cxxapi/inherit__graph__24.map +0 -3
  359. data/doc/cxxapi/inherit__graph__24.md5 +0 -1
  360. data/doc/cxxapi/inherit__graph__24.png +0 -0
  361. data/doc/cxxapi/inherit__graph__25.map +0 -3
  362. data/doc/cxxapi/inherit__graph__25.md5 +0 -1
  363. data/doc/cxxapi/inherit__graph__25.png +0 -0
  364. data/doc/cxxapi/inherit__graph__26.map +0 -3
  365. data/doc/cxxapi/inherit__graph__26.md5 +0 -1
  366. data/doc/cxxapi/inherit__graph__26.png +0 -0
  367. data/doc/cxxapi/inherit__graph__27.map +0 -3
  368. data/doc/cxxapi/inherit__graph__27.md5 +0 -1
  369. data/doc/cxxapi/inherit__graph__27.png +0 -0
  370. data/doc/cxxapi/inherit__graph__28.map +0 -3
  371. data/doc/cxxapi/inherit__graph__28.md5 +0 -1
  372. data/doc/cxxapi/inherit__graph__28.png +0 -0
  373. data/doc/cxxapi/inherit__graph__29.map +0 -3
  374. data/doc/cxxapi/inherit__graph__29.md5 +0 -1
  375. data/doc/cxxapi/inherit__graph__29.png +0 -0
  376. data/doc/cxxapi/inherit__graph__3.map +0 -2
  377. data/doc/cxxapi/inherit__graph__3.md5 +0 -1
  378. data/doc/cxxapi/inherit__graph__3.png +0 -0
  379. data/doc/cxxapi/inherit__graph__30.map +0 -3
  380. data/doc/cxxapi/inherit__graph__30.md5 +0 -1
  381. data/doc/cxxapi/inherit__graph__30.png +0 -0
  382. data/doc/cxxapi/inherit__graph__31.map +0 -4
  383. data/doc/cxxapi/inherit__graph__31.md5 +0 -1
  384. data/doc/cxxapi/inherit__graph__31.png +0 -0
  385. data/doc/cxxapi/inherit__graph__32.map +0 -3
  386. data/doc/cxxapi/inherit__graph__32.md5 +0 -1
  387. data/doc/cxxapi/inherit__graph__32.png +0 -0
  388. data/doc/cxxapi/inherit__graph__33.map +0 -3
  389. data/doc/cxxapi/inherit__graph__33.md5 +0 -1
  390. data/doc/cxxapi/inherit__graph__33.png +0 -0
  391. data/doc/cxxapi/inherit__graph__34.map +0 -3
  392. data/doc/cxxapi/inherit__graph__34.md5 +0 -1
  393. data/doc/cxxapi/inherit__graph__34.png +0 -0
  394. data/doc/cxxapi/inherit__graph__35.map +0 -3
  395. data/doc/cxxapi/inherit__graph__35.md5 +0 -1
  396. data/doc/cxxapi/inherit__graph__35.png +0 -0
  397. data/doc/cxxapi/inherit__graph__36.map +0 -5
  398. data/doc/cxxapi/inherit__graph__36.md5 +0 -1
  399. data/doc/cxxapi/inherit__graph__36.png +0 -0
  400. data/doc/cxxapi/inherit__graph__37.map +0 -3
  401. data/doc/cxxapi/inherit__graph__37.md5 +0 -1
  402. data/doc/cxxapi/inherit__graph__37.png +0 -0
  403. data/doc/cxxapi/inherit__graph__38.map +0 -3
  404. data/doc/cxxapi/inherit__graph__38.md5 +0 -1
  405. data/doc/cxxapi/inherit__graph__38.png +0 -0
  406. data/doc/cxxapi/inherit__graph__39.map +0 -3
  407. data/doc/cxxapi/inherit__graph__39.md5 +0 -1
  408. data/doc/cxxapi/inherit__graph__39.png +0 -0
  409. data/doc/cxxapi/inherit__graph__4.map +0 -3
  410. data/doc/cxxapi/inherit__graph__4.md5 +0 -1
  411. data/doc/cxxapi/inherit__graph__4.png +0 -0
  412. data/doc/cxxapi/inherit__graph__40.map +0 -3
  413. data/doc/cxxapi/inherit__graph__40.md5 +0 -1
  414. data/doc/cxxapi/inherit__graph__40.png +0 -0
  415. data/doc/cxxapi/inherit__graph__5.map +0 -3
  416. data/doc/cxxapi/inherit__graph__5.md5 +0 -1
  417. data/doc/cxxapi/inherit__graph__5.png +0 -0
  418. data/doc/cxxapi/inherit__graph__6.map +0 -3
  419. data/doc/cxxapi/inherit__graph__6.md5 +0 -1
  420. data/doc/cxxapi/inherit__graph__6.png +0 -0
  421. data/doc/cxxapi/inherit__graph__7.map +0 -3
  422. data/doc/cxxapi/inherit__graph__7.md5 +0 -1
  423. data/doc/cxxapi/inherit__graph__7.png +0 -0
  424. data/doc/cxxapi/inherit__graph__8.map +0 -3
  425. data/doc/cxxapi/inherit__graph__8.md5 +0 -1
  426. data/doc/cxxapi/inherit__graph__8.png +0 -0
  427. data/doc/cxxapi/inherit__graph__9.map +0 -3
  428. data/doc/cxxapi/inherit__graph__9.md5 +0 -1
  429. data/doc/cxxapi/inherit__graph__9.png +0 -0
  430. data/doc/cxxapi/inherits.html +0 -165
  431. data/doc/cxxapi/main.html +0 -28
  432. data/doc/cxxapi/md5_8h-source.html +0 -121
  433. data/doc/cxxapi/modules.html +0 -36
  434. data/doc/cxxapi/namespacePassenger.html +0 -553
  435. data/doc/cxxapi/namespacemembers.html +0 -135
  436. data/doc/cxxapi/namespacemembers_enum.html +0 -48
  437. data/doc/cxxapi/namespacemembers_eval.html +0 -57
  438. data/doc/cxxapi/namespacemembers_func.html +0 -111
  439. data/doc/cxxapi/namespacemembers_type.html +0 -54
  440. data/doc/cxxapi/namespaces.html +0 -37
  441. data/doc/cxxapi/nginx_2Configuration_8h-source.html +0 -115
  442. data/doc/cxxapi/nginx_2Configuration_8h_source.html +0 -125
  443. data/doc/cxxapi/ngx__http__passenger__module_8h-source.html +0 -91
  444. data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +0 -94
  445. data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +0 -33
  446. data/doc/cxxapi/structPassenger_1_1AnythingToString.html +0 -52
  447. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01StaticString_01_4_01_4-members.html +0 -33
  448. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01StaticString_01_4_01_4.html +0 -52
  449. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +0 -33
  450. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +0 -52
  451. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +0 -36
  452. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +0 -51
  453. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +0 -67
  454. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +0 -647
  455. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +0 -36
  456. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +0 -51
  457. data/doc/cxxapi/tab_b.gif +0 -0
  458. data/doc/cxxapi/tab_l.gif +0 -0
  459. data/doc/cxxapi/tab_r.gif +0 -0
  460. data/doc/cxxapi/tabs.css +0 -105
  461. data/doc/cxxapi/tree.html +0 -249
  462. data/doc/rdoc/classes/ConditionVariable.html +0 -215
  463. data/doc/rdoc/classes/Exception.html +0 -120
  464. data/doc/rdoc/classes/GC.html +0 -113
  465. data/doc/rdoc/classes/IO.html +0 -221
  466. data/doc/rdoc/classes/PhusionPassenger.html +0 -397
  467. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +0 -180
  468. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +0 -647
  469. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -654
  470. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +0 -92
  471. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +0 -97
  472. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +0 -96
  473. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +0 -97
  474. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +0 -96
  475. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +0 -619
  476. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +0 -142
  477. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +0 -368
  478. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +0 -231
  479. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +0 -588
  480. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +0 -92
  481. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +0 -92
  482. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +0 -147
  483. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +0 -279
  484. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +0 -92
  485. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +0 -92
  486. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +0 -123
  487. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +0 -92
  488. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +0 -368
  489. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +0 -299
  490. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +0 -206
  491. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +0 -155
  492. data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +0 -367
  493. data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +0 -95
  494. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +0 -351
  495. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +0 -98
  496. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +0 -200
  497. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +0 -410
  498. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +0 -98
  499. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +0 -156
  500. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +0 -115
  501. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +0 -202
  502. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +0 -172
  503. data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +0 -273
  504. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +0 -145
  505. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +0 -162
  506. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +0 -141
  507. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +0 -92
  508. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +0 -673
  509. data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +0 -92
  510. data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +0 -415
  511. data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +0 -134
  512. data/doc/rdoc/classes/PhusionPassenger/Packaging.html +0 -129
  513. data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +0 -1972
  514. data/doc/rdoc/classes/PhusionPassenger/Plugin.html +0 -237
  515. data/doc/rdoc/classes/PhusionPassenger/Rack.html +0 -91
  516. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +0 -312
  517. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +0 -98
  518. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -218
  519. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +0 -114
  520. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +0 -259
  521. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +0 -139
  522. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +0 -118
  523. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +0 -135
  524. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +0 -378
  525. data/doc/rdoc/classes/PhusionPassenger/Standalone.html +0 -111
  526. data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +0 -252
  527. data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +0 -161
  528. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +0 -368
  529. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +0 -132
  530. data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +0 -151
  531. data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +0 -189
  532. data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +0 -177
  533. data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +0 -341
  534. data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +0 -203
  535. data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +0 -156
  536. data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +0 -168
  537. data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +0 -86
  538. data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +0 -135
  539. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +0 -125
  540. data/doc/rdoc/classes/PhusionPassenger/Utils.html +0 -1543
  541. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +0 -204
  542. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +0 -171
  543. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +0 -140
  544. data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +0 -260
  545. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +0 -194
  546. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +0 -265
  547. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +0 -120
  548. data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +0 -561
  549. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +0 -140
  550. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +0 -89
  551. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +0 -182
  552. data/doc/rdoc/classes/Process.html +0 -115
  553. data/doc/rdoc/classes/Signal.html +0 -139
  554. data/doc/rdoc/created.rid +0 -1
  555. data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -280
  556. data/doc/rdoc/files/README.html +0 -157
  557. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +0 -130
  558. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +0 -135
  559. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +0 -126
  560. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +0 -128
  561. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +0 -126
  562. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +0 -132
  563. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +0 -122
  564. data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +0 -129
  565. data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +0 -127
  566. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +0 -141
  567. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +0 -126
  568. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +0 -146
  569. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +0 -125
  570. data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +0 -132
  571. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +0 -126
  572. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +0 -122
  573. data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +0 -122
  574. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +0 -147
  575. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +0 -122
  576. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +0 -127
  577. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +0 -120
  578. data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +0 -127
  579. data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +0 -132
  580. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +0 -122
  581. data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +0 -127
  582. data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +0 -129
  583. data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +0 -127
  584. data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +0 -126
  585. data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +0 -126
  586. data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +0 -126
  587. data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +0 -127
  588. data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +0 -128
  589. data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +0 -126
  590. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +0 -122
  591. data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +0 -127
  592. data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +0 -127
  593. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +0 -137
  594. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +0 -125
  595. data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +0 -127
  596. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +0 -122
  597. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +0 -160
  598. data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +0 -127
  599. data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +0 -136
  600. data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +0 -126
  601. data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +0 -126
  602. data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +0 -126
  603. data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +0 -127
  604. data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +0 -133
  605. data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +0 -136
  606. data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +0 -126
  607. data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +0 -126
  608. data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +0 -126
  609. data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +0 -127
  610. data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +0 -126
  611. data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +0 -120
  612. data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +0 -100
  613. data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +0 -122
  614. data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +0 -126
  615. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -179
  616. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +0 -132
  617. data/doc/rdoc/fr_class_index.html +0 -139
  618. data/doc/rdoc/fr_file_index.html +0 -108
  619. data/doc/rdoc/fr_method_index.html +0 -439
  620. data/doc/rdoc/index.html +0 -26
  621. data/doc/rdoc/rdoc-style.css +0 -187
@@ -1,326 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <title>Passenger: EventedServer.h Source File</title>
6
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
- <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
- </head>
9
- <body>
10
- <!-- Generated by Doxygen 1.6.2 -->
11
- <div class="navigation" id="top">
12
- <div class="tabs">
13
- <ul>
14
- <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
15
- <li><a href="modules.html"><span>Modules</span></a></li>
16
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
- <li><a href="annotated.html"><span>Classes</span></a></li>
18
- <li class="current"><a href="files.html"><span>Files</span></a></li>
19
- </ul>
20
- </div>
21
- <div class="tabs">
22
- <ul>
23
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
24
- </ul>
25
- </div>
26
- <h1>EventedServer.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
27
- <a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
28
- <a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2010 Phusion</span>
29
- <a name="l00004"></a>00004 <span class="comment"> *</span>
30
- <a name="l00005"></a>00005 <span class="comment"> * &quot;Phusion Passenger&quot; is a trademark of Hongli Lai &amp; Ninh Bui.</span>
31
- <a name="l00006"></a>00006 <span class="comment"> *</span>
32
- <a name="l00007"></a>00007 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span>
33
- <a name="l00008"></a>00008 <span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span>
34
- <a name="l00009"></a>00009 <span class="comment"> * in the Software without restriction, including without limitation the rights</span>
35
- <a name="l00010"></a>00010 <span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span>
36
- <a name="l00011"></a>00011 <span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span>
37
- <a name="l00012"></a>00012 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
38
- <a name="l00013"></a>00013 <span class="comment"> *</span>
39
- <a name="l00014"></a>00014 <span class="comment"> * The above copyright notice and this permission notice shall be included in</span>
40
- <a name="l00015"></a>00015 <span class="comment"> * all copies or substantial portions of the Software.</span>
41
- <a name="l00016"></a>00016 <span class="comment"> *</span>
42
- <a name="l00017"></a>00017 <span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span>
43
- <a name="l00018"></a>00018 <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
44
- <a name="l00019"></a>00019 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span>
45
- <a name="l00020"></a>00020 <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
46
- <a name="l00021"></a>00021 <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span>
47
- <a name="l00022"></a>00022 <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
48
- <a name="l00023"></a>00023 <span class="comment"> * THE SOFTWARE.</span>
49
- <a name="l00024"></a>00024 <span class="comment"> */</span>
50
- <a name="l00025"></a>00025 <span class="preprocessor">#ifndef _PASSENGER_EVENTED_SERVER_H_</span>
51
- <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_EVENTED_SERVER_H_</span>
52
- <a name="l00027"></a>00027 <span class="preprocessor"></span>
53
- <a name="l00028"></a>00028 <span class="preprocessor">#include &lt;ev++.h&gt;</span>
54
- <a name="l00029"></a>00029 <span class="preprocessor">#include &lt;boost/shared_ptr.hpp&gt;</span>
55
- <a name="l00030"></a>00030 <span class="preprocessor">#include &lt;boost/enable_shared_from_this.hpp&gt;</span>
56
- <a name="l00031"></a>00031 <span class="preprocessor">#include &lt;oxt/system_calls.hpp&gt;</span>
57
- <a name="l00032"></a>00032 <span class="preprocessor">#include &lt;oxt/macros.hpp&gt;</span>
58
- <a name="l00033"></a>00033 <span class="preprocessor">#include &lt;algorithm&gt;</span>
59
- <a name="l00034"></a>00034 <span class="preprocessor">#include &lt;string&gt;</span>
60
- <a name="l00035"></a>00035 <span class="preprocessor">#include &lt;set&gt;</span>
61
- <a name="l00036"></a>00036 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
62
- <a name="l00037"></a>00037 <span class="preprocessor">#include &lt;sys/un.h&gt;</span>
63
- <a name="l00038"></a>00038 <span class="preprocessor">#include &lt;sys/uio.h&gt;</span>
64
- <a name="l00039"></a>00039 <span class="preprocessor">#include &lt;netinet/in.h&gt;</span>
65
- <a name="l00040"></a>00040 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
66
- <a name="l00041"></a>00041 <span class="preprocessor">#include &lt;cerrno&gt;</span>
67
- <a name="l00042"></a>00042 <span class="preprocessor">#include &quot;EventedClient.h&quot;</span>
68
- <a name="l00043"></a>00043 <span class="preprocessor">#include &quot;FileDescriptor.h&quot;</span>
69
- <a name="l00044"></a>00044 <span class="preprocessor">#include &quot;StaticString.h&quot;</span>
70
- <a name="l00045"></a>00045 <span class="preprocessor">#include &quot;Logging.h&quot;</span>
71
- <a name="l00046"></a>00046 <span class="preprocessor">#include &quot;Utils/ScopeGuard.h&quot;</span>
72
- <a name="l00047"></a>00047 <span class="preprocessor">#include &quot;Utils/StrIntUtils.h&quot;</span>
73
- <a name="l00048"></a>00048
74
- <a name="l00049"></a>00049 <span class="keyword">namespace </span>Passenger {
75
- <a name="l00050"></a>00050
76
- <a name="l00051"></a>00051 <span class="keyword">using namespace </span>std;
77
- <a name="l00052"></a>00052 <span class="keyword">using namespace </span>boost;
78
- <a name="l00053"></a>00053 <span class="keyword">using namespace </span>oxt;
79
- <a name="l00054"></a>00054
80
- <a name="l00055"></a>00055 <span class="comment"></span>
81
- <a name="l00056"></a>00056 <span class="comment">/**</span>
82
- <a name="l00057"></a>00057 <span class="comment"> * A base class for writing single-threaded, evented servers that use non-blocking I/O.</span>
83
- <a name="l00058"></a>00058 <span class="comment"> * It uses libev for its event loop. EventedServer handles much of the situps regarding</span>
84
- <a name="l00059"></a>00059 <span class="comment"> * client connection management and output buffering and tries to make it easy to</span>
85
- <a name="l00060"></a>00060 <span class="comment"> * implement a zero-copy architecture.</span>
86
- <a name="l00061"></a>00061 <span class="comment"> *</span>
87
- <a name="l00062"></a>00062 <span class="comment"> * &lt;h2&gt;Basic usage&lt;/h2&gt;</span>
88
- <a name="l00063"></a>00063 <span class="comment"> * Derived classes can override the onClientReadable() method, which is called every time</span>
89
- <a name="l00064"></a>00064 <span class="comment"> * a specific client becomes readable. It is passed a Client object which contains information</span>
90
- <a name="l00065"></a>00065 <span class="comment"> * about the client, such as its file descriptor. One can use the read() system call in</span>
91
- <a name="l00066"></a>00066 <span class="comment"> * that method to receive data from the client. Please note that client file descriptors</span>
92
- <a name="l00067"></a>00067 <span class="comment"> * are always set to non-blocking mode so you need to handle this gracefully.</span>
93
- <a name="l00068"></a>00068 <span class="comment"> *</span>
94
- <a name="l00069"></a>00069 <span class="comment"> * EventedServer provides the write() method for sending data to the client. This method</span>
95
- <a name="l00070"></a>00070 <span class="comment"> * will attempt to send the data to the client immediately; if it fails with EAGAIN then</span>
96
- <a name="l00071"></a>00071 <span class="comment"> * EventedServer will take care of scheduling the send at a later time when the client</span>
97
- <a name="l00072"></a>00072 <span class="comment"> * is ready again to receive data.</span>
98
- <a name="l00073"></a>00073 <span class="comment"> *</span>
99
- <a name="l00074"></a>00074 <span class="comment"> * To disconnect the client, call disconnect(). The connection might not be actually</span>
100
- <a name="l00075"></a>00075 <span class="comment"> * closed until all pending outgoing data have been sent out, but all the gory details</span>
101
- <a name="l00076"></a>00076 <span class="comment"> * is taken care of for you.</span>
102
- <a name="l00077"></a>00077 <span class="comment"> *</span>
103
- <a name="l00078"></a>00078 <span class="comment"> * &lt;h2&gt;Keeping per-client information&lt;/h2&gt;</span>
104
- <a name="l00079"></a>00079 <span class="comment"> * If you need to keep per-client information then you can override the createClient()</span>
105
- <a name="l00080"></a>00080 <span class="comment"> * method and make it return an object that&#39;s a subclass of EventedServer::Client. This</span>
106
- <a name="l00081"></a>00081 <span class="comment"> * object is passed to onClientReadable(), so in there you can just cast the client object</span>
107
- <a name="l00082"></a>00082 <span class="comment"> * to your subclass.</span>
108
- <a name="l00083"></a>00083 <span class="comment"> *</span>
109
- <a name="l00084"></a>00084 <span class="comment"> * &lt;h2&gt;Client object life times&lt;/h2&gt;</span>
110
- <a name="l00085"></a>00085 <span class="comment"> * All client objects are destroyed along with the EventedServer. Disconnecting</span>
111
- <a name="l00086"></a>00086 <span class="comment"> * a client also causes it to be destroyed after the current event handler has</span>
112
- <a name="l00087"></a>00087 <span class="comment"> * run or a short period of time after that.</span>
113
- <a name="l00088"></a>00088 <span class="comment"> */</span>
114
- <a name="l00089"></a><a class="code" href="classPassenger_1_1EventedServer.html">00089</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1EventedServer.html" title="A base class for writing single-threaded, evented servers that use non-blocking I/O...">EventedServer</a> {
115
- <a name="l00090"></a>00090 <span class="keyword">protected</span>:
116
- <a name="l00091"></a>00091 <span class="keyword">typedef</span> set&lt;EventedClient *&gt; ClientSet;
117
- <a name="l00092"></a>00092
118
- <a name="l00093"></a>00093 <span class="keyword">const</span> ClientSet &amp;getClients()<span class="keyword"> const </span>{
119
- <a name="l00094"></a>00094 <span class="keywordflow">return</span> clients;
120
- <a name="l00095"></a>00095 }
121
- <a name="l00096"></a>00096
122
- <a name="l00097"></a>00097 <span class="keywordtype">string</span> getClientName(<span class="keyword">const</span> <a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a> *client)<span class="keyword"> const </span>{
123
- <a name="l00098"></a>00098 <span class="keywordflow">return</span> toString(client);
124
- <a name="l00099"></a>00099 }
125
- <a name="l00100"></a>00100
126
- <a name="l00101"></a>00101 <span class="keywordtype">void</span> logError(<span class="keyword">const</span> <a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a> *client, <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message) {
127
- <a name="l00102"></a>00102 P_ERROR(<span class="stringliteral">&quot;Error in client &quot;</span> &lt;&lt; getClientName(client) &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; message);
128
- <a name="l00103"></a>00103 }
129
- <a name="l00104"></a>00104
130
- <a name="l00105"></a>00105 <span class="keywordtype">void</span> logSystemError(<span class="keyword">const</span> <a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a> *client, <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message, <span class="keywordtype">int</span> errorCode) {
131
- <a name="l00106"></a>00106 P_ERROR(<span class="stringliteral">&quot;Error in client &quot;</span> &lt;&lt; getClientName(client) &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt;
132
- <a name="l00107"></a>00107 message &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; strerror(errorCode) &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; errorCode &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>);
133
- <a name="l00108"></a>00108 }
134
- <a name="l00109"></a>00109
135
- <a name="l00110"></a>00110 <span class="keywordtype">void</span> logSystemError(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message, <span class="keywordtype">int</span> errorCode) {
136
- <a name="l00111"></a>00111 P_ERROR(message &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; strerror(errorCode) &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; errorCode &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>);
137
- <a name="l00112"></a>00112 }
138
- <a name="l00113"></a>00113
139
- <a name="l00114"></a>00114 <span class="keyword">virtual</span> <a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a> *createClient(<span class="keyword">const</span> <a class="code" href="classPassenger_1_1FileDescriptor.html" title="Wrapper class around a file descriptor integer, for RAII behavior.">FileDescriptor</a> &amp;fd) {
140
- <a name="l00115"></a>00115 <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a>(loop, fd);
141
- <a name="l00116"></a>00116 }
142
- <a name="l00117"></a>00117
143
- <a name="l00118"></a>00118 <span class="keyword">virtual</span> <span class="keywordtype">void</span> onNewClient(<a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a> *client) { }
144
- <a name="l00119"></a>00119 <span class="keyword">virtual</span> <span class="keywordtype">void</span> onClientReadable(<a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a> *client) { }
145
- <a name="l00120"></a>00120 <span class="comment"></span>
146
- <a name="l00121"></a>00121 <span class="comment"> /**</span>
147
- <a name="l00122"></a>00122 <span class="comment"> * Called when a client has been disconnected. This may either be triggered</span>
148
- <a name="l00123"></a>00123 <span class="comment"> * immediately by disconnect() or triggered after pending data has been sent</span>
149
- <a name="l00124"></a>00124 <span class="comment"> * out. This means that if you call disconnect() from onClientReadable() you</span>
150
- <a name="l00125"></a>00125 <span class="comment"> * need take care of the possibility that control returns to onClientReadable()</span>
151
- <a name="l00126"></a>00126 <span class="comment"> * after this method is done.</span>
152
- <a name="l00127"></a>00127 <span class="comment"> *</span>
153
- <a name="l00128"></a>00128 <span class="comment"> * Please note that when EventedServer is being destroyed,</span>
154
- <a name="l00129"></a>00129 <span class="comment"> * onClientDisconnected() is *not* triggered.</span>
155
- <a name="l00130"></a>00130 <span class="comment"> */</span>
156
- <a name="l00131"></a><a class="code" href="classPassenger_1_1EventedServer.html#a7db4c8d0ad8aa77bcb40344e53319f11">00131</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1EventedServer.html#a7db4c8d0ad8aa77bcb40344e53319f11" title="Called when a client has been disconnected.">onClientDisconnected</a>(<a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a> *client) { }
157
- <a name="l00132"></a>00132
158
- <a name="l00133"></a>00133 <span class="keyword">private</span>:
159
- <a name="l00134"></a>00134 <span class="keyword">struct </span>ev_loop *loop;
160
- <a name="l00135"></a>00135 <a class="code" href="classPassenger_1_1FileDescriptor.html" title="Wrapper class around a file descriptor integer, for RAII behavior.">FileDescriptor</a> fd;
161
- <a name="l00136"></a>00136 ev::io acceptWatcher;
162
- <a name="l00137"></a>00137 ClientSet clients;
163
- <a name="l00138"></a>00138
164
- <a name="l00139"></a>00139 <span class="keywordtype">void</span> removeClient(<a class="code" href="classPassenger_1_1EventedClient.html" title="A utility class for making I/O handling in non-blocking libev evented servers much...">EventedClient</a> *client) {
165
- <a name="l00140"></a>00140 clients.erase(client);
166
- <a name="l00141"></a>00141 }
167
- <a name="l00142"></a>00142
168
- <a name="l00143"></a>00143 <span class="keywordtype">void</span> freeAllClients() {
169
- <a name="l00144"></a>00144 ClientSet::iterator it;
170
- <a name="l00145"></a>00145 ClientSet::iterator end = clients.end();
171
- <a name="l00146"></a>00146
172
- <a name="l00147"></a>00147 <span class="keywordflow">for</span> (it = clients.begin(); it != clients.end(); it++) {
173
- <a name="l00148"></a>00148 (*it)-&gt;unref();
174
- <a name="l00149"></a>00149 }
175
- <a name="l00150"></a>00150 clients.clear();
176
- <a name="l00151"></a>00151 }
177
- <a name="l00152"></a>00152
178
- <a name="l00153"></a>00153 <span class="keyword">static</span> <span class="keywordtype">void</span> _onReadable(EventedClient *client) {
179
- <a name="l00154"></a>00154 EventedServer *server = (EventedServer *) client-&gt;userData;
180
- <a name="l00155"></a>00155 client-&gt;ref();
181
- <a name="l00156"></a>00156 ScopeGuard guard(boost::bind(&amp;<a class="code" href="classPassenger_1_1EventedClient.html#a1e480f15dfd339ff781f8daedc5b8190" title="Decrease reference count.">EventedClient::unref</a>, client));
182
- <a name="l00157"></a>00157 server-&gt;onClientReadable((EventedClient *) client);
183
- <a name="l00158"></a>00158 }
184
- <a name="l00159"></a>00159
185
- <a name="l00160"></a>00160 <span class="keyword">static</span> <span class="keywordtype">void</span> _onDisconnect(EventedClient *client) {
186
- <a name="l00161"></a>00161 EventedServer *server = (EventedServer *) client-&gt;userData;
187
- <a name="l00162"></a>00162 ScopeGuard guard1(boost::bind(&amp;<a class="code" href="classPassenger_1_1EventedClient.html#a1e480f15dfd339ff781f8daedc5b8190" title="Decrease reference count.">EventedClient::unref</a>, client));
188
- <a name="l00163"></a>00163
189
- <a name="l00164"></a>00164 client-&gt;ref();
190
- <a name="l00165"></a>00165 ScopeGuard guard2(boost::bind(&amp;<a class="code" href="classPassenger_1_1EventedClient.html#a1e480f15dfd339ff781f8daedc5b8190" title="Decrease reference count.">EventedClient::unref</a>, client));
191
- <a name="l00166"></a>00166
192
- <a name="l00167"></a>00167 server-&gt;removeClient(client);
193
- <a name="l00168"></a>00168 server-&gt;onClientDisconnected((EventedClient *) client);
194
- <a name="l00169"></a>00169 }
195
- <a name="l00170"></a>00170
196
- <a name="l00171"></a>00171 <span class="keyword">static</span> <span class="keywordtype">void</span> _onDetach(EventedClient *client) {
197
- <a name="l00172"></a>00172 EventedServer *server = (EventedServer *) client-&gt;userData;
198
- <a name="l00173"></a>00173 ScopeGuard guard1(boost::bind(&amp;<a class="code" href="classPassenger_1_1EventedClient.html#a1e480f15dfd339ff781f8daedc5b8190" title="Decrease reference count.">EventedClient::unref</a>, client));
199
- <a name="l00174"></a>00174
200
- <a name="l00175"></a>00175 client-&gt;ref();
201
- <a name="l00176"></a>00176 ScopeGuard guard2(boost::bind(&amp;<a class="code" href="classPassenger_1_1EventedClient.html#a1e480f15dfd339ff781f8daedc5b8190" title="Decrease reference count.">EventedClient::unref</a>, client));
202
- <a name="l00177"></a>00177
203
- <a name="l00178"></a>00178 server-&gt;removeClient(client);
204
- <a name="l00179"></a>00179 }
205
- <a name="l00180"></a>00180
206
- <a name="l00181"></a>00181 <span class="keyword">static</span> <span class="keywordtype">void</span> _onSystemError(EventedClient *client, <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;message, <span class="keywordtype">int</span> code) {
207
- <a name="l00182"></a>00182 EventedServer *server = (EventedServer *) client-&gt;userData;
208
- <a name="l00183"></a>00183 server-&gt;logSystemError(client, message, code);
209
- <a name="l00184"></a>00184 }
210
- <a name="l00185"></a>00185
211
- <a name="l00186"></a>00186 <span class="keywordtype">void</span> exceptionThrownWhileInitializingClient(EventedClient *client, ClientSet::iterator it) {
212
- <a name="l00187"></a>00187 <span class="keywordflow">if</span> (!client-&gt;ioAllowed()) {
213
- <a name="l00188"></a>00188 <span class="comment">// onNewClient() disconnected or detached the</span>
214
- <a name="l00189"></a>00189 <span class="comment">// client, so client refcount == 1</span>
215
- <a name="l00190"></a>00190 client-&gt;unref();
216
- <a name="l00191"></a>00191 } <span class="keywordflow">else</span> {
217
- <a name="l00192"></a>00192 <span class="comment">// client refcount == 2</span>
218
- <a name="l00193"></a>00193 client-&gt;unref();
219
- <a name="l00194"></a>00194 client-&gt;unref();
220
- <a name="l00195"></a>00195 clients.erase(it);
221
- <a name="l00196"></a>00196 }
222
- <a name="l00197"></a>00197 <span class="comment">// Now client refcount == 0</span>
223
- <a name="l00198"></a>00198 }
224
- <a name="l00199"></a>00199
225
- <a name="l00200"></a>00200 <span class="keywordtype">void</span> onAcceptable(ev::io &amp;w, <span class="keywordtype">int</span> revents) {
226
- <a name="l00201"></a>00201 this_thread::disable_syscall_interruption dsi;
227
- <a name="l00202"></a>00202 <span class="keywordtype">int</span> i = 0;
228
- <a name="l00203"></a>00203 <span class="keywordtype">bool</span> done = <span class="keyword">false</span>;
229
- <a name="l00204"></a>00204
230
- <a name="l00205"></a>00205 <span class="comment">// Accept at most 10 connections on every accept readiness event</span>
231
- <a name="l00206"></a>00206 <span class="comment">// in order to give other events the chance to be processed.</span>
232
- <a name="l00207"></a>00207 <span class="keywordflow">while</span> (i &lt; 10 &amp;&amp; !done) {
233
- <a name="l00208"></a>00208 <span class="comment">// Reserve enough space to hold both a Unix domain socket</span>
234
- <a name="l00209"></a>00209 <span class="comment">// address and an IP socket address.</span>
235
- <a name="l00210"></a>00210 <span class="keyword">union </span>{
236
- <a name="l00211"></a>00211 <span class="keyword">struct </span>sockaddr_un local;
237
- <a name="l00212"></a>00212 <span class="keyword">struct </span>sockaddr_in inet;
238
- <a name="l00213"></a>00213 } addr;
239
- <a name="l00214"></a>00214 socklen_t len = <span class="keyword">sizeof</span>(addr);
240
- <a name="l00215"></a>00215
241
- <a name="l00216"></a>00216 <span class="keywordtype">int</span> clientfd = syscalls::accept(fd, (<span class="keyword">struct</span> sockaddr *) &amp;addr, &amp;len);
242
- <a name="l00217"></a>00217 <span class="keywordflow">if</span> (clientfd == -1) {
243
- <a name="l00218"></a>00218 <span class="keywordflow">if</span> (errno != EAGAIN &amp;&amp; errno != EWOULDBLOCK) {
244
- <a name="l00219"></a>00219 <span class="keywordtype">int</span> e = errno;
245
- <a name="l00220"></a>00220 logSystemError(<span class="stringliteral">&quot;Cannot accept new client&quot;</span>, e);
246
- <a name="l00221"></a>00221 }
247
- <a name="l00222"></a>00222 done = <span class="keyword">true</span>;
248
- <a name="l00223"></a>00223 } <span class="keywordflow">else</span> {
249
- <a name="l00224"></a>00224 FileDescriptor clientfdGuard = clientfd;
250
- <a name="l00225"></a>00225 <span class="keywordtype">int</span> optval = 1;
251
- <a name="l00226"></a>00226
252
- <a name="l00227"></a>00227 setNonBlocking(clientfdGuard);
253
- <a name="l00228"></a>00228 syscalls::setsockopt(clientfd, SOL_SOCKET, SO_KEEPALIVE,
254
- <a name="l00229"></a>00229 &amp;optval, <span class="keyword">sizeof</span>(optval));
255
- <a name="l00230"></a>00230
256
- <a name="l00231"></a>00231 EventedClient *client = createClient(clientfdGuard);
257
- <a name="l00232"></a>00232 client-&gt;onReadable = _onReadable;
258
- <a name="l00233"></a>00233 client-&gt;onDisconnect = _onDisconnect;
259
- <a name="l00234"></a>00234 client-&gt;onDetach = _onDetach;
260
- <a name="l00235"></a>00235 client-&gt;onSystemError = _onSystemError;
261
- <a name="l00236"></a>00236 client-&gt;userData = <span class="keyword">this</span>;
262
- <a name="l00237"></a>00237 client-&gt;notifyReads(<span class="keyword">true</span>);
263
- <a name="l00238"></a>00238
264
- <a name="l00239"></a>00239 pair&lt;ClientSet::iterator, bool&gt; p = clients.insert(client);
265
- <a name="l00240"></a>00240
266
- <a name="l00241"></a>00241 client-&gt;ref();
267
- <a name="l00242"></a>00242 <span class="comment">// client refcount == 2</span>
268
- <a name="l00243"></a>00243 {
269
- <a name="l00244"></a>00244 ScopeGuard g(boost::bind(
270
- <a name="l00245"></a>00245 &amp;EventedServer::exceptionThrownWhileInitializingClient,
271
- <a name="l00246"></a>00246 <span class="keyword">this</span>,
272
- <a name="l00247"></a>00247 client,
273
- <a name="l00248"></a>00248 p.first));
274
- <a name="l00249"></a>00249 onNewClient(client);
275
- <a name="l00250"></a>00250 g.clear();
276
- <a name="l00251"></a>00251 <span class="comment">// If exception occurred: client refcount == 0</span>
277
- <a name="l00252"></a>00252 }
278
- <a name="l00253"></a>00253
279
- <a name="l00254"></a>00254 <span class="comment">/* No exception occured.</span>
280
- <a name="l00255"></a>00255 <span class="comment"> * If onNewClient() disconnected or detached the client:</span>
281
- <a name="l00256"></a>00256 <span class="comment"> * client refcount == 1</span>
282
- <a name="l00257"></a>00257 <span class="comment"> * We want the refcount to become 0.</span>
283
- <a name="l00258"></a>00258 <span class="comment"> * If not:</span>
284
- <a name="l00259"></a>00259 <span class="comment"> * client refcount == 2</span>
285
- <a name="l00260"></a>00260 <span class="comment"> * We want the refcount to become 1.</span>
286
- <a name="l00261"></a>00261 <span class="comment"> */</span>
287
- <a name="l00262"></a>00262 client-&gt;unref();
288
- <a name="l00263"></a>00263 }
289
- <a name="l00264"></a>00264 i++;
290
- <a name="l00265"></a>00265 }
291
- <a name="l00266"></a>00266 }
292
- <a name="l00267"></a>00267
293
- <a name="l00268"></a>00268 <span class="keyword">public</span>:
294
- <a name="l00269"></a>00269 EventedServer(<span class="keyword">struct</span> ev_loop *_loop, FileDescriptor serverFd)
295
- <a name="l00270"></a>00270 : loop(_loop),
296
- <a name="l00271"></a>00271 acceptWatcher(_loop)
297
- <a name="l00272"></a>00272 {
298
- <a name="l00273"></a>00273 fd = serverFd;
299
- <a name="l00274"></a>00274 setNonBlocking(serverFd);
300
- <a name="l00275"></a>00275 acceptWatcher.set&lt;EventedServer, &amp;EventedServer::onAcceptable&gt;(<span class="keyword">this</span>);
301
- <a name="l00276"></a>00276 acceptWatcher.start(fd, ev::READ);
302
- <a name="l00277"></a>00277 }
303
- <a name="l00278"></a>00278
304
- <a name="l00279"></a>00279 <span class="keyword">virtual</span> ~EventedServer() {
305
- <a name="l00280"></a>00280 freeAllClients();
306
- <a name="l00281"></a>00281 }
307
- <a name="l00282"></a>00282
308
- <a name="l00283"></a>00283 <span class="keyword">struct </span>ev_loop *getLoop()<span class="keyword"> const </span>{
309
- <a name="l00284"></a>00284 <span class="keywordflow">return</span> loop;
310
- <a name="l00285"></a>00285 }
311
- <a name="l00286"></a>00286
312
- <a name="l00287"></a>00287 FileDescriptor getServerFd()<span class="keyword"> const </span>{
313
- <a name="l00288"></a>00288 <span class="keywordflow">return</span> fd;
314
- <a name="l00289"></a>00289 }
315
- <a name="l00290"></a>00290 };
316
- <a name="l00291"></a>00291
317
- <a name="l00292"></a>00292
318
- <a name="l00293"></a>00293 } <span class="comment">// namespace Passenger</span>
319
- <a name="l00294"></a>00294
320
- <a name="l00295"></a>00295 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_EVENTED_SERVER_H_ */</span>
321
- </pre></div></div>
322
- <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
323
- <a href="http://www.doxygen.org/index.html">
324
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
325
- </body>
326
- </html>
@@ -1,363 +0,0 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
- <title>Passenger: Exceptions.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>Exceptions.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_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();
104
- <a name="l00082"></a>00082 }
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>
358
- </pre></div></div>
359
- <hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 28 14:11:56 2010 for Passenger by&nbsp;
360
- <a href="http://www.doxygen.org/index.html">
361
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
362
- </body>
363
- </html>