zeroc-ice 3.6.5 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (752) hide show
  1. checksums.yaml +4 -4
  2. data/BZIP2_LICENSE +42 -0
  3. data/ICE_LICENSE +17 -17
  4. data/LICENSE +12 -12
  5. data/bin/slice2rb +1 -1
  6. data/ext/Communicator.cpp +150 -53
  7. data/ext/Communicator.h +1 -1
  8. data/ext/Config.h +2 -12
  9. data/ext/Connection.cpp +89 -68
  10. data/ext/Connection.h +1 -1
  11. data/ext/Endpoint.cpp +16 -45
  12. data/ext/Endpoint.h +1 -1
  13. data/ext/ImplicitContext.cpp +1 -5
  14. data/ext/ImplicitContext.h +1 -1
  15. data/ext/Init.cpp +4 -1
  16. data/ext/Logger.cpp +1 -1
  17. data/ext/Logger.h +1 -1
  18. data/ext/Operation.cpp +33 -44
  19. data/ext/Operation.h +1 -1
  20. data/ext/Properties.cpp +1 -1
  21. data/ext/Properties.h +1 -1
  22. data/ext/Proxy.cpp +22 -57
  23. data/ext/Proxy.h +1 -1
  24. data/ext/Slice.cpp +5 -5
  25. data/ext/Slice.h +1 -1
  26. data/ext/Types.cpp +244 -171
  27. data/ext/Types.h +118 -66
  28. data/ext/Util.cpp +13 -9
  29. data/ext/Util.h +10 -10
  30. data/ext/ValueFactoryManager.cpp +445 -0
  31. data/ext/ValueFactoryManager.h +100 -0
  32. data/ext/extconf.rb +47 -45
  33. data/ext/ice/bzip2/blocksort.c +1094 -0
  34. data/ext/ice/bzip2/bzlib.c +1572 -0
  35. data/ext/ice/bzip2/bzlib.h +282 -0
  36. data/ext/ice/bzip2/bzlib_private.h +509 -0
  37. data/ext/ice/bzip2/compress.c +672 -0
  38. data/ext/ice/bzip2/crctable.c +104 -0
  39. data/ext/ice/bzip2/decompress.c +646 -0
  40. data/ext/ice/bzip2/huffman.c +205 -0
  41. data/ext/ice/bzip2/randtable.c +84 -0
  42. data/ext/ice/cpp/include/Ice/Application.h +77 -60
  43. data/ext/ice/cpp/include/Ice/AsyncResult.h +34 -318
  44. data/ext/ice/cpp/include/Ice/AsyncResultF.h +4 -2
  45. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +5 -10
  46. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
  47. data/ext/ice/cpp/include/Ice/Buffer.h +10 -10
  48. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +14 -12
  49. data/ext/ice/cpp/include/Ice/Comparable.h +130 -0
  50. data/ext/ice/cpp/include/Ice/Config.h +7 -36
  51. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +107 -11
  52. data/ext/ice/cpp/include/Ice/ConnectionIF.h +5 -1
  53. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +28 -0
  54. data/ext/ice/cpp/include/Ice/{DefaultObjectFactory.h → DefaultValueFactory.h} +28 -14
  55. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +4 -6
  56. data/ext/ice/cpp/include/Ice/Dispatcher.h +14 -13
  57. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +7 -5
  58. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  59. data/ext/ice/cpp/include/Ice/Exception.h +66 -56
  60. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +69 -0
  61. data/ext/ice/cpp/include/Ice/FactoryTable.h +11 -12
  62. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +27 -25
  63. data/ext/ice/cpp/include/Ice/Format.h +6 -1
  64. data/ext/ice/cpp/include/Ice/Functional.h +33 -33
  65. data/ext/ice/cpp/include/Ice/GCObject.h +9 -5
  66. data/ext/ice/cpp/include/Ice/Handle.h +6 -11
  67. data/ext/ice/cpp/include/Ice/Ice.h +9 -5
  68. data/ext/ice/cpp/include/{IceUtil → Ice}/IconvStringConverter.h +108 -62
  69. data/ext/ice/cpp/include/Ice/Incoming.h +109 -33
  70. data/ext/ice/cpp/include/Ice/IncomingAsync.h +63 -23
  71. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +7 -1
  72. data/ext/ice/cpp/include/Ice/Initialize.h +178 -38
  73. data/ext/ice/cpp/include/Ice/InputStream.h +994 -0
  74. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -2
  75. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +46 -0
  76. data/ext/ice/cpp/include/Ice/LocalObject.h +9 -9
  77. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  78. data/ext/ice/cpp/include/Ice/LoggerUtil.h +20 -14
  79. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +114 -65
  80. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +23 -5
  81. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +99 -26
  82. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +17 -4
  83. data/ext/ice/cpp/include/Ice/Object.h +105 -56
  84. data/ext/ice/cpp/include/Ice/ObjectF.h +8 -3
  85. data/ext/ice/cpp/include/Ice/ObserverHelper.h +18 -8
  86. data/ext/ice/cpp/include/Ice/Optional.h +1084 -0
  87. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +655 -84
  88. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +12 -6
  89. data/ext/ice/cpp/include/Ice/OutputStream.h +753 -0
  90. data/ext/ice/cpp/include/Ice/Protocol.h +19 -12
  91. data/ext/ice/cpp/include/Ice/Proxy.h +1329 -717
  92. data/ext/ice/cpp/include/Ice/ProxyF.h +11 -33
  93. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  94. data/ext/ice/cpp/include/Ice/ProxyHandle.h +34 -50
  95. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  96. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +22 -3
  97. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +10 -4
  98. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +6 -1
  99. data/ext/ice/cpp/include/{IceUtil → Ice}/SHA1.h +16 -16
  100. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  101. data/ext/ice/cpp/include/Ice/Service.h +13 -18
  102. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
  103. data/ext/ice/cpp/include/Ice/SlicedData.h +46 -20
  104. data/ext/ice/cpp/include/Ice/SlicedDataF.h +14 -6
  105. data/ext/ice/cpp/include/Ice/StreamHelpers.h +159 -49
  106. data/ext/ice/cpp/include/Ice/StringConverter.h +52 -0
  107. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  108. data/{slice/Ice/ObjectFactoryF.ice → ext/ice/cpp/include/Ice/UUID.h} +9 -7
  109. data/ext/ice/cpp/include/{IceUtil → Ice}/UniquePtr.h +21 -22
  110. data/ext/ice/cpp/include/Ice/UniqueRef.h +98 -0
  111. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +40 -8
  112. data/ext/ice/cpp/include/Ice/Value.h +104 -0
  113. data/{slice/Freeze/ConnectionF.ice → ext/ice/cpp/include/Ice/ValueF.h} +11 -7
  114. data/ext/ice/cpp/include/IceSSL/Config.h +8 -23
  115. data/ext/ice/cpp/include/IceSSL/IceSSL.h +17 -6
  116. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +130 -0
  117. data/ext/ice/cpp/include/IceSSL/Plugin.h +172 -259
  118. data/ext/ice/cpp/include/IceSSL/SChannel.h +66 -0
  119. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +66 -0
  120. data/ext/ice/cpp/include/IceSSL/UWP.h +58 -0
  121. data/ext/ice/cpp/include/IceUtil/Atomic.h +8 -10
  122. data/ext/ice/cpp/include/IceUtil/Cond.h +17 -18
  123. data/ext/ice/cpp/include/IceUtil/Config.h +138 -39
  124. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +97 -0
  125. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +5 -5
  126. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +23 -17
  127. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -3
  128. data/ext/ice/cpp/include/IceUtil/Exception.h +157 -67
  129. data/ext/ice/cpp/include/IceUtil/FileUtil.h +148 -0
  130. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -2
  131. data/ext/ice/cpp/include/IceUtil/Handle.h +11 -11
  132. data/ext/ice/cpp/include/IceUtil/IceUtil.h +4 -10
  133. data/ext/ice/cpp/include/IceUtil/InputUtil.h +3 -3
  134. data/ext/ice/cpp/include/IceUtil/Iterator.h +2 -2
  135. data/ext/ice/cpp/include/IceUtil/Lock.h +8 -10
  136. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -2
  137. data/ext/ice/cpp/include/IceUtil/Mutex.h +17 -11
  138. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +2 -2
  139. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
  140. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +4 -4
  141. data/ext/ice/cpp/include/IceUtil/Optional.h +32 -18
  142. data/ext/ice/cpp/include/IceUtil/Options.h +17 -18
  143. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +55 -29
  144. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +6 -6
  145. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +11 -10
  146. data/ext/ice/cpp/include/IceUtil/Random.h +3 -3
  147. data/ext/ice/cpp/include/IceUtil/RecMutex.h +7 -8
  148. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +58 -0
  149. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -9
  150. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +8 -2
  151. data/ext/ice/cpp/include/IceUtil/Shared.h +5 -7
  152. data/ext/ice/cpp/{src → include}/IceUtil/StopWatch.h +2 -2
  153. data/ext/ice/cpp/include/IceUtil/StringConverter.h +77 -72
  154. data/ext/ice/cpp/include/IceUtil/StringUtil.h +32 -21
  155. data/ext/ice/cpp/include/IceUtil/Thread.h +10 -12
  156. data/ext/ice/cpp/include/IceUtil/ThreadException.h +33 -42
  157. data/ext/ice/cpp/include/IceUtil/Time.h +3 -3
  158. data/ext/ice/cpp/include/IceUtil/Timer.h +14 -13
  159. data/ext/ice/cpp/include/IceUtil/UUID.h +2 -2
  160. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  161. data/ext/ice/cpp/include/{Ice → generated/Ice}/BuiltinSequences.h +41 -8
  162. data/ext/ice/cpp/include/generated/Ice/Communicator.h +364 -0
  163. data/ext/ice/cpp/include/{Ice → generated/Ice}/CommunicatorF.h +40 -8
  164. data/ext/ice/cpp/include/generated/Ice/Connection.h +872 -0
  165. data/ext/ice/cpp/include/{Ice → generated/Ice}/ConnectionF.h +46 -8
  166. data/ext/ice/cpp/include/{Ice → generated/Ice}/Current.h +71 -8
  167. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +582 -0
  168. data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointF.h +62 -8
  169. data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointTypes.h +31 -16
  170. data/ext/ice/cpp/include/{Ice → generated/Ice}/FacetMap.h +23 -8
  171. data/ext/ice/cpp/include/generated/Ice/Identity.h +221 -0
  172. data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContext.h +72 -13
  173. data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContextF.h +40 -8
  174. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +602 -0
  175. data/ext/ice/cpp/include/{Ice → generated/Ice}/InstrumentationF.h +54 -8
  176. data/ext/ice/cpp/include/generated/Ice/LocalException.h +2802 -0
  177. data/ext/ice/cpp/include/generated/Ice/Locator.h +2036 -0
  178. data/ext/ice/cpp/include/{Ice → generated/Ice}/LocatorF.h +53 -12
  179. data/ext/ice/cpp/include/{Ice → generated/Ice}/Logger.h +71 -13
  180. data/ext/ice/cpp/include/{Ice → generated/Ice}/LoggerF.h +40 -8
  181. data/ext/ice/cpp/include/generated/Ice/Metrics.h +2649 -0
  182. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +302 -0
  183. data/ext/ice/cpp/include/{Ice → generated/Ice}/ObjectAdapterF.h +40 -8
  184. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +142 -0
  185. data/ext/ice/cpp/include/generated/Ice/Plugin.h +197 -0
  186. data/ext/ice/cpp/include/{Ice → generated/Ice}/PluginF.h +43 -8
  187. data/ext/ice/cpp/include/generated/Ice/Process.h +536 -0
  188. data/ext/ice/cpp/include/{Ice → generated/Ice}/ProcessF.h +45 -10
  189. data/ext/ice/cpp/include/{Ice → generated/Ice}/Properties.h +88 -21
  190. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +749 -0
  191. data/ext/ice/cpp/include/{Ice → generated/Ice}/PropertiesF.h +48 -10
  192. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1449 -0
  193. data/ext/ice/cpp/include/generated/Ice/Router.h +1032 -0
  194. data/ext/ice/cpp/include/{Ice → generated/Ice}/RouterF.h +45 -10
  195. data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocator.h +65 -13
  196. data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocatorF.h +40 -8
  197. data/ext/ice/cpp/include/{Ice → generated/Ice}/SliceChecksumDict.h +23 -8
  198. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +169 -0
  199. data/ext/ice/cpp/include/generated/Ice/Version.h +334 -0
  200. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +172 -0
  201. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +98 -0
  202. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +156 -0
  203. data/ext/ice/cpp/src/Ice/ACM.cpp +18 -14
  204. data/ext/ice/cpp/src/Ice/ACM.h +9 -2
  205. data/ext/ice/cpp/{include → src}/Ice/ACMF.h +10 -5
  206. data/ext/ice/cpp/src/Ice/Acceptor.cpp +6 -1
  207. data/ext/ice/cpp/src/Ice/Acceptor.h +4 -3
  208. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  209. data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.cpp +9 -9
  210. data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.h +7 -7
  211. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +15 -538
  212. data/ext/ice/cpp/src/Ice/Base64.cpp +11 -11
  213. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  214. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +40 -12
  215. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +15 -10
  216. data/ext/ice/cpp/src/Ice/Buffer.cpp +74 -12
  217. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +20 -6
  218. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +85 -190
  219. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +17 -18
  220. data/ext/ice/cpp/src/Ice/Communicator.cpp +39 -8
  221. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +27 -5
  222. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +271 -104
  223. data/ext/ice/cpp/src/Ice/CommunicatorI.h +84 -28
  224. data/ext/ice/cpp/src/{IceUtil → Ice}/Cond.cpp +3 -3
  225. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +58 -125
  226. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +11 -22
  227. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +6 -2
  228. data/ext/ice/cpp/src/Ice/Connection.cpp +88 -8
  229. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +27 -5
  230. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +158 -80
  231. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +41 -23
  232. data/ext/ice/cpp/{include → src}/Ice/ConnectionFactoryF.h +8 -3
  233. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +707 -653
  234. data/ext/ice/cpp/src/Ice/ConnectionI.h +97 -69
  235. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +2 -15
  236. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +4 -3
  237. data/ext/ice/cpp/src/Ice/Connector.cpp +6 -1
  238. data/ext/ice/cpp/src/Ice/Connector.h +4 -3
  239. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  240. data/ext/ice/cpp/src/{IceUtil → Ice}/CountDownLatch.cpp +4 -4
  241. data/ext/ice/cpp/src/Ice/Current.cpp +29 -6
  242. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +6 -5
  243. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  244. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  245. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +5 -25
  246. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +29 -19
  247. data/ext/ice/cpp/src/Ice/Endpoint.cpp +85 -6
  248. data/ext/ice/cpp/src/Ice/EndpointF.cpp +27 -5
  249. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +152 -1
  250. data/ext/ice/cpp/src/Ice/EndpointFactory.h +72 -6
  251. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  252. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +35 -19
  253. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +10 -4
  254. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  255. data/ext/ice/cpp/src/Ice/EndpointI.cpp +17 -1
  256. data/ext/ice/cpp/src/Ice/EndpointI.h +35 -9
  257. data/ext/ice/cpp/src/Ice/EndpointIF.h +18 -5
  258. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +18 -6
  259. data/ext/ice/cpp/src/Ice/EventHandler.cpp +6 -4
  260. data/ext/ice/cpp/src/Ice/EventHandler.h +13 -8
  261. data/ext/ice/cpp/src/Ice/EventHandlerF.h +5 -2
  262. data/ext/ice/cpp/src/Ice/Exception.cpp +95 -86
  263. data/ext/ice/cpp/src/Ice/FacetMap.cpp +20 -6
  264. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +37 -28
  265. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -4
  266. data/ext/ice/cpp/src/Ice/GCObject.cpp +28 -25
  267. data/ext/ice/cpp/src/Ice/HashUtil.h +2 -3
  268. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -2
  269. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
  270. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +92 -53
  271. data/ext/ice/cpp/src/Ice/IPEndpointI.h +19 -10
  272. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +6 -2
  273. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +56 -0
  274. data/ext/ice/cpp/src/Ice/Identity.cpp +24 -10
  275. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +37 -6
  276. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +27 -5
  277. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +14 -14
  278. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +7 -5
  279. data/ext/ice/cpp/src/Ice/Incoming.cpp +276 -245
  280. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +104 -209
  281. data/ext/ice/cpp/src/Ice/IncomingRequest.h +5 -4
  282. data/ext/ice/cpp/src/Ice/Initialize.cpp +299 -172
  283. data/ext/ice/cpp/src/Ice/InputStream.cpp +2773 -0
  284. data/ext/ice/cpp/src/Ice/Instance.cpp +191 -231
  285. data/ext/ice/cpp/src/Ice/Instance.h +30 -18
  286. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +106 -7
  287. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +27 -5
  288. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +117 -99
  289. data/ext/ice/cpp/src/Ice/InstrumentationI.h +30 -31
  290. data/ext/ice/cpp/src/Ice/LocalException.cpp +1190 -416
  291. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -2
  292. data/ext/ice/cpp/src/Ice/Locator.cpp +1167 -1215
  293. data/ext/ice/cpp/src/Ice/LocatorF.cpp +29 -6
  294. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +129 -163
  295. data/ext/ice/cpp/src/Ice/LocatorInfo.h +29 -29
  296. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  297. data/ext/ice/cpp/src/Ice/Logger.cpp +35 -5
  298. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +178 -73
  299. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +4 -4
  300. data/ext/ice/cpp/src/Ice/LoggerF.cpp +27 -5
  301. data/ext/ice/cpp/src/Ice/LoggerI.cpp +14 -44
  302. data/ext/ice/cpp/src/Ice/LoggerI.h +7 -13
  303. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +10 -12
  304. data/ext/ice/cpp/src/Ice/Metrics.cpp +1059 -1069
  305. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +49 -19
  306. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -2
  307. data/ext/ice/cpp/src/Ice/Network.cpp +534 -170
  308. data/ext/ice/cpp/src/Ice/Network.h +100 -23
  309. data/ext/ice/cpp/src/Ice/NetworkF.h +2 -2
  310. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +21 -14
  311. data/ext/ice/cpp/src/Ice/NetworkProxy.h +5 -2
  312. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  313. data/ext/ice/cpp/src/Ice/Object.cpp +217 -221
  314. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -6
  315. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +27 -5
  316. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +35 -14
  317. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +13 -7
  318. data/ext/ice/cpp/{include → src}/Ice/ObjectAdapterFactoryF.h +5 -1
  319. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +184 -58
  320. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +32 -26
  321. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +37 -6
  322. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +9 -32
  323. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +40 -18
  324. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +14 -5
  325. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +803 -365
  326. data/ext/ice/cpp/src/Ice/OutputStream.cpp +1399 -0
  327. data/ext/ice/cpp/src/Ice/Plugin.cpp +45 -6
  328. data/ext/ice/cpp/src/Ice/PluginF.cpp +27 -5
  329. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +13 -13
  330. data/ext/ice/cpp/src/Ice/PluginManagerI.h +5 -6
  331. data/ext/ice/cpp/src/Ice/Process.cpp +256 -114
  332. data/ext/ice/cpp/src/Ice/ProcessF.cpp +29 -6
  333. data/ext/ice/cpp/src/Ice/Properties.cpp +38 -8
  334. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +340 -328
  335. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +81 -17
  336. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +29 -5
  337. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +29 -6
  338. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +25 -26
  339. data/ext/ice/cpp/src/Ice/PropertiesI.h +8 -11
  340. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +107 -50
  341. data/ext/ice/cpp/src/Ice/PropertyNames.h +4 -2
  342. data/ext/ice/cpp/src/Ice/Protocol.cpp +2 -2
  343. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +37 -2
  344. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +9 -20
  345. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  346. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +6 -1
  347. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +3 -1
  348. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  349. data/ext/ice/cpp/src/Ice/Proxy.cpp +690 -964
  350. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +23 -32
  351. data/ext/ice/cpp/src/Ice/ProxyFactory.h +16 -11
  352. data/ext/ice/cpp/src/Ice/Reference.cpp +75 -69
  353. data/ext/ice/cpp/src/Ice/Reference.h +27 -22
  354. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +18 -21
  355. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +12 -12
  356. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  357. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +18 -4
  358. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
  359. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +672 -552
  360. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  361. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +5 -3
  362. data/ext/ice/cpp/src/Ice/RequestHandler.h +10 -13
  363. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +10 -6
  364. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +2 -2
  365. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +3 -6
  366. data/ext/ice/cpp/src/Ice/ResponseHandler.h +16 -7
  367. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +6 -12
  368. data/ext/ice/cpp/src/Ice/RetryQueue.h +7 -6
  369. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  370. data/ext/ice/cpp/src/Ice/Router.cpp +523 -474
  371. data/ext/ice/cpp/src/Ice/RouterF.cpp +29 -6
  372. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +91 -70
  373. data/ext/ice/cpp/src/Ice/RouterInfo.h +43 -32
  374. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  375. data/ext/ice/cpp/src/{IceUtil → Ice}/SHA1.cpp +21 -21
  376. data/ext/ice/cpp/src/Ice/Selector.cpp +989 -923
  377. data/ext/ice/cpp/src/Ice/Selector.h +100 -147
  378. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +37 -6
  379. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +27 -5
  380. data/ext/ice/cpp/src/Ice/ServantManager.cpp +9 -9
  381. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  382. data/ext/ice/cpp/src/Ice/SharedContext.h +2 -2
  383. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +20 -6
  384. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +2 -2
  385. data/ext/ice/cpp/src/Ice/SlicedData.cpp +72 -20
  386. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +173 -18
  387. data/ext/ice/cpp/src/Ice/StreamSocket.h +13 -4
  388. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +48 -17
  389. data/ext/ice/cpp/src/Ice/StringUtil.h +35 -0
  390. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +8 -4
  391. data/ext/ice/cpp/src/Ice/SysLoggerI.h +2 -3
  392. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +158 -32
  393. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +12 -5
  394. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -7
  395. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -2
  396. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +40 -32
  397. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +11 -8
  398. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +12 -27
  399. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -10
  400. data/ext/ice/cpp/src/{IceUtil → Ice}/Thread.cpp +24 -41
  401. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +175 -267
  402. data/ext/ice/cpp/src/Ice/ThreadPool.h +38 -43
  403. data/ext/ice/cpp/src/{IceUtil → Ice}/Timer.cpp +28 -21
  404. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
  405. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  406. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +2 -2
  407. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +53 -31
  408. data/ext/ice/cpp/src/Ice/TraceUtil.h +13 -6
  409. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -2
  410. data/ext/ice/cpp/src/Ice/Transceiver.h +8 -7
  411. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  412. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +2 -8
  413. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -2
  414. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +92 -31
  415. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +12 -4
  416. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +150 -179
  417. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +15 -17
  418. data/ext/ice/cpp/src/Ice/Value.cpp +81 -0
  419. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +84 -0
  420. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +70 -0
  421. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +42 -0
  422. data/ext/ice/cpp/src/Ice/Version.cpp +24 -14
  423. data/ext/ice/cpp/src/Ice/VirtualShared.h +43 -0
  424. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +3 -9
  425. data/ext/ice/cpp/src/Ice/WSAcceptor.h +3 -7
  426. data/ext/ice/cpp/src/Ice/WSConnector.cpp +5 -11
  427. data/ext/ice/cpp/src/Ice/WSConnector.h +3 -6
  428. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +185 -80
  429. data/ext/ice/cpp/src/Ice/WSEndpoint.h +21 -31
  430. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +41 -37
  431. data/ext/ice/cpp/src/Ice/WSTransceiver.h +7 -21
  432. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +526 -264
  433. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +341 -455
  434. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +86 -26
  435. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +59 -23
  436. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +315 -61
  437. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +83 -36
  438. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +57 -59
  439. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +3 -3
  440. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +396 -159
  441. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +251 -355
  442. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +52 -0
  443. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +526 -131
  444. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +19 -165
  445. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +8 -17
  446. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +284 -0
  447. data/ext/ice/cpp/src/IceSSL/CertificateI.h +69 -0
  448. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +39 -11
  449. data/ext/ice/cpp/src/{Ice/ObjectFactoryF.cpp → IceSSL/ConnectionInfoF.cpp} +31 -9
  450. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +14 -56
  451. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +6 -13
  452. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +205 -197
  453. data/ext/ice/cpp/src/IceSSL/EndpointI.h +41 -33
  454. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +39 -10
  455. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
  456. data/ext/ice/cpp/src/IceSSL/Instance.h +7 -7
  457. data/ext/ice/cpp/src/IceSSL/InstanceF.h +11 -7
  458. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +588 -0
  459. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +117 -152
  460. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +64 -0
  461. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +32 -0
  462. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +132 -0
  463. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +400 -89
  464. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +36 -21
  465. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +291 -0
  466. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +63 -0
  467. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +71 -41
  468. data/ext/ice/cpp/src/IceSSL/PluginI.h +13 -18
  469. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +9 -54
  470. data/ext/ice/cpp/src/IceSSL/RFC2253.h +7 -7
  471. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +585 -0
  472. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +491 -75
  473. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +126 -0
  474. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +32 -0
  475. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +78 -0
  476. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +126 -169
  477. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +19 -22
  478. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +79 -74
  479. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +24 -187
  480. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +4 -19
  481. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +862 -0
  482. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +56 -214
  483. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +60 -0
  484. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +31 -0
  485. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +80 -0
  486. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +137 -144
  487. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +25 -28
  488. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +857 -0
  489. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +46 -0
  490. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +9 -13
  491. data/ext/ice/cpp/src/IceSSL/TrustManager.h +4 -4
  492. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +3 -3
  493. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +271 -0
  494. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +343 -0
  495. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +46 -0
  496. data/ext/ice/cpp/{include/Ice/ObjectFactoryManagerF.h → src/IceSSL/UWPEngineF.h} +13 -8
  497. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +94 -0
  498. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +388 -0
  499. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +76 -0
  500. data/ext/ice/cpp/src/IceSSL/Util.cpp +66 -1256
  501. data/ext/ice/cpp/src/IceSSL/Util.h +48 -137
  502. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +162 -0
  503. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +22 -22
  504. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +34 -26
  505. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +20 -31
  506. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +25 -116
  507. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  508. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  509. data/ext/ice/cpp/src/IceUtil/Options.cpp +23 -46
  510. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +7 -6
  511. data/ext/ice/cpp/src/IceUtil/Random.cpp +13 -13
  512. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +3 -9
  513. data/ext/ice/cpp/src/IceUtil/Shared.cpp +8 -3
  514. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +501 -264
  515. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +540 -235
  516. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +37 -74
  517. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  518. data/ext/ice/cpp/src/IceUtil/UUID.cpp +10 -10
  519. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +98 -97
  520. data/ext/ice/cpp/src/IceUtil/Unicode.h +21 -35
  521. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +838 -0
  522. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +815 -163
  523. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +76 -0
  524. data/ext/ice/cpp/src/Slice/Checksum.cpp +2 -2
  525. data/ext/ice/cpp/{include → src}/Slice/Checksum.h +2 -2
  526. data/ext/ice/cpp/src/Slice/FileTracker.cpp +25 -78
  527. data/ext/ice/cpp/{include → src}/Slice/FileTracker.h +9 -9
  528. data/ext/ice/cpp/src/Slice/Grammar.cpp +1994 -1943
  529. data/ext/ice/cpp/src/Slice/Grammar.h +44 -24
  530. data/ext/ice/cpp/src/Slice/GrammarUtil.h +14 -14
  531. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +2658 -1927
  532. data/ext/ice/cpp/{include → src}/Slice/JavaUtil.h +178 -59
  533. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  534. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  535. data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -1
  536. data/ext/ice/cpp/src/Slice/MD5I.h +1 -1
  537. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +12 -15
  538. data/ext/ice/cpp/{include → src}/Slice/PHPUtil.h +6 -15
  539. data/ext/ice/cpp/src/Slice/Parser.cpp +802 -307
  540. data/ext/ice/cpp/{include → src}/Slice/Parser.h +76 -84
  541. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +43 -21
  542. data/ext/ice/cpp/{include → src}/Slice/Preprocessor.h +7 -12
  543. data/ext/ice/cpp/src/Slice/Python.cpp +207 -86
  544. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +683 -679
  545. data/ext/ice/cpp/{include → src}/Slice/PythonUtil.h +19 -8
  546. data/ext/ice/cpp/src/Slice/Ruby.cpp +38 -34
  547. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +177 -445
  548. data/ext/ice/cpp/{include → src}/Slice/RubyUtil.h +6 -6
  549. data/ext/ice/cpp/src/Slice/Scanner.cpp +218 -306
  550. data/ext/ice/cpp/src/Slice/{Util.cpp → SliceUtil.cpp} +37 -64
  551. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +374 -0
  552. data/ext/ice/cpp/src/Slice/Util.h +54 -0
  553. data/ext/ice/mcpp/Makefile +5 -2
  554. data/ice.gemspec +2 -7
  555. data/lib/Glacier2.rb +1 -1
  556. data/lib/Glacier2/Metrics.rb +7 -46
  557. data/lib/Glacier2/PermissionsVerifier.rb +24 -95
  558. data/lib/Glacier2/PermissionsVerifierF.rb +3 -3
  559. data/lib/Glacier2/Router.rb +32 -74
  560. data/lib/Glacier2/RouterF.rb +3 -3
  561. data/lib/Glacier2/SSLInfo.rb +4 -7
  562. data/lib/Glacier2/Session.rb +88 -307
  563. data/lib/Ice.rb +83 -52
  564. data/lib/Ice/BuiltinSequences.rb +4 -4
  565. data/lib/Ice/Communicator.rb +56 -58
  566. data/lib/Ice/CommunicatorF.rb +3 -3
  567. data/lib/Ice/Connection.rb +153 -162
  568. data/lib/Ice/ConnectionF.rb +3 -3
  569. data/lib/Ice/Current.rb +4 -11
  570. data/lib/Ice/Endpoint.rb +57 -133
  571. data/lib/Ice/EndpointF.rb +3 -3
  572. data/lib/Ice/EndpointTypes.rb +3 -7
  573. data/lib/Ice/FacetMap.rb +4 -4
  574. data/lib/Ice/Identity.rb +5 -8
  575. data/lib/Ice/ImplicitContext.rb +5 -34
  576. data/lib/Ice/ImplicitContextF.rb +3 -3
  577. data/lib/Ice/Instrumentation.rb +23 -275
  578. data/lib/Ice/InstrumentationF.rb +3 -3
  579. data/lib/Ice/LocalException.rb +95 -141
  580. data/lib/Ice/Locator.rb +51 -165
  581. data/lib/Ice/LocatorF.rb +3 -3
  582. data/lib/Ice/Logger.rb +5 -34
  583. data/lib/Ice/LoggerF.rb +3 -3
  584. data/lib/Ice/Metrics.rb +61 -416
  585. data/lib/Ice/ObjectAdapter.rb +34 -0
  586. data/lib/Ice/ObjectAdapterF.rb +3 -3
  587. data/lib/Ice/ObjectFactory.rb +5 -30
  588. data/lib/Ice/Plugin.rb +7 -60
  589. data/lib/Ice/PluginF.rb +3 -3
  590. data/lib/Ice/Process.rb +16 -52
  591. data/lib/Ice/ProcessF.rb +3 -3
  592. data/lib/Ice/Properties.rb +5 -41
  593. data/lib/Ice/PropertiesAdmin.rb +19 -56
  594. data/lib/Ice/PropertiesF.rb +3 -3
  595. data/lib/Ice/RemoteLogger.rb +34 -115
  596. data/lib/Ice/Router.rb +29 -101
  597. data/lib/Ice/RouterF.rb +3 -3
  598. data/lib/Ice/ServantLocator.rb +31 -0
  599. data/lib/Ice/{ObjectFactoryF.rb → ServantLocatorF.rb} +6 -6
  600. data/lib/Ice/SliceChecksumDict.rb +3 -3
  601. data/lib/Ice/ValueFactory.rb +33 -0
  602. data/lib/Ice/Version.rb +5 -11
  603. data/lib/IceBox.rb +1 -1
  604. data/lib/IceBox/IceBox.rb +44 -148
  605. data/lib/IceGrid.rb +1 -4
  606. data/lib/IceGrid/Admin.rb +551 -427
  607. data/lib/IceGrid/Descriptor.rb +62 -529
  608. data/lib/IceGrid/Exception.rb +24 -45
  609. data/lib/IceGrid/FileParser.rb +14 -50
  610. data/lib/IceGrid/PluginFacade.rb +40 -0
  611. data/lib/IceGrid/Registry.rb +151 -58
  612. data/lib/IceGrid/Session.rb +25 -64
  613. data/lib/IceGrid/UserAccountMapper.rb +14 -50
  614. data/lib/IcePatch2.rb +1 -1
  615. data/lib/IcePatch2/FileInfo.rb +5 -11
  616. data/lib/IcePatch2/FileServer.rb +33 -76
  617. data/lib/IceStorm.rb +1 -1
  618. data/lib/IceStorm/IceStorm.rb +79 -206
  619. data/lib/IceStorm/Metrics.rb +11 -89
  620. data/slice/Glacier2/Metrics.ice +8 -4
  621. data/slice/Glacier2/PermissionsVerifier.ice +10 -7
  622. data/slice/Glacier2/PermissionsVerifierF.ice +7 -4
  623. data/slice/Glacier2/Router.ice +10 -8
  624. data/slice/Glacier2/RouterF.ice +7 -4
  625. data/slice/Glacier2/SSLInfo.ice +8 -5
  626. data/slice/Glacier2/Session.ice +15 -13
  627. data/slice/Ice/BuiltinSequences.ice +7 -4
  628. data/slice/Ice/Communicator.ice +141 -66
  629. data/slice/Ice/CommunicatorF.ice +7 -4
  630. data/slice/Ice/Connection.ice +183 -86
  631. data/slice/Ice/ConnectionF.ice +7 -4
  632. data/slice/Ice/Current.ice +13 -9
  633. data/slice/Ice/Endpoint.ice +63 -14
  634. data/slice/Ice/EndpointF.ice +7 -4
  635. data/slice/Ice/EndpointTypes.ice +8 -6
  636. data/slice/Ice/FacetMap.ice +7 -4
  637. data/slice/Ice/Identity.ice +13 -5
  638. data/slice/Ice/ImplicitContext.ice +20 -18
  639. data/slice/Ice/ImplicitContextF.ice +7 -4
  640. data/slice/Ice/Instrumentation.ice +20 -19
  641. data/slice/Ice/InstrumentationF.ice +8 -5
  642. data/slice/Ice/LocalException.ice +87 -87
  643. data/slice/Ice/Locator.ice +19 -18
  644. data/slice/Ice/LocatorF.ice +7 -4
  645. data/slice/Ice/Logger.ice +9 -7
  646. data/slice/Ice/LoggerF.ice +7 -4
  647. data/slice/Ice/Metrics.ice +18 -14
  648. data/slice/Ice/ObjectAdapter.ice +30 -13
  649. data/slice/Ice/ObjectAdapterF.ice +7 -4
  650. data/slice/Ice/ObjectFactory.ice +15 -12
  651. data/slice/Ice/Plugin.ice +9 -6
  652. data/slice/Ice/PluginF.ice +8 -5
  653. data/slice/Ice/Process.ice +9 -6
  654. data/slice/Ice/ProcessF.ice +7 -4
  655. data/slice/Ice/Properties.ice +15 -12
  656. data/slice/Ice/PropertiesAdmin.ice +9 -5
  657. data/slice/Ice/PropertiesF.ice +7 -4
  658. data/slice/Ice/RemoteLogger.ice +33 -24
  659. data/slice/Ice/Router.ice +16 -7
  660. data/slice/Ice/RouterF.ice +7 -4
  661. data/slice/Ice/ServantLocator.ice +13 -10
  662. data/slice/Ice/ServantLocatorF.ice +7 -4
  663. data/slice/Ice/SliceChecksumDict.ice +7 -4
  664. data/slice/Ice/ValueFactory.ice +127 -0
  665. data/slice/Ice/Version.ice +9 -5
  666. data/slice/IceBT/ConnectionInfo.ice +53 -0
  667. data/slice/IceBT/EndpointInfo.ice +51 -0
  668. data/slice/IceBT/Types.ice +39 -0
  669. data/slice/IceBox/IceBox.ice +20 -21
  670. data/slice/IceDiscovery/IceDiscovery.ice +9 -5
  671. data/slice/IceGrid/Admin.ice +390 -30
  672. data/slice/IceGrid/Descriptor.ice +37 -29
  673. data/slice/IceGrid/Exception.ice +33 -27
  674. data/slice/IceGrid/FileParser.ice +9 -6
  675. data/slice/IceGrid/PluginFacade.ice +11 -9
  676. data/slice/IceGrid/Registry.ice +139 -16
  677. data/slice/IceGrid/Session.ice +10 -8
  678. data/slice/IceGrid/UserAccountMapper.ice +9 -6
  679. data/slice/IceIAP/ConnectionInfo.ice +70 -0
  680. data/slice/IceIAP/EndpointInfo.ice +64 -0
  681. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +9 -7
  682. data/slice/IcePatch2/FileInfo.ice +9 -8
  683. data/slice/IcePatch2/FileServer.ice +17 -13
  684. data/slice/IceSSL/ConnectionInfo.ice +14 -17
  685. data/slice/IceSSL/ConnectionInfoF.ice +24 -0
  686. data/slice/IceSSL/EndpointInfo.ice +9 -30
  687. data/slice/IceStorm/IceStorm.ice +22 -18
  688. data/slice/IceStorm/Metrics.ice +9 -5
  689. metadata +154 -120
  690. data/ext/ObjectFactory.cpp +0 -140
  691. data/ext/ObjectFactory.h +0 -50
  692. data/ext/ice/cpp/include/Ice/BasicStream.h +0 -1335
  693. data/ext/ice/cpp/include/Ice/Communicator.h +0 -200
  694. data/ext/ice/cpp/include/Ice/Connection.h +0 -497
  695. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +0 -62
  696. data/ext/ice/cpp/include/Ice/Endpoint.h +0 -341
  697. data/ext/ice/cpp/include/Ice/Identity.h +0 -168
  698. data/ext/ice/cpp/include/Ice/Instrumentation.h +0 -365
  699. data/ext/ice/cpp/include/Ice/LocalException.h +0 -1030
  700. data/ext/ice/cpp/include/Ice/Locator.h +0 -2193
  701. data/ext/ice/cpp/include/Ice/Metrics.h +0 -2974
  702. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +0 -168
  703. data/ext/ice/cpp/include/Ice/ObjectFactory.h +0 -92
  704. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +0 -66
  705. data/ext/ice/cpp/include/Ice/Outgoing.h +0 -225
  706. data/ext/ice/cpp/include/Ice/Plugin.h +0 -125
  707. data/ext/ice/cpp/include/Ice/Process.h +0 -574
  708. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +0 -830
  709. data/ext/ice/cpp/include/Ice/RemoteLogger.h +0 -1500
  710. data/ext/ice/cpp/include/Ice/Router.h +0 -1159
  711. data/ext/ice/cpp/include/Ice/Stream.h +0 -447
  712. data/ext/ice/cpp/include/Ice/StreamF.h +0 -30
  713. data/ext/ice/cpp/include/Ice/Version.h +0 -262
  714. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +0 -158
  715. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +0 -142
  716. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +0 -119
  717. data/ext/ice/cpp/include/IceUtil/Cache.h +0 -362
  718. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +0 -65
  719. data/ext/ice/cpp/include/Slice/CsUtil.h +0 -92
  720. data/ext/ice/cpp/include/Slice/DotNetNames.h +0 -34
  721. data/ext/ice/cpp/include/Slice/ObjCUtil.h +0 -127
  722. data/ext/ice/cpp/include/Slice/Util.h +0 -56
  723. data/ext/ice/cpp/src/Ice/BasicStream.cpp +0 -3428
  724. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +0 -62
  725. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +0 -139
  726. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +0 -43
  727. data/ext/ice/cpp/src/Ice/Outgoing.cpp +0 -694
  728. data/ext/ice/cpp/src/Ice/Stream.cpp +0 -53
  729. data/ext/ice/cpp/src/Ice/StreamI.cpp +0 -832
  730. data/ext/ice/cpp/src/Ice/StreamI.h +0 -198
  731. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +0 -1336
  732. data/ext/ice/cpp/src/IceUtil/Exception.cpp +0 -792
  733. data/ext/ice/cpp/src/IceUtil/FileUtil.h +0 -185
  734. data/ext/ice/cpp/src/Slice/CsUtil.cpp +0 -2660
  735. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +0 -146
  736. data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +0 -1310
  737. data/lib/IceGrid/Locator.rb +0 -106
  738. data/lib/IceGrid/Observer.rb +0 -572
  739. data/lib/IceGrid/Query.rb +0 -169
  740. data/slice/Freeze/BackgroundSaveEvictor.ice +0 -111
  741. data/slice/Freeze/CatalogData.ice +0 -49
  742. data/slice/Freeze/Connection.ice +0 -121
  743. data/slice/Freeze/DB.ice +0 -37
  744. data/slice/Freeze/Evictor.ice +0 -346
  745. data/slice/Freeze/EvictorF.ice +0 -22
  746. data/slice/Freeze/EvictorStorage.ice +0 -72
  747. data/slice/Freeze/Exception.ice +0 -100
  748. data/slice/Freeze/Transaction.ice +0 -58
  749. data/slice/Freeze/TransactionalEvictor.ice +0 -50
  750. data/slice/IceGrid/Locator.ice +0 -57
  751. data/slice/IceGrid/Observer.ice +0 -395
  752. data/slice/IceGrid/Query.ice +0 -131
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -18,7 +18,7 @@
18
18
  #include <Ice/ProxyFactory.h>
