zeroc-ice 3.7.0 → 3.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (684) hide show
  1. checksums.yaml +4 -4
  2. data/ICE_LICENSE +1 -1
  3. data/bin/slice2rb +1 -1
  4. data/ext/Communicator.cpp +72 -2
  5. data/ext/Communicator.h +1 -1
  6. data/ext/Config.h +11 -1
  7. data/ext/Connection.cpp +22 -2
  8. data/ext/Connection.h +4 -1
  9. data/ext/Endpoint.cpp +1 -1
  10. data/ext/Endpoint.h +1 -1
  11. data/ext/ImplicitContext.cpp +1 -1
  12. data/ext/ImplicitContext.h +1 -1
  13. data/ext/Init.cpp +1 -1
  14. data/ext/Logger.cpp +1 -1
  15. data/ext/Logger.h +1 -1
  16. data/ext/Operation.cpp +1 -1
  17. data/ext/Operation.h +1 -1
  18. data/ext/Properties.cpp +1 -1
  19. data/ext/Properties.h +1 -1
  20. data/ext/Proxy.cpp +70 -1
  21. data/ext/Proxy.h +1 -1
  22. data/ext/Slice.cpp +1 -1
  23. data/ext/Slice.h +1 -1
  24. data/ext/Types.cpp +21 -5
  25. data/ext/Types.h +1 -1
  26. data/ext/Util.cpp +1 -1
  27. data/ext/Util.h +1 -1
  28. data/ext/ValueFactoryManager.cpp +2 -2
  29. data/ext/ValueFactoryManager.h +2 -2
  30. data/ext/ice/cpp/include/Ice/Application.h +234 -76
  31. data/ext/ice/cpp/include/Ice/AsyncResult.h +77 -1
  32. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -1
  33. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +35 -2
  34. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
  35. data/ext/ice/cpp/include/Ice/Buffer.h +1 -1
  36. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +43 -1
  37. data/ext/ice/cpp/include/Ice/Comparable.h +81 -1
  38. data/ext/ice/cpp/include/Ice/Config.h +8 -1
  39. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +97 -1
  40. data/ext/ice/cpp/include/Ice/ConnectionIF.h +3 -1
  41. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +1 -1
  42. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +1 -1
  43. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +17 -2
  44. data/ext/ice/cpp/include/Ice/Dispatcher.h +22 -2
  45. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -1
  46. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  47. data/ext/ice/cpp/include/Ice/Exception.h +57 -15
  48. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +19 -1
  49. data/ext/ice/cpp/include/Ice/FactoryTable.h +12 -2
  50. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
  51. data/ext/ice/cpp/include/Ice/Format.h +13 -14
  52. data/ext/ice/cpp/include/Ice/Functional.h +6 -1
  53. data/ext/ice/cpp/include/Ice/GCObject.h +1 -1
  54. data/ext/ice/cpp/include/Ice/Handle.h +1 -1
  55. data/ext/ice/cpp/include/Ice/Ice.h +1 -1
  56. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +38 -3
  57. data/ext/ice/cpp/include/Ice/Incoming.h +15 -2
  58. data/ext/ice/cpp/include/Ice/IncomingAsync.h +37 -4
  59. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -1
  60. data/ext/ice/cpp/include/Ice/Initialize.h +764 -98
  61. data/ext/ice/cpp/include/Ice/InputStream.h +637 -112
  62. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -1
  63. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +17 -1
  64. data/ext/ice/cpp/include/Ice/LocalObject.h +5 -1
  65. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  66. data/ext/ice/cpp/include/Ice/LoggerUtil.h +37 -6
  67. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +3 -1
  68. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +3 -1
  69. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +3 -1
  70. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +46 -23
  71. data/ext/ice/cpp/include/Ice/Object.h +338 -47
  72. data/ext/ice/cpp/include/Ice/ObjectF.h +5 -1
  73. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -1
  74. data/ext/ice/cpp/include/Ice/Optional.h +22 -6
  75. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +15 -1
  76. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -1
  77. data/ext/ice/cpp/include/Ice/OutputStream.h +436 -92
  78. data/ext/ice/cpp/include/Ice/Protocol.h +31 -1
  79. data/ext/ice/cpp/include/Ice/Proxy.h +2244 -190
  80. data/ext/ice/cpp/include/Ice/ProxyF.h +3 -1
  81. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  82. data/ext/ice/cpp/include/Ice/ProxyHandle.h +10 -1
  83. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  84. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +67 -9
  85. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -1
  86. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -1
  87. data/ext/ice/cpp/include/Ice/SHA1.h +1 -1
  88. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  89. data/ext/ice/cpp/include/Ice/Service.h +267 -138
  90. data/ext/ice/cpp/include/Ice/SliceChecksums.h +5 -1
  91. data/ext/ice/cpp/include/Ice/SlicedData.h +80 -33
  92. data/ext/ice/cpp/include/Ice/SlicedDataF.h +4 -1
  93. data/ext/ice/cpp/include/Ice/StreamHelpers.h +324 -116
  94. data/ext/ice/cpp/include/Ice/StringConverter.h +32 -1
  95. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  96. data/ext/ice/cpp/include/Ice/UUID.h +2 -1
  97. data/ext/ice/cpp/include/Ice/UniquePtr.h +2 -2
  98. data/ext/ice/cpp/include/Ice/UniqueRef.h +6 -2
  99. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +6 -1
  100. data/ext/ice/cpp/include/Ice/Value.h +41 -1
  101. data/ext/ice/cpp/include/Ice/ValueF.h +3 -1
  102. data/ext/ice/cpp/include/IceSSL/Config.h +1 -1
  103. data/ext/ice/cpp/include/IceSSL/IceSSL.h +1 -1
  104. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +75 -53
  105. data/ext/ice/cpp/include/IceSSL/Plugin.h +323 -218
  106. data/ext/ice/cpp/include/IceSSL/SChannel.h +34 -27
  107. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +35 -28
  108. data/ext/ice/cpp/include/IceSSL/UWP.h +33 -24
  109. data/ext/ice/cpp/include/IceUtil/Atomic.h +1 -1
  110. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -1
  111. data/ext/ice/cpp/include/IceUtil/Config.h +11 -3
  112. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +1 -1
  113. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -1
  114. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +59 -31
  115. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -1
  116. data/ext/ice/cpp/include/IceUtil/Exception.h +1 -1
  117. data/ext/ice/cpp/include/IceUtil/FileUtil.h +1 -1
  118. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -1
  119. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -1
  120. data/ext/ice/cpp/include/IceUtil/IceUtil.h +1 -1
  121. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -1
  122. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -1
  123. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -1
  124. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -1
  125. data/ext/ice/cpp/include/IceUtil/Mutex.h +2 -5
  126. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -1
  127. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -1
  128. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -1
  129. data/ext/ice/cpp/include/IceUtil/Optional.h +95 -1
  130. data/ext/ice/cpp/include/IceUtil/Options.h +1 -1
  131. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +1 -1
  132. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -1
  133. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +1 -1
  134. data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
  135. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -1
  136. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +4 -4
  137. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +5 -3
  138. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -1
  139. data/ext/ice/cpp/include/IceUtil/Shared.h +1 -1
  140. data/ext/ice/cpp/include/IceUtil/StopWatch.h +1 -1
  141. data/ext/ice/cpp/include/IceUtil/StringConverter.h +106 -86
  142. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -1
  143. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -1
  144. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -1
  145. data/ext/ice/cpp/include/IceUtil/Time.h +1 -1
  146. data/ext/ice/cpp/include/IceUtil/Timer.h +5 -1
  147. data/ext/ice/cpp/include/IceUtil/UUID.h +5 -1
  148. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  149. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +80 -20
  150. data/ext/ice/cpp/include/generated/Ice/Communicator.h +927 -130
  151. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +13 -5
  152. data/ext/ice/cpp/include/generated/Ice/Connection.h +990 -194
  153. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +21 -9
  154. data/ext/ice/cpp/include/generated/Ice/Current.h +180 -17
  155. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +484 -118
  156. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +41 -17
  157. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +29 -3
  158. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +11 -5
  159. data/ext/ice/cpp/include/generated/Ice/Identity.h +56 -7
  160. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +150 -28
  161. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +13 -5
  162. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +629 -83
  163. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +19 -7
  164. data/ext/ice/cpp/include/generated/Ice/LocalException.h +5104 -794
  165. data/ext/ice/cpp/include/generated/Ice/Locator.h +2222 -443
  166. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +27 -9
  167. data/ext/ice/cpp/include/generated/Ice/Logger.h +104 -26
  168. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +13 -5
  169. data/ext/ice/cpp/include/generated/Ice/Metrics.h +2534 -455
  170. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +1004 -126
  171. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +13 -5
  172. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +72 -12
  173. data/ext/ice/cpp/include/generated/Ice/Plugin.h +142 -28
  174. data/ext/ice/cpp/include/generated/Ice/PluginF.h +17 -7
  175. data/ext/ice/cpp/include/generated/Ice/Process.h +511 -71
  176. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +18 -6
  177. data/ext/ice/cpp/include/generated/Ice/Properties.h +306 -58
  178. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +737 -121
  179. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +22 -8
  180. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1526 -279
  181. data/ext/ice/cpp/include/generated/Ice/Router.h +1009 -198
  182. data/ext/ice/cpp/include/generated/Ice/RouterF.h +18 -6
  183. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +174 -18
  184. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +13 -5
  185. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +13 -3
  186. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +177 -23
  187. data/ext/ice/cpp/include/generated/Ice/Version.h +43 -13
  188. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +71 -15
  189. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +13 -5
  190. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +39 -9
  191. data/ext/ice/cpp/src/Ice/ACM.cpp +12 -3
  192. data/ext/ice/cpp/src/Ice/ACM.h +1 -1
  193. data/ext/ice/cpp/src/Ice/ACMF.h +1 -1
  194. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -1
  195. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -1
  196. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  197. data/ext/ice/cpp/src/Ice/ArgVector.cpp +1 -1
  198. data/ext/ice/cpp/src/Ice/ArgVector.h +1 -1
  199. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -1
  200. data/ext/ice/cpp/src/Ice/Base64.cpp +1 -1
  201. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  202. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +1 -1
  203. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +1 -1
  204. data/ext/ice/cpp/src/Ice/Buffer.cpp +1 -1
  205. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +3 -3
  206. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +1 -1
  207. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +1 -1
  208. data/ext/ice/cpp/src/Ice/Communicator.cpp +6 -4
  209. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +3 -3
  210. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +34 -13
  211. data/ext/ice/cpp/src/Ice/CommunicatorI.h +10 -10
  212. data/ext/ice/cpp/src/Ice/Cond.cpp +1 -1
  213. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +11 -6
  214. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +1 -1
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +1 -1
  216. data/ext/ice/cpp/src/Ice/Connection.cpp +27 -11
  217. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +3 -3
  218. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +24 -19
  219. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +1 -1
  220. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +1 -1
  221. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +45 -37
  222. data/ext/ice/cpp/src/Ice/ConnectionI.h +10 -8
  223. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +1 -1
  224. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +1 -1
  225. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -1
  226. data/ext/ice/cpp/src/Ice/Connector.h +1 -1
  227. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  228. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +1 -1
  229. data/ext/ice/cpp/src/Ice/Current.cpp +3 -3
  230. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +5 -7
  231. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  232. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  233. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -1
  234. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +1 -1
  235. data/ext/ice/cpp/src/Ice/Endpoint.cpp +24 -10
  236. data/ext/ice/cpp/src/Ice/EndpointF.cpp +3 -3
  237. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +1 -1
  238. data/ext/ice/cpp/src/Ice/EndpointFactory.h +1 -1
  239. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +7 -13
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -1
  242. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  243. data/ext/ice/cpp/src/Ice/EndpointI.cpp +2 -2
  244. data/ext/ice/cpp/src/Ice/EndpointI.h +5 -5
  245. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -1
  246. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +3 -3
  247. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -1
  248. data/ext/ice/cpp/src/Ice/EventHandler.h +1 -1
  249. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -1
  250. data/ext/ice/cpp/src/Ice/Exception.cpp +1 -1
  251. data/ext/ice/cpp/src/Ice/FacetMap.cpp +3 -3
  252. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -1
  253. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +1 -1
  254. data/ext/ice/cpp/src/Ice/GCObject.cpp +1 -1
  255. data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
  256. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -1
  257. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
  258. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +24 -29
  259. data/ext/ice/cpp/src/Ice/IPEndpointI.h +5 -5
  260. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -1
  261. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +1 -1
  262. data/ext/ice/cpp/src/Ice/Identity.cpp +3 -3
  263. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +6 -4
  264. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +3 -3
  265. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +2 -13
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -1
  267. data/ext/ice/cpp/src/Ice/Incoming.cpp +1 -1
  268. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -1
  269. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -1
  270. data/ext/ice/cpp/src/Ice/Initialize.cpp +10 -16
  271. data/ext/ice/cpp/src/Ice/InputStream.cpp +1 -1
  272. data/ext/ice/cpp/src/Ice/Instance.cpp +13 -34
  273. data/ext/ice/cpp/src/Ice/Instance.h +1 -1
  274. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +33 -13
  275. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +3 -3
  276. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -1
  277. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -1
  278. data/ext/ice/cpp/src/Ice/LocalException.cpp +279 -279
  279. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -1
  280. data/ext/ice/cpp/src/Ice/Locator.cpp +287 -174
  281. data/ext/ice/cpp/src/Ice/LocatorF.cpp +3 -3
  282. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +4 -9
  283. data/ext/ice/cpp/src/Ice/LocatorInfo.h +1 -1
  284. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  285. data/ext/ice/cpp/src/Ice/Logger.cpp +6 -4
  286. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -1
  287. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -1
  288. data/ext/ice/cpp/src/Ice/LoggerF.cpp +3 -3
  289. data/ext/ice/cpp/src/Ice/LoggerI.cpp +1 -1
  290. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -1
  291. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +1 -1
  292. data/ext/ice/cpp/src/Ice/Metrics.cpp +297 -109
  293. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +2 -7
  294. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -1
  295. data/ext/ice/cpp/src/Ice/Network.cpp +188 -225
  296. data/ext/ice/cpp/src/Ice/Network.h +3 -12
  297. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -1
  298. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +1 -1
  299. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -1
  300. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  301. data/ext/ice/cpp/src/Ice/Object.cpp +7 -4
  302. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +6 -4
  303. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +3 -3
  304. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +53 -19
  305. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +1 -1
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +1 -1
  307. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +116 -150
  308. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +11 -11
  309. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +6 -4
  310. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -1
  311. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +25 -42
  312. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +2 -2
  313. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +1 -1
  314. data/ext/ice/cpp/src/Ice/OutputStream.cpp +1 -1
  315. data/ext/ice/cpp/src/Ice/Plugin.cpp +9 -5
  316. data/ext/ice/cpp/src/Ice/PluginF.cpp +3 -3
  317. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +15 -34
  318. data/ext/ice/cpp/src/Ice/PluginManagerI.h +3 -3
  319. data/ext/ice/cpp/src/Ice/Process.cpp +69 -40
  320. data/ext/ice/cpp/src/Ice/ProcessF.cpp +3 -3
  321. data/ext/ice/cpp/src/Ice/Properties.cpp +6 -4
  322. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +89 -54
  323. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +1 -1
  324. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -1
  325. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +3 -3
  326. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +15 -21
  327. data/ext/ice/cpp/src/Ice/PropertiesI.h +10 -10
  328. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +4 -2
  329. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -2
  330. data/ext/ice/cpp/src/Ice/Protocol.cpp +5 -13
  331. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +1 -1
  332. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +1 -1
  333. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  334. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -1
  335. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -1
  336. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  337. data/ext/ice/cpp/src/Ice/Proxy.cpp +46 -1
  338. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
  339. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -1
  340. data/ext/ice/cpp/src/Ice/Reference.cpp +56 -6
  341. data/ext/ice/cpp/src/Ice/Reference.h +13 -2
  342. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +51 -90
  343. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -1
  344. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  345. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +1 -1
  346. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
  347. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +203 -117
  348. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  349. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -1
  350. data/ext/ice/cpp/src/Ice/RequestHandler.h +1 -1
  351. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +1 -1
  352. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +1 -1
  353. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -1
  354. data/ext/ice/cpp/src/Ice/ResponseHandler.h +1 -1
  355. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +1 -1
  356. data/ext/ice/cpp/src/Ice/RetryQueue.h +1 -1
  357. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  358. data/ext/ice/cpp/src/Ice/Router.cpp +167 -89
  359. data/ext/ice/cpp/src/Ice/RouterF.cpp +3 -3
  360. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +6 -28
  361. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -3
  362. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  363. data/ext/ice/cpp/src/Ice/SHA1.cpp +1 -1
  364. data/ext/ice/cpp/src/Ice/Selector.cpp +19 -26
  365. data/ext/ice/cpp/src/Ice/Selector.h +1 -1
  366. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +6 -4
  367. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +3 -3
  368. data/ext/ice/cpp/src/Ice/ServantManager.cpp +15 -31
  369. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  370. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -1
  371. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +3 -3
  372. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -1
  373. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -1
  374. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +32 -52
  375. data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -1
  376. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +10 -1
  377. data/ext/ice/cpp/src/Ice/StringUtil.h +1 -1
  378. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +1 -1
  379. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -1
  380. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +5 -13
  381. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -1
  382. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -1
  383. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -1
  384. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +8 -11
  385. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +2 -2
  386. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +1 -1
  387. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +1 -1
  388. data/ext/ice/cpp/src/Ice/Thread.cpp +1 -1
  389. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +13 -13
  390. data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -1
  391. data/ext/ice/cpp/src/Ice/Timer.cpp +1 -1
  392. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +1 -1
  393. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  394. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -1
  395. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +1 -1
  396. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -1
  397. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -1
  398. data/ext/ice/cpp/src/Ice/Transceiver.h +1 -1
  399. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  400. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +1 -1
  401. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -1
  402. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +19 -27
  403. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -2
  404. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +17 -54
  405. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +1 -1
  406. data/ext/ice/cpp/src/Ice/Value.cpp +1 -1
  407. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +9 -5
  408. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +3 -6
  409. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +2 -2
  410. data/ext/ice/cpp/src/Ice/Version.cpp +3 -3
  411. data/ext/ice/cpp/src/Ice/VirtualShared.h +1 -1
  412. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -1
  413. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -1
  414. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -1
  415. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -1
  416. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +4 -5
  417. data/ext/ice/cpp/src/Ice/WSEndpoint.h +2 -2
  418. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +8 -9
  419. data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -1
  420. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +85 -27
  421. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +599 -113
  422. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +1 -1
  423. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -1
  424. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +1 -1
  425. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -1
  426. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +1 -1
  427. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -1
  428. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +70 -24
  429. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +635 -69
  430. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +1 -1
  431. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +71 -9
  432. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +2 -4
  433. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -1
  434. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +1 -1
  435. data/ext/ice/cpp/src/IceSSL/CertificateI.h +1 -1
  436. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +6 -4
  437. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +3 -3
  438. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +2 -4
  439. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -1
  440. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +2 -2
  441. data/ext/ice/cpp/src/IceSSL/EndpointI.h +2 -2
  442. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +6 -4
  443. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -1
  444. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -1
  445. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -1
  446. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +1 -1
  447. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +1 -1
  448. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +1 -1
  449. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +1 -1
  450. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +1 -1
  451. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +25 -62
  452. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +1 -1
  453. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +1 -1
  454. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +1 -1
  455. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +1 -1
  456. data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -1
  457. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -1
  458. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -1
  459. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +1 -1
  460. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +1 -1
  461. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +1 -1
  462. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +1 -1
  463. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +1 -1
  464. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +19 -27
  465. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +1 -1
  466. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +7 -16
  467. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +1 -1
  468. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -1
  469. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +1 -1
  470. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1 -1
  471. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +1 -1
  472. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +1 -1
  473. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +1 -1
  474. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +1 -1
  475. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +1 -1
  476. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +7 -10
  477. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +1 -1
  478. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +4 -5
  479. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -1
  480. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -1
  481. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +1 -1
  482. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +1 -1
  483. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +1 -1
  484. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +1 -1
  485. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +1 -1
  486. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +1 -1
  487. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +1 -1
  488. data/ext/ice/cpp/src/IceSSL/Util.cpp +1 -1
  489. data/ext/ice/cpp/src/IceSSL/Util.h +1 -1
  490. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +1 -1
  491. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -1
  492. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -1
  493. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +1 -1
  494. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +5 -5
  495. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  496. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  497. data/ext/ice/cpp/src/IceUtil/Options.cpp +1 -1
  498. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +1 -1
  499. data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -1
  500. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +1 -5
  501. data/ext/ice/cpp/src/IceUtil/Shared.cpp +1 -1
  502. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -1
  503. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +1 -1
  504. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -1
  505. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  506. data/ext/ice/cpp/src/IceUtil/UUID.cpp +3 -3
  507. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -1
  508. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -1
  509. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +1 -1
  510. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +160 -150
  511. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +9 -8
  512. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -1
  513. data/ext/ice/cpp/src/Slice/Checksum.h +1 -1
  514. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -1
  515. data/ext/ice/cpp/src/Slice/FileTracker.h +1 -1
  516. data/ext/ice/cpp/src/Slice/Grammar.cpp +567 -585
  517. data/ext/ice/cpp/src/Slice/Grammar.h +2 -2
  518. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -1
  519. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +131 -47
  520. data/ext/ice/cpp/src/Slice/JavaUtil.h +10 -5
  521. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  522. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  523. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +1 -1
  524. data/ext/ice/cpp/src/Slice/PHPUtil.h +1 -1
  525. data/ext/ice/cpp/src/Slice/Parser.cpp +383 -101
  526. data/ext/ice/cpp/src/Slice/Parser.h +40 -3
  527. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +2 -1
  528. data/ext/ice/cpp/src/Slice/Preprocessor.h +2 -2
  529. data/ext/ice/cpp/src/Slice/Python.cpp +7 -15
  530. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +66 -9
  531. data/ext/ice/cpp/src/Slice/PythonUtil.h +2 -2
  532. data/ext/ice/cpp/src/Slice/Ruby.cpp +1 -1
  533. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +2 -2
  534. data/ext/ice/cpp/src/Slice/RubyUtil.h +1 -1
  535. data/ext/ice/cpp/src/Slice/Scanner.cpp +214 -135
  536. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +1 -1
  537. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +99 -17
  538. data/ext/ice/cpp/src/Slice/Util.h +5 -4
  539. data/ice.gemspec +2 -2
  540. data/lib/Glacier2.rb +1 -1
  541. data/lib/Glacier2/Metrics.rb +2 -2
  542. data/lib/Glacier2/PermissionsVerifier.rb +2 -2
  543. data/lib/Glacier2/PermissionsVerifierF.rb +2 -2
  544. data/lib/Glacier2/Router.rb +2 -2
  545. data/lib/Glacier2/RouterF.rb +2 -2
  546. data/lib/Glacier2/SSLInfo.rb +2 -2
  547. data/lib/Glacier2/Session.rb +2 -2
  548. data/lib/Ice.rb +2 -2
  549. data/lib/Ice/BuiltinSequences.rb +2 -2
  550. data/lib/Ice/Communicator.rb +2 -2
  551. data/lib/Ice/CommunicatorF.rb +2 -2
  552. data/lib/Ice/Connection.rb +2 -2
  553. data/lib/Ice/ConnectionF.rb +2 -2
  554. data/lib/Ice/Current.rb +2 -2
  555. data/lib/Ice/Endpoint.rb +2 -2
  556. data/lib/Ice/EndpointF.rb +2 -2
  557. data/lib/Ice/EndpointTypes.rb +2 -2
  558. data/lib/Ice/FacetMap.rb +2 -2
  559. data/lib/Ice/Identity.rb +2 -2
  560. data/lib/Ice/ImplicitContext.rb +2 -2
  561. data/lib/Ice/ImplicitContextF.rb +2 -2
  562. data/lib/Ice/Instrumentation.rb +2 -2
  563. data/lib/Ice/InstrumentationF.rb +2 -2
  564. data/lib/Ice/LocalException.rb +2 -2
  565. data/lib/Ice/Locator.rb +2 -2
  566. data/lib/Ice/LocatorF.rb +2 -2
  567. data/lib/Ice/Logger.rb +2 -2
  568. data/lib/Ice/LoggerF.rb +2 -2
  569. data/lib/Ice/Metrics.rb +2 -2
  570. data/lib/Ice/ObjectAdapter.rb +2 -2
  571. data/lib/Ice/ObjectAdapterF.rb +2 -2
  572. data/lib/Ice/ObjectFactory.rb +2 -2
  573. data/lib/Ice/Plugin.rb +2 -2
  574. data/lib/Ice/PluginF.rb +2 -2
  575. data/lib/Ice/Process.rb +2 -2
  576. data/lib/Ice/ProcessF.rb +2 -2
  577. data/lib/Ice/Properties.rb +2 -2
  578. data/lib/Ice/PropertiesAdmin.rb +2 -2
  579. data/lib/Ice/PropertiesF.rb +2 -2
  580. data/lib/Ice/RemoteLogger.rb +2 -2
  581. data/lib/Ice/Router.rb +2 -2
  582. data/lib/Ice/RouterF.rb +2 -2
  583. data/lib/Ice/ServantLocator.rb +2 -2
  584. data/lib/Ice/ServantLocatorF.rb +2 -2
  585. data/lib/Ice/SliceChecksumDict.rb +2 -2
  586. data/lib/Ice/ValueFactory.rb +2 -2
  587. data/lib/Ice/Version.rb +2 -2
  588. data/lib/IceBox.rb +1 -1
  589. data/lib/IceBox/IceBox.rb +2 -2
  590. data/lib/IceGrid.rb +1 -1
  591. data/lib/IceGrid/Admin.rb +2 -2
  592. data/lib/IceGrid/Descriptor.rb +2 -2
  593. data/lib/IceGrid/Exception.rb +2 -2
  594. data/lib/IceGrid/FileParser.rb +2 -2
  595. data/lib/IceGrid/PluginFacade.rb +2 -2
  596. data/lib/IceGrid/Registry.rb +2 -2
  597. data/lib/IceGrid/Session.rb +2 -2
  598. data/lib/IceGrid/UserAccountMapper.rb +2 -2
  599. data/lib/IcePatch2.rb +1 -1
  600. data/lib/IcePatch2/FileInfo.rb +2 -2
  601. data/lib/IcePatch2/FileServer.rb +2 -2
  602. data/lib/IceStorm.rb +1 -1
  603. data/lib/IceStorm/IceStorm.rb +2 -2
  604. data/lib/IceStorm/Metrics.rb +2 -2
  605. data/slice/Glacier2/Metrics.ice +2 -2
  606. data/slice/Glacier2/PermissionsVerifier.ice +2 -2
  607. data/slice/Glacier2/PermissionsVerifierF.ice +2 -2
  608. data/slice/Glacier2/Router.ice +2 -2
  609. data/slice/Glacier2/RouterF.ice +2 -2
  610. data/slice/Glacier2/SSLInfo.ice +2 -2
  611. data/slice/Glacier2/Session.ice +2 -2
  612. data/slice/Ice/BuiltinSequences.ice +2 -2
  613. data/slice/Ice/Communicator.ice +66 -73
  614. data/slice/Ice/CommunicatorF.ice +2 -2
  615. data/slice/Ice/Connection.ice +47 -17
  616. data/slice/Ice/ConnectionF.ice +2 -2
  617. data/slice/Ice/Current.ice +4 -5
  618. data/slice/Ice/Endpoint.ice +16 -16
  619. data/slice/Ice/EndpointF.ice +2 -2
  620. data/slice/Ice/EndpointTypes.ice +2 -2
  621. data/slice/Ice/FacetMap.ice +2 -2
  622. data/slice/Ice/Identity.ice +2 -2
  623. data/slice/Ice/ImplicitContext.ice +6 -6
  624. data/slice/Ice/ImplicitContextF.ice +2 -2
  625. data/slice/Ice/Instrumentation.ice +2 -2
  626. data/slice/Ice/InstrumentationF.ice +2 -2
  627. data/slice/Ice/LocalException.ice +2 -2
  628. data/slice/Ice/Locator.ice +3 -3
  629. data/slice/Ice/LocatorF.ice +2 -2
  630. data/slice/Ice/Logger.ice +2 -2
  631. data/slice/Ice/LoggerF.ice +2 -2
  632. data/slice/Ice/Metrics.ice +2 -2
  633. data/slice/Ice/ObjectAdapter.ice +10 -10
  634. data/slice/Ice/ObjectAdapterF.ice +2 -2
  635. data/slice/Ice/ObjectFactory.ice +3 -3
  636. data/slice/Ice/Plugin.ice +4 -4
  637. data/slice/Ice/PluginF.ice +2 -2
  638. data/slice/Ice/Process.ice +2 -2
  639. data/slice/Ice/ProcessF.ice +2 -2
  640. data/slice/Ice/Properties.ice +11 -11
  641. data/slice/Ice/PropertiesAdmin.ice +2 -2
  642. data/slice/Ice/PropertiesF.ice +2 -2
  643. data/slice/Ice/RemoteLogger.ice +12 -23
  644. data/slice/Ice/Router.ice +2 -2
  645. data/slice/Ice/RouterF.ice +2 -2
  646. data/slice/Ice/ServantLocator.ice +2 -2
  647. data/slice/Ice/ServantLocatorF.ice +2 -2
  648. data/slice/Ice/SliceChecksumDict.ice +2 -2
  649. data/slice/Ice/ValueFactory.ice +14 -16
  650. data/slice/Ice/Version.ice +2 -2
  651. data/slice/IceBT/ConnectionInfo.ice +2 -2
  652. data/slice/IceBT/EndpointInfo.ice +2 -2
  653. data/slice/IceBT/Types.ice +2 -2
  654. data/slice/IceBox/IceBox.ice +3 -4
  655. data/slice/IceDiscovery/IceDiscovery.ice +2 -2
  656. data/slice/IceGrid/Admin.ice +2 -2
  657. data/slice/IceGrid/Descriptor.ice +2 -2
  658. data/slice/IceGrid/Exception.ice +2 -2
  659. data/slice/IceGrid/FileParser.ice +2 -2
  660. data/slice/IceGrid/PluginFacade.ice +6 -6
  661. data/slice/IceGrid/Registry.ice +2 -2
  662. data/slice/IceGrid/Session.ice +2 -2
  663. data/slice/IceGrid/UserAccountMapper.ice +2 -2
  664. data/slice/IceIAP/ConnectionInfo.ice +2 -2
  665. data/slice/IceIAP/EndpointInfo.ice +2 -2
  666. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +2 -2
  667. data/slice/IcePatch2/FileInfo.ice +2 -2
  668. data/slice/IcePatch2/FileServer.ice +2 -2
  669. data/slice/IceSSL/ConnectionInfo.ice +2 -2
  670. data/slice/IceSSL/ConnectionInfoF.ice +2 -2
  671. data/slice/IceSSL/EndpointInfo.ice +2 -2
  672. data/slice/IceStorm/IceStorm.ice +5 -6
  673. data/slice/IceStorm/Metrics.ice +2 -2
  674. metadata +3 -13
  675. data/BZIP2_LICENSE +0 -42
  676. data/ext/ice/bzip2/blocksort.c +0 -1094
  677. data/ext/ice/bzip2/bzlib.c +0 -1572
  678. data/ext/ice/bzip2/bzlib.h +0 -282
  679. data/ext/ice/bzip2/bzlib_private.h +0 -509
  680. data/ext/ice/bzip2/compress.c +0 -672
  681. data/ext/ice/bzip2/crctable.c +0 -104
  682. data/ext/ice/bzip2/decompress.c +0 -646
  683. data/ext/ice/bzip2/huffman.c +0 -205
  684. data/ext/ice/bzip2/randtable.c +0 -84
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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
 
