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.
@@ -29,6 +29,7 @@ namespace Ice
29
29
 
30
30
  class UserException;
31
31
 
32
+ /// \cond INTERNAL
32
33
  template<typename T> inline void
33
34
  patchHandle(void* addr, const ValuePtr& v)
34
35
  {
@@ -44,49 +45,139 @@ patchHandle(void* addr, const ValuePtr& v)
44
45
  _icePatchObjectPtr(*p, v); // Generated _icePatchObjectPtr function, necessary for forward declarations.
45
46
  #endif
46
47
  }
48
+ /// \endcond
47
49
 
50
+ /**
51
+ * Interface for input streams used to extract Slice types from a sequence of bytes.
52
+ * \headerfile Ice/Ice.h
53
+ */
48
54
  class ICE_API InputStream : public IceInternal::Buffer
49
55
  {
50
56
  public:
51
57
 
52
58
  typedef size_t size_type;
59
+
60
+ /**
61
+ * Signature for a patch function, used to receive an unmarshaled value.
62
+ * @param addr The target address.
63
+ * @param v The unmarshaled value.
64
+ */
53
65
  typedef void (*PatchFunc)(void*, const ValuePtr&);
54
66
 
55
- //
56
- // These constructors use the latest encoding version. Without a communicator, the stream
57
- // will not be able to unmarshal a proxy. For other unmarshaling tasks, you can provide
58
- // Helpers for objects that are normally provided by a communicator.
59
- //
67
+ /**
68
+ * Constructs a stream using the latest encoding version but without a communicator.
69
+ * This stream will not be able to unmarshal a proxy. For other unmarshaling tasks,
70
+ * you can provide Helpers for objects that are normally provided by a communicator.
71
+ * You can supply a communicator later by calling initialize().
72
+ */
60
73
  InputStream();
61
- InputStream(const std::vector<Byte>&);
62
- InputStream(const std::pair<const Byte*, const Byte*>&);
63
- InputStream(IceInternal::Buffer&, bool = false);
64
-
65
- //
66
- // These constructors use the communicator's default encoding version.
67
- //
68
- InputStream(const CommunicatorPtr&);
69
- InputStream(const CommunicatorPtr&, const std::vector<Byte>&);
70
- InputStream(const CommunicatorPtr&, const std::pair<const Byte*, const Byte*>&);
71
- InputStream(const CommunicatorPtr&, IceInternal::Buffer&, bool = false);
72
74
 
73
- //
74
- // These constructors use the given encoding version. Without a communicator, the stream
75
- // will not be able to unmarshal a proxy. For other unmarshaling tasks, you can provide
76
- // Helpers for objects that are normally provided by a communicator.
77
- //
78
- InputStream(const EncodingVersion&);
79
- InputStream(const EncodingVersion&, const std::vector<Byte>&);
80
- InputStream(const EncodingVersion&, const std::pair<const Byte*, const Byte*>&);
75
+ /**
76
+ * Constructs a stream using the latest encoding version but without a communicator.
77
+ * This stream will not be able to unmarshal a proxy. For other unmarshaling tasks,
78
+ * you can provide Helpers for objects that are normally provided by a communicator.
79
+ * You can supply a communicator later by calling initialize().
80
+ * @param bytes The encoded data.
81
+ */
82
+ InputStream(const std::vector<Byte>& bytes);
83
+
84
+ /**
85
+ * Constructs a stream using the latest encoding version but without a communicator.
86
+ * This stream will not be able to unmarshal a proxy. For other unmarshaling tasks,
87
+ * you can provide Helpers for objects that are normally provided by a communicator.
88
+ * You can supply a communicator later by calling initialize().
89
+ * @param bytes The encoded data.
90
+ */
91
+ InputStream(const std::pair<const Byte*, const Byte*>& bytes);
92
+
93
+ /// \cond INTERNAL
94
+ InputStream(IceInternal::Buffer&, bool = false);
95
+ /// \endcond
96
+
97
+ /**
98
+ * Constructs a stream using the communicator's default encoding version.
99
+ * @param communicator The communicator to use for unmarshaling tasks.
100
+ */
101
+ InputStream(const CommunicatorPtr& communicator);
102
+
103
+ /**
104
+ * Constructs a stream using the communicator's default encoding version.
105
+ * @param communicator The communicator to use for unmarshaling tasks.
106
+ * @param bytes The encoded data.
107
+ */
108
+ InputStream(const CommunicatorPtr& communicator, const std::vector<Byte>& bytes);
109
+
110
+ /**
111
+ * Constructs a stream using the communicator's default encoding version.
112
+ * @param communicator The communicator to use for unmarshaling tasks.
113
+ * @param bytes The encoded data.
114
+ */
115
+ InputStream(const CommunicatorPtr& communicator, const std::pair<const Byte*, const Byte*>& bytes);
116
+
117
+ /// \cond INTERNAL
118
+ InputStream(const CommunicatorPtr& communicator, IceInternal::Buffer&, bool = false);
119
+ /// \endcond
120
+
121
+ /**
122
+ * Constructs a stream using the given encoding version but without a communicator.
123
+ * This stream will not be able to unmarshal a proxy. For other unmarshaling tasks,
124
+ * you can provide Helpers for objects that are normally provided by a communicator.
125
+ * You can supply a communicator later by calling initialize().
126
+ * @param version The encoding version used to encode the data to be unmarshaled.
127
+ */
128
+ InputStream(const EncodingVersion& version);
129
+
130
+ /**
131
+ * Constructs a stream using the given encoding version but without a communicator.
132
+ * This stream will not be able to unmarshal a proxy. For other unmarshaling tasks,
133
+ * you can provide Helpers for objects that are normally provided by a communicator.
134
+ * You can supply a communicator later by calling initialize().
135
+ * @param version The encoding version used to encode the data to be unmarshaled.
136
+ * @param bytes The encoded data.
137
+ */
138
+ InputStream(const EncodingVersion& version, const std::vector<Byte>& bytes);
139
+
140
+ /**
141
+ * Constructs a stream using the given encoding version but without a communicator.
142
+ * This stream will not be able to unmarshal a proxy. For other unmarshaling tasks,
143
+ * you can provide Helpers for objects that are normally provided by a communicator.
144
+ * You can supply a communicator later by calling initialize().
145
+ * @param version The encoding version used to encode the data to be unmarshaled.
146
+ * @param bytes The encoded data.
147
+ */
148
+ InputStream(const EncodingVersion& version, const std::pair<const Byte*, const Byte*>& bytes);
149
+
150
+ /// \cond INTERNAL
81
151
  InputStream(const EncodingVersion&, IceInternal::Buffer&, bool = false);
82
-
83
- //
84
- // These constructors use the given communicator and encoding version.
85
- //
86
- InputStream(const CommunicatorPtr&, const EncodingVersion&);
87
- InputStream(const CommunicatorPtr&, const EncodingVersion&, const std::vector<Byte>&);
88
- InputStream(const CommunicatorPtr&, const EncodingVersion&, const std::pair<const Byte*, const Byte*>&);
152
+ /// \endcond
153
+
154
+ /**
155
+ * Constructs a stream using the given communicator and encoding version.
156
+ * @param communicator The communicator to use for unmarshaling tasks.
157
+ * @param version The encoding version used to encode the data to be unmarshaled.
158
+ */
159
+ InputStream(const CommunicatorPtr& communicator, const EncodingVersion& version);
160
+
161
+ /**
162
+ * Constructs a stream using the given communicator and encoding version.
163
+ * @param communicator The communicator to use for unmarshaling tasks.
164
+ * @param version The encoding version used to encode the data to be unmarshaled.
165
+ * @param bytes The encoded data.
166
+ */
167
+ InputStream(const CommunicatorPtr& communicator, const EncodingVersion& version, const std::vector<Byte>& bytes);
168
+
169
+ /**
170
+ * Constructs a stream using the given communicator and encoding version.
171
+ * @param communicator The communicator to use for unmarshaling tasks.
172
+ * @param version The encoding version used to encode the data to be unmarshaled.
173
+ * @param bytes The encoded data.
174
+ */
175
+ InputStream(const CommunicatorPtr& communicator, const EncodingVersion& version,
176
+ const std::pair<const Byte*, const Byte*>& bytes);
177
+
178
+ /// \cond INTERNAL
89
179
  InputStream(const CommunicatorPtr&, const EncodingVersion&, IceInternal::Buffer&, bool = false);
180
+ /// \endcond
90
181
 
91
182
  ~InputStream()
92
183
  {
@@ -106,75 +197,184 @@ public:
106
197
  #endif
107
198
  }
108
199
 
109
- //
110
- // Use initialize() if you originally constructed the stream without a communicator.
111
- //
112
- void initialize(const CommunicatorPtr&);
113
- void initialize(const CommunicatorPtr&, const EncodingVersion&);
114
-
200
+ /**
201
+ * Initializes the stream to use the communicator's default encoding version.
202
+ * Use initialize() if you originally constructed the stream without a communicator.
203
+ * @param communicator The communicator to use for unmarshaling tasks.
204
+ */
205
+ void initialize(const CommunicatorPtr& communicator);
206
+
207
+ /**
208
+ * Initializes the stream to use the given communicator and encoding version.
209
+ * Use initialize() if you originally constructed the stream without a communicator.
210
+ * @param communicator The communicator to use for unmarshaling tasks.
211
+ * @param version The encoding version used to encode the data to be unmarshaled.
212
+ */
213
+ void initialize(const CommunicatorPtr& communicator, const EncodingVersion& version);
214
+
215
+ /**
216
+ * Releases any data retained by encapsulations.
217
+ */
115
218
  void clear();
116
219
 
220
+ /// \cond INTERNAL
117
221
  //
118
222
  // Must return Instance*, because we don't hold an InstancePtr for
119
223
  // optimization reasons (see comments below).
120
224
  //
121
225
  IceInternal::Instance* instance() const { return _instance; } // Inlined for performance reasons.
122
-
123
- void setValueFactoryManager(const ValueFactoryManagerPtr&);
124
-
125
- void setLogger(const LoggerPtr&);
126
-
226
+ /// \endcond
227
+
228
+ /**
229
+ * Sets the value factory manager to use when unmarshaling value instances. If the stream
230
+ * was initialized with a communicator, the communicator's value factory manager will
231
+ * be used by default.
232
+ *
233
+ * @param vfm The value factory manager.
234
+ */
235
+ void setValueFactoryManager(const ValueFactoryManagerPtr& vfm);
236
+
237
+ /**
238
+ * Sets the logger to use when logging trace messages. If the stream
239
+ * was initialized with a communicator, the communicator's logger will
240
+ * be used by default.
241
+ *
242
+ * @param logger The logger to use for logging trace messages.
243
+ */
244
+ void setLogger(const LoggerPtr& logger);
245
+
246
+ /**
247
+ * Sets the compact ID resolver to use when unmarshaling value and exception
248
+ * instances. If the stream was initialized with a communicator, the communicator's
249
+ * resolver will be used by default.
250
+ *
251
+ * @param r The compact ID resolver.
252
+ */
127
253
  #ifdef ICE_CPP11_MAPPING
128
- void setCompactIdResolver(std::function<std::string(int)>);
254
+ void setCompactIdResolver(std::function<std::string(int)> r);
129
255
  #else
130
- void setCompactIdResolver(const CompactIdResolverPtr&);
256
+ void setCompactIdResolver(const CompactIdResolverPtr& r);
131
257
  #endif
132
258
 
133
259
  #ifndef ICE_CPP11_MAPPING
134
- void setCollectObjects(bool);
260
+ /**
261
+ * Indicates whether to mark instances of Slice classes as collectable. If the stream is
262
+ * initialized with a communicator, this setting defaults to the value of the
263
+ * Ice.CollectObjects property, otherwise the setting defaults to false.
264
+ * @param b True to mark instances as collectable, false otherwise.
265
+ */
266
+ void setCollectObjects(bool b);
135
267
  #endif
136
268
 
137
- void setSliceValues(bool);
138
-
139
- void setTraceSlicing(bool);
140
-
141
- void setClassGraphDepthMax(size_t);
142
-
269
+ /**
270
+ * Indicates whether to slice instances of Slice classes to a known Slice type when a more
271
+ * derived type is unknown. An instance is "sliced" when no static information is available
272
+ * for a Slice type ID and no factory can be found for that type, resulting in the creation
273
+ * of an instance of a less-derived type. If slicing is disabled in this situation, the
274
+ * stream raises the exception NoValueFactoryException. The default behavior is to allow slicing.
275
+ * @param b True to enable slicing, false otherwise.
276
+ */
277
+ void setSliceValues(bool b);
278
+
279
+ /**
280
+ * Indicates whether to log messages when instances of Slice classes are sliced. If the stream
281
+ * is initialized with a communicator, this setting defaults to the value of the Ice.Trace.Slicing
282
+ * property, otherwise the setting defaults to false.
283
+ * @param b True to enable logging, false otherwise.
284
+ */
285
+ void setTraceSlicing(bool b);
286
+
287
+ /**
288
+ * Sets an upper limit on the depth of a class graph. If this limit is exceeded during
289
+ * unmarshaling, the stream raises MarshalException.
290
+ * @param n The maximum depth.
291
+ */
292
+ void setClassGraphDepthMax(size_t n);
293
+
294
+ /**
295
+ * Obtains the closure data associated with this stream.
296
+ * @return The data as a void pointer.
297
+ */
143
298
  void* getClosure() const;
144
- void* setClosure(void*);
145
-
146
- void swap(InputStream&);
147
299
 
300
+ /**
301
+ * Associates closure data with this stream.
302
+ * @param p The data as a void pointer.
303
+ * @return The previous closure data, or nil.
304
+ */
305
+ void* setClosure(void* p);
306
+
307
+ /**
308
+ * Swaps the contents of one stream with another.
309
+ *
310
+ * @param other The other stream.
311
+ */
312
+ void swap(InputStream& other);
313
+
314
+ /// \cond INTERNAL
148
315
  void resetEncapsulation();
316
+ /// \endcond
149
317
 
318
+ /**
319
+ * Resizes the stream to a new size.
320
+ *
321
+ * @param sz The new size.
322
+ */
150
323
  void resize(Container::size_type sz)
151
324
  {
152
325
  b.resize(sz);
153
326
  i = b.end();
154
327
  }
155
328
 
329
+ /**
330
+ * Marks the start of a class instance.
331
+ */
156
332
  void startValue()
157
333
  {
158
334
  assert(_currentEncaps && _currentEncaps->decoder);
159
335
  _currentEncaps->decoder->startInstance(ValueSlice);
160
336
  }
337
+
338
+ /**
339
+ * Marks the end of a class instance.
340
+ *
341
+ * @param preserve Pass true and the stream will preserve the unknown slices of the instance, or false
342
+ * to discard the unknown slices.
343
+ * @return An object that encapsulates the unknown slice data.
344
+ */
161
345
  SlicedDataPtr endValue(bool preserve)
162
346
  {
163
347
  assert(_currentEncaps && _currentEncaps->decoder);
164
348
  return _currentEncaps->decoder->endInstance(preserve);
165
349
  }
166
350
 
351
+ /**
352
+ * Marks the start of a user exception.
353
+ */
167
354
  void startException()
168
355
  {
169
356
  assert(_currentEncaps && _currentEncaps->decoder);
170
357
  _currentEncaps->decoder->startInstance(ExceptionSlice);
171
358
  }
359
+
360
+ /**
361
+ * Marks the end of a user exception.
362
+ *
363
+ * @param preserve Pass true and the stream will preserve the unknown slices of the exception, or false
364
+ * to discard the unknown slices.
365
+ * @return An object that encapsulates the unknown slice data.
366
+ */
172
367
  SlicedDataPtr endException(bool preserve)
173
368
  {
174
369
  assert(_currentEncaps && _currentEncaps->decoder);
175
370
  return _currentEncaps->decoder->endInstance(preserve);
176
371
  }
177
372
 
373
+ /**
374
+ * Reads the start of an encapsulation.
375
+ *
376
+ * @return The encoding version used by the encapsulation.
377
+ */
178
378
  const EncodingVersion& startEncapsulation()
179
379
  {
180
380
  Encaps* oldEncaps = _currentEncaps;
@@ -214,6 +414,9 @@ public:
214
414
  return _currentEncaps->encoding;
215
415
  }
216
416
 
417
+ /**
418
+ * Ends the current encapsulation.
419
+ */
217
420
  void endEncapsulation()
218
421
  {
219
422
  assert(_currentEncaps);
@@ -254,6 +457,11 @@ public:
254
457
  }
255
458
  }