19
19
  #include <Ice/ThreadPool.h>
20
20
  #include <Ice/ConnectionFactory.h>
21
- #include <Ice/ObjectFactoryManager.h>
21
+ #include <Ice/ValueFactoryManagerI.h>
22
22
  #include <Ice/LocalException.h>
23
23
  #include <Ice/ObjectAdapterFactory.h>
24
24
  #include <Ice/Exception.h>
@@ -42,9 +42,13 @@
42
42
  #include <Ice/LoggerAdminI.h>
43
43
  #include <Ice/RegisterPluginsInit.h>
44
44
  #include <Ice/ObserverHelper.h>
45
+ #include <Ice/Functional.h>
46
+ #include <Ice/ConsoleUtil.h>
45
47
 
48
+ #include <IceUtil/DisableWarnings.h>
49
+ #include <IceUtil/FileUtil.h>
46
50
  #include <IceUtil/StringUtil.h>
47
- #include <IceUtil/UUID.h>
51
+ #include <Ice/UUID.h>
48
52
  #include <IceUtil/Mutex.h>
49
53
  #include <IceUtil/MutexPtrLock.h>
50
54
  #include <IceUtil/Atomic.h>
@@ -61,7 +65,7 @@
61
65
  # include <sys/types.h>
62
66
  #endif
