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.
@@ -22,7 +22,7 @@
22
22
  #include <Ice/PropertiesF.h>
23
23
  #include <Ice/Version.h>
24
24
 
25
- #include <IceUtil/UniquePtr.h>
25
+ #include <Ice/UniquePtr.h>
26
26
 
27
27
  namespace IceInternal
28
28
  {
@@ -39,14 +39,21 @@ public:
39
39
  // Returns locator info for a given locator. Automatically creates
40
40
  // the locator info if it doesn't exist yet.
41
41
  //
42
- LocatorInfoPtr get(const Ice::LocatorPrx&);
42
+ LocatorInfoPtr get(const Ice::LocatorPrxPtr&);
43
43
 
44
44
  private:
45
45
 
46
46
  const bool _background;
47
47
 
48
- std::map<Ice::LocatorPrx, LocatorInfoPtr> _table;
49
- std::map<Ice::LocatorPrx, LocatorInfoPtr>::iterator _tableHint;
48
+ #ifdef ICE_CPP11_MAPPING
49
+ using LocatorInfoTable = std::map<std::shared_ptr<Ice::LocatorPrx>,
50
+ LocatorInfoPtr,
51
+ Ice::TargetCompare<std::shared_ptr<Ice::LocatorPrx>, std::less>>;
52
+ #else
53
+ typedef std::map<Ice::LocatorPrx, LocatorInfoPtr> LocatorInfoTable;
54
+ #endif
55
+ LocatorInfoTable _table;
56
+ LocatorInfoTable::iterator _tableHint;
50
57
 
51
58
  std::map<std::pair<Ice::Identity, Ice::EncodingVersion>, LocatorTablePtr> _locatorTables;
52
59
  };