256
459
 
460
+ /**
461
+ * Skips an empty encapsulation.
462
+ *
463
+ * @return The encapsulation's encoding version.
464
+ */
257
465
  EncodingVersion skipEmptyEncapsulation()
258
466
  {
259
467
  Ice::Int sz;
@@ -286,6 +494,13 @@ public:
286
494
  return encoding;
287
495
  }
288
496
 
497
+ /**
498
+ * Returns a blob of bytes representing an encapsulation.
499
+ *
500
+ * @param v A pointer into the internal marshaling buffer representing the start of the encoded encapsulation.
501
+ * @param sz The number of bytes in the encapsulation.
502
+ * @return encoding The encapsulation's encoding version.
503
+ */
289
504
  EncodingVersion readEncapsulation(const Byte*& v, Int& sz)
290
505
  {
291
506
  EncodingVersion encoding;
@@ -305,32 +520,71 @@ public:
305
520
  return encoding;
306
521
  }
307
522
 
523
+ /**
524
+ * Determines the current encoding version.
525
+ *
526
+ * @return The encoding version.
527
+ */
308
528
  const EncodingVersion& getEncoding() const
309
529
  {
310
530
  return _currentEncaps ? _currentEncaps->encoding : _encoding;
311
531
  }
312
532
 
533
+ /**
534
+ * Determines the size of the current encapsulation, excluding the encapsulation header.
535
+ *
536
+ * @return The size of the encapsulated data.
537
+ */
313
538
  Int getEncapsulationSize();
