zeroc-ice 3.7.2 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. checksums.yaml +5 -5
  2. data/ext/Config.h +4 -0
  3. data/ext/Operation.cpp +5 -5
  4. data/ext/Properties.cpp +1 -1
  5. data/ext/Proxy.cpp +16 -2
  6. data/ext/Types.cpp +45 -40
  7. data/ext/Util.cpp +1 -1
  8. data/ext/Util.h +10 -8
  9. data/ext/ice/cpp/include/Ice/Config.h +4 -0
  10. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
  11. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +4 -3
  12. data/ext/ice/cpp/include/Ice/InputStream.h +4 -4
  13. data/ext/ice/cpp/include/Ice/Optional.h +11 -0
  14. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +1 -1
  15. data/ext/ice/cpp/include/Ice/OutputStream.h +5 -5
  16. data/ext/ice/cpp/include/Ice/Proxy.h +17 -5
  17. data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -1
  18. data/ext/ice/cpp/include/Ice/Value.h +1 -1
  19. data/ext/ice/cpp/include/IceUtil/Atomic.h +1 -1
  20. data/ext/ice/cpp/include/IceUtil/Config.h +16 -6
  21. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +4 -4
  22. data/ext/ice/cpp/include/IceUtil/Optional.h +8 -0
  23. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +17 -14
  24. data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
  25. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +2 -2
  26. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +6 -0
  27. data/ext/ice/cpp/include/IceUtil/StringConverter.h +1 -1
  28. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +3 -3
  29. data/ext/ice/cpp/include/generated/Ice/Communicator.h +3 -3
  30. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +3 -3
  31. data/ext/ice/cpp/include/generated/Ice/Connection.h +33 -36
  32. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +3 -3
  33. data/ext/ice/cpp/include/generated/Ice/Current.h +20 -21
  34. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +24 -24
  35. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +3 -3
  36. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +3 -3
  37. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +3 -3
  38. data/ext/ice/cpp/include/generated/Ice/Identity.h +4 -5
  39. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +3 -3
  40. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +3 -3
  41. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +15 -15
  42. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +3 -3
  43. data/ext/ice/cpp/include/generated/Ice/LocalException.h +27 -93
  44. data/ext/ice/cpp/include/generated/Ice/Locator.h +27 -32
  45. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +3 -3
  46. data/ext/ice/cpp/include/generated/Ice/Logger.h +3 -3
  47. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +3 -3
  48. data/ext/ice/cpp/include/generated/Ice/Metrics.h +75 -79
  49. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +3 -3
  50. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +3 -3
  51. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +3 -3
  52. data/ext/ice/cpp/include/generated/Ice/Plugin.h +3 -3
  53. data/ext/ice/cpp/include/generated/Ice/PluginF.h +3 -3
  54. data/ext/ice/cpp/include/generated/Ice/Process.h +3 -3
  55. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +3 -3
  56. data/ext/ice/cpp/include/generated/Ice/Properties.h +3 -3
  57. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +9 -9
  58. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +3 -3
  59. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +9 -11
  60. data/ext/ice/cpp/include/generated/Ice/Router.h +22 -22
  61. data/ext/ice/cpp/include/generated/Ice/RouterF.h +3 -3
  62. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +3 -3
  63. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +3 -3
  64. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +3 -3
  65. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +3 -3
  66. data/ext/ice/cpp/include/generated/Ice/Version.h +15 -17
  67. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +3 -3
  68. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +3 -3
  69. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +3 -3
  70. data/ext/ice/cpp/src/Ice/ArgVector.cpp +3 -3
  71. data/ext/ice/cpp/src/Ice/Base64.cpp +11 -12
  72. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +1 -1
  73. data/ext/ice/cpp/src/Ice/Buffer.cpp +2 -2
  74. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +3 -3
  75. data/ext/ice/cpp/src/Ice/Communicator.cpp +3 -3
  76. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +3 -3
  77. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +19 -0
  78. data/ext/ice/cpp/src/Ice/CommunicatorI.h +5 -0
  79. data/ext/ice/cpp/src/Ice/Connection.cpp +3 -3
  80. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +3 -3
  81. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +31 -16
  82. data/ext/ice/cpp/src/Ice/Current.cpp +3 -3
  83. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +13 -0
  84. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +6 -5
  85. data/ext/ice/cpp/src/Ice/Endpoint.cpp +3 -3
  86. data/ext/ice/cpp/src/Ice/EndpointF.cpp +3 -3
  87. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +3 -3
  88. data/ext/ice/cpp/src/Ice/Exception.cpp +5 -5
  89. data/ext/ice/cpp/src/Ice/FacetMap.cpp +3 -3
  90. data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
  91. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +12 -1
  92. data/ext/ice/cpp/src/Ice/Identity.cpp +3 -3
  93. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +3 -3
  94. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +3 -3
  95. data/ext/ice/cpp/src/Ice/Incoming.cpp +2 -0
  96. data/ext/ice/cpp/src/Ice/Initialize.cpp +4 -3
  97. data/ext/ice/cpp/src/Ice/InputStream.cpp +19 -19
  98. data/ext/ice/cpp/src/Ice/Instance.cpp +28 -8
  99. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +3 -3
  100. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +3 -3
  101. data/ext/ice/cpp/src/Ice/LocalException.cpp +3 -3
  102. data/ext/ice/cpp/src/Ice/Locator.cpp +7 -7
  103. data/ext/ice/cpp/src/Ice/LocatorF.cpp +3 -3
  104. data/ext/ice/cpp/src/Ice/Logger.cpp +3 -3
  105. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -7
  106. data/ext/ice/cpp/src/Ice/LoggerF.cpp +3 -3
  107. data/ext/ice/cpp/src/Ice/LoggerI.cpp +6 -0
  108. data/ext/ice/cpp/src/Ice/Metrics.cpp +5 -5
  109. data/ext/ice/cpp/src/Ice/Network.cpp +23 -22
  110. data/ext/ice/cpp/src/Ice/Network.h +1 -1
  111. data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +57 -0
  112. data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +40 -0
  113. data/ext/ice/cpp/src/Ice/Object.cpp +9 -7
  114. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +3 -3
  115. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +3 -3
  116. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +13 -1
  117. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +4 -0
  118. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +3 -3
  119. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +1 -1
  120. data/ext/ice/cpp/src/Ice/OutputStream.cpp +24 -24
  121. data/ext/ice/cpp/src/Ice/Plugin.cpp +3 -3
  122. data/ext/ice/cpp/src/Ice/PluginF.cpp +3 -3
  123. data/ext/ice/cpp/src/Ice/Process.cpp +3 -3
  124. data/ext/ice/cpp/src/Ice/ProcessF.cpp +3 -3
  125. data/ext/ice/cpp/src/Ice/Properties.cpp +3 -3
  126. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +4 -4
  127. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +3 -3
  128. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +2 -1
  129. data/ext/ice/cpp/src/Ice/PropertyNames.h +1 -1
  130. data/ext/ice/cpp/src/Ice/Proxy.cpp +6 -0
  131. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
  132. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -1
  133. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +3 -2
  134. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +3 -3
  135. data/ext/ice/cpp/src/Ice/Router.cpp +6 -6
  136. data/ext/ice/cpp/src/Ice/RouterF.cpp +3 -3
  137. data/ext/ice/cpp/src/Ice/SHA1.cpp +2 -2
  138. data/ext/ice/cpp/src/Ice/Selector.cpp +18 -13
  139. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +3 -3
  140. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +3 -3
  141. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +3 -3
  142. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +6 -6
  143. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +6 -0
  144. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +5 -0
  145. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +5 -0
  146. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +5 -0
  147. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +63 -0
  148. data/ext/ice/cpp/src/Ice/ThreadPool.h +10 -2
  149. data/ext/ice/cpp/src/Ice/Timer.cpp +10 -0
  150. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +11 -1
  151. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +10 -2
  152. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +3 -3
  153. data/ext/ice/cpp/src/Ice/Version.cpp +3 -3
  154. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +16 -15
  155. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +3 -3
  156. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +3 -3
  157. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +3 -3
  158. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +3 -3
  159. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +37 -8
  160. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +3 -3
  161. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +3 -3
  162. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +3 -3
  163. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +3 -3
  164. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +4 -16
  165. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -1
  166. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +40 -3
  167. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -7
  168. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +0 -2
  169. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +18 -6
  170. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +19 -7
  171. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +2 -0
  172. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +32 -21
  173. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +21 -6
  174. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +19 -16
  175. data/ext/ice/cpp/src/IceSSL/Util.cpp +11 -5
  176. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +1 -1
  177. data/ext/ice/cpp/src/IceUtil/Options.cpp +3 -3
  178. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +40 -10
  179. data/ext/ice/cpp/src/IceUtil/Random.cpp +2 -2
  180. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +5 -5
  181. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +3 -3
  182. data/ext/ice/cpp/src/IceUtil/Time.cpp +3 -3
  183. data/ext/ice/cpp/src/IceUtil/UUID.cpp +5 -5
  184. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +4 -4
  185. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +13 -9
  186. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +1 -1
  187. data/ext/ice/cpp/src/Slice/Grammar.cpp +8 -0
  188. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +1 -2
  189. data/ext/ice/cpp/src/Slice/MD5I.cpp +8 -0
  190. data/ext/ice/cpp/src/Slice/Parser.cpp +60 -112
  191. data/ext/ice/cpp/src/Slice/Parser.h +27 -1
  192. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +2 -1
  193. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +10 -10
  194. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +1 -1
  195. data/ext/ice/cpp/src/Slice/Scanner.cpp +8 -0
  196. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +11 -6
  197. data/ext/ice/mcpp/Makefile +2 -5
  198. data/ice.gemspec +1 -1
  199. data/lib/Glacier2/Metrics.rb +1 -1
  200. data/lib/Glacier2/PermissionsVerifier.rb +1 -1
  201. data/lib/Glacier2/PermissionsVerifierF.rb +1 -1
  202. data/lib/Glacier2/Router.rb +1 -1
  203. data/lib/Glacier2/RouterF.rb +1 -1
  204. data/lib/Glacier2/SSLInfo.rb +1 -1
  205. data/lib/Glacier2/Session.rb +1 -1
  206. data/lib/Ice/BuiltinSequences.rb +1 -1
  207. data/lib/Ice/Communicator.rb +1 -1
  208. data/lib/Ice/CommunicatorF.rb +1 -1
  209. data/lib/Ice/Connection.rb +1 -1
  210. data/lib/Ice/ConnectionF.rb +1 -1
  211. data/lib/Ice/Current.rb +1 -1
  212. data/lib/Ice/Endpoint.rb +1 -1
  213. data/lib/Ice/EndpointF.rb +1 -1
  214. data/lib/Ice/EndpointTypes.rb +1 -1
  215. data/lib/Ice/FacetMap.rb +1 -1
  216. data/lib/Ice/Identity.rb +1 -1
  217. data/lib/Ice/ImplicitContext.rb +1 -1
  218. data/lib/Ice/ImplicitContextF.rb +1 -1
  219. data/lib/Ice/Instrumentation.rb +1 -1
  220. data/lib/Ice/InstrumentationF.rb +1 -1
  221. data/lib/Ice/LocalException.rb +1 -1
  222. data/lib/Ice/Locator.rb +1 -1
  223. data/lib/Ice/LocatorF.rb +1 -1
  224. data/lib/Ice/Logger.rb +1 -1
  225. data/lib/Ice/LoggerF.rb +1 -1
  226. data/lib/Ice/Metrics.rb +1 -1
  227. data/lib/Ice/ObjectAdapter.rb +1 -1
  228. data/lib/Ice/ObjectAdapterF.rb +1 -1
  229. data/lib/Ice/ObjectFactory.rb +1 -1
  230. data/lib/Ice/Plugin.rb +1 -1
  231. data/lib/Ice/PluginF.rb +1 -1
  232. data/lib/Ice/Process.rb +1 -1
  233. data/lib/Ice/ProcessF.rb +1 -1
  234. data/lib/Ice/Properties.rb +1 -1
  235. data/lib/Ice/PropertiesAdmin.rb +1 -1
  236. data/lib/Ice/PropertiesF.rb +1 -1
  237. data/lib/Ice/RemoteLogger.rb +1 -1
  238. data/lib/Ice/Router.rb +1 -1
  239. data/lib/Ice/RouterF.rb +1 -1
  240. data/lib/Ice/ServantLocator.rb +1 -1
  241. data/lib/Ice/ServantLocatorF.rb +1 -1
  242. data/lib/Ice/SliceChecksumDict.rb +1 -1
  243. data/lib/Ice/ValueFactory.rb +1 -1
  244. data/lib/Ice/Version.rb +1 -1
  245. data/lib/IceBox/IceBox.rb +1 -1
  246. data/lib/IceGrid/Admin.rb +1 -1
  247. data/lib/IceGrid/Descriptor.rb +1 -1
  248. data/lib/IceGrid/Exception.rb +1 -1
  249. data/lib/IceGrid/FileParser.rb +1 -1
  250. data/lib/IceGrid/PluginFacade.rb +1 -1
  251. data/lib/IceGrid/Registry.rb +1 -1
  252. data/lib/IceGrid/Session.rb +1 -1
  253. data/lib/IceGrid/UserAccountMapper.rb +1 -1
  254. data/lib/IcePatch2/FileInfo.rb +1 -1
  255. data/lib/IcePatch2/FileServer.rb +1 -1
  256. data/lib/IceStorm/IceStorm.rb +1 -1
  257. data/lib/IceStorm/Metrics.rb +1 -1
  258. data/slice/Glacier2/Metrics.ice +1 -1
  259. data/slice/Ice/Communicator.ice +57 -25
  260. data/slice/Ice/Connection.ice +14 -14
  261. data/slice/Ice/Current.ice +1 -1
  262. data/slice/Ice/Endpoint.ice +6 -6
  263. data/slice/Ice/EndpointF.ice +1 -1
  264. data/slice/Ice/FacetMap.ice +1 -1
  265. data/slice/Ice/ImplicitContext.ice +6 -6
  266. data/slice/Ice/Instrumentation.ice +6 -6
  267. data/slice/Ice/Logger.ice +6 -6
  268. data/slice/Ice/Metrics.ice +12 -9
  269. data/slice/Ice/ObjectAdapter.ice +43 -31
  270. data/slice/Ice/ObjectFactory.ice +1 -1
  271. data/slice/Ice/Plugin.ice +2 -2
  272. data/slice/Ice/Properties.ice +10 -10
  273. data/slice/Ice/ServantLocator.ice +4 -2
  274. data/slice/Ice/ValueFactory.ice +3 -3
  275. data/slice/IceBT/EndpointInfo.ice +1 -1
  276. data/slice/IceGrid/PluginFacade.ice +4 -4
  277. data/slice/IceIAP/ConnectionInfo.ice +1 -1
  278. data/slice/IceIAP/EndpointInfo.ice +1 -1
  279. data/slice/IceSSL/ConnectionInfo.ice +3 -2
  280. data/slice/IceSSL/ConnectionInfoF.ice +1 -1
  281. data/slice/IceSSL/EndpointInfo.ice +1 -1
  282. data/slice/IceStorm/Metrics.ice +1 -1
  283. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 79ea9a56d0c6d3eaf5e8cd34f1d175cf105d39e0
