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.
@@ -18,12 +18,16 @@ namespace Ice
18
18
 
19
19
  class Object;
20
20
  #ifdef ICE_CPP11_MAPPING
21
+ /// \cond INTERNAL
21
22
  using ObjectPtr = ::std::shared_ptr<Object>;
23
+ /// \endcond
22
24
  #else
23
25
  ICE_API Object* upCast(Object*);
24
26
  typedef IceInternal::Handle<Object> ObjectPtr;
25
27
  typedef ObjectPtr ValuePtr;
28
+ /// \cond INTERNAL
26
29
  ICE_API void _icePatchObjectPtr(ObjectPtr&, const ObjectPtr&);
30
+ /// \endcond
27
31
  #endif
28
32
 
29
33
  }
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -1041,8 +1041,13 @@ namespace std
1041
1041
  # undef TR2_OPTIONAL_REQUIRES
1042
1042
  # undef TR2_OPTIONAL_ASSERTED_EXPRESSION
1043
1043
 
1044
- namespace Ice{
1044
+ namespace Ice
1045
+ {
1045
1046
 
1047
+ /**
1048
+ * Ice::optional is a placeholder for std::optional.
1049
+ * Refer to http://en.cppreference.com/w/cpp/utility/optional for more information.
1050
+ */
1046
1051
  template<class T> using optional = std::experimental::Ice::optional<T>;
1047
1052
 
1048
1053
  using std::experimental::Ice::operator==;
@@ -1052,25 +1057,36 @@ using std::experimental::Ice::operator<=;
1052
1057
  using std::experimental::Ice::operator>;
1053
1058
  using std::experimental::Ice::operator>=;
1054
1059
 
1060
+ /** Creates an optional object. */
1055
1061
  using std::experimental::Ice::make_optional;
1062
+ /** Exchanges the state of an optional object with another one. */
1056
1063
  using std::experimental::Ice::swap;
1057
1064
 
1065
+ /** This type indicates that no value is provided. */
1058
1066
  using nullopt_t = std::experimental::Ice::nullopt_t;
1067
+ /** An instance of nullopt_t used as a marker value to indicate that no value is provided. */
1059
1068
  using std::experimental::Ice::nullopt;
1060
1069
 
1070
+ /** Raised when accessing an optional that doesn't contain a value. */
1061
1071
  using bad_optional_access = std::experimental::Ice::bad_optional_access;
1062
1072
 
1073
+ /** This type indicates that an optional value should be constructed in place. */
1063
1074
  using in_place_t = std::experimental::Ice::in_place_t;
1075
+ /** An instance of in_place_t that indicates that an optional value should be constructed in place. */
1064
1076
  using std::experimental::Ice::in_place;
1065
1077
 
1066
1078
  }
1067
1079
 
1068
- //
1069
- // For compatibility with the Ice C++98 mapping, do not use in new code:
1070
- //
1071
- namespace IceUtil{
1080
+ namespace IceUtil
1081
+ {
1072
1082
 
1083
+ /**
1084
+ * For compatibility with the Ice C++98 mapping, do not use in new code:
1085
+ */
1073
1086
  template<class T> using Optional = std::experimental::Ice::optional<T>;
1087
+ /**
1088
+ * For compatibility with the Ice C++98 mapping, do not use in new code:
1089
+ */
1074
1090
  constexpr std::experimental::Ice::nullopt_t None{std::experimental::Ice::nullopt_t::init()};
1075
1091
 
1076
1092
  }
@@ -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.
@@ -805,6 +805,13 @@ namespace Ice
805
805
 
806
806
  typedef IceUtil::Handle< ::IceInternal::GenericCallbackBase> CallbackPtr;
807
807
 
808
+ /**
809
+ * Creates a callback wrapper instance that delegates to your object.
810
+ * @param instance The callback object.
811
+ * @param cb The completion callback.
812
+ * @param sentcb The sent callback.
813
+ * @return A callback object that can be passed to an asynchronous invocation.
814
+ */
808
815
  template<class T> CallbackPtr
809
816
  newCallback(const IceUtil::Handle<T>& instance,
810
817
  void (T::*cb)(const AsyncResultPtr&),
@@ -813,6 +820,13 @@ newCallback(const IceUtil::Handle<T>& instance,
813
820
  return new ::IceInternal::AsyncCallback<T>(instance, cb, sentcb);
814
821
  }
815
822
 
823
+ /**
824
+ * Creates a callback wrapper instance that delegates to your object.
825
+ * @param instance The callback object.
826
+ * @param cb The completion callback.
827
+ * @param sentcb The sent callback.
828
+ * @return A callback object that can be passed to an asynchronous invocation.
829
+ */
816
830
  template<class T> CallbackPtr
817
831
  newCallback(T* instance,
818
832
  void (T::*cb)(const AsyncResultPtr&),
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -25,35 +25,45 @@ namespace Ice
25
25
 
26
26
  class UserException;
27
27
 
28
+ /**
29
+ * Interface for output streams used to create a sequence of bytes from Slice types.
30
+ * \headerfile Ice/Ice.h
31
+ */
28
32
  class ICE_API OutputStream : public IceInternal::Buffer
29
33
  {
30
34
  public:
31
35
 
32
36
  typedef size_t size_type;
33
37
 
34
- //
35
- // Constructing an OutputStream without providing a communicator means the stream will
36
- // use the default encoding version, the default format for class encoding, and the
37
- // process string converters. You can supply a communicator later by calling initialize().
38
- //
38
+ /**
39
+ * Constructs an OutputStream using the latest encoding version, the default format for
40
+ * class encoding, and the process string converters. You can supply a communicator later
41
+ * by calling initialize().
42
+ */
39
43
  OutputStream();
40
44
 
41
- //
42
- // This constructor uses the communicator's default encoding version.
43
- //
44
- OutputStream(const CommunicatorPtr&);
45
-
46
- //
47
- // This constructor uses the given communicator and encoding version.
48
- //
49
- OutputStream(const CommunicatorPtr&, const EncodingVersion&);
50
-
51
- //
52
- // This constructor uses the given communicator and encoding version. The byte pair denotes
53
- // application-supplied memory that the stream uses as its initial marshaling buffer. The
54
- // stream will reallocate if the size of the marshaled data exceeds the application's buffer.
55
- //
56
- OutputStream(const CommunicatorPtr&, const EncodingVersion&, const std::pair<const Byte*, const Byte*>&);
45
+ /**
46
+ * Constructs a stream using the communicator's default encoding version.
47
+ * @param communicator The communicator to use for marshaling tasks.
48
+ */
49
+ OutputStream(const CommunicatorPtr& communicator);
50
+
51
+ /**
52
+ * Constructs a stream using the given communicator and encoding version.
53
+ * @param communicator The communicator to use for marshaling tasks.
54
+ * @param version The encoding version used to encode the data.
55
+ */
56
+ OutputStream(const CommunicatorPtr& communicator, const EncodingVersion& version);
57
+
58
+ /**
59
+ * Constructs a stream using the given communicator and encoding version.
60
+ * @param communicator The communicator to use for marshaling tasks.
61
+ * @param version The encoding version used to encode the data.
62
+ * @param bytes Application-supplied memory that the stream uses as its initial marshaling buffer. The
63
+ * stream will reallocate if the size of the marshaled data exceeds the application's buffer.
64
+ */
65
+ OutputStream(const CommunicatorPtr& communicator, const EncodingVersion& version,
66
+ const std::pair<const Byte*, const Byte*>& bytes);
57
67
 
58
68
  ~OutputStream()
59
69
  {
@@ -65,63 +75,128 @@ public:
65
75
  }
66
76
  }
67
77
 
68
- //
69
- // Initializes the stream to use the communicator's default encoding version and class
70
- // encoding format
71
- //
72
- void initialize(const CommunicatorPtr&);
73
-
74
- //
75
- // Initializes the stream to use the given encoding version and the communicator's
76
- // default class encoding format and string converters.
77
- //
78
- void initialize(const CommunicatorPtr&, const EncodingVersion&);
79
-
78
+ /**
79
+ * Initializes the stream to use the communicator's default encoding version, class
80
+ * encoding format and string converters. Use this method if you originally constructed
81
+ * the stream without a communicator.
82
+ * @param communicator The communicator to use for marshaling tasks.
83
+ */
84
+ void initialize(const CommunicatorPtr& communicator);
85
+
86
+ /**
87
+ * Initializes the stream to use the given encoding version and the communicator's
88
+ * default class encoding format and string converters. Use this method if you
89
+ * originally constructed the stream without a communicator.
90
+ * @param communicator The communicator to use for marshaling tasks.
91
+ * @param version The encoding version used to encode the data.
92
+ */
93
+ void initialize(const CommunicatorPtr& communicator, const EncodingVersion& version);
94
+
95
+ /**
96
+ * Releases any data retained by encapsulations.
97
+ */
80
98
  void clear();
81
99
 
100
+ /// \cond INTERNAL
82
101
  //
83
102
  // Must return Instance*, because we don't hold an InstancePtr for
84
103
  // optimization reasons (see comments below).
85
104
  //
86
105
  IceInternal::Instance* instance() const { return _instance; } // Inlined for performance reasons.
87
-
88
- void setFormat(FormatType);
89
-
106
+ /// \endcond
107
+
108
+ /**
109
+ * Sets the class encoding format.
110
+ * @param format The encoding format.
111
+ */
112
+ void setFormat(FormatType format);
113
+
114
+ /**
115
+ * Obtains the closure data associated with this stream.
116
+ * @return The data as a void pointer.
117
+ */
90
118
  void* getClosure() const;
91
- void* setClosure(void*);
92
119
 
93
- void swap(OutputStream&);
120
+ /**
121
+ * Associates closure data with this stream.
122
+ * @param p The data as a void pointer.
123
+ * @return The previous closure data, or nil.
124
+ */
125
+ void* setClosure(void* p);
126
+
127
+ /**
128
+ * Swaps the contents of one stream with another.
129
+ *
130
+ * @param other The other stream.
131
+ */
132
+ void swap(OutputStream& other);
133
+
134
+ /// \cond INTERNAL
94
135
  void resetEncapsulation();
136
+ /// \endcond
95
137
 
138
+ /**
139
+ * Resizes the stream to a new size.
140
+ *
141
+ * @param sz The new size.
142
+ */
96
143
  void resize(Container::size_type sz)
97
144
  {
98
145
  b.resize(sz);
99
146
  }
100
147
 
148
+ /**
149
+ * Marks the start of a class instance.
150
+ * @param data Contains the marshaled form of unknown slices from this instance. If not nil,
151
+ * these slices will be marshaled with the instance.
152
+ */
101
153
  void startValue(const SlicedDataPtr& data)
102
154
  {
103
155
  assert(_currentEncaps && _currentEncaps->encoder);
104
156
  _currentEncaps->encoder->startInstance(ValueSlice, data);
105
157
  }
158
+
159
+ /**
160
+ * Marks the end of a class instance.
161
+ */
106
162
  void endValue()
107
163
  {
108
164
  assert(_currentEncaps && _currentEncaps->encoder);
109
165
  _currentEncaps->encoder->endInstance();
110
166
  }
111
167
 
168
+ /**
169
+ * Marks the start of an exception instance.
170
+ * @param data Contains the marshaled form of unknown slices from this instance. If not nil,
171
+ * these slices will be marshaled with the instance.
172
+ */
112
173
  void startException(const SlicedDataPtr& data)
113
174
  {
114
175
  assert(_currentEncaps && _currentEncaps->encoder);
115
176
  _currentEncaps->encoder->startInstance(ExceptionSlice, data);
116
177
  }
178
+
179
+ /**
180
+ * Marks the end of an exception instance.
181
+ */
117
182
  void endException()
118
183
  {
119
184
  assert(_currentEncaps && _currentEncaps->encoder);
120
185
  _currentEncaps->encoder->endInstance();
121
186
  }
122
187
 
188
+ /**
189
+ * Writes the start of an encapsulation using the default encoding version and
190
+ * class encoding format.
191
+ */
123
192
  void startEncapsulation();
124
193
 
194
+ /**
195
+ * Writes the start of an encapsulation using the given encoding version and
196
+ * class encoding format.
197
+ * @param encoding The encoding version to use for the encapsulation.
198
+ * @param format The class format to use for the encapsulation.
199
+ */
125
200
  void startEncapsulation(const EncodingVersion& encoding, FormatType format)
126
201
  {
127
202
  IceInternal::checkSupportedEncoding(encoding);
@@ -143,6 +218,10 @@ public:
143
218
  write(Int(0)); // Placeholder for the encapsulation length.
144
219
  write(_currentEncaps->encoding);
145
220
  }
221
+
222
+ /**
223
+ * Ends the current encapsulation.
224
+ */
146
225
  void endEncapsulation()
147
226
  {
148
227
  assert(_currentEncaps);
@@ -163,12 +242,22 @@ public:
163
242
  }
164
243
  }
165
244
 
245
+ /**
246
+ * Writes an empty encapsulation using the given encoding version.
247
+ * @param encoding The encoding version to use for the encapsulation.
248
+ */
166
249
  void writeEmptyEncapsulation(const EncodingVersion& encoding)
167
250
  {
168
251
  IceInternal::checkSupportedEncoding(encoding);
169
252
  write(Int(6)); // Size
170
253
  write(encoding);
171
254
  }
255
+
256
+ /**
257
+ * Copies the marshaled form of an encapsulation to the buffer.
258
+ * @param v The start of the buffer.
259
+ * @param sz The number of bytes to copy.
260
+ */
172
261
  void writeEncapsulation(const Byte* v, Int sz)
173
262
  {
174
263
  if(sz < 6)
@@ -181,24 +270,50 @@ public:
181
270
  memcpy(&b[position], &v[0], sz);
182
271
  }
183
272
 
273
+ /**
274
+ * Determines the current encoding version.
275
+ *
276
+ * @return The encoding version.
277
+ */
184
278
  const EncodingVersion& getEncoding() const
185
279
  {
186
280
  return _currentEncaps ? _currentEncaps->encoding : _encoding;
187
281
  }
188
282
 
283
+ /**
284
+ * Writes the start of a value or exception slice.
285
+ *
286
+ * @param typeId The Slice type ID for this slice.
287
+ * @param compactId The compact ID corresponding to the type, or -1 if no compact ID is used.
288
+ * @param last True if this is the last slice, false otherwise.
289
+ */
189
290
  void startSlice(const std::string& typeId, int compactId, bool last)
190
291
  {
191
292
  assert(_currentEncaps && _currentEncaps->encoder);
192
293
  _currentEncaps->encoder->startSlice(typeId, compactId, last);
193
294
  }
295
+
296
+ /**
297
+ * Marks the end of a value or exception slice.
298
+ */
194
299
  void endSlice()
195
300
  {
196
301
  assert(_currentEncaps && _currentEncaps->encoder);
197
302
  _currentEncaps->encoder->endSlice();
198
303
  }
199
304
 
305
+ /**
306
+ * Encodes the state of class instances whose insertion was delayed during a previous
307
+ * call to write. This member function must only be called once. For backward
308
+ * compatibility with encoding version 1.0, this function must only be called when
309
+ * non-optional data members or parameters use class types.
310
+ */
200
311
  void writePendingValues();
201
312
 
313
+ /**
314
+ * Writes a size value.
315
+ * @param v A non-negative integer.
316
+ */
202
317
  void writeSize(Int v) // Inlined for performance reasons.
203
318
  {
204
319
  assert(v >= 0);
@@ -212,6 +327,13 @@ public:
212
327
  write(static_cast<Byte>(v));
213
328
  }
214
329
  }
330
+
331
+ /**
332
+ * Replaces a size value at the given destination in the stream. This function
333
+ * does not change the stream's current position.
334
+ * @param v A non-negative integer representing the size.
335
+ * @param dest The buffer destination for the size.
336
+ */
215
337
  void rewriteSize(Int v, Container::iterator dest)
216
338
  {
217
339
  assert(v >= 0);
@@ -226,6 +348,12 @@ public:
226
348
  }
227
349
  }
228
350
 
351
+ /**
352
+ * Writes a placeholder value for the size and returns the starting position of the
353
+ * size value; after writing the data, call endSize to patch the placeholder with
354
+ * the actual size at the given position.
355
+ * @return The starting position of the size value.
356
+ */
229
357
  size_type startSize()
230
358
  {
231
359
  size_type position = b.size();
@@ -233,13 +361,27 @@ public:
233
361
  return position;
234
362
  }
235
363
 
364
+ /**
365
+ * Updates the size value at the given position to contain a size based on the
366
+ * stream's current position.
367
+ * @param position The starting position of the size value as returned by startSize.
368
+ */
236
369
  void endSize(size_type position)
237
370
  {
238
371
  rewrite(static_cast<Int>(b.size() - position) - 4, position);
239
372
  }
240
373
 
241
- void writeBlob(const std::vector<Byte>&);
242
-
374
+ /**
375
+ * Copies the specified blob of bytes to the stream without modification.
376
+ * @param v The bytes to be copied.
377
+ */
378
+ void writeBlob(const std::vector<Byte>& v);
379
+
380
+ /**
381
+ * Copies the specified blob of bytes to the stream without modification.
382
+ * @param v The start of the buffer to be copied.
383
+ * @param sz The number of bytes to be copied.
384
+ */
243
385
  void writeBlob(const Byte* v, Container::size_type sz)
244
386
  {
245
387
  if(sz > 0)
@@ -250,11 +392,20 @@ public:
250
392
  }
251
393
  }
