zeroc-ice 3.7.1 → 3.7.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (683) hide show
  1. checksums.yaml +5 -5
  2. data/ICE_LICENSE +1 -1
  3. data/bin/slice2rb +1 -6
  4. data/ext/Communicator.cpp +7 -9
  5. data/ext/Communicator.h +1 -6
  6. data/ext/Config.h +28 -6
  7. data/ext/Connection.cpp +1 -10
  8. data/ext/Connection.h +1 -6
  9. data/ext/Endpoint.cpp +1 -10
  10. data/ext/Endpoint.h +1 -6
  11. data/ext/ImplicitContext.cpp +1 -6
  12. data/ext/ImplicitContext.h +1 -6
  13. data/ext/Init.cpp +1 -6
  14. data/ext/Logger.cpp +1 -6
  15. data/ext/Logger.h +1 -6
  16. data/ext/Operation.cpp +6 -11
  17. data/ext/Operation.h +1 -6
  18. data/ext/Properties.cpp +3 -8
  19. data/ext/Properties.h +1 -6
  20. data/ext/Proxy.cpp +21 -14
  21. data/ext/Proxy.h +1 -6
  22. data/ext/Slice.cpp +3 -18
  23. data/ext/Slice.h +1 -6
  24. data/ext/Types.cpp +74 -58
  25. data/ext/Types.h +1 -6
  26. data/ext/Util.cpp +61 -32
  27. data/ext/Util.h +108 -33
  28. data/ext/ValueFactoryManager.cpp +1 -6
  29. data/ext/ValueFactoryManager.h +1 -6
  30. data/ext/extconf.rb +5 -3
  31. data/ext/ice/cpp/include/Ice/Application.h +1 -6
  32. data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -6
  33. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -6
  34. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +1 -6
  35. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -6
  36. data/ext/ice/cpp/include/Ice/Buffer.h +1 -6
  37. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -6
  38. data/ext/ice/cpp/include/Ice/Comparable.h +1 -6
  39. data/ext/ice/cpp/include/Ice/Config.h +5 -6
  40. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -6
  41. data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -6
  42. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +1 -6
  43. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +1 -6
  44. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -6
  45. data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -6
  46. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -6
  47. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -6
  48. data/ext/ice/cpp/include/Ice/Exception.h +4 -9
  49. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +3 -16
  50. data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -6
  51. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +2 -7
  52. data/ext/ice/cpp/include/Ice/Format.h +1 -6
  53. data/ext/ice/cpp/include/Ice/Functional.h +2 -7
  54. data/ext/ice/cpp/include/Ice/GCObject.h +1 -6
  55. data/ext/ice/cpp/include/Ice/Handle.h +1 -6
  56. data/ext/ice/cpp/include/Ice/Ice.h +1 -6
  57. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +11 -17
  58. data/ext/ice/cpp/include/Ice/Incoming.h +13 -8
  59. data/ext/ice/cpp/include/Ice/IncomingAsync.h +11 -6
  60. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -6
  61. data/ext/ice/cpp/include/Ice/Initialize.h +13 -7
  62. data/ext/ice/cpp/include/Ice/InputStream.h +6 -11
  63. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -6
  64. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +1 -6
  65. data/ext/ice/cpp/include/Ice/LocalObject.h +1 -6
  66. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -6
  67. data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -6
  68. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +9 -7
  69. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -6
  70. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +16 -7
  71. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -6
  72. data/ext/ice/cpp/include/Ice/Object.h +6 -6
  73. data/ext/ice/cpp/include/Ice/ObjectF.h +1 -6
  74. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -6
  75. data/ext/ice/cpp/include/Ice/Optional.h +21 -7
  76. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +18 -8
  77. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -6
  78. data/ext/ice/cpp/include/Ice/OutputStream.h +6 -11
  79. data/ext/ice/cpp/include/Ice/Protocol.h +1 -6
  80. data/ext/ice/cpp/include/Ice/Proxy.h +50 -23
  81. data/ext/ice/cpp/include/Ice/ProxyF.h +1 -6
  82. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -6
  83. data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -6
  84. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -6
  85. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +1 -6
  86. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -6
  87. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -6
  88. data/ext/ice/cpp/include/Ice/SHA1.h +1 -6
  89. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -6
  90. data/ext/ice/cpp/include/Ice/Service.h +2 -7
  91. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -6
  92. data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
  93. data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -6
  94. data/ext/ice/cpp/include/Ice/StreamHelpers.h +2 -7
  95. data/ext/ice/cpp/include/Ice/StringConverter.h +1 -6
  96. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -6
  97. data/ext/ice/cpp/include/Ice/UUID.h +1 -6
  98. data/ext/ice/cpp/include/Ice/UniquePtr.h +1 -6
  99. data/ext/ice/cpp/include/Ice/UniqueRef.h +1 -6
  100. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -6
  101. data/ext/ice/cpp/include/Ice/Value.h +2 -7
  102. data/ext/ice/cpp/include/Ice/ValueF.h +1 -6
  103. data/ext/ice/cpp/include/IceSSL/Config.h +1 -6
  104. data/ext/ice/cpp/include/IceSSL/IceSSL.h +1 -6
  105. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +1 -6
  106. data/ext/ice/cpp/include/IceSSL/Plugin.h +59 -6
  107. data/ext/ice/cpp/include/IceSSL/SChannel.h +5 -6
  108. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +5 -6
  109. data/ext/ice/cpp/include/IceSSL/UWP.h +1 -6
  110. data/ext/ice/cpp/include/IceUtil/Atomic.h +2 -7
  111. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -6
  112. data/ext/ice/cpp/include/IceUtil/Config.h +34 -20
  113. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +5 -10
  114. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -6
  115. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +26 -38
  116. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +5 -11
  117. data/ext/ice/cpp/include/IceUtil/Exception.h +130 -11
  118. data/ext/ice/cpp/include/IceUtil/FileUtil.h +1 -6
  119. data/ext/ice/cpp/include/IceUtil/Functional.h +5 -6
  120. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -6
  121. data/ext/ice/cpp/include/IceUtil/IceUtil.h +1 -6
  122. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -6
  123. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -6
  124. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -6
  125. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -6
  126. data/ext/ice/cpp/include/IceUtil/Mutex.h +2 -9
  127. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -6
  128. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +5 -10
  129. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -6
  130. data/ext/ice/cpp/include/IceUtil/Optional.h +9 -6
  131. data/ext/ice/cpp/include/IceUtil/Options.h +1 -6
  132. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +18 -20
  133. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -6
  134. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +8 -6
  135. data/ext/ice/cpp/include/IceUtil/Random.h +37 -6
  136. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -6
  137. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +4 -9
  138. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +8 -7
  139. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -6
  140. data/ext/ice/cpp/include/IceUtil/Shared.h +1 -6
  141. data/ext/ice/cpp/include/IceUtil/StopWatch.h +1 -6
  142. data/ext/ice/cpp/include/IceUtil/StringConverter.h +2 -7
  143. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -6
  144. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -6
  145. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -6
  146. data/ext/ice/cpp/include/IceUtil/Time.h +1 -6
  147. data/ext/ice/cpp/include/IceUtil/Timer.h +1 -6
  148. data/ext/ice/cpp/include/IceUtil/UUID.h +1 -6
  149. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -6
  150. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +12 -17
  151. data/ext/ice/cpp/include/generated/Ice/Communicator.h +35 -34
  152. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +4 -9
  153. data/ext/ice/cpp/include/generated/Ice/Connection.h +92 -57
  154. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +4 -9
  155. data/ext/ice/cpp/include/generated/Ice/Current.h +51 -57
  156. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +73 -42
  157. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +5 -10
  158. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +8 -13
  159. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +5 -10
  160. data/ext/ice/cpp/include/generated/Ice/Identity.h +7 -13
  161. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +28 -27
  162. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +4 -9
  163. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +76 -21
  164. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +4 -9
  165. data/ext/ice/cpp/include/generated/Ice/LocalException.h +597 -272
  166. data/ext/ice/cpp/include/generated/Ice/Locator.h +135 -52
  167. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +8 -13
  168. data/ext/ice/cpp/include/generated/Ice/Logger.h +10 -9
  169. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +4 -9
  170. data/ext/ice/cpp/include/generated/Ice/Metrics.h +175 -134
  171. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +20 -19
  172. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +4 -9
  173. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +16 -15
  174. data/ext/ice/cpp/include/generated/Ice/Plugin.h +18 -11
  175. data/ext/ice/cpp/include/generated/Ice/PluginF.h +4 -9
  176. data/ext/ice/cpp/include/generated/Ice/Process.h +14 -13
  177. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +6 -11
  178. data/ext/ice/cpp/include/generated/Ice/Properties.h +22 -21
  179. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +20 -19
  180. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +6 -11
  181. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +39 -28
  182. data/ext/ice/cpp/include/generated/Ice/Router.h +43 -36
  183. data/ext/ice/cpp/include/generated/Ice/RouterF.h +6 -11
  184. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +38 -37
  185. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +4 -9
  186. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +4 -9
  187. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +22 -15
  188. data/ext/ice/cpp/include/generated/Ice/Version.h +16 -23
  189. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +12 -12
  190. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +4 -9
  191. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +10 -10
  192. data/ext/ice/cpp/src/Ice/ACM.cpp +14 -16
  193. data/ext/ice/cpp/src/Ice/ACM.h +1 -6
  194. data/ext/ice/cpp/src/Ice/ACMF.h +1 -6
  195. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -6
  196. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -6
  197. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -6
  198. data/ext/ice/cpp/src/Ice/ArgVector.cpp +8 -13
  199. data/ext/ice/cpp/src/Ice/ArgVector.h +1 -6
  200. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -7
  201. data/ext/ice/cpp/src/Ice/Base64.cpp +12 -18
  202. data/ext/ice/cpp/src/Ice/Base64.h +1 -6
  203. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +2 -7
  204. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +1 -6
  205. data/ext/ice/cpp/src/Ice/Buffer.cpp +3 -8
  206. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +4 -9
  207. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +2 -8
  208. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +1 -6
  209. data/ext/ice/cpp/src/Ice/Communicator.cpp +4 -9
  210. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +4 -9
  211. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +23 -10
  212. data/ext/ice/cpp/src/Ice/CommunicatorI.h +6 -7
  213. data/ext/ice/cpp/src/Ice/Cond.cpp +1 -6
  214. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +1 -6
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +5 -10
  216. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +1 -6
  217. data/ext/ice/cpp/src/Ice/Connection.cpp +4 -9
  218. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +4 -9
  219. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +146 -36
  220. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +4 -6
  221. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +1 -6
  222. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +34 -24
  223. data/ext/ice/cpp/src/Ice/ConnectionI.h +1 -6
  224. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +1 -6
  225. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +2 -7
  226. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -6
  227. data/ext/ice/cpp/src/Ice/Connector.h +1 -6
  228. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -6
  229. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +1 -6
  230. data/ext/ice/cpp/src/Ice/Current.cpp +4 -9
  231. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -6
  232. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -6
  233. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -6
  234. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +14 -6
  235. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +7 -11
  236. data/ext/ice/cpp/src/Ice/Endpoint.cpp +4 -9
  237. data/ext/ice/cpp/src/Ice/EndpointF.cpp +4 -9
  238. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +1 -6
  239. data/ext/ice/cpp/src/Ice/EndpointFactory.h +1 -6
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -6
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -6
  242. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -6
  243. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -6
  244. data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -6
  245. data/ext/ice/cpp/src/Ice/EndpointI.h +1 -6
  246. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -6
  247. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +4 -9
  248. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -6
  249. data/ext/ice/cpp/src/Ice/EventHandler.h +1 -6
  250. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -6
  251. data/ext/ice/cpp/src/Ice/Exception.cpp +8 -13
  252. data/ext/ice/cpp/src/Ice/FacetMap.cpp +4 -9
  253. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -6
  254. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +1 -6
  255. data/ext/ice/cpp/src/Ice/GCObject.cpp +2 -7
  256. data/ext/ice/cpp/src/Ice/HashUtil.h +2 -7
  257. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -6
  258. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -6
  259. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +14 -31
  260. data/ext/ice/cpp/src/Ice/IPEndpointI.h +1 -6
  261. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -6
  262. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +1 -6
  263. data/ext/ice/cpp/src/Ice/Identity.cpp +4 -9
  264. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +4 -9
  265. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +4 -9
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +2 -8
  267. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -6
  268. data/ext/ice/cpp/src/Ice/Incoming.cpp +11 -13
  269. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -6
  270. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -6
  271. data/ext/ice/cpp/src/Ice/Initialize.cpp +6 -11
  272. data/ext/ice/cpp/src/Ice/InputStream.cpp +55 -87
  273. data/ext/ice/cpp/src/Ice/Instance.cpp +58 -13
  274. data/ext/ice/cpp/src/Ice/Instance.h +3 -6
  275. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +4 -9
  276. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +4 -9
  277. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +2 -7
  278. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -6
  279. data/ext/ice/cpp/src/Ice/LocalException.cpp +400 -9
  280. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -6
  281. data/ext/ice/cpp/src/Ice/Locator.cpp +52 -27
  282. data/ext/ice/cpp/src/Ice/LocatorF.cpp +4 -9
  283. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +25 -22
  284. data/ext/ice/cpp/src/Ice/LocatorInfo.h +3 -8
  285. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -6
  286. data/ext/ice/cpp/src/Ice/Logger.cpp +4 -9
  287. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +8 -19
  288. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -6
  289. data/ext/ice/cpp/src/Ice/LoggerF.cpp +4 -9
  290. data/ext/ice/cpp/src/Ice/LoggerI.cpp +13 -12
  291. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -6
  292. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +1 -6
  293. data/ext/ice/cpp/src/Ice/Metrics.cpp +12 -11
  294. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +9 -9
  295. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -6
  296. data/ext/ice/cpp/src/Ice/Network.cpp +70 -52
  297. data/ext/ice/cpp/src/Ice/Network.h +4 -9
  298. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -6
  299. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +2 -8
  300. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -6
  301. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -6
  302. data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +57 -0
  303. data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +40 -0
  304. data/ext/ice/cpp/src/Ice/Object.cpp +10 -14
  305. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +4 -9
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +4 -9
  307. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +1 -6
  308. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +1 -6
  309. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +1 -6
  310. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +22 -7
  311. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +5 -6
  312. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +4 -9
  313. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -6
  314. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +5 -10
  315. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -6
  316. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +6 -9
  317. data/ext/ice/cpp/src/Ice/OutputStream.cpp +29 -61
  318. data/ext/ice/cpp/src/Ice/Plugin.cpp +4 -9
  319. data/ext/ice/cpp/src/Ice/PluginF.cpp +4 -9
  320. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +1 -6
  321. data/ext/ice/cpp/src/Ice/PluginManagerI.h +1 -6
  322. data/ext/ice/cpp/src/Ice/Process.cpp +8 -13
  323. data/ext/ice/cpp/src/Ice/ProcessF.cpp +4 -9
  324. data/ext/ice/cpp/src/Ice/Properties.cpp +4 -9
  325. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +11 -16
  326. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +3 -8
  327. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -6
  328. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +4 -9
  329. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +13 -17
  330. data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -6
  331. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +42 -8
  332. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -7
  333. data/ext/ice/cpp/src/Ice/Protocol.cpp +1 -6
  334. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +1 -6
  335. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +1 -6
  336. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -6
  337. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -6
  338. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -6
  339. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -6
  340. data/ext/ice/cpp/src/Ice/Proxy.cpp +9 -8
  341. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +11 -7
  342. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -6
  343. data/ext/ice/cpp/src/Ice/Reference.cpp +61 -33
  344. data/ext/ice/cpp/src/Ice/Reference.h +1 -6
  345. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +2 -9
  346. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -6
  347. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -6
  348. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +4 -8
  349. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -6
  350. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +20 -19
  351. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -6
  352. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -6
  353. data/ext/ice/cpp/src/Ice/RequestHandler.h +1 -6
  354. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +1 -6
  355. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +1 -6
  356. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -6
  357. data/ext/ice/cpp/src/Ice/ResponseHandler.h +1 -6
  358. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +7 -9
  359. data/ext/ice/cpp/src/Ice/RetryQueue.h +1 -6
  360. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -6
  361. data/ext/ice/cpp/src/Ice/Router.cpp +15 -20
  362. data/ext/ice/cpp/src/Ice/RouterF.cpp +4 -9
  363. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +3 -8
  364. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -6
  365. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -6
  366. data/ext/ice/cpp/src/Ice/SHA1.cpp +3 -8
  367. data/ext/ice/cpp/src/Ice/Selector.cpp +59 -25
  368. data/ext/ice/cpp/src/Ice/Selector.h +1 -6
  369. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +4 -9
  370. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +4 -9
  371. data/ext/ice/cpp/src/Ice/ServantManager.cpp +7 -12
  372. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -6
  373. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -6
  374. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +4 -9
  375. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -6
  376. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -6
  377. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +15 -18
  378. data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -6
  379. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -6
  380. data/ext/ice/cpp/src/Ice/StringUtil.h +1 -6
  381. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +3 -8
  382. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -6
  383. data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +66 -0
  384. data/ext/ice/cpp/src/Ice/SystemdJournalI.h +39 -0
  385. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +9 -7
  386. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -6
  387. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +6 -6
  388. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -6
  389. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +6 -6
  390. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +1 -6
  391. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +6 -6
  392. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +1 -6
  393. data/ext/ice/cpp/src/Ice/Thread.cpp +18 -14
  394. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +69 -9
  395. data/ext/ice/cpp/src/Ice/ThreadPool.h +11 -12
  396. data/ext/ice/cpp/src/Ice/Timer.cpp +11 -6
  397. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +1 -6
  398. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -6
  399. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -6
  400. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +1 -6
  401. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -6
  402. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -6
  403. data/ext/ice/cpp/src/Ice/Transceiver.h +1 -6
  404. data/ext/ice/cpp/src/Ice/TransceiverF.h +3 -8
  405. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +4 -6
  406. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -6
  407. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +12 -7
  408. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +1 -6
  409. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +33 -26
  410. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +1 -6
  411. data/ext/ice/cpp/src/Ice/Value.cpp +1 -6
  412. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +4 -9
  413. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +1 -7
  414. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +1 -6
  415. data/ext/ice/cpp/src/Ice/Version.cpp +4 -9
  416. data/ext/ice/cpp/src/Ice/VirtualShared.h +1 -6
  417. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -6
  418. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -6
  419. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -6
  420. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -6
  421. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +1 -6
  422. data/ext/ice/cpp/src/Ice/WSEndpoint.h +1 -6
  423. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +18 -22
  424. data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -7
  425. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +4 -9
  426. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +497 -17
  427. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +4 -7
  428. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -6
  429. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +5 -10
  430. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -6
  431. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +1 -6
  432. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -6
  433. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +4 -9
  434. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +22 -15
  435. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +1 -6
  436. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +52 -17
  437. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +1 -6
  438. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -6
  439. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +4 -9
  440. data/ext/ice/cpp/src/IceSSL/CertificateI.h +1 -6
  441. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +4 -9
  442. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +4 -9
  443. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -6
  444. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -6
  445. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +8 -13
  446. data/ext/ice/cpp/src/IceSSL/EndpointI.h +2 -7
  447. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +4 -9
  448. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
  449. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -6
  450. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -6
  451. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +15 -20
  452. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +100 -46
  453. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +3 -8
  454. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +1 -6
  455. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +1 -6
  456. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +271 -147
  457. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +3 -11
  458. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +1 -6
  459. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +1 -6
  460. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +115 -6
  461. data/ext/ice/cpp/src/IceSSL/PluginI.h +11 -6
  462. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -7
  463. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -6
  464. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +5 -10
  465. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +69 -36
  466. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +5 -8
  467. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +5 -6
  468. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +1 -6
  469. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +154 -38
  470. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +8 -6
  471. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +21 -14
  472. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +3 -6
  473. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -6
  474. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +37 -31
  475. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +44 -18
  476. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +5 -6
  477. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +4 -6
  478. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +1 -6
  479. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +160 -99
  480. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +7 -7
  481. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +35 -25
  482. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +5 -6
  483. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -6
  484. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -6
  485. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -6
  486. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +4 -9
  487. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +4 -9
  488. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +1 -6
  489. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +1 -6
  490. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +1 -6
  491. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +5 -10
  492. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +1 -6
  493. data/ext/ice/cpp/src/IceSSL/Util.cpp +12 -11
  494. data/ext/ice/cpp/src/IceSSL/Util.h +1 -6
  495. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +1 -6
  496. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -6
  497. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -6
  498. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +3 -6
  499. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +2 -7
  500. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -6
  501. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -6
  502. data/ext/ice/cpp/src/IceUtil/Options.cpp +25 -15
  503. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +41 -16
  504. data/ext/ice/cpp/src/IceUtil/Random.cpp +3 -8
  505. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +2 -7
  506. data/ext/ice/cpp/src/IceUtil/Shared.cpp +1 -6
  507. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +6 -11
  508. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +45 -12
  509. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -6
  510. data/ext/ice/cpp/src/IceUtil/Time.cpp +12 -19
  511. data/ext/ice/cpp/src/IceUtil/UUID.cpp +6 -11
  512. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -6
  513. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -6
  514. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +17 -16
  515. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +75 -73
  516. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +3 -8
  517. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -6
  518. data/ext/ice/cpp/src/Slice/Checksum.h +1 -6
  519. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -6
  520. data/ext/ice/cpp/src/Slice/FileTracker.h +1 -6
  521. data/ext/ice/cpp/src/Slice/Grammar.cpp +249 -245
  522. data/ext/ice/cpp/src/Slice/Grammar.h +5 -5
  523. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -7
  524. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +89 -92
  525. data/ext/ice/cpp/src/Slice/JavaUtil.h +5 -10
  526. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -6
  527. data/ext/ice/cpp/src/Slice/MD5.h +1 -6
  528. data/ext/ice/cpp/src/Slice/MD5I.cpp +8 -0
  529. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +10 -6
  530. data/ext/ice/cpp/src/Slice/PHPUtil.h +1 -6
  531. data/ext/ice/cpp/src/Slice/Parser.cpp +153 -166
  532. data/ext/ice/cpp/src/Slice/Parser.h +33 -10
  533. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +25 -17
  534. data/ext/ice/cpp/src/Slice/Preprocessor.h +2 -7
  535. data/ext/ice/cpp/src/Slice/Python.cpp +22 -28
  536. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +80 -49
  537. data/ext/ice/cpp/src/Slice/PythonUtil.h +1 -6
  538. data/ext/ice/cpp/src/Slice/Ruby.cpp +5 -10
  539. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +13 -15
  540. data/ext/ice/cpp/src/Slice/RubyUtil.h +1 -6
  541. data/ext/ice/cpp/src/Slice/Scanner.cpp +689 -437
  542. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +2 -8
  543. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +12 -12
  544. data/ext/ice/cpp/src/Slice/Util.h +1 -6
  545. data/ext/ice/mcpp/CMakeLists.txt +80 -0
  546. data/ext/ice/mcpp/Makefile +2 -5
  547. data/ext/ice/mcpp/expand.c +6 -6
  548. data/ice.gemspec +2 -4
  549. data/lib/Glacier2.rb +1 -6
  550. data/lib/Glacier2/Metrics.rb +3 -8
  551. data/lib/Glacier2/PermissionsVerifier.rb +3 -8
  552. data/lib/Glacier2/PermissionsVerifierF.rb +3 -8
  553. data/lib/Glacier2/Router.rb +3 -8
  554. data/lib/Glacier2/RouterF.rb +3 -8
  555. data/lib/Glacier2/SSLInfo.rb +3 -8
  556. data/lib/Glacier2/Session.rb +3 -8
  557. data/lib/Ice.rb +1 -6
  558. data/lib/Ice/BuiltinSequences.rb +3 -8
  559. data/lib/Ice/Communicator.rb +3 -8
  560. data/lib/Ice/CommunicatorF.rb +3 -8
  561. data/lib/Ice/Connection.rb +3 -8
  562. data/lib/Ice/ConnectionF.rb +3 -8
  563. data/lib/Ice/Current.rb +3 -8
  564. data/lib/Ice/Endpoint.rb +3 -8
  565. data/lib/Ice/EndpointF.rb +3 -8
  566. data/lib/Ice/EndpointTypes.rb +3 -8
  567. data/lib/Ice/FacetMap.rb +3 -8
  568. data/lib/Ice/Identity.rb +3 -8
  569. data/lib/Ice/ImplicitContext.rb +3 -8
  570. data/lib/Ice/ImplicitContextF.rb +3 -8
  571. data/lib/Ice/Instrumentation.rb +3 -8
  572. data/lib/Ice/InstrumentationF.rb +3 -8
  573. data/lib/Ice/LocalException.rb +3 -8
  574. data/lib/Ice/Locator.rb +3 -8
  575. data/lib/Ice/LocatorF.rb +3 -8
  576. data/lib/Ice/Logger.rb +3 -8
  577. data/lib/Ice/LoggerF.rb +3 -8
  578. data/lib/Ice/Metrics.rb +3 -8
  579. data/lib/Ice/ObjectAdapter.rb +3 -8
  580. data/lib/Ice/ObjectAdapterF.rb +3 -8
  581. data/lib/Ice/ObjectFactory.rb +3 -8
  582. data/lib/Ice/Plugin.rb +3 -8
  583. data/lib/Ice/PluginF.rb +3 -8
  584. data/lib/Ice/Process.rb +3 -8
  585. data/lib/Ice/ProcessF.rb +3 -8
  586. data/lib/Ice/Properties.rb +3 -8
  587. data/lib/Ice/PropertiesAdmin.rb +3 -8
  588. data/lib/Ice/PropertiesF.rb +3 -8
  589. data/lib/Ice/RemoteLogger.rb +3 -8
  590. data/lib/Ice/Router.rb +3 -8
  591. data/lib/Ice/RouterF.rb +3 -8
  592. data/lib/Ice/ServantLocator.rb +3 -8
  593. data/lib/Ice/ServantLocatorF.rb +3 -8
  594. data/lib/Ice/SliceChecksumDict.rb +3 -8
  595. data/lib/Ice/ValueFactory.rb +3 -8
  596. data/lib/Ice/Version.rb +3 -8
  597. data/lib/IceBox.rb +1 -6
  598. data/lib/IceBox/IceBox.rb +3 -8
  599. data/lib/IceGrid.rb +1 -6
  600. data/lib/IceGrid/Admin.rb +3 -8
  601. data/lib/IceGrid/Descriptor.rb +3 -8
  602. data/lib/IceGrid/Exception.rb +3 -8
  603. data/lib/IceGrid/FileParser.rb +3 -8
  604. data/lib/IceGrid/PluginFacade.rb +3 -8
  605. data/lib/IceGrid/Registry.rb +3 -8
  606. data/lib/IceGrid/Session.rb +3 -8
  607. data/lib/IceGrid/UserAccountMapper.rb +3 -8
  608. data/lib/IcePatch2.rb +1 -6
  609. data/lib/IcePatch2/FileInfo.rb +3 -8
  610. data/lib/IcePatch2/FileServer.rb +3 -8
  611. data/lib/IceStorm.rb +1 -6
  612. data/lib/IceStorm/IceStorm.rb +3 -8
  613. data/lib/IceStorm/Metrics.rb +3 -8
  614. data/slice/Glacier2/Metrics.ice +14 -8
  615. data/slice/Glacier2/PermissionsVerifier.ice +11 -7
  616. data/slice/Glacier2/PermissionsVerifierF.ice +11 -7
  617. data/slice/Glacier2/Router.ice +12 -8
  618. data/slice/Glacier2/RouterF.ice +11 -7
  619. data/slice/Glacier2/SSLInfo.ice +11 -7
  620. data/slice/Glacier2/Session.ice +11 -7
  621. data/slice/Ice/BuiltinSequences.ice +13 -7
  622. data/slice/Ice/Communicator.ice +92 -44
  623. data/slice/Ice/CommunicatorF.ice +13 -7
  624. data/slice/Ice/Connection.ice +35 -29
  625. data/slice/Ice/ConnectionF.ice +13 -7
  626. data/slice/Ice/Current.ice +29 -23
  627. data/slice/Ice/Endpoint.ice +22 -19
  628. data/slice/Ice/EndpointF.ice +14 -8
  629. data/slice/Ice/EndpointTypes.ice +15 -9
  630. data/slice/Ice/FacetMap.ice +14 -8
  631. data/slice/Ice/Identity.ice +13 -7
  632. data/slice/Ice/ImplicitContext.ice +28 -22
  633. data/slice/Ice/ImplicitContextF.ice +12 -7
  634. data/slice/Ice/Instrumentation.ice +19 -13
  635. data/slice/Ice/InstrumentationF.ice +13 -7
  636. data/slice/Ice/LocalException.ice +35 -29
  637. data/slice/Ice/Locator.ice +13 -7
  638. data/slice/Ice/LocatorF.ice +13 -7
  639. data/slice/Ice/Logger.ice +19 -13
  640. data/slice/Ice/LoggerF.ice +13 -7
  641. data/slice/Ice/Metrics.ice +26 -18
  642. data/slice/Ice/ObjectAdapter.ice +63 -45
  643. data/slice/Ice/ObjectAdapterF.ice +13 -7
  644. data/slice/Ice/ObjectFactory.ice +20 -12
  645. data/slice/Ice/Plugin.ice +19 -10
  646. data/slice/Ice/PluginF.ice +17 -7
  647. data/slice/Ice/Process.ice +13 -7
  648. data/slice/Ice/ProcessF.ice +13 -7
  649. data/slice/Ice/Properties.ice +35 -24
  650. data/slice/Ice/PropertiesAdmin.ice +13 -7
  651. data/slice/Ice/PropertiesF.ice +13 -7
  652. data/slice/Ice/RemoteLogger.ice +13 -7
  653. data/slice/Ice/Router.ice +14 -8
  654. data/slice/Ice/RouterF.ice +13 -7
  655. data/slice/Ice/ServantLocator.ice +31 -23
  656. data/slice/Ice/ServantLocatorF.ice +13 -7
  657. data/slice/Ice/SliceChecksumDict.ice +13 -7
  658. data/slice/Ice/ValueFactory.ice +22 -15
  659. data/slice/Ice/Version.ice +13 -7
  660. data/slice/IceBT/ConnectionInfo.ice +12 -7
  661. data/slice/IceBT/EndpointInfo.ice +13 -8
  662. data/slice/IceBT/Types.ice +12 -7
  663. data/slice/IceBox/IceBox.ice +29 -9
  664. data/slice/IceDiscovery/IceDiscovery.ice +68 -7
  665. data/slice/IceGrid/Admin.ice +41 -35
  666. data/slice/IceGrid/Descriptor.ice +15 -10
  667. data/slice/IceGrid/Exception.ice +15 -10
  668. data/slice/IceGrid/FileParser.ice +14 -8
  669. data/slice/IceGrid/PluginFacade.ice +17 -11
  670. data/slice/IceGrid/Registry.ice +13 -7
  671. data/slice/IceGrid/Session.ice +18 -12
  672. data/slice/IceGrid/UserAccountMapper.ice +16 -10
  673. data/slice/IceIAP/ConnectionInfo.ice +11 -8
  674. data/slice/IceIAP/EndpointInfo.ice +11 -8
  675. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +12 -7
  676. data/slice/IcePatch2/FileInfo.ice +12 -7
  677. data/slice/IcePatch2/FileServer.ice +13 -8
  678. data/slice/IceSSL/ConnectionInfo.ice +16 -9
  679. data/slice/IceSSL/ConnectionInfoF.ice +14 -8
  680. data/slice/IceSSL/EndpointInfo.ice +14 -8
  681. data/slice/IceStorm/IceStorm.ice +17 -11
  682. data/slice/IceStorm/Metrics.ice +12 -8
  683. metadata +8 -4
