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,13 +1,13 @@
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.
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.5
10
+ // Ice version 3.7.0
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -23,25 +23,60 @@
23
23
  #endif
24
24
  #include <Ice/ObjectAdapter.h>
25
25
  #include <IceUtil/PushDisableWarnings.h>
26
- #include <Ice/BasicStream.h>
27
- #include <IceUtil/Iterator.h>
26
+ #include <Ice/LocalException.h>
27
+ #include <Ice/ValueFactory.h>
28
+ #include <Ice/OutgoingAsync.h>
29
+ #include <Ice/InputStream.h>
30
+ #include <Ice/OutputStream.h>
31
+ #include <Ice/LocalException.h>
28
32
  #include <IceUtil/PopDisableWarnings.h>
29
33
 
34
+ #if defined(_MSC_VER)
35
+ # pragma warning(disable:4458) // declaration of ... hides class member
36
+ #elif defined(__clang__)
37
+ # pragma clang diagnostic ignored "-Wshadow"
38
+ #elif defined(__GNUC__)
39
+ # pragma GCC diagnostic ignored "-Wshadow"
40
+ #endif
41
+
30
42
  #ifndef ICE_IGNORE_VERSION
31
- # if ICE_INT_VERSION / 100 != 306
43
+ # if ICE_INT_VERSION / 100 != 307
32
44
  # error Ice version mismatch!
33
45
  # endif
34
46
  # if ICE_INT_VERSION % 100 > 50
35
47
  # error Beta header file detected
36
48
  # endif
37
- # if ICE_INT_VERSION % 100 < 5
49
+ # if ICE_INT_VERSION % 100 < 0
38
50
  # error Ice patch level mismatch!
39
51
  # endif
40
52
  #endif
41
53
 
54
+ #ifdef ICE_CPP11_MAPPING // C++11 mapping
55
+
56
+ namespace
57
+ {
58
+
59
+ }
60
+
61
+ Ice::ObjectAdapter::~ObjectAdapter()
62
+ {
63
+ }
64
+
65
+ #else // C++98 mapping
66
+
42
67
  namespace
43
68
  {
44
69
 
45
70
  }
46
71
 
72
+ Ice::ObjectAdapter::~ObjectAdapter()
73
+ {
74
+ }
75
+
47
76
  ICE_API ::Ice::LocalObject* Ice::upCast(::Ice::ObjectAdapter* p) { return p; }
77
+
78
+ namespace Ice
79
+ {
80
+ }
81
+
82
+ #endif
@@ -1,13 +1,13 @@
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.
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.5
10
+ // Ice version 3.7.0
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -23,22 +23,44 @@
23
23
  #endif
24
24
  #include <Ice/ObjectAdapterF.h>
25
25
  #include <IceUtil/PushDisableWarnings.h>
26
- #include <IceUtil/Iterator.h>
27
26
  #include <IceUtil/PopDisableWarnings.h>
28
27
 
28
+ #if defined(_MSC_VER)
29
+ # pragma warning(disable:4458) // declaration of ... hides class member
30
+ #elif defined(__clang__)
31
+ # pragma clang diagnostic ignored "-Wshadow"
32
+ #elif defined(__GNUC__)
33
+ # pragma GCC diagnostic ignored "-Wshadow"
34
+ #endif
35
+
29
36
  #ifndef ICE_IGNORE_VERSION
30
- # if ICE_INT_VERSION / 100 != 306
37
+ # if ICE_INT_VERSION / 100 != 307
31
38
  # error Ice version mismatch!
32
39
  # endif
33
40
  # if ICE_INT_VERSION % 100 > 50
34
41
  # error Beta header file detected
35
42
  # endif
36
- # if ICE_INT_VERSION % 100 < 5
43
+ # if ICE_INT_VERSION % 100 < 0
37
44
  # error Ice patch level mismatch!
38
45
  # endif
39
46
  #endif
40
47
 
48
+ #ifdef ICE_CPP11_MAPPING // C++11 mapping
49
+
50
+ namespace
51
+ {
52
+
53
+ }
54
+
55
+ #else // C++98 mapping
56
+
41
57
  namespace
42
58
  {
43
59
 
44
60
  }
61
+
62
+ namespace Ice
63
+ {
64
+ }
65
+
66
+ #endif
@@ -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,13 +12,15 @@
12
12
  #include <Ice/Object.h>
13
13
  #include <Ice/LocalException.h>
14
14
  #include <Ice/Functional.h>
15
- #include <IceUtil/UUID.h>
15
+ #include <Ice/UUID.h>
16
16
 
17
17
  using namespace std;
18
18
  using namespace Ice;
19
19
  using namespace IceInternal;
20
20
 
21
+ #ifndef ICE_CPP11_MAPPING
21
22
  IceUtil::Shared* IceInternal::upCast(ObjectAdapterFactory* p) { return p; }
23
+ #endif
22
24
 
23
25
  void
24
26
  IceInternal::ObjectAdapterFactory::shutdown()
