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.
@@ -24,6 +24,12 @@ 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
+
27
33
  string toTemplateArg(const string& arg)
28
34
  {
29
35
  if(arg.empty())
@@ -42,20 +48,32 @@ string toTemplateArg(const string& arg)
42
48
  return fixed;
43
49
  }
44
50
 
51
+ string
52
+ toOptional(const string& s, int typeCtx)
53
+ {
54
+ bool cpp11 = (typeCtx & TypeContextCpp11) != 0;
55
+ string result = cpp11 ? "Ice::optional" : "IceUtil::Optional";
56
+ result += '<';
57
+ if(cpp11)
58
+ {
59
+ result += s;
60
+ }
61
+ else
62
+ {
63
+ result += toTemplateArg(s);
64
+ }
65
+
66
+ result += '>';
67
+ return result;
68
+ }
69
+
45
70
  string
46
71
  stringTypeToString(const TypePtr& type, const StringList& metaData, int typeCtx)
47
72
  {
48
73
  string strType = findMetaData(metaData, typeCtx);
49
74
  if(strType == "wstring" || (typeCtx & TypeContextUseWstring && strType == ""))
50
75
  {
51
- if(featureProfile == IceE)
52
- {
53
- return "::Ice::Wstring";
54
- }
55
- else
56
- {
57
- return "::std::wstring";
58
- }
76
+ return "::std::wstring";
59
77
  }
60
78
  else if(strType != "" && strType != "string")
61
79
  {
@@ -99,7 +117,7 @@ sequenceTypeToString(const SequencePtr& seq, const StringList& metaData, int typ
99
117
  return "::std::vector<" + s + '>';
100
118
  }
101
119
  }
102
- string s = typeToString(seq->type(), seq->typeMetaData(), inWstringModule(seq) ? TypeContextUseWstring : 0);
120
+ string s = typeToString(seq->type(), seq->typeMetaData(), typeCtx | (inWstringModule(seq) ? TypeContextUseWstring : 0));
103
121
  return "::std::pair<const " + s + "*, const " + s + "*>";
104
122
  }
105
123
  else if(seqType.find("%range") == 0)
@@ -148,7 +166,6 @@ dictionaryTypeToString(const DictionaryPtr& dict, const StringList& metaData, in
148
166
  }
149
167
  }
150
168
 
151
-
152
169
  void
153
170
  writeParamAllocateCode(Output& out, const TypePtr& type, bool optional, const string& fixedName,
154
171
  const StringList& metaData, int typeCtx, bool endArg)
@@ -156,11 +173,11 @@ writeParamAllocateCode(Output& out, const TypePtr& type, bool optional, const st
156
173
  string s = typeToString(type, metaData, typeCtx);
157
174
  if(optional)
158
175
  {
159
- s = "IceUtil::Optional<" + toTemplateArg(s) + '>';
176
+ s = toOptional(s, typeCtx);
160
177
  }
161
178
  out << nl << s << ' ' << fixedName << ';';
162
179
 
163
- if(!(typeCtx & TypeContextInParam) || !endArg)
180
+ if((typeCtx & TypeContextCpp11) || !(typeCtx & TypeContextInParam) || !endArg)
164
181
  {
165
182
  return; // We're done.
166
183
  }
@@ -190,23 +207,28 @@ writeParamAllocateCode(Output& out, const TypePtr& type, bool optional, const st
190
207
  {
191
208
  md.push_back("cpp:type:" + seqType.substr(strlen("%range:")));
192
209
  }
193
- s = typeToString(seq, md);
210
+ s = typeToString(seq, md, 0);
194
211
  }
195
212
 
196
213
  if(!s.empty())
197
214
  {
198
215
  if(optional)
199
216
  {
200
- s = "IceUtil::Optional<" + toTemplateArg(s) + '>';
217
+ s = toOptional(s, typeCtx);
201
218
  }
202
- out << nl << s << " ___" << fixedName << ";";
219
+ out << nl << s << ' ' << fixedName << "_tmp_;";
203
220
  }
204
221
  }
205
222
  }
206
223
 
207
224
  void
