zeroc-ice 3.7.11 → 3.8.1

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 (895) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Communicator.cpp +159 -376
  3. data/dist/IceRuby/Communicator.h +8 -9
  4. data/dist/IceRuby/Config.h +23 -89
  5. data/dist/IceRuby/Connection.cpp +111 -219
  6. data/dist/IceRuby/Connection.h +8 -12
  7. data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
  8. data/dist/IceRuby/DefaultSliceLoader.h +25 -0
  9. data/dist/IceRuby/Endpoint.cpp +63 -65
  10. data/dist/IceRuby/Endpoint.h +7 -11
  11. data/dist/IceRuby/ImplicitContext.cpp +26 -31
  12. data/dist/IceRuby/ImplicitContext.h +6 -10
  13. data/dist/IceRuby/Init.cpp +27 -40
  14. data/dist/IceRuby/Logger.cpp +23 -28
  15. data/dist/IceRuby/Logger.h +8 -12
  16. data/dist/IceRuby/Operation.cpp +177 -219
  17. data/dist/IceRuby/Operation.h +15 -18
  18. data/dist/IceRuby/Properties.cpp +133 -89
  19. data/dist/IceRuby/Properties.h +6 -10
  20. data/dist/IceRuby/Proxy.cpp +179 -649
  21. data/dist/IceRuby/Proxy.h +11 -12
  22. data/dist/IceRuby/RubySliceLoader.cpp +39 -0
  23. data/dist/IceRuby/RubySliceLoader.h +27 -0
  24. data/dist/IceRuby/Slice.cpp +88 -94
  25. data/dist/IceRuby/Slice.h +3 -7
  26. data/dist/IceRuby/Types.cpp +987 -1190
  27. data/dist/IceRuby/Types.h +390 -461
  28. data/dist/IceRuby/Util.cpp +214 -473
  29. data/dist/IceRuby/Util.h +378 -479
  30. data/dist/ice/cpp/include/Ice/AsyncResponseHandler.h +85 -0
  31. data/dist/ice/cpp/include/Ice/BatchRequest.h +39 -0
  32. data/dist/ice/cpp/include/Ice/BatchRequestQueueF.h +4 -10
  33. data/dist/ice/cpp/include/Ice/Buffer.h +116 -111
  34. data/dist/ice/cpp/include/Ice/Communicator.h +411 -0
  35. data/dist/ice/cpp/include/Ice/CommunicatorF.h +16 -0
  36. data/dist/ice/cpp/include/Ice/Config.h +46 -62
  37. data/dist/ice/cpp/include/Ice/Connection.h +410 -0
  38. data/dist/ice/cpp/include/Ice/ConnectionF.h +36 -0
  39. data/dist/ice/cpp/include/Ice/ConnectionIF.h +6 -28
  40. data/dist/ice/cpp/include/Ice/CtrlCHandler.h +56 -0
  41. data/dist/ice/cpp/include/Ice/Current.h +60 -0
  42. data/dist/ice/cpp/include/Ice/DefaultSliceLoader.h +160 -0
  43. data/dist/ice/cpp/include/Ice/Demangle.h +17 -0
  44. data/dist/ice/cpp/include/Ice/Endpoint.h +298 -0
  45. data/dist/ice/cpp/include/Ice/EndpointF.h +44 -0
  46. data/dist/ice/cpp/include/Ice/EndpointSelectionType.h +21 -0
  47. data/dist/ice/cpp/include/Ice/Exception.h +46 -151
  48. data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
  49. data/dist/ice/cpp/include/Ice/Format.h +11 -27
  50. data/dist/ice/cpp/include/Ice/Ice.h +53 -48
  51. data/dist/ice/cpp/include/Ice/IconvStringConverter.h +165 -326
  52. data/dist/ice/cpp/include/Ice/ImplicitContext.h +76 -0
  53. data/dist/ice/cpp/include/Ice/IncomingRequest.h +75 -0
  54. data/dist/ice/cpp/include/Ice/Initialize.h +113 -927
  55. data/dist/ice/cpp/include/Ice/InputStream.h +748 -1320
  56. data/dist/ice/cpp/include/Ice/InstanceF.h +4 -10
  57. data/dist/ice/cpp/include/Ice/Instrumentation.h +319 -0
  58. data/dist/ice/cpp/include/Ice/LocalException.h +58 -0
  59. data/dist/ice/cpp/include/Ice/LocalExceptions.h +870 -0
  60. data/dist/ice/cpp/include/Ice/Logger.h +62 -0
  61. data/dist/ice/cpp/include/Ice/LoggerUtil.h +124 -147
  62. data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
  63. data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +41 -71
  64. data/dist/ice/cpp/include/Ice/Object.h +151 -490
  65. data/dist/ice/cpp/include/Ice/ObjectAdapter.h +324 -0
  66. data/dist/ice/cpp/include/Ice/ObjectAdapterF.h +16 -0
  67. data/dist/ice/cpp/include/Ice/ObjectF.h +5 -19
  68. data/dist/ice/cpp/include/Ice/ObserverHelper.h +115 -132
  69. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +392 -748
  70. data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
  71. data/dist/ice/cpp/include/Ice/OutputStream.h +756 -956
  72. data/dist/ice/cpp/include/Ice/Plugin.h +73 -0
  73. data/dist/ice/cpp/include/Ice/PluginFactory.h +77 -0
  74. data/dist/ice/cpp/include/{IceUtil → Ice}/PopDisableWarnings.h +8 -6
  75. data/dist/ice/cpp/include/Ice/Properties.h +307 -0
  76. data/dist/ice/cpp/include/Ice/PropertiesF.h +19 -0
  77. data/dist/ice/cpp/include/Ice/Proxy.h +665 -5094
  78. data/dist/ice/cpp/include/Ice/ProxyF.h +2 -44
  79. data/dist/ice/cpp/include/Ice/ProxyFunctions.h +209 -0
  80. data/dist/ice/cpp/include/Ice/PushDisableWarnings.h +29 -0
  81. data/dist/ice/cpp/include/Ice/ReferenceF.h +4 -19
  82. data/dist/ice/cpp/include/Ice/RequestHandlerF.h +8 -18
  83. data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +276 -0
  84. data/dist/ice/cpp/include/Ice/SSL/Config.h +54 -0
  85. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfo.h +107 -0
  86. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfoF.h +39 -0
  87. data/dist/ice/cpp/include/Ice/SSL/EndpointInfo.h +40 -0
  88. data/dist/ice/cpp/include/Ice/SSL/SSLException.h +32 -0
  89. data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +286 -0
  90. data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
  91. data/dist/ice/cpp/include/Ice/Service.h +182 -342
  92. data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
  93. data/dist/ice/cpp/include/Ice/SlicedData.h +113 -160
  94. data/dist/ice/cpp/include/Ice/SlicedDataF.h +17 -27
  95. data/dist/ice/cpp/include/Ice/StreamHelpers.h +532 -1070
  96. data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
  97. data/dist/ice/cpp/include/Ice/StringConverter.h +152 -63
  98. data/dist/ice/cpp/include/Ice/StringUtil.h +114 -0
  99. data/dist/ice/cpp/include/Ice/TimerTask.h +24 -0
  100. data/dist/ice/cpp/include/Ice/TupleCompare.h +103 -0
  101. data/dist/ice/cpp/include/Ice/UUID.h +6 -9
  102. data/dist/ice/cpp/include/Ice/UserException.h +46 -0
  103. data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +4 -79
  104. data/dist/ice/cpp/include/Ice/Value.h +103 -115
  105. data/dist/ice/cpp/include/Ice/ValueF.h +6 -11
  106. data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +16 -1877
  107. data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +16 -1185
  108. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +46 -146
  109. data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
  110. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +49 -93
  111. data/dist/ice/cpp/include/generated/Ice/Identity.h +70 -226
  112. data/dist/ice/cpp/include/generated/Ice/Locator.h +494 -3850
  113. data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
  114. data/dist/ice/cpp/include/generated/Ice/Metrics.h +937 -4603
  115. data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
  116. data/dist/ice/cpp/include/generated/Ice/Process.h +197 -929
  117. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +249 -1301
  118. data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
  119. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +637 -2620
  120. data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
  121. data/dist/ice/cpp/include/generated/Ice/Router.h +429 -1783
  122. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +18 -65
  123. data/dist/ice/cpp/include/generated/Ice/Version.h +73 -318
  124. data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +498 -0
  125. data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +387 -0
  126. data/dist/ice/cpp/src/Ice/Acceptor.h +28 -24
  127. data/dist/ice/cpp/src/Ice/AcceptorF.h +6 -14
  128. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories.h +16 -0
  129. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_all.cpp +43 -0
  130. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_min.cpp +17 -0
  131. data/dist/ice/cpp/src/Ice/ArgVector.cpp +17 -18
  132. data/dist/ice/cpp/src/Ice/ArgVector.h +19 -25
  133. data/dist/ice/cpp/src/Ice/Base64.cpp +66 -66
  134. data/dist/ice/cpp/src/Ice/Base64.h +14 -19
  135. data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +70 -121
  136. data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +37 -47
  137. data/dist/ice/cpp/src/Ice/Buffer.cpp +73 -41
  138. data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
  139. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +215 -249
  140. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +38 -60
  141. data/dist/ice/cpp/src/Ice/Communicator.cpp +399 -0
  142. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.cpp +140 -0
  143. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.h +39 -0
  144. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.cpp +63 -184
  145. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +30 -51
  146. data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +4 -14
  147. data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
  148. data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +578 -792
  149. data/dist/ice/cpp/src/Ice/ConnectionFactory.h +200 -200
  150. data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +6 -19
  151. data/dist/ice/cpp/src/Ice/ConnectionI.cpp +1674 -1782
  152. data/dist/ice/cpp/src/Ice/ConnectionI.h +333 -293
  153. data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
  154. data/dist/ice/cpp/src/Ice/Connector.h +25 -19
  155. data/dist/ice/cpp/src/Ice/ConnectorF.h +4 -11
  156. data/dist/ice/cpp/src/{IceUtil → Ice}/ConsoleUtil.cpp +32 -53
  157. data/dist/ice/cpp/src/Ice/ConsoleUtil.h +79 -0
  158. data/dist/ice/cpp/src/Ice/CtrlCHandler.cpp +189 -0
  159. data/dist/ice/cpp/src/Ice/Current.cpp +29 -0
  160. data/dist/ice/cpp/src/Ice/DLLMain.cpp +25 -35
  161. data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
  162. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +41 -119
  163. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +27 -41
  164. data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +4 -11
  165. data/dist/ice/cpp/src/Ice/Demangle.cpp +26 -0
  166. data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
  167. data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +44 -112
  168. data/dist/ice/cpp/src/Ice/DynamicLibrary.h +91 -0
  169. data/dist/ice/cpp/src/Ice/Endian.h +40 -0
  170. data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +35 -59
  171. data/dist/ice/cpp/src/Ice/EndpointFactory.h +82 -103
  172. data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +4 -11
  173. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +54 -87
  174. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +28 -33
  175. data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +4 -11
  176. data/dist/ice/cpp/src/Ice/EndpointI.cpp +53 -23
  177. data/dist/ice/cpp/src/Ice/EndpointI.h +132 -200
  178. data/dist/ice/cpp/src/Ice/EndpointIF.h +11 -39
  179. data/dist/ice/cpp/src/Ice/EventHandler.cpp +3 -26
  180. data/dist/ice/cpp/src/Ice/EventHandler.h +46 -56
  181. data/dist/ice/cpp/src/Ice/EventHandlerF.h +4 -14
  182. data/dist/ice/cpp/src/Ice/Exception.cpp +3 -816
  183. data/dist/ice/cpp/src/Ice/FileUtil.cpp +476 -0
  184. data/dist/ice/cpp/src/Ice/FileUtil.h +152 -0
  185. data/dist/ice/cpp/src/Ice/FixedRequestHandler.cpp +34 -0
  186. data/dist/ice/cpp/src/Ice/FixedRequestHandler.h +29 -0
  187. data/dist/ice/cpp/src/Ice/HashUtil.h +46 -32
  188. data/dist/ice/cpp/src/Ice/HttpParser.cpp +431 -431
  189. data/dist/ice/cpp/src/Ice/HttpParser.h +95 -100
  190. data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +207 -324
  191. data/dist/ice/cpp/src/Ice/IPEndpointI.h +80 -126
  192. data/dist/ice/cpp/src/Ice/IPEndpointIF.h +6 -17
  193. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.cpp +172 -0
  194. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.h +89 -0
  195. data/dist/ice/cpp/src/Ice/ImplicitContext.cpp +109 -0
  196. data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +66 -0
  197. data/dist/ice/cpp/src/Ice/Initialize.cpp +48 -542
  198. data/dist/ice/cpp/src/Ice/InputStream.cpp +848 -1385
  199. data/dist/ice/cpp/src/Ice/Instance.cpp +816 -827
  200. data/dist/ice/cpp/src/Ice/Instance.h +202 -212
  201. data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +526 -661
  202. data/dist/ice/cpp/src/Ice/InstrumentationI.h +171 -192
  203. data/dist/ice/cpp/src/Ice/LocalException.cpp +518 -0
  204. data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +577 -0
  205. data/dist/ice/cpp/src/Ice/LocatorInfo.cpp +291 -329
  206. data/dist/ice/cpp/src/Ice/LocatorInfo.h +144 -157
  207. data/dist/ice/cpp/src/Ice/LocatorInfoF.h +8 -17
  208. data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +561 -743
  209. data/dist/ice/cpp/src/Ice/LoggerAdminI.h +18 -28
  210. data/dist/ice/cpp/src/Ice/LoggerI.cpp +66 -91
  211. data/dist/ice/cpp/src/Ice/LoggerI.h +36 -41
  212. data/dist/ice/cpp/src/Ice/LoggerMiddleware.cpp +176 -0
  213. data/dist/ice/cpp/src/Ice/LoggerMiddleware.h +42 -0
  214. data/dist/ice/cpp/src/Ice/LoggerUtil.cpp +14 -38
  215. data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
  216. data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +194 -280
  217. data/dist/ice/cpp/src/Ice/MetricsAdminI.h +600 -0
  218. data/dist/ice/cpp/src/Ice/MetricsFunctional.h +92 -0
  219. data/dist/ice/cpp/src/Ice/MetricsObserverI.h +587 -0
  220. data/dist/ice/cpp/src/Ice/NativePropertiesAdmin.cpp +185 -0
  221. data/dist/ice/cpp/src/Ice/Network.cpp +595 -917
  222. data/dist/ice/cpp/src/Ice/Network.h +189 -213
  223. data/dist/ice/cpp/src/Ice/NetworkF.h +2 -10
  224. data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +99 -104
  225. data/dist/ice/cpp/src/Ice/NetworkProxy.h +49 -54
  226. data/dist/ice/cpp/src/Ice/NetworkProxyF.h +4 -11
  227. data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +16 -18
  228. data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +22 -27
  229. data/dist/ice/cpp/src/Ice/Object.cpp +152 -338
  230. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +170 -113
  231. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +41 -41
  232. data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +4 -15
  233. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +580 -727
  234. data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +149 -145
  235. data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +36 -17
  236. data/dist/ice/cpp/src/Ice/ObserverMiddleware.cpp +96 -0
  237. data/dist/ice/cpp/src/Ice/ObserverMiddleware.h +25 -0
  238. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.cpp +147 -187
  239. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +56 -64
  240. data/dist/ice/cpp/src/{IceUtil → Ice}/Options.cpp +187 -258
  241. data/dist/ice/cpp/src/Ice/Options.h +119 -0
  242. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +516 -732
  243. data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
  244. data/dist/ice/cpp/src/Ice/OutputStream.cpp +610 -543
  245. data/dist/ice/cpp/src/Ice/OutputUtil.cpp +344 -0
  246. data/dist/ice/cpp/src/Ice/OutputUtil.h +173 -0
  247. data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +118 -277
  248. data/dist/ice/cpp/src/Ice/PluginManagerI.h +41 -48
  249. data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
  250. data/dist/ice/cpp/src/Ice/PropertyNames.cpp +519 -1341
  251. data/dist/ice/cpp/src/Ice/PropertyNames.h +49 -64
  252. data/dist/ice/cpp/src/Ice/PropertyUtil.cpp +103 -0
  253. data/dist/ice/cpp/src/Ice/PropertyUtil.h +31 -0
  254. data/dist/ice/cpp/src/Ice/Protocol.cpp +129 -94
  255. data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
  256. data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +117 -62
  257. data/dist/ice/cpp/src/Ice/ProtocolInstance.h +63 -82
  258. data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +4 -11
  259. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +10 -32
  260. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +25 -54
  261. data/dist/ice/cpp/src/Ice/Proxy.cpp +294 -1357
  262. data/dist/ice/cpp/src/Ice/ProxyAsync.cpp +684 -0
  263. data/dist/ice/cpp/src/Ice/ProxyFunctions.cpp +90 -0
  264. data/dist/ice/cpp/src/Ice/PushDisableDeprecatedWarnings.h +15 -0
  265. data/dist/ice/cpp/src/Ice/Random.cpp +29 -0
  266. data/dist/ice/cpp/src/Ice/Random.h +23 -0
  267. data/dist/ice/cpp/src/Ice/Reference.cpp +635 -1097
  268. data/dist/ice/cpp/src/Ice/Reference.h +314 -298
  269. data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +320 -378
  270. data/dist/ice/cpp/src/Ice/ReferenceFactory.h +48 -66
  271. data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +4 -9
  272. data/dist/ice/cpp/src/Ice/RequestHandler.cpp +15 -24
  273. data/dist/ice/cpp/src/Ice/RequestHandler.h +43 -68
  274. data/dist/ice/cpp/src/Ice/RequestHandlerCache.cpp +76 -0
  275. data/dist/ice/cpp/src/Ice/RequestHandlerCache.h +33 -0
  276. data/dist/ice/cpp/src/Ice/ResourceConfig.h +27 -0
  277. data/dist/ice/cpp/src/Ice/RetryQueue.cpp +51 -57
  278. data/dist/ice/cpp/src/Ice/RetryQueue.h +39 -46
  279. data/dist/ice/cpp/src/Ice/RetryQueueF.h +4 -9
  280. data/dist/ice/cpp/src/Ice/RouterInfo.cpp +97 -201
  281. data/dist/ice/cpp/src/Ice/RouterInfo.h +61 -118
  282. data/dist/ice/cpp/src/Ice/RouterInfoF.h +6 -14
  283. data/dist/ice/cpp/src/Ice/SHA1.cpp +86 -60
  284. data/dist/ice/cpp/src/Ice/SHA1.h +35 -0
  285. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.cpp +89 -0
  286. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.h +87 -0
  287. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +521 -0
  288. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.h +40 -0
  289. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngineF.h +13 -0
  290. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +646 -0
  291. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
  292. data/dist/ice/cpp/src/{IceSSL → Ice/SSL}/RFC2253.cpp +85 -88
  293. data/dist/ice/cpp/src/Ice/SSL/RFC2253.h +58 -0
  294. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.cpp +124 -0
  295. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.h +52 -0
  296. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.cpp +92 -0
  297. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.h +38 -0
  298. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.cpp +377 -0
  299. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.h +84 -0
  300. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.cpp +115 -0
  301. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.h +69 -0
  302. data/dist/ice/cpp/src/Ice/SSL/SSLEngineF.h +14 -0
  303. data/dist/ice/cpp/src/Ice/SSL/SSLException.cpp +18 -0
  304. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.cpp +27 -0
  305. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.h +26 -0
  306. data/dist/ice/cpp/src/Ice/SSL/SSLInstanceF.h +19 -0
  307. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +673 -0
  308. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +118 -0
  309. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1449 -0
  310. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.h +58 -0
  311. data/dist/ice/cpp/src/Ice/SSL/SchannelEngineF.h +18 -0
  312. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +1088 -0
  313. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
  314. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +825 -0
  315. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.h +44 -0
  316. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngineF.h +18 -0
  317. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.cpp +621 -0
  318. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.h +91 -0
  319. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +1048 -0
  320. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
  321. data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +233 -0
  322. data/dist/ice/cpp/src/Ice/SSL/TrustManager.h +42 -0
  323. data/dist/ice/cpp/src/Ice/SSL/TrustManagerF.h +14 -0
  324. data/dist/ice/cpp/src/Ice/ScannerConfig.h +35 -0
  325. data/dist/ice/cpp/src/Ice/Selector.cpp +341 -606
  326. data/dist/ice/cpp/src/Ice/Selector.h +167 -224
  327. data/dist/ice/cpp/src/Ice/ServantManager.cpp +195 -128
  328. data/dist/ice/cpp/src/Ice/ServantManager.h +52 -55
  329. data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
  330. data/dist/ice/cpp/src/Ice/Service.cpp +548 -641
  331. data/dist/ice/cpp/src/Ice/SharedContext.h +13 -26
  332. data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
  333. data/dist/ice/cpp/src/Ice/SlicedData.cpp +17 -96
  334. data/dist/ice/cpp/src/Ice/StreamSocket.cpp +104 -151
  335. data/dist/ice/cpp/src/Ice/StreamSocket.h +48 -60
  336. data/dist/ice/cpp/src/Ice/StringConverter.cpp +586 -0
  337. data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
  338. data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +41 -47
  339. data/dist/ice/cpp/src/Ice/SysLoggerI.h +24 -27
  340. data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +16 -17
  341. data/dist/ice/cpp/src/Ice/SystemdJournalI.h +19 -25
  342. data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
  343. data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +67 -88
  344. data/dist/ice/cpp/src/Ice/TcpAcceptor.h +34 -40
  345. data/dist/ice/cpp/src/Ice/TcpConnector.cpp +42 -41
  346. data/dist/ice/cpp/src/Ice/TcpConnector.h +26 -35
  347. data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +172 -146
  348. data/dist/ice/cpp/src/Ice/TcpEndpointI.h +76 -80
  349. data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +38 -26
  350. data/dist/ice/cpp/src/Ice/TcpTransceiver.h +40 -45
  351. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +333 -515
  352. data/dist/ice/cpp/src/Ice/ThreadPool.h +202 -290
  353. data/dist/ice/cpp/src/Ice/ThreadPoolF.h +14 -0
  354. data/dist/ice/cpp/src/Ice/TimeUtil.cpp +47 -0
  355. data/dist/ice/cpp/src/Ice/TimeUtil.h +21 -0
  356. data/dist/ice/cpp/src/Ice/Timer.cpp +73 -167
  357. data/dist/ice/cpp/src/Ice/Timer.h +212 -0
  358. data/dist/ice/cpp/src/Ice/TraceLevels.cpp +11 -29
  359. data/dist/ice/cpp/src/Ice/TraceLevels.h +22 -28
  360. data/dist/ice/cpp/src/Ice/TraceLevelsF.h +4 -11
  361. data/dist/ice/cpp/src/Ice/TraceUtil.cpp +136 -215
  362. data/dist/ice/cpp/src/Ice/TraceUtil.h +27 -16
  363. data/dist/ice/cpp/src/Ice/Transceiver.cpp +3 -7
  364. data/dist/ice/cpp/src/Ice/Transceiver.h +35 -32
  365. data/dist/ice/cpp/src/Ice/TransceiverF.h +10 -20
  366. data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
  367. data/dist/ice/cpp/src/Ice/UdpConnector.cpp +39 -39
  368. data/dist/ice/cpp/src/Ice/UdpConnector.h +27 -36
  369. data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +178 -213
  370. data/dist/ice/cpp/src/Ice/UdpEndpointI.h +82 -85
  371. data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +201 -221
  372. data/dist/ice/cpp/src/Ice/UdpTransceiver.h +68 -74
  373. data/dist/ice/cpp/{include/IceUtil → src/Ice}/UndefSysMacros.h +12 -12
  374. data/dist/ice/cpp/src/Ice/UniqueRef.h +77 -0
  375. data/dist/ice/cpp/src/Ice/UserException.cpp +58 -0
  376. data/dist/ice/cpp/src/Ice/Value.cpp +107 -38
  377. data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +10 -15
  378. data/dist/ice/cpp/src/Ice/WSAcceptor.h +31 -37
  379. data/dist/ice/cpp/src/Ice/WSConnector.cpp +25 -40
  380. data/dist/ice/cpp/src/Ice/WSConnector.h +26 -33
  381. data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +164 -217
  382. data/dist/ice/cpp/src/Ice/WSEndpoint.h +72 -83
  383. data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +469 -458
  384. data/dist/ice/cpp/src/Ice/WSTransceiver.h +117 -123
  385. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +20 -29
  386. data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
  387. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +20 -31
  388. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +24 -34
  389. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +454 -1744
  390. data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
  391. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +824 -1971
  392. data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
  393. data/dist/ice/cpp/src/Ice/generated/Process.cpp +190 -331
  394. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +289 -449
  395. data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
  396. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +547 -867
  397. data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
  398. data/dist/ice/cpp/src/Ice/generated/Router.cpp +406 -723
  399. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +19 -29
  400. data/dist/ice/cpp/src/Ice/generated/Version.cpp +28 -31
  401. data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +76 -139
  402. data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +55 -96
  403. data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +190 -303
  404. data/dist/ice/cpp/src/IceDiscovery/LookupI.h +126 -185
  405. data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +56 -77
  406. data/dist/ice/cpp/src/IceDiscovery/PluginI.h +20 -25
  407. data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
  408. data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +14 -37
  409. data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +411 -649
  410. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +468 -0
  411. data/dist/ice/cpp/src/Slice/DeprecationReporter.cpp +172 -0
  412. data/dist/ice/cpp/src/Slice/DeprecationReporter.h +14 -0
  413. data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +736 -0
  414. data/dist/ice/cpp/src/Slice/DocCommentParser.h +61 -0
  415. data/dist/ice/cpp/src/Slice/FileTracker.cpp +25 -75
  416. data/dist/ice/cpp/src/Slice/FileTracker.h +35 -56
  417. data/dist/ice/cpp/src/Slice/Grammar.cpp +2711 -3382
  418. data/dist/ice/cpp/src/Slice/Grammar.h +95 -75
  419. data/dist/ice/cpp/src/Slice/GrammarUtil.h +117 -217
  420. data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +486 -0
  421. data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
  422. data/dist/ice/cpp/src/Slice/Parser.cpp +3068 -5223
  423. data/dist/ice/cpp/src/Slice/Parser.h +1086 -1065
  424. data/dist/ice/cpp/src/Slice/Preprocessor.cpp +97 -599
  425. data/dist/ice/cpp/src/Slice/Preprocessor.h +26 -42
  426. data/dist/ice/cpp/src/Slice/Scanner.cpp +1562 -924
  427. data/dist/ice/cpp/src/Slice/SliceUtil.cpp +517 -113
  428. data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +254 -269
  429. data/dist/ice/cpp/src/Slice/Util.h +126 -35
  430. data/dist/ice/cpp/src/slice2rb/Main.cpp +13 -15
  431. data/dist/ice/cpp/src/slice2rb/Ruby.cpp +250 -0
  432. data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +1197 -0
  433. data/dist/ice/cpp/src/slice2rb/RubyUtil.h +56 -0
  434. data/dist/ice/slice/Glacier2/Metrics.ice +34 -75
  435. data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +42 -98
  436. data/dist/ice/slice/Glacier2/Router.ice +80 -173
  437. data/dist/ice/slice/Glacier2/SSLInfo.ice +23 -40
  438. data/dist/ice/slice/Glacier2/Session.ice +120 -261
  439. data/dist/ice/slice/Ice/BuiltinSequences.ice +33 -38
  440. data/dist/ice/slice/Ice/Context.ice +24 -0
  441. data/dist/ice/slice/Ice/EndpointTypes.ice +35 -33
  442. data/dist/ice/slice/Ice/Identity.ice +24 -63
  443. data/dist/ice/slice/Ice/Locator.ice +61 -226
  444. data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
  445. data/dist/ice/slice/Ice/Metrics.ice +189 -424
  446. data/dist/ice/slice/Ice/OperationMode.ice +38 -0
  447. data/dist/ice/slice/Ice/Process.ice +16 -52
  448. data/dist/ice/slice/Ice/PropertiesAdmin.ice +25 -75
  449. data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
  450. data/dist/ice/slice/Ice/RemoteLogger.ice +113 -213
  451. data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
  452. data/dist/ice/slice/Ice/Router.ice +42 -91
  453. data/dist/ice/slice/Ice/SliceChecksumDict.ice +7 -25
  454. data/dist/ice/slice/Ice/Version.ice +31 -39
  455. data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
  456. data/dist/ice/slice/IceGrid/Admin.ice +942 -1918
  457. data/dist/ice/slice/IceGrid/Descriptor.ice +476 -1051
  458. data/dist/ice/slice/IceGrid/Exception.ice +86 -384
  459. data/dist/ice/slice/IceGrid/FileParser.ice +23 -59
  460. data/dist/ice/slice/IceGrid/Registry.ice +117 -256
  461. data/dist/ice/slice/IceGrid/Session.ice +46 -110
  462. data/dist/ice/slice/IceGrid/UserAccountMapper.ice +22 -57
  463. data/dist/ice/slice/IceStorm/IceStorm.ice +173 -401
  464. data/dist/ice/slice/IceStorm/Metrics.ice +28 -70
  465. data/dist/lib/Glacier2/Metrics.rb +16 -31
  466. data/dist/lib/Glacier2/PermissionsVerifier.rb +18 -50
  467. data/dist/lib/Glacier2/Router.rb +20 -42
  468. data/dist/lib/Glacier2/SSLInfo.rb +14 -22
  469. data/dist/lib/Glacier2/Session.rb +53 -113
  470. data/dist/lib/Glacier2.rb +6 -6
  471. data/dist/lib/Ice/BuiltinSequences.rb +14 -26
  472. data/dist/lib/Ice/CompressBatch.rb +50 -0
  473. data/dist/lib/Ice/Context.rb +12 -0
  474. data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
  475. data/dist/lib/Ice/EndpointTypes.rb +14 -55
  476. data/dist/lib/Ice/Exception.rb +20 -0
  477. data/dist/lib/Ice/Identity.rb +10 -26
  478. data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
  479. data/dist/lib/Ice/InitializationData.rb +12 -0
  480. data/dist/lib/Ice/LocalExceptions.rb +168 -0
  481. data/dist/lib/Ice/Locator.rb +21 -134
  482. data/dist/lib/Ice/LocatorRegistry.rb +73 -0
  483. data/dist/lib/Ice/Metrics.rb +85 -132
  484. data/dist/lib/Ice/OperationMode.rb +58 -0
  485. data/dist/lib/Ice/Process.rb +12 -31
  486. data/dist/lib/Ice/PropertiesAdmin.rb +12 -36
  487. data/dist/lib/Ice/PropertyDict.rb +12 -0
  488. data/dist/lib/Ice/Proxy.rb +85 -0
  489. data/dist/lib/Ice/ProxyFunctions.rb +69 -0
  490. data/dist/lib/Ice/RemoteLogger.rb +29 -60
  491. data/dist/lib/Ice/ReplyStatus.rb +65 -0
  492. data/dist/lib/Ice/Router.rb +19 -47
  493. data/dist/lib/Ice/SliceChecksumDict.rb +5 -17
  494. data/dist/lib/Ice/SliceUtil.rb +41 -0
  495. data/dist/lib/Ice/Struct.rb +11 -0
  496. data/dist/lib/Ice/ToStringMode.rb +50 -0
  497. data/dist/lib/Ice/Value.rb +93 -0
  498. data/dist/lib/Ice/Version.rb +12 -24
  499. data/dist/lib/Ice.rb +29 -665
  500. data/dist/lib/IceBox/ServiceManager.rb +104 -0
  501. data/dist/lib/IceBox.rb +2 -4
  502. data/dist/lib/IceGrid/Admin.rb +303 -291
  503. data/dist/lib/IceGrid/Descriptor.rb +147 -192
  504. data/dist/lib/IceGrid/Exception.rb +26 -257
  505. data/dist/lib/IceGrid/FileParser.rb +12 -36
  506. data/dist/lib/IceGrid/Registry.rb +35 -76
  507. data/dist/lib/IceGrid/Session.rb +19 -34
  508. data/dist/lib/IceGrid/UserAccountMapper.rb +11 -34
  509. data/dist/lib/IceGrid.rb +3 -3
  510. data/dist/lib/IceStorm/IceStorm.rb +51 -132
  511. data/dist/lib/IceStorm/Metrics.rb +19 -37
  512. data/dist/lib/IceStorm.rb +3 -5
  513. data/extconf.rb +6 -8
  514. data/ice.gemspec +3 -3
  515. data/scripts/slice2rb +1 -3
  516. metadata +206 -386
  517. data/dist/IceRuby/ValueFactoryManager.cpp +0 -445
  518. data/dist/IceRuby/ValueFactoryManager.h +0 -95
  519. data/dist/ice/cpp/include/Ice/Application.h +0 -326
  520. data/dist/ice/cpp/include/Ice/AsyncResult.h +0 -155
  521. data/dist/ice/cpp/include/Ice/AsyncResultF.h +0 -23
  522. data/dist/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
  523. data/dist/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
  524. data/dist/ice/cpp/include/Ice/Comparable.h +0 -205
  525. data/dist/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
  526. data/dist/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
  527. data/dist/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
  528. data/dist/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
  529. data/dist/ice/cpp/include/Ice/Dispatcher.h +0 -67
  530. data/dist/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
  531. data/dist/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
  532. data/dist/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  533. data/dist/ice/cpp/include/Ice/FactoryTable.h +0 -73
  534. data/dist/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
  535. data/dist/ice/cpp/include/Ice/Functional.h +0 -140
  536. data/dist/ice/cpp/include/Ice/GCObject.h +0 -76
  537. data/dist/ice/cpp/include/Ice/Handle.h +0 -182
  538. data/dist/ice/cpp/include/Ice/Incoming.h +0 -225
  539. data/dist/ice/cpp/include/Ice/IncomingAsync.h +0 -186
  540. data/dist/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
  541. data/dist/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
  542. data/dist/ice/cpp/include/Ice/LocalObject.h +0 -35
  543. data/dist/ice/cpp/include/Ice/LocalObjectF.h +0 -21
  544. data/dist/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
  545. data/dist/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
  546. data/dist/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  547. data/dist/ice/cpp/include/Ice/Optional.h +0 -1114
  548. data/dist/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
  549. data/dist/ice/cpp/include/Ice/Protocol.h +0 -274
  550. data/dist/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
  551. data/dist/ice/cpp/include/Ice/ProxyHandle.h +0 -318
  552. data/dist/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
  553. data/dist/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
  554. data/dist/ice/cpp/include/Ice/SHA1.h +0 -40
  555. data/dist/ice/cpp/include/Ice/ServantManagerF.h +0 -21
  556. data/dist/ice/cpp/include/Ice/SliceChecksums.h +0 -33
  557. data/dist/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
  558. data/dist/ice/cpp/include/Ice/UniquePtr.h +0 -95
  559. data/dist/ice/cpp/include/Ice/UniqueRef.h +0 -97
  560. data/dist/ice/cpp/include/IceSSL/Config.h +0 -21
  561. data/dist/ice/cpp/include/IceSSL/IceSSL.h +0 -24
  562. data/dist/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
  563. data/dist/ice/cpp/include/IceSSL/Plugin.h +0 -712
  564. data/dist/ice/cpp/include/IceSSL/SChannel.h +0 -72
  565. data/dist/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
  566. data/dist/ice/cpp/include/IceUtil/Atomic.h +0 -179
  567. data/dist/ice/cpp/include/IceUtil/Cond.h +0 -317
  568. data/dist/ice/cpp/include/IceUtil/Config.h +0 -392
  569. data/dist/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
  570. data/dist/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
  571. data/dist/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -96
  572. data/dist/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
  573. data/dist/ice/cpp/include/IceUtil/Exception.h +0 -394
  574. data/dist/ice/cpp/include/IceUtil/FileUtil.h +0 -140
  575. data/dist/ice/cpp/include/IceUtil/Functional.h +0 -389
  576. data/dist/ice/cpp/include/IceUtil/Handle.h +0 -261
  577. data/dist/ice/cpp/include/IceUtil/IceUtil.h +0 -40
  578. data/dist/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  579. data/dist/ice/cpp/include/IceUtil/Iterator.h +0 -31
  580. data/dist/ice/cpp/include/IceUtil/Lock.h +0 -128
  581. data/dist/ice/cpp/include/IceUtil/Monitor.h +0 -243
  582. data/dist/ice/cpp/include/IceUtil/Mutex.h +0 -349
  583. data/dist/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
  584. data/dist/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
  585. data/dist/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
  586. data/dist/ice/cpp/include/IceUtil/Optional.h +0 -433
  587. data/dist/ice/cpp/include/IceUtil/Options.h +0 -135
  588. data/dist/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
  589. data/dist/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
  590. data/dist/ice/cpp/include/IceUtil/Random.h +0 -55
  591. data/dist/ice/cpp/include/IceUtil/RecMutex.h +0 -107
  592. data/dist/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
  593. data/dist/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
  594. data/dist/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
  595. data/dist/ice/cpp/include/IceUtil/Shared.h +0 -127
  596. data/dist/ice/cpp/include/IceUtil/StopWatch.h +0 -49
  597. data/dist/ice/cpp/include/IceUtil/StringConverter.h +0 -195
  598. data/dist/ice/cpp/include/IceUtil/StringUtil.h +0 -97
  599. data/dist/ice/cpp/include/IceUtil/Thread.h +0 -160
  600. data/dist/ice/cpp/include/IceUtil/ThreadException.h +0 -94
  601. data/dist/ice/cpp/include/IceUtil/Time.h +0 -205
  602. data/dist/ice/cpp/include/IceUtil/Timer.h +0 -153
  603. data/dist/ice/cpp/include/IceUtil/UUID.h +0 -21
  604. data/dist/ice/cpp/include/generated/Glacier2/Metrics.h +0 -475
  605. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifier.h +0 -1430
  606. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifierF.h +0 -147
  607. data/dist/ice/cpp/include/generated/Glacier2/Router.h +0 -3260
  608. data/dist/ice/cpp/include/generated/Glacier2/RouterF.h +0 -125
  609. data/dist/ice/cpp/include/generated/Glacier2/SSLInfo.h +0 -223
  610. data/dist/ice/cpp/include/generated/Glacier2/Session.h +0 -5894
  611. data/dist/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  612. data/dist/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  613. data/dist/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  614. data/dist/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  615. data/dist/ice/cpp/include/generated/Ice/Current.h +0 -322
  616. data/dist/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  617. data/dist/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  618. data/dist/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  619. data/dist/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  620. data/dist/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  621. data/dist/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  622. data/dist/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  623. data/dist/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  624. data/dist/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  625. data/dist/ice/cpp/include/generated/Ice/Logger.h +0 -237
  626. data/dist/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  627. data/dist/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  628. data/dist/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  629. data/dist/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  630. data/dist/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  631. data/dist/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  632. data/dist/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  633. data/dist/ice/cpp/include/generated/Ice/Properties.h +0 -452
  634. data/dist/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  635. data/dist/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  636. data/dist/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  637. data/dist/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  638. data/dist/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  639. data/dist/ice/cpp/include/generated/IceBox/IceBox.h +0 -3269
  640. data/dist/ice/cpp/include/generated/IceGrid/Admin.h +0 -33773
  641. data/dist/ice/cpp/include/generated/IceGrid/Descriptor.h +0 -5254
  642. data/dist/ice/cpp/include/generated/IceGrid/Exception.h +0 -2834
  643. data/dist/ice/cpp/include/generated/IceGrid/FileParser.h +0 -824
  644. data/dist/ice/cpp/include/generated/IceGrid/PluginFacade.h +0 -635
  645. data/dist/ice/cpp/include/generated/IceGrid/Registry.h +0 -5089
  646. data/dist/ice/cpp/include/generated/IceGrid/Session.h +0 -2240
  647. data/dist/ice/cpp/include/generated/IceGrid/UserAccountMapper.h +0 -800
  648. data/dist/ice/cpp/include/generated/IcePatch2/FileInfo.h +0 -325
  649. data/dist/ice/cpp/include/generated/IcePatch2/FileServer.h +0 -2891
  650. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  651. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  652. data/dist/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  653. data/dist/ice/cpp/include/generated/IceStorm/IceStorm.h +0 -6627
  654. data/dist/ice/cpp/include/generated/IceStorm/Metrics.h +0 -665
  655. data/dist/ice/cpp/src/Ice/ACM.cpp +0 -380
  656. data/dist/ice/cpp/src/Ice/ACM.h +0 -119
  657. data/dist/ice/cpp/src/Ice/ACMF.h +0 -30
  658. data/dist/ice/cpp/src/Ice/Acceptor.cpp +0 -16
  659. data/dist/ice/cpp/src/Ice/Application.cpp +0 -661
  660. data/dist/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
  661. data/dist/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
  662. data/dist/ice/cpp/src/Ice/CommunicatorI.h +0 -167
  663. data/dist/ice/cpp/src/Ice/Cond.cpp +0 -381
  664. data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
  665. data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
  666. data/dist/ice/cpp/src/Ice/Connector.cpp +0 -16
  667. data/dist/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
  668. data/dist/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
  669. data/dist/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
  670. data/dist/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
  671. data/dist/ice/cpp/src/Ice/GCObject.cpp +0 -442
  672. data/dist/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
  673. data/dist/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
  674. data/dist/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
  675. data/dist/ice/cpp/src/Ice/Incoming.cpp +0 -795
  676. data/dist/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
  677. data/dist/ice/cpp/src/Ice/IncomingRequest.h +0 -33
  678. data/dist/ice/cpp/src/Ice/LocalObject.cpp +0 -23
  679. data/dist/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
  680. data/dist/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
  681. data/dist/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
  682. data/dist/ice/cpp/src/Ice/PropertiesI.cpp +0 -739
  683. data/dist/ice/cpp/src/Ice/PropertiesI.h +0 -70
  684. data/dist/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
  685. data/dist/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
  686. data/dist/ice/cpp/src/Ice/ProxyFactory.h +0 -57
  687. data/dist/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
  688. data/dist/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
  689. data/dist/ice/cpp/src/Ice/ReplyStatus.h +0 -24
  690. data/dist/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
  691. data/dist/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
  692. data/dist/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
  693. data/dist/ice/cpp/src/Ice/ResponseHandler.h +0 -43
  694. data/dist/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
  695. data/dist/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
  696. data/dist/ice/cpp/src/Ice/StringUtil.h +0 -30
  697. data/dist/ice/cpp/src/Ice/Thread.cpp +0 -569
  698. data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
  699. data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
  700. data/dist/ice/cpp/src/Ice/VirtualShared.h +0 -38
  701. data/dist/ice/cpp/src/Ice/generated/Communicator.cpp +0 -79
  702. data/dist/ice/cpp/src/Ice/generated/CommunicatorF.cpp +0 -61
  703. data/dist/ice/cpp/src/Ice/generated/Connection.cpp +0 -155
  704. data/dist/ice/cpp/src/Ice/generated/ConnectionF.cpp +0 -61
  705. data/dist/ice/cpp/src/Ice/generated/Current.cpp +0 -62
  706. data/dist/ice/cpp/src/Ice/generated/Endpoint.cpp +0 -147
  707. data/dist/ice/cpp/src/Ice/generated/EndpointF.cpp +0 -61
  708. data/dist/ice/cpp/src/Ice/generated/FacetMap.cpp +0 -49
  709. data/dist/ice/cpp/src/Ice/generated/ImplicitContext.cpp +0 -75
  710. data/dist/ice/cpp/src/Ice/generated/ImplicitContextF.cpp +0 -61
  711. data/dist/ice/cpp/src/Ice/generated/Instrumentation.cpp +0 -188
  712. data/dist/ice/cpp/src/Ice/generated/InstrumentationF.cpp +0 -66
  713. data/dist/ice/cpp/src/Ice/generated/LocalException.cpp +0 -3262
  714. data/dist/ice/cpp/src/Ice/generated/LocatorF.cpp +0 -63
  715. data/dist/ice/cpp/src/Ice/generated/Logger.cpp +0 -73
  716. data/dist/ice/cpp/src/Ice/generated/LoggerF.cpp +0 -61
  717. data/dist/ice/cpp/src/Ice/generated/ObjectAdapter.cpp +0 -79
  718. data/dist/ice/cpp/src/Ice/generated/ObjectAdapterF.cpp +0 -61
  719. data/dist/ice/cpp/src/Ice/generated/ObjectFactory.cpp +0 -75
  720. data/dist/ice/cpp/src/Ice/generated/Plugin.cpp +0 -87
  721. data/dist/ice/cpp/src/Ice/generated/PluginF.cpp +0 -61
  722. data/dist/ice/cpp/src/Ice/generated/ProcessF.cpp +0 -63
  723. data/dist/ice/cpp/src/Ice/generated/Properties.cpp +0 -78
  724. data/dist/ice/cpp/src/Ice/generated/PropertiesF.cpp +0 -63
  725. data/dist/ice/cpp/src/Ice/generated/RouterF.cpp +0 -63
  726. data/dist/ice/cpp/src/Ice/generated/ServantLocator.cpp +0 -75
  727. data/dist/ice/cpp/src/Ice/generated/ServantLocatorF.cpp +0 -61
  728. data/dist/ice/cpp/src/Ice/generated/ValueFactory.cpp +0 -83
  729. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.cpp +0 -154
  730. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.h +0 -49
  731. data/dist/ice/cpp/src/Ice/ios/StreamConnector.cpp +0 -146
  732. data/dist/ice/cpp/src/Ice/ios/StreamConnector.h +0 -52
  733. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.cpp +0 -477
  734. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.h +0 -156
  735. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.cpp +0 -570
  736. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.h +0 -93
  737. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery/IceDiscovery.h +0 -1889
  738. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery.cpp +0 -915
  739. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  740. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery.cpp +0 -730
  741. data/dist/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
  742. data/dist/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
  743. data/dist/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
  744. data/dist/ice/cpp/src/IceSSL/CertificateI.h +0 -64
  745. data/dist/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
  746. data/dist/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
  747. data/dist/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
  748. data/dist/ice/cpp/src/IceSSL/EndpointI.h +0 -100
  749. data/dist/ice/cpp/src/IceSSL/Instance.cpp +0 -28
  750. data/dist/ice/cpp/src/IceSSL/Instance.h +0 -37
  751. data/dist/ice/cpp/src/IceSSL/InstanceF.h +0 -33
  752. data/dist/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
  753. data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
  754. data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
  755. data/dist/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
  756. data/dist/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
  757. data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  758. data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
  759. data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
  760. data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
  761. data/dist/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  762. data/dist/ice/cpp/src/IceSSL/PluginI.h +0 -67
  763. data/dist/ice/cpp/src/IceSSL/RFC2253.h +0 -62
  764. data/dist/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
  765. data/dist/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
  766. data/dist/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
  767. data/dist/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
  768. data/dist/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
  769. data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
  770. data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
  771. data/dist/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
  772. data/dist/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
  773. data/dist/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
  774. data/dist/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
  775. data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
  776. data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
  777. data/dist/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
  778. data/dist/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
  779. data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  780. data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
  781. data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  782. data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
  783. data/dist/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
  784. data/dist/ice/cpp/src/IceSSL/TrustManager.h +0 -46
  785. data/dist/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
  786. data/dist/ice/cpp/src/IceSSL/Util.cpp +0 -192
  787. data/dist/ice/cpp/src/IceSSL/Util.h +0 -99
  788. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfo.cpp +0 -75
  789. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfoF.cpp +0 -61
  790. data/dist/ice/cpp/src/IceSSL/generated/EndpointInfo.cpp +0 -75
  791. data/dist/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
  792. data/dist/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
  793. data/dist/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
  794. data/dist/ice/cpp/src/IceUtil/FileUtil.cpp +0 -471
  795. data/dist/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
  796. data/dist/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
  797. data/dist/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
  798. data/dist/ice/cpp/src/IceUtil/Random.cpp +0 -180
  799. data/dist/ice/cpp/src/IceUtil/RecMutex.cpp +0 -238
  800. data/dist/ice/cpp/src/IceUtil/Shared.cpp +0 -71
  801. data/dist/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  802. data/dist/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1135
  803. data/dist/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
  804. data/dist/ice/cpp/src/IceUtil/Time.cpp +0 -307
  805. data/dist/ice/cpp/src/IceUtil/UUID.cpp +0 -165
  806. data/dist/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
  807. data/dist/ice/cpp/src/IceUtil/Unicode.h +0 -43
  808. data/dist/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
  809. data/dist/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
  810. data/dist/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
  811. data/dist/ice/cpp/src/Slice/Checksum.cpp +0 -447
  812. data/dist/ice/cpp/src/Slice/Checksum.h +0 -21
  813. data/dist/ice/cpp/src/Slice/JavaUtil.cpp +0 -5183
  814. data/dist/ice/cpp/src/Slice/JavaUtil.h +0 -407
  815. data/dist/ice/cpp/src/Slice/MD5.cpp +0 -52
  816. data/dist/ice/cpp/src/Slice/MD5.h +0 -39
  817. data/dist/ice/cpp/src/Slice/MD5I.cpp +0 -393
  818. data/dist/ice/cpp/src/Slice/MD5I.h +0 -91
  819. data/dist/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
  820. data/dist/ice/cpp/src/Slice/PHPUtil.h +0 -36
  821. data/dist/ice/cpp/src/Slice/Python.cpp +0 -830
  822. data/dist/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
  823. data/dist/ice/cpp/src/Slice/PythonUtil.h +0 -70
  824. data/dist/ice/cpp/src/Slice/Ruby.cpp +0 -350
  825. data/dist/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
  826. data/dist/ice/cpp/src/Slice/RubyUtil.h +0 -49
  827. data/dist/ice/slice/Glacier2/PermissionsVerifierF.ice +0 -30
  828. data/dist/ice/slice/Glacier2/RouterF.ice +0 -29
  829. data/dist/ice/slice/Ice/Communicator.ice +0 -676
  830. data/dist/ice/slice/Ice/CommunicatorF.ice +0 -31
  831. data/dist/ice/slice/Ice/Connection.ice +0 -516
  832. data/dist/ice/slice/Ice/ConnectionF.ice +0 -33
  833. data/dist/ice/slice/Ice/Current.ice +0 -170
  834. data/dist/ice/slice/Ice/Endpoint.ice +0 -291
  835. data/dist/ice/slice/Ice/EndpointF.ice +0 -43
  836. data/dist/ice/slice/Ice/FacetMap.ice +0 -36
  837. data/dist/ice/slice/Ice/ImplicitContext.ice +0 -119
  838. data/dist/ice/slice/Ice/ImplicitContextF.ice +0 -30
  839. data/dist/ice/slice/Ice/Instrumentation.ice +0 -509
  840. data/dist/ice/slice/Ice/InstrumentationF.ice +0 -38
  841. data/dist/ice/slice/Ice/LocalException.ice +0 -1040
  842. data/dist/ice/slice/Ice/LocatorF.ice +0 -32
  843. data/dist/ice/slice/Ice/Logger.ice +0 -99
  844. data/dist/ice/slice/Ice/LoggerF.ice +0 -31
  845. data/dist/ice/slice/Ice/ObjectAdapter.ice +0 -710
  846. data/dist/ice/slice/Ice/ObjectAdapterF.ice +0 -31
  847. data/dist/ice/slice/Ice/ObjectFactory.ice +0 -71
  848. data/dist/ice/slice/Ice/Plugin.ice +0 -131
  849. data/dist/ice/slice/Ice/PluginF.ice +0 -36
  850. data/dist/ice/slice/Ice/ProcessF.ice +0 -31
  851. data/dist/ice/slice/Ice/Properties.ice +0 -244
  852. data/dist/ice/slice/Ice/PropertiesF.ice +0 -32
  853. data/dist/ice/slice/Ice/RouterF.ice +0 -31
  854. data/dist/ice/slice/Ice/ServantLocator.ice +0 -136
  855. data/dist/ice/slice/Ice/ServantLocatorF.ice +0 -31
  856. data/dist/ice/slice/Ice/ValueFactory.ice +0 -133
  857. data/dist/ice/slice/IceBox/IceBox.ice +0 -216
  858. data/dist/ice/slice/IceGrid/PluginFacade.ice +0 -329
  859. data/dist/ice/slice/IcePatch2/FileInfo.ice +0 -85
  860. data/dist/ice/slice/IcePatch2/FileServer.ice +0 -191
  861. data/dist/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  862. data/dist/lib/Glacier2/RouterF.rb +0 -25
  863. data/dist/lib/Ice/Communicator.rb +0 -87
  864. data/dist/lib/Ice/CommunicatorF.rb +0 -24
  865. data/dist/lib/Ice/Connection.rb +0 -413
  866. data/dist/lib/Ice/ConnectionF.rb +0 -32
  867. data/dist/lib/Ice/Current.rb +0 -141
  868. data/dist/lib/Ice/Endpoint.rb +0 -187
  869. data/dist/lib/Ice/EndpointF.rb +0 -48
  870. data/dist/lib/Ice/FacetMap.rb +0 -24
  871. data/dist/lib/Ice/ImplicitContext.rb +0 -26
  872. data/dist/lib/Ice/ImplicitContextF.rb +0 -24
  873. data/dist/lib/Ice/Instrumentation.rb +0 -169
  874. data/dist/lib/Ice/InstrumentationF.rb +0 -31
  875. data/dist/lib/Ice/LocalException.rb +0 -1031
  876. data/dist/lib/Ice/LocatorF.rb +0 -30
  877. data/dist/lib/Ice/Logger.rb +0 -24
  878. data/dist/lib/Ice/LoggerF.rb +0 -24
  879. data/dist/lib/Ice/ObjectAdapter.rb +0 -29
  880. data/dist/lib/Ice/ObjectAdapterF.rb +0 -24
  881. data/dist/lib/Ice/ObjectFactory.rb +0 -24
  882. data/dist/lib/Ice/Plugin.rb +0 -30
  883. data/dist/lib/Ice/PluginF.rb +0 -28
  884. data/dist/lib/Ice/ProcessF.rb +0 -25
  885. data/dist/lib/Ice/Properties.rb +0 -25
  886. data/dist/lib/Ice/PropertiesF.rb +0 -29
  887. data/dist/lib/Ice/RouterF.rb +0 -25
  888. data/dist/lib/Ice/ServantLocator.rb +0 -26
  889. data/dist/lib/Ice/ServantLocatorF.rb +0 -24
  890. data/dist/lib/Ice/ValueFactory.rb +0 -28
  891. data/dist/lib/IceBox/IceBox.rb +0 -164
  892. data/dist/lib/IceGrid/PluginFacade.rb +0 -35
  893. data/dist/lib/IcePatch2/FileInfo.rb +0 -115
  894. data/dist/lib/IcePatch2/FileServer.rb +0 -123
  895. data/dist/lib/IcePatch2.rb +0 -5