@@ -49,7 +51,11 @@ IceInternal::ObjectAdapterFactory::shutdown()
49
51
  // Deactivate outside the thread synchronization, to avoid
50
52
  // deadlocks.
51
53
  //
54
+ #ifdef ICE_CPP11_MAPPING
55
+ for_each(adapters.begin(), adapters.end(), [](const ObjectAdapterIPtr& adapter) { adapter->deactivate(); });
56
+ #else
52
57
  for_each(adapters.begin(), adapters.end(), IceUtil::voidMemFun(&ObjectAdapter::deactivate));
58
+ #endif
53
59
  }
54
60
 
55
61
  void
@@ -74,7 +80,11 @@ IceInternal::ObjectAdapterFactory::waitForShutdown()
74
80
  //
75
81
  // Now we wait for deactivation of each object adapter.
76
82
  //
83
+ #ifdef ICE_CPP11_MAPPING
84
+ for_each(adapters.begin(), adapters.end(), [](const ObjectAdapterIPtr& adapter) { adapter->waitForDeactivate(); });
85
+ #else
77
86
  for_each(adapters.begin(), adapters.end(), IceUtil::voidMemFun(&ObjectAdapter::waitForDeactivate));
87
+ #endif
78
88
  }
79
89
 
80
90
  bool
@@ -103,8 +113,11 @@ IceInternal::ObjectAdapterFactory::destroy()
103
113
  //
104
114
  // Now we destroy each object adapter.
105
115
  //
116
+ #ifdef ICE_CPP11_MAPPING
117
+ for_each(adapters.begin(), adapters.end(), [](const ObjectAdapterIPtr& adapter) { adapter->destroy(); });
118
+ #else
106
119
  for_each(adapters.begin(), adapters.end(), IceUtil::voidMemFun(&ObjectAdapter::destroy));
107
-
120
+ #endif
108
121
  {
109
122
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
110
123
  _adapters.clear();
@@ -120,12 +133,19 @@ IceInternal::ObjectAdapterFactory::updateObservers(void (ObjectAdapterI::*fn)())
120
133
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
121
134
  adapters = _adapters;
122
135
  }
123
-
136
+ #ifdef ICE_CPP11_MAPPING
137
+ for_each(adapters.begin(), adapters.end(),
138
+ [fn](const ObjectAdapterIPtr& adapter)
139
+ {
140
+ (adapter.get() ->* fn)();
141
+ });
142
+ #else
124
143
  for_each(adapters.begin(), adapters.end(), IceUtil::voidMemFun(fn));
144
+ #endif
125
145
  }
126
146
 
127
147
  ObjectAdapterPtr
128
- IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const RouterPrx& router)
148
+ IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const RouterPrxPtr& router)
129
149
  {
130
150
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
131
151
 
@@ -137,9 +157,9 @@ IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const
137
157
  ObjectAdapterIPtr adapter;
138
158
  if(name.empty())
139
159
  {
140
- string uuid = IceUtil::generateUUID();
141
- adapter = new ObjectAdapterI(_instance, _communicator, this, uuid, true);
142
- adapter->initialize(0);
160
+ string uuid = Ice::generateUUID();
161
+ adapter = ICE_MAKE_SHARED(ObjectAdapterI, _instance, _communicator, ICE_SHARED_FROM_THIS, uuid, true);
162
+ adapter->initialize(ICE_NULLPTR);
143
163
  }
144
164
  else
145
165
  {
@@ -147,7 +167,7 @@ IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const
147
167
  {
148
168
  throw AlreadyRegisteredException(__FILE__, __LINE__, "object adapter", name);
149
169
  }
150
- adapter = new ObjectAdapterI(_instance, _communicator, this, name, false);
170
+ adapter = ICE_MAKE_SHARED(ObjectAdapterI, _instance, _communicator, ICE_SHARED_FROM_THIS, name, false);
151
171
  adapter->initialize(router);
152
172
  _adapterNamesInUse.insert(name);
153
173
  }
@@ -157,7 +177,7 @@ IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const
157
177
  }
158
178
 
159
179
  ObjectAdapterPtr
160
- IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrx& proxy)
180
+ IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrxPtr& proxy)
161
181
  {
162
182
  list<ObjectAdapterIPtr> adapters;
163
183
  {
@@ -165,7 +185,7 @@ IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrx& proxy)
165
185
 
166
186
  if(!_instance)
167
187
  {
168
- return 0;
188
+ return ICE_NULLPTR;
169
189
  }
170
190
 
171
191
  adapters = _adapters;
@@ -186,7 +206,7 @@ IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrx& proxy)
186
206
  }
187
207
  }
188
208
 
189
- return 0;
209
+ return ICE_NULLPTR;
190
210
  }
191
211
 
192
212
  void
@@ -211,7 +231,8 @@ IceInternal::ObjectAdapterFactory::removeObjectAdapter(const ObjectAdapterPtr& a
211
231
  }
212
232
 
213
233
  void