208
- writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string& fixedName, const StringList& metaData)
225
+ writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string& fixedName, const StringList& metaData,
226
+ const string& obj = "")
209
227
  {
228
+ string objPrefix = obj.empty() ? obj : obj + ".";
229
+ string paramName = objPrefix + fixedName;
230
+ string escapedParamName = objPrefix + fixedName + "_tmp_";
231
+
210
232
  SequencePtr seq = SequencePtr::dynamicCast(type);
211
233
  if(seq)
212
234
  {
@@ -227,14 +249,14 @@ writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string&
227
249
  {
228
250
  if(optional)
229
251
  {
230
- out << nl << "if(___" << fixedName << ")";
252
+ out << nl << "if(" << escapedParamName << ")";
231
253
  out << sb;
232
- out << nl << fixedName << " = ___" << fixedName << "->second;";
233
- out << eb;
254
+ out << nl << paramName << " = " << escapedParamName << "->second;";
255
+ out << eb;
234
256
  }
235
257
  else
236
258
  {
237
- out << nl << fixedName << " = ___" << fixedName << ".second;";
259
+ out << nl << paramName << " = " << escapedParamName << ".second;";
238
260
  }
239
261
  }
240
262
  else if(!builtin ||
@@ -244,32 +266,30 @@ writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string&
244
266
  {
245
267
  if(optional)
246
268
  {
247
- out << nl << "if(___" << fixedName << ")";
269
+ out << nl << "if(" << escapedParamName << ")";
248
270
  out << sb;
249
- out << nl << fixedName << ".__setIsSet();";
250
- out << nl << "if(!___" << fixedName << "->empty())";
271
+ out << nl << paramName << ".__setIsSet();";
272
+ out << nl << "if(!" << escapedParamName << "->empty())";
251
273
  out << sb;
252
- out << nl << fixedName << "->first" << " = &(*___" << fixedName << ")[0];";
253
- out << nl << fixedName << "->second" << " = " << fixedName << "->first + " << "___"
254
- << fixedName << "->size();";
274
+ out << nl << paramName << "->first" << " = &(*" << escapedParamName << ")[0];";
275
+ out << nl << paramName << "->second" << " = " << paramName << "->first + " << escapedParamName << "->size();";
255
276
  out << eb;
256
277
  out << nl << "else";
257
278
  out << sb;
258
- out << nl << fixedName << "->first" << " = " << fixedName << "->second" << " = 0;";
279
+ out << nl << paramName << "->first" << " = " << paramName << "->second" << " = 0;";
259
280
  out << eb;
260
281
  out << eb;
261
282
  }
262
283
  else
263
284
  {
264
- out << nl << "if(!___" << fixedName << ".empty())";
285
+ out << nl << "if(!" << escapedParamName << ".empty())";
265
286
  out << sb;
266
- out << nl << fixedName << ".first" << " = &___" << fixedName << "[0];";
267
- out << nl << fixedName << ".second" << " = " << fixedName << ".first + " << "___"
268
- << fixedName << ".size();";
287
+ out << nl << paramName << ".first" << " = &" << escapedParamName << "[0];";
288
+ out << nl << paramName << ".second" << " = " << paramName << ".first + " << escapedParamName << ".size();";
269
289
  out << eb;
270
290
  out << nl << "else";
271
291
  out << sb;
272
- out << nl << fixedName << ".first" << " = " << fixedName << ".second" << " = 0;";
292
+ out << nl << paramName << ".first" << " = " << paramName << ".second" << " = 0;";
273
293
  out << eb;
274
294
  }
275
295
  }
@@ -278,30 +298,42 @@ writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string&
278
298
  {
279
299
  if(optional)
280
300
  {
281
- out << nl << "if(___" << fixedName << ")";
301
+ out << nl << "if(" << escapedParamName << ")";
282
302
  out << sb;
283
- out << nl << fixedName << ".__setIsSet();";
284
- out << nl << fixedName << "->first = (*___" << fixedName << ").begin();";
285
- out << nl << fixedName << "->second = (*___" << fixedName << ").end();";
303
+ out << nl << paramName << ".__setIsSet();";
304
+ out << nl << paramName << "->first = (*" << escapedParamName << ").begin();";
305
+ out << nl << paramName << "->second = (*" << escapedParamName << ").end();";
286
306
  out << eb;
287
307
  }
288
308
  else
289
309
  {
290
- out << nl << fixedName << ".first = ___" << fixedName << ".begin();";
291
- out << nl << fixedName << ".second = ___" << fixedName << ".end();";
310
+ out << nl << paramName << ".first = " << escapedParamName << ".begin();";
311
+ out << nl << paramName << ".second = " << escapedParamName << ".end();";
292
312
  }
293
313
  }
294
314
  }
295
315
  }
296
316
 
297
317
  void
298
- writeMarshalUnmarshalParams(Output& out, const ParamDeclList& params, const OperationPtr& op, bool marshal, bool prepend, int typeCtx)
318
+ 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 = "")
299
320
  {
300
321
  string prefix = prepend ? paramPrefix : "";
322
+ string returnValueS = retP.empty() ? string("ret") : retP;
323
+ string objPrefix = obj.empty() ? obj : obj + ".";
324
+
325
+ string stream = customStream;
326
+ if(stream.empty())
327
+ {
328
+ stream = marshal ? "ostr" : "istr";
329
+ }
330
+
331
+ bool cpp11 = (typeCtx & TypeContextCpp11) != 0;
301
332
 
302
333
  //
303
334
  // Marshal non optional parameters.
304
335
  //
336
+ ParamDeclList requiredParams;
305
337
  ParamDeclList optionals;
306
338
  for(ParamDeclList::const_iterator p = params.begin(); p != params.end(); ++p)
307
339
  {
@@ -311,57 +343,160 @@ writeMarshalUnmarshalParams(Output& out, const ParamDeclList& params, const Oper
311
343
  }
312
344
  else
313
345
  {
314
- writeMarshalUnmarshalCode(out, (*p)->type(), false, 0, fixKwd(prefix + (*p)->name()), marshal, (*p)->getMetaData(),
315
- typeCtx);
346
+ requiredParams.push_back(*p);
316
347
  }
317
348
  }
318
- if(op && op->returnType())
349
+
350
+ if(!requiredParams.empty() || (op && op->returnType() && !op->returnIsOptional()))
319
351
  {
320
- if(!op->returnIsOptional())
352
+ if(cpp11)
321
353
  {
322
- writeMarshalUnmarshalCode(out, op->returnType(), false, 0, "__ret", marshal, op->getMetaData(), typeCtx);
354
+ out << nl;
355
+ if(marshal)
356
+ {
357
+ out << stream << "->writeAll";
358
+ }
359
+ else
360
+ {
361
+ out << stream << "->readAll";
362
+ }
363
+ out << spar;
364
+ for(ParamDeclList::const_iterator p = requiredParams.begin(); p != requiredParams.end(); ++p)
365
+ {
366
+ out << objPrefix + fixKwd(prefix + (*p)->name());
367
+ }
368
+ if(op && op->returnType() && !op->returnIsOptional())
369
+ {
370
+ out << objPrefix + returnValueS;
371
+ }
372
+ out << epar << ";";
373
+ }
374
+ else
375
+ {
376
+ for(ParamDeclList::const_iterator p = requiredParams.begin(); p != requiredParams.end(); ++p)
377
+ {
378
+ writeMarshalUnmarshalCode(out, (*p)->type(), false, 0, fixKwd(prefix + (*p)->name()), marshal, (*p)->getMetaData(),
379
+ typeCtx, customStream, true, obj);
380
+ }
381
+
382
+ if(op && op->returnType())
383
+ {
384
+ if(!op->returnIsOptional())
385
+ {
386
+ writeMarshalUnmarshalCode(out, op->returnType(), false, 0, returnValueS, marshal, op->getMetaData(), typeCtx,
387
+ customStream, true, obj);
388
+ }
389
+ }
323
390
  }
324
391
  }
325
392
 
326
- //
327
- // Sort optional parameters by tag.
328
- //
329
- class SortFn
393
+ if(!optionals.empty() || (op && op->returnType() && op->returnIsOptional()))
330
394
  {
331
- public:
332
- static bool compare(const ParamDeclPtr& lhs, const ParamDeclPtr& rhs)
395
+ //
396
+ // Sort optional parameters by tag.
397
+ //
398
+ class SortFn
333
399
  {
334
- return lhs->tag() < rhs->tag();
335
- }
336
- };
337
- optionals.sort(SortFn::compare);
400
+ public:
401
+ static bool compare(const ParamDeclPtr& lhs, const ParamDeclPtr& rhs)
402
+ {
403
+ return lhs->tag() < rhs->tag();
404
+ }
405
+ };
406
+ optionals.sort(SortFn::compare);
338
407
 