252
394
 
395
+ /**
396
+ * Writes a data value to the stream.
397
+ * @param v The data value to be written.
398
+ */
253
399
  template<typename T> void write(const T& v)
254
400
  {
255
401
  StreamHelper<T, StreamableTraits<T>::helper>::write(this, v);
256
402
  }
257
403
 
404
+ /**
405
+ * Writes an optional data value to the stream.
406
+ * @param tag The tag ID.
407
+ * @param v The data value to be written (if any).
408
+ */
258
409
  template<typename T> void write(Int tag, const IceUtil::Optional<T>& v)
259
410
  {
260
411
  if(!v)
@@ -272,9 +423,10 @@ public:
272
423
  }
273
424
  }
274
425
 
275
- //
276
- // Template functions for sequences and custom sequences
277
- //
426
+ /**
427
+ * Writes a sequence of data values to the stream.
428
+ * @param v The sequence to be written.
429
+ */
278
430
  template<typename T> void write(const std::vector<T>& v)
279
431
  {
280
432
  if(v.empty())
@@ -287,6 +439,11 @@ public:
287
439
  }
288
440
  }
289
441
 
442
+ /**
443
+ * Writes a sequence of data values to the stream.
444
+ * @param begin The beginning of the sequence.
445
+ * @param end The end of the sequence.
446
+ */
290
447
  template<typename T> void write(const T* begin, const T* end)