23
23
  // **********************************************************************
24
24
  //
25
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
25
+ // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
26
26
  //
27
27
  // This copy of Ice is licensed to you under the terms described in the
28
28
  // ICE_LICENSE file included in this distribution.
@@ -22,7 +22,7 @@
22
22
 
23
23
  // **********************************************************************
24
24
  //
25
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
25
+ // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
26
26
  //
27
27
  // This copy of Ice is licensed to you under the terms described in the
28
28
  // ICE_LICENSE file included in this distribution.
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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.
@@ -454,9 +454,9 @@ IceUtilInternal::FileLock::FileLock(const std::string& path) :
454
454
  //
455
455
  if(::fcntl(_fd, F_SETLK, &lock) == -1)
456
456
  {
457
- IceUtil::FileLockException ex(__FILE__, __LINE__, errno, _path);
457
+ int err = errno;
458
458
  close(_fd);
459
- throw ex;
459
+ throw IceUtil::FileLockException(__FILE__, __LINE__, err, _path);
460
460
  }
461
461
 
462
462
  //
@@ -473,9 +473,9 @@ IceUtilInternal::FileLock::FileLock(const std::string& path) :
473
473
 
474
474
  if(write(_fd, os.str().c_str(), os.str().size()) == -1)
475
475
  {
476
- IceUtil::FileLockException ex(__FILE__, __LINE__, errno, _path);
476
+ int err = errno;
477
477
  close(_fd);
478
- throw ex;
478
+ throw IceUtil::FileLockException(__FILE__, __LINE__, err, _path);
479
479
  }