data/ext/Proxy.h CHANGED
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICE_RUBY_PROXY_H
11
6
  #define ICE_RUBY_PROXY_H
data/ext/Slice.cpp CHANGED
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <Slice.h>
11
6
  #include <Util.h>
@@ -21,7 +16,7 @@ using namespace Slice::Ruby;
21
16
 
22
17
  extern "C"
23
18
  VALUE
24
- IceRuby_loadSlice(int argc, VALUE* argv, VALUE self)
19
+ IceRuby_loadSlice(int argc, VALUE* argv, VALUE /*self*/)
25
20
  {
26
21
  ICE_RUBY_TRY
27
22
  {
@@ -163,7 +158,7 @@ IceRuby_loadSlice(int argc, VALUE* argv, VALUE self)
163
158
 
164
159
  extern "C"
165
160
  VALUE
166
- IceRuby_compile(int argc, VALUE* argv, VALUE self)
161
+ IceRuby_compile(int argc, VALUE* argv, VALUE /*self*/)
167
162
  {
168
163
  ICE_RUBY_TRY
169
164
  {
@@ -190,16 +185,6 @@ IceRuby_compile(int argc, VALUE* argv, VALUE self)
190
185
  cerr << argSeq[0] << ": error:" << ex.what() << endl;
191
186
  rc = EXIT_FAILURE;
192
187
  }
193
- catch(const std::string& msg)
194
- {
195
- cerr << argSeq[0] << ": error:" << msg << endl;
196
- rc = EXIT_FAILURE;
197
- }
198
- catch(const char* msg)
199
- {
200
- cerr << argSeq[0] << ": error:" << msg << endl;
201
- rc = EXIT_FAILURE;
202
- }
203
188
  catch(...)
204
189
  {
205
190
  cerr << argSeq[0] << ": error:" << "unknown exception" << endl;
data/ext/Slice.h CHANGED
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICE_RUBY_SLICE_H
11
6
  #define ICE_RUBY_SLICE_H
data/ext/Types.cpp CHANGED
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <Types.h>
11
6
  #include <Proxy.h>
@@ -80,9 +75,9 @@ escapeString(const string& str)
80
75
  {
81
76
  if(charSet.find(*c) == charSet.end())
82
77
  {
83
- unsigned char uc = *c; // char may be signed, so make it positive
78
+ unsigned char uc = static_cast<unsigned char>(*c); // char may be signed, so make it positive
84
79
  ostringstream s;
85
- s << "\\"; // Print as octal if not in basic source character set
80
+ s << "\\"; // Print as octal if not in basic source character set
86
81
  s.width(3);
87
82
  s.fill('0');
88
83
  s << oct;
@@ -245,8 +240,7 @@ IceRuby::StreamUtil::setSlicedDataMember(VALUE obj, const Ice::SlicedDataPtr& sl
245
240
 
246
241
  volatile VALUE sd = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), _slicedDataType);
247
242
 
248
- Ice::Int sz = slicedData->slices.size();
249
- volatile VALUE slices = createArray(sz);
243
+ volatile VALUE slices = createArray(static_cast<long>(slicedData->slices.size()));
250
244
 
251
245
  callRuby(rb_iv_set, sd, "@slices", slices);
252
246
 
@@ -276,13 +270,15 @@ IceRuby::StreamUtil::setSlicedDataMember(VALUE obj, const Ice::SlicedDataPtr& sl
276
270
  //
277
271
  // bytes
278
272
  //
279
- volatile VALUE bytes = callRuby(rb_str_new, reinterpret_cast<const char*>(&(*p)->bytes[0]), (*p)->bytes.size());
273
+ volatile VALUE bytes = callRuby(rb_str_new,
274
+ (*p)->bytes.empty() ? 0 : reinterpret_cast<const char*>(&(*p)->bytes[0]),
275
+ static_cast<long>((*p)->bytes.size()));
280
276
  callRuby(rb_iv_set, slice, "@bytes", bytes);
281
277
 
282
278
  //
283
279
  // instances
284
280
  //
285
- volatile VALUE instances = createArray((*p)->instances.size());
281
+ volatile VALUE instances = createArray(static_cast<long>((*p)->instances.size()));
286
282
  callRuby(rb_iv_set, slice, "@instances", instances);
287
283
 
288
284
  int j = 0;
@@ -370,15 +366,15 @@ IceRuby::StreamUtil::getSlicedDataMember(VALUE obj, ObjectMap* objectMap)
370
366
 
371
367
  Ice::ObjectPtr writer;
372
368
 
373
- ObjectMap::iterator i = objectMap->find(o);
374
- if(i == objectMap->end())
369
+ ObjectMap::iterator k = objectMap->find(o);
370
+ if(k == objectMap->end())
375
371
  {
376
372
  writer = new ObjectWriter(o, objectMap, 0);
377
373
  objectMap->insert(ObjectMap::value_type(o, writer));
378
374
  }
379
375
  else
380
376
  {
381
- writer = i->second;
377
+ writer = k->second;
382
378
  }
383
379
 
384
380
  info->instances.push_back(writer);
@@ -1017,7 +1013,7 @@ IceRuby::StructInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMa
1017
1013
  p = _nullMarshalValue;
1018
1014
  }
1019
1015
 
1020
- Ice::OutputStream::size_type sizePos = -1;
1016
+ Ice::OutputStream::size_type sizePos = 0;
1021
1017
  if(optional)
1022
1018
  {
1023
1019
  if(_variableLength)
@@ -1157,8 +1153,8 @@ IceRuby::SequenceInfo::validate(VALUE val)
1157
1153
  return true;
1158
1154
  }
1159
1155
  }
1160
- ID id = rb_intern("to_ary");
1161
- return callRuby(rb_respond_to, val, id) != 0;
1156
+ ID rbid = rb_intern("to_ary");
1157
+ return callRuby(rb_respond_to, val, rbid) != 0;
1162
1158
  }
1163
1159
 
1164
1160
  bool
@@ -1192,7 +1188,7 @@ IceRuby::SequenceInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* object
1192
1188
 
1193
1189
  volatile VALUE arr = Qnil;
1194
1190
 
1195
- Ice::OutputStream::size_type sizePos = -1;
1191
+ Ice::OutputStream::size_type sizePos = 0;
1196
1192
  if(optional)
1197
1193
  {
1198
1194
  if(elementType->variableLength())
@@ -1400,10 +1396,10 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1400
1396
  case PrimitiveInfo::KindBool:
1401
1397
  {
1402
1398
  long sz = RARRAY_LEN(arr);
1403
- Ice::BoolSeq seq(sz);
1399
+ Ice::BoolSeq seq(static_cast<size_t>(sz));
1404
1400
  for(long i = 0; i < sz; ++i)
1405
1401
  {
1406
- seq[i] = RTEST(RARRAY_AREF(arr, i));
1402
+ seq[static_cast<size_t>(i)] = RTEST(RARRAY_AREF(arr, i));
1407
1403
  }
1408
1404
  os->write(seq);
1409
1405
  break;
@@ -1426,7 +1422,7 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1426
1422
  else
1427
1423
  {
1428
1424
  long sz = RARRAY_LEN(arr);
1429
- Ice::ByteSeq seq(sz);
1425
+ Ice::ByteSeq seq(static_cast<size_t>(sz));
1430
1426
  for(long i = 0; i < sz; ++i)
1431
1427
  {
1432
1428
  long val = getInteger(RARRAY_AREF(arr, i));
@@ -1434,16 +1430,16 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1434
1430
  {
1435
1431
  throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<byte>", i);
1436
1432
  }
1437
- seq[i] = static_cast<Ice::Byte>(val);
1433
+ seq[static_cast<size_t>(i)] = static_cast<Ice::Byte>(val);
1438
1434
  }
1439
- os->write(&seq[0], &seq[0] + seq.size());
1435
+ os->write(seq);
1440
1436
  }
1441
1437
  break;
1442
1438
  }
1443
1439
  case PrimitiveInfo::KindShort:
1444
1440
  {
1445
1441
  long sz = RARRAY_LEN(arr);
1446
- Ice::ShortSeq seq(sz);
1442
+ Ice::ShortSeq seq(static_cast<size_t>(sz));
1447
1443
  for(long i = 0; i < sz; ++i)
1448
1444
  {
1449
1445
  long val = getInteger(RARRAY_AREF(arr, i));
@@ -1451,15 +1447,15 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1451
1447
  {
1452
1448
  throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<short>", i);
1453
1449
  }
1454
- seq[i] = static_cast<Ice::Short>(val);
1450
+ seq[static_cast<size_t>(i)] = static_cast<Ice::Short>(val);
1455
1451
  }
1456
- os->write(&seq[0], &seq[0] + seq.size());
1452
+ os->write(seq);
1457
1453
  break;
1458
1454
  }
1459
1455
  case PrimitiveInfo::KindInt:
1460
1456
  {
1461
1457
  long sz = RARRAY_LEN(arr);
1462
- Ice::IntSeq seq(sz);
1458
+ Ice::IntSeq seq(static_cast<size_t>(sz));
1463
1459
  for(long i = 0; i < sz; ++i)
1464
1460
  {
1465
1461
  long val = getInteger(RARRAY_AREF(arr, i));
@@ -1467,26 +1463,26 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1467
1463
  {
1468
1464
  throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<int>", i);
1469
1465
  }
1470
- seq[i] = static_cast<Ice::Int>(val);
1466
+ seq[static_cast<size_t>(i)] = static_cast<Ice::Int>(val);
1471
1467
  }
1472
- os->write(&seq[0], &seq[0] + seq.size());
1468
+ os->write(seq);
1473
1469
  break;
1474
1470
  }
1475
1471
  case PrimitiveInfo::KindLong:
1476
1472
  {
1477
1473
  long sz = RARRAY_LEN(arr);
1478
- Ice::LongSeq seq(sz);
1474
+ Ice::LongSeq seq(static_cast<size_t>(sz));
1479
1475
  for(long i = 0; i < sz; ++i)
1480
1476
  {
1481
- seq[i] = getLong(RARRAY_AREF(arr, i));
1477
+ seq[static_cast<size_t>(i)] = getLong(RARRAY_AREF(arr, i));
1482
1478
  }
1483
- os->write(&seq[0], &seq[0] + seq.size());
1479
+ os->write(seq);
1484
1480
  break;
1485
1481
  }
1486
1482
  case PrimitiveInfo::KindFloat:
1487
1483
  {
1488
1484
  long sz = RARRAY_LEN(arr);
1489
- Ice::FloatSeq seq(sz);
1485
+ Ice::FloatSeq seq(static_cast<size_t>(sz));
1490
1486
  for(long i = 0; i < sz; ++i)
1491
1487
  {
1492
1488
  volatile VALUE v = callRuby(rb_Float, RARRAY_AREF(arr, i));
@@ -1495,15 +1491,15 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1495
1491
  throw RubyException(rb_eTypeError, "unable to convert array element %ld to a float", i);
1496
1492
  }
1497
1493
  assert(TYPE(v) == T_FLOAT);
1498
- seq[i] = static_cast<Ice::Float>(RFLOAT_VALUE(v));
1494
+ seq[static_cast<size_t>(i)] = static_cast<Ice::Float>(RFLOAT_VALUE(v));
1499
1495
  }
1500
- os->write(&seq[0], &seq[0] + seq.size());
1496
+ os->write(seq);
1501
1497
  break;
1502
1498
  }
1503
1499
  case PrimitiveInfo::KindDouble:
1504
1500
  {
1505
1501
  long sz = RARRAY_LEN(arr);
1506
- Ice::DoubleSeq seq(sz);
1502
+ Ice::DoubleSeq seq(static_cast<size_t>(sz));
1507
1503
  for(long i = 0; i < sz; ++i)
1508
1504
  {
1509
1505
  volatile VALUE v = callRuby(rb_Float, RARRAY_AREF(arr, i));
@@ -1512,24 +1508,31 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1512
1508
  throw RubyException(rb_eTypeError, "unable to convert array element %ld to a double", i);
1513
1509
  }
1514
1510
  assert(TYPE(v) == T_FLOAT);
1515
- seq[i] = RFLOAT_VALUE(v);
1511
+ seq[static_cast<size_t>(i)] = RFLOAT_VALUE(v);
1516
1512
  }
1517
- os->write(&seq[0], &seq[0] + seq.size());
1513
+ os->write(seq);
1518
1514
  break;
1519
1515
  }
1520
1516
  case PrimitiveInfo::KindString:
1521
1517
  {
1522
1518
  long sz = RARRAY_LEN(arr);
1523
- Ice::StringSeq seq(sz);
1519
+ Ice::StringSeq seq(static_cast<size_t>(sz));
1524
1520
  for(long i = 0; i < sz; ++i)
1525
1521
  {
1526
- seq[i] = getString(RARRAY_AREF(arr, i));
1522
+ seq[static_cast<size_t>(i)] = getString(RARRAY_AREF(arr, i));
1523
+ }
1524
+ if(seq.empty())
1525
+ {
1526
+ os->write(seq);
1527
1527
  }
1528
+ else
1529
+ {
1528
1530
  #ifdef HAVE_RUBY_ENCODING_H
1529
- os->write(&seq[0], &seq[0] + seq.size(), false); // Bypass string conversion.
1531
+ os->write(&seq[0], &seq[0] + seq.size(), false); // Bypass string conversion.
1530
1532
  #else
1531
- os->write(&seq[0], &seq[0] + seq.size(), true);
1533
+ os->write(&seq[0], &seq[0] + seq.size(), true);
1532
1534
  #endif
1535
+ }
1533
1536
  break;
1534
1537
  }
1535
1538
  }
@@ -1663,12 +1666,9 @@ IceRuby::SequenceInfo::unmarshalPrimitiveSequence(const PrimitiveInfoPtr& pi, Ic
1663
1666
  long sz = static_cast<long>(seq.size());
1664
1667
  result = createArray(sz);
1665
1668
 
1666
- if(sz > 0)
1669
+ for(long i = 0; i < sz; ++i)
1667
1670
  {
1668
- for(long i = 0; i < sz; ++i)
1669
- {
1670
- RARRAY_ASET(result, i, createString(seq[i]));
1671
- }
1671
+ RARRAY_ASET(result, i, createString(seq[static_cast<size_t>(i)]));
1672
1672
  }
1673
1673
  break;
1674
1674
  }
@@ -1705,8 +1705,8 @@ IceRuby::DictionaryInfo::validate(VALUE val)
1705
1705
  {
1706
1706
  return true;
1707
1707
  }
1708
- ID id = rb_intern("to_hash");
1709
- return callRuby(rb_respond_to, val, id) != 0;
1708
+ ID rbid = rb_intern("to_hash");
1709
+ return callRuby(rb_respond_to, val, rbid) != 0;
1710
1710
  }
