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
@@ -0,0 +1,69 @@
1
+ // **********************************************************************
2
+ //
3
+ // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
4
+ //
5
+ // This copy of Ice is licensed to you under the terms described in the
6
+ // ICE_LICENSE file included in this distribution.
7
+ //
8
+ // **********************************************************************
9
+
10
+ #ifndef ICESSL_CERTIFICATE_I_H
11
+ #define ICESSL_CERTIFICATE_I_H
12
+
13
+ #include <IceSSL/Plugin.h>
14
+
15
+ #include <vector>
16
+ #include <string>
17
+
18
+ namespace IceSSL
19
+ {
20
+
21
+ //
22
+ // Map a certificate OID to its alias
23
+ //
24
+ struct ICESSL_API CertificateOID
25
+ {
26
+ const char* name;
27
+ const char* alias;
28
+ };
29
+
30
+ extern const ICESSL_API CertificateOID certificateOIDS[];
31
+ extern const ICESSL_API int certificateOIDSSize;
32
+
33
+ //
34
+ // Certificate common implementation
35
+ //
36
+ class ICESSL_API CertificateI : public virtual IceSSL::Certificate
37
+ {
38
+ public:
39
+
40
+ virtual bool operator!=(const IceSSL::Certificate&) const;
41
+
42
+ virtual std::vector<X509ExtensionPtr> getX509Extensions() const;
43
+ virtual X509ExtensionPtr getX509Extension(const std::string&) const;
44
+
45
+ virtual bool checkValidity() const;
46
+ # ifdef ICE_CPP11_MAPPING
47
+ virtual bool checkValidity(const std::chrono::system_clock::time_point& now) const;
48
+ # else
49
+ virtual bool checkValidity(const IceUtil::Time& now) const;
50
+ # endif
51
+
52
+ virtual std::string toString() const;
53
+
54
+ protected:
55
+
56
+ //
57
+ // Implementations that support retrieving X509 extensions must
58
+ // reimplement this method to lazzy initialize the extensions
59
+ // list.
60
+ //
61
+ // The default implementation just throw FeatureNotSupportedException
62
+ //
63
+ virtual void loadX509Extensions() const;
64
+ mutable std::vector<X509ExtensionPtr> _extensions;
65
+ };
66
+
67
+ } // IceSSL namespace end
68
+
69
+ #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
  //
@@ -18,33 +18,61 @@
18
18
  // </auto-generated>
19
19
  //
20
20
 
21
- #ifndef ICE_SSL_API_EXPORTS
22
- # define ICE_SSL_API_EXPORTS
21
+ #ifndef ICESSL_API_EXPORTS
22
+ # define ICESSL_API_EXPORTS
23
23
  #endif
24
24
  #include <IceSSL/ConnectionInfo.h>
25
25
  #include <IceUtil/PushDisableWarnings.h>
26
- #include <Ice/OutgoingAsync.h>
27
- #include <Ice/BasicStream.h>
28
- #include <IceUtil/Iterator.h>
26
+ #include <Ice/InputStream.h>
27
+ #include <Ice/OutputStream.h>
29
28
  #include <IceUtil/PopDisableWarnings.h>
30
29
 
30
+ #if defined(_MSC_VER)
31
+ # pragma warning(disable:4458) // declaration of ... hides class member
32
+ #elif defined(__clang__)
33
+ # pragma clang diagnostic ignored "-Wshadow"
34
+ #elif defined(__GNUC__)
35
+ # pragma GCC diagnostic ignored "-Wshadow"
36
+ #endif
37
+
31
38
  #ifndef ICE_IGNORE_VERSION
32
- # if ICE_INT_VERSION / 100 != 306
39
+ # if ICE_INT_VERSION / 100 != 307
33
40
  # error Ice version mismatch!
34
41
  # endif
35
42
  # if ICE_INT_VERSION % 100 > 50
36
43
  # error Beta header file detected
37
44
  # endif
38
- # if ICE_INT_VERSION % 100 < 5
45
+ # if ICE_INT_VERSION % 100 < 0
39
46
  # error Ice patch level mismatch!
40
47
  # endif
41
48
  #endif
42
49
 
50
+ #ifdef ICE_CPP11_MAPPING // C++11 mapping
51
+
43
52
  namespace
44
53
  {
45
54
 
46
55
  }