291
448
  {
292
449
  writeSize(static_cast<Int>(end - begin));
@@ -298,17 +455,26 @@ public:
298
455
 
299
456
  #ifdef ICE_CPP11_MAPPING
300
457
 
458
+ /**
459
+ * Writes a list of mandatory data values.
460
+ */
301
461
  template<typename T> void writeAll(const T& v)
302
462
  {
303
463
  write(v);
304
464
  }
305
465
 
466
+ /**
467
+ * Writes a list of mandatory data values.
468
+ */
306
469
  template<typename T, typename... Te> void writeAll(const T& v, const Te&... ve)
307
470
  {
308
471
  write(v);
309
472
  writeAll(ve...);
310
473
  }
311
474
 
475
+ /**
476
+ * Writes a list of mandatory data values.
477
+ */
312
478
  template<size_t I = 0, typename... Te>
313
479
  typename std::enable_if<I == sizeof...(Te), void>::type
314
480
  writeAll(std::tuple<Te...>)
@@ -316,6 +482,9 @@ public:
316
482
  // Do nothing. Either tuple is empty or we are at the end.
317
483
  }
318
484
 
485
+ /**
486
+ * Writes a list of mandatory data values.
487
+ */
319
488
  template<size_t I = 0, typename... Te>
320
489
  typename std::enable_if<I < sizeof...(Te), void>::type