@@ -79,7 +86,7 @@ class LocatorInfo : public IceUtil::Shared, public IceUtil::Mutex
79
86
  {
80
87
  public:
81
88
 
82
- class GetEndpointsCallback : virtual public IceUtil::Shared
89
+ class GetEndpointsCallback : public virtual IceUtil::Shared
83
90
  {
84
91
  public:
85
92
 
@@ -88,13 +95,13 @@ public:
88
95
  };
89
96
  typedef IceUtil::Handle<GetEndpointsCallback> GetEndpointsCallbackPtr;
90
97
 
91
- class RequestCallback : virtual public IceUtil::Shared
98
+ class RequestCallback : public virtual IceUtil::Shared
92
99
  {
93
100
  public:
94
101
 
95
102
  RequestCallback(const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
96
103
 
97
- void response(const LocatorInfoPtr&, const Ice::ObjectPrx&);
104
+ void response(const LocatorInfoPtr&, const Ice::ObjectPrxPtr&);
98
105
  void exception(const LocatorInfoPtr&, const Ice::Exception&);
99
106
 
100
107
  private:
@@ -105,14 +112,13 @@ public:
105
112
  };
106
113
  typedef IceUtil::Handle<RequestCallback> RequestCallbackPtr;
107
114
 
108
- class Request : virtual public IceUtil::Shared
115
+ class Request : public virtual IceUtil::Shared
109
116
  {
110
117
  public:
111
118
 
112
119
  void addCallback(const ReferencePtr&, const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
113
- std::vector<EndpointIPtr> getEndpoints(const ReferencePtr&, const ReferencePtr&, int, bool&);
114
120
 
115
- void response(const Ice::ObjectPrx&);
121
+ void response(const Ice::ObjectPrxPtr&);
116
122
  void exception(const Ice::Exception&);
117
123
 
118
124
  protected:
@@ -131,39 +137,32 @@ public:
131
137
  std::vector<ReferencePtr> _wellKnownRefs;
132
138
  bool _sent;
133
139
  bool _response;
134
- Ice::ObjectPrx _proxy;
135
- IceUtil::UniquePtr<Ice::Exception> _exception;
140
+ Ice::ObjectPrxPtr _proxy;
141
+ IceInternal::UniquePtr<Ice::Exception> _exception;
136
142
  };
137
143
  typedef IceUtil::Handle<Request> RequestPtr;
138
144
 
139
- LocatorInfo(const Ice::LocatorPrx&, const LocatorTablePtr&, bool);
145
+ LocatorInfo(const Ice::LocatorPrxPtr&, const LocatorTablePtr&, bool);
140
146
 
141
147
  void destroy();
142
148
 
143
149
  bool operator==(const LocatorInfo&) const;
144
- bool operator!=(const LocatorInfo&) const;
145
150
  bool operator<(const LocatorInfo&) const;
146
151
 
147
- const Ice::LocatorPrx& getLocator() const
152
+ const Ice::LocatorPrxPtr& getLocator() const
148
153
  {
149
154
  //
150
155
  // No mutex lock necessary, _locator is immutable.
151
156
  //
152
157
  return _locator;
153
158
  }
154
- Ice::LocatorRegistryPrx getLocatorRegistry();
155
-
156
- std::vector<EndpointIPtr> getEndpoints(const ReferencePtr& ref, int ttl, bool& cached)
157
- {
158
- return getEndpoints(ref, 0, ttl, cached);
159
- }
160
- std::vector<EndpointIPtr> getEndpoints(const ReferencePtr&, const ReferencePtr&, int, bool&);
159
+ Ice::LocatorRegistryPrxPtr getLocatorRegistry();
161
160
 
162
- void getEndpointsWithCallback(const ReferencePtr& ref, int ttl, const GetEndpointsCallbackPtr& cb)
161
+ void getEndpoints(const ReferencePtr& ref, int ttl, const GetEndpointsCallbackPtr& cb)
163
162
  {
164
- getEndpointsWithCallback(ref, 0, ttl, cb);
163
+ getEndpoints(ref, 0, ttl, cb);
165
164
  }
166
- void getEndpointsWithCallback(const ReferencePtr&, const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
165
+ void getEndpoints(const ReferencePtr&, const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
167
166
 
168
167
  void clearCache(const ReferencePtr&);
169
168
 
@@ -172,16 +171,17 @@ private:
172
171
  void getEndpointsException(const ReferencePtr&, const Ice::Exception&);
173
172
  void getEndpointsTrace(const ReferencePtr&, const std::vector<EndpointIPtr>&, bool);
174
173
  void trace(const std::string&, const ReferencePtr&, const std::vector<EndpointIPtr>&);
174
+ void trace(const std::string&, const ReferencePtr&, const ReferencePtr&);
175
175
 
176
176
  RequestPtr getAdapterRequest(const ReferencePtr&);
177
177
  RequestPtr getObjectRequest(const ReferencePtr&);
178
178
 
179
- void finishRequest(const ReferencePtr&, const std::vector<ReferencePtr>&, const Ice::ObjectPrx&, bool);
179
+ void finishRequest(const ReferencePtr&, const std::vector<ReferencePtr>&, const Ice::ObjectPrxPtr&, bool);
180
180
  friend class Request;
181
181
  friend class RequestCallback;
182
182
 
183
- const Ice::LocatorPrx _locator;
184
- Ice::LocatorRegistryPrx _locatorRegistry;
183
+ const Ice::LocatorPrxPtr _locator;
184
+ Ice::LocatorRegistryPrxPtr _locatorRegistry;
185
185
  const LocatorTablePtr _table;
186
186
  const bool _background;
187
187
 
@@ -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.
@@ -1,13 +1,13 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.5
10
+ // Ice version 3.7.0
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -23,24 +23,54 @@
23
23
  #endif
24
24
  #include <Ice/Logger.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
+ Ice::Logger::~Logger()
56
+ {
57
+ }
58
+
59
+ #else // C++98 mapping
60
+
41
61
  namespace
42
62
  {
43
63
 
44
64
  }
45
65
 
66
+ Ice::Logger::~Logger()
67
+ {
68
+ }
69
+
46
70
  ICE_API ::Ice::LocalObject* Ice::upCast(::Ice::Logger* p) { return p; }
71
+
72
+ namespace Ice
73
+ {
74
+ }
75
+
76
+ #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.
@@ -28,34 +28,48 @@ namespace
28
28
  const char* traceCategory = "Admin.Logger";
29
29
 
30
30
  class LoggerAdminI : public Ice::LoggerAdmin
31
+ #ifdef ICE_CPP11_MAPPING
32
+ , public std::enable_shared_from_this<LoggerAdminI>
33
+ #endif
31
34
  {
32
35
  public:
33
36
 
34
37
  LoggerAdminI(const PropertiesPtr&);
35
-
36
- virtual void attachRemoteLogger(const RemoteLoggerPrx&, const LogMessageTypeSeq&,
38
+
39
+ #ifdef ICE_CPP11_MAPPING
40
+ virtual void attachRemoteLogger(shared_ptr<RemoteLoggerPrx>, LogMessageTypeSeq,
41
+ StringSeq, Int, const Current&);
42
+
43
+ virtual bool detachRemoteLogger(shared_ptr<RemoteLoggerPrx>, const Current&);
44
+
45
+ virtual LogMessageSeq getLog(LogMessageTypeSeq, StringSeq, Int, string&, const Current&);
46
+ #else
47
+ virtual void attachRemoteLogger(const RemoteLoggerPrx&, const LogMessageTypeSeq&,
37
48
  const StringSeq&, Int, const Current&);
38
-
49
+
39
50
  virtual bool detachRemoteLogger(const RemoteLoggerPrx&, const Current&);
40
-
51
+
41
52
  virtual LogMessageSeq getLog(const LogMessageTypeSeq&, const StringSeq&, Int, string&, const Current&);
53
+ #endif
42
54
 
43
55
  void destroy();
44
56
 
45
- vector<RemoteLoggerPrx> log(const LogMessage&);
57
+ vector<RemoteLoggerPrxPtr> log(const LogMessage&);
46
58
 
47
- void deadRemoteLogger(const RemoteLoggerPrx&, const LoggerPtr&, const LocalException&, const string&);
59
+ void deadRemoteLogger(const RemoteLoggerPrxPtr&, const LoggerPtr&, const LocalException&, const string&);
48
60
 
49
- const int getTraceLevel() const
61
+ int getTraceLevel() const
50
62
  {
51
63
  return _traceLevel;
52
64
  }
53
65
 
54
66
  private:
55
67
 
56
- bool removeRemoteLogger(const RemoteLoggerPrx&);
57
-
68
+ bool removeRemoteLogger(const RemoteLoggerPrxPtr&);
69
+
70
+ #ifndef ICE_CPP11_MAPPING // C++98 mapping begin_init callback
58
71
  void initCompleted(const AsyncResultPtr&);
72
+ #endif
59
73
 
60
74
  IceUtil::Mutex _mutex;
61
75
  list<LogMessage> _queue;
@@ -70,7 +84,7 @@ private:
70
84
 
71
85
  struct ObjectIdentityCompare
72
86
  {
73
- bool operator()(const RemoteLoggerPrx& lhs, const RemoteLoggerPrx& rhs) const
87
+ bool operator()(const RemoteLoggerPrxPtr& lhs, const RemoteLoggerPrxPtr& rhs) const
74
88
  {
75
89
  //
76
90
  // Caller should make sure that proxies are never null
@@ -93,7 +107,7 @@ private:
93
107
  const set<string> traceCategories;
94
108
  };
95
109
 
96
- typedef map<RemoteLoggerPrx, Filters, ObjectIdentityCompare> RemoteLoggerMap;
110
+ typedef map<RemoteLoggerPrxPtr, Filters, ObjectIdentityCompare> RemoteLoggerMap;
97
111
 
98
112
  struct GetRemoteLoggerMapKey
99
113
  {
@@ -108,29 +122,31 @@ private:
108
122
  CommunicatorPtr _sendLogCommunicator;
109
123
  bool _destroyed;
110
124
  };
111
- typedef IceUtil::Handle<LoggerAdminI> LoggerAdminIPtr;
112
-
125
+ ICE_DEFINE_PTR(LoggerAdminIPtr, LoggerAdminI);
113
126
 
114
127
  class Job : public IceUtil::Shared
115
128
  {
116
129
  public:
117
130
 
118
- Job(const vector<RemoteLoggerPrx>& r, const LogMessage& l) :
131
+ Job(const vector<RemoteLoggerPrxPtr>& r, const LogMessage& l) :
119
132
  remoteLoggers(r),
120
133
  logMessage(l)
121
134
  {
122
135
  }
123
136
 
124
- const vector<RemoteLoggerPrx> remoteLoggers;
137
+ const vector<RemoteLoggerPrxPtr> remoteLoggers;
125
138
  const LogMessage logMessage;
126
139
  };
127
140
  typedef IceUtil::Handle<Job> JobPtr;
128
141
 
129
-
130
142
  class LoggerAdminLoggerI : public IceInternal::LoggerAdminLogger
143
+ #ifdef ICE_CPP11_MAPPING
144
+ , public std::enable_shared_from_this<LoggerAdminLoggerI>
145
+ #endif
146
+
131
147
  {
132
148
  public:
133
-
149
+
134
150
  LoggerAdminLoggerI(const PropertiesPtr&, const LoggerPtr&);
135
151
 
136
152
  virtual void print(const std::string&);
@@ -141,22 +157,23 @@ public:
141
157
  virtual LoggerPtr cloneWithPrefix(const std::string&);
142
158
 
143
159
  virtual ObjectPtr getFacet() const;
144
-
160
+
145
161
  virtual void destroy();
146
162
 
147
163
  const LoggerPtr& getLocalLogger() const
148
164
  {
149
165
  return _localLogger;
150
166
  }
151
-
167
+
152
168
  void run();
153
169
 
154
170
  private:
155
171
 
156
172
  void log(const LogMessage&);
157
-
173
+ #ifndef ICE_CPP11_MAPPING // C++98 mapping begin_log callback
158
174
  void logCompleted(const AsyncResultPtr&);
159
-
175
+ #endif
176
+
160
177
  LoggerPtr _localLogger;
161
178
  const LoggerAdminIPtr _loggerAdmin;
162
179
 
@@ -164,10 +181,9 @@ private:
164
181
 
165
182
  bool _destroyed;
166
183
  IceUtil::ThreadPtr _sendLogThread;
167
- std::deque<JobPtr> _jobQueue;
184
+ std::deque<JobPtr> _jobQueue;
168
185
  };
169
- typedef IceUtil::Handle<LoggerAdminLoggerI> LoggerAdminLoggerIPtr;
170
-
186
+ ICE_DEFINE_PTR(LoggerAdminLoggerIPtr, LoggerAdminLoggerI);
171
187
 
172
188
  class SendLogThread : public IceUtil::Thread
173
189
  {
@@ -182,7 +198,6 @@ private:
182
198
  LoggerAdminLoggerIPtr _logger;
183
199
  };
184
200
 
185
-
186
201
  //
187
202
  // Helper functions
188
203
  //
@@ -195,7 +210,7 @@ filterLogMessages(LogMessageSeq& logMessages, const set<LogMessageType>& message
195
210
  const set<string>& traceCategories, Int messageMax)
196
211
  {
197
212
  assert(!logMessages.empty() && messageMax != 0);
198
-
213
+
199
214
  //
200
215
  // Filter only if one of the 3 filters is set; messageMax < 0 means "give me all"
201
216
  // that match the other filters, if any.
@@ -209,7 +224,7 @@ filterLogMessages(LogMessageSeq& logMessages, const set<LogMessageType>& message
209
224
  bool keepIt = false;
210
225
  if(messageTypes.empty() || messageTypes.count(p->type) != 0)
211
226
  {
212
- if(p->type != TraceMessage || traceCategories.empty() ||
227
+ if(p->type != ICE_ENUM(LogMessageType, TraceMessage) || traceCategories.empty() ||
213
228
  traceCategories.count(p->traceCategory) != 0)
214
229
  {
215
230
  keepIt = true;
@@ -246,15 +261,15 @@ filterLogMessages(LogMessageSeq& logMessages, const set<LogMessageType>& message
246
261
  //
247
262
  // Change this proxy's communicator, while keeping its invocation timeout
248
263
  //
249
- RemoteLoggerPrx
250
- changeCommunicator(const RemoteLoggerPrx& prx, const CommunicatorPtr& communicator)
264
+ RemoteLoggerPrxPtr
265
+ changeCommunicator(const RemoteLoggerPrxPtr& prx, const CommunicatorPtr& communicator)
251
266
  {
252
267
  if(prx == 0)
253
268
  {
254
269
  return 0;
255
270
  }
256
271
 
257
- RemoteLoggerPrx result = RemoteLoggerPrx::uncheckedCast(communicator->stringToProxy(prx->ice_toString()));
272
+ RemoteLoggerPrxPtr result = ICE_UNCHECKED_CAST(RemoteLoggerPrx, communicator->stringToProxy(prx->ice_toString()));
258
273
 
259
274
  return result->ice_invocationTimeout(prx->ice_getInvocationTimeout());
260
275
  }
@@ -301,6 +316,7 @@ createSendLogCommunicator(const CommunicatorPtr& communicator, const LoggerPtr&
301
316
  }
302
317
  initData.properties->parseCommandLineOptions("", extraProps);
303
318
  }
319
+
304
320
  return initialize(initData);
305
321
  }
306
322
 
@@ -312,7 +328,7 @@ LoggerAdminI::LoggerAdminI(const PropertiesPtr& props) :
312
328
  _logCount(0),
313
329
  _maxLogCount(props->getPropertyAsIntWithDefault("Ice.Admin.Logger.KeepLogs", 100)),
314
330
  _traceCount(0),
315
- _maxTraceCount(props->getPropertyAsIntWithDefault("Ice.Admin.Logger.KeepTraces", 100)),
331
+ _maxTraceCount(props->getPropertyAsIntWithDefault("Ice.Admin.Logger.KeepTraces", 100)),
316
332
  _traceLevel(props->getPropertyAsInt("Ice.Trace.Admin.Logger")),
317
333
  _destroyed(false)
318
334
  {
@@ -321,23 +337,31 @@ LoggerAdminI::LoggerAdminI(const PropertiesPtr& props) :
321
337
  }
322
338
 
323
339
  void
340
+ #ifdef ICE_CPP11_MAPPING
341
+ LoggerAdminI::attachRemoteLogger(shared_ptr<RemoteLoggerPrx> prx,
342
+ LogMessageTypeSeq messageTypes,
343
+ StringSeq categories,
344
+ Int messageMax,
345
+ const Current& current)
346
+ #else
324
347
  LoggerAdminI::attachRemoteLogger(const RemoteLoggerPrx& prx,
325
348
  const LogMessageTypeSeq& messageTypes,
326
349
  const StringSeq& categories,
327
350
  Int messageMax,
328
351
  const Current& current)
352
+ #endif
329
353
  {
330
354
  if(!prx)
331
355
  {
332
356
  return; // can't send this null RemoteLogger anything!
333
357
  }
334
-
358
+
335
359
  //
336
360
  // In C++, LoggerAdminI does not keep a "logger" data member to avoid a hard-to-break circular
337
361
  // reference, so we retrieve the logger from Current
338
362
  //
339
-
340
- LoggerAdminLoggerIPtr logger = LoggerAdminLoggerIPtr::dynamicCast(current.adapter->getCommunicator()->getLogger());
363
+
364
+ LoggerAdminLoggerIPtr logger = ICE_DYNAMIC_CAST(LoggerAdminLoggerI, current.adapter->getCommunicator()->getLogger());
341
365
  if(!logger)
342
366
  {
343
367
  // Our logger is not installed - must be a bug
@@ -345,7 +369,7 @@ LoggerAdminI::attachRemoteLogger(const RemoteLoggerPrx& prx,
345
369
  return;
346
370
  }
347
371
 
348
- RemoteLoggerPrx remoteLogger = prx->ice_twoway();
372
+ RemoteLoggerPrxPtr remoteLogger = prx->ice_twoway();
349
373
 
350
374
  Filters filters(messageTypes, categories);
351
375
  LogMessageSeq initLogMessages;
@@ -391,8 +415,38 @@ LoggerAdminI::attachRemoteLogger(const RemoteLoggerPrx& prx,
391
415
  filterLogMessages(initLogMessages, filters.messageTypes, filters.traceCategories, messageMax);
392
416
  }
393
417
 
418
+ #ifdef ICE_CPP11_MAPPING
419
+ try
420
+ {
421
+ auto self = shared_from_this();
422
+ remoteLogger->initAsync(logger->getPrefix(), initLogMessages,
423
+ [self, logger, remoteLogger]()
424
+ {
425
+ if(self->_traceLevel > 1)
426
+ {
427
+ Trace trace(logger, traceCategory);
428
+ trace << "init on `" << remoteLogger << "' completed successfully";
429
+ }
430
+ },
431
+ [self, logger, remoteLogger](exception_ptr e)
432
+ {
433
+ try
434
+ {
435
+ rethrow_exception(e);
436
+ }
437
+ catch(const Ice::LocalException& e)
438
+ {
439
+ self->deadRemoteLogger(remoteLogger, logger, e, "init");
440
+ }
441
+ });
442
+ }
443
+ catch(const LocalException& ex)
444
+ {
445
+ deadRemoteLogger(remoteLogger, logger, ex, "init");
446
+ throw;
447
+ }
448
+ #else
394
449
  CallbackPtr initCompletedCb = newCallback(this, &LoggerAdminI::initCompleted);
395
-
396
450
  try
397
451
  {
398
452
  remoteLogger->begin_init(logger->getPrefix(), initLogMessages, initCompletedCb, logger);
@@ -402,10 +456,15 @@ LoggerAdminI::attachRemoteLogger(const RemoteLoggerPrx& prx,
402
456
  deadRemoteLogger(remoteLogger, logger, ex, "init");
403
457
  throw;
404
458
  }
459
+ #endif
405
460
  }
406
461
 
407
462
  bool
463
+ #ifdef ICE_CPP11_MAPPING
464
+ LoggerAdminI::detachRemoteLogger(shared_ptr<RemoteLoggerPrx> remoteLogger, const Current& current)
465
+ #else
408
466
  LoggerAdminI::detachRemoteLogger(const RemoteLoggerPrx& remoteLogger, const Current& current)
467
+ #endif
409
468
  {
410
469
  if(remoteLogger == 0)
411
470
  {
@@ -429,13 +488,18 @@ LoggerAdminI::detachRemoteLogger(const RemoteLoggerPrx& remoteLogger, const Curr
429
488
  trace << "cannot detach `" << remoteLogger << "': not found";
430
489
  }
431
490
  }
432
-
491
+
433
492
  return found;
434
493
  }
435
494
 
436
- LogMessageSeq
495
+ LogMessageSeq
496
+ #ifdef ICE_CPP11_MAPPING
497
+ LoggerAdminI::getLog(LogMessageTypeSeq messageTypes, StringSeq categories,
498
+ Int messageMax, string& prefix, const Current& current)
499
+ #else
437
500
  LoggerAdminI::getLog(const LogMessageTypeSeq& messageTypes, const StringSeq& categories,
438
501
  Int messageMax, string& prefix, const Current& current)
502
+ #endif
439
503
  {
440
504
  LogMessageSeq logMessages;
441
505
  {
@@ -449,13 +513,13 @@ LoggerAdminI::getLog(const LogMessageTypeSeq& messageTypes, const StringSeq& cat
449
513
 
450
514
  LoggerPtr logger = current.adapter->getCommunicator()->getLogger();
451
515
  prefix = logger->getPrefix();
452
-
516
+
453
517
  if(!logMessages.empty())
454
518
  {
455
519
  Filters filters(messageTypes, categories);
456
520
  filterLogMessages(logMessages, filters.messageTypes, filters.traceCategories, messageMax);
457
521
  }
458
-
522
+
459
523
  return logMessages;
460
524
  }
461
525
 
@@ -467,14 +531,14 @@ LoggerAdminI::destroy()
467
531
  IceUtil::Mutex::Lock lock(_mutex);
468
532
  if(!_destroyed)
469
533
  {
470
- _destroyed = true;
534
+ _destroyed = true;
471
535
  sendLogCommunicator = _sendLogCommunicator;
472
536
  _sendLogCommunicator = 0;
473
537
  }
474
538
  }
475
-
539
+
476
540
  //
477
- // Destroy outside lock to avoid deadlock when there are outstanding two-way log calls sent to
541
+ // Destroy outside lock to avoid deadlock when there are outstanding two-way log calls sent to
478
542
  // remote logggers
479
543
  //
480
544
  if(sendLogCommunicator)
@@ -483,22 +547,22 @@ LoggerAdminI::destroy()
483
547
  }
484
548
  }
485
549
 
486
- vector<RemoteLoggerPrx>
550
+ vector<RemoteLoggerPrxPtr>
487
551
  LoggerAdminI::log(const LogMessage& logMessage)
488
552
  {
489
- vector<RemoteLoggerPrx> remoteLoggers;
553
+ vector<RemoteLoggerPrxPtr> remoteLoggers;
490
554
 
491
555
  IceUtil::Mutex::Lock lock(_mutex);
492
556
 
493
557
  //
494
558
  // Put message in _queue
495
559
  //
496
- if((logMessage.type != TraceMessage && _maxLogCount > 0) ||
497
- (logMessage.type == TraceMessage && _maxTraceCount > 0))
560
+ if((logMessage.type != ICE_ENUM(LogMessageType, TraceMessage) && _maxLogCount > 0) ||
561
+ (logMessage.type == ICE_ENUM(LogMessageType, TraceMessage) && _maxTraceCount > 0))
498
562
  {
499
563
  list<LogMessage>::iterator p = _queue.insert(_queue.end(), logMessage);
500
564
 
501
- if(logMessage.type != TraceMessage)
565
+ if(logMessage.type != ICE_ENUM(LogMessageType, TraceMessage))
502
566
  {
503
567
  assert(_maxLogCount > 0);
504
568
  if(_logCount == _maxLogCount)
@@ -508,7 +572,7 @@ LoggerAdminI::log(const LogMessage& logMessage)
508
572
  //
509
573
  assert(_oldestLog != _queue.end());
510
574
  _oldestLog = _queue.erase(_oldestLog);
511
- while(_oldestLog != _queue.end() && _oldestLog->type == TraceMessage)
575
+ while(_oldestLog != _queue.end() && _oldestLog->type == ICE_ENUM(LogMessageType, TraceMessage))
512
576
  {
513
577
  _oldestLog++;
514
578
  }
@@ -534,7 +598,7 @@ LoggerAdminI::log(const LogMessage& logMessage)
534
598
  //
535
599
  assert(_oldestTrace != _queue.end());
536
600
  _oldestTrace = _queue.erase(_oldestTrace);
537
- while(_oldestTrace != _queue.end() && _oldestTrace->type != TraceMessage)
601
+ while(_oldestTrace != _queue.end() && _oldestTrace->type != ICE_ENUM(LogMessageType, TraceMessage))
538
602
  {
539
603
  _oldestTrace++;
540
604
  }
@@ -560,7 +624,7 @@ LoggerAdminI::log(const LogMessage& logMessage)
560
624
 
561
625
  if(filters.messageTypes.empty() || filters.messageTypes.count(logMessage.type) != 0)
562
626
  {
563
- if(logMessage.type != TraceMessage || filters.traceCategories.empty() ||
627
+ if(logMessage.type != ICE_ENUM(LogMessageType, TraceMessage) || filters.traceCategories.empty() ||
564
628
  filters.traceCategories.count(logMessage.traceCategory) != 0)
565
629
  {
566
630
  remoteLoggers.push_back(p->first);
@@ -572,7 +636,7 @@ LoggerAdminI::log(const LogMessage& logMessage)
572
636
  }
573
637
 
574
638
  void
575
- LoggerAdminI::deadRemoteLogger(const RemoteLoggerPrx& remoteLogger,
639
+ LoggerAdminI::deadRemoteLogger(const RemoteLoggerPrxPtr& remoteLogger,
576
640
  const LoggerPtr& logger,
577
641
  const LocalException& ex,
578
642
  const string& operation)
@@ -591,39 +655,44 @@ LoggerAdminI::deadRemoteLogger(const RemoteLoggerPrx& remoteLogger,
591
655
  }
592
656
 
593
657
  bool
594
- LoggerAdminI::removeRemoteLogger(const RemoteLoggerPrx& remoteLogger)
658
+ LoggerAdminI::removeRemoteLogger(const RemoteLoggerPrxPtr& remoteLogger)
595
659
  {
596
660
  IceUtil::Mutex::Lock lock(_mutex);
597
661
  return _remoteLoggerMap.erase(remoteLogger) > 0;
598
662
  }
599
663
 
664
+ #ifndef ICE_CPP11_MAPPING
665
+ //
666
+ // begin_init callback method for C++98 mapping
667
+ //
600
668
  void
601
669
  LoggerAdminI::initCompleted(const AsyncResultPtr& r)
602
670
  {
603
- RemoteLoggerPrx remoteLogger = RemoteLoggerPrx::uncheckedCast(r->getProxy());
604
-
605
- try
671
+ RemoteLoggerPrxPtr remoteLogger = ICE_UNCHECKED_CAST(RemoteLoggerPrx, r->getProxy());
672
+
673
+ try
606
674
  {
607
675
  remoteLogger->end_init(r);
608
676
 
609
677
  if(_traceLevel > 1)
610
678
  {
611
- LoggerPtr logger = LoggerPtr::dynamicCast(r->getCookie());
679
+ LoggerPtr logger = ICE_DYNAMIC_CAST(Logger, r->getCookie());
612
680
  Trace trace(logger, traceCategory);
613
681
  trace << r->getOperation() << " on `" << remoteLogger << "' completed successfully";
614
682
  }
615
683
  }
616
684
  catch(const LocalException& ex)
617
685
  {
618
- deadRemoteLogger(remoteLogger, LoggerPtr::dynamicCast(r->getCookie()), ex, r->getOperation());
686
+ deadRemoteLogger(remoteLogger, ICE_DYNAMIC_CAST(Logger, r->getCookie()), ex, r->getOperation());
619
687
  }
620
688
  }
689
+ #endif
621
690
 
622
691
  //
623
692
  // LoggerAdminLoggerI
624
693
  //
625
694
 
626
- LoggerAdminLoggerI::LoggerAdminLoggerI(const PropertiesPtr& props,
695
+ LoggerAdminLoggerI::LoggerAdminLoggerI(const PropertiesPtr& props,
627
696
  const LoggerPtr& localLogger) :
628
697
  _loggerAdmin(new LoggerAdminI(props)),
629
698
  _destroyed(false)
@@ -648,7 +717,7 @@ LoggerAdminLoggerI::LoggerAdminLoggerI(const PropertiesPtr& props,
648
717
  void
649
718
  LoggerAdminLoggerI::print(const string& message)
650
719
  {
651
- LogMessage logMessage = { PrintMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
720
+ LogMessage logMessage = { ICE_ENUM(LogMessageType, PrintMessage), IceUtil::Time::now().toMicroSeconds(), "", message };
652
721
 
653
722
  _localLogger->print(message);
654
723
  log(logMessage);
@@ -657,7 +726,7 @@ LoggerAdminLoggerI::print(const string& message)
657
726
  void
658
727
  LoggerAdminLoggerI::trace(const string& category, const string& message)
659
728
  {
660
- LogMessage logMessage = { TraceMessage, IceUtil::Time::now().toMicroSeconds(), category, message };
729
+ LogMessage logMessage = { ICE_ENUM(LogMessageType, TraceMessage), IceUtil::Time::now().toMicroSeconds(), category, message };
661
730
 
662
731
  _localLogger->trace(category, message);
663
732
  log(logMessage);
@@ -666,7 +735,7 @@ LoggerAdminLoggerI::trace(const string& category, const string& message)
666
735
  void
667
736
  LoggerAdminLoggerI::warning(const string& message)
668
737
  {
669
- LogMessage logMessage = { WarningMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
738
+ LogMessage logMessage = { ICE_ENUM(LogMessageType, WarningMessage), IceUtil::Time::now().toMicroSeconds(), "", message };
670
739
 
671
740
  _localLogger->warning(message);
672
741
  log(logMessage);
@@ -675,7 +744,7 @@ LoggerAdminLoggerI::warning(const string& message)
675
744
  void
676
745
  LoggerAdminLoggerI::error(const string& message)
677
746
  {
678
- LogMessage logMessage = { ErrorMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
747
+ LogMessage logMessage = { ICE_ENUM(LogMessageType, ErrorMessage), IceUtil::Time::now().toMicroSeconds(), "", message };
679
748
 
680
749
  _localLogger->error(message);
681
750
  log(logMessage);
@@ -702,7 +771,7 @@ LoggerAdminLoggerI::getFacet() const
702
771
  void
703
772
  LoggerAdminLoggerI::log(const LogMessage& logMessage)
704
773
  {
705
- const vector<RemoteLoggerPrx> remoteLoggers = _loggerAdmin->log(logMessage);
774
+ const vector<RemoteLoggerPrxPtr> remoteLoggers = _loggerAdmin->log(logMessage);
706
775
 
707
776
  if(!remoteLoggers.empty())
708
777
  {
@@ -710,7 +779,7 @@ LoggerAdminLoggerI::log(const LogMessage& logMessage)
710
779
 
711
780
  if(!_sendLogThread)
712
781
  {
713
- _sendLogThread = new SendLogThread(this);
782
+ _sendLogThread = new SendLogThread(ICE_SHARED_FROM_THIS);
714
783
  _sendLogThread->start();
715
784
  }
716
785
 
@@ -755,7 +824,9 @@ LoggerAdminLoggerI::run()
755
824
  trace << "send log thread started";
756
825
  }
757
826
 
827
+ #ifndef ICE_CPP11_MAPPING
758
828
  CallbackPtr logCompletedCb = newCallback(this, &LoggerAdminLoggerI::logCompleted);
829
+ #endif
759
830
 
760
831
  for(;;)
761
832
  {
@@ -774,7 +845,7 @@ LoggerAdminLoggerI::run()
774
845
  _jobQueue.pop_front();
775
846
  lock.release();
776
847
 
777
- for(vector<RemoteLoggerPrx>::const_iterator p = job->remoteLoggers.begin(); p != job->remoteLoggers.end(); ++p)
848
+ for(vector<RemoteLoggerPrxPtr>::const_iterator p = job->remoteLoggers.begin(); p != job->remoteLoggers.end(); ++p)
778
849
  {
779
850
  if(_loggerAdmin->getTraceLevel() > 1)
780
851
  {
@@ -784,10 +855,39 @@ LoggerAdminLoggerI::run()
784
855
 
785
856
  try
786
857
  {
858
+ #ifdef ICE_CPP11_MAPPING
859
+ RemoteLoggerPrxPtr remoteLogger = *p;
860
+ auto self = shared_from_this();
861
+ remoteLogger->logAsync(job->logMessage,
862
+ [self, remoteLogger]()
863
+ {
864
+ if(self->_loggerAdmin->getTraceLevel() > 1)
865
+ {
866
+ Trace trace(self->_localLogger, traceCategory);
867
+ trace << "log on `" << remoteLogger << "' completed successfully";
868
+ }
869
+ },
870
+ [self, remoteLogger](exception_ptr e)
871
+ {
872
+ try
873
+ {
874
+ rethrow_exception(e);
875
+ }
876
+ catch(const CommunicatorDestroyedException&)
877
+ {
878
+ // expected if there are outstanding calls during communicator destruction
879
+ }
880
+ catch(const LocalException& ex)
881
+ {
882
+ self->_loggerAdmin->deadRemoteLogger(remoteLogger, self->_localLogger, ex, "log");
883
+ }
884
+ });
885
+ #else
787
886
  //
788
887
  // *p is a proxy associated with the _sendLogCommunicator
789
888
  //
790
889
  (*p)->begin_log(job->logMessage, logCompletedCb);
890
+ #endif
791
891
  }
792
892
  catch(const LocalException& ex)
793
893
  {
@@ -803,12 +903,16 @@ LoggerAdminLoggerI::run()
803
903
  }
804
904
  }
805
905
 
906
+ #ifndef ICE_CPP11_MAPPING
907
+ //
908
+ // begin_log callback for C++98 mapping
909
+ //
806
910
  void
807
911
  LoggerAdminLoggerI::logCompleted(const AsyncResultPtr& r)
808
912
  {
809
- RemoteLoggerPrx remoteLogger = RemoteLoggerPrx::uncheckedCast(r->getProxy());
810
-
811
- try
913
+ RemoteLoggerPrxPtr remoteLogger = ICE_UNCHECKED_CAST(RemoteLoggerPrx, r->getProxy());
914
+
915
+ try
812
916
  {
813
917
  remoteLogger->end_log(r);
814
918
 
@@ -827,6 +931,7 @@ LoggerAdminLoggerI::logCompleted(const AsyncResultPtr& r)
827
931
  _loggerAdmin->deadRemoteLogger(remoteLogger, _localLogger, ex, r->getOperation());
828
932
  }
829
933
  }
934
+ #endif
830
935
 
831
936
  //
832
937
  // SendLogThread
@@ -852,11 +957,11 @@ SendLogThread::run()
852
957
  namespace IceInternal
853
958
  {
854
959
 
855
- LoggerAdminLoggerPtr
856
- createLoggerAdminLogger(const PropertiesPtr& props,
960
+ LoggerAdminLoggerPtr
961
+ createLoggerAdminLogger(const PropertiesPtr& props,
857
962
  const LoggerPtr& localLogger)
858
963
  {
859
- return new LoggerAdminLoggerI(props, localLogger);
964
+ return ICE_MAKE_SHARED(LoggerAdminLoggerI, props, localLogger);
860
965
  }
861
966
 
862
967
  }