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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "cpp:doxygen:include:IceGrid/IceGrid.h", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
13
13
  [["cpp:include:IceGrid/Config.h"]]
14
14
 
15
15
  #include <IceGrid/Admin.ice>
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "python:pkgdir:IceGrid"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "cpp:doxygen:include:IceGrid/IceGrid.h", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "python:pkgdir:IceGrid"]]
13
13
  [["cpp:include:IceGrid/Config.h"]]
14
14
 
15
15
  #include <Ice/BuiltinSequences.ice>
@@ -279,7 +279,7 @@ local interface RegistryPluginFacade
279
279
  * @param filter The filter implementation.
280
280
  *
281
281
  **/
282
- void addReplicaGroupFilter(string id, ReplicaGroupFilter filter);
282
+ ["cpp:noexcept"] void addReplicaGroupFilter(string id, ReplicaGroupFilter filter);
283
283
 
284
284
  /**
285
285
  *
@@ -292,7 +292,7 @@ local interface RegistryPluginFacade
292
292
  * @return True of the filter was removed, false otherwise.
293
293
  *
294
294
  **/
295
- bool removeReplicaGroupFilter(string id, ReplicaGroupFilter filter);
295
+ ["cpp:noexcept"] bool removeReplicaGroupFilter(string id, ReplicaGroupFilter filter);
296
296
 
297
297
  /**
298
298
  *
@@ -303,7 +303,7 @@ local interface RegistryPluginFacade
303
303
  * @param filter The filter implementation.
304
304
  *
305
305
  **/
306
- void addTypeFilter(string type, TypeFilter filter);
306
+ ["cpp:noexcept"] void addTypeFilter(string type, TypeFilter filter);
307
307
 
308
308
  /**
309
309
  *
@@ -316,7 +316,7 @@ local interface RegistryPluginFacade
316
316
  * @return True of the filter was removed, false otherwise.
317
317
  *
318
318
  **/
319
- bool removeTypeFilter(string type, TypeFilter filter);
319
+ ["cpp:noexcept"] bool removeTypeFilter(string type, TypeFilter filter);
320
320
  }
321
321
 
322
322
  }
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "cpp:doxygen:include:IceGrid/IceGrid.h", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
13
13
  [["cpp:include:IceGrid/Config.h"]]
14
14
 
15
15
  #include <IceGrid/Exception.ice>
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "cpp:doxygen:include:IceGrid/IceGrid.h", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
13
13
  [["cpp:include:IceGrid/Config.h"]]
14
14
 
15
15
  #include <Glacier2/Session.ice>
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "cpp:doxygen:include:IceGrid/IceGrid.h", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
13
13
  [["cpp:include:IceGrid/Config.h"]]
14
14
 
15
15
  #ifndef __SLICE2JAVA_COMPAT__
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEIAP_API", "objc:header-dir:objc", "js:ice-build"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEIAP_API", "cpp:doxygen:include:IceIAP/IceIAP.h", "objc:header-dir:objc", "js:ice-build"]]
13
13
 
14
14
  #include <Ice/Connection.ice>
15
15
 
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2017-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2018-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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEIAP_API", "objc:header-dir:objc", "js:ice-build"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEIAP_API", "cpp:doxygen:include:IceIAP/IceIAP.h", "objc:header-dir:objc", "js:ice-build"]]
13
13
 
14
14
  #include <Ice/Endpoint.ice>
15
15
 
@@ -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.
@@ -8,7 +8,7 @@
8
8
  // **********************************************************************
9
9
 
10
10
  #pragma once
11
- [["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc", "python:pkgdir:IceLocatorDiscovery"]]
11
+ [["ice-prefix", "cpp:header-ext:h", "cpp:doxygen:include:IceLocatorDiscovery/IceLocatorDiscovery.h", "objc:header-dir:objc", "python:pkgdir:IceLocatorDiscovery"]]
12
12
 
13
13
  #include <Ice/Locator.ice>
14
14
 
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEPATCH2_API", "objc:header-dir:objc", "python:pkgdir:IcePatch2"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEPATCH2_API", "cpp:doxygen:include:IcePatch2/IcePatch2.h", "objc:header-dir:objc", "python:pkgdir:IcePatch2"]]
13
13
  [["cpp:include:IcePatch2/Config.h"]]
14
14
 
15
15
  #include <Ice/BuiltinSequences.ice>
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEPATCH2_API", "objc:header-dir:objc", "python:pkgdir:IcePatch2"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEPATCH2_API", "cpp:doxygen:include:IcePatch2/IcePatch2.h", "objc:header-dir:objc", "python:pkgdir:IcePatch2"]]
13
13
  [["cpp:include:IcePatch2/Config.h"]]
14
14
 
15
15
  #include <IcePatch2/FileInfo.ice>
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "cpp:doxygen:include:IceSSL/IceSSL.h", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
13
13
 
14
14
  [["cpp:include:IceSSL/Plugin.h"]]
15
15
 
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "cpp:doxygen:include:IceSSL/IceSSL.h", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
13
13
 
14
14
  #ifndef __SLICE2JAVA_COMPAT__
15
15
  [["java:package:com.zeroc"]]
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "cpp:doxygen:include:IceSSL/IceSSL.h", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
13
13
 
14
14
  #include <Ice/Endpoint.ice>
15
15
 
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESTORM_API", "objc:header-dir:objc", "objc:dll-export:ICESTORM_API", "js:ice-build", "python:pkgdir:IceStorm"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESTORM_API", "cpp:doxygen:include:IceStorm/IceStorm.h", "objc:header-dir:objc", "objc:dll-export:ICESTORM_API", "js:ice-build", "python:pkgdir:IceStorm"]]
13
13
  [["cpp:include:IceStorm/Config.h"]]
14
14
 
15
15
  #include <Ice/Identity.ice>