214
- IceInternal::ObjectAdapterFactory::flushAsyncBatchRequests(const CommunicatorFlushBatchAsyncPtr& outAsync) const
234
+ IceInternal::ObjectAdapterFactory::flushAsyncBatchRequests(const CommunicatorFlushBatchAsyncPtr& outAsync,
235
+ CompressBatch compressBatch) const
215
236
  {
216
237
  list<ObjectAdapterIPtr> adapters;
217
238
  {
@@ -222,7 +243,7 @@ IceInternal::ObjectAdapterFactory::flushAsyncBatchRequests(const CommunicatorFlu
222
243
 
223
244
  for(list<ObjectAdapterIPtr>::const_iterator p = adapters.begin(); p != adapters.end(); ++p)
224
245
  {
225
- (*p)->flushAsyncBatchRequests(outAsync);
246
+ (*p)->flushAsyncBatchRequests(outAsync, compressBatch);
226
247
  }
227
248
  }
228
249
 
@@ -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.
@@ -19,7 +19,12 @@
19
19
  namespace IceInternal
20
20
  {
21
21
 
22
- class ObjectAdapterFactory : public ::IceUtil::Shared, public ::IceUtil::Monitor< ::IceUtil::RecMutex>
22
+ class ObjectAdapterFactory : public ::IceUtil::Monitor< ::IceUtil::RecMutex>,
23
+ #ifdef ICE_CPP11_MAPPING
24
+ public std::enable_shared_from_this<ObjectAdapterFactory>
25
+ #else
26
+ public virtual IceUtil::Shared
27
+ #endif
23
28
  {
24
29
  public:
25
30
 
@@ -30,15 +35,16 @@ public:
30
35
 
31
36
  void updateObservers(void (Ice::ObjectAdapterI::*)());
32
37
 
33
- ::Ice::ObjectAdapterPtr createObjectAdapter(const std::string&, const Ice::RouterPrx&);
34
- ::Ice::ObjectAdapterPtr findObjectAdapter(const ::Ice::ObjectPrx&);
38
+ ::Ice::ObjectAdapterPtr createObjectAdapter(const std::string&, const Ice::RouterPrxPtr&);
39
+ ::Ice::ObjectAdapterPtr findObjectAdapter(const ::Ice::ObjectPrxPtr&);
35
40
  void removeObjectAdapter(const ::Ice::ObjectAdapterPtr&);
36
- void flushAsyncBatchRequests(const CommunicatorFlushBatchAsyncPtr&) const;
37
-
38
- private:
41
+ void flushAsyncBatchRequests(const CommunicatorFlushBatchAsyncPtr&, ::Ice::CompressBatch) const;
39
42
 
40
43
  ObjectAdapterFactory(const InstancePtr&, const ::Ice::CommunicatorPtr&);
41
44
  virtual ~ObjectAdapterFactory();
45
+
46
+ private:
47
+
42
48
  friend class Instance;
43
49
 
44
50
  InstancePtr _instance;
@@ -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.
@@ -18,8 +18,12 @@ namespace IceInternal
18
18
  {
19
19
 
20
20
  class ObjectAdapterFactory;
21
+ #ifdef ICE_CPP11_MAPPING
22
+ using ObjectAdapterFactoryPtr = ::std::shared_ptr<ObjectAdapterFactory>;
23
+ #else
21
24
  IceUtil::Shared* upCast(ObjectAdapterFactory*);
22
25
  typedef IceInternal::Handle<ObjectAdapterFactory> ObjectAdapterFactoryPtr;
26
+ #endif
23
27
 
24
28
  }
25
29
 
@@ -1,14 +1,15 @@
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.
7
7
  //
8
8
  // **********************************************************************
9
9
 
10
- #include <IceUtil/UUID.h>
10
+ #include <Ice/UUID.h>
11
11
  #include <Ice/ObjectAdapterI.h>
12
+ #include <Ice/CommunicatorI.h>
12
13
  #include <Ice/ObjectAdapterFactory.h>
13
14
  #include <Ice/Instance.h>
14
15
  #include <Ice/Proxy.h>
@@ -31,6 +32,7 @@
31
32
  #include <Ice/DefaultsAndOverrides.h>
32
33
  #include <Ice/TraceLevels.h>
33
34
  #include <Ice/PropertyNames.h>
35
+ #include <Ice/ConsoleUtil.h>
34
36
 
35
37
  #ifdef _WIN32
36
38
  # include <sys/timeb.h>
@@ -61,6 +63,12 @@ inline void checkServant(const ObjectPtr& servant)
61
63
  throw IllegalServantException(__FILE__, __LINE__, "cannot add null servant to Object Adapter");
62
64
  }
63
65
  }
66
+
67
+ inline EndpointIPtr toEndpointI(const EndpointPtr& endp)
68
+ {
69
+ return ICE_DYNAMIC_CAST(EndpointI, endp);
70
+ }
71
+
64
72
  }
65
73
 
66
74
  string
@@ -95,8 +103,16 @@ Ice::ObjectAdapterI::activate()
95
103
  //
96
104
  if(_state != StateUninitialized)
97
105
  {
106
+ #ifdef ICE_CPP11_MAPPING
107
+ for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
108
+ [](const IncomingConnectionFactoryPtr& factory)
109
+ {
110
+ factory->activate();
111
+ });
112
+ #else
98
113
  for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
99
114
  Ice::voidMemFun(&IncomingConnectionFactory::activate));