47
56
 
48
- ICE_SSL_API ::Ice::LocalObject* IceSSL::upCast(::IceSSL::ConnectionInfo* p) { return p; }
57
+ IceSSL::ConnectionInfo::~ConnectionInfo()
58
+ {
59
+ }
60
+
61
+ #else // C++98 mapping
49
62
 
50
- ICE_SSL_API ::Ice::LocalObject* IceSSL::upCast(::IceSSL::WSSConnectionInfo* p) { return p; }
63
+ namespace
64
+ {
65
+
66
+ }
67
+
68
+ IceSSL::ConnectionInfo::~ConnectionInfo()
69
+ {
70
+ }
71
+
72
+ ICESSL_API ::Ice::LocalObject* IceSSL::upCast(::IceSSL::ConnectionInfo* p) { return p; }
73
+
74
+ namespace Ice
75
+ {
76
+ }
77
+
78
+ #endif
@@ -1,44 +1,66 @@
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
  //
14
- // Generated from file `ObjectFactoryF.ice'
14
+ // Generated from file `ConnectionInfoF.ice'
15
15
  //
16
16
  // Warning: do not edit this file.
17
17
  //
18
18
  // </auto-generated>
19
19
  //
20
20
 
21
- #ifndef ICE_API_EXPORTS
22
- # define ICE_API_EXPORTS
21
+ #ifndef ICESSL_API_EXPORTS
22
+ # define ICESSL_API_EXPORTS
23
23
  #endif
24
- #include <Ice/ObjectFactoryF.h>
24
+ #include <IceSSL/ConnectionInfoF.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.
@@ -10,12 +10,9 @@
10
10
  #include <IceSSL/ConnectorI.h>
11
11
  #include <IceSSL/Instance.h>
12
12
 
13
- #include <IceSSL/OpenSSLTransceiverI.h>
14
- #include <IceSSL/SecureTransportTransceiverI.h>
15
- #include <IceSSL/SChannelTransceiverI.h>
16
-
17
13
  #include <IceSSL/EndpointI.h>
18
14
  #include <IceSSL/Util.h>
15
+ #include <IceSSL/SSLEngine.h>
19
16
  #include <Ice/Communicator.h>
20
17
  #include <Ice/LocalException.h>
21
18
  #include <Ice/StreamSocket.h>
@@ -39,20 +36,19 @@ IceSSL::ConnectorI::connect()
39
36
  throw ex;
40
37
  }
41
38
 
42
- IceInternal::StreamSocketPtr stream = new IceInternal::StreamSocket(_instance, _proxy, _addr, _sourceAddr);
43
- return new TransceiverI(_instance, stream, _host, false);
39
+ return _instance->engine()->createTransceiver(_instance, _delegate->connect(), _host, false);
44
40
  }
45
41
 
46
42
  Short
47
43
  IceSSL::ConnectorI::type() const
48
44
  {
49
- return _instance->type();
45
+ return _delegate->type();
50
46
  }
51
47
 
52
48
  string
53
49
  IceSSL::ConnectorI::toString() const
54
50
  {
55
- return IceInternal::addrToString(!_proxy ? _addr : _proxy->getAddress());
51
+ return _delegate->toString();
56
52
  }
57
53
 
58
54
  bool
@@ -64,22 +60,12 @@ IceSSL::ConnectorI::operator==(const IceInternal::Connector& r) const
64
60
  return false;
65
61
  }
66
62
 
67
- if(IceInternal::compareAddress(_addr, p->_addr) != 0)
63
+ if(this == p)
68
64
  {
69
- return false;
70
- }
71
-
72
- if(_timeout != p->_timeout)
73
- {
74
- return false;
75
- }
76
-
77
- if(IceInternal::compareAddress(_sourceAddr, p->_sourceAddr) != 0)
78
- {
79
- return false;
65
+ return true;
80
66
  }
81
67
 
82
- if(_connectionId != p->_connectionId)
68
+ if(_delegate != p->_delegate)
83
69
  {
84
70
  return false;
85
71
  }
@@ -87,12 +73,6 @@ IceSSL::ConnectorI::operator==(const IceInternal::Connector& r) const
87
73
  return true;
88
74
  }
89
75
 
90
- bool
91
- IceSSL::ConnectorI::operator!=(const IceInternal::Connector& r) const
92
- {
93
- return !operator==(r);
94
- }
95
-
96
76
  bool