1711
1711
 
1712
1712
  bool
@@ -1767,10 +1767,10 @@ IceRuby::DictionaryInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* obje
1767
1767
  }
1768
1768
  }
1769
1769
 
1770
- int sz = 0;
1770
+ Ice::Int sz = 0;
1771
1771
  if(!NIL_P(hash))
1772
1772
  {
1773
- sz = RHASH_SIZE(hash);
1773
+ sz = static_cast<Ice::Int>(RHASH_SIZE(hash));
1774
1774
  }
1775
1775
 
1776
1776
  Ice::OutputStream::size_type sizePos = 0;
@@ -1853,7 +1853,18 @@ IceRuby::DictionaryInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallback
1853
1853
  //
1854
1854
  keyType->unmarshal(is, keyCB, Qnil, 0, false);
1855
1855
  assert(!NIL_P(keyCB->key));
1856
-
1856
+ if (valueType->usesClasses())
1857
+ {
1858
+ // Temporarily set the entry with a Qnil value to ensure the key is not GC
1859
+ // while unmarshaling a value class
1860
+ if (RB_TYPE_P(keyCB->key, T_STRING))
1861
+ {
1862
+ // For string keys create a frozen string to ensure that the key used
1863
+ // in the map matches the one keep in the closure
1864
+ keyCB->key = rb_str_new_frozen(keyCB->key);
1865
+ }
1866
+ callRuby(rb_hash_aset, hash, keyCB->key, Qnil);
1867
+ }
1857
1868
  //