480
480
  }
481
481
 
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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.
@@ -125,11 +125,7 @@ IceUtil::RecMutex::init(const MutexProtocol protocol)
125
125
  throw ThreadSyscallException(__FILE__, __LINE__, rc);
126
126
  }
127
127
 
128
- #if defined(__linux) && !defined(__USE_UNIX98)
129
- rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
130
- #else
131
128
  rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
132
- #endif
133
129
  assert(rc == 0);
134
130
  if(rc != 0)
135
131
  {
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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.
@@ -98,7 +98,7 @@ IceUtil::generateUUID()
98
98
  RPC_STATUS ret = UuidCreate(&uuid);
99
99
  if(ret != RPC_S_OK && ret != RPC_S_UUID_LOCAL_ONLY && ret != RPC_S_UUID_NO_ADDRESS)
100
100
  {
101
- throw new SyscallException(__FILE__, __LINE__, GetLastError());
101
+ throw SyscallException(__FILE__, __LINE__, GetLastError());
102
102
  }
103
103
 
104
104
  unsigned char* str;
@@ -106,7 +106,7 @@ IceUtil::generateUUID()
106
106
  ret = UuidToString(&uuid, &str);
107
107
  if(ret != RPC_S_OK)
108
108
  {
109
- throw new SyscallException(__FILE__, __LINE__, GetLastError());
109
+ throw SyscallException(__FILE__, __LINE__, GetLastError());
110
110
  }
111
111
  string result = reinterpret_cast<char*>(str);
112
112
 
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 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.
@@ -24,12 +24,6 @@ using namespace IceUtilInternal;
24
24
  namespace
25
25
  {
26
26
 
27
- string
28
- condString(bool ok, const string& str)
29
- {
30
- return ok ? str : "";
31
- }
32
-
33
27
  string toTemplateArg(const string& arg)
34
28
  {
35
29
  if(arg.empty())
@@ -86,7 +80,7 @@ stringTypeToString(const TypePtr& type, const StringList& metaData, int typeCtx)
86
80
  }
87
81
 
88
82
  string
89
- sequenceTypeToString(const SequencePtr& seq, const StringList& metaData, int typeCtx)
83
+ sequenceTypeToString(const SequencePtr& seq, const string& scope, const StringList& metaData, int typeCtx)
90
84
  {
91
85
  string seqType = findMetaData(metaData, typeCtx);
92
86
  if(!seqType.empty())
@@ -98,7 +92,7 @@ sequenceTypeToString(const SequencePtr& seq, const StringList& metaData, int typ
98
92
  {
99
93
  if(builtin && builtin->kind() == Builtin::KindByte)
100
94
  {
101
- string s = typeToString(seq->type());
95
+ string s = typeToString(seq->type(), scope);
102
96
  return "::std::pair<const " + s + "*, const " + s + "*>";
103
97
  }
104
98
  else if(builtin &&
@@ -106,18 +100,19 @@ sequenceTypeToString(const SequencePtr& seq, const StringList& metaData, int typ
106
100
  builtin->kind() != Builtin::KindObject &&
107
101
  builtin->kind() != Builtin::KindObjectProxy)
108
102
  {
109
- string s = toTemplateArg(typeToString(builtin));
103
+ string s = toTemplateArg(typeToString(builtin, scope));
110
104
  return "::std::pair< ::IceUtil::ScopedArray<" + s + ">, " +
111
105
  "::std::pair<const " + s + "*, const " + s + "*> >";
112
106
  }
113
107
  else
114
108
  {
115
- string s = toTemplateArg(typeToString(seq->type(), seq->typeMetaData(),
109
+ string s = toTemplateArg(typeToString(seq->type(), scope, seq->typeMetaData(),
116
110
  inWstringModule(seq) ? TypeContextUseWstring : 0));
117
111
  return "::std::vector<" + s + '>';
118
112
  }
119
113
  }
120
- string s = typeToString(seq->type(), seq->typeMetaData(), typeCtx | (inWstringModule(seq) ? TypeContextUseWstring : 0));
114
+ string s = typeToString(seq->type(), scope, seq->typeMetaData(),
115
+ typeCtx | (inWstringModule(seq) ? TypeContextUseWstring : 0));
121
116
  return "::std::pair<const " + s + "*, const " + s + "*>";
122
117
  }
123
118
  else if(seqType.find("%range") == 0)
@@ -129,12 +124,14 @@ sequenceTypeToString(const SequencePtr& seq, const StringList& metaData, int typ
129
124
  }
130
125
  else
131
126
  {
132
- s = fixKwd(seq->scoped());
127
+ s = getAbsolute(fixKwd(seq->scoped()), scope);
133
128
  }
129
+
134
130
  if(typeCtx & TypeContextAMIPrivateEnd)
135
131
  {
136
132
  return s;
137
133
  }
134
+
138
135
  if(s[0] == ':')
139
136
  {
140
137
  s = " " + s;
@@ -148,29 +145,29 @@ sequenceTypeToString(const SequencePtr& seq, const StringList& metaData, int typ
148
145
  }
149
146
  else
150
147
  {
151
- return fixKwd(seq->scoped());
148
+ return getAbsolute(fixKwd(seq->scoped()), scope);
152
149
  }
153
150
  }
154
151
 
155
152
  string
156
- dictionaryTypeToString(const DictionaryPtr& dict, const StringList& metaData, int typeCtx)
153
+ dictionaryTypeToString(const DictionaryPtr& dict, const string& scope, const StringList& metaData, int typeCtx)
157
154
  {
158
- string dictType = findMetaData(metaData, typeCtx);
159
- if(!dictType.empty())
155
+ const string dictType = findMetaData(metaData, typeCtx);
156
+ if(dictType.empty())
160
157
  {
161
- return dictType;
158
+ return getAbsolute(fixKwd(dict->scoped()), scope);
162
159
  }
163
160
  else
164
161
  {
165
- return fixKwd(dict->scoped());
162
+ return dictType;
166
163
  }
167
164
  }
168
165
 
169
166
  void
170
- writeParamAllocateCode(Output& out, const TypePtr& type, bool optional, const string& fixedName,
167
+ writeParamAllocateCode(Output& out, const TypePtr& type, bool optional, const string& scope, const string& fixedName,
171
168
  const StringList& metaData, int typeCtx, bool endArg)
172
169
  {
173
- string s = typeToString(type, metaData, typeCtx);
170
+ string s = typeToString(type, scope, metaData, typeCtx);
174
171
  if(optional)
175
172
  {
176
173
  s = toOptional(s, typeCtx);
@@ -198,7 +195,7 @@ writeParamAllocateCode(Output& out, const TypePtr& type, bool optional, const st
198
195
  string s;
199
196
  if(seqType == "%array")
200
197
  {
201
- s = typeToString(seq, metaData, TypeContextAMIPrivateEnd);
198
+ s = typeToString(seq, scope, metaData, TypeContextAMIPrivateEnd);
202
199
  }
203
200
  else if(seqType.find("%range") == 0)
204
201
  {
@@ -207,7 +204,7 @@ writeParamAllocateCode(Output& out, const TypePtr& type, bool optional, const st
207
204
  {
208
205
  md.push_back("cpp:type:" + seqType.substr(strlen("%range:")));
209
206
  }
210
- s = typeToString(seq, md, 0);
207
+ s = typeToString(seq, scope, md, 0);
211
208
  }
212
209
 
213
210
  if(!s.empty())
@@ -272,7 +269,8 @@ writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string&
272
269
  out << nl << "if(!" << escapedParamName << "->empty())";
273
270
  out << sb;
274
271
  out << nl << paramName << "->first" << " = &(*" << escapedParamName << ")[0];";
275
- out << nl << paramName << "->second" << " = " << paramName << "->first + " << escapedParamName << "->size();";
272
+ out << nl << paramName << "->second" << " = " << paramName << "->first + " << escapedParamName
273
+ << "->size();";
276
274
  out << eb;
277
275
  out << nl << "else";
278
276
  out << sb;
@@ -285,7 +283,8 @@ writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string&
285
283
  out << nl << "if(!" << escapedParamName << ".empty())";
286
284
  out << sb;
287
285
  out << nl << paramName << ".first" << " = &" << escapedParamName << "[0];";
288
- out << nl << paramName << ".second" << " = " << paramName << ".first + " << escapedParamName << ".size();";
286
+ out << nl << paramName << ".second" << " = " << paramName << ".first + " << escapedParamName
287
+ << ".size();";
289
288
  out << eb;
290
289
  out << nl << "else";
291
290
  out << sb;
@@ -316,7 +315,8 @@ writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string&
316
315
 
317
316
  void
318
317
  writeMarshalUnmarshalParams(Output& out, const ParamDeclList& params, const OperationPtr& op, bool marshal,
319
- bool prepend, int typeCtx, const string& customStream = "", const string& retP = "", const string& obj = "")
318
+ bool prepend, int typeCtx, const string& customStream = "", const string& retP = "",
319
+ const string& obj = "")
320
320
  {
321
321
  string prefix = prepend ? paramPrefix : "";
322
322
  string returnValueS = retP.empty() ? string("ret") : retP;
@@ -375,16 +375,16 @@ writeMarshalUnmarshalParams(Output& out, const ParamDeclList& params, const Oper
375
375
  {
376
376
  for(ParamDeclList::const_iterator p = requiredParams.begin(); p != requiredParams.end(); ++p)
377
377
  {
378
- writeMarshalUnmarshalCode(out, (*p)->type(), false, 0, fixKwd(prefix + (*p)->name()), marshal, (*p)->getMetaData(),
379
- typeCtx, customStream, true, obj);
378
+ writeMarshalUnmarshalCode(out, (*p)->type(), false, 0, fixKwd(prefix + (*p)->name()), marshal,
379
+ (*p)->getMetaData(), typeCtx, customStream, true, obj);
380
380
  }
381
381
 
382
382
  if(op && op->returnType())
383
383
  {
384
384
  if(!op->returnIsOptional())
385
385
  {
386
- writeMarshalUnmarshalCode(out, op->returnType(), false, 0, returnValueS, marshal, op->getMetaData(), typeCtx,
387
- customStream, true, obj);
386
+ writeMarshalUnmarshalCode(out, op->returnType(), false, 0, returnValueS, marshal, op->getMetaData(),
387
+ typeCtx, customStream, true, obj);
388
388
  }
389
389
  }
390
390
  }
@@ -430,16 +430,16 @@ writeMarshalUnmarshalParams(Output& out, const ParamDeclList& params, const Oper
430
430
  {
431
431
  if(checkReturnType && op->returnTag() < (*p)->tag())
432
432
  {
433
- os << condString(insertComma, ", ") << op->returnTag();
433
+ os << (insertComma ? ", " : "") << op->returnTag();
434
434
  checkReturnType = false;
435
435
  insertComma = true;
436
436
  }
437
- os << condString(insertComma, ", ") << (*p)->tag();
437
+ os << (insertComma ? ", " : "") << (*p)->tag();
438
438
  insertComma = true;
439
439
  }
440
440
  if(checkReturnType)
441
441
  {
442
- os << condString(insertComma, ", ") << op->returnTag();
442
+ os << (insertComma ? ", " : "") << op->returnTag();
443
443
  }
444
444
  os << '}';
445
445
  out << os.str();
@@ -488,8 +488,8 @@ writeMarshalUnmarshalParams(Output& out, const ParamDeclList& params, const Oper
488
488
  }
489
489
  if(checkReturnType)
490
490
  {
491
- writeMarshalUnmarshalCode(out, op->returnType(), true, op->returnTag(), returnValueS, marshal, op->getMetaData(),
492
- typeCtx, customStream, true, obj);
491
+ writeMarshalUnmarshalCode(out, op->returnType(), true, op->returnTag(), returnValueS, marshal,
492
+ op->getMetaData(), typeCtx, customStream, true, obj);
493
493
  }
494
494
  }
495
495
  }
@@ -517,7 +517,7 @@ Slice::printHeader(Output& out)
517
517
  static const char* header =
518
518
  "// **********************************************************************\n"
519
519
  "//\n"
520
- "// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.\n"
520
+ "// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.\n"
521
521
  "//\n"
522
522
  "// This copy of Ice is licensed to you under the terms described in the\n"
523
523
  "// ICE_LICENSE file included in this distribution.\n"
@@ -610,7 +610,31 @@ Slice::isMovable(const TypePtr& type)
610
610
  }
611
611
 
612
612
  string
613
- Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx)
613
+ Slice::getAbsolute(const std::string& type, const std::string& scope)
614
+ {
615
+ if(type.find("::") != string::npos)
616
+ {
617
+ string prefix;
618
+ if(type.find("const ") == 0)
619
+ {
620
+ prefix += "const ";
621
+ }
622
+
623
+ if(type.find("::std::shared_ptr<", prefix.size()) == prefix.size())
624
+ {
625
+ prefix += "::std::shared_ptr<";
626
+ }
627
+
628
+ if(type.find(scope, prefix.size()) == prefix.size())
629
+ {
630
+ return prefix + type.substr(prefix.size() + scope.size());
631
+ }
632
+ }
633
+ return type;
634
+ }
635
+
636
+ string
637
+ Slice::typeToString(const TypePtr& type, const string& scope, const StringList& metaData, int typeCtx)
614
638
  {
615
639
  bool cpp11 = (typeCtx & TypeContextCpp11) != 0;
616
640
 
@@ -667,24 +691,21 @@ Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx
667
691
  {
668
692
  return stringTypeToString(type, metaData, typeCtx);
669
693
  }
670
- else
694
+ else if(cpp11)
671
695
  {
672
- if(cpp11)
696
+ if(builtin->kind() == Builtin::KindObject && !(typeCtx & TypeContextLocal))
673
697
  {
674
- if(builtin->kind() == Builtin::KindObject && !(typeCtx & TypeContextLocal))
675
- {
676
- return "::std::shared_ptr<::Ice::Value>";
677
- }
678
- else
679
- {
680
- return cpp11BuiltinTable[builtin->kind()];
681
- }
698
+ return getAbsolute(cpp11BuiltinTable[Builtin::KindValue], scope);
682
699
  }
683
700
  else
684
701
  {
685
- return builtinTable[builtin->kind()];
702
+ return getAbsolute(cpp11BuiltinTable[builtin->kind()], scope);
686
703
  }
687
704
  }
705
+ else
706
+ {
707
+ return getAbsolute(builtinTable[builtin->kind()], scope);
708
+ }
688
709
  }
689
710
 
690
711
  ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
@@ -694,20 +715,20 @@ Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx
694
715
  {
695
716
  if(cl->definition() && cl->definition()->isDelegate())
696
717
  {
697
- return fixKwd(cl->scoped());
718
+ return getAbsolute(fixKwd(cl->scoped()), scope);
698
719
  }
699
720
  else if(cl->isInterface() && !cl->isLocal())
700
721
  {
701
- return "::std::shared_ptr<::Ice::Value>";
722
+ return getAbsolute(cpp11BuiltinTable[Builtin::KindValue], scope);
702
723
  }
703
724
  else
704
725
  {
705
- return "::std::shared_ptr<" + cl->scoped() + ">";
726
+ return "::std::shared_ptr<" + getAbsolute(cl->scoped(), scope) + ">";
706
727
  }
707
728
  }
708
729
  else
709
730
  {
710
- return cl->scoped() + "Ptr";
731
+ return getAbsolute(cl->scoped() + "Ptr", scope);
711
732
  }
712
733
  }
713
734
 
@@ -719,9 +740,12 @@ Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx
719
740
  //
720
741
  if(!cpp11 && findMetaData(st->getMetaData()) == "%class")
721
742
  {
722
- return fixKwd(st->scoped() + "Ptr");
743
+ return getAbsolute(fixKwd(st->scoped() + "Ptr"), scope);
744
+ }
745
+ else
746
+ {
747
+ return getAbsolute(fixKwd(st->scoped()), scope);
723
748
  }
724
- return fixKwd(st->scoped());
725
749
  }
726
750
 
727
751
  ProxyPtr proxy = ProxyPtr::dynamicCast(type);
@@ -736,61 +760,56 @@ Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx
736
760
  //
737
761
  if(def && !def->isInterface() && def->allOperations().empty())
738
762
  {
739
- return "::std::shared_ptr<::Ice::ObjectPrx>";
763
+ return getAbsolute(cpp11BuiltinTable[Builtin::KindObjectProxy], scope);
740
764
  }
741
765
  else
742
766
  {
743
- return "::std::shared_ptr<" + fixKwd(proxy->_class()->scoped() + "Prx") + ">";
767
+ return "::std::shared_ptr<" + getAbsolute(fixKwd(proxy->_class()->scoped() + "Prx"), scope) + ">";
744
768
  }
745
769
  }
746
770
  else
747
771
  {
748
- return fixKwd(proxy->_class()->scoped() + "Prx");
772
+ return getAbsolute(fixKwd(proxy->_class()->scoped() + "Prx"), scope);
749
773
  }
750
774
  }
751
775
 
776
+ EnumPtr en = EnumPtr::dynamicCast(type);
777
+ if(en)
778
+ {
779
+ return getAbsolute(fixKwd(en->scoped()), scope);
780
+ }
781
+
752
782
  SequencePtr seq = SequencePtr::dynamicCast(type);
753
783
  if(seq)
754
784
  {
755
- return sequenceTypeToString(seq, metaData, typeCtx);
785
+ return sequenceTypeToString(seq, scope, metaData, typeCtx);
756
786
  }
757
787
 
758
788
  DictionaryPtr dict = DictionaryPtr::dynamicCast(type);
759
789
  if(dict)
760
790
  {
761
- return dictionaryTypeToString(dict, metaData, typeCtx);
762
- }
763
-
764
- ContainedPtr contained = ContainedPtr::dynamicCast(type);
765
- if(contained)
766
- {
767
- return fixKwd(contained->scoped());
768
- }
769
-
770
- EnumPtr en = EnumPtr::dynamicCast(type);
771
- if(en)
772
- {
773
- return fixKwd(en->scoped());
791
+ return dictionaryTypeToString(dict, scope, metaData, typeCtx);
774
792
  }
775
793
 
776
794
  return "???";
777
795
  }
778
796
 
779
797
  string
780
- Slice::typeToString(const TypePtr& type, bool optional, const StringList& metaData, int typeCtx)
798
+ Slice::typeToString(const TypePtr& type, bool optional, const string& scope, const StringList& metaData, int typeCtx)
781
799
  {
782
800
  if(optional)
783
801
  {
784
- return toOptional(typeToString(type, metaData, typeCtx), typeCtx);
802
+ return toOptional(typeToString(type, scope, metaData, typeCtx), typeCtx);
785
803
  }
786
804
  else
787
805
  {
788
- return typeToString(type, metaData, typeCtx);
806
+ return typeToString(type, scope, metaData, typeCtx);
789
807
  }
790
808
  }
791
809
 
792
810
  string
793
- Slice::returnTypeToString(const TypePtr& type, bool optional, const StringList& metaData, int typeCtx)
811
+ Slice::returnTypeToString(const TypePtr& type, bool optional, const string& scope, const StringList& metaData,
812
+ int typeCtx)
794
813
  {
795
814
  if(!type)
796
815
  {
@@ -799,14 +818,15 @@ Slice::returnTypeToString(const TypePtr& type, bool optional, const StringList&
799
818
 
800
819
  if(optional)
801
820
  {
802
- return toOptional(typeToString(type, metaData, typeCtx), typeCtx);
821
+ return toOptional(typeToString(type, scope, metaData, typeCtx), typeCtx);
803
822
  }
804
823
 
805
- return typeToString(type, metaData, typeCtx);
824
+ return typeToString(type, scope, metaData, typeCtx);
806
825
  }
807
826
 
808
827
  string
809
- Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& metaData, int typeCtx)
828
+ Slice::inputTypeToString(const TypePtr& type, bool optional, const string& scope, const StringList& metaData,
829
+ int typeCtx)
810
830
  {
811
831
  bool cpp11 = (typeCtx & TypeContextCpp11) != 0;
812
832
 
@@ -846,7 +866,7 @@ Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& m
846
866
 
847
867
  if(optional)
848
868
  {
849
- return "const " + toOptional(typeToString(type, metaData, typeCtx), typeCtx) + '&';
869
+ return "const " + toOptional(typeToString(type, scope, metaData, typeCtx), typeCtx) + '&';
850
870
  }
851
871
 
852
872
  BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
@@ -856,24 +876,21 @@ Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& m
856
876
  {
857
877
  return string("const ") + stringTypeToString(type, metaData, typeCtx) + '&';
858
878
  }
859
- else
879
+ else if(cpp11)
860
880
  {
861
- if(cpp11)
881
+ if(builtin->kind() == Builtin::KindObject && !(typeCtx & TypeContextLocal))
862
882
  {
863
- if(builtin->kind() == Builtin::KindObject && !(typeCtx & TypeContextLocal))
864
- {
865
- return "const ::std::shared_ptr<::Ice::Value>&";
866
- }
867
- else
868
- {
869
- return cpp11InputBuiltinTable[builtin->kind()];
870
- }
883
+ return getAbsolute(cpp11InputBuiltinTable[Builtin::KindValue], scope);
871
884
  }
872
885
  else
873
886
  {
874
- return cpp98InputBuiltinTable[builtin->kind()];
887
+ return getAbsolute(cpp11InputBuiltinTable[builtin->kind()], scope);
875
888
  }
876
889
  }
890
+ else
891
+ {
892
+ return getAbsolute(cpp98InputBuiltinTable[builtin->kind()], scope);
893
+ }
877
894
  }
878
895
 
879
896
  ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
@@ -883,20 +900,20 @@ Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& m
883
900
  {
884
901
  if(cl->definition() && cl->definition()->isDelegate())
885
902
  {
886
- return fixKwd(cl->scoped());
903
+ return getAbsolute(fixKwd(cl->scoped()), scope);
887
904
  }
888
905
  else if(cl->isInterface() && !cl->isLocal())
889
906
  {
890
- return "const ::std::shared_ptr<::Ice::Value>&";
907
+ return getAbsolute(cpp11InputBuiltinTable[Builtin::KindValue], scope);
891
908
  }
892
909
  else
893
910
  {
894
- return "const ::std::shared_ptr<" + fixKwd(cl->scoped()) + ">&";
911
+ return "const ::std::shared_ptr<" + getAbsolute(fixKwd(cl->scoped()), scope) + ">&";
895
912
  }
896
913
  }
897
914
  else
898
915
  {
899
- return "const " + fixKwd(cl->scoped() + "Ptr&");
916
+ return "const " + getAbsolute(fixKwd(cl->scoped() + "Ptr&"), scope);
900
917
  }
901
918
  }
902
919
 
@@ -905,17 +922,17 @@ Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& m
905
922
  {
906
923
  if(cpp11)
907
924
  {
908
- return "const " + fixKwd(st->scoped()) + "&";
925
+ return "const " + getAbsolute(fixKwd(st->scoped()), scope) + "&";
909
926
  }
910
927
  else
911
928
  {
912
929
  if(findMetaData(st->getMetaData()) == "%class")
913
930
  {
914
- return "const " + fixKwd(st->scoped() + "Ptr&");
931
+ return "const " + getAbsolute(fixKwd(st->scoped() + "Ptr"), scope) + "&";
915
932
  }
916
933
  else
917
934
  {
918
- return "const " + fixKwd(st->scoped()) + "&";
935
+ return "const " + getAbsolute(fixKwd(st->scoped()), scope) + "&";
919
936
  }
920
937
  }
921
938
  }
@@ -928,48 +945,43 @@ Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& m
928
945
  ClassDefPtr def = proxy->_class()->definition();
929
946
  if(def && !def->isInterface() && def->allOperations().empty())
930
947
  {
931
- return "const ::std::shared_ptr<::Ice::ObjectPrx>&";
948
+ return getAbsolute(cpp11InputBuiltinTable[Builtin::KindObjectProxy], scope);
932
949
  }
933
950
  else
934
951
  {
935
- return "const ::std::shared_ptr<" + fixKwd(proxy->_class()->scoped() + "Prx") + ">&";
952
+ return "const ::std::shared_ptr<" + getAbsolute(fixKwd(proxy->_class()->scoped() + "Prx"), scope) + ">&";
936
953
  }
937
954
  }
938
955
  else
939
956
  {
940
- return "const " + fixKwd(proxy->_class()->scoped() + "Prx&");
957
+ return "const " + getAbsolute(fixKwd(proxy->_class()->scoped() + "Prx"), scope) + "&";
941
958
  }
942
959
  }
943
960
 
944
961
  EnumPtr en = EnumPtr::dynamicCast(type);
945
962
  if(en)
946
963
  {
947
- return fixKwd(en->scoped());
964
+ return getAbsolute(fixKwd(en->scoped()), scope);
948
965
  }
949
966
 
950
967
  SequencePtr seq = SequencePtr::dynamicCast(type);
951
968
  if(seq)
952
969
  {
953
- return "const " + sequenceTypeToString(seq, metaData, typeCtx) + "&";
970
+ return "const " + sequenceTypeToString(seq, scope, metaData, typeCtx) + "&";
954
971
  }
955
972
 
956
973
  DictionaryPtr dict = DictionaryPtr::dynamicCast(type);
957
974
  if(dict)
958
975
  {
959
- return "const " + dictionaryTypeToString(dict, metaData, typeCtx) + "&";
960
- }
961
-
962
- ContainedPtr contained = ContainedPtr::dynamicCast(type);
963
- if(contained)
964
- {
965
- return "const " + fixKwd(contained->scoped()) + "&";
976
+ return "const " + dictionaryTypeToString(dict, scope, metaData, typeCtx) + "&";
966
977
  }
967
978
 
968
979
  return "???";
969
980
  }
970
981
 
971
982
  string
972
- Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList& metaData, int typeCtx)
983
+ Slice::outputTypeToString(const TypePtr& type, bool optional, const string& scope, const StringList& metaData,
984
+ int typeCtx)
973
985
  {
974
986
  bool cpp11 = (typeCtx & TypeContextCpp11) != 0;
975
987
 
@@ -1007,7 +1019,7 @@ Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList&
1007
1019
 
1008
1020
  if(optional)
1009
1021
  {
1010
- return toOptional(typeToString(type, metaData, typeCtx), typeCtx) + '&';
1022
+ return toOptional(typeToString(type, scope, metaData, typeCtx), typeCtx) + '&';
1011
1023
  }
1012
1024
 
1013
1025
  BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
@@ -1017,24 +1029,21 @@ Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList&
1017
1029
  {
1018
1030
  return stringTypeToString(type, metaData, typeCtx) + "&";
1019
1031
  }
1020
- else
1032
+ else if(cpp11)
1021
1033
  {
1022
- if(cpp11)
1034
+ if(builtin->kind() == Builtin::KindObject && !(typeCtx & TypeContextLocal))
1023
1035
  {
1024
- if(builtin->kind() == Builtin::KindObject && !(typeCtx & TypeContextLocal))
1025
- {
1026
- return "::std::shared_ptr<::Ice::Value>";
1027
- }
1028
- else
1029
- {
1030
- return cpp11OutputBuiltinTable[builtin->kind()];
1031
- }
1036
+ return getAbsolute(cpp11OutputBuiltinTable[Builtin::KindValue], scope);
1032
1037
  }
1033
1038
  else
1034
1039
  {
1035
- return outputBuiltinTable[builtin->kind()];
1040
+ return getAbsolute(cpp11OutputBuiltinTable[builtin->kind()], scope);
1036
1041
  }
1037
1042
  }
1043
+ else
1044
+ {
1045
+ return getAbsolute(outputBuiltinTable[builtin->kind()], scope);
1046
+ }
1038
1047
  }