97
77
  IceSSL::ConnectorI::operator<(const IceInternal::Connector& r) const
98
78
  {
@@ -102,47 +82,25 @@ IceSSL::ConnectorI::operator<(const IceInternal::Connector& r) const
102
82
  return type() < r.type();
103
83
  }
104
84
 
105
- if(_timeout < p->_timeout)
106
- {
107
- return true;
108
- }
109
- else if(p->_timeout < _timeout)
110
- {
111
- return false;
112
- }
113
-
114
- int rc = compareAddress(_sourceAddr, p->_sourceAddr);
115
- if(rc < 0)
116
- {
117
- return true;
118
- }
119
- else if(rc > 0)
85
+ if(this == p)
120
86
  {
121
87
  return false;
122
88
  }
123
89
 
124
- if(_connectionId < p->_connectionId)
90
+ if(_delegate < p->_delegate)
125
91
  {
126
92
  return true;
127
93
  }
128
- else if(p->_connectionId < _connectionId)
94
+ else if(p->_delegate < _delegate)
129
95
  {
130
96
  return false;
131
97
  }
132
98
 
133
- return IceInternal::compareAddress(_addr, p->_addr) == -1;
99
+ return false;
134
100
  }
135
101
 
136
- IceSSL::ConnectorI::ConnectorI(const InstancePtr& instance, const string& host, const IceInternal::Address& addr,
137
- const IceInternal::NetworkProxyPtr& proxy, const IceInternal::Address& sourceAddr,
138
- Ice::Int timeout, const string& connectionId) :
139
- _instance(instance),
140
- _host(host),
141
- _addr(addr),
142
- _proxy(proxy),
143
- _sourceAddr(sourceAddr),
144
- _timeout(timeout),
145
- _connectionId(connectionId)
102
+ IceSSL::ConnectorI::ConnectorI(const InstancePtr& instance, const IceInternal::ConnectorPtr& del, const string& h) :
103
+ _instance(instance), _delegate(del), _host(h)
146
104
  {
147
105
  }
148
106
 
@@ -1,14 +1,14 @@
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
- #ifndef ICE_SSL_CONNECTOR_I_H
11
- #define ICE_SSL_CONNECTOR_I_H
10
+ #ifndef ICESSL_CONNECTOR_I_H
11
+ #define ICESSL_CONNECTOR_I_H
12
12
 
13
13
  #include <Ice/TransceiverF.h>
14
14
  #include <Ice/Connector.h>
@@ -31,26 +31,19 @@ public:
31
31
  virtual std::string toString() const;
32
32
 
33
33
  virtual bool operator==(const IceInternal::Connector&) const;
34
- virtual bool operator!=(const IceInternal::Connector&) const;
35
34
  virtual bool operator<(const IceInternal::Connector&) const;
36
35
 
37
36
  private:
38
37
 
39
- ConnectorI(const InstancePtr&, const std::string&, const IceInternal::Address&,
40
- const IceInternal::NetworkProxyPtr&, const IceInternal::Address&,
41
- Ice::Int, const std::string&);
38
+ ConnectorI(const InstancePtr&, const IceInternal::ConnectorPtr&, const std::string&);
42
39
  virtual ~ConnectorI();
43
40
  friend class EndpointI;
44
41
 
45
42
  const InstancePtr _instance;
43
+ const IceInternal::ConnectorPtr _delegate;
46
44
  const std::string _host;
47
- const IceInternal::Address _addr;
48
- const IceInternal::NetworkProxyPtr _proxy;
49
- const IceInternal::Address _sourceAddr;
50
- const Ice::Int _timeout;
51
- const std::string _connectionId;
52
45
  };
53
46
 
54
- }
47
+ } // IceSSL namespace end
55
48
 
56
49
  #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.
@@ -11,104 +11,141 @@
11
11
  #include <IceSSL/AcceptorI.h>
12
12
  #include <IceSSL/ConnectorI.h>
13
13
  #include <IceSSL/Instance.h>
14
- #include <Ice/BasicStream.h>
14
+ #include <Ice/OutputStream.h>
15
+ #include <Ice/InputStream.h>
15
16
  #include <Ice/LocalException.h>
16
17
  #include <Ice/DefaultsAndOverrides.h>