1858
1869
  // The callback will set the dictionary entry with the unmarshaled value,
1859
1870
  // so we pass it the key.
@@ -2361,7 +2372,7 @@ IceRuby::ProxyInfo::optionalFormat() const
2361
2372
  void
2362
2373
  IceRuby::ProxyInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap*, bool optional)
2363
2374
  {
2364
- Ice::OutputStream::size_type sizePos = -1;
2375
+ Ice::OutputStream::size_type sizePos = 0;
2365
2376
  if(optional)
2366
2377
  {
2367
2378
  sizePos = os->startSize();
@@ -2744,7 +2755,10 @@ IceRuby::ReadObjectCallback::invoke(const Ice::ObjectPtr& p)
2744
2755
  ex.expectedType = _info->id;
2745
2756
  throw ex;
2746
2757
  }
2747
-
2758
+ #ifndef NDEBUG
2759
+ // With debug builds we force a GC to ensure that all data members are correctly keep alive.
2760
+ rb_gc();
2761
+ #endif
2748
2762
  _cb->unmarshaled(obj, _target, _closure);
2749
2763
  }
2750
2764
  else
@@ -2875,6 +2889,7 @@ IceRuby::ExceptionReader::ExceptionReader(const ExceptionInfoPtr& info) :
2875
2889
  IceRuby::ExceptionReader::~ExceptionReader()