321
490
  writeAll(std::tuple<Te...> tuple)
@@ -324,12 +493,18 @@ public:
324
493
  writeAll<I + 1, Te...>(tuple);
325
494
  }
326
495
 
496
+ /**
497
+ * Writes a list of optional data values.
498
+ */
327
499
  template<typename T>
328
500
  void writeAll(std::initializer_list<int> tags, const IceUtil::Optional<T>& v)
329
501
  {
330
502
  write(*(tags.begin() + tags.size() - 1), v);
331
503
  }
332
504
 
505
+ /**
506
+ * Writes a list of optional data values.
507
+ */
333
508
  template<typename T, typename... Te>
334
509
  void writeAll(std::initializer_list<int> tags, const IceUtil::Optional<T>& v, const IceUtil::Optional<Te>&... ve)
335
510
  {
@@ -340,7 +515,13 @@ public:
340
515
 
341
516
  #endif
342
517
 
343
- // Write type and tag for optionals
518
+ /**
519
+ * Writes the tag and format of an optional value.
520
+ * @param tag The optional tag ID.
521
+ * @param format The optional format.
522
+ * @return True if the current encoding version supports optional values, false otherwise.
523
+ * If true, the data associated with the optional value must be written next.
524
+ */
344
525
  bool writeOptional(Int tag, OptionalFormat format)
345
526
  {
346
527
  assert(_currentEncaps);
@@ -354,32 +535,74 @@ public:
354
535
  }
355
536
  }