@@ -1,42 +1,31 @@
1
- //
2
- // Copyright (c) ZeroC, Inc. All rights reserved.
3
- //
4
-
5
- #include <Ice/OutgoingAsync.h>
6
- #include <Ice/ConnectionI.h>
7
- #include <Ice/CollocatedRequestHandler.h>
8
- #include <Ice/Reference.h>
9
- #include <Ice/Instance.h>
10
- #include <Ice/LocalException.h>
11
- #include <Ice/ReplyStatus.h>
12
- #include <Ice/ImplicitContextI.h>
13
- #include <Ice/ThreadPool.h>
14
- #include <Ice/RetryQueue.h>
15
- #include <Ice/ConnectionFactory.h>
16
- #include <Ice/ObjectAdapterFactory.h>
17
- #include <Ice/LoggerUtil.h>
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #include "Ice/OutgoingAsync.h"
4
+ #include "CollocatedRequestHandler.h"
5
+ #include "ConnectionFactory.h"
6
+ #include "ConnectionI.h"
7
+ #include "Ice/ImplicitContext.h"
8
+ #include "Ice/LocalExceptions.h"
9
+ #include "Ice/LoggerUtil.h"
10
+ #include "Ice/ReplyStatus.h"
11
+ #include "Instance.h"
12
+ #include "LocatorInfo.h"
13
+ #include "ObjectAdapterFactory.h"
14
+ #include "Reference.h"
15
+ #include "RequestHandlerCache.h"
16
+ #include "RetryQueue.h"
17
+ #include "RouterInfo.h"
18
+ #include "ThreadPool.h"
19
+ #include "TraceLevels.h"
18
20
 