339
- //
340
- // Marshal optional parameters.
341
- //
342
- bool checkReturnType = op && op->returnIsOptional();
343
- for(ParamDeclList::const_iterator p = optionals.begin(); p != optionals.end(); ++p)
344
- {
345
- if(checkReturnType && op->returnTag() < (*p)->tag())
408
+ if(cpp11)
346
409
  {
347
- writeMarshalUnmarshalCode(out, op->returnType(), true, op->returnTag(), "__ret", marshal,
348
- op->getMetaData(), typeCtx);
349
- checkReturnType = false;
410
+ out << nl;
411
+ if(marshal)
412
+ {
413
+ out << stream << "->writeAll";
414
+ }
415
+ else
416
+ {
417
+ out << stream << "->readAll";
418
+ }
419
+ out << spar;
420
+
421
+ {
422
+ //
423
+ // Tags
424
+ //
425
+ ostringstream os;
426
+ os << '{';
427
+ bool checkReturnType = op && op->returnIsOptional();
428
+ bool insertComma = false;
429
+ for(ParamDeclList::const_iterator p = optionals.begin(); p != optionals.end(); ++p)
430
+ {
431
+ if(checkReturnType && op->returnTag() < (*p)->tag())
432
+ {
433
+ os << condString(insertComma, ", ") << op->returnTag();
434
+ checkReturnType = false;
435
+ insertComma = true;
436
+ }
437
+ os << condString(insertComma, ", ") << (*p)->tag();
438
+ insertComma = true;
439
+ }
440
+ if(checkReturnType)
441
+ {
442
+ os << condString(insertComma, ", ") << op->returnTag();
443
+ }
444
+ os << '}';
445
+ out << os.str();
446
+ }
447
+
448
+ {
449
+ //
450
+ // Parameters
451
+ //
452
+ bool checkReturnType = op && op->returnIsOptional();
453
+ for(ParamDeclList::const_iterator p = optionals.begin(); p != optionals.end(); ++p)
454
+ {
455
+ if(checkReturnType && op->returnTag() < (*p)->tag())
456
+ {
457
+ out << objPrefix + returnValueS;
458
+ checkReturnType = false;
459
+ }
460
+ out << objPrefix + fixKwd(prefix + (*p)->name());
461
+ }
462
+ if(checkReturnType)
463
+ {
464
+ out << objPrefix + returnValueS;
465
+ }
466
+ }
467
+ out << epar << ";";
468
+ }
469
+ else
470
+ {
471
+
472
+ //
473
+ // Marshal optional parameters.
474
+ //
475
+
476
+ bool checkReturnType = op && op->returnIsOptional();
477
+ for(ParamDeclList::const_iterator p = optionals.begin(); p != optionals.end(); ++p)
478
+ {
479
+ if(checkReturnType && op->returnTag() < (*p)->tag())
480
+ {
481
+ writeMarshalUnmarshalCode(out, op->returnType(), true, op->returnTag(), returnValueS, marshal,
482
+ op->getMetaData(), typeCtx, customStream, true, obj);
483
+
484
+ checkReturnType = false;
485
+ }
486
+ writeMarshalUnmarshalCode(out, (*p)->type(), true, (*p)->tag(), fixKwd(prefix + (*p)->name()), marshal,
487
+ (*p)->getMetaData(), typeCtx, customStream, true, obj);
488
+ }
489
+ if(checkReturnType)
490
+ {
491
+ writeMarshalUnmarshalCode(out, op->returnType(), true, op->returnTag(), returnValueS, marshal, op->getMetaData(),
492
+ typeCtx, customStream, true, obj);
493
+ }
350
494
  }
351
- writeMarshalUnmarshalCode(out, (*p)->type(), true, (*p)->tag(), fixKwd(prefix + (*p)->name()), marshal,
352
- (*p)->getMetaData(), typeCtx);
353
- }
354
- if(checkReturnType)
355
- {
356
- writeMarshalUnmarshalCode(out, op->returnType(), true, op->returnTag(), "__ret", marshal, op->getMetaData(),
357
- typeCtx);
358
495
  }
359
496
  }
360
-
361
497
  }
362
498
 
363
- Slice::FeatureProfile Slice::featureProfile = Slice::Ice;
364
- string Slice::paramPrefix = "__p_";
499
+ string Slice::paramPrefix = "iceP_";
365
500
 
366
501
  char
367
502
  Slice::ToIfdef::operator()(char c)
@@ -376,14 +511,13 @@ Slice::ToIfdef::operator()(char c)
376
511
  }
377
512
  }
378
513
 
379
-
380
514
  void
381
515
  Slice::printHeader(Output& out)
382
516
  {
383
517
  static const char* header =
384
518
  "// **********************************************************************\n"
385
519
  "//\n"
386
- "// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.\n"
520
+ "// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.\n"
387
521
  "//\n"
388
522
  "// This copy of Ice is licensed to you under the terms described in the\n"
389
523
  "// ICE_LICENSE file included in this distribution.\n"
@@ -439,10 +573,10 @@ Slice::printDllExportStuff(Output& out, const string& dllExport)
439
573
  {
440
574
  out << sp;
441
575
  out << "\n#ifndef " << dllExport;
442
- out << "\n# ifdef " << dllExport << "_EXPORTS";
443
- out << "\n# define " << dllExport << " ICE_DECLSPEC_EXPORT";
444
- out << "\n# elif defined(ICE_STATIC_LIBS)";
576
+ out << "\n# if defined(ICE_STATIC_LIBS)";
445
577
  out << "\n# define " << dllExport << " /**/";
578
+ out << "\n# elif defined(" << dllExport << "_EXPORTS)";
579
+ out << "\n# define " << dllExport << " ICE_DECLSPEC_EXPORT";
446
580
  out << "\n# else";
447
581
  out << "\n# define " << dllExport << " ICE_DECLSPEC_IMPORT";
448
582
  out << "\n# endif";
@@ -450,10 +584,36 @@ Slice::printDllExportStuff(Output& out, const string& dllExport)
450
584
  }
451
585
  }
452
586
 
587
+ bool
588
+ Slice::isMovable(const TypePtr& type)
589
+ {
590
+ BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
591
+ if(builtin)
592
+ {
593
+ switch(builtin->kind())
594
+ {
595
+ case Builtin::KindString:
596
+ case Builtin::KindObject:
597
+ case Builtin::KindObjectProxy:
598
+ case Builtin::KindLocalObject:
599
+ case Builtin::KindValue:
600
+ {
601
+ return true;
602
+ }
603
+ default:
604
+ {
605
+ return false;
606
+ }
607
+ }
608
+ }
609
+ return !EnumPtr::dynamicCast(type);
610
+ }
453
611
 
454
612
  string
455
613
  Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx)
456
614
  {
615
+ bool cpp11 = (typeCtx & TypeContextCpp11) != 0;
616
+
457
617
  static const char* builtinTable[] =
458
618
  {
459
619
  "::Ice::Byte",
@@ -466,9 +626,40 @@ Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx
466
626
  "::std::string",
467
627
  "::Ice::ObjectPtr",
468
628
  "::Ice::ObjectPrx",
469
- "::Ice::LocalObjectPtr"
629
+ "::Ice::LocalObjectPtr",
630
+ "::Ice::ValuePtr"
470
631
  };
471
632
 
633
+ static const char* cpp11BuiltinTable[] =
634
+ {
635
+ "::Ice::Byte",
636
+ "bool",
637
+ "short",
638
+ "int",
639
+ "long long int",
640
+ "float",
641
+ "double",
642
+ "::std::string",
643
+ "::std::shared_ptr<::Ice::Object>",
644
+ "::std::shared_ptr<::Ice::ObjectPrx>",
645
+ "::std::shared_ptr<void>",
646
+ "::std::shared_ptr<::Ice::Value>"
647
+ };
648
+
649
+ if((typeCtx & TypeContextLocal) != 0)
650
+ {
651
+ for(StringList::const_iterator i = metaData.begin(); i != metaData.end(); ++i)
652
+ {
653
+ const string cppType = "cpp:type:";
654
+ const string meta = *i;
655
+
656
+ if(meta.find(cppType) == 0)
657
+ {
658
+ return meta.substr(cppType.size());
659
+ }
660
+ }
661
+ }
662
+
472
663
  BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
473
664
  if(builtin)
474
665
  {
@@ -478,20 +669,55 @@ Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx
478
669
  }
479
670
  else
480
671
  {
481
- return builtinTable[builtin->kind()];
672
+ if(cpp11)
673
+ {
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
+ }
682
+ }
683
+ else
684
+ {
685
+ return builtinTable[builtin->kind()];
686
+ }
482
687
  }
483
688
  }
484
689
 
485
690
  ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
486
691
  if(cl)