4
- data.tar.gz: d07d89217f5dc17aaa34856fdc133f5ee8cac13f
2
+ SHA256:
3
+ metadata.gz: f061772e9d3a2a709e480d9bd0d028110838d15529c793b34367253782d649db
4
+ data.tar.gz: b451ddd683af4bbc6e948d76dce911204ff6c1b4314143e285b89f656ae8f0e4
5
5
  SHA512:
6
- metadata.gz: d79d2329cbaa873fb11bafa7f12b701769ea8970ad8cf044f09c101aaa802d3661e1a0e8924c9a2f134e244e31fb55091339727a5c82fd3ef3fd71a813abae04
7
- data.tar.gz: 2cc262447c5727446cb17de0259b0e021d45562896e466478df574506ef65fa22a665fdb8e1b0f38e525a1f4ace92def1af9146ae1b4c5cc7a2dcdf15c3c860c
6
+ metadata.gz: 943b478cf1ecdfb5e4332271fd025e8153b2c0a595ef7c96ce260d3d0a8caaffff2c1b5827166f687650d6fc6685f3e8c0f1c1fdd4090f7aecbb4ef237d8623a
7
+ data.tar.gz: 289327d910be75354d258ebc41eb31d2583738cd5b3fc7f43130442d87803000b9dac8787fd0b3ee9874bbf107606ad9c9ae12ac7a7c06f6aa9bd9f942cfdbf4
@@ -53,6 +53,10 @@
53
53
  #if defined(__clang__)