539
+
540
+ /**
541
+ * Skips over an encapsulation.
542
+ *
543
+ * @return The encoding version of the skipped encapsulation.
544
+ */
314
545
  EncodingVersion skipEncapsulation();
315
546
 
547
+ /**
548
+ * Reads the start of a value or exception slice.
549
+ *
550
+ * @return The Slice type ID for this slice.
551
+ */
316
552
  std::string startSlice()
317
553
  {
318
554
  assert(_currentEncaps && _currentEncaps->decoder);
319
555
  return _currentEncaps->decoder->startSlice();
320
556
  }
557
+
558
+ /**
559
+ * Indicates that the end of a value or exception slice has been reached.
560
+ */
321
561
  void endSlice()
322
562
  {
323
563
  assert(_currentEncaps && _currentEncaps->decoder);
324
564
  _currentEncaps->decoder->endSlice();
325
565
  }
566
+
567
+ /**
568
+ * Skips over a value or exception slice.
569
+ */
326
570
  void skipSlice()
327
571
  {
328
572
  assert(_currentEncaps && _currentEncaps->decoder);
329
573
  _currentEncaps->decoder->skipSlice();
330
574
  }
331
575
 
576
+ /**
577
+ * Indicates that unmarshaling is complete, except for any class instances. The application must call this method
578
+ * only if the stream actually contains class instances. Calling readPendingValues triggers the
579
+ * patch callbacks to inform the application that unmarshaling of an instance is complete.
580
+ */
332
581
  void readPendingValues();