115
+ #endif
100
116
  return;
101
117
  }
102
118
 
@@ -141,16 +157,23 @@ Ice::ObjectAdapterI::activate()
141
157
 
142
158
  if(printAdapterReady)
143
159
  {
144
- cout << _name << " ready" << endl;
160
+ consoleOut << _name << " ready" << endl;
145
161
  }
146
162
 
147
163
  {
148
164
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
149
165
  assert(_state == StateActivating);
150
166
 
167
+ #ifdef ICE_CPP11_MAPPING
168
+ for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
169
+ [](const IncomingConnectionFactoryPtr& factory)
170
+ {
171
+ factory->activate();
172
+ });
173
+ #else
151
174
  for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
152
175
  Ice::voidMemFun(&IncomingConnectionFactory::activate));
153
-
176
+ #endif
154
177
  _state = StateActive;
155
178
  notifyAll();
156
179
  }
@@ -164,8 +187,16 @@ Ice::ObjectAdapterI::hold()
164
187
  checkForDeactivation();
165
188
  _state = StateHeld;
166
189
 
190
+ #ifdef ICE_CPP11_MAPPING
191
+ for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
192
+ [](const IncomingConnectionFactoryPtr& factory)
193
+ {
194
+ factory->hold();
195
+ });
196
+ #else
167
197
  for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
168
198
  Ice::voidMemFun(&IncomingConnectionFactory::hold));
199
+ #endif
169
200
  }
170
201
 
171
202
  void
@@ -180,8 +211,16 @@ Ice::ObjectAdapterI::waitForHold()
180
211
  incomingConnectionFactories = _incomingConnectionFactories;
181
212
  }
182
213
 
214
+ #ifdef ICE_CPP11_MAPPING
215
+ for_each(incomingConnectionFactories.begin(), incomingConnectionFactories.end(),
216
+ [](const IncomingConnectionFactoryPtr& factory)
217
+ {
218
+ factory->waitUntilHolding();
219
+ });
220
+ #else
183
221
  for_each(incomingConnectionFactories.begin(), incomingConnectionFactories.end(),
184
222
  Ice::constVoidMemFun(&IncomingConnectionFactory::waitUntilHolding));
223
+ #endif
185
224
  }
186
225
 
187
226
  void
@@ -240,15 +279,23 @@ Ice::ObjectAdapterI::deactivate()
240
279
  // Connection::destroy() might block when sending a CloseConnection
241
280
  // message.
242
281
  //
282
+ #ifdef ICE_CPP11_MAPPING
283
+ for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
284
+ [](const IncomingConnectionFactoryPtr& factory)
285
+ {
286
+ factory->destroy();
287
+ });
288
+ #else
243
289
  for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
244
290
  Ice::voidMemFun(&IncomingConnectionFactory::destroy));
291
+ #endif
245
292
 
246
293
  //
247
294
  // Must be called outside the thread synchronization, because
248
295
  // changing the object adapter might block if there are still
249
296
  // requests being dispatched.
250
297
  //
251
- _instance->outgoingConnectionFactory()->removeAdapter(this);
298
+ _instance->outgoingConnectionFactory()->removeAdapter(ICE_SHARED_FROM_THIS);
252
299
 
253
300
  {
254
301
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
@@ -285,8 +332,16 @@ Ice::ObjectAdapterI::waitForDeactivate()
285
332
  // Now we wait until all incoming connection factories are
286
333
  // finished.
287
334
  //
335
+ #ifdef ICE_CPP11_MAPPING
336
+ for_each(incomingConnectionFactories.begin(), incomingConnectionFactories.end(),
337
+ [](const IncomingConnectionFactoryPtr& factory)
338
+ {
339
+ factory->waitUntilFinished();
340
+ });
341
+ #else
288
342
  for_each(incomingConnectionFactories.begin(), incomingConnectionFactories.end(),
289
343
  Ice::voidMemFun(&IncomingConnectionFactory::waitUntilFinished));
344
+ #endif
290
345
  }
291
346
 
292
347
  bool
@@ -298,7 +353,7 @@ Ice::ObjectAdapterI::isDeactivated() const
298
353
  }
299
354
 
300
355
  void
301
- Ice::ObjectAdapterI::destroy()
356
+ Ice::ObjectAdapterI::destroy() ICE_NOEXCEPT
302
357
  {
303
358
  //
304
359
  // Deactivate and wait for completion.
@@ -343,7 +398,7 @@ Ice::ObjectAdapterI::destroy()
343
398
 
344
399
  if(_objectAdapterFactory)
345
400
  {
346
- _objectAdapterFactory->removeObjectAdapter(this);
401
+ _objectAdapterFactory->removeObjectAdapter(ICE_SHARED_FROM_THIS);
347
402
  }
348
403
 
349
404
  {
@@ -372,13 +427,13 @@ Ice::ObjectAdapterI::destroy()
372
427
  }
373
428
  }