1039
1048
 
1040
1049
  ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
@@ -1044,20 +1053,20 @@ Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList&
1044
1053
  {
1045
1054
  if(cl->definition() && cl->definition()->isDelegate())
1046
1055
  {
1047
- return fixKwd(cl->scoped()) + "&";
1056
+ return getAbsolute(fixKwd(cl->scoped()), scope) + "&";
1048
1057
  }
1049
1058
  else if(cl->isInterface() && !cl->isLocal())
1050
1059
  {
1051
- return "::std::shared_ptr<::Ice::Value>&";
1060
+ return getAbsolute(cpp11OutputBuiltinTable[Builtin::KindValue], scope);
1052
1061
  }
1053
1062
  else
1054
1063
  {
1055
- return "::std::shared_ptr<" + fixKwd(cl->scoped()) + ">&";
1064
+ return "::std::shared_ptr<" + getAbsolute(fixKwd(cl->scoped()), scope) + ">&";
1056
1065
  }
1057
1066
  }
1058
1067
  else
1059
1068
  {
1060
- return fixKwd(cl->scoped() + "Ptr&");
1069
+ return getAbsolute(fixKwd(cl->scoped() + "Ptr&"), scope);
1061
1070
  }
1062
1071
  }
1063
1072
 
@@ -1066,11 +1075,11 @@ Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList&
1066
1075
  {
1067
1076
  if(!cpp11 && findMetaData(st->getMetaData()) == "%class")
1068
1077
  {
1069
- return fixKwd(st->scoped() + "Ptr&");
1078
+ return getAbsolute(fixKwd(st->scoped() + "Ptr&"), scope);
1070
1079
  }
1071
1080
  else
1072
1081
  {
1073
- return fixKwd(st->scoped()) + "&";
1082
+ return getAbsolute(fixKwd(st->scoped()), scope) + "&";
1074
1083
  }
1075
1084
  }