333
582
 
583
+ /**
584
+ * Extracts a size from the stream.
585
+ *
586
+ * @return The extracted size.
587
+ */
334
588
  Int readSize() // Inlined for performance reasons.
335
589
  {
336
590
  Byte byte;
@@ -352,10 +606,28 @@ public:
352
606
  }
353
607
  }
354
608
 
355
- Int readAndCheckSeqSize(int);
356
-
357
- void readBlob(std::vector<Byte>&, Int);
358
-
609
+ /**
610
+ * Reads and validates a sequence size.
611
+ *
612
+ * @param minSize The minimum size required by the sequence type.
613
+ * @return The extracted size.
614
+ */
615
+ Int readAndCheckSeqSize(int minSize);
616
+
617
+ /**
618
+ * Reads a blob of bytes from the stream.
619
+ *
620
+ * @param bytes The vector to hold a copy of the bytes from the marshaling buffer.
621
+ * @param sz The number of bytes to read.
622
+ */
623
+ void readBlob(std::vector<Byte>& bytes, Int sz);
624
+
625
+ /**
626
+ * Reads a blob of bytes from the stream.
627
+ *
628
+ * @param v A pointer into the internal marshaling buffer representing the start of the blob.
629
+ * @param sz The number of bytes to read.
630
+ */
359
631
  void readBlob(const Byte*& v, Container::size_type sz)