19
21
  using namespace std;
20
22
  using namespace Ice;
21
23
  using namespace IceInternal;
22
24
 
23
- #ifndef ICE_CPP11_MAPPING
24
- IceUtil::Shared* IceInternal::upCast(OutgoingAsyncBase* p) { return p; }
25
- IceUtil::Shared* IceInternal::upCast(ProxyOutgoingAsyncBase* p) { return p; }
26
- IceUtil::Shared* IceInternal::upCast(OutgoingAsync* p) { return p; }
27
- #endif
28
-
29
25
  const unsigned char OutgoingAsyncBase::OK = 0x1;
30
26
  const unsigned char OutgoingAsyncBase::Sent = 0x2;
31
- #ifndef ICE_CPP11_MAPPING
32
- const unsigned char OutgoingAsyncBase::Done = 0x4;
33
- const unsigned char OutgoingAsyncBase::EndCalled = 0x8;
34
- #endif
35
27
 
36
- OutgoingAsyncCompletionCallback::~OutgoingAsyncCompletionCallback()
37
- {
38
- // Out of line to avoid weak vtable
39
- }
28
+ OutgoingAsyncCompletionCallback::~OutgoingAsyncCompletionCallback() = default; // Out of line to avoid weak vtable
40
29
 
41
30
  bool