63
67
 
64
- #if defined(__linux__) || defined(__sun) || defined(_AIX) || defined(__GLIBC__)
68
+ #if defined(__linux) || defined(__sun) || defined(_AIX) || defined(__GLIBC__)
65
69
  # include <grp.h> // for initgroups
66
70
  #endif
67
71
 
@@ -72,8 +76,8 @@ using namespace IceInternal;
72
76
  namespace IceUtilInternal
73
77
  {
74
78
 
75
- extern bool ICE_UTIL_API nullHandleAbort;
76
- extern bool ICE_UTIL_API printStackTraces;
79
+ extern bool nullHandleAbort;
80
+ extern bool printStackTraces;
77
81
 
78
82
  };
79
83
 
@@ -138,16 +142,16 @@ public:
138
142
 
139
143
  if(notDestroyedCount > 0)
140
144
  {
141
- cerr << "!! " << IceUtil::Time::now().toDateTime() << " error: ";
145
+ consoleErr << "!! " << IceUtil::Time::now().toDateTime() << " error: ";
142
146
  if(notDestroyedCount == 1)
143
147
  {
144
- cerr << "communicator ";
148
+ consoleErr << "communicator ";
145
149
  }
146
150
  else
147
151
  {
148
- cerr << notDestroyedCount << " communicators ";
152
+ consoleErr << notDestroyedCount << " communicators ";
149
153
  }
150
- cerr << "not destroyed during global destruction.";
154
+ consoleErr << "not destroyed during global destruction.";
151
155
  }