356
537
 
357
- // Byte
538
+ /**
539
+ * Writes a byte to the stream.
540
+ * @param v The byte to write.
541
+ */
358
542
  void write(Byte v)
359
543
  {
360
544
  b.push_back(v);
361
545
  }
362
- void write(const Byte*, const Byte*);
363
546
 
364
- // Bool
547
+ /**
548
+ * Writes a byte sequence to the stream.
549
+ * @param start The beginning of the sequence.
550
+ * @param end The end of the sequence.
551
+ */
552
+ void write(const Byte* start, const Byte* end);
553
+
554
+ /**
555
+ * Writes a boolean to the stream.
556
+ * @param v The boolean to write.
557
+ */
365
558
  void write(bool v)
366
559
  {
367
560
  b.push_back(static_cast<Byte>(v));
368
561
  }
369
- void write(const std::vector<bool>&);
370
- void write(const bool*, const bool*);
371
-
372
- // Short
373
- void write(Short);
374
- void write(const Short*, const Short*);
375
562
 
376
- // Int
563
+ /**
564
+ * Writes a byte sequence to the stream.
565
+ * @param v The sequence to be written.
566
+ */
567
+ void write(const std::vector<bool>& v);
568
+
569
+ /**
570
+ * Writes a byte sequence to the stream.
571
+ * @param begin The beginning of the sequence.
572
+ * @param end The end of the sequence.
573
+ */
574
+ void write(const bool* begin, const bool* end);
575
+
576
+ /**
577
+ * Writes a short to the stream.
578
+ * @param v The short to write.
579
+ */
580
+ void write(Short v);
581
+
582
+ /**
583
+ * Writes a short sequence to the stream.
584
+ * @param begin The beginning of the sequence.
585
+ * @param end The end of the sequence.
586
+ */
587
+ void write(const Short* begin, const Short* end);
588
+
589
+ /**
590
+ * Writes an int to the stream.
591
+ * @param v The int to write.
592
+ */
377
593
  void write(Int v) // Inlined for performance reasons.