487
692
  {
488
- return fixKwd(cl->scoped() + "Ptr");
693
+ if(cpp11)
694
+ {
695
+ if(cl->definition() && cl->definition()->isDelegate())
696
+ {
697
+ return fixKwd(cl->scoped());
698
+ }
699
+ else if(cl->isInterface() && !cl->isLocal())
700
+ {
701
+ return "::std::shared_ptr<::Ice::Value>";
702
+ }
703
+ else
704
+ {
705
+ return "::std::shared_ptr<" + cl->scoped() + ">";
706
+ }
707
+ }
708
+ else
709
+ {
710
+ return cl->scoped() + "Ptr";
711
+ }
489
712
  }
490
713
 
491
714
  StructPtr st = StructPtr::dynamicCast(type);
492
715
  if(st)
493
716
  {
494
- if(findMetaData(st->getMetaData()) == "%class")
717
+ //
718
+ // C++11 mapping doesn't accept cpp:class metadata
719
+ //
720
+ if(!cpp11 && findMetaData(st->getMetaData()) == "%class")
495
721
  {
496
722
  return fixKwd(st->scoped() + "Ptr");
497
723
  }
@@ -501,7 +727,26 @@ Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx
501
727
  ProxyPtr proxy = ProxyPtr::dynamicCast(type);
502
728
  if(proxy)
503
729
  {
504
- return fixKwd(proxy->_class()->scoped() + "Prx");
730
+ if(cpp11)
731
+ {
732
+ ClassDefPtr def = proxy->_class()->definition();
733
+ //
734
+ // Non local classes without operations map to the base
735
+ // proxy class shared_ptr<Ice::ObjectPrx>
736
+ //
737
+ if(def && !def->isInterface() && def->allOperations().empty())
738
+ {
739
+ return "::std::shared_ptr<::Ice::ObjectPrx>";
740
+ }
741
+ else
742
+ {
743
+ return "::std::shared_ptr<" + fixKwd(proxy->_class()->scoped() + "Prx") + ">";
744
+ }
745
+ }
746
+ else
747
+ {
748
+ return fixKwd(proxy->_class()->scoped() + "Prx");
749
+ }
505
750
  }
506
751
 
507
752
  SequencePtr seq = SequencePtr::dynamicCast(type);
@@ -536,7 +781,7 @@ Slice::typeToString(const TypePtr& type, bool optional, const StringList& metaDa
536
781
  {
537
782
  if(optional)
538
783
  {
539
- return "IceUtil::Optional<" + toTemplateArg(typeToString(type, metaData, typeCtx)) + ">";
784
+ return toOptional(typeToString(type, metaData, typeCtx), typeCtx);
540
785
  }
541
786
  else
542
787
  {
@@ -554,7 +799,7 @@ Slice::returnTypeToString(const TypePtr& type, bool optional, const StringList&
554
799
 
555
800
  if(optional)
556
801
  {
557
- return "IceUtil::Optional<" + toTemplateArg(typeToString(type, metaData, typeCtx)) + ">";
802
+ return toOptional(typeToString(type, metaData, typeCtx), typeCtx);
558
803
  }
559
804
 
560
805
  return typeToString(type, metaData, typeCtx);
@@ -563,7 +808,9 @@ Slice::returnTypeToString(const TypePtr& type, bool optional, const StringList&
563
808
  string
564
809
  Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& metaData, int typeCtx)
565
810
  {
566
- static const char* inputBuiltinTable[] =
811
+ bool cpp11 = (typeCtx & TypeContextCpp11) != 0;
812
+
813
+ static const char* cpp98InputBuiltinTable[] =
567
814
  {
568
815
  "::Ice::Byte",
569
816
  "bool",
@@ -575,14 +822,31 @@ Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& m
575
822
  "const ::std::string&",
576
823
  "const ::Ice::ObjectPtr&",
577
824
  "const ::Ice::ObjectPrx&",
578
- "const ::Ice::LocalObjectPtr&"
825
+ "const ::Ice::LocalObjectPtr&",
826
+ "const ::Ice::ValuePtr&"
827
+ };
828
+
829
+ static const char* cpp11InputBuiltinTable[] =
830
+ {
831
+ "::Ice::Byte",
832
+ "bool",
833
+ "short",
834
+ "int",
835
+ "long long int",
836
+ "float",
837
+ "double",
838
+ "const ::std::string&",
839
+ "const ::std::shared_ptr<::Ice::Object>&",
840
+ "const ::std::shared_ptr<::Ice::ObjectPrx>&",
841
+ "const ::std::shared_ptr<void>&",
842
+ "const ::std::shared_ptr<::Ice::Value>&"
579
843
  };
580
844
 
581
845
  typeCtx |= TypeContextInParam;
582
846
 
583
847
  if(optional)
584
848
  {
585
- return "const IceUtil::Optional<" + toTemplateArg(typeToString(type, metaData, typeCtx)) +">&";
849
+ return "const " + toOptional(typeToString(type, metaData, typeCtx), typeCtx) + '&';
586
850
  }
587
851
 
588
852
  BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
@@ -590,34 +854,91 @@ Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& m
590
854
  {
591
855
  if(builtin->kind() == Builtin::KindString)
592
856
  {
593
- return string("const ") + stringTypeToString(type, metaData, typeCtx) + "&";
857
+ return string("const ") + stringTypeToString(type, metaData, typeCtx) + '&';
594
858
  }
595
859
  else
596
860
  {
597
- return inputBuiltinTable[builtin->kind()];
861
+ if(cpp11)
862
+ {
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
+ }
871
+ }
872
+ else
873
+ {
874
+ return cpp98InputBuiltinTable[builtin->kind()];
875
+ }
598
876
  }
599
877
  }
600
878
 
601
879
  ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
602
880
  if(cl)
603
881
  {
604
- return "const " + fixKwd(cl->scoped() + "Ptr&");
882
+ if(cpp11)
883
+ {
884
+ if(cl->definition() && cl->definition()->isDelegate())
885
+ {
886
+ return fixKwd(cl->scoped());
887
+ }
888
+ else if(cl->isInterface() && !cl->isLocal())
889
+ {
890
+ return "const ::std::shared_ptr<::Ice::Value>&";
891
+ }
892
+ else
893
+ {
894
+ return "const ::std::shared_ptr<" + fixKwd(cl->scoped()) + ">&";
895
+ }
896
+ }
897
+ else
898
+ {
899
+ return "const " + fixKwd(cl->scoped() + "Ptr&");
900
+ }
605
901
  }
606
902
 
607
903
  StructPtr st = StructPtr::dynamicCast(type);
608
904
  if(st)
609
905
  {
610
- if(findMetaData(st->getMetaData()) == "%class")
906
+ if(cpp11)
611
907
  {
612
- return "const " + fixKwd(st->scoped() + "Ptr&");
908
+ return "const " + fixKwd(st->scoped()) + "&";
909
+ }
910
+ else
911
+ {
912
+ if(findMetaData(st->getMetaData()) == "%class")
913
+ {
914
+ return "const " + fixKwd(st->scoped() + "Ptr&");
915
+ }
916
+ else
917
+ {
918
+ return "const " + fixKwd(st->scoped()) + "&";
919
+ }
613
920
  }
614
- return "const " + fixKwd(st->scoped()) + "&";
615
921
  }
616
922
 
617
923
  ProxyPtr proxy = ProxyPtr::dynamicCast(type);
618
924
  if(proxy)
619
925
  {
620
- return "const " + fixKwd(proxy->_class()->scoped() + "Prx&");
926
+ if(cpp11)
927
+ {
928
+ ClassDefPtr def = proxy->_class()->definition();
929
+ if(def && !def->isInterface() && def->allOperations().empty())
930
+ {
931
+ return "const ::std::shared_ptr<::Ice::ObjectPrx>&";
932
+ }
933
+ else
934
+ {
935
+ return "const ::std::shared_ptr<" + fixKwd(proxy->_class()->scoped() + "Prx") + ">&";
936
+ }
937
+ }
938
+ else
939
+ {
940
+ return "const " + fixKwd(proxy->_class()->scoped() + "Prx&");
941
+ }
621
942
  }
622
943
 
623
944
  EnumPtr en = EnumPtr::dynamicCast(type);
@@ -650,6 +971,8 @@ Slice::inputTypeToString(const TypePtr& type, bool optional, const StringList& m
650
971
  string
651
972
  Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList& metaData, int typeCtx)
652
973
  {
974
+ bool cpp11 = (typeCtx & TypeContextCpp11) != 0;
975
+
653
976
  static const char* outputBuiltinTable[] =
654
977
  {
655
978
  "::Ice::Byte&",
@@ -661,13 +984,30 @@ Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList&
661
984
  "::Ice::Double&",
662
985
  "::std::string&",
663
986
  "::Ice::ObjectPtr&",
664
- "::Ice::ObjectPrx&",
665
- "::Ice::LocalObjectPtr&"
987
+ "::Ice::ObjectPrxPtr&",
988
+ "::Ice::LocalObjectPtr&",
989
+ "::Ice::ValuePtr&"
990
+ };
991
+
992
+ static const char* cpp11OutputBuiltinTable[] =
993
+ {
994
+ "::Ice::Byte&",
995
+ "bool&",
996
+ "short&",
997
+ "int&",
998
+ "long long int&",
999
+ "float&",
1000
+ "double&",
1001
+ "::std::string&",
1002
+ "::std::shared_ptr<::Ice::Object>&",
1003
+ "::std::shared_ptr<::Ice::ObjectPrx>&",
1004
+ "::std::shared_ptr<void>&",
1005
+ "::std::shared_ptr<::Ice::Value>&"
666
1006
  };
667
1007
 
668
1008
  if(optional)
669
1009
  {
670
- return "IceUtil::Optional<" + toTemplateArg(typeToString(type, metaData, typeCtx)) +">&";
1010
+ return toOptional(typeToString(type, metaData, typeCtx), typeCtx) + '&';
671
1011
  }
672
1012
 
673
1013
  BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
@@ -679,30 +1019,84 @@ Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList&
679
1019
  }
680
1020
  else
681
1021
  {
682
- return outputBuiltinTable[builtin->kind()];
1022
+ if(cpp11)
1023
+ {
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
+ }
1032
+ }
1033
+ else
1034
+ {
1035
+ return outputBuiltinTable[builtin->kind()];
1036
+ }
683
1037
  }
684
1038
  }
685
1039
 
686
1040
  ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type);
687
1041
  if(cl)
688
1042
  {
689
- return fixKwd(cl->scoped() + "Ptr&");
1043
+ if(cpp11)
1044
+ {
1045
+ if(cl->definition() && cl->definition()->isDelegate())
1046
+ {
1047
+ return fixKwd(cl->scoped()) + "&";
1048
+ }
1049
+ else if(cl->isInterface() && !cl->isLocal())
1050
+ {
1051
+ return "::std::shared_ptr<::Ice::Value>&";
1052
+ }
1053
+ else
1054
+ {
1055
+ return "::std::shared_ptr<" + fixKwd(cl->scoped()) + ">&";
1056
+ }
1057
+ }
1058
+ else
1059
+ {
1060
+ return fixKwd(cl->scoped() + "Ptr&");
1061
+ }
690
1062
  }
691
1063
 
692
1064
  StructPtr st = StructPtr::dynamicCast(type);
693
1065
  if(st)
694
1066
  {
695
- if(findMetaData(st->getMetaData()) == "%class")
1067
+ if(!cpp11 && findMetaData(st->getMetaData()) == "%class")
696
1068
  {
697
1069
  return fixKwd(st->scoped() + "Ptr&");
698
1070
  }
699
- return fixKwd(st->scoped()) + "&";
1071
+ else
1072
+ {
1073
+ return fixKwd(st->scoped()) + "&";
1074
+ }
700
1075
  }
701
1076
 
702
1077
  ProxyPtr proxy = ProxyPtr::dynamicCast(type);
703
1078
  if(proxy)
704
1079
  {
705
- return fixKwd(proxy->_class()->scoped() + "Prx&");
1080
+ if(cpp11)
1081
+ {
1082
+ ClassDefPtr def = proxy->_class()->definition();
1083
+ //
1084
+ // Non local classes without operations map to the base
1085
+ // proxy class shared_ptr<Ice::ObjectPrx>
1086
+ //
1087
+ if(def && !def->isInterface() && def->allOperations().empty())
1088
+ {
1089
+ return "::std::shared_ptr<::Ice::ObjectPrx>";
1090
+ }
1091
+ else
1092
+ {
1093
+ return "::std::shared_ptr<" + fixKwd(proxy->_class()->scoped() + "Prx") + ">&";
1094
+ }
1095
+ }
1096
+ else
1097
+ {
1098
+ return fixKwd(proxy->_class()->scoped() + "Prx&");
1099
+ }
706
1100
  }
707
1101
 
708
1102
  SequencePtr seq = SequencePtr::dynamicCast(type);
@@ -727,25 +1121,25 @@ Slice::outputTypeToString(const TypePtr& type, bool optional, const StringList&
727
1121
  }
728
1122
 
729
1123
  string
730
- Slice::operationModeToString(Operation::Mode mode)
1124
+ Slice::operationModeToString(Operation::Mode mode, bool cpp11)
731
1125
  {
1126
+ string prefix = cpp11 ? "::Ice::OperationMode::" : "::Ice::";
732
1127
  switch(mode)
733
1128
  {
734
1129
  case Operation::Normal:
735
1130
  {
736
- return "::Ice::Normal";
1131
+ return prefix + "Normal";
737
1132
  }
738
1133
 
739
1134
  case Operation::Nonmutating:
740
1135
  {
741
- return "::Ice::Nonmutating";
1136
+ return prefix + "Nonmutating";
742
1137
  }
743
1138
 
744
1139
  case Operation::Idempotent:
745
1140
  {
746
- return "::Ice::Idempotent";
1141
+ return prefix + "Idempotent";
747
1142
  }
748
-
749
1143
  default:
750
1144
  {
751
1145
  assert(false);
@@ -756,16 +1150,18 @@ Slice::operationModeToString(Operation::Mode mode)
756
1150
  }
757
1151
 
758
1152
  string
759
- Slice::opFormatTypeToString(const OperationPtr& op)
1153
+ Slice::opFormatTypeToString(const OperationPtr& op, bool cpp11)
760
1154
  {
1155
+ string prefix = cpp11 ? "::Ice::FormatType::" : "::Ice::";
1156
+
761
1157
  switch(op->format())
762
1158
  {
763
1159
  case DefaultFormat:
764
- return "::Ice::DefaultFormat";
1160
+ return prefix + "DefaultFormat";
765
1161
  case CompactFormat:
766
- return "::Ice::CompactFormat";
1162
+ return prefix + "CompactFormat";
767
1163
  case SlicedFormat:
768
- return "::Ice::SlicedFormat";
1164
+ return prefix + "SlicedFormat";
769
1165
 
770
1166
  default:
771
1167
  assert(false);
@@ -775,7 +1171,7 @@ Slice::opFormatTypeToString(const OperationPtr& op)
775
1171
  }
776
1172
 
777
1173
  //
778
- // If the passed name is a keyword, return the name with a "_cxx_" prefix;
1174
+ // If the passed name is a keyword, return the name with a "_cpp_" prefix;
779
1175
  // otherwise, return the name unchanged.
780
1176
  //
781
1177
 
@@ -792,14 +1188,15 @@ lookupKwd(const string& name)
792
1188
  //
793
1189
  static const string keywordList[] =
794
1190
  {
795
- "and", "and_eq", "asm", "auto", "bit_and", "bit_or", "bool", "break", "case", "catch", "char",
796
- "class", "compl", "const", "const_cast", "continue", "default", "delete", "do", "double",
797
- "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false", "float", "for",
798
- "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new", "not", "not_eq",
799
- "operator", "or", "or_eq", "private", "protected", "public", "register", "reinterpret_cast",
800
- "return", "short", "signed", "sizeof", "static", "static_cast", "struct", "switch", "template",
801
- "this", "throw", "true", "try", "typedef", "typeid", "typename", "union", "unsigned", "using",
802
- "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq"
1191
+ "alignas", "alignof", "and", "and_eq", "asm", "auto", "bit_and", "bit_or", "bool", "break",
1192
+ "case", "catch", "char", "char16_t", "char32_t", "class", "compl", "const", "const_exptr", "const_cast", "continue",
1193
+ "decltype", "default", "delete", "do", "double", "dynamic_cast",
1194
+ "else", "enum", "explicit", "export", "extern", "false", "float", "for", "friend",
1195
+ "goto", "if", "inline", "int", "long", "mutable", "namespace", "new", "noexcept", "not", "not_eq",
1196
+ "operator", "or", "or_eq", "private", "protected", "public", "register", "reinterpret_cast", "return",
1197
+ "short", "signed", "sizeof", "static", "static_assert", "static_cast", "struct", "switch",
1198
+ "template", "this", "thread_local", "throw", "true", "try", "typedef", "typeid", "typename",
1199
+ "union", "unsigned", "using", "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq"
803
1200
  };
804
1201
  bool found = binary_search(&keywordList[0],
805
1202
  &keywordList[sizeof(keywordList) / sizeof(*keywordList)],
@@ -845,8 +1242,8 @@ splitScopedName(const string& scoped)
845
1242
  //
846
1243
  // If the passed name is a scoped name, return the identical scoped name,
847
1244
  // but with all components that are C++ keywords replaced by
848
- // their "_cxx_"-prefixed version; otherwise, if the passed name is
849
- // not scoped, but a C++ keyword, return the "_cxx_"-prefixed name;
1245
+ // their "_cpp_"-prefixed version; otherwise, if the passed name is
1246
+ // not scoped, but a C++ keyword, return the "_cpp_"-prefixed name;
850
1247
  // otherwise, return the name unchanged.
851
1248
  //
852
1249
  string
@@ -868,16 +1265,19 @@ Slice::fixKwd(const string& name)
868
1265
 
869
1266
  void
870
1267
  Slice::writeMarshalUnmarshalCode(Output& out, const TypePtr& type, bool optional, int tag, const string& param,
871
- bool marshal, const StringList& metaData, int typeCtx, const string& str, bool pointer)
1268
+ bool marshal, const StringList& metaData, int typeCtx, const string& customStream, bool pointer,
1269
+ const string& obj)
872
1270
  {
1271
+ string objPrefix = obj.empty() ? obj : obj + ".";
1272
+
873
1273
  ostringstream os;
874
- if(str.empty())
1274
+ if(customStream.empty())
875
1275
  {
876
- os << (marshal ? "__os" : "__is");
1276
+ os << (marshal ? "ostr" : "istr");
877
1277
  }
878
1278
  else
879
1279
  {
880
- os << str;
1280
+ os << customStream;
881
1281
  }
882
1282
 
883
1283
  string deref;
@@ -916,52 +1316,63 @@ Slice::writeMarshalUnmarshalCode(Output& out, const TypePtr& type, bool optional
916
1316
  BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type());
917
1317
  if(builtin && builtin->kind() == Builtin::KindByte)
918
1318
  {
919
- out << nl << func << param << ");";
1319
+ out << nl << func << objPrefix << param << ");";
920
1320
  return;
921
1321
  }
922
1322
 
923
- out << nl << func << "___" << param << ");";
924
- writeParamEndCode(out, seq, optional, param, metaData);
1323
+ out << nl << func << objPrefix << param << "_tmp_);";
1324
+ writeParamEndCode(out, seq, optional, param, metaData, obj);
925
1325
  return;
926
1326
  }
927
1327
  else if(seqType.find("%range") == 0)
928
1328
  {
929
- out << nl << func << "___" << param << ");";
930
- writeParamEndCode(out, seq, optional, param, metaData);
1329
+ out << nl << func << objPrefix << param << "_tmp_);";
1330
+ writeParamEndCode(out, seq, optional, param, metaData, obj);
931
1331
  return;
932
1332
  }
933
1333
  }
934
1334
  }
935
1335
 
936
- out << nl << func << param << ");";
1336
+ out << nl << func << objPrefix << param << ");";
937
1337
  }
938
1338
 
939
1339
  void
940
- Slice::writeMarshalCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend, int typeCtx)
1340
+ Slice::writeMarshalCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend, int typeCtx,
1341
+ const string& customStream, const string& retP)
941
1342
  {
942
- writeMarshalUnmarshalParams(out, params, op, true, prepend, typeCtx);
1343
+ writeMarshalUnmarshalParams(out, params, op, true, prepend, typeCtx, customStream, retP);
943
1344
  }