17
18
  #include <Ice/Object.h>
18
19
  #include <Ice/HashUtil.h>
20
+ #include <Ice/Comparable.h>
19
21
 
20
22
  using namespace std;
21
23
  using namespace Ice;
22
24
  using namespace IceSSL;
23
25
 
24
- IceUtil::Shared* IceSSL::upCast(EndpointI* p) { return p; }
26
+ namespace
27
+ {
25
28
 
26
- IceSSL::EndpointI::EndpointI(const InstancePtr& instance, const string& ho, Int po,
27
- const IceInternal::Address& sourceAddr, Int ti, const string& conId, bool co) :
28
- IceInternal::IPEndpointI(instance, ho, po, sourceAddr, conId),
29
- _instance(instance),
30
- _timeout(ti),
31
- _compress(co)
29
+ Ice::IPEndpointInfoPtr
30
+ getIPEndpointInfo(const Ice::EndpointInfoPtr& info)
32
31
  {
32
+ for(Ice::EndpointInfoPtr p = info; p; p = p->underlying)
33
+ {
34
+ Ice::IPEndpointInfoPtr ipInfo = ICE_DYNAMIC_CAST(Ice::IPEndpointInfo, p);
35
+ if(ipInfo)
36
+ {
37
+ return ipInfo;
38
+ }
39
+ }
40
+ return ICE_NULLPTR;
33
41
  }
34
42
 
35
- IceSSL::EndpointI::EndpointI(const InstancePtr& instance) :
36
- IceInternal::IPEndpointI(instance),
37
- _instance(instance),
38
- _timeout(instance->defaultTimeout()),
39
- _compress(false)
43
+ }
44
+
45
+ #ifndef ICE_CPP11_MAPPING
46
+ IceUtil::Shared* IceSSL::upCast(EndpointI* p) { return p; }
47
+ #endif
48
+
49
+ IceSSL::EndpointI::EndpointI(const InstancePtr& instance, const IceInternal::EndpointIPtr& del) :
50
+ _instance(instance), _delegate(del)
40
51
  {
41
52
  }
42
53
 
43
- IceSSL::EndpointI::EndpointI(const InstancePtr& instance, IceInternal::BasicStream* s) :
44
- IPEndpointI(instance, s),
45
- _instance(instance),
46
- _timeout(-1),
47
- _compress(false)
54
+ void
55
+ IceSSL::EndpointI::streamWriteImpl(Ice::OutputStream* stream) const
48
56
  {
49
- s->read(const_cast<Int&>(_timeout));
50
- s->read(const_cast<bool&>(_compress));
57
+ _delegate->streamWriteImpl(stream);
51
58
  }
52
59
 
53
60
  Ice::EndpointInfoPtr
54
61
  IceSSL::EndpointI::getInfo() const
55
62
  {
56
- EndpointInfoPtr info = new IceInternal::InfoI<EndpointInfo>(const_cast<EndpointI*>(this));
57
- fillEndpointInfo(info.get());
63
+ EndpointInfoPtr info = ICE_MAKE_SHARED(IceInternal::InfoI<EndpointInfo>, ICE_SHARED_FROM_CONST_THIS(EndpointI));
64
+ info->underlying = _delegate->getInfo();
65
+ info->compress = info->underlying->compress;
66
+ info->timeout = info->underlying->timeout;
58
67
  return info;
59
68
  }
60
69
 
61
- Ice::EndpointInfoPtr
62
- IceSSL::EndpointI::getWSInfo(const string& resource) const
70
+ Ice::Short
71
+ IceSSL::EndpointI::type() const
63
72
  {
64
- WSSEndpointInfoPtr info = new IceInternal::InfoI<WSSEndpointInfo>(const_cast<EndpointI*>(this));
65
- fillEndpointInfo(info.get());
66
- info->resource = resource;
67
- return info;
73
+ return _delegate->type();
74
+ }
75
+
76
+ const std::string&
77
+ IceSSL::EndpointI::protocol() const
78
+ {
79
+ return _delegate->protocol();
68
80
  }
69
81
 
70
82
  Int
71
83
  IceSSL::EndpointI::timeout() const
72
84
  {
73
- return _timeout;
85
+ return _delegate->timeout();
74
86
  }
75
87
 
76
88
  IceInternal::EndpointIPtr