378
594
  {
379
595
  Container::size_type position = b.size();
380
596
  resize(position + sizeof(Int));
381
597
  write(v, &b[position]);
382
598
  }
599
+
600
+ /**
601
+ * Overwrites a 32-bit integer value at the given destination in the stream.
602
+ * This function does not change the stream's current position.
603
+ * @param v The integer value to be written.
604
+ * @param dest The buffer destination for the integer value.
605
+ */
383
606
  void write(Int v, Container::iterator dest)
384
607
  {
385
608
  #ifdef ICE_BIG_ENDIAN
@@ -397,21 +620,58 @@ public:
397
620
  #endif
398
621
  }
399
622
 
400
- void write(const Int*, const Int*);
401
-
402
- // Long
403
- void write(Long);
404
- void write(const Long*, const Long*);
405
-
406
- // Float
407
- void write(Float);
408
- void write(const Float*, const Float*);
409
-
410
- // Double
411
- void write(Double);
412
- void write(const Double*, const Double*);
413
-
414
- // String
623
+ /**
624
+ * Writes an int sequence to the stream.
625
+ * @param begin The beginning of the sequence.
626
+ * @param end The end of the sequence.
627
+ */
628
+ void write(const Int* begin, const Int* end);
629
+
630
+ /**
631
+ * Writes a long to the stream.
632
+ * @param v The long to write.
633
+ */
634
+ void write(Long v);
635
+
636
+ /**
637
+ * Writes a long sequence to the stream.
638
+ * @param begin The beginning of the sequence.
639
+ * @param end The end of the sequence.
640
+ */
641
+ void write(const Long* begin, const Long* end);
642
+
643
+ /**
644
+ * Writes a float to the stream.
645
+ * @param v The float to write.
646
+ */
647
+ void write(Float v);
648
+
649
+ /**
650
+ * Writes a float sequence to the stream.
651
+ * @param begin The beginning of the sequence.
652
+ * @param end The end of the sequence.
653
+ */
654
+ void write(const Float* begin, const Float* end);
655
+
656
+ /**
657
+ * Writes a double to the stream.
658
+ * @param v The double to write.
659
+ */
660
+ void write(Double v);
661
+
662
+ /**
663
+ * Writes a double sequence to the stream.
664
+ * @param begin The beginning of the sequence.
665
+ * @param end The end of the sequence.
666
+ */
667
+ void write(const Double* begin, const Double* end);
668
+
669
+ /**
670
+ * Writes a string to the stream.
671
+ * @param v The string to write.
672
+ * @param convert Determines whether the string is processed by the narrow string converter,
673
+ * if one has been configured. The default behavior is to convert the strings.
674
+ */
415
675
  void write(const std::string& v, bool convert = true)