360
632
  {
361
633
  if(sz > 0)
@@ -373,11 +645,20 @@ public:
373
645
  }
374
646
  }
375
647
 
648
+ /**
649
+ * Reads a data value from the stream.
650
+ * @param v Holds the extracted data.
651
+ */
376
652
  template<typename T> void read(T& v)
377
653
  {
378
654
  StreamHelper<T, StreamableTraits<T>::helper>::read(this, v);
379
655
  }
380
656
 
657
+ /**
658
+ * Reads an optional data value from the stream.
659
+ * @param tag The tag ID.
660
+ * @param v Holds the extracted data (if any).
661
+ */
381
662
  template<typename T> void read(Int tag, IceUtil::Optional<T>& v)
382
663
  {
383
664
  if(readOptional(tag, StreamOptionalHelper<T,
@@ -401,6 +682,10 @@ public:
401
682
 
402
683
  #ifdef ICE_CPP11_MAPPING
403
684
 
685
+ /**
686
+ * Extracts a sequence of data values from the stream.
687
+ * @param v A pair of pointers representing the beginning and end of the sequence elements.
688
+ */
404
689
  template<typename T> void read(std::pair<const T*, const T*>& v)
405
690
  {
406
691
  auto holder = new std::vector<T>;
@@ -418,23 +703,35 @@ public:
418
703
  }
419
704
  }
420
705
 
706
+ /**
707
+ * Reads a list of mandatory data values.
708
+ */
421
709
  template<typename T> void readAll(T& v)
422
710
  {
423
711
  read(v);
424
712
  }
425
713
 
714
+ /**
715
+ * Reads a list of mandatory data values.
716
+ */
426
717
  template<typename T, typename... Te> void readAll(T& v, Te&... ve)
427
718
  {
428
719
  read(v);
429
720
  readAll(ve...);
430
721
  }
431
722
 
723
+ /**
724
+ * Reads a list of optional data values.
725
+ */
432
726
  template<typename T>
433
727
  void readAll(std::initializer_list<int> tags, IceUtil::Optional<T>& v)
434
728
  {
435
729
  read(*(tags.begin() + tags.size() - 1), v);
436
730
  }
437
731
 
732
+ /**
733
+ * Reads a list of optional data values.
734
+ */
438
735
  template<typename T, typename... Te>
439
736
  void readAll(std::initializer_list<int> tags, IceUtil::Optional<T>& v, IceUtil::Optional<Te>&... ve)
440
737
  {
@@ -445,7 +742,13 @@ public:
445
742
 
446
743
  #endif
447
744
 
448
- // Read type and tag for optionals
745
+ /**
746
+ * Determine if an optional value is available for reading.
747
+ *
748
+ * @param tag The tag associated with the value.
749
+ * @param expectedFormat The optional format for the value.
750
+ * @return True if the value is present, false otherwise.
751
+ */
449
752
  bool readOptional(Int tag, OptionalFormat expectedFormat)
450
753
  {
451
754
  assert(_currentEncaps);
@@ -459,7 +762,10 @@ public:
459
762
  }
460
763
  }
461
764
 
462
- // Byte
765
+ /**
766
+ * Reads a byte from the stream.
767
+ * @param v The extracted byte.
768
+ */
463
769
  void read(Byte& v)
464
770
  {
465
771
  if(i >= b.end())
@@ -468,19 +774,38 @@ public:
468
774
  }
469
775
  v = *i++;
470
776
  }
471
- void read(std::vector<Byte>&);
472
- void read(std::pair<const Byte*, const Byte*>&);
777
+
778
+ /**
779
+ * Reads a sequence of bytes from the stream.
780
+ * @param v A vector to hold a copy of the bytes.
781
+ */
782
+ void read(std::vector<Byte>& v);
783
+
784
+ /**
785
+ * Reads a sequence of bytes from the stream.
786
+ * @param v A pair of pointers into the internal marshaling buffer representing the start and end of the
787
+ * sequence elements.
788
+ */
789
+ void read(std::pair<const Byte*, const Byte*>& v);
473
790
 
474
791
  #ifndef ICE_CPP11_MAPPING
475
- // This method is useful for generic stream helpers
476
- void read(std::pair<const Byte*, const Byte*>& p, ::IceUtil::ScopedArray<Byte>& result)
792
+ /**
793
+ * Reads a sequence of bytes from the stream.
794
+ * @param v A pair of pointers into the internal marshaling buffer representing the start and end of the
795
+ * sequence elements.
796
+ * @param arr A scoped array.
797
+ */
798
+ void read(std::pair<const Byte*, const Byte*>& v, ::IceUtil::ScopedArray<Byte>& arr)
477
799
  {
478
- result.reset();
479
- read(p);
800
+ arr.reset();
801
+ read(v);
480
802
  }
481
803
  #endif
482
804
 
483
- // Bool
805
+ /**
806
+ * Reads a bool from the stream.
807
+ * @param v The extracted bool.
808
+ */
484
809
  void read(bool& v)
485
810
  {
486
811
  if(i >= b.end())
@@ -489,24 +814,61 @@ public:
489
814
  }
490
815
  v = (0 != *i++);
491
816
  }