944
1345
 
945
1346
  void
946
- Slice::writeUnmarshalCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend, int typeCtx)
1347
+ Slice::writeUnmarshalCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend, int typeCtx,
1348
+ const string& customStream, const string& retP, const string& obj)
947
1349
  {
948
- writeMarshalUnmarshalParams(out, params, op, false, prepend, typeCtx);
1350
+ writeMarshalUnmarshalParams(out, params, op, false, prepend, typeCtx, customStream, retP, obj);
949
1351
  }
950
1352
 
951
1353
  void
952
- Slice::writeAllocateCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend, int typeCtx)
1354
+ Slice::writeAllocateCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend, int typeCtx,
1355
+ const string& customRet)
953
1356
  {
954
1357
  string prefix = prepend ? paramPrefix : "";
1358
+ string returnValueS = customRet;
1359
+ if(returnValueS.empty())
1360
+ {
1361
+ returnValueS = "ret";
1362
+ }
1363
+
955
1364
  for(ParamDeclList::const_iterator p = params.begin(); p != params.end(); ++p)
956
1365
  {
957
1366
  writeParamAllocateCode(out, (*p)->type(), (*p)->optional(), fixKwd(prefix + (*p)->name()), (*p)->getMetaData(),
958
- typeCtx, getEndArg((*p)->type(),(*p)->getMetaData(), (*p)->name()) != (*p)->name());
1367
+ typeCtx, getEndArg((*p)->type(), (*p)->getMetaData(), (*p)->name()) != (*p)->name());
959
1368
  }
