zeroc-ice 3.6.5 → 3.7.0

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 (752) hide show
  1. checksums.yaml +4 -4
  2. data/BZIP2_LICENSE +42 -0
  3. data/ICE_LICENSE +17 -17
  4. data/LICENSE +12 -12
  5. data/bin/slice2rb +1 -1
  6. data/ext/Communicator.cpp +150 -53
  7. data/ext/Communicator.h +1 -1
  8. data/ext/Config.h +2 -12
  9. data/ext/Connection.cpp +89 -68
  10. data/ext/Connection.h +1 -1
  11. data/ext/Endpoint.cpp +16 -45
  12. data/ext/Endpoint.h +1 -1
  13. data/ext/ImplicitContext.cpp +1 -5
  14. data/ext/ImplicitContext.h +1 -1
  15. data/ext/Init.cpp +4 -1
  16. data/ext/Logger.cpp +1 -1
  17. data/ext/Logger.h +1 -1
  18. data/ext/Operation.cpp +33 -44
  19. data/ext/Operation.h +1 -1
  20. data/ext/Properties.cpp +1 -1
  21. data/ext/Properties.h +1 -1
  22. data/ext/Proxy.cpp +22 -57
  23. data/ext/Proxy.h +1 -1
  24. data/ext/Slice.cpp +5 -5
  25. data/ext/Slice.h +1 -1
  26. data/ext/Types.cpp +244 -171
  27. data/ext/Types.h +118 -66
  28. data/ext/Util.cpp +13 -9
  29. data/ext/Util.h +10 -10
  30. data/ext/ValueFactoryManager.cpp +445 -0
  31. data/ext/ValueFactoryManager.h +100 -0
  32. data/ext/extconf.rb +47 -45
  33. data/ext/ice/bzip2/blocksort.c +1094 -0
  34. data/ext/ice/bzip2/bzlib.c +1572 -0
  35. data/ext/ice/bzip2/bzlib.h +282 -0
  36. data/ext/ice/bzip2/bzlib_private.h +509 -0
  37. data/ext/ice/bzip2/compress.c +672 -0
  38. data/ext/ice/bzip2/crctable.c +104 -0
  39. data/ext/ice/bzip2/decompress.c +646 -0
  40. data/ext/ice/bzip2/huffman.c +205 -0
  41. data/ext/ice/bzip2/randtable.c +84 -0
  42. data/ext/ice/cpp/include/Ice/Application.h +77 -60
  43. data/ext/ice/cpp/include/Ice/AsyncResult.h +34 -318
  44. data/ext/ice/cpp/include/Ice/AsyncResultF.h +4 -2
  45. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +5 -10
  46. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
  47. data/ext/ice/cpp/include/Ice/Buffer.h +10 -10
  48. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +14 -12
  49. data/ext/ice/cpp/include/Ice/Comparable.h +130 -0
  50. data/ext/ice/cpp/include/Ice/Config.h +7 -36
  51. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +107 -11
  52. data/ext/ice/cpp/include/Ice/ConnectionIF.h +5 -1
  53. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +28 -0
  54. data/ext/ice/cpp/include/Ice/{DefaultObjectFactory.h → DefaultValueFactory.h} +28 -14
  55. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +4 -6
  56. data/ext/ice/cpp/include/Ice/Dispatcher.h +14 -13
  57. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +7 -5
  58. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  59. data/ext/ice/cpp/include/Ice/Exception.h +66 -56
  60. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +69 -0
  61. data/ext/ice/cpp/include/Ice/FactoryTable.h +11 -12
  62. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +27 -25
  63. data/ext/ice/cpp/include/Ice/Format.h +6 -1
  64. data/ext/ice/cpp/include/Ice/Functional.h +33 -33
  65. data/ext/ice/cpp/include/Ice/GCObject.h +9 -5
  66. data/ext/ice/cpp/include/Ice/Handle.h +6 -11
  67. data/ext/ice/cpp/include/Ice/Ice.h +9 -5
  68. data/ext/ice/cpp/include/{IceUtil → Ice}/IconvStringConverter.h +108 -62
  69. data/ext/ice/cpp/include/Ice/Incoming.h +109 -33
  70. data/ext/ice/cpp/include/Ice/IncomingAsync.h +63 -23
  71. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +7 -1
  72. data/ext/ice/cpp/include/Ice/Initialize.h +178 -38
  73. data/ext/ice/cpp/include/Ice/InputStream.h +994 -0
  74. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -2
  75. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +46 -0
  76. data/ext/ice/cpp/include/Ice/LocalObject.h +9 -9
  77. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  78. data/ext/ice/cpp/include/Ice/LoggerUtil.h +20 -14
  79. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +114 -65
  80. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +23 -5
  81. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +99 -26
  82. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +17 -4
  83. data/ext/ice/cpp/include/Ice/Object.h +105 -56
  84. data/ext/ice/cpp/include/Ice/ObjectF.h +8 -3
  85. data/ext/ice/cpp/include/Ice/ObserverHelper.h +18 -8
  86. data/ext/ice/cpp/include/Ice/Optional.h +1084 -0
  87. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +655 -84
  88. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +12 -6
  89. data/ext/ice/cpp/include/Ice/OutputStream.h +753 -0
  90. data/ext/ice/cpp/include/Ice/Protocol.h +19 -12
  91. data/ext/ice/cpp/include/Ice/Proxy.h +1329 -717
  92. data/ext/ice/cpp/include/Ice/ProxyF.h +11 -33
  93. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  94. data/ext/ice/cpp/include/Ice/ProxyHandle.h +34 -50
  95. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  96. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +22 -3
  97. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +10 -4
  98. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +6 -1
  99. data/ext/ice/cpp/include/{IceUtil → Ice}/SHA1.h +16 -16
  100. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  101. data/ext/ice/cpp/include/Ice/Service.h +13 -18
  102. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
  103. data/ext/ice/cpp/include/Ice/SlicedData.h +46 -20
  104. data/ext/ice/cpp/include/Ice/SlicedDataF.h +14 -6
  105. data/ext/ice/cpp/include/Ice/StreamHelpers.h +159 -49
  106. data/ext/ice/cpp/include/Ice/StringConverter.h +52 -0
  107. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  108. data/{slice/Ice/ObjectFactoryF.ice → ext/ice/cpp/include/Ice/UUID.h} +9 -7
  109. data/ext/ice/cpp/include/{IceUtil → Ice}/UniquePtr.h +21 -22
  110. data/ext/ice/cpp/include/Ice/UniqueRef.h +98 -0
  111. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +40 -8
  112. data/ext/ice/cpp/include/Ice/Value.h +104 -0
  113. data/{slice/Freeze/ConnectionF.ice → ext/ice/cpp/include/Ice/ValueF.h} +11 -7
  114. data/ext/ice/cpp/include/IceSSL/Config.h +8 -23
  115. data/ext/ice/cpp/include/IceSSL/IceSSL.h +17 -6
  116. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +130 -0
  117. data/ext/ice/cpp/include/IceSSL/Plugin.h +172 -259
  118. data/ext/ice/cpp/include/IceSSL/SChannel.h +66 -0
  119. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +66 -0
  120. data/ext/ice/cpp/include/IceSSL/UWP.h +58 -0
  121. data/ext/ice/cpp/include/IceUtil/Atomic.h +8 -10
  122. data/ext/ice/cpp/include/IceUtil/Cond.h +17 -18
  123. data/ext/ice/cpp/include/IceUtil/Config.h +138 -39
  124. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +97 -0
  125. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +5 -5
  126. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +23 -17
  127. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -3
  128. data/ext/ice/cpp/include/IceUtil/Exception.h +157 -67
  129. data/ext/ice/cpp/include/IceUtil/FileUtil.h +148 -0
  130. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -2
  131. data/ext/ice/cpp/include/IceUtil/Handle.h +11 -11
  132. data/ext/ice/cpp/include/IceUtil/IceUtil.h +4 -10
  133. data/ext/ice/cpp/include/IceUtil/InputUtil.h +3 -3
  134. data/ext/ice/cpp/include/IceUtil/Iterator.h +2 -2
  135. data/ext/ice/cpp/include/IceUtil/Lock.h +8 -10
  136. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -2
  137. data/ext/ice/cpp/include/IceUtil/Mutex.h +17 -11
  138. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +2 -2
  139. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
  140. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +4 -4
  141. data/ext/ice/cpp/include/IceUtil/Optional.h +32 -18
  142. data/ext/ice/cpp/include/IceUtil/Options.h +17 -18
  143. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +55 -29
  144. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +6 -6
  145. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +11 -10
  146. data/ext/ice/cpp/include/IceUtil/Random.h +3 -3
  147. data/ext/ice/cpp/include/IceUtil/RecMutex.h +7 -8
  148. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +58 -0
  149. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -9
  150. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +8 -2
  151. data/ext/ice/cpp/include/IceUtil/Shared.h +5 -7
  152. data/ext/ice/cpp/{src → include}/IceUtil/StopWatch.h +2 -2
  153. data/ext/ice/cpp/include/IceUtil/StringConverter.h +77 -72
  154. data/ext/ice/cpp/include/IceUtil/StringUtil.h +32 -21
  155. data/ext/ice/cpp/include/IceUtil/Thread.h +10 -12
  156. data/ext/ice/cpp/include/IceUtil/ThreadException.h +33 -42
  157. data/ext/ice/cpp/include/IceUtil/Time.h +3 -3
  158. data/ext/ice/cpp/include/IceUtil/Timer.h +14 -13
  159. data/ext/ice/cpp/include/IceUtil/UUID.h +2 -2
  160. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  161. data/ext/ice/cpp/include/{Ice → generated/Ice}/BuiltinSequences.h +41 -8
  162. data/ext/ice/cpp/include/generated/Ice/Communicator.h +364 -0
  163. data/ext/ice/cpp/include/{Ice → generated/Ice}/CommunicatorF.h +40 -8
  164. data/ext/ice/cpp/include/generated/Ice/Connection.h +872 -0
  165. data/ext/ice/cpp/include/{Ice → generated/Ice}/ConnectionF.h +46 -8
  166. data/ext/ice/cpp/include/{Ice → generated/Ice}/Current.h +71 -8
  167. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +582 -0
  168. data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointF.h +62 -8
  169. data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointTypes.h +31 -16
  170. data/ext/ice/cpp/include/{Ice → generated/Ice}/FacetMap.h +23 -8
  171. data/ext/ice/cpp/include/generated/Ice/Identity.h +221 -0
  172. data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContext.h +72 -13
  173. data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContextF.h +40 -8
  174. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +602 -0
  175. data/ext/ice/cpp/include/{Ice → generated/Ice}/InstrumentationF.h +54 -8
  176. data/ext/ice/cpp/include/generated/Ice/LocalException.h +2802 -0
  177. data/ext/ice/cpp/include/generated/Ice/Locator.h +2036 -0
  178. data/ext/ice/cpp/include/{Ice → generated/Ice}/LocatorF.h +53 -12
  179. data/ext/ice/cpp/include/{Ice → generated/Ice}/Logger.h +71 -13
  180. data/ext/ice/cpp/include/{Ice → generated/Ice}/LoggerF.h +40 -8
  181. data/ext/ice/cpp/include/generated/Ice/Metrics.h +2649 -0
  182. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +302 -0
  183. data/ext/ice/cpp/include/{Ice → generated/Ice}/ObjectAdapterF.h +40 -8
  184. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +142 -0
  185. data/ext/ice/cpp/include/generated/Ice/Plugin.h +197 -0
  186. data/ext/ice/cpp/include/{Ice → generated/Ice}/PluginF.h +43 -8
  187. data/ext/ice/cpp/include/generated/Ice/Process.h +536 -0
  188. data/ext/ice/cpp/include/{Ice → generated/Ice}/ProcessF.h +45 -10
  189. data/ext/ice/cpp/include/{Ice → generated/Ice}/Properties.h +88 -21
  190. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +749 -0
  191. data/ext/ice/cpp/include/{Ice → generated/Ice}/PropertiesF.h +48 -10
  192. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1449 -0
  193. data/ext/ice/cpp/include/generated/Ice/Router.h +1032 -0
  194. data/ext/ice/cpp/include/{Ice → generated/Ice}/RouterF.h +45 -10
  195. data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocator.h +65 -13
  196. data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocatorF.h +40 -8
  197. data/ext/ice/cpp/include/{Ice → generated/Ice}/SliceChecksumDict.h +23 -8
  198. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +169 -0
  199. data/ext/ice/cpp/include/generated/Ice/Version.h +334 -0
  200. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +172 -0
  201. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +98 -0
  202. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +156 -0
  203. data/ext/ice/cpp/src/Ice/ACM.cpp +18 -14
  204. data/ext/ice/cpp/src/Ice/ACM.h +9 -2
  205. data/ext/ice/cpp/{include → src}/Ice/ACMF.h +10 -5
  206. data/ext/ice/cpp/src/Ice/Acceptor.cpp +6 -1
  207. data/ext/ice/cpp/src/Ice/Acceptor.h +4 -3
  208. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  209. data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.cpp +9 -9
  210. data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.h +7 -7
  211. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +15 -538
  212. data/ext/ice/cpp/src/Ice/Base64.cpp +11 -11
  213. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  214. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +40 -12
  215. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +15 -10
  216. data/ext/ice/cpp/src/Ice/Buffer.cpp +74 -12
  217. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +20 -6
  218. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +85 -190
  219. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +17 -18
  220. data/ext/ice/cpp/src/Ice/Communicator.cpp +39 -8
  221. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +27 -5
  222. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +271 -104
  223. data/ext/ice/cpp/src/Ice/CommunicatorI.h +84 -28
  224. data/ext/ice/cpp/src/{IceUtil → Ice}/Cond.cpp +3 -3
  225. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +58 -125
  226. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +11 -22
  227. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +6 -2
  228. data/ext/ice/cpp/src/Ice/Connection.cpp +88 -8
  229. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +27 -5
  230. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +158 -80
  231. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +41 -23
  232. data/ext/ice/cpp/{include → src}/Ice/ConnectionFactoryF.h +8 -3
  233. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +707 -653
  234. data/ext/ice/cpp/src/Ice/ConnectionI.h +97 -69
  235. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +2 -15
  236. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +4 -3
  237. data/ext/ice/cpp/src/Ice/Connector.cpp +6 -1
  238. data/ext/ice/cpp/src/Ice/Connector.h +4 -3
  239. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  240. data/ext/ice/cpp/src/{IceUtil → Ice}/CountDownLatch.cpp +4 -4
  241. data/ext/ice/cpp/src/Ice/Current.cpp +29 -6
  242. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +6 -5
  243. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  244. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  245. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +5 -25
  246. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +29 -19
  247. data/ext/ice/cpp/src/Ice/Endpoint.cpp +85 -6
  248. data/ext/ice/cpp/src/Ice/EndpointF.cpp +27 -5
  249. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +152 -1
  250. data/ext/ice/cpp/src/Ice/EndpointFactory.h +72 -6
  251. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  252. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +35 -19
  253. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +10 -4
  254. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  255. data/ext/ice/cpp/src/Ice/EndpointI.cpp +17 -1
  256. data/ext/ice/cpp/src/Ice/EndpointI.h +35 -9
  257. data/ext/ice/cpp/src/Ice/EndpointIF.h +18 -5
  258. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +18 -6
  259. data/ext/ice/cpp/src/Ice/EventHandler.cpp +6 -4
  260. data/ext/ice/cpp/src/Ice/EventHandler.h +13 -8
  261. data/ext/ice/cpp/src/Ice/EventHandlerF.h +5 -2
  262. data/ext/ice/cpp/src/Ice/Exception.cpp +95 -86
  263. data/ext/ice/cpp/src/Ice/FacetMap.cpp +20 -6
  264. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +37 -28
  265. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -4
  266. data/ext/ice/cpp/src/Ice/GCObject.cpp +28 -25
  267. data/ext/ice/cpp/src/Ice/HashUtil.h +2 -3
  268. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -2
  269. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
  270. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +92 -53
  271. data/ext/ice/cpp/src/Ice/IPEndpointI.h +19 -10
  272. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +6 -2
  273. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +56 -0
  274. data/ext/ice/cpp/src/Ice/Identity.cpp +24 -10
  275. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +37 -6
  276. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +27 -5
  277. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +14 -14
  278. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +7 -5
  279. data/ext/ice/cpp/src/Ice/Incoming.cpp +276 -245
  280. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +104 -209
  281. data/ext/ice/cpp/src/Ice/IncomingRequest.h +5 -4
  282. data/ext/ice/cpp/src/Ice/Initialize.cpp +299 -172
  283. data/ext/ice/cpp/src/Ice/InputStream.cpp +2773 -0
  284. data/ext/ice/cpp/src/Ice/Instance.cpp +191 -231
  285. data/ext/ice/cpp/src/Ice/Instance.h +30 -18
  286. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +106 -7
  287. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +27 -5
  288. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +117 -99
  289. data/ext/ice/cpp/src/Ice/InstrumentationI.h +30 -31
  290. data/ext/ice/cpp/src/Ice/LocalException.cpp +1190 -416
  291. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -2
  292. data/ext/ice/cpp/src/Ice/Locator.cpp +1167 -1215
  293. data/ext/ice/cpp/src/Ice/LocatorF.cpp +29 -6
  294. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +129 -163
  295. data/ext/ice/cpp/src/Ice/LocatorInfo.h +29 -29
  296. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  297. data/ext/ice/cpp/src/Ice/Logger.cpp +35 -5
  298. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +178 -73
  299. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +4 -4
  300. data/ext/ice/cpp/src/Ice/LoggerF.cpp +27 -5
  301. data/ext/ice/cpp/src/Ice/LoggerI.cpp +14 -44
  302. data/ext/ice/cpp/src/Ice/LoggerI.h +7 -13
  303. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +10 -12
  304. data/ext/ice/cpp/src/Ice/Metrics.cpp +1059 -1069
  305. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +49 -19
  306. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -2
  307. data/ext/ice/cpp/src/Ice/Network.cpp +534 -170
  308. data/ext/ice/cpp/src/Ice/Network.h +100 -23
  309. data/ext/ice/cpp/src/Ice/NetworkF.h +2 -2
  310. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +21 -14
  311. data/ext/ice/cpp/src/Ice/NetworkProxy.h +5 -2
  312. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  313. data/ext/ice/cpp/src/Ice/Object.cpp +217 -221
  314. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -6
  315. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +27 -5
  316. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +35 -14
  317. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +13 -7
  318. data/ext/ice/cpp/{include → src}/Ice/ObjectAdapterFactoryF.h +5 -1
  319. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +184 -58
  320. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +32 -26
  321. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +37 -6
  322. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +9 -32
  323. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +40 -18
  324. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +14 -5
  325. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +803 -365
  326. data/ext/ice/cpp/src/Ice/OutputStream.cpp +1399 -0
  327. data/ext/ice/cpp/src/Ice/Plugin.cpp +45 -6
  328. data/ext/ice/cpp/src/Ice/PluginF.cpp +27 -5
  329. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +13 -13
  330. data/ext/ice/cpp/src/Ice/PluginManagerI.h +5 -6
  331. data/ext/ice/cpp/src/Ice/Process.cpp +256 -114
  332. data/ext/ice/cpp/src/Ice/ProcessF.cpp +29 -6
  333. data/ext/ice/cpp/src/Ice/Properties.cpp +38 -8
  334. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +340 -328
  335. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +81 -17
  336. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +29 -5
  337. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +29 -6
  338. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +25 -26
  339. data/ext/ice/cpp/src/Ice/PropertiesI.h +8 -11
  340. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +107 -50
  341. data/ext/ice/cpp/src/Ice/PropertyNames.h +4 -2
  342. data/ext/ice/cpp/src/Ice/Protocol.cpp +2 -2
  343. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +37 -2
  344. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +9 -20
  345. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  346. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +6 -1
  347. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +3 -1
  348. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  349. data/ext/ice/cpp/src/Ice/Proxy.cpp +690 -964
  350. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +23 -32
  351. data/ext/ice/cpp/src/Ice/ProxyFactory.h +16 -11
  352. data/ext/ice/cpp/src/Ice/Reference.cpp +75 -69
  353. data/ext/ice/cpp/src/Ice/Reference.h +27 -22
  354. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +18 -21
  355. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +12 -12
  356. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  357. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +18 -4
  358. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
  359. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +672 -552
  360. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  361. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +5 -3
  362. data/ext/ice/cpp/src/Ice/RequestHandler.h +10 -13
  363. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +10 -6
  364. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +2 -2
  365. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +3 -6
  366. data/ext/ice/cpp/src/Ice/ResponseHandler.h +16 -7
  367. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +6 -12
  368. data/ext/ice/cpp/src/Ice/RetryQueue.h +7 -6
  369. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  370. data/ext/ice/cpp/src/Ice/Router.cpp +523 -474
  371. data/ext/ice/cpp/src/Ice/RouterF.cpp +29 -6
  372. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +91 -70
  373. data/ext/ice/cpp/src/Ice/RouterInfo.h +43 -32
  374. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  375. data/ext/ice/cpp/src/{IceUtil → Ice}/SHA1.cpp +21 -21
  376. data/ext/ice/cpp/src/Ice/Selector.cpp +989 -923
  377. data/ext/ice/cpp/src/Ice/Selector.h +100 -147
  378. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +37 -6
  379. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +27 -5
  380. data/ext/ice/cpp/src/Ice/ServantManager.cpp +9 -9
  381. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  382. data/ext/ice/cpp/src/Ice/SharedContext.h +2 -2
  383. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +20 -6
  384. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +2 -2
  385. data/ext/ice/cpp/src/Ice/SlicedData.cpp +72 -20
  386. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +173 -18
  387. data/ext/ice/cpp/src/Ice/StreamSocket.h +13 -4
  388. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +48 -17
  389. data/ext/ice/cpp/src/Ice/StringUtil.h +35 -0
  390. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +8 -4
  391. data/ext/ice/cpp/src/Ice/SysLoggerI.h +2 -3
  392. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +158 -32
  393. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +12 -5
  394. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -7
  395. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -2
  396. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +40 -32
  397. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +11 -8
  398. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +12 -27
  399. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -10
  400. data/ext/ice/cpp/src/{IceUtil → Ice}/Thread.cpp +24 -41
  401. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +175 -267
  402. data/ext/ice/cpp/src/Ice/ThreadPool.h +38 -43
  403. data/ext/ice/cpp/src/{IceUtil → Ice}/Timer.cpp +28 -21
  404. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
  405. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  406. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +2 -2
  407. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +53 -31
  408. data/ext/ice/cpp/src/Ice/TraceUtil.h +13 -6
  409. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -2
  410. data/ext/ice/cpp/src/Ice/Transceiver.h +8 -7
  411. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  412. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +2 -8
  413. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -2
  414. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +92 -31
  415. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +12 -4
  416. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +150 -179
  417. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +15 -17
  418. data/ext/ice/cpp/src/Ice/Value.cpp +81 -0
  419. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +84 -0
  420. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +70 -0
  421. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +42 -0
  422. data/ext/ice/cpp/src/Ice/Version.cpp +24 -14
  423. data/ext/ice/cpp/src/Ice/VirtualShared.h +43 -0
  424. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +3 -9
  425. data/ext/ice/cpp/src/Ice/WSAcceptor.h +3 -7
  426. data/ext/ice/cpp/src/Ice/WSConnector.cpp +5 -11
  427. data/ext/ice/cpp/src/Ice/WSConnector.h +3 -6
  428. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +185 -80
  429. data/ext/ice/cpp/src/Ice/WSEndpoint.h +21 -31
  430. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +41 -37
  431. data/ext/ice/cpp/src/Ice/WSTransceiver.h +7 -21
  432. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +526 -264
  433. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +341 -455
  434. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +86 -26
  435. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +59 -23
  436. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +315 -61
  437. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +83 -36
  438. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +57 -59
  439. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +3 -3
  440. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +396 -159
  441. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +251 -355
  442. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +52 -0
  443. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +526 -131
  444. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +19 -165
  445. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +8 -17
  446. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +284 -0
  447. data/ext/ice/cpp/src/IceSSL/CertificateI.h +69 -0
  448. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +39 -11
  449. data/ext/ice/cpp/src/{Ice/ObjectFactoryF.cpp → IceSSL/ConnectionInfoF.cpp} +31 -9
  450. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +14 -56
  451. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +6 -13
  452. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +205 -197
  453. data/ext/ice/cpp/src/IceSSL/EndpointI.h +41 -33
  454. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +39 -10
  455. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
  456. data/ext/ice/cpp/src/IceSSL/Instance.h +7 -7
  457. data/ext/ice/cpp/src/IceSSL/InstanceF.h +11 -7
  458. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +588 -0
  459. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +117 -152
  460. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +64 -0
  461. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +32 -0
  462. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +132 -0
  463. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +400 -89
  464. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +36 -21
  465. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +291 -0
  466. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +63 -0
  467. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +71 -41
  468. data/ext/ice/cpp/src/IceSSL/PluginI.h +13 -18
  469. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +9 -54
  470. data/ext/ice/cpp/src/IceSSL/RFC2253.h +7 -7
  471. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +585 -0
  472. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +491 -75
  473. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +126 -0
  474. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +32 -0
  475. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +78 -0
  476. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +126 -169
  477. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +19 -22
  478. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +79 -74
  479. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +24 -187
  480. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +4 -19
  481. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +862 -0
  482. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +56 -214
  483. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +60 -0
  484. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +31 -0
  485. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +80 -0
  486. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +137 -144
  487. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +25 -28
  488. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +857 -0
  489. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +46 -0
  490. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +9 -13
  491. data/ext/ice/cpp/src/IceSSL/TrustManager.h +4 -4
  492. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +3 -3
  493. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +271 -0
  494. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +343 -0
  495. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +46 -0
  496. data/ext/ice/cpp/{include/Ice/ObjectFactoryManagerF.h → src/IceSSL/UWPEngineF.h} +13 -8
  497. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +94 -0
  498. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +388 -0
  499. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +76 -0
  500. data/ext/ice/cpp/src/IceSSL/Util.cpp +66 -1256
  501. data/ext/ice/cpp/src/IceSSL/Util.h +48 -137
  502. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +162 -0
  503. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +22 -22
  504. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +34 -26
  505. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +20 -31
  506. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +25 -116
  507. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  508. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  509. data/ext/ice/cpp/src/IceUtil/Options.cpp +23 -46
  510. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +7 -6
  511. data/ext/ice/cpp/src/IceUtil/Random.cpp +13 -13
  512. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +3 -9
  513. data/ext/ice/cpp/src/IceUtil/Shared.cpp +8 -3
  514. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +501 -264
  515. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +540 -235
  516. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +37 -74
  517. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  518. data/ext/ice/cpp/src/IceUtil/UUID.cpp +10 -10
  519. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +98 -97
  520. data/ext/ice/cpp/src/IceUtil/Unicode.h +21 -35
  521. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +838 -0
  522. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +815 -163
  523. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +76 -0
  524. data/ext/ice/cpp/src/Slice/Checksum.cpp +2 -2
  525. data/ext/ice/cpp/{include → src}/Slice/Checksum.h +2 -2
  526. data/ext/ice/cpp/src/Slice/FileTracker.cpp +25 -78
  527. data/ext/ice/cpp/{include → src}/Slice/FileTracker.h +9 -9
  528. data/ext/ice/cpp/src/Slice/Grammar.cpp +1994 -1943
  529. data/ext/ice/cpp/src/Slice/Grammar.h +44 -24
  530. data/ext/ice/cpp/src/Slice/GrammarUtil.h +14 -14
  531. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +2658 -1927
  532. data/ext/ice/cpp/{include → src}/Slice/JavaUtil.h +178 -59
  533. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  534. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  535. data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -1
  536. data/ext/ice/cpp/src/Slice/MD5I.h +1 -1
  537. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +12 -15
  538. data/ext/ice/cpp/{include → src}/Slice/PHPUtil.h +6 -15
  539. data/ext/ice/cpp/src/Slice/Parser.cpp +802 -307
  540. data/ext/ice/cpp/{include → src}/Slice/Parser.h +76 -84
  541. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +43 -21
  542. data/ext/ice/cpp/{include → src}/Slice/Preprocessor.h +7 -12
  543. data/ext/ice/cpp/src/Slice/Python.cpp +207 -86
  544. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +683 -679
  545. data/ext/ice/cpp/{include → src}/Slice/PythonUtil.h +19 -8
  546. data/ext/ice/cpp/src/Slice/Ruby.cpp +38 -34
  547. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +177 -445
  548. data/ext/ice/cpp/{include → src}/Slice/RubyUtil.h +6 -6
  549. data/ext/ice/cpp/src/Slice/Scanner.cpp +218 -306
  550. data/ext/ice/cpp/src/Slice/{Util.cpp → SliceUtil.cpp} +37 -64
  551. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +374 -0
  552. data/ext/ice/cpp/src/Slice/Util.h +54 -0
  553. data/ext/ice/mcpp/Makefile +5 -2
  554. data/ice.gemspec +2 -7
  555. data/lib/Glacier2.rb +1 -1
  556. data/lib/Glacier2/Metrics.rb +7 -46
  557. data/lib/Glacier2/PermissionsVerifier.rb +24 -95
  558. data/lib/Glacier2/PermissionsVerifierF.rb +3 -3
  559. data/lib/Glacier2/Router.rb +32 -74
  560. data/lib/Glacier2/RouterF.rb +3 -3
  561. data/lib/Glacier2/SSLInfo.rb +4 -7
  562. data/lib/Glacier2/Session.rb +88 -307
  563. data/lib/Ice.rb +83 -52
  564. data/lib/Ice/BuiltinSequences.rb +4 -4
  565. data/lib/Ice/Communicator.rb +56 -58
  566. data/lib/Ice/CommunicatorF.rb +3 -3
  567. data/lib/Ice/Connection.rb +153 -162
  568. data/lib/Ice/ConnectionF.rb +3 -3
  569. data/lib/Ice/Current.rb +4 -11
  570. data/lib/Ice/Endpoint.rb +57 -133
  571. data/lib/Ice/EndpointF.rb +3 -3
  572. data/lib/Ice/EndpointTypes.rb +3 -7
  573. data/lib/Ice/FacetMap.rb +4 -4
  574. data/lib/Ice/Identity.rb +5 -8
  575. data/lib/Ice/ImplicitContext.rb +5 -34
  576. data/lib/Ice/ImplicitContextF.rb +3 -3
  577. data/lib/Ice/Instrumentation.rb +23 -275
  578. data/lib/Ice/InstrumentationF.rb +3 -3
  579. data/lib/Ice/LocalException.rb +95 -141
  580. data/lib/Ice/Locator.rb +51 -165
  581. data/lib/Ice/LocatorF.rb +3 -3
  582. data/lib/Ice/Logger.rb +5 -34
  583. data/lib/Ice/LoggerF.rb +3 -3
  584. data/lib/Ice/Metrics.rb +61 -416
  585. data/lib/Ice/ObjectAdapter.rb +34 -0
  586. data/lib/Ice/ObjectAdapterF.rb +3 -3
  587. data/lib/Ice/ObjectFactory.rb +5 -30
  588. data/lib/Ice/Plugin.rb +7 -60
  589. data/lib/Ice/PluginF.rb +3 -3
  590. data/lib/Ice/Process.rb +16 -52
  591. data/lib/Ice/ProcessF.rb +3 -3
  592. data/lib/Ice/Properties.rb +5 -41
  593. data/lib/Ice/PropertiesAdmin.rb +19 -56
  594. data/lib/Ice/PropertiesF.rb +3 -3
  595. data/lib/Ice/RemoteLogger.rb +34 -115
  596. data/lib/Ice/Router.rb +29 -101
  597. data/lib/Ice/RouterF.rb +3 -3
  598. data/lib/Ice/ServantLocator.rb +31 -0
  599. data/lib/Ice/{ObjectFactoryF.rb → ServantLocatorF.rb} +6 -6
  600. data/lib/Ice/SliceChecksumDict.rb +3 -3
  601. data/lib/Ice/ValueFactory.rb +33 -0
  602. data/lib/Ice/Version.rb +5 -11
  603. data/lib/IceBox.rb +1 -1
  604. data/lib/IceBox/IceBox.rb +44 -148
  605. data/lib/IceGrid.rb +1 -4
  606. data/lib/IceGrid/Admin.rb +551 -427
  607. data/lib/IceGrid/Descriptor.rb +62 -529
  608. data/lib/IceGrid/Exception.rb +24 -45
  609. data/lib/IceGrid/FileParser.rb +14 -50
  610. data/lib/IceGrid/PluginFacade.rb +40 -0
  611. data/lib/IceGrid/Registry.rb +151 -58
  612. data/lib/IceGrid/Session.rb +25 -64
  613. data/lib/IceGrid/UserAccountMapper.rb +14 -50
  614. data/lib/IcePatch2.rb +1 -1
  615. data/lib/IcePatch2/FileInfo.rb +5 -11
  616. data/lib/IcePatch2/FileServer.rb +33 -76
  617. data/lib/IceStorm.rb +1 -1
  618. data/lib/IceStorm/IceStorm.rb +79 -206
  619. data/lib/IceStorm/Metrics.rb +11 -89
  620. data/slice/Glacier2/Metrics.ice +8 -4
  621. data/slice/Glacier2/PermissionsVerifier.ice +10 -7
  622. data/slice/Glacier2/PermissionsVerifierF.ice +7 -4
  623. data/slice/Glacier2/Router.ice +10 -8
  624. data/slice/Glacier2/RouterF.ice +7 -4
  625. data/slice/Glacier2/SSLInfo.ice +8 -5
  626. data/slice/Glacier2/Session.ice +15 -13
  627. data/slice/Ice/BuiltinSequences.ice +7 -4
  628. data/slice/Ice/Communicator.ice +141 -66
  629. data/slice/Ice/CommunicatorF.ice +7 -4
  630. data/slice/Ice/Connection.ice +183 -86
  631. data/slice/Ice/ConnectionF.ice +7 -4
  632. data/slice/Ice/Current.ice +13 -9
  633. data/slice/Ice/Endpoint.ice +63 -14
  634. data/slice/Ice/EndpointF.ice +7 -4
  635. data/slice/Ice/EndpointTypes.ice +8 -6
  636. data/slice/Ice/FacetMap.ice +7 -4
  637. data/slice/Ice/Identity.ice +13 -5
  638. data/slice/Ice/ImplicitContext.ice +20 -18
  639. data/slice/Ice/ImplicitContextF.ice +7 -4
  640. data/slice/Ice/Instrumentation.ice +20 -19
  641. data/slice/Ice/InstrumentationF.ice +8 -5
  642. data/slice/Ice/LocalException.ice +87 -87
  643. data/slice/Ice/Locator.ice +19 -18
  644. data/slice/Ice/LocatorF.ice +7 -4
  645. data/slice/Ice/Logger.ice +9 -7
  646. data/slice/Ice/LoggerF.ice +7 -4
  647. data/slice/Ice/Metrics.ice +18 -14
  648. data/slice/Ice/ObjectAdapter.ice +30 -13
  649. data/slice/Ice/ObjectAdapterF.ice +7 -4
  650. data/slice/Ice/ObjectFactory.ice +15 -12
  651. data/slice/Ice/Plugin.ice +9 -6
  652. data/slice/Ice/PluginF.ice +8 -5
  653. data/slice/Ice/Process.ice +9 -6
  654. data/slice/Ice/ProcessF.ice +7 -4
  655. data/slice/Ice/Properties.ice +15 -12
  656. data/slice/Ice/PropertiesAdmin.ice +9 -5
  657. data/slice/Ice/PropertiesF.ice +7 -4
  658. data/slice/Ice/RemoteLogger.ice +33 -24
  659. data/slice/Ice/Router.ice +16 -7
  660. data/slice/Ice/RouterF.ice +7 -4
  661. data/slice/Ice/ServantLocator.ice +13 -10
  662. data/slice/Ice/ServantLocatorF.ice +7 -4
  663. data/slice/Ice/SliceChecksumDict.ice +7 -4
  664. data/slice/Ice/ValueFactory.ice +127 -0
  665. data/slice/Ice/Version.ice +9 -5
  666. data/slice/IceBT/ConnectionInfo.ice +53 -0
  667. data/slice/IceBT/EndpointInfo.ice +51 -0
  668. data/slice/IceBT/Types.ice +39 -0
  669. data/slice/IceBox/IceBox.ice +20 -21
  670. data/slice/IceDiscovery/IceDiscovery.ice +9 -5
  671. data/slice/IceGrid/Admin.ice +390 -30
  672. data/slice/IceGrid/Descriptor.ice +37 -29
  673. data/slice/IceGrid/Exception.ice +33 -27
  674. data/slice/IceGrid/FileParser.ice +9 -6
  675. data/slice/IceGrid/PluginFacade.ice +11 -9
  676. data/slice/IceGrid/Registry.ice +139 -16
  677. data/slice/IceGrid/Session.ice +10 -8
  678. data/slice/IceGrid/UserAccountMapper.ice +9 -6
  679. data/slice/IceIAP/ConnectionInfo.ice +70 -0
  680. data/slice/IceIAP/EndpointInfo.ice +64 -0
  681. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +9 -7
  682. data/slice/IcePatch2/FileInfo.ice +9 -8
  683. data/slice/IcePatch2/FileServer.ice +17 -13
  684. data/slice/IceSSL/ConnectionInfo.ice +14 -17
  685. data/slice/IceSSL/ConnectionInfoF.ice +24 -0
  686. data/slice/IceSSL/EndpointInfo.ice +9 -30
  687. data/slice/IceStorm/IceStorm.ice +22 -18
  688. data/slice/IceStorm/Metrics.ice +9 -5
  689. metadata +154 -120
  690. data/ext/ObjectFactory.cpp +0 -140
  691. data/ext/ObjectFactory.h +0 -50
  692. data/ext/ice/cpp/include/Ice/BasicStream.h +0 -1335
  693. data/ext/ice/cpp/include/Ice/Communicator.h +0 -200
  694. data/ext/ice/cpp/include/Ice/Connection.h +0 -497
  695. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +0 -62
  696. data/ext/ice/cpp/include/Ice/Endpoint.h +0 -341
  697. data/ext/ice/cpp/include/Ice/Identity.h +0 -168
  698. data/ext/ice/cpp/include/Ice/Instrumentation.h +0 -365
  699. data/ext/ice/cpp/include/Ice/LocalException.h +0 -1030
  700. data/ext/ice/cpp/include/Ice/Locator.h +0 -2193
  701. data/ext/ice/cpp/include/Ice/Metrics.h +0 -2974
  702. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +0 -168
  703. data/ext/ice/cpp/include/Ice/ObjectFactory.h +0 -92
  704. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +0 -66
  705. data/ext/ice/cpp/include/Ice/Outgoing.h +0 -225
  706. data/ext/ice/cpp/include/Ice/Plugin.h +0 -125
  707. data/ext/ice/cpp/include/Ice/Process.h +0 -574
  708. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +0 -830
  709. data/ext/ice/cpp/include/Ice/RemoteLogger.h +0 -1500
  710. data/ext/ice/cpp/include/Ice/Router.h +0 -1159
  711. data/ext/ice/cpp/include/Ice/Stream.h +0 -447
  712. data/ext/ice/cpp/include/Ice/StreamF.h +0 -30
  713. data/ext/ice/cpp/include/Ice/Version.h +0 -262
  714. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +0 -158
  715. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +0 -142
  716. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +0 -119
  717. data/ext/ice/cpp/include/IceUtil/Cache.h +0 -362
  718. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +0 -65
  719. data/ext/ice/cpp/include/Slice/CsUtil.h +0 -92
  720. data/ext/ice/cpp/include/Slice/DotNetNames.h +0 -34
  721. data/ext/ice/cpp/include/Slice/ObjCUtil.h +0 -127
  722. data/ext/ice/cpp/include/Slice/Util.h +0 -56
  723. data/ext/ice/cpp/src/Ice/BasicStream.cpp +0 -3428
  724. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +0 -62
  725. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +0 -139
  726. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +0 -43
  727. data/ext/ice/cpp/src/Ice/Outgoing.cpp +0 -694
  728. data/ext/ice/cpp/src/Ice/Stream.cpp +0 -53
  729. data/ext/ice/cpp/src/Ice/StreamI.cpp +0 -832
  730. data/ext/ice/cpp/src/Ice/StreamI.h +0 -198
  731. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +0 -1336
  732. data/ext/ice/cpp/src/IceUtil/Exception.cpp +0 -792
  733. data/ext/ice/cpp/src/IceUtil/FileUtil.h +0 -185
  734. data/ext/ice/cpp/src/Slice/CsUtil.cpp +0 -2660
  735. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +0 -146
  736. data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +0 -1310
  737. data/lib/IceGrid/Locator.rb +0 -106
  738. data/lib/IceGrid/Observer.rb +0 -572
  739. data/lib/IceGrid/Query.rb +0 -169
  740. data/slice/Freeze/BackgroundSaveEvictor.ice +0 -111
  741. data/slice/Freeze/CatalogData.ice +0 -49
  742. data/slice/Freeze/Connection.ice +0 -121
  743. data/slice/Freeze/DB.ice +0 -37
  744. data/slice/Freeze/Evictor.ice +0 -346
  745. data/slice/Freeze/EvictorF.ice +0 -22
  746. data/slice/Freeze/EvictorStorage.ice +0 -72
  747. data/slice/Freeze/Exception.ice +0 -100
  748. data/slice/Freeze/Transaction.ice +0 -58
  749. data/slice/Freeze/TransactionalEvictor.ice +0 -50
  750. data/slice/IceGrid/Locator.ice +0 -57
  751. data/slice/IceGrid/Observer.ice +0 -395
  752. data/slice/IceGrid/Query.ice +0 -131
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -14,6 +14,8 @@
14
14
  #include <Ice/Communicator.h>