492
- void read(std::vector<bool>&);
817
+
818
+ /**
819
+ * Reads a sequence of boolean values from the stream.
820
+ * @param v A vector to hold a copy of the boolean values.
821
+ */
822
+ void read(std::vector<bool>& v);
493
823
 
494
824
  #ifdef ICE_CPP11_MAPPING
495
- void read(std::pair<const bool*, const bool*>&);
825
+ /**
826
+ * Reads a sequence of boolean values from the stream.
827
+ * @param v A pair of pointers into the internal marshaling buffer representing the start and end of the
828
+ * sequence elements.
829
+ */
830
+ void read(std::pair<const bool*, const bool*>& v);
496
831
  #else
497
- void read(std::pair<const bool*, const bool*>&, ::IceUtil::ScopedArray<bool>&);
832
+ /**
833
+ * Reads a sequence of boolean values from the stream.
834
+ * @param v A pair of pointers into the internal marshaling buffer representing the start and end of the
835
+ * sequence elements.
836
+ * @param arr A scoped array.
837
+ */
838
+ void read(std::pair<const bool*, const bool*>& v, ::IceUtil::ScopedArray<bool>& arr);
498
839
  #endif
499
840
 
500
- // Short
501
- void read(Short&);
502
- void read(std::vector<Short>&);
841
+ /**
842
+ * Reads a short from the stream.
843
+ * @param v The extracted short.
844
+ */
845
+ void read(Short& v);
846
+
847
+ /**
848
+ * Reads a sequence of shorts from the stream.
849
+ * @param v A vector to hold a copy of the short values.
850
+ */
851
+ void read(std::vector<Short>& v);
852
+
503
853
  #ifdef ICE_CPP11_MAPPING
504
- void read(std::pair<const short*, const short*>&);
854
+ /**
855
+ * Reads a sequence of boolean values from the stream.
856
+ * @param v A pair of pointers representing the start and end of the sequence elements.
857
+ */
858
+ void read(std::pair<const short*, const short*>& v);
505
859
  #else
506
- void read(std::pair<const Short*, const Short*>&, ::IceUtil::ScopedArray<Short>&);
860
+ /**
861
+ * Reads a sequence of shorts from the stream.
862
+ * @param v A pair of pointers representing the start and end of the sequence elements.
863
+ * @param arr A scoped array.
864
+ */
865
+ void read(std::pair<const Short*, const Short*>& v, ::IceUtil::ScopedArray<Short>& arr);
507
866
  #endif
508
867
 
509
- // Int
868
+ /**
869
+ * Reads an int from the stream.
870
+ * @param v The extracted int.
871
+ */
510
872
  void read(Int& v) // Inlined for performance reasons.
511
873
  {
512
874
  if(b.end() - i < static_cast<int>(sizeof(Int)))
@@ -530,63 +892,175 @@ public:
530
892
  #endif
531
893
  }
532
894
 
533
- void read(std::vector<Int>&);
895
+ /**
896
+ * Reads a sequence of ints from the stream.
897
+ * @param v A vector to hold a copy of the int values.
898
+ */
899
+ void read(std::vector<Int>& v);
900
+
534
901
  #ifdef ICE_CPP11_MAPPING
535
- void read(std::pair<const int*, const int*>&);
902
+ /**
903
+ * Reads a sequence of ints from the stream.
904
+ * @param v A pair of pointers representing the start and end of the sequence elements.
905
+ */
906
+ void read(std::pair<const int*, const int*>& v);
536
907
  #else
537
- void read(std::pair<const Int*, const Int*>&, ::IceUtil::ScopedArray<Int>&);
908
+ /**
909
+ * Reads a sequence of ints from the stream.
910
+ * @param v A pair of pointers representing the start and end of the sequence elements.
911
+ * @param arr A scoped array.
912
+ */
913
+ void read(std::pair<const Int*, const Int*>& v, ::IceUtil::ScopedArray<Int>& arr);
538
914
  #endif
539
915
 
540
- // Long
916
+ /**
917
+ * Reads a long from the stream.
918
+ * @param v The extracted long.
919
+ */
920
+ void read(Long& v);
921
+
922
+ /**
923
+ * Reads a sequence of longs from the stream.
924
+ * @param v A vector to hold a copy of the long values.
925
+ */
926
+ void read(std::vector<Long>& v);
541
927
 
542
- void read(Long&);
543
- void read(std::vector<Long>&);
544
928
  #ifdef ICE_CPP11_MAPPING
545
- void read(std::pair<const long long*, const long long*>&);
929
+ /**
930
+ * Reads a sequence of longs from the stream.
931
+ * @param v A pair of pointers representing the start and end of the sequence elements.
932
+ */
933
+ void read(std::pair<const long long*, const long long*>& v);
546
934
  #else
547
- void read(std::pair<const Long*, const Long*>&, ::IceUtil::ScopedArray<Long>&);
935
+ /**
936
+ * Reads a sequence of longs from the stream.
937
+ * @param v A pair of pointers representing the start and end of the sequence elements.
938
+ * @param arr A scoped array.
939
+ */
940
+ void read(std::pair<const Long*, const Long*>& v, ::IceUtil::ScopedArray<Long>& arr);
548
941
  #endif
549
942
 