374
429
 
375
- ObjectPrx
430
+ ObjectPrxPtr
376
431
  Ice::ObjectAdapterI::add(const ObjectPtr& object, const Identity& ident)
377
432
  {
378
433
  return addFacet(object, ident, "");
379
434
  }
380
435
 
381
- ObjectPrx
436
+ ObjectPrxPtr
382
437
  Ice::ObjectAdapterI::addFacet(const ObjectPtr& object, const Identity& ident, const string& facet)
383
438
  {
384
439
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
@@ -392,17 +447,17 @@ Ice::ObjectAdapterI::addFacet(const ObjectPtr& object, const Identity& ident, co
392
447
  return newProxy(ident, facet);
393
448
  }
394
449
 
395
- ObjectPrx
450
+ ObjectPrxPtr
396
451
  Ice::ObjectAdapterI::addWithUUID(const ObjectPtr& object)
397
452
  {
398
453
  return addFacetWithUUID(object, "");
399
454
  }
400
455
 
401
- ObjectPrx
456
+ ObjectPrxPtr
402
457
  Ice::ObjectAdapterI::addFacetWithUUID(const ObjectPtr& object, const string& facet)
403
458
  {
404
459
  Identity ident;
405
- ident.name = IceUtil::generateUUID();
460
+ ident.name = Ice::generateUUID();
406
461
  return addFacet(object, ident, facet);
407
462
  }
408
463
 
@@ -484,13 +539,13 @@ Ice::ObjectAdapterI::findAllFacets(const Identity& ident) const
484
539
  }
485
540
 
486
541
  ObjectPtr
487
- Ice::ObjectAdapterI::findByProxy(const ObjectPrx& proxy) const
542
+ Ice::ObjectAdapterI::findByProxy(const ObjectPrxPtr& proxy) const
488
543
  {
489
544
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
490
545
 
491
546
  checkForDeactivation();
492
547
 
493
- ReferencePtr ref = proxy->__reference();
548
+ ReferencePtr ref = proxy->_getReference();
494
549
  return findFacet(ref->getIdentity(), ref->getFacet());
495
550
  }
496
551
 
@@ -534,7 +589,7 @@ Ice::ObjectAdapterI::findServantLocator(const string& prefix) const
534
589
  return _servantManager->findServantLocator(prefix);
535
590
  }
536
591
 
537
- ObjectPrx
592
+ ObjectPrxPtr
538
593
  Ice::ObjectAdapterI::createProxy(const Identity& ident) const
539
594
  {
540
595
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
@@ -545,7 +600,7 @@ Ice::ObjectAdapterI::createProxy(const Identity& ident) const
545
600
  return newProxy(ident, "");
546
601
  }
547
602
 
548
- ObjectPrx
603
+ ObjectPrxPtr
549
604
  Ice::ObjectAdapterI::createDirectProxy(const Identity& ident) const
550
605
  {
551
606
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
@@ -556,7 +611,7 @@ Ice::ObjectAdapterI::createDirectProxy(const Identity& ident) const
556
611
  return newDirectProxy(ident, "");
557
612
  }
558
613
 
559
- ObjectPrx
614
+ ObjectPrxPtr
560
615
  Ice::ObjectAdapterI::createIndirectProxy(const Identity& ident) const
561
616
  {
562
617
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
@@ -568,7 +623,7 @@ Ice::ObjectAdapterI::createIndirectProxy(const Identity& ident) const
568
623
  }
569
624
 
570
625
  void
571
- Ice::ObjectAdapterI::setLocator(const LocatorPrx& locator)
626
+ Ice::ObjectAdapterI::setLocator(const LocatorPrxPtr& locator)
572
627
  {
573
628
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
574
629
 
@@ -577,7 +632,7 @@ Ice::ObjectAdapterI::setLocator(const LocatorPrx& locator)
577
632
  _locatorInfo = _instance->locatorManager()->get(locator);
578
633
  }
579
634
 
580
- LocatorPrx
635
+ LocatorPrxPtr
581
636
  Ice::ObjectAdapterI::getLocator() const
582
637
  {
583
638
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
@@ -592,6 +647,24 @@ Ice::ObjectAdapterI::getLocator() const
592
647
  }
593
648
  }
594
649
 
650
+ EndpointSeq
651
+ Ice::ObjectAdapterI::getEndpoints() const
652
+ {
653
+ IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
654
+
655
+ EndpointSeq endpoints;
656
+ transform(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
657
+ back_inserter(endpoints),
658
+ #ifdef ICE_CPP11_MAPPING
659
+ [](const IncomingConnectionFactoryPtr& factory)
660
+ {
661
+ return factory->endpoint();
662
+ });
663
+ #else
664
+ Ice::constMemFun(&IncomingConnectionFactory::endpoint));
665
+ #endif
666
+ return endpoints;
667
+ }
595
668
 
596
669
  void
597
670
  Ice::ObjectAdapterI::refreshPublishedEndpoints()