152
156
 
153
157
  delete instanceList;
@@ -226,7 +230,7 @@ Timer::updateObserver(const Ice::Instrumentation::CommunicatorObserverPtr& obsv)
226
230
  assert(obsv);
227
231
  _observer.attach(obsv->getThreadObserver("Communicator",
228
232
  "Ice.Timer",
229
- Ice::Instrumentation::ThreadStateIdle,
233
+ Instrumentation::ICE_ENUM(ThreadState, ThreadStateIdle),
230
234
  _observer.get()));
231
235
  _hasObserver.exchange(_observer.get() ? 1 : 0);
232
236
  }
@@ -243,8 +247,8 @@ Timer::runTimerTask(const IceUtil::TimerTaskPtr& task)
243
247
  }
244
248
  if(threadObserver)
245
249
  {
246
- threadObserver->stateChanged(Ice::Instrumentation::ThreadStateIdle,
247
- Ice::Instrumentation::ThreadStateInUseForOther);
250
+ threadObserver->stateChanged(Instrumentation::ICE_ENUM(ThreadState, ThreadStateIdle),
251
+ Instrumentation::ICE_ENUM(ThreadState, ThreadStateInUseForOther));
248
252
  }
249
253
  try
250
254
  {
@@ -254,14 +258,14 @@ Timer::runTimerTask(const IceUtil::TimerTaskPtr& task)
254
258
  {
255
259
  if(threadObserver)
256
260
  {
257
- threadObserver->stateChanged(Ice::Instrumentation::ThreadStateInUseForOther,
258
- Ice::Instrumentation::ThreadStateIdle);
261
+ threadObserver->stateChanged(Instrumentation::ICE_ENUM(ThreadState, ThreadStateInUseForOther),
262
+ Instrumentation::ICE_ENUM(ThreadState, ThreadStateIdle));
259
263
  }
260
264
  }
261
265
  if(threadObserver)
262
266
  {
263
- threadObserver->stateChanged(Ice::Instrumentation::ThreadStateInUseForOther,
264
- Ice::Instrumentation::ThreadStateIdle);
267
+ threadObserver->stateChanged(Instrumentation::ICE_ENUM(ThreadState, ThreadStateInUseForOther),
268
+ Instrumentation::ICE_ENUM(ThreadState, ThreadStateIdle));
265
269
  }
266
270
  }