550
- // Float
551
- void read(Float&);
552
- void read(std::vector<Float>&);
943
+ /**
944
+ * Reads a float from the stream.
945
+ * @param v The extracted float.
946
+ */
947
+ void read(Float& v);
948
+
949
+ /**
950
+ * Reads a sequence of floats from the stream.
951
+ * @param v A vector to hold a copy of the float values.
952
+ */
953
+ void read(std::vector<Float>& v);
954
+
553
955
  #ifdef ICE_CPP11_MAPPING
554
- void read(std::pair<const float*, const float*>&);
956
+ /**
957
+ * Reads a sequence of floats from the stream.
958
+ * @param v A pair of pointers representing the start and end of the sequence elements.
959
+ */
960
+ void read(std::pair<const float*, const float*>& v);
555
961
  #else
556
- void read(std::pair<const Float*, const Float*>&, ::IceUtil::ScopedArray<Float>&);
962
+ /**
963
+ * Reads a sequence of floats from the stream.
964
+ * @param v A pair of pointers representing the start and end of the sequence elements.
965
+ * @param arr A scoped array.
966
+ */
967
+ void read(std::pair<const Float*, const Float*>& v, ::IceUtil::ScopedArray<Float>& arr);
557
968
  #endif
558
969
 
559
- // Double
560
- void read(Double&);
561
- void read(std::vector<Double>&);
970
+ /**
971
+ * Reads a double from the stream.
972
+ * @param v The extracted double.
973
+ */
974
+ void read(Double& v);
975
+
976
+ /**
977
+ * Reads a sequence of doubles from the stream.
978
+ * @param v A vector to hold a copy of the double values.
979
+ */
980
+ void read(std::vector<Double>& v);
981
+
562
982
  #ifdef ICE_CPP11_MAPPING
563
- void read(std::pair<const double*, const double*>&);
983
+ /**
984
+ * Reads a sequence of doubles from the stream.
985
+ * @param v A pair of pointers representing the start and end of the sequence elements.
986
+ */
987
+ void read(std::pair<const double*, const double*>& v);
564
988
  #else
565
- void read(std::pair<const Double*, const Double*>&, ::IceUtil::ScopedArray<Double>&);
989
+ /**
990
+ * Reads a sequence of doubles from the stream.
991
+ * @param v A pair of pointers representing the start and end of the sequence elements.
992
+ * @param arr A scoped array.
993
+ */
994
+ void read(std::pair<const Double*, const Double*>& v, ::IceUtil::ScopedArray<Double>& arr);
566
995
  #endif
567
996
 
568
- // String
997
+ /**
998
+ * Reads a string from the stream.
999
+ * @param v The extracted string.
1000
+ * @param convert Determines whether the string is processed by the string converter, if one
1001
+ * is installed. The default behavior is to convert strings.
1002
+ */
569
1003
  void read(std::string& v, bool convert = true);
570
1004
 
571
1005
  #ifdef ICE_CPP11_MAPPING
1006
+ /**
1007
+ * Reads a string from the stream.
1008
+ * @param vdata A pointer to the beginning of the string.
1009
+ * @param vsize The number of bytes in the string.
1010
+ * @param convert Determines whether the string is processed by the string converter, if one
1011
+ * is installed. The default behavior is to convert strings.
1012
+ */
572
1013
  void read(const char*& vdata, size_t& vsize, bool convert = true);
573
1014
  #else
574
1015
  // For custom strings, convert = false
1016
+ /**
1017
+ * Reads a string from the stream. String conversion is disabled.
1018
+ * @param vdata A pointer to the beginning of the string.
1019
+ * @param vsize The number of bytes in the string.
1020
+ */
575
1021
  void read(const char*& vdata, size_t& vsize);
576
1022
 
577
1023
  // For custom strings, convert = true
1024
+ /**
1025
+ * Reads a string from the stream. String conversion is enabled.
1026
+ * @param vdata A pointer to the beginning of the string.
1027
+ * @param vsize The number of bytes in the string.
1028
+ * @param holder Holds the string contents.
1029
+ */
578
1030
  void read(const char*& vdata, size_t& vsize, std::string& holder);
579
1031
  #endif
580
1032
 
581
- void read(std::vector<std::string>&, bool = true);
582
-
583
- void read(std::wstring&);
584
- void read(std::vector<std::wstring>&);
1033
+ /**
1034
+ * Reads a sequence of strings from the stream.
1035
+ * @param v The extracted string sequence.
1036
+ * @param convert Determines whether strings are processed by the string converter, if one
1037
+ * is installed. The default behavior is to convert the strings.
1038
+ */
1039
+ void read(std::vector<std::string>& v, bool convert = true);
1040
+
1041
+ /**
1042
+ * Reads a wide string from the stream.
1043
+ * @param v The extracted string.
1044
+ */
1045
+ void read(std::wstring& v);
1046
+
1047
+ /**
1048
+ * Reads a sequence of wide strings from the stream.
1049
+ * @param v The extracted sequence.
1050
+ */
1051
+ void read(std::vector<std::wstring>& v);
585
1052
 
586
- // Proxy
587
1053
  #ifdef ICE_CPP11_MAPPING
1054
+ /**
1055
+ * Reads a proxy from the stream.
1056
+ * @return The proxy as the base ObjectPrx type.
1057
+ */
588
1058
  std::shared_ptr<ObjectPrx> readProxy();
589
1059
 
