zeroc-ice 3.7.10 → 3.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (936) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Connection.cpp +536 -0
  3. data/dist/IceRuby/Endpoint.cpp +344 -0
  4. data/dist/IceRuby/ImplicitContext.cpp +148 -0
  5. data/dist/IceRuby/Logger.cpp +151 -0
  6. data/dist/IceRuby/Operation.cpp +665 -0
  7. data/dist/IceRuby/Properties.cpp +369 -0
  8. data/dist/IceRuby/Types.cpp +3336 -0
  9. data/dist/IceRuby/Types.h +604 -0
  10. data/dist/IceRuby/ValueFactoryManager.cpp +445 -0
  11. data/dist/ice/cpp/include/Ice/ExceptionHelpers.h +74 -0
  12. data/dist/ice/cpp/include/Ice/Initialize.h +957 -0
  13. data/dist/ice/cpp/include/Ice/MetricsObserverI.h +669 -0
  14. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +868 -0
  15. data/dist/ice/cpp/include/Ice/Proxy.h +5171 -0
  16. data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +90 -0
  17. data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +1889 -0
  18. data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +1197 -0
  19. data/dist/ice/cpp/include/IceUtil/Cond.h +317 -0
  20. data/dist/ice/cpp/include/IceUtil/Config.h +392 -0
  21. data/dist/ice/cpp/include/IceUtil/CtrlCHandler.h +96 -0
  22. data/dist/ice/cpp/include/IceUtil/InputUtil.h +42 -0
  23. data/dist/ice/cpp/include/IceUtil/ResourceConfig.h +37 -0
  24. data/dist/ice/cpp/include/IceUtil/Timer.h +153 -0
  25. data/dist/ice/cpp/include/generated/Glacier2/Metrics.h +475 -0
  26. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifier.h +1430 -0
  27. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifierF.h +147 -0
  28. data/dist/ice/cpp/include/generated/Glacier2/Router.h +3260 -0
  29. data/dist/ice/cpp/include/generated/Glacier2/RouterF.h +125 -0
  30. data/dist/ice/cpp/include/generated/Glacier2/SSLInfo.h +223 -0
  31. data/dist/ice/cpp/include/generated/Glacier2/Session.h +5894 -0
  32. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +170 -0
  33. data/dist/ice/cpp/include/generated/Ice/Communicator.h +1162 -0
  34. data/dist/ice/cpp/include/generated/Ice/CommunicatorF.h +101 -0
  35. data/dist/ice/cpp/include/generated/Ice/Connection.h +1703 -0
  36. data/dist/ice/cpp/include/generated/Ice/ConnectionF.h +119 -0
  37. data/dist/ice/cpp/include/generated/Ice/Current.h +322 -0
  38. data/dist/ice/cpp/include/generated/Ice/Endpoint.h +979 -0
  39. data/dist/ice/cpp/include/generated/Ice/EndpointF.h +166 -0
  40. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +118 -0
  41. data/dist/ice/cpp/include/generated/Ice/FacetMap.h +80 -0
  42. data/dist/ice/cpp/include/generated/Ice/Identity.h +264 -0
  43. data/dist/ice/cpp/include/generated/Ice/ImplicitContext.h +284 -0
  44. data/dist/ice/cpp/include/generated/Ice/ImplicitContextF.h +101 -0
  45. data/dist/ice/cpp/include/generated/Ice/Instrumentation.h +1203 -0
  46. data/dist/ice/cpp/include/generated/Ice/InstrumentationF.h +128 -0
  47. data/dist/ice/cpp/include/generated/Ice/LocalException.h +7437 -0
  48. data/dist/ice/cpp/include/generated/Ice/Locator.h +3898 -0
  49. data/dist/ice/cpp/include/generated/Ice/LocatorF.h +147 -0
  50. data/dist/ice/cpp/include/generated/Ice/Logger.h +237 -0
  51. data/dist/ice/cpp/include/generated/Ice/LoggerF.h +101 -0
  52. data/dist/ice/cpp/include/generated/Ice/Metrics.h +4769 -0
  53. data/dist/ice/cpp/include/generated/Ice/ObjectAdapter.h +1181 -0
  54. data/dist/ice/cpp/include/generated/Ice/ObjectAdapterF.h +101 -0
  55. data/dist/ice/cpp/include/generated/Ice/ObjectFactory.h +203 -0
  56. data/dist/ice/cpp/include/generated/Ice/Plugin.h +318 -0
  57. data/dist/ice/cpp/include/generated/Ice/PluginF.h +110 -0
  58. data/dist/ice/cpp/include/generated/Ice/Process.h +977 -0
  59. data/dist/ice/cpp/include/generated/Ice/ProcessF.h +125 -0
  60. data/dist/ice/cpp/include/generated/Ice/Properties.h +452 -0
  61. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +1366 -0
  62. data/dist/ice/cpp/include/generated/Ice/PropertiesF.h +134 -0
  63. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +2707 -0
  64. data/dist/ice/cpp/include/generated/Ice/Router.h +1850 -0
  65. data/dist/ice/cpp/include/generated/Ice/RouterF.h +125 -0
  66. data/dist/ice/cpp/include/generated/Ice/ServantLocator.h +305 -0
  67. data/dist/ice/cpp/include/generated/Ice/ServantLocatorF.h +101 -0
  68. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +84 -0
  69. data/dist/ice/cpp/include/generated/Ice/ValueFactory.h +330 -0
  70. data/dist/ice/cpp/include/generated/Ice/Version.h +357 -0
  71. data/dist/ice/cpp/include/generated/IceBox/IceBox.h +3269 -0
  72. data/dist/ice/cpp/include/generated/IceGrid/Admin.h +33773 -0
  73. data/dist/ice/cpp/include/generated/IceGrid/Descriptor.h +5254 -0
  74. data/dist/ice/cpp/include/generated/IceGrid/Exception.h +2834 -0
  75. data/dist/ice/cpp/include/generated/IceGrid/FileParser.h +824 -0
  76. data/dist/ice/cpp/include/generated/IceGrid/PluginFacade.h +635 -0
  77. data/dist/ice/cpp/include/generated/IceGrid/Registry.h +5089 -0
  78. data/dist/ice/cpp/include/generated/IceGrid/Session.h +2240 -0
  79. data/dist/ice/cpp/include/generated/IceGrid/UserAccountMapper.h +800 -0
  80. data/dist/ice/cpp/include/generated/IcePatch2/FileInfo.h +325 -0
  81. data/dist/ice/cpp/include/generated/IcePatch2/FileServer.h +2891 -0
  82. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +228 -0
  83. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +101 -0
  84. data/dist/ice/cpp/include/generated/IceSSL/EndpointInfo.h +186 -0
  85. data/dist/ice/cpp/include/generated/IceStorm/IceStorm.h +6627 -0
  86. data/dist/ice/cpp/include/generated/IceStorm/Metrics.h +665 -0
  87. data/dist/ice/cpp/src/Ice/Application.cpp +661 -0
  88. data/dist/ice/cpp/src/Ice/CountDownLatch.cpp +171 -0
  89. data/dist/ice/cpp/src/Ice/DLLMain.cpp +50 -0
  90. data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +189 -0
  91. data/dist/ice/cpp/src/Ice/EndpointI.cpp +98 -0
  92. data/dist/ice/cpp/src/Ice/InputStream.cpp +2741 -0
  93. data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +694 -0
  94. data/dist/ice/cpp/src/Ice/Network.cpp +2249 -0
  95. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +1530 -0
  96. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +1322 -0
  97. data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +503 -0
  98. data/dist/ice/cpp/src/Ice/PropertyNames.cpp +1428 -0
  99. data/dist/ice/cpp/src/Ice/PropertyNames.h +78 -0
  100. data/dist/ice/cpp/src/Ice/Proxy.cpp +1604 -0
  101. data/dist/ice/cpp/src/Ice/Selector.cpp +1535 -0
  102. data/dist/ice/cpp/src/Ice/Service.cpp +1883 -0
  103. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +1292 -0
  104. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +49 -0
  105. data/dist/ice/cpp/src/Ice/generated/Communicator.cpp +79 -0
  106. data/dist/ice/cpp/src/Ice/generated/CommunicatorF.cpp +61 -0
  107. data/dist/ice/cpp/src/Ice/generated/Connection.cpp +155 -0
  108. data/dist/ice/cpp/src/Ice/generated/ConnectionF.cpp +61 -0
  109. data/dist/ice/cpp/src/Ice/generated/Current.cpp +62 -0
  110. data/dist/ice/cpp/src/Ice/generated/Endpoint.cpp +147 -0
  111. data/dist/ice/cpp/src/Ice/generated/EndpointF.cpp +61 -0
  112. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +51 -0
  113. data/dist/ice/cpp/src/Ice/generated/FacetMap.cpp +49 -0
  114. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +57 -0
  115. data/dist/ice/cpp/src/Ice/generated/ImplicitContext.cpp +75 -0
  116. data/dist/ice/cpp/src/Ice/generated/ImplicitContextF.cpp +61 -0
  117. data/dist/ice/cpp/src/Ice/generated/Instrumentation.cpp +188 -0
  118. data/dist/ice/cpp/src/Ice/generated/InstrumentationF.cpp +66 -0
  119. data/dist/ice/cpp/src/Ice/generated/LocalException.cpp +3262 -0
  120. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +2042 -0
  121. data/dist/ice/cpp/src/Ice/generated/LocatorF.cpp +63 -0
  122. data/dist/ice/cpp/src/Ice/generated/Logger.cpp +73 -0
  123. data/dist/ice/cpp/src/Ice/generated/LoggerF.cpp +61 -0
  124. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +2352 -0
  125. data/dist/ice/cpp/src/Ice/generated/ObjectAdapter.cpp +79 -0
  126. data/dist/ice/cpp/src/Ice/generated/ObjectAdapterF.cpp +61 -0
  127. data/dist/ice/cpp/src/Ice/generated/ObjectFactory.cpp +75 -0
  128. data/dist/ice/cpp/src/Ice/generated/Plugin.cpp +87 -0
  129. data/dist/ice/cpp/src/Ice/generated/PluginF.cpp +61 -0
  130. data/dist/ice/cpp/src/Ice/generated/Process.cpp +471 -0
  131. data/dist/ice/cpp/src/Ice/generated/ProcessF.cpp +63 -0
  132. data/dist/ice/cpp/src/Ice/generated/Properties.cpp +78 -0
  133. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +603 -0
  134. data/dist/ice/cpp/src/Ice/generated/PropertiesF.cpp +63 -0
  135. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +1171 -0
  136. data/dist/ice/cpp/src/Ice/generated/Router.cpp +977 -0
  137. data/dist/ice/cpp/src/Ice/generated/RouterF.cpp +63 -0
  138. data/dist/ice/cpp/src/Ice/generated/ServantLocator.cpp +75 -0
  139. data/dist/ice/cpp/src/Ice/generated/ServantLocatorF.cpp +61 -0
  140. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +49 -0
  141. data/dist/ice/cpp/src/Ice/generated/ValueFactory.cpp +83 -0
  142. data/dist/ice/cpp/src/Ice/generated/Version.cpp +57 -0
  143. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.cpp +154 -0
  144. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.h +49 -0
  145. data/dist/ice/cpp/src/Ice/ios/StreamConnector.cpp +146 -0
  146. data/dist/ice/cpp/src/Ice/ios/StreamConnector.h +52 -0
  147. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.cpp +477 -0
  148. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.h +156 -0
  149. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.cpp +570 -0
  150. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.h +93 -0
  151. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery/IceDiscovery.h +1889 -0
  152. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery.cpp +915 -0
  153. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery/IceLocatorDiscovery.h +1197 -0
  154. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery.cpp +730 -0
  155. data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +1092 -0
  156. data/dist/ice/cpp/src/IceSSL/PluginI.cpp +246 -0
  157. data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +719 -0
  158. data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +868 -0
  159. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfo.cpp +75 -0
  160. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfoF.cpp +61 -0
  161. data/dist/ice/cpp/src/IceSSL/generated/EndpointInfo.cpp +75 -0
  162. data/dist/ice/cpp/src/IceUtil/StringConverter.cpp +690 -0
  163. data/dist/ice/cpp/src/Slice/JavaUtil.cpp +5183 -0
  164. data/dist/ice/cpp/src/slice2rb/Main.cpp +35 -0
  165. data/dist/ice/mcpp/directive.c +1407 -0
  166. data/dist/ice/mcpp/internal.H +530 -0
  167. data/dist/ice/mcpp/mcpp_main.c +792 -0
  168. data/dist/ice/mcpp/support.c +1985 -0
  169. data/dist/ice/mcpp/system.c +2741 -0
  170. data/dist/ice/slice/Ice/Connection.ice +516 -0
  171. data/dist/ice/slice/Ice/Locator.ice +239 -0
  172. data/dist/ice/slice/Ice/Metrics.ice +436 -0
  173. data/dist/ice/slice/Ice/ObjectAdapter.ice +710 -0
  174. data/dist/ice/slice/Ice/Router.ice +103 -0
  175. data/dist/ice/slice/IceGrid/PluginFacade.ice +329 -0
  176. data/dist/ice/slice/IceStorm/IceStorm.ice +414 -0
  177. data/dist/lib/Glacier2/Metrics.rb +56 -0
  178. data/dist/lib/Glacier2/PermissionsVerifier.rb +93 -0
  179. data/dist/lib/Glacier2/PermissionsVerifierF.rb +30 -0
  180. data/dist/lib/Glacier2/Router.rb +95 -0
  181. data/dist/lib/Glacier2/RouterF.rb +25 -0
  182. data/dist/lib/Glacier2/SSLInfo.rb +72 -0
  183. data/dist/lib/Glacier2/Session.rb +247 -0
  184. data/dist/lib/Ice/BuiltinSequences.rb +60 -0
  185. data/dist/lib/Ice/Communicator.rb +87 -0
  186. data/dist/lib/Ice/CommunicatorF.rb +24 -0
  187. data/dist/lib/Ice/Connection.rb +413 -0
  188. data/dist/lib/Ice/ConnectionF.rb +32 -0
  189. data/dist/lib/Ice/Current.rb +141 -0
  190. data/dist/lib/Ice/Endpoint.rb +187 -0
  191. data/dist/lib/Ice/EndpointF.rb +48 -0
  192. data/dist/lib/Ice/EndpointTypes.rb +69 -0
  193. data/dist/lib/Ice/FacetMap.rb +24 -0
  194. data/dist/lib/Ice/Identity.rb +63 -0
  195. data/dist/lib/Ice/ImplicitContext.rb +26 -0
  196. data/dist/lib/Ice/ImplicitContextF.rb +24 -0
  197. data/dist/lib/Ice/Instrumentation.rb +169 -0
  198. data/dist/lib/Ice/InstrumentationF.rb +31 -0
  199. data/dist/lib/Ice/LocalException.rb +1031 -0
  200. data/dist/lib/Ice/Locator.rb +196 -0
  201. data/dist/lib/Ice/LocatorF.rb +30 -0
  202. data/dist/lib/Ice/Logger.rb +24 -0
  203. data/dist/lib/Ice/LoggerF.rb +24 -0
  204. data/dist/lib/Ice/Metrics.rb +337 -0
  205. data/dist/lib/Ice/ObjectAdapter.rb +29 -0
  206. data/dist/lib/Ice/ObjectAdapterF.rb +24 -0
  207. data/dist/lib/Ice/ObjectFactory.rb +24 -0
  208. data/dist/lib/Ice/Plugin.rb +30 -0
  209. data/dist/lib/Ice/PluginF.rb +28 -0
  210. data/dist/lib/Ice/Process.rb +53 -0
  211. data/dist/lib/Ice/ProcessF.rb +25 -0
  212. data/dist/lib/Ice/Properties.rb +25 -0
  213. data/dist/lib/Ice/PropertiesAdmin.rb +63 -0
  214. data/dist/lib/Ice/PropertiesF.rb +29 -0
  215. data/dist/lib/Ice/RemoteLogger.rb +207 -0
  216. data/dist/lib/Ice/Router.rb +87 -0
  217. data/dist/lib/Ice/RouterF.rb +25 -0
  218. data/dist/lib/Ice/ServantLocator.rb +26 -0
  219. data/dist/lib/Ice/ServantLocatorF.rb +24 -0
  220. data/dist/lib/Ice/SliceChecksumDict.rb +24 -0
  221. data/dist/lib/Ice/ValueFactory.rb +28 -0
  222. data/dist/lib/Ice/Version.rb +90 -0
  223. data/dist/lib/IceBox/IceBox.rb +164 -0
  224. data/dist/lib/IceGrid/Admin.rb +1196 -0
  225. data/dist/lib/IceGrid/Descriptor.rb +1034 -0
  226. data/dist/lib/IceGrid/Exception.rb +376 -0
  227. data/dist/lib/IceGrid/FileParser.rb +65 -0
  228. data/dist/lib/IceGrid/PluginFacade.rb +35 -0
  229. data/dist/lib/IceGrid/Registry.rb +209 -0
  230. data/dist/lib/IceGrid/Session.rb +71 -0
  231. data/dist/lib/IceGrid/UserAccountMapper.rb +61 -0
  232. data/dist/lib/IcePatch2/FileInfo.rb +115 -0
  233. data/dist/lib/IcePatch2/FileServer.rb +123 -0
  234. data/dist/lib/IceStorm/IceStorm.rb +332 -0
  235. data/dist/lib/IceStorm/Metrics.rb +73 -0
  236. data/extconf.rb +91 -0
  237. data/ice.gemspec +21 -16
  238. metadata +715 -711
  239. data/ICE_LICENSE +0 -48
  240. data/LICENSE +0 -340
  241. data/MCPP_LICENSE +0 -29
  242. data/ext/Connection.cpp +0 -532
  243. data/ext/Endpoint.cpp +0 -340
  244. data/ext/ImplicitContext.cpp +0 -144
  245. data/ext/Logger.cpp +0 -147
  246. data/ext/Operation.cpp +0 -661
  247. data/ext/Properties.cpp +0 -365
  248. data/ext/Types.cpp +0 -3325
  249. data/ext/Types.h +0 -595
  250. data/ext/ValueFactoryManager.cpp +0 -441
  251. data/ext/extconf.rb +0 -97
  252. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  253. data/ext/ice/cpp/include/Ice/Initialize.h +0 -957
  254. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  255. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +0 -856
  256. data/ext/ice/cpp/include/Ice/Proxy.h +0 -5154
  257. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +0 -88
  258. data/ext/ice/cpp/include/IceSSL/UWP.h +0 -62
  259. data/ext/ice/cpp/include/IceUtil/Cond.h +0 -317
  260. data/ext/ice/cpp/include/IceUtil/Config.h +0 -392
  261. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -92
  262. data/ext/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  263. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
  264. data/ext/ice/cpp/include/IceUtil/Timer.h +0 -144
  265. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +0 -170
  266. data/ext/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  267. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  268. data/ext/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  269. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  270. data/ext/ice/cpp/include/generated/Ice/Current.h +0 -322
  271. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  272. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  273. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +0 -118
  274. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  275. data/ext/ice/cpp/include/generated/Ice/Identity.h +0 -264
  276. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  277. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  278. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  279. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  280. data/ext/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  281. data/ext/ice/cpp/include/generated/Ice/Locator.h +0 -3898
  282. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  283. data/ext/ice/cpp/include/generated/Ice/Logger.h +0 -237
  284. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  285. data/ext/ice/cpp/include/generated/Ice/Metrics.h +0 -4769
  286. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  287. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  288. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  289. data/ext/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  290. data/ext/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  291. data/ext/ice/cpp/include/generated/Ice/Process.h +0 -977
  292. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  293. data/ext/ice/cpp/include/generated/Ice/Properties.h +0 -452
  294. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +0 -1366
  295. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  296. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +0 -2707
  297. data/ext/ice/cpp/include/generated/Ice/Router.h +0 -1850
  298. data/ext/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  299. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  300. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  301. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +0 -84
  302. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  303. data/ext/ice/cpp/include/generated/Ice/Version.h +0 -357
  304. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  305. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  306. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  307. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +0 -49
  308. data/ext/ice/cpp/src/Ice/Communicator.cpp +0 -79
  309. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +0 -61
  310. data/ext/ice/cpp/src/Ice/Connection.cpp +0 -155
  311. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +0 -61
  312. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
  313. data/ext/ice/cpp/src/Ice/Current.cpp +0 -62
  314. data/ext/ice/cpp/src/Ice/Endpoint.cpp +0 -147
  315. data/ext/ice/cpp/src/Ice/EndpointF.cpp +0 -61
  316. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +0 -189
  317. data/ext/ice/cpp/src/Ice/EndpointI.cpp +0 -98
  318. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +0 -51
  319. data/ext/ice/cpp/src/Ice/FacetMap.cpp +0 -49
  320. data/ext/ice/cpp/src/Ice/Identity.cpp +0 -57
  321. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +0 -75
  322. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +0 -61
  323. data/ext/ice/cpp/src/Ice/InputStream.cpp +0 -2741
  324. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +0 -188
  325. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +0 -66
  326. data/ext/ice/cpp/src/Ice/LocalException.cpp +0 -3262
  327. data/ext/ice/cpp/src/Ice/Locator.cpp +0 -2042
  328. data/ext/ice/cpp/src/Ice/LocatorF.cpp +0 -63
  329. data/ext/ice/cpp/src/Ice/Logger.cpp +0 -73
  330. data/ext/ice/cpp/src/Ice/LoggerF.cpp +0 -61
  331. data/ext/ice/cpp/src/Ice/Metrics.cpp +0 -2352
  332. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +0 -694
  333. data/ext/ice/cpp/src/Ice/Network.cpp +0 -2249
  334. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +0 -79
  335. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +0 -61
  336. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +0 -1530
  337. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +0 -75
  338. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +0 -1322
  339. data/ext/ice/cpp/src/Ice/Plugin.cpp +0 -87
  340. data/ext/ice/cpp/src/Ice/PluginF.cpp +0 -61
  341. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +0 -503
  342. data/ext/ice/cpp/src/Ice/Process.cpp +0 -471
  343. data/ext/ice/cpp/src/Ice/ProcessF.cpp +0 -63
  344. data/ext/ice/cpp/src/Ice/Properties.cpp +0 -78
  345. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +0 -603
  346. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +0 -63
  347. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +0 -1429
  348. data/ext/ice/cpp/src/Ice/PropertyNames.h +0 -78
  349. data/ext/ice/cpp/src/Ice/Proxy.cpp +0 -1601
  350. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +0 -1171
  351. data/ext/ice/cpp/src/Ice/Router.cpp +0 -977
  352. data/ext/ice/cpp/src/Ice/RouterF.cpp +0 -63
  353. data/ext/ice/cpp/src/Ice/Selector.cpp +0 -1525
  354. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +0 -75
  355. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +0 -61
  356. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +0 -49
  357. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +0 -1292
  358. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +0 -83
  359. data/ext/ice/cpp/src/Ice/Version.cpp +0 -57
  360. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +0 -915
  361. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +0 -1889
  362. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +0 -730
  363. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  364. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +0 -75
  365. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +0 -61
  366. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +0 -75
  367. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  368. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  369. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  370. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  371. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +0 -266
  372. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +0 -338
  373. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +0 -41
  374. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +0 -26
  375. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +0 -89
  376. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +0 -383
  377. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +0 -71
  378. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  379. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +0 -5176
  380. data/ext/ice/mcpp/CMakeLists.txt +0 -80
  381. data/ext/ice/mcpp/LICENSE +0 -29
  382. data/ext/ice/mcpp/Makefile +0 -63
  383. data/ext/ice/mcpp/README.md +0 -32
  384. data/ext/ice/mcpp/directive.c +0 -1404
  385. data/ext/ice/mcpp/internal.H +0 -530
  386. data/ext/ice/mcpp/main.c +0 -792
  387. data/ext/ice/mcpp/mcpp.gyp +0 -88
  388. data/ext/ice/mcpp/support.c +0 -1985
  389. data/ext/ice/mcpp/system.c +0 -2737
  390. data/lib/Glacier2/Metrics.rb +0 -56
  391. data/lib/Glacier2/PermissionsVerifier.rb +0 -93
  392. data/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  393. data/lib/Glacier2/Router.rb +0 -95
  394. data/lib/Glacier2/RouterF.rb +0 -25
  395. data/lib/Glacier2/SSLInfo.rb +0 -72
  396. data/lib/Glacier2/Session.rb +0 -247
  397. data/lib/Ice/BuiltinSequences.rb +0 -60
  398. data/lib/Ice/Communicator.rb +0 -87
  399. data/lib/Ice/CommunicatorF.rb +0 -24
  400. data/lib/Ice/Connection.rb +0 -413
  401. data/lib/Ice/ConnectionF.rb +0 -32
  402. data/lib/Ice/Current.rb +0 -141
  403. data/lib/Ice/Endpoint.rb +0 -187
  404. data/lib/Ice/EndpointF.rb +0 -48
  405. data/lib/Ice/EndpointTypes.rb +0 -69
  406. data/lib/Ice/FacetMap.rb +0 -24
  407. data/lib/Ice/Identity.rb +0 -63
  408. data/lib/Ice/ImplicitContext.rb +0 -26
  409. data/lib/Ice/ImplicitContextF.rb +0 -24
  410. data/lib/Ice/Instrumentation.rb +0 -169
  411. data/lib/Ice/InstrumentationF.rb +0 -31
  412. data/lib/Ice/LocalException.rb +0 -1031
  413. data/lib/Ice/Locator.rb +0 -196
  414. data/lib/Ice/LocatorF.rb +0 -30
  415. data/lib/Ice/Logger.rb +0 -24
  416. data/lib/Ice/LoggerF.rb +0 -24
  417. data/lib/Ice/Metrics.rb +0 -337
  418. data/lib/Ice/ObjectAdapter.rb +0 -29
  419. data/lib/Ice/ObjectAdapterF.rb +0 -24
  420. data/lib/Ice/ObjectFactory.rb +0 -24
  421. data/lib/Ice/Plugin.rb +0 -30
  422. data/lib/Ice/PluginF.rb +0 -28
  423. data/lib/Ice/Process.rb +0 -53
  424. data/lib/Ice/ProcessF.rb +0 -25
  425. data/lib/Ice/Properties.rb +0 -25
  426. data/lib/Ice/PropertiesAdmin.rb +0 -63
  427. data/lib/Ice/PropertiesF.rb +0 -29
  428. data/lib/Ice/RemoteLogger.rb +0 -207
  429. data/lib/Ice/Router.rb +0 -87
  430. data/lib/Ice/RouterF.rb +0 -25
  431. data/lib/Ice/ServantLocator.rb +0 -26
  432. data/lib/Ice/ServantLocatorF.rb +0 -24
  433. data/lib/Ice/SliceChecksumDict.rb +0 -24
  434. data/lib/Ice/ValueFactory.rb +0 -28
  435. data/lib/Ice/Version.rb +0 -90
  436. data/lib/IceBox/IceBox.rb +0 -164
  437. data/lib/IceGrid/Admin.rb +0 -1196
  438. data/lib/IceGrid/Descriptor.rb +0 -1034
  439. data/lib/IceGrid/Exception.rb +0 -376
  440. data/lib/IceGrid/FileParser.rb +0 -65
  441. data/lib/IceGrid/PluginFacade.rb +0 -35
  442. data/lib/IceGrid/Registry.rb +0 -209
  443. data/lib/IceGrid/Session.rb +0 -71
  444. data/lib/IceGrid/UserAccountMapper.rb +0 -61
  445. data/lib/IcePatch2/FileInfo.rb +0 -115
  446. data/lib/IcePatch2/FileServer.rb +0 -123
  447. data/lib/IceStorm/IceStorm.rb +0 -332
  448. data/lib/IceStorm/Metrics.rb +0 -73
  449. data/slice/Ice/Connection.ice +0 -516
  450. data/slice/Ice/Locator.ice +0 -239
  451. data/slice/Ice/Metrics.ice +0 -436
  452. data/slice/Ice/ObjectAdapter.ice +0 -710
  453. data/slice/Ice/Router.ice +0 -103
  454. data/slice/IceBT/ConnectionInfo.ice +0 -59
  455. data/slice/IceBT/EndpointInfo.ice +0 -57
  456. data/slice/IceBT/Types.ice +0 -45
  457. data/slice/IceDiscovery/IceDiscovery.ice +0 -98
  458. data/slice/IceGrid/PluginFacade.ice +0 -329
  459. data/slice/IceIAP/ConnectionInfo.ice +0 -74
  460. data/slice/IceIAP/EndpointInfo.ice +0 -68
  461. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +0 -83
  462. data/slice/IceSSL/ConnectionInfo.ice +0 -54
  463. data/slice/IceSSL/ConnectionInfoF.ice +0 -31
  464. data/slice/IceSSL/EndpointInfo.ice +0 -45
  465. data/slice/IceStorm/IceStorm.ice +0 -414
  466. /data/{ext → dist/IceRuby}/Communicator.cpp +0 -0
  467. /data/{ext → dist/IceRuby}/Communicator.h +0 -0
  468. /data/{ext → dist/IceRuby}/Config.h +0 -0
  469. /data/{ext → dist/IceRuby}/Connection.h +0 -0
  470. /data/{ext → dist/IceRuby}/Endpoint.h +0 -0
  471. /data/{ext → dist/IceRuby}/ImplicitContext.h +0 -0
  472. /data/{ext → dist/IceRuby}/Init.cpp +0 -0
  473. /data/{ext → dist/IceRuby}/Logger.h +0 -0
  474. /data/{ext → dist/IceRuby}/Operation.h +0 -0
  475. /data/{ext → dist/IceRuby}/Properties.h +0 -0
  476. /data/{ext → dist/IceRuby}/Proxy.cpp +0 -0
  477. /data/{ext → dist/IceRuby}/Proxy.h +0 -0
  478. /data/{ext → dist/IceRuby}/Slice.cpp +0 -0
  479. /data/{ext → dist/IceRuby}/Slice.h +0 -0
  480. /data/{ext → dist/IceRuby}/Util.cpp +0 -0
  481. /data/{ext → dist/IceRuby}/Util.h +0 -0
  482. /data/{ext → dist/IceRuby}/ValueFactoryManager.h +0 -0
  483. /data/{ext → dist}/ice/cpp/include/Ice/Application.h +0 -0
  484. /data/{ext → dist}/ice/cpp/include/Ice/AsyncResult.h +0 -0
  485. /data/{ext → dist}/ice/cpp/include/Ice/AsyncResultF.h +0 -0
  486. /data/{ext → dist}/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -0
  487. /data/{ext → dist}/ice/cpp/include/Ice/BatchRequestQueueF.h +0 -0
  488. /data/{ext → dist}/ice/cpp/include/Ice/Buffer.h +0 -0
  489. /data/{ext → dist}/ice/cpp/include/Ice/CommunicatorAsync.h +0 -0
  490. /data/{ext → dist}/ice/cpp/include/Ice/Comparable.h +0 -0
  491. /data/{ext → dist}/ice/cpp/include/Ice/Config.h +0 -0
  492. /data/{ext → dist}/ice/cpp/include/Ice/ConnectionAsync.h +0 -0
  493. /data/{ext → dist}/ice/cpp/include/Ice/ConnectionIF.h +0 -0
  494. /data/{ext → dist}/ice/cpp/include/Ice/ConsoleUtil.h +0 -0
  495. /data/{ext → dist}/ice/cpp/include/Ice/DefaultValueFactory.h +0 -0
  496. /data/{ext → dist}/ice/cpp/include/Ice/DispatchInterceptor.h +0 -0
  497. /data/{ext → dist}/ice/cpp/include/Ice/Dispatcher.h +0 -0
  498. /data/{ext → dist}/ice/cpp/include/Ice/DynamicLibrary.h +0 -0
  499. /data/{ext → dist}/ice/cpp/include/Ice/DynamicLibraryF.h +0 -0
  500. /data/{ext → dist}/ice/cpp/include/Ice/Exception.h +0 -0
  501. /data/{ext → dist}/ice/cpp/include/Ice/FactoryTable.h +0 -0
  502. /data/{ext → dist}/ice/cpp/include/Ice/FactoryTableInit.h +0 -0
  503. /data/{ext → dist}/ice/cpp/include/Ice/Format.h +0 -0
  504. /data/{ext → dist}/ice/cpp/include/Ice/Functional.h +0 -0
  505. /data/{ext → dist}/ice/cpp/include/Ice/GCObject.h +0 -0
  506. /data/{ext → dist}/ice/cpp/include/Ice/Handle.h +0 -0
  507. /data/{ext → dist}/ice/cpp/include/Ice/Ice.h +0 -0
  508. /data/{ext → dist}/ice/cpp/include/Ice/IconvStringConverter.h +0 -0
  509. /data/{ext → dist}/ice/cpp/include/Ice/Incoming.h +0 -0
  510. /data/{ext → dist}/ice/cpp/include/Ice/IncomingAsync.h +0 -0
  511. /data/{ext → dist}/ice/cpp/include/Ice/IncomingAsyncF.h +0 -0
  512. /data/{ext → dist}/ice/cpp/include/Ice/InputStream.h +0 -0
  513. /data/{ext → dist}/ice/cpp/include/Ice/InstanceF.h +0 -0
  514. /data/{ext → dist}/ice/cpp/include/Ice/InterfaceByValue.h +0 -0
  515. /data/{ext → dist}/ice/cpp/include/Ice/LocalObject.h +0 -0
  516. /data/{ext → dist}/ice/cpp/include/Ice/LocalObjectF.h +0 -0
  517. /data/{ext → dist}/ice/cpp/include/Ice/LoggerUtil.h +0 -0
  518. /data/{ext → dist}/ice/cpp/include/Ice/MetricsAdminI.h +0 -0
  519. /data/{ext → dist}/ice/cpp/include/Ice/MetricsFunctional.h +0 -0
  520. /data/{ext → dist}/ice/cpp/include/Ice/NativePropertiesAdmin.h +0 -0
  521. /data/{ext → dist}/ice/cpp/include/Ice/Object.h +0 -0
  522. /data/{ext → dist}/ice/cpp/include/Ice/ObjectF.h +0 -0
  523. /data/{ext → dist}/ice/cpp/include/Ice/ObserverHelper.h +0 -0
  524. /data/{ext → dist}/ice/cpp/include/Ice/Optional.h +0 -0
  525. /data/{ext → dist}/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -0
  526. /data/{ext → dist}/ice/cpp/include/Ice/OutputStream.h +0 -0
  527. /data/{ext → dist}/ice/cpp/include/Ice/Protocol.h +0 -0
  528. /data/{ext → dist}/ice/cpp/include/Ice/ProxyF.h +0 -0
  529. /data/{ext → dist}/ice/cpp/include/Ice/ProxyFactoryF.h +0 -0
  530. /data/{ext → dist}/ice/cpp/include/Ice/ProxyHandle.h +0 -0
  531. /data/{ext → dist}/ice/cpp/include/Ice/ReferenceF.h +0 -0
  532. /data/{ext → dist}/ice/cpp/include/Ice/RegisterPlugins.h +0 -0
  533. /data/{ext → dist}/ice/cpp/include/Ice/RequestHandlerF.h +0 -0
  534. /data/{ext → dist}/ice/cpp/include/Ice/ResponseHandlerF.h +0 -0
  535. /data/{ext → dist}/ice/cpp/include/Ice/SHA1.h +0 -0
  536. /data/{ext → dist}/ice/cpp/include/Ice/ServantManagerF.h +0 -0
  537. /data/{ext → dist}/ice/cpp/include/Ice/Service.h +0 -0
  538. /data/{ext → dist}/ice/cpp/include/Ice/SliceChecksums.h +0 -0
  539. /data/{ext → dist}/ice/cpp/include/Ice/SlicedData.h +0 -0
  540. /data/{ext → dist}/ice/cpp/include/Ice/SlicedDataF.h +0 -0
  541. /data/{ext → dist}/ice/cpp/include/Ice/StreamHelpers.h +0 -0
  542. /data/{ext → dist}/ice/cpp/include/Ice/StringConverter.h +0 -0
  543. /data/{ext → dist}/ice/cpp/include/Ice/ThreadPoolF.h +0 -0
  544. /data/{ext → dist}/ice/cpp/include/Ice/UUID.h +0 -0
  545. /data/{ext → dist}/ice/cpp/include/Ice/UniquePtr.h +0 -0
  546. /data/{ext → dist}/ice/cpp/include/Ice/UniqueRef.h +0 -0
  547. /data/{ext → dist}/ice/cpp/include/Ice/Value.h +0 -0
  548. /data/{ext → dist}/ice/cpp/include/Ice/ValueF.h +0 -0
  549. /data/{ext → dist}/ice/cpp/include/IceSSL/Config.h +0 -0
  550. /data/{ext → dist}/ice/cpp/include/IceSSL/IceSSL.h +0 -0
  551. /data/{ext → dist}/ice/cpp/include/IceSSL/OpenSSL.h +0 -0
  552. /data/{ext → dist}/ice/cpp/include/IceSSL/Plugin.h +0 -0
  553. /data/{ext → dist}/ice/cpp/include/IceSSL/SChannel.h +0 -0
  554. /data/{ext → dist}/ice/cpp/include/IceSSL/SecureTransport.h +0 -0
  555. /data/{ext → dist}/ice/cpp/include/IceUtil/Atomic.h +0 -0
  556. /data/{ext → dist}/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -0
  557. /data/{ext → dist}/ice/cpp/include/IceUtil/CountDownLatch.h +0 -0
  558. /data/{ext → dist}/ice/cpp/include/IceUtil/DisableWarnings.h +0 -0
  559. /data/{ext → dist}/ice/cpp/include/IceUtil/Exception.h +0 -0
  560. /data/{ext → dist}/ice/cpp/include/IceUtil/FileUtil.h +0 -0
  561. /data/{ext → dist}/ice/cpp/include/IceUtil/Functional.h +0 -0
  562. /data/{ext → dist}/ice/cpp/include/IceUtil/Handle.h +0 -0
  563. /data/{ext → dist}/ice/cpp/include/IceUtil/IceUtil.h +0 -0
  564. /data/{ext → dist}/ice/cpp/include/IceUtil/Iterator.h +0 -0
  565. /data/{ext → dist}/ice/cpp/include/IceUtil/Lock.h +0 -0
  566. /data/{ext → dist}/ice/cpp/include/IceUtil/Monitor.h +0 -0
  567. /data/{ext → dist}/ice/cpp/include/IceUtil/Mutex.h +0 -0
  568. /data/{ext → dist}/ice/cpp/include/IceUtil/MutexProtocol.h +0 -0
  569. /data/{ext → dist}/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -0
  570. /data/{ext → dist}/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -0
  571. /data/{ext → dist}/ice/cpp/include/IceUtil/Optional.h +0 -0
  572. /data/{ext → dist}/ice/cpp/include/IceUtil/Options.h +0 -0
  573. /data/{ext → dist}/ice/cpp/include/IceUtil/OutputUtil.h +0 -0
  574. /data/{ext → dist}/ice/cpp/include/IceUtil/PopDisableWarnings.h +0 -0
  575. /data/{ext → dist}/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -0
  576. /data/{ext → dist}/ice/cpp/include/IceUtil/Random.h +0 -0
  577. /data/{ext → dist}/ice/cpp/include/IceUtil/RecMutex.h +0 -0
  578. /data/{ext → dist}/ice/cpp/include/IceUtil/ScannerConfig.h +0 -0
  579. /data/{ext → dist}/ice/cpp/include/IceUtil/ScopedArray.h +0 -0
  580. /data/{ext → dist}/ice/cpp/include/IceUtil/Shared.h +0 -0
  581. /data/{ext → dist}/ice/cpp/include/IceUtil/StopWatch.h +0 -0
  582. /data/{ext → dist}/ice/cpp/include/IceUtil/StringConverter.h +0 -0
  583. /data/{ext → dist}/ice/cpp/include/IceUtil/StringUtil.h +0 -0
  584. /data/{ext → dist}/ice/cpp/include/IceUtil/Thread.h +0 -0
  585. /data/{ext → dist}/ice/cpp/include/IceUtil/ThreadException.h +0 -0
  586. /data/{ext → dist}/ice/cpp/include/IceUtil/Time.h +0 -0
  587. /data/{ext → dist}/ice/cpp/include/IceUtil/UUID.h +0 -0
  588. /data/{ext → dist}/ice/cpp/include/IceUtil/UndefSysMacros.h +0 -0
  589. /data/{ext → dist}/ice/cpp/src/Ice/ACM.cpp +0 -0
  590. /data/{ext → dist}/ice/cpp/src/Ice/ACM.h +0 -0
  591. /data/{ext → dist}/ice/cpp/src/Ice/ACMF.h +0 -0
  592. /data/{ext → dist}/ice/cpp/src/Ice/Acceptor.cpp +0 -0
  593. /data/{ext → dist}/ice/cpp/src/Ice/Acceptor.h +0 -0
  594. /data/{ext → dist}/ice/cpp/src/Ice/AcceptorF.h +0 -0
  595. /data/{ext → dist}/ice/cpp/src/Ice/ArgVector.cpp +0 -0
  596. /data/{ext → dist}/ice/cpp/src/Ice/ArgVector.h +0 -0
  597. /data/{ext → dist}/ice/cpp/src/Ice/AsyncResult.cpp +0 -0
  598. /data/{ext → dist}/ice/cpp/src/Ice/Base64.cpp +0 -0
  599. /data/{ext → dist}/ice/cpp/src/Ice/Base64.h +0 -0
  600. /data/{ext → dist}/ice/cpp/src/Ice/BatchRequestQueue.cpp +0 -0
  601. /data/{ext → dist}/ice/cpp/src/Ice/BatchRequestQueue.h +0 -0
  602. /data/{ext → dist}/ice/cpp/src/Ice/Buffer.cpp +0 -0
  603. /data/{ext → dist}/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +0 -0
  604. /data/{ext → dist}/ice/cpp/src/Ice/CollocatedRequestHandler.h +0 -0
  605. /data/{ext → dist}/ice/cpp/src/Ice/CommunicatorI.cpp +0 -0
  606. /data/{ext → dist}/ice/cpp/src/Ice/CommunicatorI.h +0 -0
  607. /data/{ext → dist}/ice/cpp/src/Ice/Cond.cpp +0 -0
  608. /data/{ext → dist}/ice/cpp/src/Ice/ConnectRequestHandler.cpp +0 -0
  609. /data/{ext → dist}/ice/cpp/src/Ice/ConnectRequestHandler.h +0 -0
  610. /data/{ext → dist}/ice/cpp/src/Ice/ConnectRequestHandlerF.h +0 -0
  611. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionFactory.cpp +0 -0
  612. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionFactory.h +0 -0
  613. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionFactoryF.h +0 -0
  614. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionI.cpp +0 -0
  615. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionI.h +0 -0
  616. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -0
  617. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -0
  618. /data/{ext → dist}/ice/cpp/src/Ice/Connector.cpp +0 -0
  619. /data/{ext → dist}/ice/cpp/src/Ice/Connector.h +0 -0
  620. /data/{ext → dist}/ice/cpp/src/Ice/ConnectorF.h +0 -0
  621. /data/{ext → dist}/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +0 -0
  622. /data/{ext → dist}/ice/cpp/src/Ice/DefaultsAndOverrides.h +0 -0
  623. /data/{ext → dist}/ice/cpp/src/Ice/DefaultsAndOverridesF.h +0 -0
  624. /data/{ext → dist}/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -0
  625. /data/{ext → dist}/ice/cpp/src/Ice/DynamicLibrary.cpp +0 -0
  626. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactory.h +0 -0
  627. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactoryF.h +0 -0
  628. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactoryManager.cpp +0 -0
  629. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactoryManager.h +0 -0
  630. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactoryManagerF.h +0 -0
  631. /data/{ext → dist}/ice/cpp/src/Ice/EndpointI.h +0 -0
  632. /data/{ext → dist}/ice/cpp/src/Ice/EndpointIF.h +0 -0
  633. /data/{ext → dist}/ice/cpp/src/Ice/EventHandler.cpp +0 -0
  634. /data/{ext → dist}/ice/cpp/src/Ice/EventHandler.h +0 -0
  635. /data/{ext → dist}/ice/cpp/src/Ice/EventHandlerF.h +0 -0
  636. /data/{ext → dist}/ice/cpp/src/Ice/Exception.cpp +0 -0
  637. /data/{ext → dist}/ice/cpp/src/Ice/FactoryTable.cpp +0 -0
  638. /data/{ext → dist}/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -0
  639. /data/{ext → dist}/ice/cpp/src/Ice/GCObject.cpp +0 -0
  640. /data/{ext → dist}/ice/cpp/src/Ice/HashUtil.h +0 -0
  641. /data/{ext → dist}/ice/cpp/src/Ice/HttpParser.cpp +0 -0
  642. /data/{ext → dist}/ice/cpp/src/Ice/HttpParser.h +0 -0
  643. /data/{ext → dist}/ice/cpp/src/Ice/IPEndpointI.cpp +0 -0
  644. /data/{ext → dist}/ice/cpp/src/Ice/IPEndpointI.h +0 -0
  645. /data/{ext → dist}/ice/cpp/src/Ice/IPEndpointIF.h +0 -0
  646. /data/{ext → dist}/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -0
  647. /data/{ext → dist}/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -0
  648. /data/{ext → dist}/ice/cpp/src/Ice/ImplicitContextI.h +0 -0
  649. /data/{ext → dist}/ice/cpp/src/Ice/Incoming.cpp +0 -0
  650. /data/{ext → dist}/ice/cpp/src/Ice/IncomingAsync.cpp +0 -0
  651. /data/{ext → dist}/ice/cpp/src/Ice/IncomingRequest.h +0 -0
  652. /data/{ext → dist}/ice/cpp/src/Ice/Initialize.cpp +0 -0
  653. /data/{ext → dist}/ice/cpp/src/Ice/Instance.cpp +0 -0
  654. /data/{ext → dist}/ice/cpp/src/Ice/Instance.h +0 -0
  655. /data/{ext → dist}/ice/cpp/src/Ice/InstrumentationI.cpp +0 -0
  656. /data/{ext → dist}/ice/cpp/src/Ice/InstrumentationI.h +0 -0
  657. /data/{ext → dist}/ice/cpp/src/Ice/LocalObject.cpp +0 -0
  658. /data/{ext → dist}/ice/cpp/src/Ice/LocatorInfo.cpp +0 -0
  659. /data/{ext → dist}/ice/cpp/src/Ice/LocatorInfo.h +0 -0
  660. /data/{ext → dist}/ice/cpp/src/Ice/LocatorInfoF.h +0 -0
  661. /data/{ext → dist}/ice/cpp/src/Ice/LoggerAdminI.cpp +0 -0
  662. /data/{ext → dist}/ice/cpp/src/Ice/LoggerAdminI.h +0 -0
  663. /data/{ext → dist}/ice/cpp/src/Ice/LoggerI.cpp +0 -0
  664. /data/{ext → dist}/ice/cpp/src/Ice/LoggerI.h +0 -0
  665. /data/{ext → dist}/ice/cpp/src/Ice/LoggerUtil.cpp +0 -0
  666. /data/{ext → dist}/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -0
  667. /data/{ext → dist}/ice/cpp/src/Ice/Network.h +0 -0
  668. /data/{ext → dist}/ice/cpp/src/Ice/NetworkF.h +0 -0
  669. /data/{ext → dist}/ice/cpp/src/Ice/NetworkProxy.cpp +0 -0
  670. /data/{ext → dist}/ice/cpp/src/Ice/NetworkProxy.h +0 -0
  671. /data/{ext → dist}/ice/cpp/src/Ice/NetworkProxyF.h +0 -0
  672. /data/{ext → dist}/ice/cpp/src/Ice/OSLogLoggerI.cpp +0 -0
  673. /data/{ext → dist}/ice/cpp/src/Ice/OSLogLoggerI.h +0 -0
  674. /data/{ext → dist}/ice/cpp/src/Ice/Object.cpp +0 -0
  675. /data/{ext → dist}/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +0 -0
  676. /data/{ext → dist}/ice/cpp/src/Ice/ObjectAdapterFactory.h +0 -0
  677. /data/{ext → dist}/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +0 -0
  678. /data/{ext → dist}/ice/cpp/src/Ice/ObjectAdapterI.h +0 -0
  679. /data/{ext → dist}/ice/cpp/src/Ice/ObserverHelper.cpp +0 -0
  680. /data/{ext → dist}/ice/cpp/src/Ice/OpaqueEndpointI.cpp +0 -0
  681. /data/{ext → dist}/ice/cpp/src/Ice/OpaqueEndpointI.h +0 -0
  682. /data/{ext → dist}/ice/cpp/src/Ice/OutputStream.cpp +0 -0
  683. /data/{ext → dist}/ice/cpp/src/Ice/PluginManagerI.h +0 -0
  684. /data/{ext → dist}/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -0
  685. /data/{ext → dist}/ice/cpp/src/Ice/PropertiesAdminI.h +0 -0
  686. /data/{ext → dist}/ice/cpp/src/Ice/PropertiesI.cpp +0 -0
  687. /data/{ext → dist}/ice/cpp/src/Ice/PropertiesI.h +0 -0
  688. /data/{ext → dist}/ice/cpp/src/Ice/Protocol.cpp +0 -0
  689. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolInstance.cpp +0 -0
  690. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolInstance.h +0 -0
  691. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolInstanceF.h +0 -0
  692. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +0 -0
  693. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolPluginFacade.h +0 -0
  694. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -0
  695. /data/{ext → dist}/ice/cpp/src/Ice/ProxyFactory.cpp +0 -0
  696. /data/{ext → dist}/ice/cpp/src/Ice/ProxyFactory.h +0 -0
  697. /data/{ext → dist}/ice/cpp/src/Ice/Reference.cpp +0 -0
  698. /data/{ext → dist}/ice/cpp/src/Ice/Reference.h +0 -0
  699. /data/{ext → dist}/ice/cpp/src/Ice/ReferenceFactory.cpp +0 -0
  700. /data/{ext → dist}/ice/cpp/src/Ice/ReferenceFactory.h +0 -0
  701. /data/{ext → dist}/ice/cpp/src/Ice/ReferenceFactoryF.h +0 -0
  702. /data/{ext → dist}/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -0
  703. /data/{ext → dist}/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -0
  704. /data/{ext → dist}/ice/cpp/src/Ice/ReplyStatus.h +0 -0
  705. /data/{ext → dist}/ice/cpp/src/Ice/RequestHandler.cpp +0 -0
  706. /data/{ext → dist}/ice/cpp/src/Ice/RequestHandler.h +0 -0
  707. /data/{ext → dist}/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -0
  708. /data/{ext → dist}/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -0
  709. /data/{ext → dist}/ice/cpp/src/Ice/ResponseHandler.cpp +0 -0
  710. /data/{ext → dist}/ice/cpp/src/Ice/ResponseHandler.h +0 -0
  711. /data/{ext → dist}/ice/cpp/src/Ice/RetryQueue.cpp +0 -0
  712. /data/{ext → dist}/ice/cpp/src/Ice/RetryQueue.h +0 -0
  713. /data/{ext → dist}/ice/cpp/src/Ice/RetryQueueF.h +0 -0
  714. /data/{ext → dist}/ice/cpp/src/Ice/RouterInfo.cpp +0 -0
  715. /data/{ext → dist}/ice/cpp/src/Ice/RouterInfo.h +0 -0
  716. /data/{ext → dist}/ice/cpp/src/Ice/RouterInfoF.h +0 -0
  717. /data/{ext → dist}/ice/cpp/src/Ice/SHA1.cpp +0 -0
  718. /data/{ext → dist}/ice/cpp/src/Ice/Selector.h +0 -0
  719. /data/{ext → dist}/ice/cpp/src/Ice/ServantManager.cpp +0 -0
  720. /data/{ext → dist}/ice/cpp/src/Ice/ServantManager.h +0 -0
  721. /data/{ext → dist}/ice/cpp/src/Ice/SharedContext.h +0 -0
  722. /data/{ext → dist}/ice/cpp/src/Ice/SliceChecksums.cpp +0 -0
  723. /data/{ext → dist}/ice/cpp/src/Ice/SlicedData.cpp +0 -0
  724. /data/{ext → dist}/ice/cpp/src/Ice/StreamSocket.cpp +0 -0
  725. /data/{ext → dist}/ice/cpp/src/Ice/StreamSocket.h +0 -0
  726. /data/{ext → dist}/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -0
  727. /data/{ext → dist}/ice/cpp/src/Ice/StringUtil.h +0 -0
  728. /data/{ext → dist}/ice/cpp/src/Ice/SysLoggerI.cpp +0 -0
  729. /data/{ext → dist}/ice/cpp/src/Ice/SysLoggerI.h +0 -0
  730. /data/{ext → dist}/ice/cpp/src/Ice/SystemdJournalI.cpp +0 -0
  731. /data/{ext → dist}/ice/cpp/src/Ice/SystemdJournalI.h +0 -0
  732. /data/{ext → dist}/ice/cpp/src/Ice/TcpAcceptor.cpp +0 -0
  733. /data/{ext → dist}/ice/cpp/src/Ice/TcpAcceptor.h +0 -0
  734. /data/{ext → dist}/ice/cpp/src/Ice/TcpConnector.cpp +0 -0
  735. /data/{ext → dist}/ice/cpp/src/Ice/TcpConnector.h +0 -0
  736. /data/{ext → dist}/ice/cpp/src/Ice/TcpEndpointI.cpp +0 -0
  737. /data/{ext → dist}/ice/cpp/src/Ice/TcpEndpointI.h +0 -0
  738. /data/{ext → dist}/ice/cpp/src/Ice/TcpTransceiver.cpp +0 -0
  739. /data/{ext → dist}/ice/cpp/src/Ice/TcpTransceiver.h +0 -0
  740. /data/{ext → dist}/ice/cpp/src/Ice/Thread.cpp +0 -0
  741. /data/{ext → dist}/ice/cpp/src/Ice/ThreadPool.h +0 -0
  742. /data/{ext → dist}/ice/cpp/src/Ice/Timer.cpp +0 -0
  743. /data/{ext → dist}/ice/cpp/src/Ice/TraceLevels.cpp +0 -0
  744. /data/{ext → dist}/ice/cpp/src/Ice/TraceLevels.h +0 -0
  745. /data/{ext → dist}/ice/cpp/src/Ice/TraceLevelsF.h +0 -0
  746. /data/{ext → dist}/ice/cpp/src/Ice/TraceUtil.cpp +0 -0
  747. /data/{ext → dist}/ice/cpp/src/Ice/TraceUtil.h +0 -0
  748. /data/{ext → dist}/ice/cpp/src/Ice/Transceiver.cpp +0 -0
  749. /data/{ext → dist}/ice/cpp/src/Ice/Transceiver.h +0 -0
  750. /data/{ext → dist}/ice/cpp/src/Ice/TransceiverF.h +0 -0
  751. /data/{ext → dist}/ice/cpp/src/Ice/UdpConnector.cpp +0 -0
  752. /data/{ext → dist}/ice/cpp/src/Ice/UdpConnector.h +0 -0
  753. /data/{ext → dist}/ice/cpp/src/Ice/UdpEndpointI.cpp +0 -0
  754. /data/{ext → dist}/ice/cpp/src/Ice/UdpEndpointI.h +0 -0
  755. /data/{ext → dist}/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -0
  756. /data/{ext → dist}/ice/cpp/src/Ice/UdpTransceiver.h +0 -0
  757. /data/{ext → dist}/ice/cpp/src/Ice/Value.cpp +0 -0
  758. /data/{ext → dist}/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -0
  759. /data/{ext → dist}/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -0
  760. /data/{ext → dist}/ice/cpp/src/Ice/VirtualShared.h +0 -0
  761. /data/{ext → dist}/ice/cpp/src/Ice/WSAcceptor.cpp +0 -0
  762. /data/{ext → dist}/ice/cpp/src/Ice/WSAcceptor.h +0 -0
  763. /data/{ext → dist}/ice/cpp/src/Ice/WSConnector.cpp +0 -0
  764. /data/{ext → dist}/ice/cpp/src/Ice/WSConnector.h +0 -0
  765. /data/{ext → dist}/ice/cpp/src/Ice/WSEndpoint.cpp +0 -0
  766. /data/{ext → dist}/ice/cpp/src/Ice/WSEndpoint.h +0 -0
  767. /data/{ext → dist}/ice/cpp/src/Ice/WSTransceiver.cpp +0 -0
  768. /data/{ext → dist}/ice/cpp/src/Ice/WSTransceiver.h +0 -0
  769. /data/{ext → dist}/ice/cpp/src/IceDiscovery/LocatorI.cpp +0 -0
  770. /data/{ext → dist}/ice/cpp/src/IceDiscovery/LocatorI.h +0 -0
  771. /data/{ext → dist}/ice/cpp/src/IceDiscovery/LookupI.cpp +0 -0
  772. /data/{ext → dist}/ice/cpp/src/IceDiscovery/LookupI.h +0 -0
  773. /data/{ext → dist}/ice/cpp/src/IceDiscovery/PluginI.cpp +0 -0
  774. /data/{ext → dist}/ice/cpp/src/IceDiscovery/PluginI.h +0 -0
  775. /data/{ext → dist}/ice/cpp/src/IceLocatorDiscovery/Plugin.h +0 -0
  776. /data/{ext → dist}/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +0 -0
  777. /data/{ext → dist}/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -0
  778. /data/{ext → dist}/ice/cpp/src/IceSSL/AcceptorI.h +0 -0
  779. /data/{ext → dist}/ice/cpp/src/IceSSL/CertificateI.cpp +0 -0
  780. /data/{ext → dist}/ice/cpp/src/IceSSL/CertificateI.h +0 -0
  781. /data/{ext → dist}/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -0
  782. /data/{ext → dist}/ice/cpp/src/IceSSL/ConnectorI.h +0 -0
  783. /data/{ext → dist}/ice/cpp/src/IceSSL/EndpointI.cpp +0 -0
  784. /data/{ext → dist}/ice/cpp/src/IceSSL/EndpointI.h +0 -0
  785. /data/{ext → dist}/ice/cpp/src/IceSSL/Instance.cpp +0 -0
  786. /data/{ext → dist}/ice/cpp/src/IceSSL/Instance.h +0 -0
  787. /data/{ext → dist}/ice/cpp/src/IceSSL/InstanceF.h +0 -0
  788. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -0
  789. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -0
  790. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -0
  791. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -0
  792. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -0
  793. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -0
  794. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -0
  795. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -0
  796. /data/{ext → dist}/ice/cpp/src/IceSSL/PluginI.h +0 -0
  797. /data/{ext → dist}/ice/cpp/src/IceSSL/RFC2253.cpp +0 -0
  798. /data/{ext → dist}/ice/cpp/src/IceSSL/RFC2253.h +0 -0
  799. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -0
  800. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -0
  801. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelEngine.h +0 -0
  802. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -0
  803. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -0
  804. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -0
  805. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -0
  806. /data/{ext → dist}/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -0
  807. /data/{ext → dist}/ice/cpp/src/IceSSL/SSLEngine.h +0 -0
  808. /data/{ext → dist}/ice/cpp/src/IceSSL/SSLEngineF.h +0 -0
  809. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -0
  810. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -0
  811. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -0
  812. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -0
  813. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -0
  814. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -0
  815. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -0
  816. /data/{ext → dist}/ice/cpp/src/IceSSL/TrustManager.cpp +0 -0
  817. /data/{ext → dist}/ice/cpp/src/IceSSL/TrustManager.h +0 -0
  818. /data/{ext → dist}/ice/cpp/src/IceSSL/TrustManagerF.h +0 -0
  819. /data/{ext → dist}/ice/cpp/src/IceSSL/Util.cpp +0 -0
  820. /data/{ext → dist}/ice/cpp/src/IceSSL/Util.h +0 -0
  821. /data/{ext → dist}/ice/cpp/src/IceUtil/ConsoleUtil.cpp +0 -0
  822. /data/{ext → dist}/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -0
  823. /data/{ext → dist}/ice/cpp/src/IceUtil/ConvertUTF.h +0 -0
  824. /data/{ext → dist}/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -0
  825. /data/{ext → dist}/ice/cpp/src/IceUtil/FileUtil.cpp +0 -0
  826. /data/{ext → dist}/ice/cpp/src/IceUtil/InputUtil.cpp +0 -0
  827. /data/{ext → dist}/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -0
  828. /data/{ext → dist}/ice/cpp/src/IceUtil/Options.cpp +0 -0
  829. /data/{ext → dist}/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -0
  830. /data/{ext → dist}/ice/cpp/src/IceUtil/Random.cpp +0 -0
  831. /data/{ext → dist}/ice/cpp/src/IceUtil/RecMutex.cpp +0 -0
  832. /data/{ext → dist}/ice/cpp/src/IceUtil/Shared.cpp +0 -0
  833. /data/{ext → dist}/ice/cpp/src/IceUtil/StringUtil.cpp +0 -0
  834. /data/{ext → dist}/ice/cpp/src/IceUtil/ThreadException.cpp +0 -0
  835. /data/{ext → dist}/ice/cpp/src/IceUtil/Time.cpp +0 -0
  836. /data/{ext → dist}/ice/cpp/src/IceUtil/UUID.cpp +0 -0
  837. /data/{ext → dist}/ice/cpp/src/IceUtil/Unicode.cpp +0 -0
  838. /data/{ext → dist}/ice/cpp/src/IceUtil/Unicode.h +0 -0
  839. /data/{ext → dist}/ice/cpp/src/IceUtil/UtilException.cpp +0 -0
  840. /data/{ext → dist}/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -0
  841. /data/{ext → dist}/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -0
  842. /data/{ext → dist}/ice/cpp/src/Slice/Checksum.cpp +0 -0
  843. /data/{ext → dist}/ice/cpp/src/Slice/Checksum.h +0 -0
  844. /data/{ext → dist}/ice/cpp/src/Slice/FileTracker.cpp +0 -0
  845. /data/{ext → dist}/ice/cpp/src/Slice/FileTracker.h +0 -0
  846. /data/{ext → dist}/ice/cpp/src/Slice/Grammar.cpp +0 -0
  847. /data/{ext → dist}/ice/cpp/src/Slice/Grammar.h +0 -0
  848. /data/{ext → dist}/ice/cpp/src/Slice/GrammarUtil.h +0 -0
  849. /data/{ext → dist}/ice/cpp/src/Slice/JavaUtil.h +0 -0
  850. /data/{ext → dist}/ice/cpp/src/Slice/MD5.cpp +0 -0
  851. /data/{ext → dist}/ice/cpp/src/Slice/MD5.h +0 -0
  852. /data/{ext → dist}/ice/cpp/src/Slice/MD5I.cpp +0 -0
  853. /data/{ext → dist}/ice/cpp/src/Slice/MD5I.h +0 -0
  854. /data/{ext → dist}/ice/cpp/src/Slice/PHPUtil.cpp +0 -0
  855. /data/{ext → dist}/ice/cpp/src/Slice/PHPUtil.h +0 -0
  856. /data/{ext → dist}/ice/cpp/src/Slice/Parser.cpp +0 -0
  857. /data/{ext → dist}/ice/cpp/src/Slice/Parser.h +0 -0
  858. /data/{ext → dist}/ice/cpp/src/Slice/Preprocessor.cpp +0 -0
  859. /data/{ext → dist}/ice/cpp/src/Slice/Preprocessor.h +0 -0
  860. /data/{ext → dist}/ice/cpp/src/Slice/Python.cpp +0 -0
  861. /data/{ext → dist}/ice/cpp/src/Slice/PythonUtil.cpp +0 -0
  862. /data/{ext → dist}/ice/cpp/src/Slice/PythonUtil.h +0 -0
  863. /data/{ext → dist}/ice/cpp/src/Slice/Ruby.cpp +0 -0
  864. /data/{ext → dist}/ice/cpp/src/Slice/RubyUtil.cpp +0 -0
  865. /data/{ext → dist}/ice/cpp/src/Slice/RubyUtil.h +0 -0
  866. /data/{ext → dist}/ice/cpp/src/Slice/Scanner.cpp +0 -0
  867. /data/{ext → dist}/ice/cpp/src/Slice/SliceUtil.cpp +0 -0
  868. /data/{ext → dist}/ice/cpp/src/Slice/StringLiteralUtil.cpp +0 -0
  869. /data/{ext → dist}/ice/cpp/src/Slice/Util.h +0 -0
  870. /data/{ext → dist}/ice/mcpp/config.h +0 -0
  871. /data/{ext → dist}/ice/mcpp/configed.H +0 -0
  872. /data/{ext → dist}/ice/mcpp/eval.c +0 -0
  873. /data/{ext → dist}/ice/mcpp/expand.c +0 -0
  874. /data/{ext → dist}/ice/mcpp/mbchar.c +0 -0
  875. /data/{ext → dist}/ice/mcpp/mcpp_lib.h +0 -0
  876. /data/{ext → dist}/ice/mcpp/mcpp_out.h +0 -0
  877. /data/{ext → dist}/ice/mcpp/system.H +0 -0
  878. /data/{slice → dist/ice/slice}/Glacier2/Metrics.ice +0 -0
  879. /data/{slice → dist/ice/slice}/Glacier2/PermissionsVerifier.ice +0 -0
  880. /data/{slice → dist/ice/slice}/Glacier2/PermissionsVerifierF.ice +0 -0
  881. /data/{slice → dist/ice/slice}/Glacier2/Router.ice +0 -0
  882. /data/{slice → dist/ice/slice}/Glacier2/RouterF.ice +0 -0
  883. /data/{slice → dist/ice/slice}/Glacier2/SSLInfo.ice +0 -0
  884. /data/{slice → dist/ice/slice}/Glacier2/Session.ice +0 -0
  885. /data/{slice → dist/ice/slice}/Ice/BuiltinSequences.ice +0 -0
  886. /data/{slice → dist/ice/slice}/Ice/Communicator.ice +0 -0
  887. /data/{slice → dist/ice/slice}/Ice/CommunicatorF.ice +0 -0
  888. /data/{slice → dist/ice/slice}/Ice/ConnectionF.ice +0 -0
  889. /data/{slice → dist/ice/slice}/Ice/Current.ice +0 -0
  890. /data/{slice → dist/ice/slice}/Ice/Endpoint.ice +0 -0
  891. /data/{slice → dist/ice/slice}/Ice/EndpointF.ice +0 -0
  892. /data/{slice → dist/ice/slice}/Ice/EndpointTypes.ice +0 -0
  893. /data/{slice → dist/ice/slice}/Ice/FacetMap.ice +0 -0
  894. /data/{slice → dist/ice/slice}/Ice/Identity.ice +0 -0
  895. /data/{slice → dist/ice/slice}/Ice/ImplicitContext.ice +0 -0
  896. /data/{slice → dist/ice/slice}/Ice/ImplicitContextF.ice +0 -0
  897. /data/{slice → dist/ice/slice}/Ice/Instrumentation.ice +0 -0
  898. /data/{slice → dist/ice/slice}/Ice/InstrumentationF.ice +0 -0
  899. /data/{slice → dist/ice/slice}/Ice/LocalException.ice +0 -0
  900. /data/{slice → dist/ice/slice}/Ice/LocatorF.ice +0 -0
  901. /data/{slice → dist/ice/slice}/Ice/Logger.ice +0 -0
  902. /data/{slice → dist/ice/slice}/Ice/LoggerF.ice +0 -0
  903. /data/{slice → dist/ice/slice}/Ice/ObjectAdapterF.ice +0 -0
  904. /data/{slice → dist/ice/slice}/Ice/ObjectFactory.ice +0 -0
  905. /data/{slice → dist/ice/slice}/Ice/Plugin.ice +0 -0
  906. /data/{slice → dist/ice/slice}/Ice/PluginF.ice +0 -0
  907. /data/{slice → dist/ice/slice}/Ice/Process.ice +0 -0
  908. /data/{slice → dist/ice/slice}/Ice/ProcessF.ice +0 -0
  909. /data/{slice → dist/ice/slice}/Ice/Properties.ice +0 -0
  910. /data/{slice → dist/ice/slice}/Ice/PropertiesAdmin.ice +0 -0
  911. /data/{slice → dist/ice/slice}/Ice/PropertiesF.ice +0 -0
  912. /data/{slice → dist/ice/slice}/Ice/RemoteLogger.ice +0 -0
  913. /data/{slice → dist/ice/slice}/Ice/RouterF.ice +0 -0
  914. /data/{slice → dist/ice/slice}/Ice/ServantLocator.ice +0 -0
  915. /data/{slice → dist/ice/slice}/Ice/ServantLocatorF.ice +0 -0
  916. /data/{slice → dist/ice/slice}/Ice/SliceChecksumDict.ice +0 -0
  917. /data/{slice → dist/ice/slice}/Ice/ValueFactory.ice +0 -0
  918. /data/{slice → dist/ice/slice}/Ice/Version.ice +0 -0
  919. /data/{slice → dist/ice/slice}/IceBox/IceBox.ice +0 -0
  920. /data/{slice → dist/ice/slice}/IceGrid/Admin.ice +0 -0
  921. /data/{slice → dist/ice/slice}/IceGrid/Descriptor.ice +0 -0
  922. /data/{slice → dist/ice/slice}/IceGrid/Exception.ice +0 -0
  923. /data/{slice → dist/ice/slice}/IceGrid/FileParser.ice +0 -0
  924. /data/{slice → dist/ice/slice}/IceGrid/Registry.ice +0 -0
  925. /data/{slice → dist/ice/slice}/IceGrid/Session.ice +0 -0
  926. /data/{slice → dist/ice/slice}/IceGrid/UserAccountMapper.ice +0 -0
  927. /data/{slice → dist/ice/slice}/IcePatch2/FileInfo.ice +0 -0
  928. /data/{slice → dist/ice/slice}/IcePatch2/FileServer.ice +0 -0
  929. /data/{slice → dist/ice/slice}/IceStorm/Metrics.ice +0 -0
  930. /data/{lib → dist/lib}/Glacier2.rb +0 -0
  931. /data/{lib → dist/lib}/Ice.rb +0 -0
  932. /data/{lib → dist/lib}/IceBox.rb +0 -0
  933. /data/{lib → dist/lib}/IceGrid.rb +0 -0
  934. /data/{lib → dist/lib}/IcePatch2.rb +0 -0
  935. /data/{lib → dist/lib}/IceStorm.rb +0 -0
  936. /data/{bin → scripts}/slice2rb +0 -0