@@ -178,7 +178,7 @@ interface Topic
178
178
  /**
179
179
  *
180
180
  * Get a proxy to a publisher object for this topic. To publish
181
- * data to a topic, the publisher calls {@link Topic#getPublisher} and then
181
+ * data to a topic, the publisher calls getPublisher and then
182
182
  * casts to the topic type. An unchecked cast must be used on this
183
183
  * proxy. If a replicated IceStorm deployment is used this call
184
184
  * may return a replicated proxy.
@@ -192,7 +192,7 @@ interface Topic
192
192
  *
193
193
  * Get a non-replicated proxy to a publisher object for this
194
194
  * topic. To publish data to a topic, the publisher calls
195
- * {@link Topic#getPublisher} and then casts to the topic type. An unchecked
195
+ * getPublisher and then casts to the topic type. An unchecked
196
196
  * cast must be used on this proxy.
197
197
  *
198
198
  * @return A proxy to publish data on this topic.
@@ -339,8 +339,7 @@ interface TopicManager
339
339
  {
340
340
  /**
341
341
  *
342
- * Create a new topic. The topic name must be unique, otherwise
343
- * {@link TopicExists} is raised.
342
+ * Create a new topic. The topic name must be unique.
344
343
  *
345
344
  * @param name The name of the topic.
346
345
  *
@@ -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.
@@ -9,7 +9,7 @@
9
9
 
10
10
  #pragma once
11
11
 
12
- [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESTORM_API", "objc:header-dir:objc", "objc:dll-export:ICESTORM_API", "js:ice-build", "python:pkgdir:IceStorm"]]
12
+ [["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESTORM_API", "cpp:doxygen:include:IceStorm/IceStorm.h", "objc:header-dir:objc", "objc:dll-export:ICESTORM_API", "js:ice-build", "python:pkgdir:IceStorm"]]
13
13
  [["cpp:include:IceStorm/Config.h"]]
14
14
 
15
15
  #include <Ice/Metrics.ice>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zeroc-ice
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.0
4
+ version: 3.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ZeroC, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-21 00:00:00.000000000 Z
11
+ date: 2018-04-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  The Internet Communications Engine (Ice) provides a robust, proven
@@ -33,7 +33,6 @@ extensions:
33
33
  - ext/extconf.rb
34
34
  extra_rdoc_files: []
35
35
  files:
36
- - BZIP2_LICENSE
37
36
  - ICE_LICENSE
38
37
  - LICENSE
39
38
  - MCPP_LICENSE
@@ -65,15 +64,6 @@ files:
65
64
  - ext/ValueFactoryManager.cpp
66
65
  - ext/ValueFactoryManager.h
67
66
  - ext/extconf.rb
68
- - ext/ice/bzip2/blocksort.c
69
- - ext/ice/bzip2/bzlib.c
70
- - ext/ice/bzip2/bzlib.h
71
- - ext/ice/bzip2/bzlib_private.h
72
- - ext/ice/bzip2/compress.c
73
- - ext/ice/bzip2/crctable.c
74
- - ext/ice/bzip2/decompress.c
75
- - ext/ice/bzip2/huffman.c
76
- - ext/ice/bzip2/randtable.c
77
67
  - ext/ice/cpp/include/Ice/Application.h
78
68
  - ext/ice/cpp/include/Ice/AsyncResult.h
79
69
  - ext/ice/cpp/include/Ice/AsyncResultF.h
@@ -760,7 +750,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
760
750
  version: '0'
761
751
  requirements: []
762
752
  rubyforge_project:
763
- rubygems_version: 2.5.1
753
+ rubygems_version: 2.5.2.1
764
754
  signing_key:
765
755
  specification_version: 4
766
756
  summary: ZeroC Ice for Ruby
@@ -1,42 +0,0 @@
1
-
2
- --------------------------------------------------------------------------
3
-
4
- This program, "bzip2", the associated library "libbzip2", and all
5
- documentation, are copyright (C) 1996-2010 Julian R Seward. All
6
- rights reserved.
7
-
8
- Redistribution and use in source and binary forms, with or without
9
- modification, are permitted provided that the following conditions
10
- are met:
11
-
12
- 1. Redistributions of source code must retain the above copyright
13
- notice, this list of conditions and the following disclaimer.
14
-
15
- 2. The origin of this software must not be misrepresented; you must
16
- not claim that you wrote the original software. If you use this
17
- software in a product, an acknowledgment in the product
18
- documentation would be appreciated but is not required.
19
-
20
- 3. Altered source versions must be plainly marked as such, and must
21
- not be misrepresented as being the original software.
22
-
23
- 4. The name of the author may not be used to endorse or promote
24
- products derived from this software without specific prior written
25
- permission.
26
-
27
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
28
- OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
29
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
31
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
33
- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
35
- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38
-
39
- Julian Seward, jseward@bzip.org
40
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
41
-
42
- --------------------------------------------------------------------------
@@ -1,1094 +0,0 @@
1
-
2
- /*-------------------------------------------------------------*/
3
- /*--- Block sorting machinery ---*/
4
- /*--- blocksort.c ---*/
5
- /*-------------------------------------------------------------*/
6
-
7
- /* ------------------------------------------------------------------
8
- This file is part of bzip2/libbzip2, a program and library for
9
- lossless, block-sorting data compression.
10
-
11
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
12
- Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
13
-
14
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
15
- README file.
16
-
17
- This program is released under the terms of the license contained
18
- in the file LICENSE.
19
- ------------------------------------------------------------------ */
20
-
21
-
22
- #include "bzlib_private.h"
23
-
24
- /*---------------------------------------------*/
25
- /*--- Fallback O(N log(N)^2) sorting ---*/
26
- /*--- algorithm, for repetitive blocks ---*/
27
- /*---------------------------------------------*/
28
-
29
- /*---------------------------------------------*/
30
- static
31
- __inline__
32
- void fallbackSimpleSort ( UInt32* fmap,
33
- UInt32* eclass,
34
- Int32 lo,
35
- Int32 hi )
36
- {
37
- Int32 i, j, tmp;
38
- UInt32 ec_tmp;
39
-
40
- if (lo == hi) return;
41
-
42
- if (hi - lo > 3) {
43
- for ( i = hi-4; i >= lo; i-- ) {
44
- tmp = fmap[i];
45
- ec_tmp = eclass[tmp];
46
- for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
47
- fmap[j-4] = fmap[j];
48
- fmap[j-4] = tmp;
49
- }
50
- }
51
-
52
- for ( i = hi-1; i >= lo; i-- ) {
53
- tmp = fmap[i];
54
- ec_tmp = eclass[tmp];
55
- for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
56
- fmap[j-1] = fmap[j];
57
- fmap[j-1] = tmp;
58
- }
59
- }
60
-
61
-
62
- /*---------------------------------------------*/
63
- #define fswap(zz1, zz2) \
64
- { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
65
-
66
- #define fvswap(zzp1, zzp2, zzn) \
67
- { \
68
- Int32 yyp1 = (zzp1); \
69
- Int32 yyp2 = (zzp2); \
70
- Int32 yyn = (zzn); \
71
- while (yyn > 0) { \
72
- fswap(fmap[yyp1], fmap[yyp2]); \
73
- yyp1++; yyp2++; yyn--; \
74
- } \
75
- }
76
-
77
-
78
- #define fmin(a,b) ((a) < (b)) ? (a) : (b)
79
-
80
- #define fpush(lz,hz) { stackLo[sp] = lz; \
81
- stackHi[sp] = hz; \
82
- sp++; }
83
-
84
- #define fpop(lz,hz) { sp--; \
85
- lz = stackLo[sp]; \
86
- hz = stackHi[sp]; }
87
-
88
- #define FALLBACK_QSORT_SMALL_THRESH 10
89
- #define FALLBACK_QSORT_STACK_SIZE 100
90
-
91
-
92
- static
93
- void fallbackQSort3 ( UInt32* fmap,
94
- UInt32* eclass,
95
- Int32 loSt,
96
- Int32 hiSt )
97
- {
98
- Int32 unLo, unHi, ltLo, gtHi, n, m;
99
- Int32 sp, lo, hi;
100
- UInt32 med, r, r3;
101
- Int32 stackLo[FALLBACK_QSORT_STACK_SIZE];
102
- Int32 stackHi[FALLBACK_QSORT_STACK_SIZE];
103
-
104
- r = 0;
105
-
106
- sp = 0;
107
- fpush ( loSt, hiSt );
108
-
109
- while (sp > 0) {
110
-
111
- AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 );
112
-
113
- fpop ( lo, hi );
114
- if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
115
- fallbackSimpleSort ( fmap, eclass, lo, hi );
116
- continue;
117
- }
118
-
119
- /* Random partitioning. Median of 3 sometimes fails to
120
- avoid bad cases. Median of 9 seems to help but
121
- looks rather expensive. This too seems to work but
122
- is cheaper. Guidance for the magic constants
123
- 7621 and 32768 is taken from Sedgewick's algorithms
124
- book, chapter 35.
125
- */
126
- r = ((r * 7621) + 1) % 32768;
127
- r3 = r % 3;
128
- if (r3 == 0) med = eclass[fmap[lo]]; else
129
- if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else
130
- med = eclass[fmap[hi]];
131
-
132
- unLo = ltLo = lo;
133
- unHi = gtHi = hi;
134
-
135
- while (1) {
136
- while (1) {
137
- if (unLo > unHi) break;
138
- n = (Int32)eclass[fmap[unLo]] - (Int32)med;
139
- if (n == 0) {
140
- fswap(fmap[unLo], fmap[ltLo]);
141
- ltLo++; unLo++;
142
- continue;
143
- };
144
- if (n > 0) break;
145
- unLo++;
146
- }
147
- while (1) {
148
- if (unLo > unHi) break;
149
- n = (Int32)eclass[fmap[unHi]] - (Int32)med;
150
- if (n == 0) {
151
- fswap(fmap[unHi], fmap[gtHi]);
152
- gtHi--; unHi--;
153
- continue;
154
- };
155
- if (n < 0) break;
156
- unHi--;
157
- }
158
- if (unLo > unHi) break;
159
- fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--;
160
- }
161
-
162
- AssertD ( unHi == unLo-1, "fallbackQSort3(2)" );
163
-
164
- if (gtHi < ltLo) continue;
165
-
166
- n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);
167
- m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);
168
-
169
- n = lo + unLo - ltLo - 1;
170
- m = hi - (gtHi - unHi) + 1;
171
-
172
- if (n - lo > hi - m) {
173
- fpush ( lo, n );
174
- fpush ( m, hi );
175
- } else {
176
- fpush ( m, hi );
177
- fpush ( lo, n );
178
- }
179
- }
180
- }
181
-
182
- #undef fmin
183
- #undef fpush
184
- #undef fpop
185
- #undef fswap
186
- #undef fvswap
187
- #undef FALLBACK_QSORT_SMALL_THRESH
188
- #undef FALLBACK_QSORT_STACK_SIZE
189
-
190
-
191
- /*---------------------------------------------*/
192
- /* Pre:
193
- nblock > 0
194
- eclass exists for [0 .. nblock-1]
195
- ((UChar*)eclass) [0 .. nblock-1] holds block
196
- ptr exists for [0 .. nblock-1]
197
-
198
- Post:
199
- ((UChar*)eclass) [0 .. nblock-1] holds block
200
- All other areas of eclass destroyed
201
- fmap [0 .. nblock-1] holds sorted order
202
- bhtab [ 0 .. 2+(nblock/32) ] destroyed
203
- */
204
-
205
- #define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31))
206
- #define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31))
207
- #define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31)))
208
- #define WORD_BH(zz) bhtab[(zz) >> 5]
209
- #define UNALIGNED_BH(zz) ((zz) & 0x01f)
210
-
211
- static
212
- void fallbackSort ( UInt32* fmap,
213
- UInt32* eclass,
214
- UInt32* bhtab,
215
- Int32 nblock,
216
- Int32 verb )
217
- {
218
- Int32 ftab[257];
219
- Int32 ftabCopy[256];
220
- Int32 H, i, j, k, l, r, cc, cc1;
221
- Int32 nNotDone;
222
- Int32 nBhtab;
223
- UChar* eclass8 = (UChar*)eclass;
224
-
225
- /*--
226
- Initial 1-char radix sort to generate
227
- initial fmap and initial BH bits.
228
- --*/
229
- if (verb >= 4)
230
- VPrintf0 ( " bucket sorting ...\n" );
231
- for (i = 0; i < 257; i++) ftab[i] = 0;
232
- for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
233
- for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i];
234
- for (i = 1; i < 257; i++) ftab[i] += ftab[i-1];
235
-
236
- for (i = 0; i < nblock; i++) {
237
- j = eclass8[i];
238
- k = ftab[j] - 1;
239
- ftab[j] = k;
240
- fmap[k] = i;
241
- }
242
-
243
- nBhtab = 2 + (nblock / 32);
244
- for (i = 0; i < nBhtab; i++) bhtab[i] = 0;
245
- for (i = 0; i < 256; i++) SET_BH(ftab[i]);
246
-
247
- /*--
248
- Inductively refine the buckets. Kind-of an
249
- "exponential radix sort" (!), inspired by the
250
- Manber-Myers suffix array construction algorithm.
251
- --*/
252
-
253
- /*-- set sentinel bits for block-end detection --*/
254
- for (i = 0; i < 32; i++) {
255
- SET_BH(nblock + 2*i);
256
- CLEAR_BH(nblock + 2*i + 1);
257
- }
258
-
259
- /*-- the log(N) loop --*/
260
- H = 1;
261
- while (1) {
262
-
263
- if (verb >= 4)
264
- VPrintf1 ( " depth %6d has ", H );
265
-
266
- j = 0;
267
- for (i = 0; i < nblock; i++) {
268
- if (ISSET_BH(i)) j = i;
269
- k = fmap[i] - H; if (k < 0) k += nblock;
270
- eclass[k] = j;
271
- }
272
-
273
- nNotDone = 0;
274
- r = -1;
275
- while (1) {
276
-
277
- /*-- find the next non-singleton bucket --*/
278
- k = r + 1;
279
- while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
280
- if (ISSET_BH(k)) {
281
- while (WORD_BH(k) == 0xffffffff) k += 32;
282
- while (ISSET_BH(k)) k++;
283
- }
284
- l = k - 1;
285
- if (l >= nblock) break;
286
- while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
287
- if (!ISSET_BH(k)) {
288
- while (WORD_BH(k) == 0x00000000) k += 32;
289
- while (!ISSET_BH(k)) k++;
290
- }
291
- r = k - 1;
292
- if (r >= nblock) break;
293
-
294
- /*-- now [l, r] bracket current bucket --*/
295
- if (r > l) {
296
- nNotDone += (r - l + 1);
297
- fallbackQSort3 ( fmap, eclass, l, r );
298
-
299
- /*-- scan bucket and generate header bits-- */
300
- cc = -1;
301
- for (i = l; i <= r; i++) {
302
- cc1 = eclass[fmap[i]];
303
- if (cc != cc1) { SET_BH(i); cc = cc1; };
304
- }
305
- }
306
- }
307
-
308
- if (verb >= 4)
309
- VPrintf1 ( "%6d unresolved strings\n", nNotDone );
310
-
311
- H *= 2;
312
- if (H > nblock || nNotDone == 0) break;
313
- }
314
-
315
- /*--
316
- Reconstruct the original block in
317
- eclass8 [0 .. nblock-1], since the
318
- previous phase destroyed it.
319
- --*/
320
- if (verb >= 4)
321
- VPrintf0 ( " reconstructing block ...\n" );
322
- j = 0;
323
- for (i = 0; i < nblock; i++) {
324
- while (ftabCopy[j] == 0) j++;
325
- ftabCopy[j]--;
326
- eclass8[fmap[i]] = (UChar)j;
327
- }
328
- AssertH ( j < 256, 1005 );
329
- }
330
-
331
- #undef SET_BH
332
- #undef CLEAR_BH
333
- #undef ISSET_BH
334
- #undef WORD_BH
335
- #undef UNALIGNED_BH
336
-
337
-
338
- /*---------------------------------------------*/
339
- /*--- The main, O(N^2 log(N)) sorting ---*/
340
- /*--- algorithm. Faster for "normal" ---*/
341
- /*--- non-repetitive blocks. ---*/
342
- /*---------------------------------------------*/
343
-
344
- /*---------------------------------------------*/
345
- static
346
- __inline__
347
- Bool mainGtU ( UInt32 i1,
348
- UInt32 i2,
349
- UChar* block,
350
- UInt16* quadrant,
351
- UInt32 nblock,
352
- Int32* budget )
353
- {
354
- Int32 k;
355
- UChar c1, c2;
356
- UInt16 s1, s2;
357
-
358
- AssertD ( i1 != i2, "mainGtU" );
359
- /* 1 */
360
- c1 = block[i1]; c2 = block[i2];
361
- if (c1 != c2) return (c1 > c2);
362
- i1++; i2++;
363
- /* 2 */
364
- c1 = block[i1]; c2 = block[i2];
365
- if (c1 != c2) return (c1 > c2);
366
- i1++; i2++;
367
- /* 3 */
368
- c1 = block[i1]; c2 = block[i2];
369
- if (c1 != c2) return (c1 > c2);
370
- i1++; i2++;
371
- /* 4 */
372
- c1 = block[i1]; c2 = block[i2];
373
- if (c1 != c2) return (c1 > c2);
374
- i1++; i2++;
375
- /* 5 */
376
- c1 = block[i1]; c2 = block[i2];
377
- if (c1 != c2) return (c1 > c2);
378
- i1++; i2++;
379
- /* 6 */
380
- c1 = block[i1]; c2 = block[i2];
381
- if (c1 != c2) return (c1 > c2);
382
- i1++; i2++;
383
- /* 7 */
384
- c1 = block[i1]; c2 = block[i2];
385
- if (c1 != c2) return (c1 > c2);
386
- i1++; i2++;
387
- /* 8 */
388
- c1 = block[i1]; c2 = block[i2];
389
- if (c1 != c2) return (c1 > c2);
390
- i1++; i2++;
391
- /* 9 */
392
- c1 = block[i1]; c2 = block[i2];
393
- if (c1 != c2) return (c1 > c2);
394
- i1++; i2++;
395
- /* 10 */
396
- c1 = block[i1]; c2 = block[i2];
397
- if (c1 != c2) return (c1 > c2);
398
- i1++; i2++;
399
- /* 11 */
400
- c1 = block[i1]; c2 = block[i2];
401
- if (c1 != c2) return (c1 > c2);
402
- i1++; i2++;
403
- /* 12 */
404
- c1 = block[i1]; c2 = block[i2];
405
- if (c1 != c2) return (c1 > c2);
406
- i1++; i2++;
407
-
408
- k = nblock + 8;
409
-
410
- do {
411
- /* 1 */
412
- c1 = block[i1]; c2 = block[i2];
413
- if (c1 != c2) return (c1 > c2);
414
- s1 = quadrant[i1]; s2 = quadrant[i2];
415
- if (s1 != s2) return (s1 > s2);
416
- i1++; i2++;
417
- /* 2 */
418
- c1 = block[i1]; c2 = block[i2];
419
- if (c1 != c2) return (c1 > c2);
420
- s1 = quadrant[i1]; s2 = quadrant[i2];
421
- if (s1 != s2) return (s1 > s2);
422
- i1++; i2++;
423
- /* 3 */
424
- c1 = block[i1]; c2 = block[i2];
425
- if (c1 != c2) return (c1 > c2);
426
- s1 = quadrant[i1]; s2 = quadrant[i2];
427
- if (s1 != s2) return (s1 > s2);
428
- i1++; i2++;
429
- /* 4 */
430
- c1 = block[i1]; c2 = block[i2];
431
- if (c1 != c2) return (c1 > c2);
432
- s1 = quadrant[i1]; s2 = quadrant[i2];
433
- if (s1 != s2) return (s1 > s2);
434
- i1++; i2++;
435
- /* 5 */
436
- c1 = block[i1]; c2 = block[i2];
437
- if (c1 != c2) return (c1 > c2);
438
- s1 = quadrant[i1]; s2 = quadrant[i2];
439
- if (s1 != s2) return (s1 > s2);
440
- i1++; i2++;
441
- /* 6 */
442
- c1 = block[i1]; c2 = block[i2];
443
- if (c1 != c2) return (c1 > c2);
444
- s1 = quadrant[i1]; s2 = quadrant[i2];
445
- if (s1 != s2) return (s1 > s2);
446
- i1++; i2++;
447
- /* 7 */
448
- c1 = block[i1]; c2 = block[i2];
449
- if (c1 != c2) return (c1 > c2);
450
- s1 = quadrant[i1]; s2 = quadrant[i2];
451
- if (s1 != s2) return (s1 > s2);
452
- i1++; i2++;
453
- /* 8 */
454
- c1 = block[i1]; c2 = block[i2];
455
- if (c1 != c2) return (c1 > c2);
456
- s1 = quadrant[i1]; s2 = quadrant[i2];
457
- if (s1 != s2) return (s1 > s2);
458
- i1++; i2++;
459
-
460
- if (i1 >= nblock) i1 -= nblock;
461
- if (i2 >= nblock) i2 -= nblock;
462
-
463
- k -= 8;
464
- (*budget)--;
465
- }
466
- while (k >= 0);
467
-
468
- return False;
469
- }
470
-
471
-
472
- /*---------------------------------------------*/
473
- /*--
474
- Knuth's increments seem to work better
475
- than Incerpi-Sedgewick here. Possibly
476
- because the number of elems to sort is
477
- usually small, typically <= 20.
478
- --*/
479
- static
480
- Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280,
481
- 9841, 29524, 88573, 265720,
482
- 797161, 2391484 };
483
-
484
- static
485
- void mainSimpleSort ( UInt32* ptr,
486
- UChar* block,
487
- UInt16* quadrant,
488
- Int32 nblock,
489
- Int32 lo,
490
- Int32 hi,
491
- Int32 d,
492
- Int32* budget )
493
- {
494
- Int32 i, j, h, bigN, hp;
495
- UInt32 v;
496
-
497
- bigN = hi - lo + 1;
498
- if (bigN < 2) return;
499
-
500
- hp = 0;
501
- while (incs[hp] < bigN) hp++;
502
- hp--;
503
-
504
- for (; hp >= 0; hp--) {
505
- h = incs[hp];
506
-
507
- i = lo + h;
508
- while (True) {
509
-
510
- /*-- copy 1 --*/
511
- if (i > hi) break;
512
- v = ptr[i];
513
- j = i;
514
- while ( mainGtU (
515
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
516
- ) ) {
517
- ptr[j] = ptr[j-h];
518
- j = j - h;
519
- if (j <= (lo + h - 1)) break;
520
- }
521
- ptr[j] = v;
522
- i++;
523
-
524
- /*-- copy 2 --*/
525
- if (i > hi) break;
526
- v = ptr[i];
527
- j = i;
528
- while ( mainGtU (
529
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
530
- ) ) {
531
- ptr[j] = ptr[j-h];
532
- j = j - h;
533
- if (j <= (lo + h - 1)) break;
534
- }
535
- ptr[j] = v;
536
- i++;
537
-
538
- /*-- copy 3 --*/
539
- if (i > hi) break;
540
- v = ptr[i];
541
- j = i;
542
- while ( mainGtU (
543
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
544
- ) ) {
545
- ptr[j] = ptr[j-h];
546
- j = j - h;
547
- if (j <= (lo + h - 1)) break;
548
- }
549
- ptr[j] = v;
550
- i++;
551
-
552
- if (*budget < 0) return;
553
- }
554
- }
555
- }
556
-
557
-
558
- /*---------------------------------------------*/
559
- /*--
560
- The following is an implementation of
561
- an elegant 3-way quicksort for strings,
562
- described in a paper "Fast Algorithms for
563
- Sorting and Searching Strings", by Robert
564
- Sedgewick and Jon L. Bentley.
565
- --*/
566
-
567
- #define mswap(zz1, zz2) \
568
- { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
569
-
570
- #define mvswap(zzp1, zzp2, zzn) \
571
- { \
572
- Int32 yyp1 = (zzp1); \
573
- Int32 yyp2 = (zzp2); \
574
- Int32 yyn = (zzn); \
575
- while (yyn > 0) { \
576
- mswap(ptr[yyp1], ptr[yyp2]); \
577
- yyp1++; yyp2++; yyn--; \
578
- } \
579
- }
580
-
581
- static
582
- __inline__
583
- UChar mmed3 ( UChar a, UChar b, UChar c )
584
- {
585
- UChar t;
586
- if (a > b) { t = a; a = b; b = t; };
587
- if (b > c) {
588
- b = c;
589
- if (a > b) b = a;
590
- }
591
- return b;
592
- }
593
-
594
- #define mmin(a,b) ((a) < (b)) ? (a) : (b)
595
-
596
- #define mpush(lz,hz,dz) { stackLo[sp] = lz; \
597
- stackHi[sp] = hz; \
598
- stackD [sp] = dz; \
599
- sp++; }
600
-
601
- #define mpop(lz,hz,dz) { sp--; \
602
- lz = stackLo[sp]; \
603
- hz = stackHi[sp]; \
604
- dz = stackD [sp]; }
605
-
606
-
607
- #define mnextsize(az) (nextHi[az]-nextLo[az])
608
-
609
- #define mnextswap(az,bz) \
610
- { Int32 tz; \
611
- tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \
612
- tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \
613
- tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; }
614
-
615
-
616
- #define MAIN_QSORT_SMALL_THRESH 20
617
- #define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT)
618
- #define MAIN_QSORT_STACK_SIZE 100
619
-
620
- static
621
- void mainQSort3 ( UInt32* ptr,
622
- UChar* block,
623
- UInt16* quadrant,
624
- Int32 nblock,
625
- Int32 loSt,
626
- Int32 hiSt,
627
- Int32 dSt,
628
- Int32* budget )
629
- {
630
- Int32 unLo, unHi, ltLo, gtHi, n, m, med;
631
- Int32 sp, lo, hi, d;
632
-
633
- Int32 stackLo[MAIN_QSORT_STACK_SIZE];
634
- Int32 stackHi[MAIN_QSORT_STACK_SIZE];
635
- Int32 stackD [MAIN_QSORT_STACK_SIZE];
636
-
637
- Int32 nextLo[3];
638
- Int32 nextHi[3];
639
- Int32 nextD [3];
640
-
641
- sp = 0;
642
- mpush ( loSt, hiSt, dSt );
643
-
644
- while (sp > 0) {
645
-
646
- AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
647
-
648
- mpop ( lo, hi, d );
649
- if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
650
- d > MAIN_QSORT_DEPTH_THRESH) {
651
- mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
652
- if (*budget < 0) return;
653
- continue;
654
- }
655
-
656
- med = (Int32)
657
- mmed3 ( block[ptr[ lo ]+d],
658
- block[ptr[ hi ]+d],
659
- block[ptr[ (lo+hi)>>1 ]+d] );
660
-
661
- unLo = ltLo = lo;
662
- unHi = gtHi = hi;
663
-
664
- while (True) {
665
- while (True) {
666
- if (unLo > unHi) break;
667
- n = ((Int32)block[ptr[unLo]+d]) - med;
668
- if (n == 0) {
669
- mswap(ptr[unLo], ptr[ltLo]);
670
- ltLo++; unLo++; continue;
671
- };
672
- if (n > 0) break;
673
- unLo++;
674
- }
675
- while (True) {
676
- if (unLo > unHi) break;
677
- n = ((Int32)block[ptr[unHi]+d]) - med;
678
- if (n == 0) {
679
- mswap(ptr[unHi], ptr[gtHi]);
680
- gtHi--; unHi--; continue;
681
- };
682
- if (n < 0) break;
683
- unHi--;
684
- }
685
- if (unLo > unHi) break;
686
- mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--;
687
- }
688
-
689
- AssertD ( unHi == unLo-1, "mainQSort3(2)" );
690
-
691
- if (gtHi < ltLo) {
692
- mpush(lo, hi, d+1 );
693
- continue;
694
- }
695
-
696
- n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n);
697
- m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m);
698
-
699
- n = lo + unLo - ltLo - 1;
700
- m = hi - (gtHi - unHi) + 1;
701
-
702
- nextLo[0] = lo; nextHi[0] = n; nextD[0] = d;
703
- nextLo[1] = m; nextHi[1] = hi; nextD[1] = d;
704
- nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1;
705
-
706
- if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
707
- if (mnextsize(1) < mnextsize(2)) mnextswap(1,2);
708
- if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
709
-
710
- AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" );
711
- AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" );
712
-
713
- mpush (nextLo[0], nextHi[0], nextD[0]);
714
- mpush (nextLo[1], nextHi[1], nextD[1]);
715
- mpush (nextLo[2], nextHi[2], nextD[2]);
716
- }
717
- }
718
-
719
- #undef mswap
720
- #undef mvswap
721
- #undef mpush
722
- #undef mpop
723
- #undef mmin
724
- #undef mnextsize
725
- #undef mnextswap
726
- #undef MAIN_QSORT_SMALL_THRESH
727
- #undef MAIN_QSORT_DEPTH_THRESH
728
- #undef MAIN_QSORT_STACK_SIZE
729
-
730
-
731
- /*---------------------------------------------*/
732
- /* Pre:
733
- nblock > N_OVERSHOOT
734
- block32 exists for [0 .. nblock-1 +N_OVERSHOOT]
735
- ((UChar*)block32) [0 .. nblock-1] holds block
736
- ptr exists for [0 .. nblock-1]
737
-
738
- Post:
739
- ((UChar*)block32) [0 .. nblock-1] holds block
740
- All other areas of block32 destroyed
741
- ftab [0 .. 65536 ] destroyed
742
- ptr [0 .. nblock-1] holds sorted order
743
- if (*budget < 0), sorting was abandoned
744
- */
745
-
746
- #define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8])
747
- #define SETMASK (1 << 21)
748
- #define CLEARMASK (~(SETMASK))
749
-
750
- static
751
- void mainSort ( UInt32* ptr,
752
- UChar* block,
753
- UInt16* quadrant,
754
- UInt32* ftab,
755
- Int32 nblock,
756
- Int32 verb,
757
- Int32* budget )
758
- {
759
- Int32 i, j, k, ss, sb;
760
- Int32 runningOrder[256];
761
- Bool bigDone[256];
762
- Int32 copyStart[256];
763
- Int32 copyEnd [256];
764
- UChar c1;
765
- Int32 numQSorted;
766
- UInt16 s;
767
- if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" );
768
-
769
- /*-- set up the 2-byte frequency table --*/
770
- for (i = 65536; i >= 0; i--) ftab[i] = 0;
771
-
772
- j = block[0] << 8;
773
- i = nblock-1;
774
- for (; i >= 3; i -= 4) {
775
- quadrant[i] = 0;
776
- j = (j >> 8) | ( ((UInt16)block[i]) << 8);
777
- ftab[j]++;
778
- quadrant[i-1] = 0;
779
- j = (j >> 8) | ( ((UInt16)block[i-1]) << 8);
780
- ftab[j]++;
781
- quadrant[i-2] = 0;
782
- j = (j >> 8) | ( ((UInt16)block[i-2]) << 8);
783
- ftab[j]++;
784
- quadrant[i-3] = 0;
785
- j = (j >> 8) | ( ((UInt16)block[i-3]) << 8);
786
- ftab[j]++;
787
- }
788
- for (; i >= 0; i--) {
789
- quadrant[i] = 0;
790
- j = (j >> 8) | ( ((UInt16)block[i]) << 8);
791
- ftab[j]++;
792
- }
793
-
794
- /*-- (emphasises close relationship of block & quadrant) --*/
795
- for (i = 0; i < BZ_N_OVERSHOOT; i++) {
796
- block [nblock+i] = block[i];
797
- quadrant[nblock+i] = 0;
798
- }
799
-
800
- if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" );
801
-
802
- /*-- Complete the initial radix sort --*/
803
- for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];
804
-
805
- s = block[0] << 8;
806
- i = nblock-1;
807
- for (; i >= 3; i -= 4) {
808
- s = (s >> 8) | (block[i] << 8);
809
- j = ftab[s] -1;
810
- ftab[s] = j;
811
- ptr[j] = i;
812
- s = (s >> 8) | (block[i-1] << 8);
813
- j = ftab[s] -1;
814
- ftab[s] = j;
815
- ptr[j] = i-1;
816
- s = (s >> 8) | (block[i-2] << 8);
817
- j = ftab[s] -1;
818
- ftab[s] = j;
819
- ptr[j] = i-2;
820
- s = (s >> 8) | (block[i-3] << 8);
821
- j = ftab[s] -1;
822
- ftab[s] = j;
823
- ptr[j] = i-3;
824
- }
825
- for (; i >= 0; i--) {
826
- s = (s >> 8) | (block[i] << 8);
827
- j = ftab[s] -1;
828
- ftab[s] = j;
829
- ptr[j] = i;
830
- }
831
-
832
- /*--
833
- Now ftab contains the first loc of every small bucket.
834
- Calculate the running order, from smallest to largest
835
- big bucket.
836
- --*/
837
- for (i = 0; i <= 255; i++) {
838
- bigDone [i] = False;
839
- runningOrder[i] = i;
840
- }
841
-
842
- {
843
- Int32 vv;
844
- Int32 h = 1;
845
- do h = 3 * h + 1; while (h <= 256);
846
- do {
847
- h = h / 3;
848
- for (i = h; i <= 255; i++) {
849
- vv = runningOrder[i];
850
- j = i;
851
- while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) {
852
- runningOrder[j] = runningOrder[j-h];
853
- j = j - h;
854
- if (j <= (h - 1)) goto zero;
855
- }
856
- zero:
857
- runningOrder[j] = vv;
858
- }
859
- } while (h != 1);
860
- }
861
-
862
- /*--
863
- The main sorting loop.
864
- --*/
865
-
866
- numQSorted = 0;
867
-
868
- for (i = 0; i <= 255; i++) {
869
-
870
- /*--
871
- Process big buckets, starting with the least full.
872
- Basically this is a 3-step process in which we call
873
- mainQSort3 to sort the small buckets [ss, j], but
874
- also make a big effort to avoid the calls if we can.
875
- --*/
876
- ss = runningOrder[i];
877
-
878
- /*--
879
- Step 1:
880
- Complete the big bucket [ss] by quicksorting
881
- any unsorted small buckets [ss, j], for j != ss.
882
- Hopefully previous pointer-scanning phases have already
883
- completed many of the small buckets [ss, j], so
884
- we don't have to sort them at all.
885
- --*/
886
- for (j = 0; j <= 255; j++) {
887
- if (j != ss) {
888
- sb = (ss << 8) + j;
889
- if ( ! (ftab[sb] & SETMASK) ) {
890
- Int32 lo = ftab[sb] & CLEARMASK;
891
- Int32 hi = (ftab[sb+1] & CLEARMASK) - 1;
892
- if (hi > lo) {
893
- if (verb >= 4)
894
- VPrintf4 ( " qsort [0x%x, 0x%x] "
895
- "done %d this %d\n",
896
- ss, j, numQSorted, hi - lo + 1 );
897
- mainQSort3 (
898
- ptr, block, quadrant, nblock,
899
- lo, hi, BZ_N_RADIX, budget
900
- );
901
- numQSorted += (hi - lo + 1);
902
- if (*budget < 0) return;
903
- }
904
- }
905
- ftab[sb] |= SETMASK;
906
- }
907
- }
908
-
909
- AssertH ( !bigDone[ss], 1006 );
910
-
911
- /*--
912
- Step 2:
913
- Now scan this big bucket [ss] so as to synthesise the
914
- sorted order for small buckets [t, ss] for all t,
915
- including, magically, the bucket [ss,ss] too.
916
- This will avoid doing Real Work in subsequent Step 1's.
917
- --*/
918
- {
919
- for (j = 0; j <= 255; j++) {
920
- copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK;
921
- copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1;
922
- }
923
- for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) {
924
- k = ptr[j]-1; if (k < 0) k += nblock;
925
- c1 = block[k];
926
- if (!bigDone[c1])
927
- ptr[ copyStart[c1]++ ] = k;
928
- }
929
- for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
930
- k = ptr[j]-1; if (k < 0) k += nblock;
931
- c1 = block[k];
932
- if (!bigDone[c1])
933
- ptr[ copyEnd[c1]-- ] = k;
934
- }
935
- }
936
-
937
- AssertH ( (copyStart[ss]-1 == copyEnd[ss])
938
- ||
939
- /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1.
940
- Necessity for this case is demonstrated by compressing
941
- a sequence of approximately 48.5 million of character
942
- 251; 1.0.0/1.0.1 will then die here. */
943
- (copyStart[ss] == 0 && copyEnd[ss] == nblock-1),
944
- 1007 )
945
-
946
- for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK;
947
-
948
- /*--
949
- Step 3:
950
- The [ss] big bucket is now done. Record this fact,
951
- and update the quadrant descriptors. Remember to
952
- update quadrants in the overshoot area too, if
953
- necessary. The "if (i < 255)" test merely skips
954
- this updating for the last bucket processed, since
955
- updating for the last bucket is pointless.
956
-
957
- The quadrant array provides a way to incrementally
958
- cache sort orderings, as they appear, so as to
959
- make subsequent comparisons in fullGtU() complete
960
- faster. For repetitive blocks this makes a big
961
- difference (but not big enough to be able to avoid
962
- the fallback sorting mechanism, exponential radix sort).
963
-
964
- The precise meaning is: at all times:
965
-
966
- for 0 <= i < nblock and 0 <= j <= nblock
967
-
968
- if block[i] != block[j],
969
-
970
- then the relative values of quadrant[i] and
971
- quadrant[j] are meaningless.
972
-
973
- else {
974
- if quadrant[i] < quadrant[j]
975
- then the string starting at i lexicographically
976
- precedes the string starting at j
977
-
978
- else if quadrant[i] > quadrant[j]
979
- then the string starting at j lexicographically
980
- precedes the string starting at i
981
-
982
- else
983
- the relative ordering of the strings starting
984
- at i and j has not yet been determined.
985
- }
986
- --*/
987
- bigDone[ss] = True;
988
-
989
- if (i < 255) {
990
- Int32 bbStart = ftab[ss << 8] & CLEARMASK;
991
- Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart;
992
- Int32 shifts = 0;
993
-
994
- while ((bbSize >> shifts) > 65534) shifts++;
995
-
996
- for (j = bbSize-1; j >= 0; j--) {
997
- Int32 a2update = ptr[bbStart + j];
998
- UInt16 qVal = (UInt16)(j >> shifts);
999
- quadrant[a2update] = qVal;
1000
- if (a2update < BZ_N_OVERSHOOT)
1001
- quadrant[a2update + nblock] = qVal;
1002
- }
1003
- AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 );
1004
- }
1005
-
1006
- }
1007
-
1008
- if (verb >= 4)
1009
- VPrintf3 ( " %d pointers, %d sorted, %d scanned\n",
1010
- nblock, numQSorted, nblock - numQSorted );
1011
- }
1012
-
1013
- #undef BIGFREQ
1014
- #undef SETMASK
1015
- #undef CLEARMASK
1016
-
1017
-
1018
- /*---------------------------------------------*/
1019
- /* Pre:
1020
- nblock > 0
1021
- arr2 exists for [0 .. nblock-1 +N_OVERSHOOT]
1022
- ((UChar*)arr2) [0 .. nblock-1] holds block
1023
- arr1 exists for [0 .. nblock-1]
1024
-
1025
- Post:
1026
- ((UChar*)arr2) [0 .. nblock-1] holds block
1027
- All other areas of block destroyed
1028
- ftab [ 0 .. 65536 ] destroyed
1029
- arr1 [0 .. nblock-1] holds sorted order
1030
- */
1031
- void BZ2_blockSort ( EState* s )
1032
- {
1033
- UInt32* ptr = s->ptr;
1034
- UChar* block = s->block;
1035
- UInt32* ftab = s->ftab;
1036
- Int32 nblock = s->nblock;
1037
- Int32 verb = s->verbosity;
1038
- Int32 wfact = s->workFactor;
1039
- UInt16* quadrant;
1040
- Int32 budget;
1041
- Int32 budgetInit;
1042
- Int32 i;
1043
-
1044
- if (nblock < 10000) {
1045
- fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
1046
- } else {
1047
- /* Calculate the location for quadrant, remembering to get
1048
- the alignment right. Assumes that &(block[0]) is at least
1049
- 2-byte aligned -- this should be ok since block is really
1050
- the first section of arr2.
1051
- */
1052
- i = nblock+BZ_N_OVERSHOOT;
1053
- if (i & 1) i++;
1054
- quadrant = (UInt16*)(&(block[i]));
1055
-
1056
- /* (wfact-1) / 3 puts the default-factor-30
1057
- transition point at very roughly the same place as
1058
- with v0.1 and v0.9.0.
1059
- Not that it particularly matters any more, since the
1060
- resulting compressed stream is now the same regardless
1061
- of whether or not we use the main sort or fallback sort.
1062
- */
1063
- if (wfact < 1 ) wfact = 1;
1064
- if (wfact > 100) wfact = 100;
1065
- budgetInit = nblock * ((wfact-1) / 3);
1066
- budget = budgetInit;
1067
-
1068
- mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
1069
- if (verb >= 3)
1070
- VPrintf3 ( " %d work, %d block, ratio %5.2f\n",
1071
- budgetInit - budget,
1072
- nblock,
1073
- (float)(budgetInit - budget) /
1074
- (float)(nblock==0 ? 1 : nblock) );
1075
- if (budget < 0) {
1076
- if (verb >= 2)
1077
- VPrintf0 ( " too repetitive; using fallback"
1078
- " sorting algorithm\n" );
1079
- fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
1080
- }
1081
- }
1082
-
1083
- s->origPtr = -1;
1084
- for (i = 0; i < s->nblock; i++)
1085
- if (ptr[i] == 0)
1086
- { s->origPtr = i; break; };
1087
-
1088
- AssertH( s->origPtr != -1, 1003 );
1089
- }
1090
-
1091
-
1092
- /*-------------------------------------------------------------*/
1093
- /*--- end blocksort.c ---*/
1094
- /*-------------------------------------------------------------*/