1369
+
960
1370
  if(op && op->returnType())
961
1371
  {
962
- writeParamAllocateCode(out, op->returnType(), op->returnIsOptional(), "__ret", op->getMetaData(), typeCtx,
963
- getEndArg(op->returnType(), op->getMetaData(), "__ret") != "__ret");
1372
+ writeParamAllocateCode(out, op->returnType(), op->returnIsOptional(), returnValueS, op->getMetaData(), typeCtx,
1373
+ getEndArg(op->returnType(), op->getMetaData(), returnValueS) != returnValueS);
964
1374
  }
1375
+
965
1376
  }
966
1377
 
967
1378
  string
@@ -986,11 +1397,11 @@ Slice::getEndArg(const TypePtr& type, const StringList& metaData, const string&
986
1397
  builtin->kind() != Builtin::KindObject &&
987
1398
  builtin->kind() != Builtin::KindObjectProxy)
988
1399
  {
989
- endArg = "___" + endArg;
1400
+ endArg += "_tmp_";
990
1401
  }
991
1402
  else if(!builtin || builtin->kind() != Builtin::KindByte)
992
1403
  {
993
- endArg = "___" + endArg;
1404
+ endArg += "_tmp_";
994
1405
  }
995
1406
  }
996
1407
  else if(seqType.find("%range") == 0)