1060
+ /**
1061
+ * Reads a typed proxy from the stream.
1062
+ * @param v The proxy as a user-defined type.
1063
+ */
590
1064
  template<typename T, typename ::std::enable_if<::std::is_base_of<ObjectPrx, T>::value>::type* = nullptr>
591
1065
  void read(::std::shared_ptr<T>& v)
592
1066
  {
@@ -602,14 +1076,26 @@ public:
602
1076
  }
603
1077
  }
604
1078
  #else
605
- void read(ObjectPrx&);
1079
+ /**
1080
+ * Reads a proxy from the stream.
1081
+ * @param v The proxy as the base ObjectPrx type.
1082
+ */
1083
+ void read(ObjectPrx& v);
1084
+
1085
+ /**
1086
+ * Reads a typed proxy from the stream.
1087
+ * @param v The proxy as a user-defined type.
1088
+ */
606
1089
  template<typename T> void read(IceInternal::ProxyHandle<T>& v)
607
1090
  {
608
1091
  _readProxy(this, v); // Generated _readProxy method, necessary for forward declarations.
609
1092
  }
610
1093
  #endif
611
1094
 
612
- // Class
1095
+ /**
1096
+ * Reads a value (instance of a Slice class) from the stream.
1097
+ * @param v The instance.
1098
+ */
613
1099
  #ifdef ICE_CPP11_MAPPING // C++11 mapping
614
1100
  template<typename T, typename ::std::enable_if<::std::is_base_of<Value, T>::value>::type* = nullptr>
615
1101
  void read(::std::shared_ptr<T>& v)
@@ -623,23 +1109,48 @@ public:
623
1109
  }
624
1110
  #endif
625
1111
 
1112
+ /**
1113
+ * Reads a value (instance of a Slice class) from the stream.
1114
+ * @param patchFunc The patch callback function.
1115
+ * @param patchAddr Closure data passed to the callback.
1116
+ */
626
1117
  void read(PatchFunc patchFunc, void* patchAddr)
627
1118
  {
628
1119
  initEncaps();
629
1120
  _currentEncaps->decoder->read(patchFunc, patchAddr);
630
1121
  }
631
1122
 
632
- // Enum
633
- Int readEnum(Int);
634
-
635
- // Exception
636
- void throwException(ICE_IN(ICE_DELEGATE(UserExceptionFactory)) = ICE_NULLPTR);
637
-
638
- // Read/write/skip optionals
639
- void skipOptional(OptionalFormat);
1123
+ /**
1124
+ * Reads an enumerator from the stream.
1125
+ * @param maxValue The maximum enumerator value in the definition.
1126
+ * @return The enumerator value.
1127
+ */
1128
+ Int readEnum(Int maxValue);
1129
+
1130
+ /**
1131
+ * Extracts a user exception from the stream and throws it.
1132
+ * @param factory If provided, this factory is given the first opportunity to instantiate
1133
+ * the exception. If not provided, or if the factory does not throw an exception when invoked,
1134
+ * the stream will attempt to instantiate the exception using static type information.
1135
+ * @throws UserException The user exception that was unmarshaled.
1136
+ */
1137
+ void throwException(ICE_IN(ICE_DELEGATE(UserExceptionFactory)) factory = ICE_NULLPTR);
1138
+
1139
+ /**
1140
+ * Skips one optional value with the given format.
1141
+ * @param format The expected format of the optional, if present.
1142
+ */
1143
+ void skipOptional(OptionalFormat format);
1144
+
1145
+ /**
1146
+ * Skips all remaining optional values.
1147
+ */
640
1148
  void skipOptionals();
641
1149
 
642
- // Skip bytes from the stream
1150
+ /**
1151
+ * Advances the current stream position by the given number of bytes.
1152
+ * @param size The number of bytes to skip.
1153
+ */
643
1154
  void skip(size_type size)
644
1155
  {
645
1156
  if(i + size > b.end())
@@ -648,6 +1159,10 @@ public:
648
1159
  }
649
1160
  i += size;
650
1161
  }
1162
+
1163
+ /**
1164
+ * Reads a size at the current position and skips that number of bytes.
1165
+ */
651
1166
  void skipSize()
652
1167
  {
653
1168
  Byte bt;
@@ -658,22 +1173,32 @@ public:
658
1173
  }
659
1174
  }
660
1175
 
1176
+ /**
1177
+ * Obtains the current position of the stream.
1178
+ * @return The current position.
1179
+ */
661
1180
  size_type pos()
662
1181
  {
663
1182
  return i - b.begin();
664
1183
  }
665
1184
 
1185
+ /**
1186
+ * Sets a new position for the stream.
1187
+ * @param p The new position.
1188
+ */
666
1189
  void pos(size_type p)
667
1190
  {
668
1191
  i = b.begin() + p;
669
1192
  }
670
1193
 
1194
+ /// \cond INTERNAL
671
1195
  InputStream(IceInternal::Instance*, const EncodingVersion&);
672
1196
  InputStream(IceInternal::Instance*, const EncodingVersion&, IceInternal::Buffer&, bool = false);
673
1197
 
674
1198
  void initialize(IceInternal::Instance*, const EncodingVersion&);
675
1199
 
676
1200
  bool readOptImpl(Int, OptionalFormat);
1201
+ /// \endcond
677
1202
 
678
1203
  private:
679
1204