77
89
  IceSSL::EndpointI::timeout(Int timeout) const
78
90
  {
79
- if(timeout == _timeout)
91
+ if(timeout == _delegate->timeout())
92
+ {
93
+ return ICE_SHARED_FROM_CONST_THIS(EndpointI);
94
+ }
95
+ else
96
+ {
97
+ return ICE_MAKE_SHARED(EndpointI, _instance, _delegate->timeout(timeout));
98
+ }
99
+ }
100
+
101
+ const string&
102
+ IceSSL::EndpointI::connectionId() const
103
+ {
104
+ return _delegate->connectionId();
105
+ }
106
+
107
+ IceInternal::EndpointIPtr
108
+ IceSSL::EndpointI::connectionId(const string& connectionId) const
109
+ {
110
+ if(connectionId == _delegate->connectionId())
80
111
  {
81
- return const_cast<EndpointI*>(this);
112
+ return ICE_SHARED_FROM_CONST_THIS(EndpointI);
82
113
  }
83
114
  else
84
115
  {
85
- return new EndpointI(_instance, _host, _port, _sourceAddr, timeout, _connectionId, _compress);
116
+ return ICE_MAKE_SHARED(EndpointI, _instance, _delegate->connectionId(connectionId));
86
117
  }
87
118
  }
88
119
 
89
120
  bool
90
121
  IceSSL::EndpointI::compress() const
91
122
  {
92
- return _compress;
123
+ return _delegate->compress();
93
124
  }
94
125
 
95
126
  IceInternal::EndpointIPtr
96
127
  IceSSL::EndpointI::compress(bool compress) const
97
128
  {
98
- if(compress == _compress)
129
+ if(compress == _delegate->compress())
99
130
  {
100
- return const_cast<EndpointI*>(this);
131
+ return ICE_SHARED_FROM_CONST_THIS(EndpointI);
101
132
  }
102
133
  else
103
134
  {
104
- return new EndpointI(_instance, _host, _port, _sourceAddr, _timeout, _connectionId, compress);
135
+ return ICE_MAKE_SHARED(EndpointI, _instance, _delegate->compress(compress));
105
136
  }
106
137
  }
107
138
 
108
139
  bool
109
140
  IceSSL::EndpointI::datagram() const
110
141
  {
111
- return false;
142
+ return _delegate->datagram();
143
+ }
144
+
145
+ bool
146
+ IceSSL::EndpointI::secure() const
147
+ {
148
+ return _delegate->secure();
112
149
  }
113
150
 
114
151
  IceInternal::TransceiverPtr
@@ -117,56 +154,139 @@ IceSSL::EndpointI::transceiver() const
117
154
  return 0;
118
155
  }
119
156
 
120
- IceInternal::AcceptorPtr
121
- IceSSL::EndpointI::acceptor(const string& adapterName) const
157
+ void
158
+ IceSSL::EndpointI::connectors_async(Ice::EndpointSelectionType selType,
159
+ const IceInternal::EndpointI_connectorsPtr& callback) const
122
160
  {
123
- return new AcceptorI(const_cast<EndpointI*>(this), _instance, adapterName, _host, _port);
161
+ class CallbackI : public IceInternal::EndpointI_connectors
162
+ {
163
+ public:
164
+
165
+ CallbackI(const IceInternal::EndpointI_connectorsPtr& callback, const InstancePtr& instance,
166
+ const string& host) :
167
+ _callback(callback), _instance(instance), _host(host)
168
+ {
169
+ }
170
+
171
+ virtual void connectors(const vector<IceInternal::ConnectorPtr>& c)
172
+ {
173
+ vector<IceInternal::ConnectorPtr> connectors = c;
174
+ for(vector<IceInternal::ConnectorPtr>::iterator p = connectors.begin(); p != connectors.end(); ++p)
175
+ {
176
+ *p = new ConnectorI(_instance, *p, _host);
177
+ }
178
+ _callback->connectors(connectors);
179
+ }
180
+
181
+ virtual void exception(const Ice::LocalException& ex)
182
+ {
183
+ _callback->exception(ex);
184
+ }
185
+
186
+ private:
187
+
188
+ const IceInternal::EndpointI_connectorsPtr _callback;
189
+ const InstancePtr _instance;
190
+ const string _host;
191
+ };
192
+
193
+ IPEndpointInfoPtr info = getIPEndpointInfo(_delegate->getInfo());
194
+ _delegate->connectors_async(selType, ICE_MAKE_SHARED(CallbackI, callback, _instance, info ? info->host : string()));
124
195
  }