416
676
  {
417
677
  Int sz = static_cast<Int>(v.size());
@@ -431,7 +691,13 @@ public:
431
691
  }
432
692
  }
433
693
 
434
- // for custom strings
694
+ /**
695
+ * Writes a string to the stream.
696
+ * @param vdata The string to write.
697
+ * @param vsize The size of the string.
698
+ * @param convert Determines whether the string is processed by the narrow string converter,
699
+ * if one has been configured. The default behavior is to convert the strings.
700
+ */
435
701
  void write(const char* vdata, size_t vsize, bool convert = true)
436
702
  {
437
703
  Int sz = static_cast<Int>(vsize);
@@ -451,36 +717,77 @@ public:
451
717
  }
452
718
  }
453
719
 
454
- // Null-terminated C string
720
+ /**
721
+ * Writes a string to the stream.
722
+ * @param vdata The null-terminated string to write.
723
+ * @param convert Determines whether the string is processed by the narrow string converter,
724
+ * if one has been configured. The default behavior is to convert the strings.
725
+ */
455
726
  void write(const char* vdata, bool convert = true)
456
727
  {
457
728
  write(vdata, strlen(vdata), convert);
458
729
  }
459
730
 
460
- void write(const std::string*, const std::string*, bool = true);
461
-
731
+ /**
732
+ * Writes a string sequence to the stream.
733
+ * @param begin The beginning of the sequence.
734
+ * @param end The end of the sequence.
735
+ * @param convert Determines whether the string is processed by the narrow string converter,
736
+ * if one has been configured. The default behavior is to convert the strings.
737
+ */
738
+ void write(const std::string* begin, const std::string* end, bool convert = true);
739
+
740
+ /**
741
+ * Writes a wide string to the stream.
742
+ * @param v The wide string to write.
743
+ */
462
744
  void write(const std::wstring& v);
463
- void write(const std::wstring*, const std::wstring*);
464
745
 
465
- // Proxy
466
- #ifdef ICE_CPP11_MAPPING
467
- void writeProxy(const ::std::shared_ptr<ObjectPrx>&);
746
+ /**
747
+ * Writes a wide string sequence to the stream.
748
+ * @param begin The beginning of the sequence.
749
+ * @param end The end of the sequence.
750
+ */
751
+ void write(const std::wstring* begin, const std::wstring* end);
468
752
 
753
+ #ifdef ICE_CPP11_MAPPING
754
+ /**
755
+ * Writes a proxy to the stream.
756
+ * @param v The proxy to be written.
757
+ */
758
+ void writeProxy(const ::std::shared_ptr<ObjectPrx>& v);
759
+
760
+ /**
761
+ * Writes a proxy to the stream.
762
+ * @param v The proxy to be written.
763
+ */
469
764
  template<typename T, typename ::std::enable_if<::std::is_base_of<ObjectPrx, T>::value>::type* = nullptr>
470
765
  void write(const ::std::shared_ptr<T>& v)