54
54
  # pragma clang diagnostic push
55
55
  # pragma clang diagnostic ignored "-Wunused-parameter"
56
+ //
57
+ // BUGFIX: Workaround clang conversion warnings in ruby headers
58
+ //
59
+ # pragma clang diagnostic ignored "-Wconversion"
56
60
  #elif defined(__GNUC__)
57
61
  # pragma GCC diagnostic push
58
62
  # pragma GCC diagnostic ignored "-Wunused-parameter"
@@ -64,8 +64,8 @@ private:
64
64
  bool _returnsClasses;
65
65
  string _deprecateMessage;
66
66
 
67
- void convertParams(VALUE, ParamInfoList&, int, bool&);
68
- ParamInfoPtr convertParam(VALUE, int);
67
+ void convertParams(VALUE, ParamInfoList&, long, bool&);
68
+ ParamInfoPtr convertParam(VALUE, long);
69
69
  void prepareRequest(const Ice::ObjectPrx&, VALUE, Ice::OutputStream*, pair<const Ice::Byte*, const Ice::Byte*>&);
70
70
  VALUE unmarshalResults(const vector<Ice::Byte>&, const Ice::CommunicatorPtr&);
71
71
  VALUE unmarshalException(const vector<Ice::Byte>&, const Ice::CommunicatorPtr&);