@@ -0,0 +1,1292 @@
1
+ //
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
3
+ //
4
+
5
+ #include <Ice/ThreadPool.h>
6
+ #include <Ice/EventHandler.h>
7
+ #include <Ice/Network.h>
8
+ #include <Ice/LocalException.h>
9
+ #include <Ice/Instance.h>
10
+ #include <Ice/LoggerUtil.h>
11
+ #include <Ice/Protocol.h>
12
+ #include <Ice/ObjectAdapterFactory.h>
13
+ #include <Ice/Properties.h>
14
+ #include <Ice/TraceLevels.h>
15
+
16
+ #if defined(__FreeBSD__)
17
+ # include <sys/sysctl.h>
18
+ #endif
19
+
20
+ using namespace std;
21
+ using namespace Ice;
22
+ using namespace Ice::Instrumentation;
23
+ using namespace IceInternal;
24
+
25
+ ICE_API IceUtil::Shared* IceInternal::upCast(ThreadPool* p) { return p; }
26
+
27
+ namespace
28
+ {
29
+
30
+ class ShutdownWorkItem : public ThreadPoolWorkItem
31
+ {
32
+ public:
33
+
34
+ ShutdownWorkItem(const InstancePtr& instance) : _instance(instance)
35
+ {
36
+ }
37
+
38
+ virtual void
39
+ execute(ThreadPoolCurrent& current)
40
+ {
41
+ current.ioCompleted();
42
+ try
43
+ {
44
+ _instance->objectAdapterFactory()->shutdown();
45
+ }
46
+ catch(const CommunicatorDestroyedException&)
47
+ {
48
+ }
49
+ }
50
+
51
+ private:
52
+
53
+ const InstancePtr _instance;
54
+ };
55
+
56
+ class FinishedWorkItem : public ThreadPoolWorkItem
57
+ {
58
+ public:
59
+
60
+ FinishedWorkItem(const EventHandlerPtr& handler, bool close) : _handler(handler), _close(close)
61
+ {
62
+ }
63
+
64
+ virtual void
65
+ execute(ThreadPoolCurrent& current)
66
+ {
67
+ _handler->finished(current, _close);
68
+
69
+ //
70
+ // Break cyclic reference count.
71
+ //
72
+ if(_handler->getNativeInfo())
73
+ {
74
+ _handler->getNativeInfo()->setReadyCallback(0);
75
+ }
76
+ }
77
+
78
+ private:
79
+
80
+ const EventHandlerPtr _handler;
81
+ const bool _close;
82
+ };
83
+
84
+ class JoinThreadWorkItem : public ThreadPoolWorkItem
85
+ {
86
+ public:
87
+
88
+ JoinThreadWorkItem(const IceUtil::ThreadPtr& thread) : _thread(thread)
89
+ {
90
+ }
91
+
92
+ virtual void
93
+ execute(ThreadPoolCurrent&)
94
+ {
95
+ // No call to ioCompleted, this shouldn't block (and we don't want to cause
96
+ // a new thread to be started).
97
+ _thread->getThreadControl().join();
98
+ }
99
+
100
+ private:
101
+
102
+ IceUtil::ThreadPtr _thread;
103
+ };
104
+
105
+ //
106
+ // Exception raised by the thread pool work queue when the thread pool
107
+ // is destroyed.
108
+ //
109
+ class ThreadPoolDestroyedException
110
+ {
111
+ };
112
+
113
+ #ifdef ICE_SWIFT
114
+ string
115
+ prefixToDispatchQueueLabel(const std::string& prefix)
116
+ {
117
+ if(prefix == "Ice.ThreadPool.Client")
118
+ {
119
+ return "com.zeroc.ice.client";
120
+ }
121
+
122
+ if(prefix == "Ice.ThreadPool.Server")
123
+ {
124
+ return "com.zeroc.ice.server";
125
+ }
126
+
127
+ string::size_type end = prefix.find_last_of(".ThreadPool");
128
+ if(end == string::npos)
129
+ {
130
+ end = prefix.size();
131
+ }
132
+
133
+ return "com.zeroc.ice.oa." + prefix.substr(0, end);
134
+ }
135
+ #endif
136
+ }
137
+
138
+ Ice::DispatcherCall::~DispatcherCall()
139
+ {
140
+ // Out of line to avoid weak vtable
141
+ }
142
+
143
+ Ice::Dispatcher::~Dispatcher()
144
+ {
145
+ // Out of line to avoid weak vtable
146
+ }
147
+
148
+ IceInternal::DispatchWorkItem::DispatchWorkItem()
149
+ {
150
+ }
151
+
152
+ IceInternal::DispatchWorkItem::DispatchWorkItem(const Ice::ConnectionPtr& connection) : _connection(connection)
153
+ {
154
+ }
155
+
156
+ void
157
+ IceInternal::DispatchWorkItem::execute(ThreadPoolCurrent& current)
158
+ {
159
+ current.ioCompleted(); // Promote follower
160
+ current.dispatchFromThisThread(this);
161
+ }
162
+
163
+ IceInternal::ThreadPoolWorkQueue::ThreadPoolWorkQueue(ThreadPool& threadPool) :
164
+ _threadPool(threadPool),
165
+ _destroyed(false)
166
+ {
167
+ _registered = SocketOperationRead;
168
+ }
169
+
170
+ void
171
+ IceInternal::ThreadPoolWorkQueue::destroy()
172
+ {
173
+ //Lock sync(*this); Called with the thread pool locked
174
+ assert(!_destroyed);
175
+ _destroyed = true;
176
+ #if defined(ICE_USE_IOCP)
177
+ _threadPool._selector.completed(this, SocketOperationRead);
178
+ #else
179
+ _threadPool._selector.ready(this, SocketOperationRead, true);
180
+ #endif
181
+ }
182
+
183
+ void
184
+ IceInternal::ThreadPoolWorkQueue::queue(const ThreadPoolWorkItemPtr& item)
185
+ {
186
+ //Lock sync(*this); Called with the thread pool locked
187
+ _workItems.push_back(item);
188
+ #if defined(ICE_USE_IOCP)
189
+ _threadPool._selector.completed(this, SocketOperationRead);
190
+ #else
191
+ if(_workItems.size() == 1)
192
+ {
193
+ _threadPool._selector.ready(this, SocketOperationRead, true);
194
+ }
195
+ #endif
196
+ }
197
+
198
+ #if defined(ICE_USE_IOCP)
199
+ bool
200
+ IceInternal::ThreadPoolWorkQueue::startAsync(SocketOperation)
201
+ {
202
+ assert(false);
203
+ return false;
204
+ }
205
+
206
+ bool
207
+ IceInternal::ThreadPoolWorkQueue::finishAsync(SocketOperation)
208
+ {
209
+ assert(false);
210
+ return false;
211
+ }
212
+ #endif
213
+
214
+ void
215
+ IceInternal::ThreadPoolWorkQueue::message(ThreadPoolCurrent& current)
216
+ {
217
+ ThreadPoolWorkItemPtr workItem;
218
+ {
219
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(_threadPool);
220
+ if(!_workItems.empty())
221
+ {
222
+ workItem = _workItems.front();
223
+ _workItems.pop_front();
224
+ }
225
+ #if defined(ICE_USE_IOCP)
226
+ else
227
+ {
228
+ assert(_destroyed);
229
+ _threadPool._selector.completed(this, SocketOperationRead);
230
+ }
231
+ #else
232
+ if(_workItems.empty() && !_destroyed)
233
+ {
234
+ _threadPool._selector.ready(this, SocketOperationRead, false);
235
+ }
236
+ #endif
237
+ }
238
+
239
+ if(workItem)
240
+ {
241
+ workItem->execute(current);
242
+ }
243
+ else
244
+ {
245
+ assert(_destroyed);
246
+ current.ioCompleted();
247
+ throw ThreadPoolDestroyedException();
248
+ }
249
+ }
250
+
251
+ void
252
+ IceInternal::ThreadPoolWorkQueue::finished(ThreadPoolCurrent&, bool)
253
+ {
254
+ assert(false);
255
+ }
256
+
257
+ string
258
+ IceInternal::ThreadPoolWorkQueue::toString() const
259
+ {
260
+ return "work queue";
261
+ }
262
+
263
+ NativeInfoPtr
264
+ IceInternal::ThreadPoolWorkQueue::getNativeInfo()
265
+ {
266
+ return 0;
267
+ }
268
+
269
+ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& prefix, int timeout) :
270
+ _instance(instance),
271
+ #ifdef ICE_SWIFT
272
+ _dispatchQueue(dispatch_queue_create(prefixToDispatchQueueLabel(prefix).c_str(),
273
+ DISPATCH_QUEUE_CONCURRENT_WITH_AUTORELEASE_POOL)),
274
+ #else
275
+ _dispatcher(_instance->initializationData().dispatcher),
276
+ #endif
277
+ _destroyed(false),
278
+ _prefix(prefix),
279
+ _selector(instance),
280
+ _nextThreadId(0),
281
+ _size(0),
282
+ _sizeIO(0),
283
+ _sizeMax(0),
284
+ _sizeWarn(0),
285
+ _serialize(_instance->initializationData().properties->getPropertyAsInt(_prefix + ".Serialize") > 0),
286
+ _hasPriority(false),
287
+ _priority(0),
288
+ _serverIdleTime(timeout),
289
+ _threadIdleTime(0),
290
+ _stackSize(0),
291
+ _inUse(0),
292
+ #if !defined(ICE_USE_IOCP)
293
+ _inUseIO(0),
294
+ _nextHandler(_handlers.end()),
295
+ #endif
296
+ _promote(true)
297
+ {
298
+ PropertiesPtr properties = _instance->initializationData().properties;
299
+ #ifdef _WIN32
300
+ SYSTEM_INFO sysInfo;
301
+ GetSystemInfo(&sysInfo);
302
+ int nProcessors = sysInfo.dwNumberOfProcessors;
303
+ #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
304
+ static int ncpu[2] = { CTL_HW, HW_NCPU };
305
+ int nProcessors;
306
+ size_t sz = sizeof(nProcessors);
307
+ if(sysctl(ncpu, 2, &nProcessors, &sz, 0, 0) == -1)
308
+ {
309
+ nProcessors = 1;
310
+ }
311
+ #else
312
+ int nProcessors = static_cast<int>(sysconf(_SC_NPROCESSORS_ONLN));
313
+ if(nProcessors == -1)
314
+ {
315
+ nProcessors = 1;
316
+ }
317
+ #endif
318
+
319
+ //
320
+ // We use just one thread as the default. This is the fastest
321
+ // possible setting, still allows one level of nesting, and
322
+ // doesn't require to make the servants thread safe.
323
+ //
324
+ int size = properties->getPropertyAsIntWithDefault(_prefix + ".Size", 1);
325
+ if(size < 1)
326
+ {
327
+ Warning out(_instance->initializationData().logger);
328
+ out << _prefix << ".Size < 1; Size adjusted to 1";
329
+ size = 1;
330
+ }
331
+
332
+ int sizeMax = properties->getPropertyAsIntWithDefault(_prefix + ".SizeMax", size);
333
+ if(sizeMax == -1)
334
+ {
335
+ sizeMax = nProcessors;
336
+ }
337
+
338
+ if(sizeMax < size)
339
+ {
340
+ Warning out(_instance->initializationData().logger);
341
+ out << _prefix << ".SizeMax < " << _prefix << ".Size; SizeMax adjusted to Size (" << size << ")";
342
+ sizeMax = size;
343
+ }
344
+
345
+ int sizeWarn = properties->getPropertyAsInt(_prefix + ".SizeWarn");
346
+ if(sizeWarn != 0 && sizeWarn < size)
347
+ {
348
+ Warning out(_instance->initializationData().logger);
349
+ out << _prefix << ".SizeWarn < " << _prefix << ".Size; adjusted SizeWarn to Size (" << size << ")";
350
+ sizeWarn = size;
351
+ }
352
+ else if(sizeWarn > sizeMax)
353
+ {
354
+ Warning out(_instance->initializationData().logger);
355
+ out << _prefix << ".SizeWarn > " << _prefix << ".SizeMax; adjusted SizeWarn to SizeMax (" << sizeMax << ")";
356
+ sizeWarn = sizeMax;
357
+ }
358
+
359
+ int threadIdleTime = properties->getPropertyAsIntWithDefault(_prefix + ".ThreadIdleTime", 60);
360
+ if(threadIdleTime < 0)
361
+ {
362
+ Warning out(_instance->initializationData().logger);
363
+ out << _prefix << ".ThreadIdleTime < 0; ThreadIdleTime adjusted to 0";
364
+ threadIdleTime = 0;
365
+ }
366
+
367
+ const_cast<int&>(_size) = size;
368
+ const_cast<int&>(_sizeMax) = sizeMax;
369
+ const_cast<int&>(_sizeWarn) = sizeWarn;
370
+ const_cast<int&>(_sizeIO) = min(sizeMax, nProcessors);
371
+ const_cast<int&>(_threadIdleTime) = threadIdleTime;
372
+
373
+ #ifdef ICE_USE_IOCP
374
+ _selector.setup(_sizeIO);
375
+ #endif
376
+
377
+ #if defined(__APPLE__)
378
+ //
379
+ // We use a default stack size of 1MB on macOS and the new C++11 mapping to allow transmitting
380
+ // class graphs with a depth of 100 (maximum default), 512KB is not enough otherwise.
381
+ //
382
+ int defaultStackSize = 1024 * 1024; // 1MB
383
+ #else
384
+ int defaultStackSize = 0;
385
+ #endif
386
+ int stackSize = properties->getPropertyAsIntWithDefault(_prefix + ".StackSize", defaultStackSize);
387
+ if(stackSize < 0)
388
+ {
389
+ Warning out(_instance->initializationData().logger);
390
+ out << _prefix << ".StackSize < 0; Size adjusted to OS default";
391
+ stackSize = 0;
392
+ }
393
+ const_cast<size_t&>(_stackSize) = static_cast<size_t>(stackSize);
394
+
395
+ const_cast<bool&>(_hasPriority) = properties->getProperty(_prefix + ".ThreadPriority") != "";
396
+ const_cast<int&>(_priority) = properties->getPropertyAsInt(_prefix + ".ThreadPriority");
397
+ if(!_hasPriority)
398
+ {
399
+ const_cast<bool&>(_hasPriority) = properties->getProperty("Ice.ThreadPriority") != "";
400
+ const_cast<int&>(_priority) = properties->getPropertyAsInt("Ice.ThreadPriority");
401
+ }
402
+
403
+ _workQueue = ICE_MAKE_SHARED(ThreadPoolWorkQueue, *this);
404
+ _selector.initialize(_workQueue.get());
405
+
406
+ if(_instance->traceLevels()->threadPool >= 1)
407
+ {
408
+ Trace out(_instance->initializationData().logger, _instance->traceLevels()->threadPoolCat);
409
+ out << "creating " << _prefix << ": Size = " << _size << ", SizeMax = " << _sizeMax << ", SizeWarn = "
410
+ << _sizeWarn;
411
+ }
412
+
413
+ __setNoDelete(true);
414
+ try
415
+ {
416
+ for(int i = 0 ; i < _size ; ++i)
417
+ {
418
+ EventHandlerThreadPtr thread = new EventHandlerThread(this, nextThreadId());
419
+ if(_hasPriority)
420
+ {
421
+ thread->start(_stackSize, _priority);
422
+ }
423
+ else
424
+ {
425
+ thread->start(_stackSize);
426
+ }
427
+ _threads.insert(thread);
428
+ }
429
+ }
430
+ catch(const IceUtil::Exception& ex)
431
+ {
432
+ {
433
+ Error out(_instance->initializationData().logger);
434
+ out << "cannot create thread for `" << _prefix << "':\n" << ex;
435
+ }
436
+
437
+ destroy();
438
+ joinWithAllThreads();
439
+ __setNoDelete(false);
440
+ throw;
441
+ }
442
+ catch(...)
443
+ {
444
+ __setNoDelete(false);
445
+ throw;
446
+ }
447
+ __setNoDelete(false);
448
+ }
449
+
450
+ IceInternal::ThreadPool::~ThreadPool()
451
+ {
452
+ assert(_destroyed);
453
+ #ifdef ICE_SWIFT
454
+ dispatch_release(_dispatchQueue);
455
+ #endif
456
+ }
457
+
458
+ void
459
+ IceInternal::ThreadPool::destroy()
460
+ {
461
+ Lock sync(*this);
462
+ if(_destroyed)
463
+ {
464
+ return;
465
+ }
466
+ _destroyed = true;
467
+ _workQueue->destroy();
468
+ }
469
+
470
+ void
471
+ IceInternal::ThreadPool::updateObservers()
472
+ {
473
+ Lock sync(*this);
474
+ for(set<EventHandlerThreadPtr>::iterator p = _threads.begin(); p != _threads.end(); ++p)
475
+ {
476
+ (*p)->updateObserver();
477
+ }
478
+ }
479
+
480
+ void
481
+ IceInternal::ThreadPool::initialize(const EventHandlerPtr& handler)
482
+ {
483
+ Lock sync(*this);
484
+ assert(!_destroyed);
485
+ _selector.initialize(handler.get());
486
+
487
+ class ReadyCallbackI : public ReadyCallback
488
+ {
489
+ public:
490
+
491
+ ReadyCallbackI(const ThreadPoolPtr& threadPool, const EventHandlerPtr& handler) :
492
+ _threadPool(threadPool), _handler(handler)
493
+ {
494
+ }
495
+
496
+ virtual void
497
+ ready(SocketOperation op, bool value)
498
+ {
499
+ _threadPool->ready(_handler, op, value);
500
+ }
501
+
502
+ private:
503
+
504
+ const ThreadPoolPtr _threadPool;
505
+ const EventHandlerPtr _handler;
506
+ };
507
+ handler->getNativeInfo()->setReadyCallback(new ReadyCallbackI(this, handler));
508
+ }
509
+
510
+ void
511
+ IceInternal::ThreadPool::update(const EventHandlerPtr& handler, SocketOperation remove, SocketOperation add)
512
+ {
513
+ Lock sync(*this);
514
+ assert(!_destroyed);
515
+
516
+ // Don't remove what needs to be added
517
+ remove = static_cast<SocketOperation>(remove & ~add);
518
+
519
+ // Don't remove/add if already un-registered or registered
520
+ remove = static_cast<SocketOperation>(handler->_registered & remove);
521
+ add = static_cast<SocketOperation>(~handler->_registered & add);
522
+ if(remove == add)
523
+ {
524
+ return;
525
+ }
526
+
527
+ _selector.update(handler.get(), remove, add);
528
+ }
529
+
530
+ bool
531
+ IceInternal::ThreadPool::finish(const EventHandlerPtr& handler, bool closeNow)
532
+ {
533
+ Lock sync(*this);
534
+ assert(!_destroyed);
535
+ #if !defined(ICE_USE_IOCP)
536
+ closeNow = _selector.finish(handler.get(), closeNow); // This must be called before!
537
+ _workQueue->queue(new FinishedWorkItem(handler, !closeNow));
538
+ return closeNow;
539
+ #else
540
+ UNREFERENCED_PARAMETER(closeNow);
541
+
542
+ // If there are no pending asynchronous operations, we can call finish on the handler now.
543
+ if(!handler->_pending)
544
+ {
545
+ _workQueue->queue(new FinishedWorkItem(handler, false));
546
+ _selector.finish(handler.get());
547
+ }
548
+ else
549
+ {
550
+ handler->_finish = true;
551
+ }
552
+ return true; // Always close now to interrupt the pending call.
553
+ #endif
554
+ }
555
+
556
+ void
557
+ IceInternal::ThreadPool::ready(const EventHandlerPtr& handler, SocketOperation op, bool value)
558
+ {
559
+ Lock sync(*this);
560
+ if(_destroyed)
561
+ {
562
+ return;
563
+ }
564
+ _selector.ready(handler.get(), op, value);
565
+ }
566
+
567
+ void
568
+ IceInternal::ThreadPool::dispatchFromThisThread(const DispatchWorkItemPtr& workItem)
569
+ {
570
+ #ifdef ICE_SWIFT
571
+ dispatch_sync(_dispatchQueue, ^
572
+ {
573
+ workItem->run();
574
+ });
575
+ #else
576
+ if(_dispatcher)
577
+ {
578
+ try
579
+ {
580
+ #ifdef ICE_CPP11_MAPPING
581
+ _dispatcher([workItem]()
582
+ {
583
+ workItem->run();
584
+ },
585
+ workItem->getConnection());
586
+ #else
587
+ _dispatcher->dispatch(workItem, workItem->getConnection());
588
+ #endif
589
+ }
590
+ catch(const std::exception& ex)
591
+ {
592
+ if(_instance->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 1)
593
+ {
594
+ Warning out(_instance->initializationData().logger);
595
+ out << "dispatch exception:\n" << ex;
596
+ }
597
+ }
598
+ catch(...)
599
+ {
600
+ if(_instance->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 1)
601
+ {
602
+ Warning out(_instance->initializationData().logger);
603
+ out << "dispatch exception:\nunknown c++ exception";
604
+ }
605
+ }
606
+ }
607
+ else
608
+ {
609
+ workItem->run();
610
+ }
611
+ #endif
612
+ }
613
+
614
+ void
615
+ IceInternal::ThreadPool::dispatch(const DispatchWorkItemPtr& workItem)
616
+ {
617
+ Lock sync(*this);
618
+ if(_destroyed)
619
+ {
620
+ throw CommunicatorDestroyedException(__FILE__, __LINE__);
621
+ }
622
+ _workQueue->queue(workItem);
623
+ }
624
+
625
+ void
626
+ IceInternal::ThreadPool::joinWithAllThreads()
627
+ {
628
+ assert(_destroyed);
629
+
630
+ //
631
+ // _threads is immutable after destroy() has been called,
632
+ // therefore no synchronization is needed. (Synchronization
633
+ // wouldn't be possible here anyway, because otherwise the other
634
+ // threads would never terminate.)
635
+ //
636
+ for(set<EventHandlerThreadPtr>::iterator p = _threads.begin(); p != _threads.end(); ++p)
637
+ {
638
+ (*p)->getThreadControl().join();
639
+ }
640
+ _selector.destroy();
641
+ }
642
+
643
+ string
644
+ IceInternal::ThreadPool::prefix() const
645
+ {
646
+ return _prefix;
647
+ }
648
+
649
+ #ifdef ICE_SWIFT
650
+
651
+ dispatch_queue_t
652
+ IceInternal::ThreadPool::getDispatchQueue() const ICE_NOEXCEPT
653
+ {
654
+ return _dispatchQueue;
655
+ }
656
+
657
+ #endif
658
+
659
+ void
660
+ IceInternal::ThreadPool::run(const EventHandlerThreadPtr& thread)
661
+ {
662
+ #if !defined(ICE_USE_IOCP)
663
+ ThreadPoolCurrent current(_instance, this, thread);
664
+ bool select = false;
665
+ while(true)
666
+ {
667
+ if(current._handler)
668
+ {
669
+ try
670
+ {
671
+ current._handler->message(current);
672
+ }
673
+ catch(const ThreadPoolDestroyedException&)
674
+ {
675
+ Lock sync(*this);
676
+ --_inUse;
677
+ thread->setState(ICE_ENUM(ThreadState, ThreadStateIdle));
678
+ return;
679
+ }
680
+ catch(const exception& ex)
681
+ {
682
+ Error out(_instance->initializationData().logger);
683
+ out << "exception in `" << _prefix << "':\n" << ex << "\nevent handler: "
684
+ << current._handler->toString();
685
+ }
686
+ catch(...)
687
+ {
688
+ Error out(_instance->initializationData().logger);
689
+ out << "exception in `" << _prefix << "':\nevent handler: " << current._handler->toString();
690
+ }
691
+ }
692
+ else if(select)
693
+ {
694
+ try
695
+ {
696
+ _selector.select(_serverIdleTime);
697
+ }
698
+ catch(const SelectorTimeoutException&)
699
+ {
700
+ Lock sync(*this);
701
+ if(!_destroyed && _inUse == 0)
702
+ {
703
+ _workQueue->queue(new ShutdownWorkItem(_instance)); // Select timed-out.
704
+ }
705
+ continue;
706
+ }
707
+ }
708
+
709
+ {
710
+ Lock sync(*this);
711
+ if(!current._handler)
712
+ {
713
+ if(select)
714
+ {
715
+ _selector.finishSelect(_handlers);
716
+ _nextHandler = _handlers.begin();
717
+ select = false;
718
+ }
719
+ else if(!current._leader && followerWait(current))
720
+ {
721
+ return; // Wait timed-out.
722
+ }
723
+ }
724
+ else if(_sizeMax > 1)
725
+ {
726
+ if(!current._ioCompleted)
727
+ {
728
+ //
729
+ // The handler didn't call ioCompleted() so we take care of decreasing
730
+ // the IO thread count now.
731
+ //
732
+ --_inUseIO;
733
+ }
734
+ else
735
+ {
736
+ //
737
+ // If the handler called ioCompleted(), we re-enable the handler in
738
+ // case it was disabled and we decrease the number of thread in use.
739
+ //
740
+ if(_serialize && current._handler.get() != _workQueue.get())
741
+ {
742
+ _selector.enable(current._handler.get(), current.operation);
743
+ }
744
+ assert(_inUse > 0);
745
+ --_inUse;
746
+ }
747
+
748
+ if(!current._leader && followerWait(current))
749
+ {
750
+ return; // Wait timed-out.
751
+ }
752
+ }
753
+
754
+ //
755
+ // Get the next ready handler.
756
+ //
757
+ while(_nextHandler != _handlers.end() &&
758
+ !(_nextHandler->second & ~_nextHandler->first->_disabled & _nextHandler->first->_registered))
759
+ {
760
+ ++_nextHandler;
761
+ }
762
+ if(_nextHandler != _handlers.end())
763
+ {
764
+ current._ioCompleted = false;
765
+ current._handler = ICE_GET_SHARED_FROM_THIS(_nextHandler->first);
766
+ current.operation = _nextHandler->second;
767
+ ++_nextHandler;
768
+ thread->setState(ICE_ENUM(ThreadState, ThreadStateInUseForIO));
769
+ }
770
+ else
771
+ {
772
+ current._handler = 0;
773
+ }
774
+
775
+ if(!current._handler)
776
+ {
777
+ //
778
+ // If there are no more ready handlers and there are still threads busy performing
779
+ // IO, we give up leadership and promote another follower (which will perform the
780
+ // select() only once all the IOs are completed). Otherwise, if there are no more
781
+ // threads performing IOs, it's time to do another select().
782
+ //
783
+ if(_inUseIO > 0)
784
+ {
785
+ promoteFollower(current);
786
+ }
787
+ else
788
+ {
789
+ _handlers.clear();
790
+ _selector.startSelect();
791
+ select = true;
792
+ thread->setState(ICE_ENUM(ThreadState, ThreadStateIdle));
793
+ }
794
+ }
795
+ else if(_sizeMax > 1)
796
+ {
797
+ //
798
+ // Increment the IO thread count and if there are still threads available
799
+ // to perform IO and more handlers ready, we promote a follower.
800
+ //
801
+ ++_inUseIO;
802
+ if(_nextHandler != _handlers.end() && _inUseIO < _sizeIO)
803
+ {
804
+ promoteFollower(current);
805
+ }
806
+ }
807
+ }
808
+ }
809
+ #else
810
+ ThreadPoolCurrent current(_instance, this, thread);
811
+ while(true)
812
+ {
813
+ try
814
+ {
815
+ current._ioCompleted = false;
816
+ current._handler = ICE_GET_SHARED_FROM_THIS(_selector.getNextHandler(current.operation, current._count,
817
+ current._error, _threadIdleTime));
818
+ }
819
+ catch(const SelectorTimeoutException&)
820
+ {
821
+ if(_sizeMax > 1)
822
+ {
823
+ Lock sync(*this);
824
+
825
+ if(_destroyed)
826
+ {
827
+ continue;
828
+ }
829
+ else if(_inUse < static_cast<int>(_threads.size() - 1)) // If not the last idle thread, we can exit.
830
+ {
831
+ BOOL hasIO = false;
832
+ GetThreadIOPendingFlag(GetCurrentThread(), &hasIO);
833
+ if(hasIO)
834
+ {
835
+ continue;
836
+ }
837
+
838
+ if(_instance->traceLevels()->threadPool >= 1)
839
+ {
840
+ Trace out(_instance->initializationData().logger, _instance->traceLevels()->threadPoolCat);
841
+ out << "shrinking " << _prefix << ": Size = " << (_threads.size() - 1);
842
+ }
843
+ _threads.erase(thread);
844
+ _workQueue->queue(new JoinThreadWorkItem(thread));
845
+ return;
846
+ }
847
+ else if(_inUse > 0)
848
+ {
849
+ //
850
+ // If this is the last idle thread but there are still other threads
851
+ // busy dispatching, we go back waiting with _threadIdleTime. We only
852
+ // wait with _serverIdleTime when there's only one thread left.
853
+ //
854
+ continue;
855
+ }
856
+ assert(_threads.size() == 1);
857
+ }
858
+
859
+ try
860
+ {
861
+ current._handler = ICE_GET_SHARED_FROM_THIS(_selector.getNextHandler(current.operation, current._count,
862
+ current._error, _serverIdleTime));
863
+ }
864
+ catch(const SelectorTimeoutException&)
865
+ {
866
+ Lock sync(*this);
867
+ if(!_destroyed)
868
+ {
869
+ _workQueue->queue(new ShutdownWorkItem(_instance));
870
+ }
871
+ continue;
872
+ }
873
+ }
874
+
875
+ {
876
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
877
+ thread->setState(ICE_ENUM(ThreadState, ThreadStateInUseForIO));
878
+ }
879
+
880
+ try
881
+ {
882
+ assert(current._handler);
883
+ current._handler->message(current);
884
+ }
885
+ catch(const ThreadPoolDestroyedException&)
886
+ {
887
+ return;
888
+ }
889
+ catch(const exception& ex)
890
+ {
891
+ Error out(_instance->initializationData().logger);
892
+ out << "exception in `" << _prefix << "':\n" << ex << "\nevent handler: " << current._handler->toString();
893
+ }
894
+ catch(...)
895
+ {
896
+ Error out(_instance->initializationData().logger);
897
+ out << "exception in `" << _prefix << "':\nevent handler: " << current._handler->toString();
898
+ }
899
+
900
+ {
901
+ Lock sync(*this);
902
+ if(_sizeMax > 1 && current._ioCompleted)
903
+ {
904
+ assert(_inUse > 0);
905
+ --_inUse;
906
+ }
907
+ thread->setState(ICE_ENUM(ThreadState, ThreadStateIdle));
908
+ }
909
+ }
910
+ #endif
911
+ }
912
+
913
+ bool
914
+ IceInternal::ThreadPool::ioCompleted(ThreadPoolCurrent& current)
915
+ {
916
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
917
+
918
+ current._ioCompleted = true; // Set the IO completed flag to specify that ioCompleted() has been called.
919
+
920
+ current._thread->setState(ICE_ENUM(ThreadState, ThreadStateInUseForUser));
921
+
922
+ if(_sizeMax > 1)
923
+ {
924
+
925
+ #if !defined(ICE_USE_IOCP)
926
+ --_inUseIO;
927
+
928
+ if(!_destroyed)
929
+ {
930
+ if(_serialize && current._handler.get() != _workQueue.get())
931
+ {
932
+ _selector.disable(current._handler.get(), current.operation);
933
+ }
934
+ }
935
+
936
+ if(current._leader)
937
+ {
938
+ //
939
+ // If this thread is still the leader, it's time to promote a new leader.
940
+ //
941
+ promoteFollower(current);
942
+ }
943
+ else if(_promote && (_nextHandler != _handlers.end() || _inUseIO == 0))
944
+ {
945
+ notify();
946
+ }
947
+ #endif
948
+
949
+ assert(_inUse >= 0);
950
+ ++_inUse;
951
+
952
+ if(_inUse == _sizeWarn)
953
+ {
954
+ Warning out(_instance->initializationData().logger);
955
+ out << "thread pool `" << _prefix << "' is running low on threads\n"
956
+ << "Size=" << _size << ", " << "SizeMax=" << _sizeMax << ", " << "SizeWarn=" << _sizeWarn;
957
+ }
958
+
959
+ if(!_destroyed)
960
+ {
961
+ assert(_inUse <= static_cast<int>(_threads.size()));
962
+ if(_inUse < _sizeMax && _inUse == static_cast<int>(_threads.size()))
963
+ {
964
+ if(_instance->traceLevels()->threadPool >= 1)
965
+ {
966
+ Trace out(_instance->initializationData().logger, _instance->traceLevels()->threadPoolCat);
967
+ out << "growing " << _prefix << ": Size=" << _threads.size() + 1;
968
+ }
969
+
970
+ try
971
+ {
972
+ EventHandlerThreadPtr thread = new EventHandlerThread(this, nextThreadId());
973
+ if(_hasPriority)
974
+ {
975
+ thread->start(_stackSize, _priority);
976
+ }
977
+ else
978
+ {
979
+ thread->start(_stackSize);
980
+ }
981
+ _threads.insert(thread);
982
+ }
983
+ catch(const IceUtil::Exception& ex)
984
+ {
985
+ Error out(_instance->initializationData().logger);
986
+ out << "cannot create thread for `" << _prefix << "':\n" << ex;
987
+ }
988
+ }
989
+ }
990
+ }
991
+
992
+ return _serialize && current._handler.get() != _workQueue.get();
993
+ }
994
+
995
+ #if defined(ICE_USE_IOCP)
996
+ bool
997
+ IceInternal::ThreadPool::startMessage(ThreadPoolCurrent& current)
998
+ {
999
+ assert(current._handler->_pending & current.operation);
1000
+
1001
+ if(current._handler->_started & current.operation)
1002
+ {
1003
+ assert(!(current._handler->_completed & current.operation));
1004
+ current._handler->_completed = static_cast<SocketOperation>(current._handler->_completed | current.operation);
1005
+ current._handler->_started = static_cast<SocketOperation>(current._handler->_started & ~current.operation);
1006
+
1007
+ AsyncInfo* info = current._handler->getNativeInfo()->getAsyncInfo(current.operation);
1008
+ info->count = current._count;
1009
+ info->error = current._error;
1010
+
1011
+ if(!current._handler->finishAsync(current.operation)) // Returns false if the handler is finished.
1012
+ {
1013
+ current._handler->_pending = static_cast<SocketOperation>(current._handler->_pending & ~current.operation);
1014
+ if(!current._handler->_pending && current._handler->_finish)
1015
+ {
1016
+ Lock sync(*this);
1017
+ _workQueue->queue(new FinishedWorkItem(current._handler, false));
1018
+ _selector.finish(current._handler.get());
1019
+ }
1020
+ return false;
1021
+ }
1022
+ }
1023
+ else if(!(current._handler->_completed & current.operation) && (current._handler->_registered & current.operation))
1024
+ {
1025
+ assert(!(current._handler->_started & current.operation));
1026
+ if(current._handler->_ready & current.operation)
1027
+ {
1028
+ return true;
1029
+ }
1030
+ else if(!current._handler->startAsync(current.operation))
1031
+ {
1032
+ current._handler->_pending = static_cast<SocketOperation>(current._handler->_pending & ~current.operation);
1033
+ if(!current._handler->_pending && current._handler->_finish)
1034
+ {
1035
+ Lock sync(*this);
1036
+ _workQueue->queue(new FinishedWorkItem(current._handler, false));
1037
+ _selector.finish(current._handler.get());
1038
+ }
1039
+ return false;
1040
+ }
1041
+ else
1042
+ {
1043
+ current._handler->_started = static_cast<SocketOperation>(current._handler->_started | current.operation);
1044
+ return false;
1045
+ }
1046
+ }
1047
+
1048
+ if(current._handler->_registered & current.operation)
1049
+ {
1050
+ assert(current._handler->_completed & current.operation);
1051
+ current._handler->_completed = static_cast<SocketOperation>(current._handler->_completed & ~current.operation);
1052
+ return true;
1053
+ }
1054
+ else
1055
+ {
1056
+ current._handler->_pending = static_cast<SocketOperation>(current._handler->_pending & ~current.operation);
1057
+ if(!current._handler->_pending && current._handler->_finish)
1058
+ {
1059
+ Lock sync(*this);
1060
+ _workQueue->queue(new FinishedWorkItem(current._handler, false));
1061
+ _selector.finish(current._handler.get());
1062
+ }
1063
+ return false;
1064
+ }
1065
+ }
1066
+
1067
+ void
1068
+ IceInternal::ThreadPool::finishMessage(ThreadPoolCurrent& current)
1069
+ {
1070
+ if(current._handler->_registered & current.operation && !current._handler->_finish)
1071
+ {
1072
+ assert(!(current._handler->_completed & current.operation));
1073
+ if(current._handler->_ready & current.operation)
1074
+ {
1075
+ _selector.completed(current._handler.get(), current.operation);
1076
+ }
1077
+ else if(!current._handler->startAsync(current.operation))
1078
+ {
1079
+ current._handler->_pending = static_cast<SocketOperation>(current._handler->_pending & ~current.operation);
1080
+ }
1081
+ else
1082
+ {
1083
+ assert(current._handler->_pending & current.operation);
1084
+ current._handler->_started = static_cast<SocketOperation>(current._handler->_started | current.operation);
1085
+ }
1086
+ }
1087
+ else
1088
+ {
1089
+ current._handler->_pending = static_cast<SocketOperation>(current._handler->_pending & ~current.operation);
1090
+ }
1091
+
1092
+ if(!current._handler->_pending && current._handler->_finish)
1093
+ {
1094
+ // There are no more pending async operations, it's time to call finish.
1095
+ Lock sync(*this);
1096
+ _workQueue->queue(new FinishedWorkItem(current._handler, false));
1097
+ _selector.finish(current._handler.get());
1098
+ }
1099
+ }
1100
+ #else
1101
+ void
1102
+ IceInternal::ThreadPool::promoteFollower(ThreadPoolCurrent& current)
1103
+ {
1104
+ assert(!_promote && current._leader);
1105
+ _promote = true;
1106
+ if(_inUseIO < _sizeIO && (_nextHandler != _handlers.end() || _inUseIO == 0))
1107
+ {
1108
+ notify();
1109
+ }
1110
+ current._leader = false;
1111
+ }
1112
+
1113
+ bool
1114
+ IceInternal::ThreadPool::followerWait(ThreadPoolCurrent& current)
1115
+ {
1116
+ assert(!current._leader);
1117
+
1118
+ current._thread->setState(ICE_ENUM(ThreadState, ThreadStateIdle));
1119
+
1120
+ //
1121
+ // It's important to clear the handler before waiting to make sure that
1122
+ // resources for the handler are released now if it's finished. We also
1123
+ // clear the per-thread stream.
1124
+ //
1125
+ current._handler = 0;
1126
+ current.stream.clear();
1127
+ current.stream.b.clear();
1128
+
1129
+ //
1130
+ // Wait to be promoted and for all the IO threads to be done.
1131
+ //
1132
+ while(!_promote || _inUseIO == _sizeIO || (_nextHandler == _handlers.end() && _inUseIO > 0))
1133
+ {
1134
+ if(_threadIdleTime)
1135
+ {
1136
+ if(!timedWait(IceUtil::Time::seconds(_threadIdleTime)))
1137
+ {
1138
+ if(!_destroyed && (!_promote || _inUseIO == _sizeIO ||
1139
+ (_nextHandler == _handlers.end() && _inUseIO > 0)))
1140
+ {
1141
+ if(_instance->traceLevels()->threadPool >= 1)
1142
+ {
1143
+ Trace out(_instance->initializationData().logger, _instance->traceLevels()->threadPoolCat);
1144
+ out << "shrinking " << _prefix << ": Size=" << (_threads.size() - 1);
1145
+ }
1146
+ assert(_threads.size() > 1); // Can only be called by a waiting follower thread.
1147
+ _threads.erase(current._thread);
1148
+ _workQueue->queue(new JoinThreadWorkItem(current._thread));
1149
+ return true;
1150
+ }
1151
+ }
1152
+ }
1153
+ else
1154
+ {
1155
+ wait();
1156
+ }
1157
+ }
1158
+ current._leader = true; // The current thread has become the leader.
1159
+ _promote = false;
1160
+ return false;
1161
+ }
1162
+ #endif
1163
+
1164
+ string
1165
+ IceInternal::ThreadPool::nextThreadId()
1166
+ {
1167
+ ostringstream os;
1168
+ os << _prefix << "-" << _nextThreadId++;
1169
+ return os.str();
1170
+ }
1171
+
1172
+ IceInternal::ThreadPool::EventHandlerThread::EventHandlerThread(const ThreadPoolPtr& pool, const string& name) :
1173
+ IceUtil::Thread(name),
1174
+ _pool(pool),
1175
+ _state(ICE_ENUM(ThreadState, ThreadStateIdle))
1176
+ {
1177
+ updateObserver();
1178
+ }
1179
+
1180
+ void
1181
+ IceInternal::ThreadPool::EventHandlerThread::updateObserver()
1182
+ {
1183
+ // Must be called with the thread pool mutex locked
1184
+ const CommunicatorObserverPtr& obsv = _pool->_instance->initializationData().observer;
1185
+ if(obsv)
1186
+ {
1187
+ _observer.attach(obsv->getThreadObserver(_pool->_prefix, name(), _state, _observer.get()));
1188
+ }
1189
+ }
1190
+
1191
+ void
1192
+ IceInternal::ThreadPool::EventHandlerThread::setState(Ice::Instrumentation::ThreadState s)
1193
+ {
1194
+ // Must be called with the thread pool mutex locked
1195
+ if(_observer)
1196
+ {
1197
+ if(_state != s)
1198
+ {
1199
+ _observer->stateChanged(_state, s);
1200
+ }
1201
+ }
1202
+ _state = s;
1203
+ }
1204
+
1205
+ void
1206
+ IceInternal::ThreadPool::EventHandlerThread::run()
1207
+ {
1208
+ #ifdef ICE_CPP11_MAPPING
1209
+ if(_pool->_instance->initializationData().threadStart)
1210
+ #else
1211
+ if(_pool->_instance->initializationData().threadHook)
1212
+ #endif
1213
+ {
1214
+ try
1215
+ {
1216
+ #ifdef ICE_CPP11_MAPPING
1217
+ _pool->_instance->initializationData().threadStart();
1218
+ #else
1219
+ _pool->_instance->initializationData().threadHook->start();
1220
+ #endif
1221
+ }
1222
+ catch(const exception& ex)
1223
+ {
1224
+ Error out(_pool->_instance->initializationData().logger);
1225
+ out << "thread hook start() method raised an unexpected exception in `" << _pool->_prefix << "':\n" << ex;
1226
+ }
1227
+ catch(...)
1228
+ {
1229
+ Error out(_pool->_instance->initializationData().logger);
1230
+ out << "thread hook start() method raised an unexpected exception in `" << _pool->_prefix << "'";
1231
+ }
1232
+ }
1233
+
1234
+ try
1235
+ {
1236
+ _pool->run(this);
1237
+ }
1238
+ catch(const exception& ex)
1239
+ {
1240
+ Error out(_pool->_instance->initializationData().logger);
1241
+ out << "exception in `" << _pool->_prefix << "':\n" << ex;
1242
+ }
1243
+ catch(...)
1244
+ {
1245
+ Error out(_pool->_instance->initializationData().logger);
1246
+ out << "unknown exception in `" << _pool->_prefix << "'";
1247
+ }
1248
+
1249
+ _observer.detach();
1250
+
1251
+ #ifdef ICE_CPP11_MAPPING
1252
+ if(_pool->_instance->initializationData().threadStop)
1253
+ #else
1254
+ if(_pool->_instance->initializationData().threadHook)
1255
+ #endif
1256
+ {
1257
+ try
1258
+ {
1259
+ #ifdef ICE_CPP11_MAPPING
1260
+ _pool->_instance->initializationData().threadStop();
1261
+ #else
1262
+ _pool->_instance->initializationData().threadHook->stop();
1263
+ #endif
1264
+ }
1265
+ catch(const exception& ex)
1266
+ {
1267
+ Error out(_pool->_instance->initializationData().logger);
1268
+ out << "thread hook stop() method raised an unexpected exception in `" << _pool->_prefix << "':\n" << ex;
1269
+ }
1270
+ catch(...)
1271
+ {
1272
+ Error out(_pool->_instance->initializationData().logger);
1273
+ out << "thread hook stop() method raised an unexpected exception in `" << _pool->_prefix << "'";
1274
+ }
1275
+ }
1276
+
1277
+ _pool = 0; // Break cyclic dependency.
1278
+ }
1279
+
1280
+ ThreadPoolCurrent::ThreadPoolCurrent(const InstancePtr& instance,
1281
+ const ThreadPoolPtr& threadPool,
1282
+ const ThreadPool::EventHandlerThreadPtr& thread) :
1283
+ operation(SocketOperationNone),
1284
+ stream(instance.get(), Ice::currentProtocolEncoding),
1285
+ _threadPool(threadPool.get()),
1286
+ _thread(thread),
1287
+ _ioCompleted(false)
1288
+ #if !defined(ICE_USE_IOCP)
1289
+ , _leader(false)
1290
+ #endif
1291
+ {
1292
+ }