15
15
  #include <Ice/ObjectAdapter.h>
16
16
 
17
+ #include <iterator>
18
+
17
19
  using namespace std;
18
20
  using namespace Ice;
19
21
  using namespace IceDiscovery;
@@ -23,11 +25,20 @@ LocatorRegistryI::LocatorRegistryI(const Ice::CommunicatorPtr& com) :
23
25
  {
24
26
  }
25
27
 
26
- void
27
- LocatorRegistryI::setAdapterDirectProxy_async(const AMD_LocatorRegistry_setAdapterDirectProxyPtr& cb,
28
- const std::string& adapterId,
29
- const ObjectPrx& proxy,
28
+ #ifdef ICE_CPP11_MAPPING
29
+ void
30
+ LocatorRegistryI::setAdapterDirectProxyAsync(string adapterId,
31
+ shared_ptr<ObjectPrx> proxy,
32
+ function<void()> response,
33
+ function<void(exception_ptr)>,
34
+ const Ice::Current&)
35
+ #else
36
+ void
37
+ LocatorRegistryI::setAdapterDirectProxy_async(const AMD_LocatorRegistry_setAdapterDirectProxyPtr& cb,
38
+ const std::string& adapterId,
39
+ const ObjectPrxPtr& proxy,
30
40
  const Current&)
41
+ #endif
31
42
  {
32
43
  Lock sync(*this);
33
44
  if(proxy)
@@ -38,16 +49,30 @@ LocatorRegistryI::setAdapterDirectProxy_async(const AMD_LocatorRegistry_setAdapt
38
49
  {
39
50
  _adapters.erase(adapterId);
40
51
  }
52
+ #ifdef ICE_CPP11_MAPPING
53
+ response();
54
+ #else
41
55
  cb->ice_response();
56
+ #endif
42
57
  }
43
58
 
59
+ #ifdef ICE_CPP11_MAPPING
60
+ void
61
+ LocatorRegistryI::setReplicatedAdapterDirectProxyAsync(string adapterId,
62
+ string replicaGroupId,
63
+ shared_ptr<ObjectPrx> proxy,
64
+ function<void()> response,
65
+ function<void(exception_ptr)>,
66
+ const Ice::Current&)
67
+ #else
44
68
  void
45
69
  LocatorRegistryI::setReplicatedAdapterDirectProxy_async(
46
70
  const AMD_LocatorRegistry_setReplicatedAdapterDirectProxyPtr& cb,
47
71
  const std::string& adapterId,
48
72
  const std::string& replicaGroupId,
49
- const ObjectPrx& proxy,
73
+ const ObjectPrxPtr& proxy,
50
74
  const Current&)
75
+ #endif
51
76
  {
52
77
  Lock sync(*this);
53
78
  if(proxy)
@@ -73,19 +98,35 @@ LocatorRegistryI::setReplicatedAdapterDirectProxy_async(
73
98
  }
74
99
  }
75
100
  }
101
+ #ifdef ICE_CPP11_MAPPING
102
+ response();
103
+ #else
76
104
  cb->ice_response();
105
+ #endif
77
106
  }