@@ -601,7 +674,6 @@ Ice::ObjectAdapterI::refreshPublishedEndpoints()
601
674
 
602
675
  {
603
676
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
604
-
605
677
  checkForDeactivation();
606
678
 
607
679
  oldPublishedEndpoints = _publishedEndpoints;
@@ -629,35 +701,60 @@ Ice::ObjectAdapterI::refreshPublishedEndpoints()
629
701
  }
630
702
 
631
703
  EndpointSeq
632
- Ice::ObjectAdapterI::getEndpoints() const
704
+ Ice::ObjectAdapterI::getPublishedEndpoints() const
633
705
  {
634
706
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
635
707
 
636
708
  EndpointSeq endpoints;
637
- transform(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
638
- back_inserter(endpoints), Ice::constMemFun(&IncomingConnectionFactory::endpoint));
709
+ copy(_publishedEndpoints.begin(), _publishedEndpoints.end(), back_inserter(endpoints));
639
710
  return endpoints;
640
711
  }
641
712
 
642
- EndpointSeq
643
- Ice::ObjectAdapterI::getPublishedEndpoints() const
713
+ void
714
+ Ice::ObjectAdapterI::setPublishedEndpoints(const EndpointSeq& newEndpoints)
644
715
  {
645
- IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
716
+ vector<EndpointIPtr> newPublishedEndpoints;
717
+ transform(newEndpoints.begin(), newEndpoints.end(), back_inserter(newPublishedEndpoints), toEndpointI);
646
718
 
647
- EndpointSeq endpoints;
648
- copy(_publishedEndpoints.begin(), _publishedEndpoints.end(), back_inserter(endpoints));
649
- return endpoints;
719
+ LocatorInfoPtr locatorInfo;
720
+ vector<EndpointIPtr> oldPublishedEndpoints;
721
+ {
722
+ IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
723
+ checkForDeactivation();
724
+
725
+ oldPublishedEndpoints = _publishedEndpoints;
726
+ _publishedEndpoints = newPublishedEndpoints;
727
+
728
+ locatorInfo = _locatorInfo;
729
+ }
730
+
731
+ try
732
+ {
733
+ Ice::Identity dummy;
734
+ dummy.name = "dummy";
735
+ updateLocatorRegistry(locatorInfo, createDirectProxy(dummy));
736
+ }
737
+ catch(const Ice::LocalException&)
738
+ {
739
+ IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
740
+
741
+ //
742
+ // Restore the old published endpoints.
743
+ //
744
+ _publishedEndpoints = oldPublishedEndpoints;
745
+ throw;
746
+ }
650
747
  }
651
748
 
652
749
  bool
653
- Ice::ObjectAdapterI::isLocal(const ObjectPrx& proxy) const
750
+ Ice::ObjectAdapterI::isLocal(const ObjectPrxPtr& proxy) const
654
751
  {
655
752
  //
656
753
  // NOTE: it's important that isLocal() doesn't perform any blocking operations as
657
754
  // it can be called for AMI invocations if the proxy has no delegate set yet.
658
755
  //
659
756
 
660
- ReferencePtr ref = proxy->__reference();
757
+ ReferencePtr ref = proxy->_getReference();
661
758
  if(ref->isWellKnown())
662
759
  {
663
760
  //
@@ -690,7 +787,7 @@ Ice::ObjectAdapterI::isLocal(const ObjectPrx& proxy) const
690
787
  for(vector<IncomingConnectionFactoryPtr>::const_iterator q = _incomingConnectionFactories.begin();
691
788
  q != _incomingConnectionFactories.end(); ++q)
692
789
  {
693
- if((*p)->equivalent((*q)->endpoint()))
790
+ if((*q)->isLocal(*p))
694
791
  {
695
792
  return true;
696
793
  }
@@ -730,7 +827,7 @@ Ice::ObjectAdapterI::isLocal(const ObjectPrx& proxy) const
730
827
  }
731
828
 
732
829
  void
733
- Ice::ObjectAdapterI::flushAsyncBatchRequests(const CommunicatorFlushBatchAsyncPtr& outAsync)
830
+ Ice::ObjectAdapterI::flushAsyncBatchRequests(const CommunicatorFlushBatchAsyncPtr& outAsync, CompressBatch compress)
734
831
  {
735
832
  vector<IncomingConnectionFactoryPtr> f;
736
833
  {
@@ -740,7 +837,7 @@ Ice::ObjectAdapterI::flushAsyncBatchRequests(const CommunicatorFlushBatchAsyncPt
740
837
 
741
838
  for(vector<IncomingConnectionFactoryPtr>::const_iterator p = f.begin(); p != f.end(); ++p)
742
839
  {
743
- (*p)->flushAsyncBatchRequests(outAsync);
840
+ (*p)->flushAsyncBatchRequests(outAsync, compress);
744
841
  }
745
842
  }
746
843
 
@@ -752,7 +849,15 @@ Ice::ObjectAdapterI::updateConnectionObservers()
752
849
  IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
753
850
  f = _incomingConnectionFactories;
754
851
  }
852
+ #ifdef ICE_CPP11_MAPPING
853
+ for_each(f.begin(), f.end(),
854
+ [](const IncomingConnectionFactoryPtr& factory)
855
+ {
856
+ factory->updateConnectionObservers();
857
+ });
858
+ #else
755
859
  for_each(f.begin(), f.end(), Ice::voidMemFun(&IncomingConnectionFactory::updateConnectionObservers));
860
+ #endif
756
861
  }
757
862
 
758
863
  void
@@ -842,7 +947,7 @@ Ice::ObjectAdapterI::getACM() const
842
947
  //
843
948
  Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const CommunicatorPtr& communicator,
844
949
  const ObjectAdapterFactoryPtr& objectAdapterFactory, const string& name,
845
- /*const RouterPrx& router,*/ bool noConfig) :
950
+ /*const RouterPrxPtr& router,*/ bool noConfig) :
846
951
  _state(StateUninitialized),