125
196
 
126
- EndpointIPtr
127
- IceSSL::EndpointI::endpoint(const AcceptorIPtr& acceptor) const
197
+ IceInternal::AcceptorPtr
198
+ IceSSL::EndpointI::acceptor(const string& adapterName) const
128
199
  {
129
- return new EndpointI(_instance, _host, acceptor->effectivePort(), _sourceAddr, _timeout, _connectionId, _compress);
200
+ return new AcceptorI(ICE_SHARED_FROM_CONST_THIS(EndpointI), _instance, _delegate->acceptor(adapterName), adapterName);
130
201
  }
131
202
 
132
- string
133
- IceSSL::EndpointI::options() const
203
+ EndpointIPtr
204
+ IceSSL::EndpointI::endpoint(const IceInternal::EndpointIPtr& delEndp) const
134
205
  {
135
- //
136
- // WARNING: Certain features, such as proxy validation in Glacier2,
137
- // depend on the format of proxy strings. Changes to toString() and
138
- // methods called to generate parts of the reference string could break
139
- // these features. Please review for all features that depend on the
140
- // format of proxyToString() before changing this and related code.
141
- //
142
- ostringstream s;
143
- s << IPEndpointI::options();
144
-
145
- if(_timeout == -1)
206
+ if(delEndp.get() == _delegate.get())
146
207
  {
147
- s << " -t infinite";
208
+ return ICE_DYNAMIC_CAST(EndpointI, ICE_SHARED_FROM_CONST_THIS(EndpointI));
148
209
  }
149
210
  else
150
211
  {
151
- s << " -t " << _timeout;
212
+ return ICE_MAKE_SHARED(EndpointI, _instance, delEndp);
152
213
  }
214
+ }
153
215
 
154
- if(_compress)
216
+ vector<IceInternal::EndpointIPtr>
217
+ IceSSL::EndpointI::expandIfWildcard() const
218
+ {
219
+ vector<IceInternal::EndpointIPtr> endps = _delegate->expandIfWildcard();
220
+ for(vector<IceInternal::EndpointIPtr>::iterator p = endps.begin(); p != endps.end(); ++p)
155
221
  {
156
- s << " -z";
222
+ if(p->get() == _delegate.get())
223
+ {
224
+ *p = ICE_SHARED_FROM_CONST_THIS(EndpointI);
225
+ }
226
+ else
227
+ {
228
+ *p = ICE_MAKE_SHARED(EndpointI, _instance, *p);
229
+ }
157
230
  }
231
+ return endps;
232
+ }
158
233
 
159
- return s.str();
234
+ vector<IceInternal::EndpointIPtr>
235
+ IceSSL::EndpointI::expandHost(IceInternal::EndpointIPtr& publish) const
236
+ {
237
+ vector<IceInternal::EndpointIPtr> endps = _delegate->expandHost(publish);
238
+ if(publish.get() == _delegate.get())
239
+ {
240
+ publish = ICE_SHARED_FROM_CONST_THIS(EndpointI);
241
+ }
242
+ else if(publish.get())
243
+ {
244
+ publish = ICE_MAKE_SHARED(EndpointI, _instance, publish);
245
+ }
246
+ for(vector<IceInternal::EndpointIPtr>::iterator p = endps.begin(); p != endps.end(); ++p)
247
+ {
248
+ if(p->get() == _delegate.get())
249
+ {
250
+ *p = ICE_SHARED_FROM_CONST_THIS(EndpointI);
251
+ }
252
+ else
253
+ {
254
+ *p = ICE_MAKE_SHARED(EndpointI, _instance, *p);
255
+ }
256
+ }
257
+ return endps;
160
258
  }
161
259
 
162
260
  bool