42
31
  OutgoingAsyncBase::sent()
@@ -45,7 +34,7 @@ OutgoingAsyncBase::sent()
45
34
  }
46
35
 
47
36
  bool
48
- OutgoingAsyncBase::exception(const Exception& ex)
37
+ OutgoingAsyncBase::exception(std::exception_ptr ex)
49
38
  {
50
39
  return exceptionImpl(ex);
51
40
  }
@@ -60,26 +49,6 @@ OutgoingAsyncBase::response()
60
49
  void
61
50
  OutgoingAsyncBase::invokeSentAsync()
62
51
  {
63
- class AsynchronousSent : public DispatchWorkItem
64
- {
65
- public:
66
-
67
- AsynchronousSent(const ConnectionPtr& connection, const OutgoingAsyncBasePtr& outAsync) :
68
- DispatchWorkItem(connection), _outAsync(outAsync)
69
- {
70
- }
71
-
72
- virtual void
73
- run()
74
- {
75
- _outAsync->invokeSent();
76
- }
77
-
78
- private:
79
-
80
- const OutgoingAsyncBasePtr _outAsync;
81
- };
82
-
83
52
  //
84
53
  // This is called when it's not safe to call the sent callback
85
54
  // synchronously from this thread. Instead the exception callback
@@ -87,9 +56,11 @@ OutgoingAsyncBase::invokeSentAsync()
87
56
  //
88
57
  try
89
58
  {
90
- _instance->clientThreadPool()->dispatch(new AsynchronousSent(_cachedConnection, ICE_SHARED_FROM_THIS));
59
+ _instance->clientThreadPool()->execute(
60
+ [self = shared_from_this()]() { self->invokeSent(); },
61
+ _cachedConnection);
91
62
  }
92
- catch(const Ice::CommunicatorDestroyedException&)
63
+ catch (const CommunicatorDestroyedException&)
93
64
  {
94
65
  }
95
66
  }