1076
1085
 
@@ -1086,35 +1095,35 @@ Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList&
1086
1095
  //
1087
1096
  if(def && !def->isInterface() && def->allOperations().empty())
1088
1097
  {
1089
- return "::std::shared_ptr<::Ice::ObjectPrx>";
1098
+ return getAbsolute(cpp11OutputBuiltinTable[Builtin::KindObjectProxy], scope);
1090
1099
  }
1091
1100
  else
1092
1101
  {
1093
- return "::std::shared_ptr<" + fixKwd(proxy->_class()->scoped() + "Prx") + ">&";
1102
+ return "::std::shared_ptr<" + getAbsolute(fixKwd(proxy->_class()->scoped() + "Prx"), scope) + ">&";
1094
1103
  }
1095
1104
  }
1096
1105
  else
1097
1106
  {
1098
- return fixKwd(proxy->_class()->scoped() + "Prx&");
1107
+ return getAbsolute(fixKwd(proxy->_class()->scoped() + "Prx&"), scope);
1099
1108
  }
1100
1109
  }
1101
1110
 
1111
+ EnumPtr en = EnumPtr::dynamicCast(type);
1112
+ if(en)
1113
+ {
1114
+ return getAbsolute(fixKwd(en->scoped()), scope) + "&";
1115
+ }
1116
+
1102
1117
  SequencePtr seq = SequencePtr::dynamicCast(type);