@@ -1000,7 +1411,7 @@ Slice::getEndArg(const TypePtr& type, const StringList& metaData, const string&
1000
1411
  {
1001
1412
  md.push_back("cpp:type:" + seqType.substr(strlen("%range:")));
1002
1413
  }
1003
- endArg = "___" + endArg;
1414
+ endArg += "_tmp_";
1004
1415
  }
1005
1416
  }
1006
1417
  return endArg;
@@ -1016,8 +1427,247 @@ Slice::writeEndCode(Output& out, const ParamDeclList& params, const OperationPtr
1016
1427
  }
1017
1428
  if(op && op->returnType())
1018
1429
  {
1019
- writeParamEndCode(out, op->returnType(), op->returnIsOptional(), "__ret", op->getMetaData());
1430
+ writeParamEndCode(out, op->returnType(), op->returnIsOptional(), "ret", op->getMetaData());
1431
+ }
1432
+ }
1433
+
1434
+ void
1435
+ Slice::writeMarshalUnmarshalDataMemberInHolder(IceUtilInternal::Output& C,
1436
+ const string& holder,
1437
+ const DataMemberPtr& p,
1438
+ bool marshal)
1439
+ {
1440
+ writeMarshalUnmarshalCode(C, p->type(), p->optional(), p->tag(), holder + fixKwd(p->name()), marshal,
1441
+ p->getMetaData());
1442
+ }
1443
+
1444
+ void
1445
+ Slice::writeMarshalUnmarshalAllInHolder(IceUtilInternal::Output& out,
1446
+ const string& holder,
1447
+ const DataMemberList& dataMembers,
1448
+ bool optional,
1449
+ bool marshal)
1450
+ {
1451
+ if(dataMembers.empty())
1452
+ {
1453
+ return;
1454
+ }
1455
+
1456
+ string stream = marshal ? "ostr" : "istr";
1457
+ string streamOp = marshal ? "writeAll" : "readAll";
1458
+
1459
+ out << nl << stream << "->" << streamOp;
1460
+ out << spar;
1461
+
1462
+ if(optional)
1463
+ {
1464
+ ostringstream os;
1465
+ os << "{";
1466
+ for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
1467
+ {
1468
+ if(q != dataMembers.begin())
1469
+ {
1470
+ os << ", ";
1471
+ }
1472
+ os << (*q)->tag();
1473
+ }
1474
+ os << "}";
1475
+ out << os.str();
1476
+ }
1477
+
1478
+ for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
1479
+ {
1480
+ out << holder + fixKwd((*q)->name());
1481
+ }
1482
+
1483
+ out << epar << ";";
1484
+
1485
+ }
1486
+
1487
+ void
1488
+ Slice::writeStreamHelpers(Output& out,
1489
+ const ContainedPtr& c,
1490
+ DataMemberList dataMembers,
1491
+ bool hasBaseDataMembers,
1492
+ bool checkClassMetaData,
1493
+ bool cpp11)
1494
+ {
1495
+ // If c is a C++11 class/exception whose base class contains data members (recursively), then we need to generate
1496
+ // an StreamWriter even if its implementation is empty. This is becuase our default marsaling uses ice_tuple() which
1497
+ // contains all of our class/exception's data members as well the base data members, which breaks marshaling. This
1498
+ // is not an issue for structs.
1499
+ if(dataMembers.empty() && !(cpp11 && hasBaseDataMembers))
1500
+ {
1501
+ return;
1502
+ }
1503
+
1504
+ DataMemberList requiredMembers;
1505
+ DataMemberList optionalMembers;
1506
+
1507
+ for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
1508
+ {
1509
+ if((*q)->optional())
1510
+ {
1511
+ optionalMembers.push_back(*q);
1512
+ }
1513
+ else
1514
+ {
1515
+ requiredMembers.push_back(*q);
1516
+ }
1517
+ }
1518
+
1519
+ // Sort optional data members
1520
+ class SortFn
1521
+ {
1522
+ public:
1523
+ static bool compare(const DataMemberPtr& lhs, const DataMemberPtr& rhs)
1524
+ {
1525
+ return lhs->tag() < rhs->tag();
1526
+ }
1527
+ };
1528
+ optionalMembers.sort(SortFn::compare);
1529
+
1530
+ string scoped = c->scoped();
1531
+ bool classMetaData = checkClassMetaData ? (findMetaData(c->getMetaData(), false) == "%class") : false;
1532
+ string fullName = classMetaData ? fixKwd(scoped + "Ptr") : fixKwd(scoped);
1533
+ string holder = classMetaData ? "v->" : "v.";
1534
+
1535
+ //
1536
+ // Generate StreamWriter
1537
+ //
1538
+ // Only generate StreamWriter specializations if we are generating for C++98 or
1539
+ // we are generating for C++11 with optional data members and no base class data members
1540
+ //
1541
+ if(!cpp11 || !optionalMembers.empty() || hasBaseDataMembers)
1542
+ {
1543
+ out << nl << "template<typename S>";
1544
+ out << nl << "struct StreamWriter" << (cpp11 ? "<" : "< ") << fullName << ", S>";
1545
+ out << sb;
1546
+ if(requiredMembers.empty() && optionalMembers.empty())
1547
+ {
1548
+ out << nl << "static void write(S*, const " << fullName << "&)";
1549
+ }
1550
+ else
1551
+ {
1552
+ out << nl << "static void write(S* ostr, const " << fullName << "& v)";
1553
+ }
1554
+
1555
+ out << sb;
1556
+
1557
+ if(cpp11)
1558
+ {
1559
+ writeMarshalUnmarshalAllInHolder(out, holder, requiredMembers, false, true);
1560
+ writeMarshalUnmarshalAllInHolder(out, holder, optionalMembers, true, true);
1561
+ }
1562
+ else
1563
+ {
1564
+ for(DataMemberList::const_iterator q = requiredMembers.begin(); q != requiredMembers.end(); ++q)
1565
+ {
1566
+ writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, true);
1567
+ }
1568
+
1569
+ for(DataMemberList::const_iterator q = optionalMembers.begin(); q != optionalMembers.end(); ++q)
1570
+ {
1571
+ writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, true);
1572
+ }
1573
+ }
1574
+
1575
+ out << eb;
1576
+ out << eb << ";" << nl;
1020
1577
  }