267
271
  else
@@ -395,20 +399,6 @@ IceInternal::Instance::outgoingConnectionFactory() const
395
399
  return _outgoingConnectionFactory;
396
400
  }
397
401
 
398
- ObjectFactoryManagerPtr
399
- IceInternal::Instance::servantFactoryManager() const
400
- {
401
- Lock sync(*this);
402
-
403
- if(_state == StateDestroyed)
404
- {
405
- throw CommunicatorDestroyedException(__FILE__, __LINE__);
406
- }
407
-
408
- assert(_servantFactoryManager);
409
- return _servantFactoryManager;
410
- }
411
-
412
402
  ObjectAdapterFactoryPtr
413
403
  IceInternal::Instance::objectAdapterFactory() const
414
404
  {
@@ -575,122 +565,7 @@ IceInternal::Instance::serverACM() const
575
565
  return _serverACM;
576
566
  }
577
567
 
578
- Identity
579
- IceInternal::Instance::stringToIdentity(const string& s) const
580
- {
581
- //
582
- // This method only accepts printable ascii. Since printable ascii is a subset
583
- // of all narrow string encodings, it is not necessary to convert the string
584
- // from the native string encoding. Any characters other than printable-ASCII
585
- // will cause an IllegalArgumentException. Note that it can contain Unicode
586
- // encoded in the escaped form which is the reason why we call fromUTF8 after
587
- // unespcaping the printable ASCII string.
588
- //
589
-
590
- Identity ident;
591
-
592
- //
593
- // Find unescaped separator; note that the string may contain an escaped
594
- // backslash before the separator.
595
- //
596
- string::size_type slash = string::npos, pos = 0;
597
- while((pos = s.find('/', pos)) != string::npos)
598
- {
599
- int escapes = 0;
600
- while(static_cast<int>(pos)- escapes > 0 && s[pos - escapes - 1] == '\\')
601
- {
602
- escapes++;
603
- }
604
-
605
- //
606
- // We ignore escaped escapes
607
- //
608
- if(escapes % 2 == 0)
609
- {
610
- if(slash == string::npos)
611
- {
612
- slash = pos;
613
- }
614
- else
615
- {
616
- //
617
- // Extra unescaped slash found.
618
- //
619
- IdentityParseException ex(__FILE__, __LINE__);
620
- ex.str = "unescaped backslash in identity `" + s + "'";
621
- throw ex;
622
- }
623
- }
624
- pos++;
625
- }
626
-
627
- if(slash == string::npos)
628
- {
629
- try
630
- {
631
- ident.name = IceUtilInternal::unescapeString(s, 0, s.size());
632
- }
633
- catch(const IceUtil::IllegalArgumentException& e)
634
- {
635
- IdentityParseException ex(__FILE__, __LINE__);
636
- ex.str = "invalid identity name `" + s + "': " + e.reason();
637
- throw ex;
638
- }
639
- }
640
- else
641
- {
642
- try
643
- {
644
- ident.category = IceUtilInternal::unescapeString(s, 0, slash);
645
- }
646
- catch(const IceUtil::IllegalArgumentException& e)
647
- {
648
- IdentityParseException ex(__FILE__, __LINE__);
649
- ex.str = "invalid category in identity `" + s + "': " + e.reason();
650
- throw ex;
651
- }
652
- if(slash + 1 < s.size())
653
- {
654
- try
655
- {
656
- ident.name = IceUtilInternal::unescapeString(s, slash + 1, s.size());
657
- }
658
- catch(const IceUtil::IllegalArgumentException& e)
659
- {
660
- IdentityParseException ex(__FILE__, __LINE__);
661
- ex.str = "invalid name in identity `" + s + "': " + e.reason();
662
- throw ex;
663
- }
664
- }
665
- }
666
-
667
- ident.name = UTF8ToNative(ident.name, _stringConverter);
668
- ident.category = UTF8ToNative(ident.category, _stringConverter);
669
-
670
- return ident;
671
- }
672
-
673
- string
674
- IceInternal::Instance::identityToString(const Identity& ident) const
675
- {
676
- //
677
- // This method returns the stringified identity. The returned string only
678
- // contains printable ascii. It can contain UTF8 in the escaped form.
679
- //
680
- string name = nativeToUTF8(ident.name, _stringConverter);
681
- string category = nativeToUTF8(ident.category, _stringConverter);
682
-
683
- if(category.empty())
684
- {
685
- return IceUtilInternal::escapeString(name, "/");
686
- }
687
- else
688
- {
689
- return IceUtilInternal::escapeString(category, "/") + '/' + IceUtilInternal::escapeString(name, "/");
690
- }
691
- }
692
-
693
- Ice::ObjectPrx
568
+ Ice::ObjectPrxPtr
694
569
  IceInternal::Instance::createAdmin(const ObjectAdapterPtr& adminAdapter, const Identity& adminIdentity)