163
- IceSSL::EndpointI::operator==(const Ice::LocalObject& r) const
261
+ IceSSL::EndpointI::equivalent(const IceInternal::EndpointIPtr& endpoint) const
164
262
  {
165
- if(!IPEndpointI::operator==(r))
263
+ const EndpointI* endpointI = dynamic_cast<const EndpointI*>(endpoint.get());
264
+ if(!endpointI)
166
265
  {
167
266
  return false;
168
267
  }
268
+ return _delegate->equivalent(endpointI->_delegate);
269
+ }
270
+
271
+ Ice::Int
272
+ IceSSL::EndpointI::hash() const
273
+ {
274
+ return _delegate->hash();
275
+ }
276
+
277
+ string
278
+ IceSSL::EndpointI::options() const
279
+ {
280
+ return _delegate->options();
281
+ }
169
282
 
283
+ bool
284
+ #ifdef ICE_CPP11_MAPPING
285
+ IceSSL::EndpointI::operator==(const Ice::Endpoint& r) const
286
+ #else
287
+ IceSSL::EndpointI::operator==(const Ice::LocalObject& r) const
288
+ #endif
289
+ {
170
290
  const EndpointI* p = dynamic_cast<const EndpointI*>(&r);
171
291
  if(!p)
172
292
  {
@@ -178,12 +298,7 @@ IceSSL::EndpointI::operator==(const Ice::LocalObject& r) const
178
298
  return true;
179
299
  }
180
300
 
181
- if(_timeout != p->_timeout)
182
- {
183
- return false;
184
- }
185
-
186
- if(_compress != p->_compress)
301
+ if(!Ice::targetEqualTo(_delegate, p->_delegate))
187
302
  {
188
303
  return false;
189
304
  }
@@ -192,7 +307,11 @@ IceSSL::EndpointI::operator==(const Ice::LocalObject& r) const
192
307
  }
193
308
 
194
309
  bool
310
+ #ifdef ICE_CPP11_MAPPING
311
+ IceSSL::EndpointI::operator<(const Ice::Endpoint& r) const
312
+ #else
195
313
  IceSSL::EndpointI::operator<(const Ice::LocalObject& r) const
314
+ #endif
196
315
  {
197
316
  const EndpointI* p = dynamic_cast<const EndpointI*>(&r);
198
317
  if(!p)
@@ -210,160 +329,49 @@ IceSSL::EndpointI::operator<(const Ice::LocalObject& r) const
210
329
  return false;
211
330
  }
212
331
 
213
- if(_timeout < p->_timeout)
332
+ if(Ice::targetLess(_delegate, p->_delegate))
214
333
  {
215
334
  return true;
216
335
  }
217
- else if(p->_timeout < _timeout)
336
+ else if (Ice::targetLess(p->_delegate, _delegate))
218
337
  {
219
338
  return false;
220
339
  }
221
340
 
222
- if(!_compress && p->_compress)
223
- {
224
- return true;
225
- }
226
- else if(p->_compress < _compress)
227
- {
228
- return false;
229
- }
230
-
231
- return IPEndpointI::operator<(r);
232
- }
233
-
234
- void
235
- IceSSL::EndpointI::streamWriteImpl(IceInternal::BasicStream* s) const
236
- {
237
- IPEndpointI::streamWriteImpl(s);
238
- s->write(_timeout);
239
- s->write(_compress);
240
- }
241
-
242
- void
243
- IceSSL::EndpointI::hashInit(Ice::Int& h) const
244
- {
245
- IPEndpointI::hashInit(h);
246
- IceInternal::hashAdd(h, _timeout);
247
- IceInternal::hashAdd(h, _compress);
248
- }
249
-
250
- void
251
- IceSSL::EndpointI::fillEndpointInfo(IPEndpointInfo* info) const
252
- {
253
- IPEndpointI::fillEndpointInfo(info);
254
- info->timeout = _timeout;
255
- info->compress = _compress;
341
+ return false;
256
342
  }
257
343
 
258
344
  bool
259
345
  IceSSL::EndpointI::checkOption(const string& option, const string& argument, const string& endpoint)