471
766
  {
472
767
  writeProxy(::std::static_pointer_cast<ObjectPrx>(v));
473
768
  }
474
769
  #else
475
- void write(const ObjectPrx&);
770
+ /**
771
+ * Writes a proxy to the stream.
772
+ * @param v The proxy to be written.
773
+ */
774
+ void write(const ObjectPrx& v);
775
+
776
+ /**
777
+ * Writes a proxy to the stream.
778
+ * @param v The proxy to be written.
779
+ */
476
780
  template<typename T> void write(const IceInternal::ProxyHandle<T>& v)
477
781
  {
478
782
  write(ObjectPrx(upCast(v.get())));
479
783
  }
480
784
  #endif
481
785
 
482
- // Class
483
786
  #ifdef ICE_CPP11_MAPPING // C++11 mapping
787
+ /**
788
+ * Writes a value instance to the stream.
789
+ * @param v The value to be written.
790
+ */
484
791
  template<typename T, typename ::std::enable_if<::std::is_base_of<Value, T>::value>::type* = nullptr>
485
792
  void write(const ::std::shared_ptr<T>& v)
486
793
  {
@@ -488,42 +795,79 @@ public:
488
795
  _currentEncaps->encoder->write(v);
489
796
  }
490
797
  #else // C++98 mapping
798
+ /**
799
+ * Writes a value instance to the stream.
800
+ * @param v The value to be written.
801
+ */
491
802
  void write(const ObjectPtr& v)
492
803
  {
493
804
  initEncaps();
494
805
  _currentEncaps->encoder->write(v);
495
806
  }
807
+
808
+ /**
809
+ * Writes a value instance to the stream.
810
+ * @param v The value to be written.
811
+ */
496
812
  template<typename T> void write(const IceInternal::Handle<T>& v)
497
813
  {
498
814
  write(ObjectPtr(upCast(v.get())));
499
815
  }
500
816
  #endif
501
817
 
502
- // Enum
503
- void writeEnum(Int, Int);
504
-
505
- // Exception
506
- void writeException(const UserException&);
507
-
818
+ /**
819
+ * Writes an enumerator to the stream.
820
+ * @param v The enumerator to be written.
821
+ * @param maxValue The maximum value of all enumerators in this enumeration.
822
+ */
823
+ void writeEnum(Int v, Int maxValue);
824
+
825
+ /**
826
+ * Writes an exception to the stream.
827
+ * @param v The exception to be written.
828
+ */
829
+ void writeException(const UserException& v);
830
+
831
+ /**
832
+ * Obtains the current position of the stream.
833
+ * @return The current position.
834
+ */
508
835
  size_type pos()
509
836
  {
510
837
  return b.size();
511
838
  }
512
839
 
513
- void rewrite(Int value, size_type p)
840
+ /**
841
+ * Overwrite a 32-bit integer value at the given position in the stream.
842
+ * This function does not change the stream's current position.
843
+ * @param v The value to be written.
844
+ * @param pos The buffer position for the value.
845
+ */
846
+ void rewrite(Int v, size_type pos)
514
847
  {
515
- write(value, b.begin() + p);
848
+ write(v, b.begin() + pos);
516
849
  }
517
850
 
518
- OutputStream(IceInternal::Instance*, const EncodingVersion&);
851
+ /**
852
+ * Indicates that marshaling is complete. This function must only be called once.
853
+ * @param v Filled with a copy of the encoded data.
854
+ */
855
+ void finished(std::vector<Byte>& v);
856
+
857
+ /**
858
+ * Indicates that marshaling is complete. This function must only be called once.
859
+ * @return A pair of pointers into the internal marshaling buffer. These pointers are
860
+ * valid for the lifetime of the stream.
861
+ */
862
+ std::pair<const Byte*, const Byte*> finished();
519
863
 
864
+ /// \cond INTERNAL
865
+ OutputStream(IceInternal::Instance*, const EncodingVersion&);
520
866
  void initialize(IceInternal::Instance*, const EncodingVersion&);
521
867
 
522
- void finished(std::vector<Byte>&);
523
- std::pair<const Byte*, const Byte*> finished();
524
-
525
868
  // Optionals
526
869
  bool writeOptImpl(Int, OptionalFormat);
870
+ /// \endcond
527
871
 
528
872
  private:
529
873