695
570
  {
696
571
  ObjectAdapterPtr adapter = adminAdapter;
@@ -758,7 +633,7 @@ IceInternal::Instance::createAdmin(const ObjectAdapterPtr& adminAdapter, const I
758
633
  return adapter->createProxy(adminIdentity);
759
634
  }
760
635
 
761
- Ice::ObjectPrx
636
+ Ice::ObjectPrxPtr
762
637
  IceInternal::Instance::getAdmin()
763
638
  {
764
639
  Lock sync(*this);
@@ -789,7 +664,7 @@ IceInternal::Instance::getAdmin()
789
664
  adminIdentity.category = _initData.properties->getProperty("Ice.Admin.InstanceName");
790
665
  if(adminIdentity.category.empty())
791
666
  {
792
- adminIdentity.category = IceUtil::generateUUID();
667
+ adminIdentity.category = Ice::generateUUID();
793
668
  }
794
669
 
795
670
  _adminIdentity = adminIdentity;
@@ -849,12 +724,12 @@ IceInternal::Instance::addAllAdminFacets()
849
724
  void
850
725
  IceInternal::Instance::setServerProcessProxy(const ObjectAdapterPtr& adminAdapter, const Identity& adminIdentity)
851
726
  {
852
- ObjectPrx admin = adminAdapter->createProxy(adminIdentity);
853
- LocatorPrx locator = adminAdapter->getLocator();
727
+ ObjectPrxPtr admin = adminAdapter->createProxy(adminIdentity);
728
+ LocatorPrxPtr locator = adminAdapter->getLocator();
854
729
  const string serverId = _initData.properties->getProperty("Ice.Admin.ServerId");
855
730
  if(locator && serverId != "")
856
731
  {
857
- ProcessPrx process = ProcessPrx::uncheckedCast(admin->ice_facet("Process"));
732
+ ProcessPrxPtr process = ICE_UNCHECKED_CAST(ProcessPrx, admin->ice_facet("Process"));
858
733
  try
859
734
  {
860
735
  //
@@ -1008,7 +883,7 @@ IceInternal::Instance::findAllAdminFacets()
1008
883
  }
1009
884
 
1010
885
  void
1011
- IceInternal::Instance::setDefaultLocator(const Ice::LocatorPrx& defaultLocator)
886
+ IceInternal::Instance::setDefaultLocator(const Ice::LocatorPrxPtr& defaultLocator)
1012
887
  {
1013
888
  Lock sync(*this);
1014
889
 
@@ -1021,7 +896,7 @@ IceInternal::Instance::setDefaultLocator(const Ice::LocatorPrx& defaultLocator)
1021
896
  }
1022
897
 
1023
898
  void
1024
- IceInternal::Instance::setDefaultRouter(const Ice::RouterPrx& defaultRouter)
899
+ IceInternal::Instance::setDefaultRouter(const Ice::RouterPrxPtr& defaultRouter)
1025
900
  {
1026
901
  Lock sync(*this);
1027
902
 
@@ -1042,6 +917,14 @@ IceInternal::Instance::setLogger(const Ice::LoggerPtr& logger)
1042
917
  _initData.logger = logger;
1043
918
  }
1044
919
 
920
+ #ifdef ICE_CPP11_MAPPING
921
+ void
922
+ IceInternal::Instance::setThreadHook(function<void()> threadStart, function<void()> threadStop)
923
+ {
924
+ _initData.threadStart = move(threadStart);
925
+ _initData.threadStop = move(threadStop);
926
+ }
927
+ #else
1045
928
  void
1046
929
  IceInternal::Instance::setThreadHook(const Ice::ThreadNotificationPtr& threadHook)
1047
930
  {
@@ -1050,6 +933,7 @@ IceInternal::Instance::setThreadHook(const Ice::ThreadNotificationPtr& threadHoo
1050
933
  //
1051
934
  _initData.threadHook = threadHook;
1052
935
  }
936
+ #endif
1053
937
 
1054
938
  namespace
1055
939
  {
@@ -1065,9 +949,10 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1065
949
  _batchAutoFlushSize(0),
1066
950
  _classGraphDepthMax(0),
1067
951
  _collectObjects(false),
952
+ _toStringMode(ICE_ENUM(ToStringMode, Unicode)),
1068
953
  _implicitContext(0),
1069
- _stringConverter(IceUtil::getProcessStringConverter()),
1070
- _wstringConverter(IceUtil::getProcessWstringConverter()),
954
+ _stringConverter(Ice::getProcessStringConverter()),
955
+ _wstringConverter(Ice::getProcessWstringConverter()),
1071
956
  _adminEnabled(false)
1072
957
  {
1073
958
  try
@@ -1121,12 +1006,15 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1121
1006
 
1122
1007
  #ifdef NDEBUG
1123
1008
  if(_initData.properties->getPropertyAsIntWithDefault("Ice.PrintStackTraces", 0) > 0)
1124
- #else
1125
- if(_initData.properties->getPropertyAsIntWithDefault("Ice.PrintStackTraces", 1) > 0)
1126
- #endif
1127
1009
  {
1128
1010
  IceUtilInternal::printStackTraces = true;
1129
1011
  }
1012
+ #else
1013
+ if(_initData.properties->getPropertyAsIntWithDefault("Ice.PrintStackTraces", 1) == 0)
1014
+ {
1015
+ IceUtilInternal::printStackTraces = false;
1016
+ }
1017
+ #endif
1130
1018
 
1131
1019
  #ifndef _WIN32
1132
1020
  string newUser = _initData.properties->getProperty("Ice.ChangeUser");
@@ -1135,9 +1023,8 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1135
1023
  struct passwd pwbuf;
1136
1024
  vector<char> buffer(4096); // 4KB initial buffer
1137
1025
  struct passwd *pw;
1138
- int err;
1139
- while((err = getpwnam_r(newUser.c_str(), &pwbuf, &buffer[0], buffer.size(), &pw)) == ERANGE &&
1140
- buffer.size() < 1024 * 1024) // Limit buffer to 1M
1026
+ int err = getpwnam_r(newUser.c_str(), &pwbuf, &buffer[0], buffer.size(), &pw);
1027
+ while(err == ERANGE && buffer.size() < 1024 * 1024) // Limit buffer to 1MB
1141
1028
  {
1142
1029
  buffer.resize(buffer.size() * 2);
1143
1030
  }
@@ -1181,7 +1068,7 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1181
1068
 
1182
1069
  if(instanceCount() == 1)
1183
1070
  {
1184
- #if defined(_WIN32) && !defined(ICE_OS_WINRT)
1071
+ #if defined(_WIN32) && !defined(ICE_OS_UWP)
1185
1072
  WORD version = MAKEWORD(1, 1);
1186
1073
  WSADATA data;
1187
1074
  if(WSAStartup(version, &data) != 0)
@@ -1226,25 +1113,23 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1226
1113
  throw InitializationException(__FILE__, __LINE__, "Both syslog and file logger cannot be enabled.");
1227
1114
  }
1228
1115
 
1229
- _initData.logger =
1230
- new SysLoggerI(_initData.properties->getProperty("Ice.ProgramName"),
1231
- _initData.properties->getPropertyWithDefault("Ice.SyslogFacility", "LOG_USER"));
1116
+ _initData.logger = ICE_MAKE_SHARED(SysLoggerI,
1117
+ _initData.properties->getProperty("Ice.ProgramName"),
1118
+ _initData.properties->getPropertyWithDefault("Ice.SyslogFacility", "LOG_USER"));
1232
1119
  }
1233
1120
  else
1234
1121
  #endif
1235
1122
  if(!logfile.empty())
1236
1123
  {
1237
- _initData.logger =
1238
- new LoggerI(_initData.properties->getProperty("Ice.ProgramName"), logfile, true, 0,
1239
- _initData.properties->getPropertyAsIntWithDefault("Ice.LogFile.SizeMax", 0));
1124
+ _initData.logger = ICE_MAKE_SHARED(LoggerI, _initData.properties->getProperty("Ice.ProgramName"), logfile, true,
1125
+ _initData.properties->getPropertyAsIntWithDefault("Ice.LogFile.SizeMax", 0));
1240
1126
  }
1241
1127
  else
1242
1128
  {
1243
1129
  _initData.logger = getProcessLogger();
1244
- if(LoggerIPtr::dynamicCast(_initData.logger))
1130
+ if(ICE_DYNAMIC_CAST(LoggerI, _initData.logger))
1245
1131
  {
1246
- _initData.logger = new LoggerI(_initData.properties->getProperty("Ice.ProgramName"), "",
1247
- logStdErrConvert, _stringConverter);
1132
+ _initData.logger = ICE_MAKE_SHARED(LoggerI, _initData.properties->getProperty("Ice.ProgramName"), "", logStdErrConvert);
1248
1133
  }
1249
1134
  }
1250
1135
  }
@@ -1308,7 +1193,7 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1308
1193
  }
1309
1194
 
1310
1195
  {
1311
- static const int defaultValue = 0; // Disabled by default
1196
+ static const int defaultValue = 100;
1312
1197
  Int num = _initData.properties->getPropertyAsIntWithDefault("Ice.ClassGraphDepthMax", defaultValue);
1313
1198
  if(num < 1 || static_cast<size_t>(num) > static_cast<size_t>(0x7fffffff))
1314
1199
  {
@@ -1322,10 +1207,24 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1322
1207
 
1323
1208
  const_cast<bool&>(_collectObjects) = _initData.properties->getPropertyAsInt("Ice.CollectObjects") > 0;
1324
1209
 
1210
+ string toStringModeStr = _initData.properties->getPropertyWithDefault("Ice.ToStringMode", "Unicode");
1211
+ if(toStringModeStr == "ASCII")
1212
+ {
1213
+ const_cast<ToStringMode&>(_toStringMode) = ICE_ENUM(ToStringMode, ASCII);
1214
+ }
1215
+ else if(toStringModeStr == "Compat")
1216
+ {
1217
+ const_cast<ToStringMode&>(_toStringMode) = ICE_ENUM(ToStringMode, Compat);
1218
+ }
1219
+ else if(toStringModeStr != "Unicode")
1220
+ {
1221
+ throw InitializationException(__FILE__, __LINE__, "The value for Ice.ToStringMode must be Unicode, ASCII or Compat");
1222
+ }
1223
+
1325
1224
  //
1326
1225
  // Client ACM enabled by default. Server ACM disabled by default.
1327
1226
  //
1328
- #ifndef ICE_OS_WINRT
1227
+ #ifndef ICE_OS_UWP
1329
1228
  const_cast<ImplicitContextIPtr&>(_implicitContext) =
1330
1229
  ImplicitContextI::create(_initData.properties->getProperty("Ice.ImplicitContext"));
1331
1230
  #endif
@@ -1366,23 +1265,20 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1366
1265
 
1367
1266
  _dynamicLibraryList = new DynamicLibraryList;
1368
1267
 
1369
- _pluginManager = new PluginManagerI(communicator, _dynamicLibraryList);
1268
+ _pluginManager = ICE_MAKE_SHARED(PluginManagerI, communicator, _dynamicLibraryList);
1370
1269
 
1371
- _outgoingConnectionFactory = new OutgoingConnectionFactory(communicator, this);
1270
+ if(!_initData.valueFactoryManager)
1271
+ {
1272
+ _initData.valueFactoryManager = ICE_MAKE_SHARED(ValueFactoryManagerI);
1273
+ }
1372
1274
 
1373
- _servantFactoryManager = new ObjectFactoryManager();
1275
+ _objectFactoryMapHint = _objectFactoryMap.end();
1374
1276
 
1375
- _objectAdapterFactory = new ObjectAdapterFactory(this, communicator);
1277
+ _outgoingConnectionFactory = new OutgoingConnectionFactory(communicator, this);
1376
1278
 
1377
- _retryQueue = new RetryQueue(this);
1279
+ _objectAdapterFactory = ICE_MAKE_SHARED(ObjectAdapterFactory, this, communicator);
1378
1280
 
1379
- //
1380
- // When _wstringConverter isn't set, use the default Unicode wstring converter
1381
- //
1382
- if(!_wstringConverter)
1383
- {
1384
- _wstringConverter = new IceUtil::UnicodeWstringConverter;
1385
- }
1281
+ _retryQueue = new RetryQueue(this);
1386
1282
 
1387
1283
  __setNoDelete(false);
1388
1284
  }
@@ -1405,7 +1301,6 @@ IceInternal::Instance::~Instance()
1405
1301
  assert(!_proxyFactory);
1406
1302
  assert(!_outgoingConnectionFactory);
1407
1303
 
1408
- assert(!_servantFactoryManager);
1409
1304
  assert(!_objectAdapterFactory);
1410
1305
  assert(!_clientThreadPool);
1411
1306
  assert(!_serverThreadPool);
@@ -1425,7 +1320,7 @@ IceInternal::Instance::~Instance()
1425
1320
  }
1426
1321
  if(instanceCount() == 0)
1427
1322
  {
1428
- #if defined(_WIN32) && !defined(ICE_OS_WINRT)
1323
+ #if defined(_WIN32) && !defined(ICE_OS_UWP)
1429
1324
  WSACleanup();
1430
1325
  #endif
1431
1326
 
@@ -1442,7 +1337,7 @@ IceInternal::Instance::~Instance()
1442
1337
  }
1443
1338
 
1444
1339
  void
1445
- IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::CommunicatorPtr& communicator)
1340
+ IceInternal::Instance::finishSetup(int& argc, const char* argv[], const Ice::CommunicatorPtr& communicator)
1446
1341
  {
1447
1342
  //
1448
1343
  // Load plug-ins.
@@ -1453,35 +1348,16 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1453
1348
  pluginManagerImpl->loadPlugins(argc, argv);
1454
1349
 
1455
1350
  //
1456
- // Add WS and WSS endpoint factories if TCP/SSL factories are installed.
1351
+ // Initialize the endpoint factories once all the plugins are loaded. This gives
1352
+ // the opportunity for the endpoint factories to find underyling factories.
1457
1353
  //
1458
- EndpointFactoryPtr tcpFactory = _endpointFactoryManager->get(TCPEndpointType);
1459
- if(tcpFactory)
1460
- {
1461
- ProtocolInstancePtr instance = new ProtocolInstance(communicator, WSEndpointType, "ws", false);
1462
- _endpointFactoryManager->add(new WSEndpointFactory(instance, tcpFactory->clone(instance)));
1463
- }
1464
- EndpointFactoryPtr sslFactory = _endpointFactoryManager->get(SSLEndpointType);
1465
- if(sslFactory)
1466
- {
1467
- ProtocolInstancePtr instance = new ProtocolInstance(communicator, WSSEndpointType, "wss", true);
1468
- _endpointFactoryManager->add(new WSEndpointFactory(instance, sslFactory->clone(instance)));
1469
- }
1354
+ _endpointFactoryManager->initialize();
1470
1355
 
1471
1356
  //
1472
1357
  // Reset _stringConverter and _wstringConverter, in case a plugin changed them
1473
1358
  //
1474
- _stringConverter = IceUtil::getProcessStringConverter();
1475
-
1476
- IceUtil::WstringConverterPtr newWstringConverter = IceUtil::getProcessWstringConverter();
1477
- if(newWstringConverter)
1478
- {
1479
- _wstringConverter = newWstringConverter;
1480
- }
1481
- else
1482
- {
1483
- _wstringConverter = new IceUtil::UnicodeWstringConverter;
1484
- }
1359
+ _stringConverter = Ice::getProcessStringConverter();
1360
+ _wstringConverter = Ice::getProcessWstringConverter();
1485
1361
 
1486
1362
  //
1487
1363
  // Create Admin facets, if enabled.
@@ -1513,7 +1389,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1513
1389
  const string processFacetName = "Process";
1514
1390
  if(_adminFacetFilter.empty() || _adminFacetFilter.find(processFacetName) != _adminFacetFilter.end())
1515
1391
  {
1516
- _adminFacets.insert(make_pair(processFacetName, new ProcessI(communicator)));
1392
+ _adminFacets.insert(make_pair(processFacetName, ICE_MAKE_SHARED(ProcessI, communicator)));
1517
1393
  }
1518
1394
 
1519
1395
  //
@@ -1534,7 +1410,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1534
1410
  PropertiesAdminIPtr propsAdmin;
1535
1411
  if(_adminFacetFilter.empty() || _adminFacetFilter.find(propertiesFacetName) != _adminFacetFilter.end())
1536
1412
  {
1537
- propsAdmin = new PropertiesAdminI(_initData.properties, _initData.logger);
1413
+ propsAdmin = ICE_MAKE_SHARED(PropertiesAdminI, this);
1538
1414
  _adminFacets.insert(make_pair(propertiesFacetName, propsAdmin));
1539
1415
  }
1540
1416
 
@@ -1544,7 +1420,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1544
1420
  const string metricsFacetName = "Metrics";
1545
1421
  if(_adminFacetFilter.empty() || _adminFacetFilter.find(metricsFacetName) != _adminFacetFilter.end())
1546
1422
  {
1547
- CommunicatorObserverIPtr observer = new CommunicatorObserverI(_initData);
1423
+ CommunicatorObserverIPtr observer = ICE_MAKE_SHARED(CommunicatorObserverI, _initData);
1548
1424
  _initData.observer = observer;
1549
1425
  _adminFacets.insert(make_pair(metricsFacetName, observer->getFacet()));
1550
1426
 
@@ -1553,7 +1429,13 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1553
1429
  //
1554
1430
  if(propsAdmin)
1555
1431
  {
1432
+ #ifdef ICE_CPP11_MAPPING
1433
+ auto metricsAdmin = observer->getFacet();
1434
+ propsAdmin->addUpdateCallback(
1435
+ [metricsAdmin](const PropertyDict& changes) { metricsAdmin->updated(changes); });
1436
+ #else
1556
1437
  propsAdmin->addUpdateCallback(observer->getFacet());
1438
+ #endif
1557
1439
  }
1558
1440
  }
1559
1441
  }
@@ -1563,7 +1445,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1563
1445
  //
1564
1446
  if(_initData.observer)
1565
1447
  {
1566
- _initData.observer->setObserverUpdater(new ObserverUpdaterI(this));
1448
+ _initData.observer->setObserverUpdater(ICE_MAKE_SHARED(ObserverUpdaterI, this));
1567
1449
  }
1568
1450
 
1569
1451
  //
@@ -1608,7 +1490,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1608
1490
  //
1609
1491
  if(!_referenceFactory->getDefaultRouter())
1610
1492
  {
1611
- RouterPrx router = RouterPrx::uncheckedCast(_proxyFactory->propertyToProxy("Ice.Default.Router"));
1493
+ RouterPrxPtr router = ICE_UNCHECKED_CAST(RouterPrx, _proxyFactory->propertyToProxy("Ice.Default.Router"));
1612
1494
  if(router)
1613
1495
  {
1614
1496
  _referenceFactory = _referenceFactory->setDefaultRouter(router);
@@ -1617,7 +1499,7 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1617
1499
 
1618
1500
  if(!_referenceFactory->getDefaultLocator())
1619
1501
  {
1620
- LocatorPrx locator = LocatorPrx::uncheckedCast(_proxyFactory->propertyToProxy("Ice.Default.Locator"));
1502
+ LocatorPrxPtr locator = ICE_UNCHECKED_CAST(LocatorPrx, _proxyFactory->propertyToProxy("Ice.Default.Locator"));
1621
1503
  if(locator)
1622
1504
  {
1623
1505
  _referenceFactory = _referenceFactory->setDefaultLocator(locator);
@@ -1645,9 +1527,9 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[], const Ice::Communica
1645
1527
  if(printProcessId)
1646
1528
  {
1647
1529
  #ifdef _MSC_VER
1648
- cout << GetCurrentProcessId() << endl;
1530
+ consoleOut << GetCurrentProcessId() << endl;
1649
1531
  #else
1650
- cout << getpid() << endl;
1532
+ consoleOut << getpid() << endl;
1651
1533
  #endif
1652
1534
  }
1653
1535
 
@@ -1734,7 +1616,7 @@ IceInternal::Instance::destroy()
1734
1616
 
1735
1617
  if(_initData.observer)
1736
1618
  {
1737
- CommunicatorObserverIPtr observer = CommunicatorObserverIPtr::dynamicCast(_initData.observer);
1619
+ CommunicatorObserverIPtr observer = ICE_DYNAMIC_CAST(CommunicatorObserverI, _initData.observer);
1738
1620
  if(observer)
1739
1621
  {
1740
1622
  observer->destroy(); // Break cyclic reference counts. Don't clear _observer, it's immutable.
@@ -1742,7 +1624,7 @@ IceInternal::Instance::destroy()
1742
1624
  _initData.observer->setObserverUpdater(0); // Break cyclic reference count.
1743
1625
  }
1744
1626
 
1745
- LoggerAdminLoggerPtr logger = LoggerAdminLoggerPtr::dynamicCast(_initData.logger);
1627
+ LoggerAdminLoggerPtr logger = ICE_DYNAMIC_CAST(LoggerAdminLogger, _initData.logger);
1746
1628
  if(logger)
1747
1629
  {
1748
1630
  //
@@ -1784,17 +1666,16 @@ IceInternal::Instance::destroy()
1784
1666
  {
1785
1667
  _serverThreadPool->joinWithAllThreads();
1786
1668
  }
1787
- #ifndef ICE_OS_WINRT
1669
+ #ifndef ICE_OS_UWP
1788
1670
  if(_endpointHostResolver)
1789
1671
  {
1790
1672
  _endpointHostResolver->getThreadControl().join();
1791
1673
  }
1792
1674
  #endif
1793
1675
 
1794
- if(_servantFactoryManager)
1795
- {
1796
- _servantFactoryManager->destroy();
1797
- }
1676
+ for_each(_objectFactoryMap.begin(), _objectFactoryMap.end(),
1677
+ Ice::secondVoidMemFun<const string, ObjectFactory>(&ObjectFactory::destroy));
1678
+ _objectFactoryMap.clear();
1798
1679
 
1799
1680
  if(_routerManager)
1800
1681
  {
@@ -1845,7 +1726,6 @@ IceInternal::Instance::destroy()
1845
1726
  _endpointHostResolver = 0;
1846
1727
  _timer = 0;
1847
1728
 
1848
- _servantFactoryManager = 0;
1849
1729
  _referenceFactory = 0;
1850
1730
  _requestHandlerFactory = 0;
1851
1731
  _proxyFactory = 0;
@@ -1957,6 +1837,82 @@ IceInternal::Instance::setRcvBufSizeWarn(Short type, int size)
1957
1837
  _setBufSizeWarn[type] = info;
1958
1838
  }
1959
1839
 
1840
+ void
1841
+ IceInternal::Instance::addObjectFactory(const Ice::ObjectFactoryPtr& factory, const string& id)
1842
+ {
1843
+ Lock sync(*this);
1844
+
1845
+ //
1846
+ // Create a ValueFactory wrapper around the given ObjectFactory and register the wrapper
1847
+ // with the value factory manager. This may raise AlreadyRegisteredException.
1848
+ //
1849
+ #ifdef ICE_CPP11_MAPPING
1850
+ _initData.valueFactoryManager->add([factory](const string& id)
1851
+ {
1852
+ return factory->create(id);
1853
+ },
1854
+ id);
1855
+ #else
1856
+ class ValueFactoryWrapper: public Ice::ValueFactory
1857
+ {
1858
+ public:
1859
+
1860
+ ValueFactoryWrapper(const Ice::ObjectFactoryPtr& factory) : _objectFactory(factory)
1861
+ {
1862
+ }
1863
+
1864
+ Ice::ValuePtr create(const std::string& id)
1865
+ {
1866
+ return _objectFactory->create(id);
1867
+ }
1868
+
1869
+ private:
1870
+
1871
+ Ice::ObjectFactoryPtr _objectFactory;
1872
+ };
1873
+
1874
+ _initData.valueFactoryManager->add(new ValueFactoryWrapper(factory), id);
1875
+ #endif
1876
+
1877
+ //
1878
+ // Also record the object factory in our own map.
1879
+ //
1880
+ _objectFactoryMapHint = _objectFactoryMap.insert(_objectFactoryMapHint,
1881
+ pair<const string, Ice::ObjectFactoryPtr>(id, factory));
1882
+ }
1883
+
1884
+ Ice::ObjectFactoryPtr
1885
+ IceInternal::Instance::findObjectFactory(const string& id) const
1886
+ {
1887
+ Lock sync(*this);
1888
+
1889
+ ObjectFactoryMap& objectfactoryMap = const_cast<ObjectFactoryMap&>(_objectFactoryMap);
1890
+
1891
+ ObjectFactoryMap::iterator p = objectfactoryMap.end();
1892
+ if(_objectFactoryMapHint != objectfactoryMap.end())
1893
+ {
1894
+ if(_objectFactoryMapHint->first == id)
1895
+ {
1896
+ p = _objectFactoryMapHint;
1897
+ }
1898
+ }
1899
+
1900
+ if(p == objectfactoryMap.end())
1901
+ {
1902
+ p = objectfactoryMap.find(id);
1903
+ }
1904
+
1905
+ if(p != objectfactoryMap.end())
1906
+ {
1907
+ _objectFactoryMapHint = p;
1908
+ return p->second;
1909
+ }
1910
+ else
1911
+ {
1912
+ return ICE_NULLPTR;
1913
+ }
1914
+ }
1915
+
1960
1916
  IceInternal::ProcessI::ProcessI(const CommunicatorPtr& communicator) :
1961
1917
  _communicator(communicator)
1962
1918
  {
@@ -1969,18 +1925,22 @@ IceInternal::ProcessI::shutdown(const Current&)
1969
1925
  }
1970
1926
 
1971
1927
  void
1928
+ #ifdef ICE_CPP11_MAPPING
1929
+ IceInternal::ProcessI::writeMessage(string message, Int fd, const Current&)
1930
+ #else
1972
1931
  IceInternal::ProcessI::writeMessage(const string& message, Int fd, const Current&)
1932
+ #endif
1973
1933
  {
1974
1934
  switch(fd)
1975
1935
  {
1976
1936
  case 1:
1977
1937
  {
1978
- cout << message << endl;
1938
+ consoleOut << message << endl;
1979
1939
  break;
1980
1940
  }
1981
1941
  case 2:
1982
1942
  {
1983
- cerr << message << endl;
1943
+ consoleErr << message << endl;
1984
1944
  break;
1985
1945
  }
1986
1946
  }