78
107
 
108
+ #ifdef ICE_CPP11_MAPPING
79
109
  void
80
- LocatorRegistryI::setServerProcessProxy_async(const AMD_LocatorRegistry_setServerProcessProxyPtr& cb,
81
- const std::string&,
82
- const ProcessPrx&,
110
+ LocatorRegistryI::setServerProcessProxyAsync(string,
111
+ shared_ptr<ProcessPrx>,
112
+ function<void()> response,
113
+ function<void(exception_ptr)>,
114
+ const Ice::Current&)
115
+ {
116
+ response();
117
+ }
118
+ #else
119
+ void
120
+ LocatorRegistryI::setServerProcessProxy_async(const AMD_LocatorRegistry_setServerProcessProxyPtr& cb,
121
+ const std::string&,
122
+ const ProcessPrxPtr&,
83
123
  const Current&)
84
124
  {
85
125
  cb->ice_response();
86
126
  }
127
+ #endif
87
128
 
88
- Ice::ObjectPrx
129
+ Ice::ObjectPrxPtr
89
130
  LocatorRegistryI::findObject(const Ice::Identity& id) const
90
131
  {
91
132
  Lock sync(*this);
@@ -94,7 +135,7 @@ LocatorRegistryI::findObject(const Ice::Identity& id) const
94
135
  return 0;
95
136
  }
96
137
 
97
- Ice::ObjectPrx prx = _wellKnownProxy->ice_identity(id);
138
+ Ice::ObjectPrxPtr prx = _wellKnownProxy->ice_identity(id);
98
139
 
99
140
  vector<string> adapterIds;
100
141
  for(map<string, set<string> >::const_iterator p = _replicaGroups.begin(); p != _replicaGroups.end(); ++p)
@@ -112,7 +153,7 @@ LocatorRegistryI::findObject(const Ice::Identity& id) const
112
153
 
113
154
  if(adapterIds.empty())
114
155
  {
115
- for(map<string, Ice::ObjectPrx>::const_iterator p = _adapters.begin(); p != _adapters.end(); ++p)
156
+ for(map<string, Ice::ObjectPrxPtr>::const_iterator p = _adapters.begin(); p != _adapters.end(); ++p)
116
157
  {
117
158
  try
118
159
  {
@@ -135,12 +176,12 @@ LocatorRegistryI::findObject(const Ice::Identity& id) const
135
176
  return prx->ice_adapterId(adapterIds[0]);
136
177
  }
137
178
 
138
- Ice::ObjectPrx
179
+ Ice::ObjectPrxPtr
139
180
  LocatorRegistryI::findAdapter(const string& adapterId, bool& isReplicaGroup) const
140
181
  {
141
182
  Lock sync(*this);
142
183
 
143
- map<string, Ice::ObjectPrx>::const_iterator p = _adapters.find(adapterId);
184
+ map<string, Ice::ObjectPrxPtr>::const_iterator p = _adapters.find(adapterId);
144
185
  if(p != _adapters.end())
145
186
  {
146
187
  isReplicaGroup = false;
@@ -151,10 +192,10 @@ LocatorRegistryI::findAdapter(const string& adapterId, bool& isReplicaGroup) con
151
192
  if(q != _replicaGroups.end())
152
193
  {
153
194
  Ice::EndpointSeq endpoints;
154
- Ice::ObjectPrx prx;
195
+ Ice::ObjectPrxPtr prx;
155
196
  for(set<string>::const_iterator r = q->second.begin(); r != q->second.end(); ++r)
156
197
  {
157
- map<string, Ice::ObjectPrx>::const_iterator s = _adapters.find(*r);
198
+ map<string, Ice::ObjectPrxPtr>::const_iterator s = _adapters.find(*r);
158
199
  if(s == _adapters.end())
159
200
  {
160
201
  continue; // TODO: Inconsistency
@@ -175,34 +216,53 @@ LocatorRegistryI::findAdapter(const string& adapterId, bool& isReplicaGroup) con
175
216
  return prx->ice_endpoints(endpoints);
176
217
  }
177
218
  }
178
-
219
+
179
220
  isReplicaGroup = false;
180
221
  return 0;
181
222
  }
182
223
 
183
- LocatorI::LocatorI(const LookupIPtr& lookup, const LocatorRegistryPrx& registry) : _lookup(lookup), _registry(registry)
224
+ LocatorI::LocatorI(const LookupIPtr& lookup, const LocatorRegistryPrxPtr& registry) : _lookup(lookup), _registry(registry)
225
+ {
226
+ }
227
+
228
+ #ifdef ICE_CPP11_MAPPING
229
+ void
230
+ LocatorI::findObjectByIdAsync(Ice::Identity id,
231
+ function<void(const shared_ptr<ObjectPrx>&)> response,
232
+ function<void(exception_ptr)> ex,
233
+ const Ice::Current&) const
184
234
  {
235
+ _lookup->findObject(make_pair(response, ex), id);
185
236
  }
186
237
 
187
- void
188
- LocatorI::findObjectById_async(const AMD_Locator_findObjectByIdPtr& cb,
189
- const Identity& id,
238
+ void
239
+ LocatorI::findAdapterByIdAsync(string adapterId,
240
+ function<void(const shared_ptr<ObjectPrx>&)> response,
241
+ function<void(exception_ptr)> ex,
242
+ const Ice::Current&) const
243
+ {
244
+ _lookup->findAdapter(make_pair(response, ex), adapterId);
245
+ }
246
+ #else
247
+ void
248
+ LocatorI::findObjectById_async(const AMD_Locator_findObjectByIdPtr& cb,
249
+ const Identity& id,
190
250
  const Current&) const
191
251
  {
192
252
  _lookup->findObject(cb, id);
193
253
  }
194
254
 
195
- void
196
- LocatorI::findAdapterById_async(const AMD_Locator_findAdapterByIdPtr& cb,
197
- const std::string& adapterId,
255
+ void
256
+ LocatorI::findAdapterById_async(const AMD_Locator_findAdapterByIdPtr& cb,
257
+ const std::string& adapterId,
198
258
  const Current&) const
199
259
  {
200
260
  _lookup->findAdapter(cb, adapterId);
201
261
  }
262
+ #endif
202
263
 
203
- LocatorRegistryPrx
264
+ LocatorRegistryPrxPtr
204
265
  LocatorI::getRegistry(const Current&) const
205
266
  {
206
267
  return _registry;
207
268
  }
208
-
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -23,54 +23,90 @@ class LocatorRegistryI : public Ice::LocatorRegistry, private IceUtil::Mutex
23
23
  public:
24
24
 
25
25
  LocatorRegistryI(const Ice::CommunicatorPtr&);
26
-
27
- virtual void
28
- setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setAdapterDirectProxyPtr&, const std::string&,
26
+
27
+ #ifdef ICE_CPP11_MAPPING
28
+ virtual void
29
+ setAdapterDirectProxyAsync(std::string,
30
+ std::shared_ptr<Ice::ObjectPrx>,
31
+ std::function<void()>,
32
+ std::function<void(std::exception_ptr)>,
33
+ const Ice::Current&);
34
+
35
+ virtual void
36
+ setReplicatedAdapterDirectProxyAsync(std::string,
37
+ std::string,
38
+ std::shared_ptr<Ice::ObjectPrx>,
39
+ std::function<void()>,
40
+ std::function<void(std::exception_ptr)>,
41
+ const Ice::Current&);
42
+
43
+ virtual void
44
+ setServerProcessProxyAsync(std::string,
45
+ std::shared_ptr<Ice::ProcessPrx>,
46
+ std::function<void()>,
47
+ std::function<void(std::exception_ptr)>,
48
+ const Ice::Current&);
49
+ #else
50
+ virtual void
51
+ setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setAdapterDirectProxyPtr&, const std::string&,
29
52
  const Ice::ObjectPrx&, const Ice::Current&);
30
53
 
31
54
  virtual void
32
55
  setReplicatedAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setReplicatedAdapterDirectProxyPtr&,
33
- const std::string&, const std::string&, const Ice::ObjectPrx&,
56
+ const std::string&, const std::string&, const Ice::ObjectPrx&,
34
57
  const Ice::Current&);
35
58
 
36
- virtual void
37
- setServerProcessProxy_async(const Ice::AMD_LocatorRegistry_setServerProcessProxyPtr&, const std::string&,
59
+ virtual void
60
+ setServerProcessProxy_async(const Ice::AMD_LocatorRegistry_setServerProcessProxyPtr&, const std::string&,
38
61
  const Ice::ProcessPrx&, const Ice::Current&);
39
-
40
- Ice::ObjectPrx findObject(const Ice::Identity&) const;
41
- Ice::ObjectPrx findAdapter(const std::string&, bool&) const;
62
+ #endif
63
+ Ice::ObjectPrxPtr findObject(const Ice::Identity&) const;
64
+ Ice::ObjectPrxPtr findAdapter(const std::string&, bool&) const;
42
65
 
43
66
  private:
44
67
 
45
- const Ice::ObjectPrx _wellKnownProxy;
46
- std::map<std::string, Ice::ObjectPrx> _adapters;
68
+ const Ice::ObjectPrxPtr _wellKnownProxy;
69
+ std::map<std::string, Ice::ObjectPrxPtr> _adapters;
47
70
  std::map<std::string, std::set<std::string> > _replicaGroups;
48
71
  };
49
- typedef IceInternal::Handle<LocatorRegistryI> LocatorRegistryIPtr;
72
+ ICE_DEFINE_PTR(LocatorRegistryIPtr, LocatorRegistryI);
50
73
 
51
74
  class LookupI;
52
- typedef IceInternal::Handle<LookupI> LookupIPtr;
75
+ ICE_DEFINE_PTR(LookupIPtr, LookupI);
53
76
 
54
77
  class LocatorI : public Ice::Locator
55
78
  {
56
79
  public:
57
80
 
58
- LocatorI(const LookupIPtr&, const Ice::LocatorRegistryPrx&);
81
+ LocatorI(const LookupIPtr&, const Ice::LocatorRegistryPrxPtr&);
59
82
 
60
- virtual void
61
- findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr&, const Ice::Identity&,
83
+ #ifdef ICE_CPP11_MAPPING
84
+ virtual void
85
+ findObjectByIdAsync(Ice::Identity,
86
+ std::function<void(const std::shared_ptr<Ice::ObjectPrx>&)>,
87
+ std::function<void(std::exception_ptr)>,
88
+ const Ice::Current&) const;
89
+
90
+ virtual void
91
+ findAdapterByIdAsync(std::string,
92
+ std::function<void(const std::shared_ptr<Ice::ObjectPrx>&)>,
93
+ std::function<void(std::exception_ptr)>,
94
+ const Ice::Current&) const;
95
+ #else
96
+ virtual void
97
+ findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr&, const Ice::Identity&,
62
98
  const Ice::Current&) const;
63
99
 
64
- virtual void
65
- findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr&, const std::string&,
100
+ virtual void
101
+ findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr&, const std::string&,
66
102
  const Ice::Current&) const;
67
-
68
- virtual Ice::LocatorRegistryPrx getRegistry(const Ice::Current&) const;
103
+ #endif
104
+ virtual Ice::LocatorRegistryPrxPtr getRegistry(const Ice::Current&) const;
69
105
 
70
106
  private:
71
-
107
+
72
108
  LookupIPtr _lookup;
73
- Ice::LocatorRegistryPrx _registry;
109
+ Ice::LocatorRegistryPrxPtr _registry;
74
110
  };
75
111
 
76
112
  };
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -12,48 +12,145 @@
12
12
  #include <Ice/Communicator.h>
13
13
  #include <Ice/LocalException.h>
14
14
  #include <Ice/Initialize.h>
15
- #include <IceUtil/UUID.h>
15
+ #include <Ice/LoggerUtil.h>
16
+ #include <Ice/UUID.h>
17
+
16
18
  #include <IceDiscovery/LookupI.h>
19
+ #include <iterator>
17
20
 
18
21
  using namespace std;
19
22
  using namespace Ice;
20
23
  using namespace IceDiscovery;
21
24
 
25
+ #ifndef ICE_CPP11_MAPPING
26
+ namespace
27
+ {
28
+
29
+ class AdapterCallbackI : public IceUtil::Shared
30
+ {
31
+ public:
32
+
33
+ AdapterCallbackI(const LookupIPtr& lookup, const AdapterRequestPtr& request) : _lookup(lookup), _request(request)
34
+ {
35
+ }
36
+
37
+ void
38
+ completed(const Ice::AsyncResultPtr& result)
39
+ {
40
+ try
41
+ {
42
+ result->throwLocalException();
43
+ }
44
+ catch(const Ice::LocalException& ex)
45
+ {
46
+ _lookup->adapterRequestException(_request, ex);
47
+ }
48
+ }
49
+
50
+ private:
51
+
52
+ LookupIPtr _lookup;
53
+ AdapterRequestPtr _request;
54
+ };
55
+
56
+ class ObjectCallbackI : public IceUtil::Shared
57
+ {
58
+ public:
59
+
60
+ ObjectCallbackI(const LookupIPtr& lookup, const ObjectRequestPtr& request) : _lookup(lookup), _request(request)
61
+ {
62
+ }
63
+
64
+ void
65
+ completed(const Ice::AsyncResultPtr& result)
66
+ {
67
+ try
68
+ {
69
+ result->throwLocalException();
70
+ }
71
+ catch(const Ice::LocalException& ex)
72
+ {
73
+ _lookup->objectRequestException(_request, ex);
74
+ }
75
+ }
76
+
77
+ private:
78
+
79
+ LookupIPtr _lookup;
80
+ ObjectRequestPtr _request;
81
+ };
82
+
83
+ }
84
+ #endif
85
+
22
86
  IceDiscovery::Request::Request(const LookupIPtr& lookup, int retryCount) :
23
- _lookup(lookup), _nRetry(retryCount), _requestId(IceUtil::generateUUID())
87
+ _lookup(lookup), _requestId(Ice::generateUUID()), _retryCount(retryCount), _lookupCount(0), _failureCount(0)
24
88
  {
25
89
  }
26
90
 
27
91
  bool
28
92
  IceDiscovery::Request::retry()
29
93
  {
30
- return --_nRetry >= 0;
94
+ return --_retryCount >= 0;
95
+ }
96
+
97
+ void
98
+ IceDiscovery::Request::invoke(const string& domainId, const vector<pair<LookupPrxPtr, LookupReplyPrxPtr> >& lookups)
99
+ {
100
+ _lookupCount = lookups.size();
101
+ _failureCount = 0;
102
+ Ice::Identity id;
103
+ id.name = _requestId;
104
+ for(vector<pair<LookupPrxPtr, LookupReplyPrxPtr> >::const_iterator p = lookups.begin(); p != lookups.end(); ++p)
105
+ {
106
+ invokeWithLookup(domainId, p->first, ICE_UNCHECKED_CAST(LookupReplyPrx, p->second->ice_identity(id)));
107
+ }
108
+ }
109
+
110
+ bool
111
+ IceDiscovery::Request::exception()
112
+ {
113
+ //
114
+ // If all the invocations on all the lookup proxies failed, report it to the locator.
115
+ //
116
+ if(++_failureCount == _lookupCount)
117
+ {
118
+ finished(0);
119
+ return true;
120
+ }
121
+ return false;
31
122
  }
32
123
 
33
- const string&
124
+ string
34
125
  IceDiscovery::Request::getRequestId() const
35
126
  {
36
127
  return _requestId;
37
128
  }
38
129
 
130
+ AdapterRequest::AdapterRequest(const LookupIPtr& lookup, const std::string& adapterId, int retryCount) :
131
+ RequestT<std::string, AdapterCB>(lookup, adapterId, retryCount),
132
+ _start(IceUtil::Time::now())
133
+ {
134
+ }
135
+
39
136
  bool
40
137
  AdapterRequest::retry()
41
138
  {
42
- return _proxies.empty() && --_nRetry >= 0;
139
+ return _proxies.empty() && --_retryCount >= 0;
43
140
  }
44
141
 
45
142
  bool
46
- AdapterRequest::response(const Ice::ObjectPrx& proxy, bool isReplicaGroup)
143
+ AdapterRequest::response(const Ice::ObjectPrxPtr& proxy, bool isReplicaGroup)
47
144
  {
48
145
  if(isReplicaGroup)
49
146
  {
50
147
  if(_latency == IceUtil::Time())
51
148
  {
52
149
  _latency = (IceUtil::Time::now() - _start) * _lookup->latencyMultiplier();
53
- _lookup->timer()->cancel(this);
54
- _lookup->timer()->schedule(this, _latency);
150
+ _lookup->timer()->cancel(ICE_SHARED_FROM_THIS);
151
+ _lookup->timer()->schedule(ICE_SHARED_FROM_THIS, _latency);
55
152
  }
56
- _proxies.push_back(proxy);
153
+ _proxies.insert(proxy);
57
154
  return false;
58
155
  }
59
156
  finished(proxy);
@@ -61,60 +158,123 @@ AdapterRequest::response(const Ice::ObjectPrx& proxy, bool isReplicaGroup)
61
158
  }
62
159
 
63
160
  void
64
- AdapterRequest::finished(const Ice::ObjectPrx& proxy)
161
+ AdapterRequest::finished(const ObjectPrxPtr& proxy)
65
162
  {
66
163
  if(proxy || _proxies.empty())
67
164
  {
68
- RequestT<std::string, Ice::AMD_Locator_findAdapterByIdPtr>::finished(proxy);
69
- return;
165
+ RequestT<string, AdapterCB>::finished(proxy);
70
166
  }
71
167
  else if(_proxies.size() == 1)
72
168
  {
73
- RequestT<std::string, Ice::AMD_Locator_findAdapterByIdPtr>::finished(_proxies[0]);
74
- return;
169
+ RequestT<string, AdapterCB>::finished(*_proxies.begin());
75
170
  }
76
-
77
- Ice::EndpointSeq endpoints;
78
- Ice::ObjectPrx prx;
79
- for(vector<Ice::ObjectPrx>::const_iterator p = _proxies.begin(); p != _proxies.end(); ++p)
171
+ else
80
172
  {
81
- if(!prx)
173
+ EndpointSeq endpoints;
174
+ ObjectPrxPtr prx;
175
+ for(set<ObjectPrxPtr>::const_iterator p = _proxies.begin(); p != _proxies.end(); ++p)
82
176
  {
83
- prx = *p;
177
+ if(!prx)
178
+ {
179
+ prx = *p;
180
+ }
181
+ Ice::EndpointSeq endpts = (*p)->ice_getEndpoints();
182
+ copy(endpts.begin(), endpts.end(), back_inserter(endpoints));
84
183
  }
85
- Ice::EndpointSeq endpts = (*p)->ice_getEndpoints();
86
- copy(endpts.begin(), endpts.end(), back_inserter(endpoints));
184
+ RequestT<string, AdapterCB>::finished(prx->ice_endpoints(endpoints));
87
185
  }
88
- RequestT<std::string, Ice::AMD_Locator_findAdapterByIdPtr>::finished(prx->ice_endpoints(endpoints));
186
+ }
187
+
188
+ void
189
+ AdapterRequest::invokeWithLookup(const string& domainId, const LookupPrxPtr& lookup, const LookupReplyPrxPtr& lookupReply)
190
+ {
191
+ #ifdef ICE_CPP11_MAPPING
192
+ auto self = ICE_SHARED_FROM_THIS;
193
+ lookup->findAdapterByIdAsync(domainId, _id, lookupReply, nullptr, [self](exception_ptr ex)
194
+ {
195
+ try
196
+ {
197
+ rethrow_exception(ex);
198
+ }
199
+ catch(const Ice::LocalException& ex)
200
+ {
201
+ self->_lookup->adapterRequestException(self, ex);
202
+ }
203
+ });
204
+ #else
205
+ lookup->begin_findAdapterById(domainId, _id, lookupReply, newCallback(new AdapterCallbackI(_lookup, this),
206
+ &AdapterCallbackI::completed));
207
+ #endif
89
208
  }
90
209
 
91
210
  void
92
211
  AdapterRequest::runTimerTask()
93
212
  {
94
- _lookup->adapterRequestTimedOut(this);
213
+ _lookup->adapterRequestTimedOut(ICE_SHARED_FROM_THIS);
214
+ }
215
+
216
+ ObjectRequest::ObjectRequest(const LookupIPtr& lookup, const Ice::Identity& id, int retryCount) :
217
+ RequestT<Ice::Identity, ObjectCB>(lookup, id, retryCount)
218
+ {
95
219
  }
96
220
 
97
221
  void
98
- ObjectRequest::response(const Ice::ObjectPrx& proxy)
222
+ ObjectRequest::response(const Ice::ObjectPrxPtr& proxy)
99
223
  {
100
224
  finished(proxy);
101
225
  }
102
226
 
227
+ void
228
+ ObjectRequest::invokeWithLookup(const string& domainId, const LookupPrxPtr& lookup, const LookupReplyPrxPtr& lookupReply)
229
+ {
230
+ #ifdef ICE_CPP11_MAPPING
231
+ auto self = ICE_SHARED_FROM_THIS;
232
+ lookup->findObjectByIdAsync(domainId, _id, lookupReply, nullptr, [self](exception_ptr ex)
233
+ {
234
+ try
235
+ {
236
+ rethrow_exception(ex);
237
+ }
238
+ catch(const Ice::LocalException& ex)
239
+ {
240
+ self->_lookup->objectRequestException(self, ex);
241
+ }
242
+ });
243
+ #else
244
+ lookup->begin_findObjectById(domainId, _id, lookupReply, newCallback(new ObjectCallbackI(_lookup, this),
245
+ &ObjectCallbackI::completed));
246
+
247
+ #endif
248
+ }
249
+
103
250
  void
104
251
  ObjectRequest::runTimerTask()
105
252
  {
106
- _lookup->objectRequestTimedOut(this);
253
+ _lookup->objectRequestTimedOut(ICE_SHARED_FROM_THIS);
107
254
  }
108
255
 
109
- LookupI::LookupI(const LocatorRegistryIPtr& registry, const LookupPrx& lookup, const Ice::PropertiesPtr& properties) :
256
+ LookupI::LookupI(const LocatorRegistryIPtr& registry, const LookupPrxPtr& lookup, const Ice::PropertiesPtr& properties) :
110
257
  _registry(registry),
111
258
  _lookup(lookup),
112
259
  _timeout(IceUtil::Time::milliSeconds(properties->getPropertyAsIntWithDefault("IceDiscovery.Timeout", 300))),
113
260
  _retryCount(properties->getPropertyAsIntWithDefault("IceDiscovery.RetryCount", 3)),
114
261
  _latencyMultiplier(properties->getPropertyAsIntWithDefault("IceDiscovery.LatencyMultiplier", 1)),
115
262
  _domainId(properties->getProperty("IceDiscovery.DomainId")),
116
- _timer(IceInternal::getInstanceTimer(lookup->ice_getCommunicator()))
263
+ _timer(IceInternal::getInstanceTimer(lookup->ice_getCommunicator())),
264
+ _warnOnce(true)
117
265
  {
266
+ //
267
+ // Create one lookup proxy per endpoint from the given proxy. We want to send a multicast
268
+ // datagram on each endpoint.
269
+ //
270
+ EndpointSeq endpoints = lookup->ice_getEndpoints();
271
+ for(vector<EndpointPtr>::const_iterator p = endpoints.begin(); p != endpoints.end(); ++p)
272
+ {
273
+ EndpointSeq single;
274
+ single.push_back(*p);
275
+ _lookups.push_back(make_pair(lookup->ice_endpoints(single), LookupReplyPrxPtr()));
276
+ }
277
+ assert(!_lookups.empty());
118
278
  }
119
279
 
120
280
  LookupI::~LookupI()
@@ -130,6 +290,7 @@ LookupI::destroy()
130
290
  p->second->finished(0);
131
291
  _timer->cancel(p->second);
132
292
  }
293
+ _objectRequests.clear();
133
294
 
134
295
  for(map<string, AdapterRequestPtr>::const_iterator p = _adapterRequests.begin(); p != _adapterRequests.end(); ++p)
135
296
  {
@@ -140,13 +301,38 @@ LookupI::destroy()
140
301
  }
141
302
 
142
303
  void
143
- LookupI::setLookupReply(const LookupReplyPrx& lookupReply)
304
+ LookupI::setLookupReply(const LookupReplyPrxPtr& lookupReply)
144
305
  {
145
- _lookupReply = lookupReply;
306
+ //
307
+ // Use a lookup reply proxy whose adress matches the interface used to send multicast datagrams.
308
+ //
309
+ for(vector<pair<LookupPrxPtr, LookupReplyPrxPtr> >::iterator p = _lookups.begin(); p != _lookups.end(); ++p)
310
+ {
311
+ UDPEndpointInfoPtr info = ICE_DYNAMIC_CAST(UDPEndpointInfo, p->first->ice_getEndpoints()[0]->getInfo());
312
+ if(info && !info->mcastInterface.empty())
313
+ {
314
+ EndpointSeq endpts = lookupReply->ice_getEndpoints();
315
+ for(EndpointSeq::const_iterator q = endpts.begin(); q != endpts.end(); ++q)
316
+ {
317
+ IPEndpointInfoPtr r = ICE_DYNAMIC_CAST(IPEndpointInfo, (*q)->getInfo());
318
+ if(r && r->host == info->mcastInterface)
319
+ {
320
+ EndpointSeq single;
321
+ single.push_back(*q);
322
+ p->second = lookupReply->ice_endpoints(single);
323
+ }
324
+ }
325
+ }
326
+
327
+ if(!p->second)
328
+ {
329
+ p->second = lookupReply; // Fallback: just use the given lookup reply proxy if no matching endpoint found.
330
+ }
331
+ }
146
332
  }
147
333
 
148
334
  void
149
- LookupI::findObjectById(const string& domainId, const Ice::Identity& id, const IceDiscovery::LookupReplyPrx& reply,
335
+ LookupI::findObjectById(ICE_IN(string) domainId, ICE_IN(Ice::Identity) id, ICE_IN(LookupReplyPrxPtr) reply,
150
336
  const Ice::Current&)
151
337
  {
152
338
  if(domainId != _domainId)
@@ -154,7 +340,7 @@ LookupI::findObjectById(const string& domainId, const Ice::Identity& id, const I
154
340
  return; // Ignore.
155
341
  }
156
342
 
157
- Ice::ObjectPrx proxy = _registry->findObject(id);
343
+ Ice::ObjectPrxPtr proxy = _registry->findObject(id);
158
344
  if(proxy)
159
345
  {
160
346
  //
@@ -162,7 +348,11 @@ LookupI::findObjectById(const string& domainId, const Ice::Identity& id, const I
162
348
  //
163
349
  try
164
350
  {
351
+ #ifdef ICE_CPP11_MAPPING
352
+ reply->foundObjectByIdAsync(id, proxy);
353
+ #else
165
354
  reply->begin_foundObjectById(id, proxy);
355
+ #endif
166
356
  }
167
357
  catch(const Ice::LocalException&)
168
358
  {
@@ -172,8 +362,8 @@ LookupI::findObjectById(const string& domainId, const Ice::Identity& id, const I
172
362
  }
173
363
 
174
364
  void
175
- LookupI::findAdapterById(const string& domainId, const std::string& adapterId,
176
- const IceDiscovery::LookupReplyPrx& reply, const Ice::Current&)
365
+ LookupI::findAdapterById(ICE_IN(string) domainId, ICE_IN(string) adapterId, ICE_IN(LookupReplyPrxPtr) reply,
366
+ const Ice::Current&)
177
367
  {
178
368
  if(domainId != _domainId)
179
369
  {
@@ -181,7 +371,7 @@ LookupI::findAdapterById(const string& domainId, const std::string& adapterId,
181
371
  }
182
372
 
183
373
  bool isReplicaGroup;
184
- Ice::ObjectPrx proxy = _registry->findAdapter(adapterId, isReplicaGroup);
374
+ Ice::ObjectPrxPtr proxy = _registry->findAdapter(adapterId, isReplicaGroup);
185
375
  if(proxy)
186
376
  {
187
377
  //
@@ -189,7 +379,11 @@ LookupI::findAdapterById(const string& domainId, const std::string& adapterId,
189
379
  //
190
380
  try
191
381
  {
382
+ #ifdef ICE_CPP11_MAPPING
383
+ reply->foundAdapterByIdAsync(adapterId, proxy, isReplicaGroup);
384
+ #else
192
385
  reply->begin_foundAdapterById(adapterId, proxy, isReplicaGroup);
386
+ #endif
193
387
  }
194
388
  catch(const Ice::LocalException&)
195
389
  {
@@ -199,65 +393,63 @@ LookupI::findAdapterById(const string& domainId, const std::string& adapterId,
199
393
  }
200
394
 
201
395
  void
202
- LookupI::findObject(const Ice::AMD_Locator_findObjectByIdPtr& cb, const Ice::Identity& id)
396
+ LookupI::findObject(const ObjectCB& cb, const Ice::Identity& id)
203
397
  {
204
398
  Lock sync(*this);
205
399
  map<Ice::Identity, ObjectRequestPtr>::iterator p = _objectRequests.find(id);
206
400
  if(p == _objectRequests.end())
207
401
  {
208
- p = _objectRequests.insert(make_pair(id, new ObjectRequest(this, id, _retryCount))).first;
402
+ p = _objectRequests.insert(make_pair(id, ICE_MAKE_SHARED(ObjectRequest,
403
+ ICE_SHARED_FROM_THIS,
404
+ id,
405
+ _retryCount))).first;
209
406
  }
210
407
 
211
408
  if(p->second->addCallback(cb))
212
409
  {
213
410
  try
214
411
  {
215
- Ice::Identity ident;
216
- ident.name = p->second->getRequestId();
217
- _lookup->begin_findObjectById(_domainId,
218
- id,
219
- LookupReplyPrx::uncheckedCast(_lookupReply->ice_identity(ident)));
412
+ p->second->invoke(_domainId, _lookups);
220
413
  _timer->schedule(p->second, _timeout);
221
414
  }
222
415
  catch(const Ice::LocalException&)
223
416
  {
224
- p->second->finished(0);
417
+ p->second->finished(ICE_NULLPTR);
225
418
  _objectRequests.erase(p);
226
419
  }
227
420
  }
228
421
  }
229
422
 
230
423
  void
231
- LookupI::findAdapter(const Ice::AMD_Locator_findAdapterByIdPtr& cb, const std::string& adapterId)
424
+ LookupI::findAdapter(const AdapterCB& cb, const std::string& adapterId)
232
425
  {
233
426
  Lock sync(*this);
234
427
  map<string, AdapterRequestPtr>::iterator p = _adapterRequests.find(adapterId);
235
428
  if(p == _adapterRequests.end())
236
429
  {
237
- p = _adapterRequests.insert(make_pair(adapterId, new AdapterRequest(this, adapterId, _retryCount))).first;
430
+ p = _adapterRequests.insert(make_pair(adapterId, ICE_MAKE_SHARED(AdapterRequest,
431
+ ICE_SHARED_FROM_THIS,
432
+ adapterId,
433
+ _retryCount))).first;
238
434
  }
239
435
 
240
436
  if(p->second->addCallback(cb))
241
437
  {
242
438
  try
243
439
  {
244
- Ice::Identity ident;
245
- ident.name = p->second->getRequestId();
246
- _lookup->begin_findAdapterById(_domainId,
247
- adapterId,
248
- LookupReplyPrx::uncheckedCast(_lookupReply->ice_identity(ident)));
440
+ p->second->invoke(_domainId, _lookups);
249
441
  _timer->schedule(p->second, _timeout);
250
442
  }
251
443
  catch(const Ice::LocalException&)
252
444
  {
253
- p->second->finished(0);
445
+ p->second->finished(ICE_NULLPTR);
254
446
  _adapterRequests.erase(p);
255
447
  }
256
448
  }
257
449
  }
258
450
 
259
451
  void
260
- LookupI::foundObject(const Ice::Identity& id, const string& requestId, const Ice::ObjectPrx& proxy)
452
+ LookupI::foundObject(const Ice::Identity& id, const string& requestId, const Ice::ObjectPrxPtr& proxy)
261
453
  {
262
454
  Lock sync(*this);
263
455
  map<Ice::Identity, ObjectRequestPtr>::iterator p = _objectRequests.find(id);
@@ -270,7 +462,7 @@ LookupI::foundObject(const Ice::Identity& id, const string& requestId, const Ice
270
462
  }
271
463
 
272
464
  void
273
- LookupI::foundAdapter(const std::string& adapterId, const string& requestId, const Ice::ObjectPrx& proxy,
465
+ LookupI::foundAdapter(const string& adapterId, const string& requestId, const Ice::ObjectPrxPtr& proxy,
274
466
  bool isReplicaGroup)
275
467
  {
276
468
  Lock sync(*this);
@@ -299,8 +491,8 @@ LookupI::objectRequestTimedOut(const ObjectRequestPtr& request)
299
491
  {
300
492
  try
301
493
  {
302
- _lookup->begin_findObjectById(_domainId, request->getId(), _lookupReply);
303
- _timer->schedule(p->second, _timeout);
494
+ request->invoke(_domainId, _lookups);
495
+ _timer->schedule(request, _timeout);
304
496
  return;
305
497
  }
306
498
  catch(const Ice::LocalException&)
@@ -313,6 +505,29 @@ LookupI::objectRequestTimedOut(const ObjectRequestPtr& request)
313
505
  _timer->cancel(request);
314
506
  }
315
507
 
508
+ void
509
+ LookupI::adapterRequestException(const AdapterRequestPtr& request, const LocalException& ex)
510
+ {
511
+ Lock sync(*this);
512
+ map<string, AdapterRequestPtr>::iterator p = _adapterRequests.find(request->getId());
513
+ if(p == _adapterRequests.end() || p->second.get() != request.get())
514
+ {
515
+ return;
516
+ }
517
+
518
+ if(request->exception())
519
+ {
520
+ if(_warnOnce)
521
+ {
522
+ Warning warn(_lookup->ice_getCommunicator()->getLogger());
523
+ warn << "failed to lookup adapter `" << p->first << "' with lookup proxy `" << _lookup << "':\n" << ex;
524
+ _warnOnce = false;
525
+ }
526
+ _timer->cancel(request);
527
+ _adapterRequests.erase(p);
528
+ }
529
+ }
530
+
316
531
  void
317
532
  LookupI::adapterRequestTimedOut(const AdapterRequestPtr& request)
318
533
  {
@@ -327,8 +542,8 @@ LookupI::adapterRequestTimedOut(const AdapterRequestPtr& request)
327
542
  {
328
543
  try
329
544
  {
330
- _lookup->begin_findAdapterById(_domainId, request->getId(), _lookupReply);
331
- _timer->schedule(p->second, _timeout);
545
+ request->invoke(_domainId, _lookups);
546
+ _timer->schedule(request, _timeout);
332
547
  return;
333
548
  }
334
549
  catch(const Ice::LocalException&)
@@ -341,19 +556,58 @@ LookupI::adapterRequestTimedOut(const AdapterRequestPtr& request)
341
556
  _timer->cancel(request);
342
557
  }
343
558
 
559
+ void
560
+ LookupI::objectRequestException(const ObjectRequestPtr& request, const LocalException& ex)
561
+ {
562
+ Lock sync(*this);
563
+ map<Ice::Identity, ObjectRequestPtr>::iterator p = _objectRequests.find(request->getId());
564
+ if(p == _objectRequests.end() || p->second.get() != request.get())
565
+ {
566
+ return;
567
+ }
568
+
569
+ if(request->exception())
570
+ {
571
+ if(_warnOnce)
572
+ {
573
+ Warning warn(_lookup->ice_getCommunicator()->getLogger());
574
+ string id = _lookup->ice_getCommunicator()->identityToString(p->first);
575
+ warn << "failed to lookup object `" << id << "' with lookup proxy `" << _lookup << "':\n" << ex;
576
+ _warnOnce = false;
577
+ }
578
+ _timer->cancel(request);
579
+ _objectRequests.erase(p);
580
+ }
581
+ }
582
+
344
583
  LookupReplyI::LookupReplyI(const LookupIPtr& lookup) : _lookup(lookup)
345
584
  {
346
585
  }
347
586
 
587
+ #ifdef ICE_CPP11_MAPPING
588
+ void
589
+ LookupReplyI::foundObjectById(Identity id, shared_ptr<ObjectPrx> proxy, const Current& current)
590
+ {
591
+ _lookup->foundObject(id, current.id.name, proxy);
592
+ }
593
+
594
+ void
595
+ LookupReplyI::foundAdapterById(string adapterId, shared_ptr<ObjectPrx> proxy, bool isReplicaGroup,
596
+ const Current& current)
597
+ {
598
+ _lookup->foundAdapter(adapterId, current.id.name, proxy, isReplicaGroup);
599
+ }
600
+ #else
348
601
  void
349
- LookupReplyI::foundObjectById(const Ice::Identity& id, const Ice::ObjectPrx& proxy, const Ice::Current& current)
602
+ LookupReplyI::foundObjectById(const Identity& id, const ObjectPrxPtr& proxy, const Current& current)
350
603
  {
351
604
  _lookup->foundObject(id, current.id.name, proxy);
352
605
  }
353
606
 
354
607
  void
355
- LookupReplyI::foundAdapterById(const std::string& adapterId, const Ice::ObjectPrx& proxy, bool isReplicaGroup,
356
- const Ice::Current& current)
608
+ LookupReplyI::foundAdapterById(const string& adapterId, const ObjectPrxPtr& proxy, bool isReplicaGroup,
609
+ const Current& current)
357
610
  {
358
611
  _lookup->foundAdapter(adapterId, current.id.name, proxy, isReplicaGroup);
359
612
  }
613
+ #endif