2876
2890
  throw()
2877
2891
  {
2892
+ rb_gc_unregister_address(&_ex);
2878
2893
  }
2879
2894
 
2880
2895
  string
@@ -2910,6 +2925,7 @@ IceRuby::ExceptionReader::_read(Ice::InputStream* is)
2910
2925
  is->startException();
2911
2926
 
2912
2927
  const_cast<VALUE&>(_ex) = _info->unmarshal(is);
2928
+ rb_gc_register_address(&_ex);
2913
2929
 
2914
2930
  const_cast<Ice::SlicedDataPtr&>(_slicedData) = is->endException(_info->preserve);
2915
2931
  }
@@ -3174,17 +3190,17 @@ IceRuby_stringify(VALUE /*self*/, VALUE obj, VALUE type)
3174
3190
 
3175
3191
  extern "C"
3176
3192
  VALUE
3177
- IceRuby_stringifyException(VALUE /*self*/, VALUE ex)
3193
+ IceRuby_stringifyException(VALUE /*self*/, VALUE exc)
3178
3194
  {
3179
3195
  ICE_RUBY_TRY
3180
3196
  {
3181
- volatile VALUE cls = CLASS_OF(ex);
3197
+ volatile VALUE cls = CLASS_OF(exc);
3182
3198
  volatile VALUE type = callRuby(rb_const_get, cls, rb_intern("ICE_TYPE"));
3183
3199
  ExceptionInfoPtr info = getException(type);
3184
3200
 
3185
3201
  ostringstream ostr;
3186
3202
  IceUtilInternal::Output out(ostr);
3187
- info->print(ex, out);
3203
+ info->print(exc, out);
3188
3204
 
3189
3205
  string str = ostr.str();
3190
3206
  return createString(str);
data/ext/Types.h CHANGED
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICE_RUBY_TYPES_H
11
6
  #define ICE_RUBY_TYPES_H
data/ext/Util.cpp CHANGED
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <Util.h>
11
6
  #include <Ice/LocalException.h>
@@ -22,22 +17,10 @@ using namespace IceRuby;
22
17
  namespace
23
18
  {
24
19
 
25
- #ifndef NDEBUG
26
- bool
27
- checkIsInstance(VALUE p, const char* type)
28
- {
29
- volatile VALUE rbType = callRuby(rb_path2class, type);
30
- assert(!NIL_P(rbType));
31
- return callRuby(rb_obj_is_instance_of, p, rbType) == Qtrue;
32
- }
33
- #endif
34
-
35
20
  template<typename T>
36
21
  bool
37
- setVersion(VALUE p, const T& version, const char* type)
22
+ setVersion(VALUE p, const T& version)
38
23
  {
39
- assert(checkIsInstance(p, type));
40
-
41
24
  volatile VALUE major = callRuby(rb_int2inum, version.major);
42
25
  volatile VALUE minor = callRuby(rb_int2inum, version.minor);
43
26
  rb_ivar_set(p, rb_intern("@major"), major);
@@ -48,9 +31,8 @@ setVersion(VALUE p, const T& version, const char* type)
48
31
 
49
32
  template<typename T>
50
33
  bool
51
- getVersion(VALUE p, T& v, const char* type)
34
+ getVersion(VALUE p, T& v)
52
35
  {
53
- assert(checkIsInstance(p, type));
54
36
  volatile VALUE major = callRuby(rb_ivar_get, p, rb_intern("@major"));
55
37
  volatile VALUE minor = callRuby(rb_ivar_get, p, rb_intern("@minor"));
56
38
 
@@ -84,7 +66,7 @@ createVersion(const T& version, const char* type)
84
66
 
85
67
  volatile VALUE obj = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), rbType);
86
68
 
87
- if(!setVersion<T>(obj, version, type))
69
+ if(!setVersion<T>(obj, version))
88
70
  {
89
71
  return Qnil;
90
72
  }
@@ -104,7 +86,7 @@ versionToString(VALUE p, const char* type)
104
86
  }
105
87
 
106
88
  T v;
107
- if(!getVersion<T>(p, v, type))
89
+ if(!getVersion<T>(p, v))
108
90
  {
109
91
  return Qnil;
110
92
  }
@@ -399,6 +381,21 @@ IceRuby::stringSeqToArray(const vector<string>& seq)
399
381
  return result;
400
382
  }
401
383
 
384
+ VALUE
385
+ IceRuby::createNumSeq(const vector<Ice::Byte>& v)
386
+ {
387
+ volatile VALUE result = createArray(v.size());
388
+ long i = 0;
389
+ if(v.size() > 0)
390
+ {
391
+ for(vector<Ice::Byte>::const_iterator p = v.begin(); p != v.end(); ++p, ++i)
392
+ {
393
+ RARRAY_ASET(result, i, INT2FIX(*p));
394
+ }
395
+ }
396
+ return result;
397
+ }
398
+
402
399
  namespace
403
400
  {
404
401
 
@@ -451,7 +448,11 @@ IceRuby::contextToHash(const Ice::Context& ctx)
451
448
 
452
449
  extern "C"
453
450
  VALUE
454
- IceRuby_Util_hash_foreach_callback(VALUE val, VALUE arg)
451
+ #ifdef RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG // Defined Ruby >= 2.1
452
+ IceRuby_Util_hash_foreach_callback(VALUE val, VALUE arg, int, const VALUE*, VALUE)
453
+ #else
454
+ IceRuby_Util_hash_foreach_callback(VALUE val, VALUE arg, int, VALUE*)
455
+ #endif
455
456
  {
456
457
  VALUE key = rb_ary_entry(val, 0);
457
458
  VALUE value = rb_ary_entry(val, 1);
@@ -470,14 +471,22 @@ IceRuby_Util_hash_foreach_callback(VALUE val, VALUE arg)
470
471
 
471
472
  extern "C"
472
473
  {
473
- typedef VALUE (*ICE_RUBY_HASH_FOREACH_CALLBACK)(...);
474
+
475
+ // Defined Ruby >= 2.1. Ruby 2.7 enables RB_BLOCK_CALL_FUNC_STRICT by default
476
+ #ifdef RB_BLOCK_CALL_FUNC_STRICT
477
+ typedef rb_block_call_func_t ICE_RUBY_HASH_FOREACH_CALLBACK;
478
+ #else
479
+ typedef VALUE (*ICE_RUBY_HASH_FOREACH_CALLBACK)(...);
480
+ #endif
481
+
474
482
  }
475
483
 
476
484
  void
477
485
  IceRuby::hashIterate(VALUE h, HashIterator& iter)
478
486
  {
479
487
  assert(TYPE(h) == T_HASH);
480
- callRuby(rb_iterate, rb_each, h,
488
+
489
+ callRuby(::rb_block_call, h, rb_intern("each"), 0, static_cast<VALUE*>(0),
481
490
  reinterpret_cast<ICE_RUBY_HASH_FOREACH_CALLBACK>(IceRuby_Util_hash_foreach_callback),
482
491
  reinterpret_cast<VALUE>(&iter));
483
492
  }
@@ -552,7 +561,7 @@ IceRuby::getEncodingVersion(VALUE p, Ice::EncodingVersion& v)
552
561
  throw RubyException(rb_eTypeError, "value is not an Ice::EncodingVersion");
553
562
  }
554
563
 
555
- if(!getVersion<Ice::EncodingVersion>(p, v, Ice_EncodingVersion))
564
+ if(!getVersion<Ice::EncodingVersion>(p, v))
556
565
  {
557
566
  return false;
558
567
  }
@@ -638,6 +647,16 @@ setExceptionMembers(const Ice::LocalException& ex, VALUE p)
638
647
  volatile VALUE v = createString(e.str);
639
648
  callRuby(rb_iv_set, p, "@str", v);
640
649
  }
650
+ catch(const Ice::EndpointSelectionTypeParseException& e)
651
+ {
652
+ volatile VALUE v = createString(e.str);
653
+ callRuby(rb_iv_set, p, "@str", v);
654
+ }
655
+ catch(const Ice::VersionParseException& e)
656
+ {
657
+ volatile VALUE v = createString(e.str);
658
+ callRuby(rb_iv_set, p, "@str", v);
659
+ }
641
660
  catch(const Ice::IdentityParseException& e)
642
661
  {
643
662
  volatile VALUE v = createString(e.str);
@@ -653,6 +672,11 @@ setExceptionMembers(const Ice::LocalException& ex, VALUE p)
653
672
  volatile VALUE v = IceRuby::createIdentity(e.id);
654
673
  callRuby(rb_iv_set, p, "@id", v);
655
674
  }
675
+ catch(const Ice::IllegalServantException& e)
676
+ {
677
+ volatile VALUE v = createString(e.reason);
678
+ callRuby(rb_iv_set, p, "@reason", v);
679
+ }
656
680
  catch(const Ice::RequestFailedException& e)
657
681
  {
658
682
  volatile VALUE v;
@@ -683,6 +707,11 @@ setExceptionMembers(const Ice::LocalException& ex, VALUE p)
683
707
  v = createString(e.host);
684
708
  callRuby(rb_iv_set, p, "@host", v);
685
709
  }
710
+ catch(const Ice::BadMagicException& e)
711
+ {
712
+ volatile VALUE v = createNumSeq(e.badMagic);
713
+ callRuby(rb_iv_set, p, "@badMagic", v);
714
+ }
686
715
  catch(const Ice::UnsupportedProtocolException& e)
687
716
  {
688
717
  VALUE m;
@@ -722,6 +751,10 @@ setExceptionMembers(const Ice::LocalException& ex, VALUE p)
722
751
  volatile VALUE v = createString(e.reason);
723
752
  callRuby(rb_iv_set, p, "@reason", v);
724
753
  }
754
+ catch(const Ice::ConnectionManuallyClosedException& e)
755
+ {
756
+ callRuby(rb_iv_set, p, "@graceful", e.graceful ? Qtrue : Qfalse);
757
+ }
725
758
  catch(const Ice::FeatureNotSupportedException& e)
726
759
  {
727
760
  volatile VALUE v = createString(e.unsupportedFeature);
@@ -732,10 +765,6 @@ setExceptionMembers(const Ice::LocalException& ex, VALUE p)
732
765
  volatile VALUE v = createString(e.reason);
733
766
  callRuby(rb_iv_set, p, "@reason", v);
734
767
  }
735
- catch(const Ice::ConnectionManuallyClosedException& e)
736
- {
737
- callRuby(rb_iv_set, p, "@graceful", e.graceful ? Qtrue : Qfalse);
738
- }
739
768
  catch(const Ice::LocalException&)
740
769
  {
741
770
  //
@@ -745,7 +774,7 @@ setExceptionMembers(const Ice::LocalException& ex, VALUE p)
745
774
  }
746
775
 
747
776
  VALUE
748
- IceRuby::createArrayHelper(long sz)
777
+ IceRuby::createArray(long sz)
749
778
  {
750
779
  volatile VALUE arr = callRuby(rb_ary_new2, sz);
751
780
  if(sz > 0)