260
346
  {
261
- if(IPEndpointI::checkOption(option, argument, endpoint))
262
- {
263
- return true;
264
- }
265
-
266
- switch(option[1])
267
- {
268
- case 't':
269
- {
270
- if(argument.empty())
271
- {
272
- EndpointParseException ex(__FILE__, __LINE__);
273
- ex.str = "no argument provided for -t option in endpoint " + endpoint;
274
- throw ex;
275
- }
276
-
277
- if(argument == "infinite")
278
- {
279
- const_cast<Int&>(_timeout) = -1;
280
- }
281
- else
282
- {
283
- istringstream t(argument);
284
- if(!(t >> const_cast<Int&>(_timeout)) || !t.eof() || _timeout < 1)
285
- {
286
- EndpointParseException ex(__FILE__, __LINE__);
287
- ex.str = "invalid timeout value `" + argument + "' in endpoint " + endpoint;
288
- throw ex;
289
- }
290
- }
291
- return true;
292
- }
293
-
294
- case 'z':
295
- {
296
- if(!argument.empty())
297
- {
298
- EndpointParseException ex(__FILE__, __LINE__);
299
- ex.str = "unexpected argument `" + argument + "' provided for -z option in " + endpoint;
300
- throw ex;
301
- }
302
- const_cast<bool&>(_compress) = true;
303
- return true;
304
- }
305
-
306
- default:
307
- {
308
- return false;
309
- }
310
- }
311
- }
312
-
313
- IceInternal::ConnectorPtr
314
- IceSSL::EndpointI::createConnector(const IceInternal::Address& address, const IceInternal::NetworkProxyPtr& proxy) const
315
- {
316
- return new ConnectorI(_instance, _host, address, proxy, _sourceAddr, _timeout, _connectionId);
317
- }
318
-
319
- IceInternal::IPEndpointIPtr
320
- IceSSL::EndpointI::createEndpoint(const string& host, int port, const string& connectionId) const
321
- {
322
- return new EndpointI(_instance, host, port, _sourceAddr, _timeout, connectionId, _compress);
323
- }
324
-
325
- IceSSL::EndpointFactoryI::EndpointFactoryI(const InstancePtr& instance) : _instance(instance)
326
- {
347
+ return false;
327
348
  }
328
349
 
329
- IceSSL::EndpointFactoryI::~EndpointFactoryI()
350
+ IceSSL::EndpointFactoryI::EndpointFactoryI(const InstancePtr& instance, Short type) :
351
+ IceInternal::EndpointFactoryWithUnderlying(instance, type), _instance(instance.get())
330
352
  {
331
353
  }
332
354
 
333
- Short
334
- IceSSL::EndpointFactoryI::type() const
355
+ void
356
+ IceSSL::EndpointFactoryI::destroy()
335
357
  {
336
- return _instance->type();
358
+ _instance = 0;
337
359
  }
338
360
 
339
- string
340
- IceSSL::EndpointFactoryI::protocol() const
361
+ IceInternal::EndpointFactoryPtr
362
+ IceSSL::EndpointFactoryI::cloneWithUnderlying(const IceInternal::ProtocolInstancePtr& instance, Short underlying) const
341
363
  {
342
- return _instance->protocol();
364
+ return new EndpointFactoryI(new Instance(_instance->engine(), instance->type(), instance->protocol()), underlying);
343
365
  }
344
366
 
345
367
  IceInternal::EndpointIPtr
346
- IceSSL::EndpointFactoryI::create(vector<string>& args, bool oaEndpoint) const
368
+ IceSSL::EndpointFactoryI::createWithUnderlying(const IceInternal::EndpointIPtr& underlying, vector<string>&, bool) const
347
369
  {
348
- IceInternal::IPEndpointIPtr endpt = new EndpointI(_instance);
349
- endpt->initWithOptions(args, oaEndpoint);
350
- return endpt;
370
+ return ICE_MAKE_SHARED(EndpointI, _instance, underlying);
351
371
  }
352
372
 
353
373
  IceInternal::EndpointIPtr
354
- IceSSL::EndpointFactoryI::read(IceInternal::BasicStream* s) const
355
- {
356
- return new EndpointI(_instance, s);
357
- }
358
-
359
- void
360
- IceSSL::EndpointFactoryI::destroy()
361
- {
362
- _instance = 0;
363
- }
364
-
365
- IceInternal::EndpointFactoryPtr
366
- IceSSL::EndpointFactoryI::clone(const IceInternal::ProtocolInstancePtr& instance) const
374
+ IceSSL::EndpointFactoryI::readWithUnderlying(const IceInternal::EndpointIPtr& underlying, Ice::InputStream* s) const
367
375
  {
368
- return new EndpointFactoryI(new Instance(_instance->engine(), instance->type(), instance->protocol()));
376
+ return ICE_MAKE_SHARED(EndpointI, _instance, underlying);
369
377
  }