1578
+
1579
+ //
1580
+ // Generate StreamWriter
1581
+ //
1582
+ out << nl << "template<typename S>";
1583
+ out << nl << "struct StreamReader" << (cpp11 ? "<" : "< ") << fullName << ", S>";
1584
+ out << sb;
1585
+ if (requiredMembers.empty() && optionalMembers.empty())
1586
+ {
1587
+ out << nl << "static void read(S*, " << fullName << "&)";
1588
+ }
1589
+ else
1590
+ {
1591
+ out << nl << "static void read(S* istr, " << fullName << "& v)";
1592
+ }
1593
+
1594
+ out << sb;
1595
+
1596
+ if(cpp11)
1597
+ {
1598
+ writeMarshalUnmarshalAllInHolder(out, holder, requiredMembers, false, false);
1599
+ writeMarshalUnmarshalAllInHolder(out, holder, optionalMembers, true, false);
1600
+ }
1601
+ else
1602
+ {
1603
+ for(DataMemberList::const_iterator q = requiredMembers.begin(); q != requiredMembers.end(); ++q)
1604
+ {
1605
+ writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, false);
1606
+ }
1607
+
1608
+ for(DataMemberList::const_iterator q = optionalMembers.begin(); q != optionalMembers.end(); ++q)
1609
+ {
1610
+ writeMarshalUnmarshalDataMemberInHolder(out, holder, *q, false);
1611
+ }
1612
+ }
1613
+
1614
+ out << eb;
1615
+ out << eb << ";" << nl;
1616
+ }
1617
+
1618
+ void
1619
+ Slice::writeIceTuple(::IceUtilInternal::Output& out, DataMemberList dataMembers, int typeCtx)
1620
+ {
1621
+ out << sp << nl << "std::tuple<";
1622
+ for(DataMemberList::const_iterator q = dataMembers.begin(); q != dataMembers.end(); ++q)
1623
+ {
1624
+ if(q != dataMembers.begin())
1625
+ {
1626
+ out << ", ";
1627
+ }
1628
+ out << "const ";
1629
+ out << typeToString((*q)->type(), (*q)->optional(), (*q)->getMetaData(), typeCtx | TypeContextCpp11) << "&";
1630
+ }
1631
+ out << "> ice_tuple() const";
1632
+
1633
+ out << sb;
1634
+ out << nl << "return std::tie(";
1635
+ for(DataMemberList::const_iterator pi = dataMembers.begin(); pi != dataMembers.end(); ++pi)
1636
+ {
1637
+ if(pi != dataMembers.begin())
1638
+ {
1639
+ out << ", ";
1640
+ }
1641
+ out << fixKwd((*pi)->name());
1642
+ }
1643
+ out << ");" << eb;
1644
+ }
1645
+
1646
+ bool
1647
+ Slice::findMetaData(const string& prefix, const ClassDeclPtr& cl, string& value)
1648
+ {
1649
+ if(findMetaData(prefix, cl->getMetaData(), value))
1650
+ {
1651
+ return true;
1652
+ }
1653
+
1654
+ ClassDefPtr def = cl->definition();
1655
+ return def ? findMetaData(prefix, def->getMetaData(), value) : false;
1656
+ }
1657
+
1658
+ bool
1659
+ Slice::findMetaData(const string& prefix, const StringList& metaData, string& value)
1660
+ {
1661
+ for(StringList::const_iterator i = metaData.begin(); i != metaData.end(); i++)
1662
+ {
1663
+ string s = *i;
1664
+ if(s.find(prefix) == 0)
1665
+ {
1666
+ value = s.substr(prefix.size());
1667
+ return true;
1668
+ }
1669
+ }
1670
+ return false;
1021
1671
  }
1022
1672
 
1023
1673
  string
@@ -1041,28 +1691,23 @@ Slice::findMetaData(const StringList& metaData, int typeCtx)
1041
1691
  // the return value is % followed by the string after cpp:.
1042
1692
  //
1043
1693
  // The priority of the metadata is as follows:
1044
- // 1: protobuf
1045
- // 2: array, range, view-type for "view" parameters
1046
- // 3: class
1694
+ // 1: array, range (C++98 only), view-type for "view" parameters
1695
+ // 2: class (C++98 only), scoped (C++98 only), unscoped (C++11 only)
1696
+ //
1047
1697
 
1048
1698
  if(pos != string::npos)
1049
1699
  {
1050
1700
  string ss = str.substr(prefix.size());
1051
1701
 
1052
- if(ss.find("protobuf:") == 0)
1053
- {
1054
- return str.substr(pos + 1);
1055
- }
1056
-
1057
1702
  if(typeCtx & (TypeContextInParam | TypeContextAMIPrivateEnd))
1058
1703
  {
1059
- if(ss.find("range:") == 0)
1704
+ if(ss.find("view-type:") == 0)
1060
1705
  {
1061
- return string("%") + str.substr(prefix.size());
1706
+ return str.substr(pos + 1);
1062
1707
  }
1063
- else if(ss.find("view-type:") == 0)
1708
+ else if(ss.find("range:") == 0 && !(typeCtx & TypeContextCpp11))
1064
1709
  {
1065
- return str.substr(pos + 1);
1710
+ return string("%") + str.substr(prefix.size());
1066
1711
  }
1067
1712
  }
1068
1713
 
@@ -1078,21 +1723,29 @@ Slice::findMetaData(const StringList& metaData, int typeCtx)
1078
1723
  {
1079
1724
  return "%array";
1080
1725
  }
1081
- else if(ss == "range")
1726
+ else if(ss == "range" && !(typeCtx & TypeContextCpp11))
1082
1727
  {
1083
1728
  return "%range";
1084
1729
  }
1085
1730
  }
1086
1731
  //
1087
- // Otherwise if the data is "class" it is returned.
1732
+ // Otherwise if the data is "class", "scoped" or "unscoped" it is returned.
1088
1733
  //
1089
1734
  else
1090
1735
  {
1091
1736
  string ss = str.substr(prefix.size());
1092
- if(ss == "class")
1737
+ if(ss == "class" && !(typeCtx & TypeContextCpp11))
1093
1738
  {
1094
1739
  return "%class";
1095
1740
  }
1741
+ else if(ss == "scoped" && !(typeCtx & TypeContextCpp11))
1742
+ {
1743
+ return "%scoped";
1744
+ }
1745
+ else if(ss == "unscoped" && (typeCtx & TypeContextCpp11))
1746
+ {
1747
+ return "%unscoped";
1748
+ }
1096
1749
  }
1097
1750
  }
1098
1751
  }
@@ -1125,7 +1778,6 @@ Slice::inWstringModule(const SequencePtr& seq)
1125
1778
  return false;
1126
1779
  }
1127
1780
 
1128
-
1129
1781
  string
1130
1782
  Slice::getDataMemberRef(const DataMemberPtr& p)
1131
1783
  {