@@ -367,7 +367,7 @@ IceRuby::OperationI::deprecate(const string& msg)
367
367
  }
368
368
 
369
369
  void
370
- IceRuby::OperationI::convertParams(VALUE v, ParamInfoList& params, int posOffset, bool& usesClasses)
370
+ IceRuby::OperationI::convertParams(VALUE v, ParamInfoList& params, long posOffset, bool& usesClasses)
371
371
  {
372
372
  assert(TYPE(v) == T_ARRAY);
373
373
 
@@ -383,14 +383,14 @@ IceRuby::OperationI::convertParams(VALUE v, ParamInfoList& params, int posOffset
383
383
  }
384
384
 
385
385
  ParamInfoPtr
386
- IceRuby::OperationI::convertParam(VALUE v, int pos)
386
+ IceRuby::OperationI::convertParam(VALUE v, long pos)
387
387
  {
388
388
  assert(TYPE(v) == T_ARRAY);
389
389
  ParamInfoPtr param = new ParamInfo;
390
390
  param->type = getType(RARRAY_AREF(v, 0));
391
391
  param->optional = static_cast<bool>(RTEST(RARRAY_AREF(v, 1)));
392
392
  param->tag = static_cast<int>(getInteger(RARRAY_AREF(v, 2)));
393
- param->pos = pos;
393
+ param->pos = static_cast<int>(pos);
394
394
  return param;
395
395
  }
396
396
 
@@ -136,7 +136,7 @@ IceRuby_Properties_getPropertyAsIntWithDefault(VALUE self, VALUE key, VALUE def)
136
136
  {
137
137
  Ice::PropertiesPtr p = getProperties(self);
138
138
  string k = getString(key);
139
- Ice::Int d = getInteger(def);
139
+ Ice::Int d = static_cast<Ice::Int>(getInteger(def));
140
140
  Ice::Int v = p->getPropertyAsIntWithDefault(k, d);
141
141
  return INT2FIX(v);
142
142
  }
@@ -153,7 +153,7 @@ IceRuby_ObjectPrx_ice_ids(int argc, VALUE* argv, VALUE self)
153
153
  checkArgs("ice_ids", 0, argc, argv, ctx);
154
154
 
155
155
  vector<string> ids = p->ice_ids(ctx);
156
- volatile VALUE result = createArray(ids.size());
156
+ volatile VALUE result = createArray(static_cast<long>(ids.size()));
157
157
  long i = 0;
158
158
  for(vector<string>::iterator q = ids.begin(); q != ids.end(); ++q, ++i)
159
159
  {
@@ -307,7 +307,7 @@ IceRuby_ObjectPrx_ice_getEndpoints(VALUE self)
307
307
  Ice::ObjectPrx p = getProxy(self);
308
308
 
309
309
  Ice::EndpointSeq seq = p->ice_getEndpoints();
310
- volatile VALUE result = createArray(seq.size());
310
+ volatile VALUE result = createArray(static_cast<long>(seq.size()));
311
311
  long i = 0;
312
312
  for(Ice::EndpointSeq::iterator q = seq.begin(); q != seq.end(); ++q, ++i)
313
313
  {
@@ -919,6 +919,19 @@ IceRuby_ObjectPrx_ice_fixed(VALUE self, VALUE con)
919
919
  return Qnil;
920
920
  }
921
921
 
922
+ extern "C"
923
+ VALUE
924
+ IceRuby_ObjectPrx_ice_isFixed(VALUE self)
925
+ {
926
+ ICE_RUBY_TRY
927
+ {
928
+ Ice::ObjectPrx p = getProxy(self);
929
+ return p->ice_isFixed() ? Qtrue : Qfalse;
930
+ }
931
+ ICE_RUBY_CATCH
932
+ return Qnil;
933
+ }
934
+
922
935
  extern "C"
923
936
  VALUE
924
937
  IceRuby_ObjectPrx_ice_getConnection(VALUE self)
@@ -1329,6 +1342,7 @@ IceRuby::initProxy(VALUE iceModule)
1329
1342
  rb_define_method(_proxyClass, "ice_getTimeout", CAST_METHOD(IceRuby_ObjectPrx_ice_getTimeout), 0);
1330
1343
  rb_define_method(_proxyClass, "ice_connectionId", CAST_METHOD(IceRuby_ObjectPrx_ice_connectionId), 1);
1331
1344
  rb_define_method(_proxyClass, "ice_fixed", CAST_METHOD(IceRuby_ObjectPrx_ice_fixed), 1);
1345
+ rb_define_method(_proxyClass, "ice_isFixed", CAST_METHOD(IceRuby_ObjectPrx_ice_isFixed), 0);
1332
1346
  rb_define_method(_proxyClass, "ice_getConnection", CAST_METHOD(IceRuby_ObjectPrx_ice_getConnection), 0);
1333
1347
  rb_define_method(_proxyClass, "ice_getCachedConnection", CAST_METHOD(IceRuby_ObjectPrx_ice_getCachedConnection), 0);
1334
1348
  rb_define_method(_proxyClass, "ice_flushBatchRequests", CAST_METHOD(IceRuby_ObjectPrx_ice_flushBatchRequests), 0);
@@ -75,9 +75,9 @@ escapeString(const string& str)
75
75
  {
76
76
  if(charSet.find(*c) == charSet.end())
77
77
  {
78
- 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
79
79
  ostringstream s;
80
- s << "\\"; // Print as octal if not in basic source character set
80
+ s << "\\"; // Print as octal if not in basic source character set
81
81
  s.width(3);
82
82
  s.fill('0');
83
83
  s << oct;
@@ -240,8 +240,7 @@ IceRuby::StreamUtil::setSlicedDataMember(VALUE obj, const Ice::SlicedDataPtr& sl
240
240
 
241
241
  volatile VALUE sd = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), _slicedDataType);
242
242
 
243
- Ice::Int sz = slicedData->slices.size();
244
- volatile VALUE slices = createArray(sz);
243
+ volatile VALUE slices = createArray(static_cast<long>(slicedData->slices.size()));
245
244
 
246
245
  callRuby(rb_iv_set, sd, "@slices", slices);
247
246
 
@@ -271,13 +270,15 @@ IceRuby::StreamUtil::setSlicedDataMember(VALUE obj, const Ice::SlicedDataPtr& sl
271
270
  //
272
271
  // bytes
273
272
  //
274
- 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()));
275
276
  callRuby(rb_iv_set, slice, "@bytes", bytes);
276
277
 
277
278
  //
278
279
  // instances
279
280
  //
280
- volatile VALUE instances = createArray((*p)->instances.size());
281
+ volatile VALUE instances = createArray(static_cast<long>((*p)->instances.size()));
281
282
  callRuby(rb_iv_set, slice, "@instances", instances);
282
283
 
283
284
  int j = 0;
@@ -1012,7 +1013,7 @@ IceRuby::StructInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMa
1012
1013
  p = _nullMarshalValue;
1013
1014
  }
1014
1015
 
1015
- Ice::OutputStream::size_type sizePos = -1;
1016
+ Ice::OutputStream::size_type sizePos = 0;
1016
1017
  if(optional)
1017
1018
  {
1018
1019
  if(_variableLength)
@@ -1187,7 +1188,7 @@ IceRuby::SequenceInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* object
1187
1188
 
1188
1189
  volatile VALUE arr = Qnil;
1189
1190
 
1190
- Ice::OutputStream::size_type sizePos = -1;
1191
+ Ice::OutputStream::size_type sizePos = 0;
1191
1192
  if(optional)
1192
1193
  {
1193
1194
  if(elementType->variableLength())
@@ -1395,10 +1396,10 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1395
1396
  case PrimitiveInfo::KindBool:
1396
1397
  {
1397
1398
  long sz = RARRAY_LEN(arr);
1398
- Ice::BoolSeq seq(sz);
1399
+ Ice::BoolSeq seq(static_cast<size_t>(sz));
1399
1400
  for(long i = 0; i < sz; ++i)
1400
1401
  {
1401
- seq[i] = RTEST(RARRAY_AREF(arr, i));
1402
+ seq[static_cast<size_t>(i)] = RTEST(RARRAY_AREF(arr, i));
1402
1403
  }
1403
1404
  os->write(seq);
1404
1405
  break;
@@ -1421,7 +1422,7 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1421
1422
  else
1422
1423
  {
1423
1424
  long sz = RARRAY_LEN(arr);
1424
- Ice::ByteSeq seq(sz);
1425
+ Ice::ByteSeq seq(static_cast<size_t>(sz));
1425
1426
  for(long i = 0; i < sz; ++i)
1426
1427
  {
1427
1428
  long val = getInteger(RARRAY_AREF(arr, i));
@@ -1429,16 +1430,16 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1429
1430
  {
1430
1431
  throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<byte>", i);
1431
1432
  }
1432
- seq[i] = static_cast<Ice::Byte>(val);
1433
+ seq[static_cast<size_t>(i)] = static_cast<Ice::Byte>(val);
1433
1434
  }
1434
- os->write(&seq[0], &seq[0] + seq.size());
1435
+ os->write(seq);
1435
1436
  }
1436
1437
  break;
1437
1438
  }
1438
1439
  case PrimitiveInfo::KindShort:
1439
1440
  {
1440
1441
  long sz = RARRAY_LEN(arr);
1441
- Ice::ShortSeq seq(sz);
1442
+ Ice::ShortSeq seq(static_cast<size_t>(sz));
1442
1443
  for(long i = 0; i < sz; ++i)
1443
1444
  {
1444
1445
  long val = getInteger(RARRAY_AREF(arr, i));
@@ -1446,15 +1447,15 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1446
1447
  {
1447
1448
  throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<short>", i);
1448
1449
  }
1449
- seq[i] = static_cast<Ice::Short>(val);
1450
+ seq[static_cast<size_t>(i)] = static_cast<Ice::Short>(val);
1450
1451
  }
1451
- os->write(&seq[0], &seq[0] + seq.size());
1452
+ os->write(seq);
1452
1453
  break;
1453
1454
  }
1454
1455
  case PrimitiveInfo::KindInt:
1455
1456
  {
1456
1457
  long sz = RARRAY_LEN(arr);
1457
- Ice::IntSeq seq(sz);
1458
+ Ice::IntSeq seq(static_cast<size_t>(sz));
1458
1459
  for(long i = 0; i < sz; ++i)
1459
1460
  {
1460
1461
  long val = getInteger(RARRAY_AREF(arr, i));
@@ -1462,26 +1463,26 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1462
1463
  {
1463
1464
  throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<int>", i);
1464
1465
  }
1465
- seq[i] = static_cast<Ice::Int>(val);
1466
+ seq[static_cast<size_t>(i)] = static_cast<Ice::Int>(val);
1466
1467
  }
1467
- os->write(&seq[0], &seq[0] + seq.size());
1468
+ os->write(seq);
1468
1469
  break;
1469
1470
  }
1470
1471
  case PrimitiveInfo::KindLong:
1471
1472
  {
1472
1473
  long sz = RARRAY_LEN(arr);
1473
- Ice::LongSeq seq(sz);
1474
+ Ice::LongSeq seq(static_cast<size_t>(sz));
1474
1475
  for(long i = 0; i < sz; ++i)
1475
1476
  {
1476
- seq[i] = getLong(RARRAY_AREF(arr, i));
1477
+ seq[static_cast<size_t>(i)] = getLong(RARRAY_AREF(arr, i));
1477
1478
  }
1478
- os->write(&seq[0], &seq[0] + seq.size());
1479
+ os->write(seq);
1479
1480
  break;
1480
1481
  }
1481
1482
  case PrimitiveInfo::KindFloat:
1482
1483
  {
1483
1484
  long sz = RARRAY_LEN(arr);
1484
- Ice::FloatSeq seq(sz);
1485
+ Ice::FloatSeq seq(static_cast<size_t>(sz));
1485
1486
  for(long i = 0; i < sz; ++i)
1486
1487
  {
1487
1488
  volatile VALUE v = callRuby(rb_Float, RARRAY_AREF(arr, i));
@@ -1490,15 +1491,15 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1490
1491
  throw RubyException(rb_eTypeError, "unable to convert array element %ld to a float", i);
1491
1492
  }
1492
1493
  assert(TYPE(v) == T_FLOAT);
1493
- seq[i] = static_cast<Ice::Float>(RFLOAT_VALUE(v));
1494
+ seq[static_cast<size_t>(i)] = static_cast<Ice::Float>(RFLOAT_VALUE(v));
1494
1495
  }
1495
- os->write(&seq[0], &seq[0] + seq.size());
1496
+ os->write(seq);
1496
1497
  break;
1497
1498
  }
1498
1499
  case PrimitiveInfo::KindDouble:
1499
1500
  {
1500
1501
  long sz = RARRAY_LEN(arr);
1501
- Ice::DoubleSeq seq(sz);
1502
+ Ice::DoubleSeq seq(static_cast<size_t>(sz));
1502
1503
  for(long i = 0; i < sz; ++i)
1503
1504
  {
1504
1505
  volatile VALUE v = callRuby(rb_Float, RARRAY_AREF(arr, i));
@@ -1507,24 +1508,31 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
1507
1508
  throw RubyException(rb_eTypeError, "unable to convert array element %ld to a double", i);
1508
1509
  }
1509
1510
  assert(TYPE(v) == T_FLOAT);
1510
- seq[i] = RFLOAT_VALUE(v);
1511
+ seq[static_cast<size_t>(i)] = RFLOAT_VALUE(v);
1511
1512
  }
1512
- os->write(&seq[0], &seq[0] + seq.size());
1513
+ os->write(seq);
1513
1514
  break;
1514
1515
  }
1515
1516
  case PrimitiveInfo::KindString:
1516
1517
  {
1517
1518
  long sz = RARRAY_LEN(arr);
1518
- Ice::StringSeq seq(sz);
1519
+ Ice::StringSeq seq(static_cast<size_t>(sz));
1519
1520
  for(long i = 0; i < sz; ++i)
1520
1521
  {
1521
- 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);
1522
1527
  }
1528
+ else
1529
+ {
1523
1530
  #ifdef HAVE_RUBY_ENCODING_H
1524
- 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.
1525
1532
  #else
1526
- os->write(&seq[0], &seq[0] + seq.size(), true);
1533
+ os->write(&seq[0], &seq[0] + seq.size(), true);
1527
1534
  #endif
1535
+ }
1528
1536
  break;
1529
1537
  }