@@ -97,59 +68,23 @@ OutgoingAsyncBase::invokeSentAsync()
97
68
  void
98
69
  OutgoingAsyncBase::invokeExceptionAsync()
99
70
  {
100
- class AsynchronousException : public DispatchWorkItem
101
- {
102
- public:
103
-
104
- AsynchronousException(const ConnectionPtr& c, const OutgoingAsyncBasePtr& outAsync) :
105
- DispatchWorkItem(c), _outAsync(outAsync)
106
- {
107
- }
108
-
109
- virtual void
110
- run()
111
- {
112
- _outAsync->invokeException();
113
- }
114
-
115
- private:
116
-
117
- const OutgoingAsyncBasePtr _outAsync;
118
- };
119
-
120
71
  //
121
72
  // CommunicatorDestroyedException is the only exception that can propagate directly from this method.
122
73
  //
123
- _instance->clientThreadPool()->dispatch(new AsynchronousException(_cachedConnection, ICE_SHARED_FROM_THIS));
74
+ _instance->clientThreadPool()->execute(
75
+ [self = shared_from_this()]() { self->invokeException(); },
76
+ _cachedConnection);
124
77
  }
125
78
 
126
79
  void
127
80
  OutgoingAsyncBase::invokeResponseAsync()
128
81
  {
129
- class AsynchronousResponse : public DispatchWorkItem
130
- {
131
- public:
132
-
133
- AsynchronousResponse(const ConnectionPtr& connection, const OutgoingAsyncBasePtr& outAsync) :
134
- DispatchWorkItem(connection), _outAsync(outAsync)
135
- {
136
- }
137
-
138
- virtual void
139
- run()
140
- {
141
- _outAsync->invokeResponse();
142
- }
143
-
144
- private:
145
-
146
- const OutgoingAsyncBasePtr _outAsync;
147
- };
148
-
149
82
  //
150
83
  // CommunicatorDestroyedException is the only exception that can propagate directly from this method.
151
84
  //
152
- _instance->clientThreadPool()->dispatch(new AsynchronousResponse(_cachedConnection, ICE_SHARED_FROM_THIS));
85
+ _instance->clientThreadPool()->execute(
86
+ [self = shared_from_this()]() { self->invokeResponse(); },
87
+ _cachedConnection);
153
88
  }
154
89
 
155
90
  void
@@ -159,16 +94,12 @@ OutgoingAsyncBase::invokeSent()
159
94
  {
160
95
  handleInvokeSent(_sentSynchronously, this);
161
96
  }
162
- catch(const std::exception& ex)
163
- {
164
- warning(ex);
165
- }
166
- catch(...)
97
+ catch (...)
167
98
  {
168
- warning();
99
+ warning("sent", current_exception());
169
100
  }
170
101
 
171
- if(_observer && _doneInSent)
102
+ if (_observer && _doneInSent)
172
103
  {
173
104
  _observer.detach();
174
105
  }