1103
1118
  if(seq)
1104
1119
  {
1105
- return sequenceTypeToString(seq, metaData, typeCtx) + "&";
1120
+ return sequenceTypeToString(seq, scope, metaData, typeCtx) + "&";
1106
1121
  }
1107
1122
 
1108
1123
  DictionaryPtr dict = DictionaryPtr::dynamicCast(type);
1109
1124
  if(dict)
1110
1125
  {
1111
- return dictionaryTypeToString(dict, metaData, typeCtx) + "&";
1112
- }
1113
-
1114
- ContainedPtr contained = ContainedPtr::dynamicCast(type);
1115
- if(contained)
1116
- {
1117
- return fixKwd(contained->scoped()) + "&";
1126
+ return dictionaryTypeToString(dict, scope, metaData, typeCtx) + "&";
1118
1127
  }
1119
1128
 
1120
1129
  return "???";
@@ -1265,8 +1274,8 @@ Slice::fixKwd(const string& name)
1265
1274
 
1266
1275
  void
1267
1276
  Slice::writeMarshalUnmarshalCode(Output& out, const TypePtr& type, bool optional, int tag, const string& param,
1268
- bool marshal, const StringList& metaData, int typeCtx, const string& customStream, bool pointer,
1269
- const string& obj)
1277
+ bool marshal, const StringList& metaData, int typeCtx, const string& customStream,
1278
+ bool pointer, const string& obj)
1270
1279
  {
1271
1280
  string objPrefix = obj.empty() ? obj : obj + ".";
1272
1281
 
@@ -1351,8 +1360,8 @@ Slice::writeUnmarshalCode(Output& out, const ParamDeclList& params, const Operat
1351
1360
  }
1352
1361
 
1353
1362
  void
1354
- Slice::writeAllocateCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend, int typeCtx,
1355
- const string& customRet)
1363
+ Slice::writeAllocateCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend,
1364
+ const string& clScope, int typeCtx, const string& customRet)
1356
1365
  {
1357
1366
  string prefix = prepend ? paramPrefix : "";
1358
1367
  string returnValueS = customRet;
@@ -1363,16 +1372,16 @@ Slice::writeAllocateCode(Output& out, const ParamDeclList& params, const Operati
1363
1372
 
1364
1373
  for(ParamDeclList::const_iterator p = params.begin(); p != params.end(); ++p)
1365
1374
  {
1366
- writeParamAllocateCode(out, (*p)->type(), (*p)->optional(), fixKwd(prefix + (*p)->name()), (*p)->getMetaData(),
1367
- typeCtx, getEndArg((*p)->type(), (*p)->getMetaData(), (*p)->name()) != (*p)->name());
1375
+ writeParamAllocateCode(out, (*p)->type(), (*p)->optional(), clScope, fixKwd(prefix + (*p)->name()),
1376
+ (*p)->getMetaData(), typeCtx, getEndArg((*p)->type(), (*p)->getMetaData(),
1377
+ (*p)->name()) != (*p)->name());
1368
1378
  }
1369
1379
 
1370
1380
  if(op && op->returnType())
1371
1381
  {
1372
- writeParamAllocateCode(out, op->returnType(), op->returnIsOptional(), returnValueS, op->getMetaData(), typeCtx,
1373
- getEndArg(op->returnType(), op->getMetaData(), returnValueS) != returnValueS);
1382
+ writeParamAllocateCode(out, op->returnType(), op->returnIsOptional(), clScope, returnValueS, op->getMetaData(),
1383
+ typeCtx, getEndArg(op->returnType(), op->getMetaData(), returnValueS) != returnValueS);
1374
1384
  }
1375
-
1376
1385
  }
1377
1386
 
1378
1387
  string
@@ -1616,7 +1625,7 @@ Slice::writeStreamHelpers(Output& out,
1616
1625
  }
1617
1626
 
1618
1627
  void
1619
- Slice::writeIceTuple(::IceUtilInternal::Output& out, DataMemberList dataMembers, int typeCtx)
1628
+ Slice::writeIceTuple(::IceUtilInternal::Output& out, const string& scope, DataMemberList dataMembers, int typeCtx)
1620
1629
  {
1621
1630
  out << sp << nl << "std::tuple<";
1622
1631
  for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
@@ -1626,7 +1635,8 @@ Slice::writeIceTuple(::IceUtilInternal::Output& out, DataMemberList dataMembers,
1626
1635
  out << ", ";
1627
1636
  }
1628
1637
  out << "const ";
1629
- out << typeToString((*q)->type(), (*q)->optional(), (*q)->getMetaData(), typeCtx | TypeContextCpp11) << "&";
1638
+ out << typeToString((*q)->type(), (*q)->optional(), scope, (*q)->getMetaData(), typeCtx | TypeContextCpp11)
1639
+ << "&";
1630
1640
  }
1631
1641
  out << "> ice_tuple() const";
1632
1642