1530
1538
  }
@@ -1658,12 +1666,9 @@ IceRuby::SequenceInfo::unmarshalPrimitiveSequence(const PrimitiveInfoPtr& pi, Ic
1658
1666
  long sz = static_cast<long>(seq.size());
1659
1667
  result = createArray(sz);
1660
1668
 
1661
- if(sz > 0)
1669
+ for(long i = 0; i < sz; ++i)
1662
1670
  {
1663
- for(long i = 0; i < sz; ++i)
1664
- {
1665
- RARRAY_ASET(result, i, createString(seq[i]));
1666
- }
1671
+ RARRAY_ASET(result, i, createString(seq[static_cast<size_t>(i)]));
1667
1672
  }
1668
1673
  break;
1669
1674
  }
@@ -1762,10 +1767,10 @@ IceRuby::DictionaryInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* obje
1762
1767
  }
1763
1768
  }
1764
1769
 
1765
- int sz = 0;
1770
+ Ice::Int sz = 0;
1766
1771
  if(!NIL_P(hash))
1767
1772
  {
1768
- sz = RHASH_SIZE(hash);
1773
+ sz = static_cast<Ice::Int>(RHASH_SIZE(hash));
1769
1774
  }
1770
1775
 
1771
1776
  Ice::OutputStream::size_type sizePos = 0;