@@ -179,15 +110,11 @@ OutgoingAsyncBase::invokeException()
179
110
  {
180
111
  try
181
112
  {
182
- handleInvokeException(*_ex, this);
183
- }
184
- catch(const std::exception& ex)
185
- {
186
- warning(ex);
113
+ handleInvokeException(_ex, this);
187
114
  }
188
- catch(...)
115
+ catch (...)
189
116
  {
190
- warning();
117
+ warning("exception", current_exception());
191
118
  }
192
119
 
193
120
  _observer.detach();
@@ -196,7 +123,7 @@ OutgoingAsyncBase::invokeException()
196
123
  void
197
124
  OutgoingAsyncBase::invokeResponse()
198
125
  {
199
- if(_ex)
126
+ if (_ex)
200
127
  {
201
128
  invokeException();
202
129
  return;
@@ -204,33 +131,24 @@ OutgoingAsyncBase::invokeResponse()
204
131
 
205
132
  try
206
133
  {
207
- #ifdef ICE_CPP11_MAPPING
208
- try
209
- {
210
- handleInvokeResponse(_state & OK, this);
211
- }
212
- catch(const Ice::Exception& ex)
134
+ handleInvokeResponse(_state & OK, this);
135
+ }
136
+ catch (...)
137
+ {
138
+ // With the lambda async API, lambdaInvokeResponse throws _before_ reaching the application's response when the
139
+ // unmarshaling fails or when the response contains a user exception. We want to call handleInvokeException
140
+ // in this situation.
141
+ if (handleException(current_exception()))
213
142
  {
214
- if(handleException(ex))
143
+ try
215
144
  {
216
- handleInvokeException(ex, this);
145
+ handleInvokeException(current_exception(), this);
146
+ }
147
+ catch (...)
148
+ {
149
+ warning("exception", current_exception());
217
150
  }
218
151
  }
219
- catch(const exception_ptr& ex)
220
- {
221
- rethrow_exception(ex);
222
- }
223
- #else
224
- handleInvokeResponse(_state & OK, this);
225
- #endif
226
- }
227
- catch(const std::exception& ex)
228
- {
229
- warning(ex);
230
- }
231
- catch(...)
232
- {
233
- warning();
234
152
  }
235
153
 
236
154
  _observer.detach();
@@ -240,15 +158,15 @@ void
240
158
  OutgoingAsyncBase::cancelable(const CancellationHandlerPtr& handler)
241
159
  {
242
160
  Lock sync(_m);
243
- if(_cancellationException)
161
+ if (_cancellationException)
244
162
  {
245
163
  try
246
164
  {
247
- _cancellationException->ice_throw();
165
+ rethrow_exception(_cancellationException);
248
166
  }
249
- catch(const Ice::LocalException&)
167
+ catch (const LocalException&)
250
168
  {
251
- _cancellationException.reset();
169
+ _cancellationException = nullptr;
252
170
  throw;
253
171
  }
254
172
  }
@@ -258,16 +176,27 @@ OutgoingAsyncBase::cancelable(const CancellationHandlerPtr& handler)
258
176
  void
259
177
  OutgoingAsyncBase::cancel()
260
178
  {
261
- cancel(Ice::InvocationCanceledException(__FILE__, __LINE__));
179
+ cancel(make_exception_ptr(InvocationCanceledException(__FILE__, __LINE__)));
262
180
  }
263
181
 
264
- OutgoingAsyncBase::OutgoingAsyncBase(const InstancePtr& instance) :
265
- _instance(instance),
266
- _sentSynchronously(false),
267
- _doneInSent(false),
268
- _state(0),
269
- _os(instance.get(), Ice::currentProtocolEncoding),
270
- _is(instance.get(), Ice::currentProtocolEncoding)
182
+ void
183
+ OutgoingAsyncBase::attachRemoteObserver(const ConnectionInfoPtr& c, const EndpointPtr& endpt, std::int32_t requestId)
184
+ {
185
+ const auto size = static_cast<std::int32_t>(_os.b.size() - headerSize - 4);
186
+ _childObserver.attach(getObserver().getRemoteObserver(c, endpt, requestId, size));
187
+ }
188
+
189
+ void
190
+ OutgoingAsyncBase::attachCollocatedObserver(const ObjectAdapterPtr& adapter, std::int32_t requestId)
191
+ {
192
+ const auto size = static_cast<std::int32_t>(_os.b.size() - headerSize - 4);
193
+ _childObserver.attach(getObserver().getCollocatedObserver(adapter, requestId, size));
194
+ }
195
+
196
+ OutgoingAsyncBase::OutgoingAsyncBase(const InstancePtr& instance)
197
+ : _instance(instance),
198
+ _os(instance.get(), currentProtocolEncoding),
199
+ _is{instance.get(), currentProtocolEncoding}
271
200
  {
272
201
  }
273
202
 
@@ -277,23 +206,15 @@ OutgoingAsyncBase::sentImpl(bool done)
277
206
  Lock sync(_m);
278
207
  bool alreadySent = (_state & Sent) > 0;
279
208
  _state |= Sent;
280
- if(done)
209
+ if (done)
281
210
  {
282
211
  _doneInSent = true;
283
212
  _childObserver.detach();
284
- _cancellationHandler = 0;
285
- }
286
-
287
- #ifndef ICE_CPP11_MAPPING
288
- if(done)
289
- {
290
- _state |= Done | OK;
213
+ _cancellationHandler = nullptr;
291
214
  }
292
- _m.notifyAll();
293
- #endif
294
215
 
295
216
  bool invoke = handleSent(done, alreadySent);
296
- if(!invoke && _doneInSent)
217
+ if (!invoke && _doneInSent)
297
218
  {
298
219
  _observer.detach();
299
220
  }
@@ -301,25 +222,20 @@ OutgoingAsyncBase::sentImpl(bool done)
301
222
  }
302
223
 
303
224
  bool
304
- OutgoingAsyncBase::exceptionImpl(const Exception& ex)
225
+ OutgoingAsyncBase::exceptionImpl(std::exception_ptr ex)
305
226
  {
306
227
  Lock sync(_m);
307
- ICE_SET_EXCEPTION_FROM_CLONE(_ex, ex.ice_clone());
308
- if(_childObserver)
228
+ _ex = ex;
229
+ if (_childObserver)
309
230
  {
310
- _childObserver.failed(ex.ice_id());
231
+ _childObserver.failed(getExceptionId(ex));
311
232
  _childObserver.detach();
312
233
  }
313
- _cancellationHandler = 0;
314
- _observer.failed(ex.ice_id());
315
-
316
- #ifndef ICE_CPP11_MAPPING
317
- _state |= Done;
318
- _m.notifyAll();
319
- #endif
234
+ _cancellationHandler = nullptr;
235
+ _observer.failed(getExceptionId(ex));
320
236
 
321
237
  bool invoke = handleException(ex);
322
- if(!invoke)
238
+ if (!invoke)
323
239
  {
324
240
  _observer.detach();
325
241
  }
@@ -330,28 +246,23 @@ bool
330
246
  OutgoingAsyncBase::responseImpl(bool ok, bool invoke)
331
247
  {
332
248
  Lock sync(_m);
333
- if(ok)
249
+ if (ok)
334
250
  {
335
251
  _state |= OK;
336
252
  }
337
253
 
338
- _cancellationHandler = 0;
339
-
340
- #ifndef ICE_CPP11_MAPPING
341
- _state |= Done;
342
- _m.notifyAll();
343
- #endif
254
+ _cancellationHandler = nullptr;
344
255
 
345
256
  try
346
257
  {
347
258
  invoke &= handleResponse(ok);
348
259
  }
349
- catch(const Ice::Exception& ex)
260
+ catch (const Exception&)
350
261
  {
351
- ICE_SET_EXCEPTION_FROM_CLONE(_ex, ex.ice_clone());
352
- invoke = handleException(ex);
262
+ _ex = current_exception();
263
+ invoke = handleException(_ex);
353
264
  }
354
- if(!invoke)
265
+ if (!invoke)
355
266
  {
356
267
  _observer.detach();
357
268
  }
@@ -359,249 +270,56 @@ OutgoingAsyncBase::responseImpl(bool ok, bool invoke)
359
270
  }
360
271
 
361
272
  void
362
- OutgoingAsyncBase::cancel(const Ice::LocalException& ex)
273
+ OutgoingAsyncBase::cancel(std::exception_ptr ex)
363
274
  {
364
275
  CancellationHandlerPtr handler;
365
276
  {
366
277
  Lock sync(_m);
367
- if(!_cancellationHandler)
278
+ if (!_cancellationHandler)
368
279
  {
369
- ICE_SET_EXCEPTION_FROM_CLONE(_cancellationException, ex.ice_clone());
280
+ _cancellationException = ex;
370
281
  return;
371
282
  }
372
283
  handler = _cancellationHandler;
373
284
  }
374
- handler->asyncRequestCanceled(ICE_SHARED_FROM_THIS, ex);
375
- }
376
-
377
- #ifndef ICE_CPP11_MAPPING
378
-
379
- Int
380
- OutgoingAsyncBase::getHash() const
381
- {
382
- return static_cast<Int>(reinterpret_cast<Long>(this) >> 4);
383
- }
384
-
385
- CommunicatorPtr
386
- OutgoingAsyncBase::getCommunicator() const
387
- {
388
- return 0;
389
- }
390
-
391
- ConnectionPtr
392
- OutgoingAsyncBase::getConnection() const
393
- {
394
- return 0;
395
- }
396
-
397
- ObjectPrxPtr
398
- OutgoingAsyncBase::getProxy() const
399
- {
400
- return 0;
401
- }
402
-
403
- Ice::LocalObjectPtr
404
- OutgoingAsyncBase::getCookie() const
405
- {
406
- return _cookie;
407
- }
408
-
409
- const std::string&
410
- OutgoingAsyncBase::getOperation() const
411
- {
412
- assert(false); // Must be overridden
413
- static string empty;
414
- return empty;
415
- }
416
-
417
- bool
418
- OutgoingAsyncBase::isCompleted() const
419
- {
420
- Lock sync(_m);
421
- return (_state & Done) > 0;
422
- }
423
-
424
- void
425
- OutgoingAsyncBase::waitForCompleted()
426
- {
427
- Lock sync(_m);
428
- while(!(_state & Done))
429
- {
430
- _m.wait();
431
- }
432
- }
433
-
434
- bool
435
- OutgoingAsyncBase::isSent() const
436
- {
437
- Lock sync(_m);
438
- return (_state & Sent) > 0;
439
- }
440
-
441
- void
442
- OutgoingAsyncBase::waitForSent()
443
- {
444
- Lock sync(_m);
445
- while(!(_state & Sent) && !_ex.get())
446
- {
447
- _m.wait();
448
- }
449
- }
450
-
451
- bool
452
- OutgoingAsyncBase::sentSynchronously() const
453
- {
454
- return _sentSynchronously;
455
- }
456
-
457
- void
458
- OutgoingAsyncBase::throwLocalException() const
459
- {
460
- Lock sync(_m);
461
- if(_ex.get())
462
- {
463
- _ex->ice_throw();
464
- }
465
- }
466
-
467
- bool
468
- OutgoingAsyncBase::_waitForResponse()
469
- {
470
- Lock sync(_m);
471
- if(_state & EndCalled)
472
- {
473
- throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "end_ method called more than once");
474
- }
475
- _state |= EndCalled;
476
- while(!(_state & Done))
477
- {
478
- _m.wait();
479
- }
480
-
481
- if(_ex.get())
482
- {
483
- _ex->ice_throw();
484
- }
485
- return _state & OK;
486
- }
487
-
488
- Ice::InputStream*
489
- OutgoingAsyncBase::_startReadParams()
490
- {
491
- _is.startEncapsulation();
492
- return &_is;
493
- }
494
-
495
- void
496
- OutgoingAsyncBase::_endReadParams()
497
- {
498
- _is.endEncapsulation();
499
- }
500
-
501
- void
502
- OutgoingAsyncBase::_readEmptyParams()
503
- {
504
- _is.skipEmptyEncapsulation();
505
- }
506
-
507
- void
508
- OutgoingAsyncBase::_readParamEncaps(const ::Ice::Byte*& encaps, ::Ice::Int& sz)
509
- {
510
- _is.readEncapsulation(encaps, sz);
285
+ handler->asyncRequestCanceled(shared_from_this(), ex);
511
286
  }
512
287
 
513
288
  void
514
- OutgoingAsyncBase::_throwUserException()
289
+ OutgoingAsyncBase::warning(string_view callbackName, std::exception_ptr eptr) const
515
290
  {
516
- try
291
+ if (_instance->initializationData().properties->getIcePropertyAsInt("Ice.Warn.AMICallback") > 0)
517
292
  {
518
- _is.startEncapsulation();
519
- _is.throwException();
520
- }
521
- catch(const Ice::UserException&)
522
- {
523
- _is.endEncapsulation();
524
- throw;
525
- }
526
- }
527
-
528
- void
529
- OutgoingAsyncBase::_scheduleCallback(const CallbackPtr& cb)
530
- {
531
- //
532
- // NOTE: for internal use only. This should only be called when the invocation has
533
- // completed. Accessing _cachedConnection is not safe otherwise.
534
- //
535
-
536
- class WorkItem : public DispatchWorkItem
537
- {
538
- public:
539
-
540
- WorkItem(const ConnectionPtr& connection, const CallbackPtr& cb) :
541
- DispatchWorkItem(connection), _cb(cb)
293
+ Warning out(_instance->initializationData().logger);
294
+ try
542
295
  {
296
+ rethrow_exception(eptr);
543
297
  }
544
-
545
- virtual void run()
298
+ catch (const Exception& ex)
546
299
  {
547
- _cb->run();
300
+ out << "Ice::Exception raised by " << callbackName << " callback:\n" << ex;
548
301
  }
549
-
550
- private:
551
-
552
- CallbackPtr _cb;
553
- };
554
-
555
- //
556
- // CommunicatorDestroyedException is the only exception that can propagate directly from this method.
557
- //
558
- _instance->clientThreadPool()->dispatch(new WorkItem(_cachedConnection, cb));
559
- }
560
-
561
- #endif
562
-
563
- void
564
- OutgoingAsyncBase::warning(const std::exception& exc) const
565
- {
566
- if(_instance->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
567
- {
568
- Ice::Warning out(_instance->initializationData().logger);
569
- const Ice::Exception* ex = dynamic_cast<const Ice::Exception*>(&exc);
570
- if(ex)
302
+ catch (const std::exception& ex)
571
303
  {
572
- out << "Ice::Exception raised by AMI callback:\n" << *ex;
304
+ out << "std::exception raised by " << callbackName << " callback:\n" << ex.what();
573
305
  }
574
- else
306
+ catch (...)
575
307
  {
576
- out << "std::exception raised by AMI callback:\n" << exc.what();
308
+ out << "unknown exception raised by " << callbackName << " callback";
577
309
  }
578
310
  }
579
311
  }
580
312
 
581
- void
582
- OutgoingAsyncBase::warning() const
583
- {
584
- if(_instance->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
585
- {
586
- Ice::Warning out(_instance->initializationData().logger);
587
- out << "unknown exception raised by AMI callback";
588
- }
589
- }
590
-
591
313
  bool
592
- ProxyOutgoingAsyncBase::exception(const Exception& exc)
314
+ ProxyOutgoingAsyncBase::exception(std::exception_ptr exc)
593
315
  {
594
- if(_childObserver)
316
+ if (_childObserver)
595
317
  {
596
- _childObserver.failed(exc.ice_id());
318
+ _childObserver.failed(getExceptionId(exc));
597
319
  _childObserver.detach();
598
320
  }
599
321
 
600
- _cachedConnection = 0;
601
- if(_proxy->_getReference()->getInvocationTimeout() == -2)
602
- {
603
- _instance->timer()->cancel(ICE_SHARED_FROM_THIS);
604
- }
322
+ _cachedConnection = nullptr;
605
323
 
606
324
  //
607
325
  // NOTE: at this point, synchronization isn't needed, no other threads should be
@@ -614,46 +332,33 @@ ProxyOutgoingAsyncBase::exception(const Exception& exc)
614
332
  // the retry interval is 0. This method can be called with the
615
333
  // connection locked so we can't just retry here.
616
334
  //
617
- _instance->retryQueue()->add(ICE_SHARED_FROM_THIS, _proxy->_handleException(exc, _handler, _mode, _sent, _cnt));
335
+ _instance->retryQueue()->add(shared_from_this(), handleRetryAfterException(exc));
336
+
618
337
  return false;
619
338
  }
620
- catch(const Exception& ex)
339
+ catch (const Exception&)
621
340
  {
622
- return exceptionImpl(ex); // No retries, we're done
341
+ return exceptionImpl(current_exception()); // No retries, we're done
623
342
  }
624
343
  }
625
344
 
626
345
  void
627
- ProxyOutgoingAsyncBase::cancelable(const CancellationHandlerPtr& handler)
628
- {
629
- if(_proxy->_getReference()->getInvocationTimeout() == -2 && _cachedConnection)
630
- {
631
- const int timeout = _cachedConnection->timeout();
632
- if(timeout > 0)
633
- {
634
- _instance->timer()->schedule(ICE_SHARED_FROM_THIS, IceUtil::Time::milliSeconds(timeout));
635
- }
636
- }
637
- OutgoingAsyncBase::cancelable(handler);
638
- }
639
-
640
- void
641
- ProxyOutgoingAsyncBase::retryException(const Exception&)
346
+ ProxyOutgoingAsyncBase::retryException()
642
347
  {
643
348
  try
644
349
  {
645
- //
646
350
  // It's important to let the retry queue do the retry. This is
647
351
  // called from the connect request handler and the retry might
648
352
  // require could end up waiting for the flush of the
649
353
  // connection to be done.
650
- //
651
- _proxy->_updateRequestHandler(_handler, 0); // Clear request handler and always retry.
652
- _instance->retryQueue()->add(ICE_SHARED_FROM_THIS, 0);
354
+
355
+ // Clear cached request handler and always retry.
356
+ _proxy._getRequestHandlerCache()->clearCachedRequestHandler(_handler);
357
+ _instance->retryQueue()->add(shared_from_this(), 0);
653
358
  }
654
- catch(const Ice::Exception& exc)
359
+ catch (const Exception&)
655
360
  {
656
- if(exception(exc))
361
+ if (exception(current_exception()))
657
362
  {
658
363
  invokeExceptionAsync();
659
364
  }
@@ -667,63 +372,55 @@ ProxyOutgoingAsyncBase::retry()
667
372
  }
668
373
 
669
374
  void
670
- ProxyOutgoingAsyncBase::abort(const Ice::Exception& ex)
375
+ ProxyOutgoingAsyncBase::abort(std::exception_ptr ex)
671
376
  {
672
377
  assert(!_childObserver);
673
378
 
674
- if(exceptionImpl(ex))
379
+ if (exceptionImpl(ex))
675
380
  {
676
381
  invokeExceptionAsync();
677
382
  }
678
- else if(dynamic_cast<const Ice::CommunicatorDestroyedException*>(&ex))
383
+ else
679
384
  {
680
- //
681
- // If it's a communicator destroyed exception, don't swallow
682
- // it but instead notify the user thread. Even if no callback
683
- // was provided.
684
- //
685
- ex.ice_throw();
385
+ try
386
+ {
387
+ rethrow_exception(ex);
388
+ }
389
+ catch (const CommunicatorDestroyedException&)
390
+ {
391
+ //
392
+ // If it's a communicator destroyed exception, don't swallow
393
+ // it but instead notify the user thread. Even if no callback
394
+ // was provided.
395
+ //
396
+ throw;
397
+ }
398
+ catch (...)
399
+ {
400
+ // ignored.
401
+ }
686
402
  }
687
403
  }
688
404
 
689
- #ifndef ICE_CPP11_MAPPING
690
- Ice::ObjectPrx
691
- ProxyOutgoingAsyncBase::getProxy() const
692
- {
693
- return _proxy;
694
- }
695
-
696
- Ice::CommunicatorPtr
697
- ProxyOutgoingAsyncBase::getCommunicator() const
698
- {
699
- return _proxy->ice_getCommunicator();
700
- }
701
- #endif
702
-
703
- ProxyOutgoingAsyncBase::ProxyOutgoingAsyncBase(const ObjectPrxPtr& prx) :
704
- OutgoingAsyncBase(prx->_getReference()->getInstance()),
705
- _proxy(prx),
706
- _mode(ICE_ENUM(OperationMode, Normal)),
707
- _cnt(0),
708
- _sent(false)
405
+ ProxyOutgoingAsyncBase::ProxyOutgoingAsyncBase(ObjectPrx proxy)
406
+ : OutgoingAsyncBase(proxy->_getReference()->getInstance()),
407
+ _proxy(std::move(proxy))
709
408
  {
710
409
  }
711
410
 
712
- ProxyOutgoingAsyncBase::~ProxyOutgoingAsyncBase()
713
- {
714
- }
411
+ ProxyOutgoingAsyncBase::~ProxyOutgoingAsyncBase() = default;
715
412
 
716
413
  void
717
414
  ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
718
415
  {
719
416
  try
720
417
  {
721
- if(userThread)
418
+ if (userThread)
722
419
  {
723
- int invocationTimeout = _proxy->_getReference()->getInvocationTimeout();
724
- if(invocationTimeout > 0)
420
+ chrono::milliseconds invocationTimeout = _proxy._getReference()->getInvocationTimeout();
421
+ if (invocationTimeout > 0ms)
725
422
  {
726
- _instance->timer()->schedule(ICE_SHARED_FROM_THIS, IceUtil::Time::milliSeconds(invocationTimeout));
423
+ _instance->timer()->schedule(shared_from_this(), invocationTimeout);
727
424
  }
728
425
  }
729
426
  else
@@ -731,26 +428,26 @@ ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
731
428
  _observer.retried();
732
429
  }
733
430
 
734
- while(true)
431
+ while (true)
735
432
  {
736
433
  try
737
434
  {
738
435
  _sent = false;
739
- _handler = _proxy->_getRequestHandler();
740
- AsyncStatus status = _handler->sendAsyncRequest(ICE_SHARED_FROM_THIS);
741
- if(status & AsyncStatusSent)
436
+ _handler = _proxy._getRequestHandlerCache()->getRequestHandler();
437
+ AsyncStatus status = _handler->sendAsyncRequest(shared_from_this());
438
+ if (status & AsyncStatusSent)
742
439
  {
743
- if(userThread)
440
+ if (userThread)
744
441
  {
745
442
  _sentSynchronously = true;
746
- if(status & AsyncStatusInvokeSentCallback)
443
+ if (status & AsyncStatusInvokeSentCallback)
747
444
  {
748
445
  invokeSent(); // Call the sent callback from the user thread.
749
446
  }
750
447
  }
751
448
  else
752
449
  {
753
- if(status & AsyncStatusInvokeSentCallback)
450
+ if (status & AsyncStatusInvokeSentCallback)
754
451
  {
755
452
  invokeSentAsync(); // Call the sent callback from a client thread pool thread.
756
453
  }
@@ -758,21 +455,23 @@ ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
758
455
  }
759
456
  return; // We're done!
760
457
  }
761
- catch(const RetryException&)
458
+ catch (const RetryException&)
762
459
  {
763
- _proxy->_updateRequestHandler(_handler, 0); // Clear request handler and always retry.
460
+ // Clear request handler and always retry.
461
+ _proxy._getRequestHandlerCache()->clearCachedRequestHandler(_handler);
764
462
  }
765
- catch(const Exception& ex)
463
+ catch (const Exception& ex)
766
464
  {
767
- if(_childObserver)
465
+ if (_childObserver)
768
466
  {
769
467
  _childObserver.failed(ex.ice_id());
770
468
  _childObserver.detach();
771
469
  }
772
- int interval = _proxy->_handleException(ex, _handler, _mode, _sent, _cnt);
773
- if(interval > 0)
470
+ int interval = handleRetryAfterException(current_exception());
471
+
472
+ if (interval > 0)
774
473
  {
775
- _instance->retryQueue()->add(ICE_SHARED_FROM_THIS, interval);
474
+ _instance->retryQueue()->add(shared_from_this(), interval);
776
475
  return;
777
476
  }
778
477
  else
@@ -782,17 +481,15 @@ ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
782
481
  }
783
482
  }
784
483
  }
785
- catch(const Exception& ex)
484
+ catch (const Exception&)
786
485
  {
787
- //
788
- // If called from the user thread we re-throw, the exception
789
- // will be catch by the caller and abort(ex) will be called.
790
- //
791
- if(userThread)
486
+ // If called from the user thread we re-throw, the exception will be caught by the caller and handled using
487
+ // abort.
488
+ if (userThread)
792
489
  {
793
490
  throw;
794
491
  }
795
- else if(exceptionImpl(ex)) // No retries, we're done
492
+ else if (exceptionImpl(current_exception())) // No retries, we're done
796
493
  {
797
494
  invokeExceptionAsync();
798
495
  }
@@ -803,22 +500,22 @@ bool
803
500
  ProxyOutgoingAsyncBase::sentImpl(bool done)
804
501
  {
805
502
  _sent = true;
806
- if(done)
503
+ if (done)
807
504
  {
808
- if(_proxy->_getReference()->getInvocationTimeout() != -1)
505
+ if (_proxy._getReference()->getInvocationTimeout() > 0ms)
809
506
  {
810
- _instance->timer()->cancel(ICE_SHARED_FROM_THIS);
507
+ _instance->timer()->cancel(shared_from_this());
811
508
  }
812
509
  }
813
510
  return OutgoingAsyncBase::sentImpl(done);
814
511
  }
815
512
 
816
513
  bool
817
- ProxyOutgoingAsyncBase::exceptionImpl(const Exception& ex)
514
+ ProxyOutgoingAsyncBase::exceptionImpl(std::exception_ptr ex)
818
515
  {
819
- if(_proxy->_getReference()->getInvocationTimeout() != -1)
516
+ if (_proxy._getReference()->getInvocationTimeout() > 0ms)
820
517
  {
821
- _instance->timer()->cancel(ICE_SHARED_FROM_THIS);
518
+ _instance->timer()->cancel(shared_from_this());
822
519
  }
823
520
  return OutgoingAsyncBase::exceptionImpl(ex);
824
521
  }
@@ -826,9 +523,9 @@ ProxyOutgoingAsyncBase::exceptionImpl(const Exception& ex)
826
523
  bool
827
524
  ProxyOutgoingAsyncBase::responseImpl(bool ok, bool invoke)
828
525
  {
829
- if(_proxy->_getReference()->getInvocationTimeout() != -1)
526
+ if (_proxy._getReference()->getInvocationTimeout() > 0ms)
830
527
  {
831
- _instance->timer()->cancel(ICE_SHARED_FROM_THIS);
528
+ _instance->timer()->cancel(shared_from_this());
832
529
  }
833
530
  return OutgoingAsyncBase::responseImpl(ok, invoke);
834
531
  }
@@ -836,59 +533,287 @@ ProxyOutgoingAsyncBase::responseImpl(bool ok, bool invoke)
836
533
  void
837
534
  ProxyOutgoingAsyncBase::runTimerTask()
838
535
  {
839
- if(_proxy->_getReference()->getInvocationTimeout() == -2)
536
+ cancel(make_exception_ptr(InvocationTimeoutException(__FILE__, __LINE__)));
537
+ }
538
+
539
+ int
540
+ ProxyOutgoingAsyncBase::handleRetryAfterException(std::exception_ptr ex)
541
+ {
542
+ // Clear the request handler
543
+ _proxy->_getRequestHandlerCache()->clearCachedRequestHandler(_handler);
544
+
545
+ // We only retry local exceptions, system exceptions aren't retried.
546
+ //
547
+ // A CloseConnectionException indicates graceful server shutdown, and is therefore
548
+ // always repeatable without violating "at-most-once". That's because by sending a
549
+ // close connection message, the server guarantees that all outstanding requests
550
+ // can safely be repeated.
551
+ //
552
+ // An ObjectNotExistException can always be retried as well without violating
553
+ // "at-most-once".
554
+ //
555
+ // If the request didn't get sent or if it's non-mutating or idempotent it can
556
+ // also always be retried if the retry count isn't reached.
557
+ try
558
+ {
559
+ rethrow_exception(ex);
560
+ }
561
+ catch (const Ice::LocalException& localEx)
562
+ {
563
+ if (!_sent || _mode != OperationMode::Normal || dynamic_cast<const CloseConnectionException*>(&localEx) ||
564
+ dynamic_cast<const ObjectNotExistException*>(&localEx))
565
+ {
566
+ try
567
+ {
568
+ return checkRetryAfterException(ex);
569
+ }
570
+ catch (const CommunicatorDestroyedException&)
571
+ {
572
+ rethrow_exception(ex); // The communicator is already destroyed, so we cannot retry.
573
+ }
574
+ }
575
+ else
576
+ {
577
+ throw; // Retry could break at-most-once semantics, don't retry.
578
+ }
579
+
580
+ // gcc complains without this return statement.
581
+ assert(false);
582
+ return 0;
583
+ }
584
+ }
585
+
586
+ int
587
+ ProxyOutgoingAsyncBase::checkRetryAfterException(std::exception_ptr ex)
588
+ {
589
+ const ReferencePtr& ref = _proxy._getReference();
590
+ const InstancePtr& instance = ref->getInstance();
591
+
592
+ TraceLevelsPtr traceLevels = instance->traceLevels();
593
+ LoggerPtr logger = instance->initializationData().logger;
594
+
595
+ // We don't retry batch requests because the exception might have
596
+ // caused all the requests batched with the connection to be
597
+ // aborted and we want the application to be notified.
598
+ if (ref->isBatch())
599
+ {
600
+ rethrow_exception(ex);
601
+ }
602
+
603
+ // If it's a fixed proxy, retrying isn't useful as the proxy is tied to
604
+ // the connection and the request will fail with the exception.
605
+ if (dynamic_pointer_cast<FixedReference>(ref))
840
606
  {
841
- cancel(ConnectionTimeoutException(__FILE__, __LINE__));
607
+ rethrow_exception(ex);
608
+ }
609
+
610
+ bool isCloseConnectionException = false;
611
+ string errorMessage;
612
+ try
613
+ {
614
+ rethrow_exception(ex);
615
+ }
616
+ catch (const ObjectNotExistException& one)
617
+ {
618
+ if (ref->getRouterInfo() && one.operation() == "ice_add_proxy")
619
+ {
620
+ // If we have a router, an ObjectNotExistException with an
621
+ // operation name "ice_add_proxy" indicates to the client
622
+ // that the router isn't aware of the proxy (for example,
623
+ // because it was evicted by the router). In this case, we
624
+ // must *always* retry, so that the missing proxy is added
625
+ // to the router.
626
+
627
+ ref->getRouterInfo()->clearCache(ref);
628
+
629
+ if (traceLevels->retry >= 1)
630
+ {
631
+ Trace out(logger, traceLevels->retryCat);
632
+ out << "retrying operation call to add proxy to router\n" << one;
633
+ }
634
+
635
+ return 0; // We must always retry, so we don't look at the retry count.
636
+ }
637
+ else if (ref->isIndirect())
638
+ {
639
+ // We retry ObjectNotExistException if the reference is indirect.
640
+
641
+ if (ref->isWellKnown())
642
+ {
643
+ LocatorInfoPtr li = ref->getLocatorInfo();
644
+ if (li)
645
+ {
646
+ li->clearCache(ref);
647
+ }
648
+ }
649
+ }
650
+ else
651
+ {
652
+ // For all other cases, we don't retry ObjectNotExistException.
653
+ throw;
654
+ }
655
+ }
656
+ catch (const RequestFailedException&)
657
+ {
658
+ // We don't retry other *NotExistException, which are all
659
+ // derived from RequestFailedException.
660
+ throw;
661
+ }
662
+ catch (const MarshalException&)
663
+ {
664
+ // There is no point in retrying an operation that resulted in a
665
+ // MarshalException. This must have been raised locally (because
666
+ // if it happened in a server it would result in an
667
+ // UnknownLocalException instead), which means there was a problem
668
+ // in this process that will not change if we try again.
669
+ //
670
+ // A likely cause for a MarshalException is exceeding the
671
+ // maximum message size. For example, a client can attempt to send
672
+ // a message that exceeds the maximum memory size, or accumulate
673
+ // enough batch requests without flushing that the maximum size is
674
+ // reached.
675
+ //
676
+ // This latter case is especially problematic, because if we were
677
+ // to retry a batch request after a MarshalException, we would in
678
+ // fact silently discard the accumulated requests and allow new
679
+ // batch requests to accumulate. If the subsequent batched
680
+ // requests do not exceed the maximum message size, it appears to
681
+ // the client that all of the batched requests were accepted, when
682
+ // in reality only the last few are actually sent.
683
+ throw;
684
+ }
685
+ catch (const CommunicatorDestroyedException&)
686
+ {
687
+ throw;
688
+ }
689
+ catch (const ObjectAdapterDeactivatedException&)
690
+ {
691
+ throw;
692
+ }
693
+ catch (const ObjectAdapterDestroyedException&)
694
+ {
695
+ throw;
696
+ }
697
+ catch (const ConnectionAbortedException& connectionAbortedException)
698
+ {
699
+ if (connectionAbortedException.closedByApplication())
700
+ {
701
+ throw; // do not retry
702
+ }
703
+ errorMessage = connectionAbortedException.what();
704
+ // and retry
705
+ }
706
+ catch (const ConnectionClosedException& connectionClosedException)
707
+ {
708
+ if (connectionClosedException.closedByApplication())
709
+ {
710
+ throw; // do not retry
711
+ }
712
+ errorMessage = connectionClosedException.what();
713
+ // and retry
714
+ }
715
+ catch (const InvocationTimeoutException&)
716
+ {
717
+ throw;
718
+ }
719
+ catch (const InvocationCanceledException&)
720
+ {
721
+ throw;
722
+ }
723
+ catch (const CloseConnectionException& e)
724
+ {
725
+ isCloseConnectionException = true;
726
+ errorMessage = e.what();
727
+ // and retry
728
+ }
729
+ catch (const std::exception& e)
730
+ {
731
+ errorMessage = e.what();
732
+ // We retry on all other exceptions!
733
+ }
734
+
735
+ ++_cnt;
736
+ assert(_cnt > 0);
737
+
738
+ const auto& retryIntervals = instance->retryIntervals();
739
+ int interval = -1;
740
+ if (_cnt == static_cast<int>(retryIntervals.size() + 1) && isCloseConnectionException)
741
+ {
742
+ // A close connection exception is always retried at least once, even if the retry
743
+ // limit is reached.
744
+ interval = 0;
745
+ }
746
+ else if (_cnt > static_cast<int>(retryIntervals.size()))
747
+ {
748
+ if (traceLevels->retry >= 1)
749
+ {
750
+ Trace out(logger, traceLevels->retryCat);
751
+ out << "cannot retry operation call because retry limit has been exceeded\n" << errorMessage;
752
+ }
753
+ rethrow_exception(ex);
842
754
  }
843
755
  else
844
756
  {
845
- cancel(InvocationTimeoutException(__FILE__, __LINE__));
757
+ interval = retryIntervals[static_cast<size_t>(_cnt - 1)];
846
758
  }
759
+
760
+ if (traceLevels->retry >= 1)
761
+ {
762
+ Trace out(logger, traceLevels->retryCat);
763
+ out << "retrying operation call";
764
+ if (interval > 0)
765
+ {
766
+ out << " in " << interval << "ms";
767
+ }
768
+ out << " because of exception\n" << errorMessage;
769
+ }
770
+ return interval;
847
771
  }
848
772
 
849
- OutgoingAsync::OutgoingAsync(const ObjectPrxPtr& prx, bool synchronous) :
850
- ProxyOutgoingAsyncBase(prx),
851
- _encoding(getCompatibleEncoding(prx->_getReference()->getEncoding())),
852
- _synchronous(synchronous)
773
+ OutgoingAsync::OutgoingAsync(ObjectPrx proxy, bool synchronous)
774
+ : ProxyOutgoingAsyncBase(std::move(proxy)),
775
+ _encoding(_proxy->_getReference()->getEncoding()),
776
+ _synchronous(synchronous)
853
777
  {
854
778
  }
855
779
 
856
780
  void
857
- OutgoingAsync::prepare(const string& operation, OperationMode mode, const Context& context)
781
+ OutgoingAsync::prepare(string_view operation, OperationMode mode, const Context& context)
858
782
  {
859
- checkSupportedProtocol(getCompatibleProtocol(_proxy->_getReference()->getProtocol()));
783
+ if (_proxy._getReference()->getProtocol() != currentProtocol)
784
+ {
785
+ throw FeatureNotSupportedException{
786
+ __FILE__,
787
+ __LINE__,
788
+ "cannot send request using protocol version " +
789
+ protocolVersionToString(_proxy._getReference()->getProtocol())};
790
+ }
860
791
 
861
792
  _mode = mode;
793
+
862
794
  _observer.attach(_proxy, operation, context);
863
795
 
864
- switch(_proxy->_getReference()->getMode())
796
+ // We need to check isBatch() and not if getBatchRequestQueue() is not null: for a fixed proxy,
797
+ // getBatchRequestQueue() always returns a non null value.
798
+ if (_proxy._getReference()->isBatch())
865
799
  {
866
- case Reference::ModeTwoway:
867
- case Reference::ModeOneway:
868
- case Reference::ModeDatagram:
869
- {
870
- _os.writeBlob(requestHdr, sizeof(requestHdr));
871
- break;
872
- }
873
-
874
- case Reference::ModeBatchOneway:
875
- case Reference::ModeBatchDatagram:
876
- {
877
- _proxy->_getBatchRequestQueue()->prepareBatchRequest(&_os);
878
- break;
879
- }
800
+ _proxy._getReference()->getBatchRequestQueue()->prepareBatchRequest(&_os);
801
+ }
802
+ else
803
+ {
804
+ _os.writeBlob(requestHdr, sizeof(requestHdr));
880
805
  }
881
806
 
882
- Reference* ref = _proxy->_getReference().get();
807
+ Reference* ref = _proxy._getReference().get();
883
808
 
884
809
  _os.write(ref->getIdentity());
885
810
 
886
811
  //
887
812
  // For compatibility with the old FacetPath.
888
813
  //
889
- if(ref->getFacet().empty())
814
+ if (ref->getFacet().empty())
890
815
  {
891
- _os.write(static_cast<string*>(0), static_cast<string*>(0));
816
+ _os.write(static_cast<string*>(nullptr), static_cast<string*>(nullptr));
892
817
  }
893
818
  else
894
819
  {
@@ -898,19 +823,9 @@ OutgoingAsync::prepare(const string& operation, OperationMode mode, const Contex
898
823
 
899
824
  _os.write(operation, false);
900
825
 
901
- _os.write(static_cast<Byte>(_mode));
826
+ _os.write(static_cast<uint8_t>(_mode));
902
827
 
903
- #if defined(_MSC_VER) && (_MSC_VER <= 1600)
904
- //
905
- // COMPILERFIX v90 and v100 get confused with namespaces and we need to
906
- // defined both Ice::noExplicitContext and IceProxy::Ice::noExplicitContext
907
- // see comments in Ice/Proxy.h.
908
- //
909
- if(&context != &Ice::noExplicitContext &&
910
- &context != &IceProxy::Ice::noExplicitContext)
911
- #else
912
- if(&context != &Ice::noExplicitContext)
913
- #endif
828
+ if (&context != &noExplicitContext)
914
829
  {
915
830
  //
916
831
  // Explicit context
@@ -922,15 +837,15 @@ OutgoingAsync::prepare(const string& operation, OperationMode mode, const Contex
922
837
  //
923
838
  // Implicit context
924
839
  //
925
- const ImplicitContextIPtr& implicitContext = ref->getInstance()->getImplicitContext();
840
+ const ImplicitContextPtr& implicitContext = ref->getInstance()->getImplicitContext();
926
841
  const Context& prxContext = ref->getContext()->getValue();
927
- if(implicitContext == 0)
842
+ if (implicitContext)
928
843
  {
929
- _os.write(prxContext);
844
+ implicitContext->write(prxContext, &_os);
930
845
  }
931
846
  else
932
847
  {
933
- implicitContext->write(prxContext, &_os);
848
+ _os.write(prxContext);
934
849
  }
935
850
  }
936
851
  }
@@ -938,7 +853,8 @@ OutgoingAsync::prepare(const string& operation, OperationMode mode, const Contex
938
853
  bool
939
854
  OutgoingAsync::sent()
940
855
  {
941
- return ProxyOutgoingAsyncBase::sentImpl(!_proxy->ice_isTwoway()); // done = true if it's not a two-way proxy
856
+ return ProxyOutgoingAsyncBase::sentImpl(
857
+ !_proxy._getReference()->isTwoway()); // done = true if it's not a two-way proxy
942
858
  }
943
859
 
944
860
  bool
@@ -949,34 +865,32 @@ OutgoingAsync::response()
949
865
  // with the connection locked. Therefore, it must not invoke
950
866
  // any user callbacks.
951
867
  //
952
- assert(_proxy->ice_isTwoway()); // Can only be called for twoways.
868
+ assert(_proxy._getReference()->isTwoway()); // Can only be called for twoways.
953
869
 
954
- if(_childObserver)
870
+ if (_childObserver)
955
871
  {
956
- _childObserver->reply(static_cast<Int>(_is.b.size() - headerSize - 4));
872
+ _childObserver->reply(static_cast<int32_t>(_is.b.size() - headerSize - 4));
957
873
  _childObserver.detach();
958
874
  }
959
875
 
960
- Byte replyStatus;
961
876
  try
962
877
  {
963
- _is.read(replyStatus);
878
+ // We can't use the generated code to unmarshal a possibly unknown reply status enumerator.
879
+ uint8_t replyStatusByte;
880
+ _is.read(replyStatusByte);
881
+ ReplyStatus replyStatus{replyStatusByte};
964
882
 
965
- switch(replyStatus)
883
+ switch (replyStatus)
966
884
  {
967
- case replyOK:
968
- {
885
+ case ReplyStatus::Ok:
969
886
  break;
970
- }
971
- case replyUserException:
972
- {
887
+ case ReplyStatus::UserException:
973
888
  _observer.userException();
974
889
  break;
975
- }
976
890
 
977
- case replyObjectNotExist:
978
- case replyFacetNotExist:
979
- case replyOperationNotExist:
891
+ case ReplyStatus::ObjectNotExist:
892
+ case ReplyStatus::FacetNotExist:
893
+ case ReplyStatus::OperationNotExist:
980
894
  {
981
895
  Identity ident;
982
896
  _is.read(ident);
@@ -987,104 +901,79 @@ OutgoingAsync::response()
987
901
  vector<string> facetPath;
988
902
  _is.read(facetPath);
989
903
  string facet;
990
- if(!facetPath.empty())
904
+ if (!facetPath.empty())
991
905
  {
992
- if(facetPath.size() > 1)
906
+ if (facetPath.size() > 1)
993
907
  {
994
- throw MarshalException(__FILE__, __LINE__);
908
+ throw MarshalException{__FILE__, __LINE__, "received facet path with more than one element"};
995
909
  }
996
910
  facet.swap(facetPath[0]);
997
911
  }
998
912
 
999
913
  string operation;
1000
914
  _is.read(operation, false);
1001
-
1002
- IceInternal::UniquePtr<RequestFailedException> ex;
1003
- switch(replyStatus)
915
+ switch (replyStatus)
1004
916
  {
1005
- case replyObjectNotExist:
1006
- {
1007
- ex.reset(new ObjectNotExistException(__FILE__, __LINE__));
917
+ case ReplyStatus::ObjectNotExist:
918
+ throw ObjectNotExistException{
919
+ __FILE__,
920
+ __LINE__,
921
+ std::move(ident),
922
+ std::move(facet),
923
+ std::move(operation)};
1008
924
  break;
1009
- }
1010
-
1011
- case replyFacetNotExist:
1012
- {
1013
- ex.reset(new FacetNotExistException(__FILE__, __LINE__));
1014
- break;
1015
- }
1016
925
 
1017
- case replyOperationNotExist:
1018
- {
1019
- ex.reset(new OperationNotExistException(__FILE__, __LINE__));
926
+ case ReplyStatus::FacetNotExist:
927
+ throw FacetNotExistException{
928
+ __FILE__,
929
+ __LINE__,
930
+ std::move(ident),
931
+ std::move(facet),
932
+ std::move(operation)};
1020
933
  break;
1021
- }
1022
934
 
1023
935
  default:
1024
- {
1025
- assert(false);
936
+ throw OperationNotExistException{
937
+ __FILE__,
938
+ __LINE__,
939
+ std::move(ident),
940
+ std::move(facet),
941
+ std::move(operation)};
1026
942
  break;
1027
- }
1028
943
  }
1029
-
1030
- ex->id = ident;
1031
- ex->facet = facet;
1032
- ex->operation = operation;
1033
- ex->ice_throw();
1034
944
  break;
1035
945
  }
1036
946
 
1037
- case replyUnknownException:
1038
- case replyUnknownLocalException:
1039
- case replyUnknownUserException:
947
+ default:
1040
948
  {
1041
- string unknown;
1042
- _is.read(unknown, false);
949
+ string message;
950
+ _is.read(message, false);
1043
951
 
1044
- IceInternal::UniquePtr<UnknownException> ex;
1045
- switch(replyStatus)
952
+ switch (replyStatus)
1046
953
  {
1047
- case replyUnknownException:
1048
- {
1049
- ex.reset(new UnknownException(__FILE__, __LINE__));
954
+ case ReplyStatus::UnknownException:
955
+ throw UnknownException{__FILE__, __LINE__, std::move(message)};
1050
956
  break;
1051
- }
1052
957
 
1053
- case replyUnknownLocalException:
1054
- {
1055
- ex.reset(new UnknownLocalException(__FILE__, __LINE__));
958
+ case ReplyStatus::UnknownLocalException:
959
+ throw UnknownLocalException{__FILE__, __LINE__, std::move(message)};
1056
960
  break;
1057
- }
1058
961
 
1059
- case replyUnknownUserException:
1060
- {
1061
- ex.reset(new UnknownUserException(__FILE__, __LINE__));
962
+ case ReplyStatus::UnknownUserException:
963
+ throw UnknownUserException{__FILE__, __LINE__, std::move(message)};
1062
964
  break;
1063
- }
1064
965
 
1065
966
  default:
1066
- {
1067
- assert(false);
1068
- break;
1069
- }
967
+ throw DispatchException{__FILE__, __LINE__, replyStatus, std::move(message)};
1070
968
  }
1071
-
1072
- ex->unknown = unknown;
1073
- ex->ice_throw();
1074
- break;
1075
- }
1076
-
1077
- default:
1078
- {
1079
- throw UnknownReplyStatusException(__FILE__, __LINE__);
1080
969
  }
1081
970
  }
1082
971
 
1083
- return responseImpl(replyStatus == replyOK, true);
972
+ return responseImpl(replyStatus == ReplyStatus::Ok, true);
1084
973
  }
1085
- catch(const Exception& ex)
974
+ catch (const Exception&)
1086
975
  {
1087
- return exception(ex);
976
+ return exception(current_exception());
1088
977
  }
1089
978
  }
1090
979
 
@@ -1092,7 +981,7 @@ AsyncStatus
1092
981
  OutgoingAsync::invokeRemote(const ConnectionIPtr& connection, bool compress, bool response)
1093
982
  {
1094
983
  _cachedConnection = connection;
1095
- return connection->sendAsyncRequest(ICE_SHARED_FROM_THIS, compress, response, 0);
984
+ return connection->sendAsyncRequest(shared_from_this(), compress, response, 0);
1096
985
  }
1097
986
 
1098
987
  AsyncStatus
@@ -1102,54 +991,48 @@ OutgoingAsync::invokeCollocated(CollocatedRequestHandler* handler)
1102
991
  }
1103
992
 
1104
993
  void
1105
- OutgoingAsync::abort(const Exception& ex)
994
+ OutgoingAsync::abort(std::exception_ptr ex)
1106
995
  {
1107
- const Reference::Mode mode = _proxy->_getReference()->getMode();
1108
- if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
996
+ if (_proxy._getReference()->isBatch())
1109
997
  {
1110
998
  //
1111
999
  // If we didn't finish a batch oneway or datagram request, we
1112
1000
  // must notify the connection about that we give up ownership
1113
1001
  // of the batch stream.
1114
1002
  //
1115
- _proxy->_getBatchRequestQueue()->abortBatchRequest(&_os);
1003
+ _proxy._getReference()->getBatchRequestQueue()->abortBatchRequest(&_os);
1116
1004
  }
1117
1005
 
1118
1006
  ProxyOutgoingAsyncBase::abort(ex);
1119
1007
  }
1120
1008
 
1121
1009
  void
1122
- OutgoingAsync::invoke(const string& operation)
1010
+ OutgoingAsync::invoke(string_view operation)
1123
1011
  {
1124
- const Reference::Mode mode = _proxy->_getReference()->getMode();
1125
- if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
1012
+ if (_proxy._getReference()->isBatch())
1126
1013
  {
1127
1014
  _sentSynchronously = true;
1128
- _proxy->_getBatchRequestQueue()->finishBatchRequest(&_os, _proxy, operation);
1015
+ _proxy._getReference()->getBatchRequestQueue()->finishBatchRequest(&_os, _proxy, operation);
1129
1016
  responseImpl(true, false); // Don't call sent/completed callback for batch AMI requests
1130
1017
  return;
1131
1018
  }
1132
1019
 
1133
- //
1134
- // NOTE: invokeImpl doesn't throw so this can be called from the
1135
- // try block with the catch block calling abort(ex) in case of an
1136
- // exception.
1137
- //
1020
+ // invokeImpl can throw. The exception should be handled by calling abort (in the caller).
1138
1021
  invokeImpl(true); // userThread = true
1139
1022
  }
1140
1023
 
1141
- #ifdef ICE_CPP11_MAPPING
1142
1024
  void
1143
- OutgoingAsync::invoke(const string& operation,
1144
- Ice::OperationMode mode,
1145
- Ice::FormatType format,
1146
- const Ice::Context& context,
1147
- function<void(Ice::OutputStream*)> write)
1025
+ OutgoingAsync::invoke(
1026
+ string_view operation,
1027
+ OperationMode mode,
1028
+ optional<FormatType> format,
1029
+ const Context& context,
1030
+ const function<void(OutputStream*)>& write)
1148
1031
  {
1149
1032
  try
1150
1033
  {
1151
1034
  prepare(operation, mode, context);
1152
- if(write)
1035
+ if (write)
1153
1036
  {
1154
1037
  _os.startEncapsulation(_encoding, format);
1155
1038
  write(&_os);
@@ -1161,9 +1044,9 @@ OutgoingAsync::invoke(const string& operation,
1161
1044
  }
1162
1045
  invoke(operation);
1163
1046
  }
1164
- catch(const Ice::Exception& ex)
1047
+ catch (const Exception&)
1165
1048
  {
1166
- abort(ex);
1049
+ abort(current_exception());
1167
1050
  }
1168
1051
  }
1169
1052
 
@@ -1175,29 +1058,25 @@ OutgoingAsync::throwUserException()
1175
1058
  _is.startEncapsulation();
1176
1059
  _is.throwException();
1177
1060
  }
1178
- catch(const UserException& ex)
1061
+ catch (const UserException& ex)
1179
1062
  {
1180
1063
  _is.endEncapsulation();
1181
- if(_userException)
1064
+ if (_userException)
1182
1065
  {
1183
1066
  _userException(ex);
1184
1067
  }
1185
- throw UnknownUserException(__FILE__, __LINE__, ex.ice_id());
1068
+ throw UnknownUserException::fromTypeId(__FILE__, __LINE__, ex.ice_id());
1186
1069
  }
1187
1070
  }
1188
1071
 
1189
- #endif
1190
-
1191
- #ifdef ICE_CPP11_MAPPING
1192
-
1193
1072
  bool
1194
- LambdaInvoke::handleSent(bool, bool alreadySent)
1073
+ LambdaInvoke::handleSent(bool, bool alreadySent) noexcept
1195
1074
  {
1196
1075
  return _sent != nullptr && !alreadySent; // Invoke the sent callback only if not already invoked.
1197
1076
  }
1198
1077
 
1199
1078
  bool
1200
- LambdaInvoke::handleException(const Ice::Exception&)
1079
+ LambdaInvoke::handleException(std::exception_ptr) noexcept
1201
1080
  {
1202
1081
  return _exception != nullptr; // Invoke the callback
1203
1082
  }
@@ -1215,16 +1094,9 @@ LambdaInvoke::handleInvokeSent(bool sentSynchronously, OutgoingAsyncBase*) const
1215
1094
  }
1216
1095
 
1217
1096
  void
1218
- LambdaInvoke::handleInvokeException(const Ice::Exception& ex, OutgoingAsyncBase*) const
1097
+ LambdaInvoke::handleInvokeException(std::exception_ptr ex, OutgoingAsyncBase*) const
1219
1098
  {
1220
- try
1221
- {
1222
- ex.ice_throw();
1223
- }
1224
- catch(const Ice::Exception&)
1225
- {
1226
- _exception(current_exception());
1227
- }
1099
+ _exception(ex);
1228
1100
  }
1229
1101
 
1230
1102
  void
@@ -1232,91 +1104,3 @@ LambdaInvoke::handleInvokeResponse(bool ok, OutgoingAsyncBase*) const
1232
1104
  {
1233
1105
  _response(ok);
1234
1106
  }
1235
-
1236
- #else // C++98
1237
-
1238
- namespace
1239
- {
1240
-
1241
- //
1242
- // Dummy class derived from CallbackBase
1243
- // We use this class for the dummyCallback extern pointer in OutgoingAsync. In turn,
1244
- // this allows us to test whether the user supplied a null delegate instance to the
1245
- // generated begin_ method without having to generate a separate test to throw IllegalArgumentException
1246
- // in the inlined versions of the begin_ method. In other words, this reduces the amount of generated
1247
- // object code.
1248
- //
1249
- class DummyCallback : public CallbackBase
1250
- {
1251
- public:
1252
-
1253
- DummyCallback()
1254
- {
1255
- }
1256
-
1257
- virtual void
1258
- completed(const Ice::AsyncResultPtr&) const
1259
- {
1260
- assert(false);
1261
- }
1262
-
1263
- virtual CallbackBasePtr
1264
- verify(const Ice::LocalObjectPtr&)
1265
- {
1266
- //
1267
- // Called by the AsyncResult constructor to verify the delegate. The dummy
1268
- // delegate is passed when the user used a begin_ method without delegate.
1269
- // By returning 0 here, we tell the AsyncResult that no delegates was
1270
- // provided.
1271
- //
1272
- return 0;
1273
- }
1274
-
1275
- virtual void
1276
- sent(const AsyncResultPtr&) const
1277
- {
1278
- assert(false);
1279
- }
1280
-
1281
- virtual bool
1282
- hasSentCallback() const
1283
- {
1284
- assert(false);
1285
- return false;
1286
- }
1287
- };
1288
-
1289
- }
1290
-
1291
- //
1292
- // This gives a pointer value to compare against in the generated
1293
- // begin_ method to decide whether the caller passed a null pointer
1294
- // versus the generated inline version of the begin_ method having
1295
- // passed a pointer to the dummy delegate.
1296
- //
1297
- CallbackBasePtr IceInternal::dummyCallback = new DummyCallback;
1298
-
1299
- CallbackBase::~CallbackBase()
1300
- {
1301
- // Out of line to avoid weak vtable
1302
- }
1303
-
1304
- void
1305
- CallbackBase::checkCallback(bool obj, bool cb)
1306
- {
1307
- if(!obj)
1308
- {
1309
- throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "callback object cannot be null");
1310
- }
1311
- if(!cb)
1312
- {
1313
- throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "callback cannot be null");
1314
- }
1315
- }
1316
-
1317
- GenericCallbackBase::~GenericCallbackBase()
1318
- {
1319
- // Out of line to avoid weak vtable
1320
- }
1321
-
1322
- #endif