847
952
  _instance(instance),
848
953
  _communicator(communicator),
@@ -856,7 +961,7 @@ Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const Communica
856
961
  }
857
962
 
858
963
  void
859
- Ice::ObjectAdapterI::initialize(const RouterPrx& router)
964
+ Ice::ObjectAdapterI::initialize(const RouterPrxPtr& router)
860
965
  {
861
966
  if(_noConfig)
862
967
  {
@@ -944,8 +1049,8 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
944
1049
 
945
1050
  if(!router)
946
1051
  {
947
- const_cast<RouterPrx&>(router) = RouterPrx::uncheckedCast(
948
- _instance->proxyFactory()->propertyToProxy(_name + ".Router"));
1052
+ const_cast<RouterPrxPtr&>(router) = ICE_UNCHECKED_CAST(RouterPrx,
1053
+ _instance->proxyFactory()->propertyToProxy(_name + ".Router"));
949
1054
  }
950
1055
  if(router)
951
1056
  {
@@ -957,8 +1062,9 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
957
1062
  //
958
1063
  if(_routerInfo->getAdapter())
959
1064
  {
960
- throw AlreadyRegisteredException(__FILE__, __LINE__, "object adapter with router",
961
- _instance->identityToString(router->ice_getIdentity()));
1065
+ throw AlreadyRegisteredException(__FILE__, __LINE__,
1066
+ "object adapter with router",
1067
+ _communicator->identityToString(router->ice_getIdentity()));
962
1068
  }
963
1069
 
964
1070
  //
@@ -976,7 +1082,7 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
976
1082
  // new outgoing connections to the router's client proxy will
977
1083
  // use this object adapter for callbacks.
978
1084
  //
979
- _routerInfo->setAdapter(this);
1085
+ _routerInfo->setAdapter(ICE_SHARED_FROM_THIS);
980
1086
 
981
1087
  //
982
1088
  // Also modify all existing outgoing connections to the
@@ -996,11 +1102,19 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
996
1102
  vector<EndpointIPtr> endpoints = parseEndpoints(properties->getProperty(_name + ".Endpoints"), true);
997
1103
  for(vector<EndpointIPtr>::iterator p = endpoints.begin(); p != endpoints.end(); ++p)
998
1104
  {
999
- IncomingConnectionFactoryPtr factory = new IncomingConnectionFactory(_instance, *p, this);
1000
- factory->initialize();
1001
- _incomingConnectionFactories.push_back(factory);
1105
+ EndpointIPtr publishedEndpoint;
1106
+ vector<EndpointIPtr> expanded = (*p)->expandHost(publishedEndpoint);
1107
+ for(vector<EndpointIPtr>::iterator q = expanded.begin(); q != expanded.end(); ++q)
1108
+ {
1109
+ IncomingConnectionFactoryPtr factory = ICE_MAKE_SHARED(IncomingConnectionFactory,
1110
+ _instance,
1111
+ *q,
1112
+ publishedEndpoint,
1113
+ ICE_SHARED_FROM_THIS);
1114
+ factory->initialize();
1115
+ _incomingConnectionFactories.push_back(factory);
1116
+ }
1002
1117
  }
1003
-
1004
1118
  if(endpoints.empty())
1005
1119
  {
1006
1120
  TraceLevelsPtr tl = _instance->traceLevels();
@@ -1019,7 +1133,7 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
1019
1133
 
1020
1134
  if(!properties->getProperty(_name + ".Locator").empty())
1021
1135
  {
1022
- setLocator(LocatorPrx::uncheckedCast(_instance->proxyFactory()->propertyToProxy(_name + ".Locator")));
1136
+ setLocator(ICE_UNCHECKED_CAST(LocatorPrx, _instance->proxyFactory()->propertyToProxy(_name + ".Locator")));
1023
1137
  }
1024
1138
  else
1025
1139
  {
@@ -1054,7 +1168,7 @@ Ice::ObjectAdapterI::~ObjectAdapterI()
1054
1168
  }
1055
1169
  }
1056
1170
 
1057
- ObjectPrx
1171
+ ObjectPrxPtr
1058
1172
  Ice::ObjectAdapterI::newProxy(const Identity& ident, const string& facet) const
1059
1173
  {
1060
1174
  if(_id.empty())
@@ -1071,7 +1185,7 @@ Ice::ObjectAdapterI::newProxy(const Identity& ident, const string& facet) const
1071
1185
  }
1072
1186
  }
1073
1187
 
1074
- ObjectPrx
1188
+ ObjectPrxPtr
1075
1189
  Ice::ObjectAdapterI::newDirectProxy(const Identity& ident, const string& facet) const
1076
1190
  {
1077
1191
  vector<EndpointIPtr> endpoints = _publishedEndpoints;
@@ -1090,7 +1204,7 @@ Ice::ObjectAdapterI::newDirectProxy(const Identity& ident, const string& facet)
1090
1204
  return _instance->proxyFactory()->referenceToProxy(ref);
1091
1205
  }
1092
1206
 
1093
- ObjectPrx
1207
+ ObjectPrxPtr
1094
1208
  Ice::ObjectAdapterI::newIndirectProxy(const Identity& ident, const string& facet, const string& id) const
1095
1209
  {
1096
1210
  //
@@ -1129,6 +1243,10 @@ Ice::ObjectAdapterI::parseEndpoints(const string& endpts, bool oaEndpoints) cons
1129
1243
  beg = endpts.find_first_not_of(delim, end);
1130
1244
  if(beg == string::npos)
1131
1245
  {
1246
+ if(!endpoints.empty())
1247
+ {
1248
+ throw EndpointParseException(__FILE__, __LINE__, "invalid empty object adapter endpoint");
1249
+ }
1132
1250
  break;
1133
1251
  }
1134
1252
 
@@ -1177,17 +1295,14 @@ Ice::ObjectAdapterI::parseEndpoints(const string& endpts, bool oaEndpoints) cons
1177
1295
 
1178
1296
  if(end == beg)
1179
1297
  {
1180
- ++end;
1181
- continue;
1298
+ throw EndpointParseException(__FILE__, __LINE__, "invalid empty object adapter endpoint");
1182
1299
  }
1183
1300
 
1184
1301
  string s = endpts.substr(beg, end - beg);
1185
1302
  EndpointIPtr endp = _instance->endpointFactoryManager()->create(s, oaEndpoints);
1186
1303
  if(endp == 0)
1187
1304
  {
1188
- EndpointParseException ex(__FILE__, __LINE__);
1189
- ex.str = "invalid object adapter endpoint `" + s + "'";
1190
- throw ex;
1305
+ throw EndpointParseException(__FILE__, __LINE__, "invalid object adapter endpoint `" + s + "'");
1191
1306
  }
1192
1307
  endpoints.push_back(endp);
1193
1308
 
@@ -1215,8 +1330,19 @@ ObjectAdapterI::parsePublishedEndpoints()
1215
1330
  //
1216
1331
  for(unsigned int i = 0; i < _incomingConnectionFactories.size(); ++i)
1217
1332
  {
1218
- vector<EndpointIPtr> endps = _incomingConnectionFactories[i]->endpoint()->expand();
1219
- endpoints.insert(endpoints.end(), endps.begin(), endps.end());
1333
+ vector<EndpointIPtr> endps = _incomingConnectionFactories[i]->endpoint()->expandIfWildcard();
1334
+ for(vector<EndpointIPtr>::const_iterator p = endps.begin(); p != endps.end(); ++p)
1335
+ {
1336
+ //
1337
+ // Check for duplicate endpoints, this might occur if an endpoint with a DNS name
1338
+ // expands to multiple addresses. In this case, multiple incoming connection
1339
+ // factories can point to the same published endpoint.
1340
+ //
1341
+ if(::find(endpoints.begin(), endpoints.end(), *p) == endpoints.end())
1342
+ {
1343
+ endpoints.push_back(*p);
1344
+ }
1345
+ }
1220
1346
  }
1221
1347
  }
1222
1348
 
@@ -1238,14 +1364,14 @@ ObjectAdapterI::parsePublishedEndpoints()
1238
1364
  }
1239
1365
 
1240
1366
  void
1241
- ObjectAdapterI::updateLocatorRegistry(const IceInternal::LocatorInfoPtr& locatorInfo, const Ice::ObjectPrx& proxy)
1367
+ ObjectAdapterI::updateLocatorRegistry(const IceInternal::LocatorInfoPtr& locatorInfo, const Ice::ObjectPrxPtr& proxy)
1242
1368
  {
1243
1369
  if(_id.empty() || !locatorInfo)
1244
1370
  {
1245
1371
  return; // Nothing to update.
1246
1372
  }
1247
1373
 
1248
- LocatorRegistryPrx locatorRegistry = locatorInfo->getLocatorRegistry();
1374
+ LocatorRegistryPrxPtr locatorRegistry = locatorInfo->getLocatorRegistry();
1249
1375
  if(!locatorRegistry)
1250
1376
  {
1251
1377
  return;