@@ -2356,7 +2361,7 @@ IceRuby::ProxyInfo::optionalFormat() const
2356
2361
  void
2357
2362
  IceRuby::ProxyInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap*, bool optional)
2358
2363
  {
2359
- Ice::OutputStream::size_type sizePos = -1;
2364
+ Ice::OutputStream::size_type sizePos = 0;
2360
2365
  if(optional)
2361
2366
  {
2362
2367
  sizePos = os->startSize();
@@ -762,7 +762,7 @@ setExceptionMembers(const Ice::LocalException& ex, VALUE p)
762
762
  }
763
763
 
764
764
  VALUE
765
- IceRuby::createArrayHelper(long sz)
765
+ IceRuby::createArray(long sz)
766
766
  {
767
767
  volatile VALUE arr = callRuby(rb_ary_new2, sz);
768
768
  if(sz > 0)
data/ext/Util.h CHANGED
@@ -8,6 +8,14 @@
8
8
  #include <Config.h>
9
9
  #include <Ice/Ice.h>
10
10
 
11
+ //
12
+ // Avoid clang conversion warnings in "callRuby" calls
13
+ //
14
+ #if defined(__clang__)
15
+ # pragma clang diagnostic ignored "-Wconversion"
16
+ # pragma clang diagnostic ignored "-Wsign-conversion"
17
+ #endif
18
+
11
19
  namespace IceRuby
12
20
  {
13
21
 
@@ -228,7 +236,7 @@ class RF_2
228
236
  public:
229
237
 
230
238
  RF_2(Fun f, T1 t1, T2 t2) : _f(f), _t1(t1), _t2(t2) {}
231
- inline VALUE operator()() { return _f(_t1, _t2); }
239
+ inline VALUE operator()(){ return _f(_t1, _t2); }
232
240
  static inline VALUE call(VALUE f)
233
241
  {
234
242
  return (*reinterpret_cast<RF_2*>(f))();
@@ -468,8 +476,6 @@ inline void callRubyVoid(Fun fun, T1 t1, T2 t2, T3 t3, T4 t4)
468
476
  callProtected(RubyFunction(RF::call), reinterpret_cast<VALUE>(&f));
469
477
  }
470
478
 
471
- VALUE createArrayHelper(long);
472
-
473
479
  //
474
480
  // Create an array with the given size. May raise RubyException.
475
481
  //
@@ -485,11 +491,7 @@ VALUE createArrayHelper(long);
485
491
  // RARRAY_ASET(arr, i, val);
486
492
  // }
487
493
  //
488
- template<typename T>
489
- inline VALUE createArray(T sz)
490
- {
491
- return createArrayHelper(static_cast<long>(sz));
492
- }
494
+ VALUE createArray(long);
493
495
 
494
496
  //
495
497
  // Create the Ruby equivalent of an Ice local exception.
@@ -26,6 +26,10 @@
26
26
  # endif
27
27
  #endif
28
28
 
29
+ #ifdef ICE_SWIFT
30
+ # include <dispatch/dispatch.h>
31
+ #endif
32
+
29
33
  //
30
34
  // Define the Ice and IceInternal namespace, so that we can use the following
31
35
  // everywhere in our code:
@@ -21,7 +21,7 @@ public:
21
21
 
22
22
  static FactoryTableInit factoryTableInitializer; // Dummy variable to force initialization of factoryTable
23
23
 
24
- extern ICE_API FactoryTable* factoryTable;
24
+ extern ICE_API FactoryTable* factoryTable ICE_GLOBAL_VAR_SUFFIX;
25
25
 
26
26
  class ICE_API CompactIdInit
27
27
  {
@@ -267,7 +267,7 @@ IconvStringConverter<charT>::toUTF8(const charT* sourceStart,
267
267
  #else
268
268
  char* inbuf = reinterpret_cast<char*>(const_cast<charT*>(sourceStart));
269
269
  #endif
270
- size_t inbytesleft = (sourceEnd - sourceStart) * sizeof(charT);
270
+ size_t inbytesleft = static_cast<size_t>(sourceEnd - sourceStart) * sizeof(charT);
271
271
  char* outbuf = 0;
272
272
 
273
273
  size_t count = 0;
@@ -311,7 +311,8 @@ IconvStringConverter<charT>::fromUTF8(const Ice::Byte* sourceStart, const Ice::B
311
311
  #else
312
312
  char* inbuf = reinterpret_cast<char*>(const_cast<Ice::Byte*>(sourceStart));
313
313
  #endif
314
- size_t inbytesleft = sourceEnd - sourceStart;
314
+ assert(sourceEnd > sourceStart);
315
+ size_t inbytesleft = static_cast<size_t>(sourceEnd - sourceStart);
315
316
 
316
317
  char* outbuf = 0;
317
318
  size_t outbytesleft = 0;
@@ -325,7 +326,7 @@ IconvStringConverter<charT>::fromUTF8(const Ice::Byte* sourceStart, const Ice::B
325
326
  size_t bytesused = 0;
326
327
  if(outbuf != 0)
327
328
  {
328
- bytesused = outbuf - reinterpret_cast<const char*>(target.data());
329
+ bytesused = static_cast<size_t>(outbuf - reinterpret_cast<const char*>(target.data()));
329
330
  }
330
331
 
331
332
  const size_t increment = std::max<size_t>(inbytesleft, 4);