zeroc-ice 3.7.2 → 3.7.3

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -382,7 +382,7 @@ public:
382
382
  _currentEncaps = new Encaps();
383
383
  _currentEncaps->previous = oldEncaps;
384
384
  }
385
- _currentEncaps->start = i - b.begin();
385
+ _currentEncaps->start = static_cast<size_t>(i - b.begin());
386
386
 
387
387
  //
388
388
  // I don't use readSize() and writeSize() for encapsulations,
@@ -484,7 +484,7 @@ public:
484
484
  {
485
485
  // Skip the optional content of the encapsulation if we are expecting an
486
486
  // empty encapsulation.
487
- i += sz - sizeof(Ice::Int) - 2;
487
+ i += static_cast<size_t>(sz) - sizeof(Ice::Int) - 2;
488
488
  }
489
489
  return encoding;
490
490
  }
@@ -511,7 +511,7 @@ public:
511
511
  }
512
512
 
513
513
  read(encoding);
514
- i += sz - sizeof(Int) - 2;
514
+ i += static_cast<size_t>(sz) - sizeof(Int) - 2;
515
515
  return encoding;
516
516
  }
517
517
 
@@ -1174,7 +1174,7 @@ public:
1174
1174
  */
1175
1175
  size_type pos()
1176
1176
  {
1177
- return i - b.begin();
1177
+ return static_cast<size_t>(i - b.begin());
1178
1178
  }
1179
1179
 
1180
1180
  /**
@@ -540,10 +540,21 @@ public:
540
540
  return dataptr();
541
541
  }
542
542
 
543
+ //
544
+ // WORKAROUND error: implicit conversion turns string literal into bool
545
+ //
546
+ #if defined(__clang__)
547
+ # pragma clang diagnostic push
548
+ # pragma clang diagnostic ignored "-Wconversion"
549
+ #endif
543
550
  constexpr T const& operator *() const {
544
551
  return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), contained_val());
545
552
  }
546
553
 
554
+ #if defined(__clang__)
555
+ # pragma clang diagnostic pop
556
+ #endif
557
+
547
558
  T& operator *() {
548
559
  assert (initialized());
549
560
  return contained_val();
@@ -664,7 +664,7 @@ public:
664
664
  //
665
665
  // See comments in OutgoingAsync.cpp
666
666
  //
667
- extern ICE_API CallbackBasePtr dummyCallback;
667
+ extern ICE_API CallbackBasePtr dummyCallback ICE_GLOBAL_VAR_SUFFIX;
668
668
 
669
669
  //
670
670
  // Generic callback template that requires the caller to down-cast the
@@ -261,8 +261,8 @@ public:
261
261
  }
262
262
 
263
263
  Container::size_type position = b.size();
264
- resize(position + sz);
265
- memcpy(&b[position], &v[0], sz);
264
+ resize(position + static_cast<size_t>(sz));
265
+ memcpy(&b[position], &v[0], static_cast<size_t>(sz));
266
266
  }
267
267
 
268
268
  /**
@@ -680,8 +680,8 @@ public:
680
680
  if(sz > 0)
681
681
  {
682
682
  Container::size_type position = b.size();
683
- resize(position + sz);
684
- memcpy(&b[position], v.data(), sz);
683
+ resize(position + static_cast<size_t>(sz));
684
+ memcpy(&b[position], v.data(), static_cast<size_t>(sz));
685
685
  }
686
686
  }
687
687
  }
@@ -706,7 +706,7 @@ public:
706
706
  if(sz > 0)
707
707
  {
708
708
  Container::size_type position = b.size();
709
- resize(position + sz);
709
+ resize(position + static_cast<size_t>(sz));
710
710
  memcpy(&b[position], vdata, vsize);
711
711
  }
712
712
  }
@@ -992,6 +992,12 @@ public:
992
992
  */
993
993
  ::std::shared_ptr<::Ice::ObjectPrx> ice_fixed(const ::std::shared_ptr<::Ice::Connection>& connection) const;
994
994
 
995
+ /**
996
+ * Determines whether this proxy is a fixed proxy.
997
+ * @return True if this proxy is a fixed proxy, false otherwise.
998
+ */
999
+ bool ice_isFixed() const;
1000
+
995
1001
  /**
996
1002
  * Obtains the Connection for this proxy. If the proxy does not yet have an established connection,
997
1003
  * it first attempts to create a connection.
@@ -1057,7 +1063,7 @@ public:
1057
1063
  }
1058
1064
 
1059
1065
  /**
1060
- * Flushes any pending batched requests for this communicator. The call blocks until the flush is complete.
1066
+ * Flushes asynchronously any pending batched requests for this communicator.
1061
1067
  * @param ex The exception callback.
1062
1068
  * @param sent The sent callback.
1063
1069
  * @return A function that can be called to cancel the invocation locally.
@@ -1073,7 +1079,7 @@ public:
1073
1079
  }
1074
1080
 
1075
1081
  /**
1076
- * Flushes any pending batched requests for this communicator. The call blocks until the flush is complete.
1082
+ * Flushes asynchronously any pending batched requests for this communicator.
1077
1083
  * @return The future object for the invocation.
1078
1084
  */
1079
1085
  template<template<typename> class P = std::promise> auto
@@ -2658,6 +2664,12 @@ public:
2658
2664
  */
2659
2665
  ::Ice::ObjectPrx ice_fixed(const ::Ice::ConnectionPtr& connection) const;
2660
2666
 
2667
+ /**
2668
+ * Determines whether this proxy is a fixed proxy.
2669
+ * @return True if this proxy is a fixed proxy, false otherwise.
2670
+ */
2671
+ bool ice_isFixed() const;
2672
+
2661
2673
  /**
2662
2674
  * Obtains the Connection for this proxy. If the proxy does not yet have an established connection,
2663
2675
  * it first attempts to create a connection.
@@ -2729,7 +2741,7 @@ public:
2729
2741
  }
2730
2742
 
2731
2743
  /**
2732
- * Flushes any pending batched requests for this proxy. The call blocks until the flush is complete.
2744
+ * Flushes asynchronously any pending batched requests for this proxy.
2733
2745
  * @return The asynchronous result object for the invocation.
2734
2746
  */
2735
2747
  ::Ice::AsyncResultPtr begin_ice_flushBatchRequests()
@@ -2738,7 +2750,7 @@ public:
2738
2750
  }
2739
2751
 
2740
2752
  /**
2741
- * Flushes any pending batched requests for this proxy. The call blocks until the flush is complete.
2753
+ * Flushes asynchronously any pending batched requests for this proxy.
2742
2754
  * @param cb Asynchronous callback object.
2743
2755
  * @param cookie User-defined data to associate with the invocation.
2744
2756
  * @return The asynchronous result object for the invocation.
@@ -2750,7 +2762,7 @@ public:
2750
2762
  }
2751
2763
 
2752
2764
  /**
2753
- * Flushes any pending batched requests for this proxy. The call blocks until the flush is complete.
2765
+ * Flushes asynchronously any pending batched requests for this proxy.
2754
2766
  * @param cb Asynchronous callback object.
2755
2767
  * @param cookie User-defined data to associate with the invocation.
2756
2768
  * @return The asynchronous result object for the invocation.
@@ -583,7 +583,7 @@ struct StreamHelper<T, StreamHelperCategorySequence>
583
583
  read(S* stream, T& v)
584
584
  {
585
585
  Int sz = stream->readAndCheckSeqSize(StreamableTraits<typename T::value_type>::minWireSize);
586
- T(sz).swap(v);
586
+ T(static_cast<size_t>(sz)).swap(v);
587
587
  for(typename T::iterator p = v.begin(); p != v.end(); ++p)
588
588
  {
589
589
  stream->read(*p);
@@ -42,7 +42,7 @@ public:
42
42
  virtual void ice_preMarshal();
43
43
 
44
44
  /**
45
- * The Ice run time invokes this method vafter unmarshaling an object's data members. This allows a
45
+ * The Ice run time invokes this method after unmarshaling an object's data members. This allows a
46
46
  * subclass to override this method in order to perform additional initialization.
47
47
  */
48
48
  virtual void ice_postUnmarshal();
@@ -23,7 +23,7 @@
23
23
  #elif ((defined(__GNUC__) && (((__GNUC__* 100) + __GNUC_MINOR__) >= 401)) || __clang__) && \
24
24
  ((defined(__sun) && (defined(__sparc) || defined(__sparcv9))) || \
25
25
  defined(__APPLE__) || \
26
- (defined(__linux) && \
26
+ (defined(__linux__) && \
27
27
  (defined(__i486) || defined(__i586) || \
28
28
  defined(__i686) || defined(__x86_64))))
29
29
 
@@ -21,12 +21,14 @@
21
21
  #endif
22
22
 
23
23
  #if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN)) || \
24
- (defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN))
24
+ (defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN)) || \
25
+ (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__))
25
26
 
26
27
  # define ICE_LITTLE_ENDIAN
27
28
 
28
29
  #elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN)) || \
29
- (defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN))
30
+ (defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN)) || \
31
+ (defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))
30
32
 
31
33
  # define ICE_BIG_ENDIAN
32
34
 
@@ -80,7 +82,7 @@
80
82
  # elif defined(__WORDSIZE) && (__WORDSIZE == 32)
81
83
  # define ICE_32
82
84
  # elif defined(__sun) && (defined(__sparcv9) || defined(__x86_64)) || \
83
- defined(__linux) && defined(__x86_64) || \
85
+ defined(__linux__) && defined(__x86_64) || \
84
86
  defined(__APPLE__) && defined(__x86_64) || \
85
87
  defined(__hppa) && defined(__LP64__) || \
86
88
  defined(_ARCH_COM) && defined(__64BIT__) || \
@@ -171,7 +173,7 @@
171
173
  // With Visual Studio, we can import/export member functions without importing/
172
174
  // exporting the whole class
173
175
  # define ICE_MEMBER_IMPORT_EXPORT
174
- #elif defined(__GNUC__) || defined(__clang__)
176
+ #elif (defined(__GNUC__) || defined(__clang__) || defined(__IBMCPP__)) && !defined(__ibmxl__)
175
177
  # define ICE_DECLSPEC_EXPORT __attribute__((visibility ("default")))
176
178
  # define ICE_DECLSPEC_IMPORT __attribute__((visibility ("default")))
177
179
  #elif defined(__SUNPRO_CC)
@@ -190,6 +192,14 @@
190
192
  # define ICE_MEMBER(API) /**/
191
193
  #endif
192
194
 
195
+ // With IBM xlC, the visibility attribute must be at the end of the
196
+ // declaration of global variables.
197
+ #if defined(__IBMCPP__) && !defined(ICE_STATIC_LIBS)
198
+ # define ICE_GLOBAL_VAR_SUFFIX __attribute__((visibility ("default")))
199
+ #else
200
+ # define ICE_GLOBAL_VAR_SUFFIX /**/
201
+ #endif
202
+
193
203
  //
194
204
  // Let's use these extensions with Ice:
195
205
  //
@@ -273,8 +283,8 @@
273
283
  //
274
284
  // The Ice version.
275
285
  //
276
- #define ICE_STRING_VERSION "3.7.2" // "A.B.C", with A=major, B=minor, C=patch
277
- #define ICE_INT_VERSION 30702 // AABBCC, with AA=major, BB=minor, CC=patch
286
+ #define ICE_STRING_VERSION "3.7.3" // "A.B.C", with A=major, B=minor, C=patch
287
+ #define ICE_INT_VERSION 30703 // AABBCC, with AA=major, BB=minor, CC=patch
278
288
  #define ICE_SO_VERSION "37" // "ABC", with A=major, B=minor, C=patch
279
289
 
280
290
  #if !defined(ICE_BUILDING_ICE) && defined(ICE_API_EXPORTS)
@@ -77,13 +77,13 @@ operator<<(ConsoleErr& err, const T& val)
77
77
  ICE_API ConsoleErr& endl(ConsoleErr&);
78
78
  ICE_API ConsoleErr& flush(ConsoleErr&);
79
79
 
80
- extern ICE_API ConsoleOut consoleOut;
81
- extern ICE_API ConsoleErr consoleErr;
80
+ extern ICE_API ConsoleOut consoleOut ICE_GLOBAL_VAR_SUFFIX;
81
+ extern ICE_API ConsoleErr consoleErr ICE_GLOBAL_VAR_SUFFIX;
82
82
 
83
83
  #else
84
84
 
85
- extern ICE_API std::ostream& consoleOut;
86
- extern ICE_API std::ostream& consoleErr;
85
+ extern ICE_API std::ostream& consoleOut ICE_GLOBAL_VAR_SUFFIX;
86
+ extern ICE_API std::ostream& consoleErr ICE_GLOBAL_VAR_SUFFIX;
87
87
 
88
88
  #endif
89
89
 
@@ -46,6 +46,14 @@ public:
46
46
  {
47
47
  }
48
48
 
49
+ /**
50
+ * Constructs an optional as a copy of the given optional.
51
+ * @param r The source optional.
52
+ */
53
+ Optional(const Optional& r) : _value(r._value), _isSet(r._isSet)
54
+ {
55
+ }
56
+
49
57
  /**
50
58
  * Constructs an optional with the given value.
51
59
  * @param p The initial value.
@@ -72,12 +72,12 @@ protected:
72
72
  class ICE_API NextLine
73
73
  {
74
74
  };
75
- extern ICE_API NextLine nl;
75
+ extern ICE_API NextLine nl ICE_GLOBAL_VAR_SUFFIX;
76
76
 
77
77
  class ICE_API Separator
78
78
  {
79
79
  };
80
- extern ICE_API Separator sp;
80
+ extern ICE_API Separator sp ICE_GLOBAL_VAR_SUFFIX;
81
81
 
82
82
  // ----------------------------------------------------------------------
83
83
  // Output
@@ -87,9 +87,9 @@ class ICE_API Output : public OutputBase
87
87
  {
88
88
  public:
89
89
 
90
- Output();
91
- Output(std::ostream&);
92
- Output(const char*);
90
+ Output(bool breakBeforeBlock = true, bool shortEmptyBlock = false);
91
+ Output(std::ostream&, bool = true, bool = false);
92
+ Output(const char*, bool = true, bool = false);
93
93
 
94
94
  virtual void print(const std::string&); // Print a string.
95
95
 
@@ -104,6 +104,9 @@ private:
104
104
  std::string _blockStart;
105
105
  std::string _blockEnd;
106
106
  int _par; // If >= 0, we are writing a parameter list.
107
+ const bool _breakBeforeBlock; // If true break before starting a new block.
108
+ const bool _shortEmptyBlock; // If true, an empty block is written <sb><eb>.
109
+ bool _emptyBlock;
107
110
  };
108
111
 
109
112
  template<typename T>
@@ -146,7 +149,7 @@ operator<<(Output& o, const Separator&)
146
149
  class ICE_API StartBlock
147
150
  {
148
151
  };
149
- extern ICE_API StartBlock sb;
152
+ extern ICE_API StartBlock sb ICE_GLOBAL_VAR_SUFFIX;
150
153
 
151
154
  template<>
152
155
  inline Output&
@@ -159,7 +162,7 @@ operator<<(Output& o, const StartBlock&)
159
162
  class ICE_API EndBlock
160
163
  {
161
164
  };
162
- extern ICE_API EndBlock eb;
165
+ extern ICE_API EndBlock eb ICE_GLOBAL_VAR_SUFFIX;
163
166
 
164
167
  template<>
165
168
  inline Output&
@@ -172,7 +175,7 @@ operator<<(Output& o, const EndBlock&)
172
175
  class ICE_API StartPar
173
176
  {
174
177
  };
175
- extern ICE_API StartPar spar;
178
+ extern ICE_API StartPar spar ICE_GLOBAL_VAR_SUFFIX;
176
179
 
177
180
  template<>
178
181
  inline Output&
@@ -185,7 +188,7 @@ operator<<(Output& o, const StartPar&)
185
188
  class ICE_API EndPar
186
189
  {
187
190
  };
188
- extern ICE_API EndPar epar;
191
+ extern ICE_API EndPar epar ICE_GLOBAL_VAR_SUFFIX;
189
192
 
190
193
  template<>
191
194
  inline Output&
@@ -198,7 +201,7 @@ operator<<(Output& o, const EndPar&)
198
201
  class ICE_API StartAbrk
199
202
  {
200
203
  };
201
- extern ICE_API StartAbrk sabrk;
204
+ extern ICE_API StartAbrk sabrk ICE_GLOBAL_VAR_SUFFIX;
202
205
 
203
206
  template<>
204
207
  inline Output&
@@ -211,7 +214,7 @@ operator<<(Output& o, const StartAbrk&)
211
214
  class ICE_API EndAbrk
212
215
  {
213
216
  };
214
- extern ICE_API EndAbrk eabrk;
217
+ extern ICE_API EndAbrk eabrk ICE_GLOBAL_VAR_SUFFIX;
215
218
 
216
219
  template<>
217
220
  inline Output&
@@ -289,7 +292,7 @@ operator<<(XMLOutput& o, const Separator&)
289
292
  class ICE_API EndElement
290
293
  {
291
294
  };
292
- extern ICE_API EndElement ee;
295
+ extern ICE_API EndElement ee ICE_GLOBAL_VAR_SUFFIX;
293
296
 
294
297
  template<>
295
298
  inline XMLOutput&
@@ -350,12 +353,12 @@ operator<<(XMLOutput& o, const Attribute& e)
350
353
  class ICE_API StartEscapes
351
354
  {
352
355
  };
353
- extern ICE_API StartEscapes startEscapes;
356
+ extern ICE_API StartEscapes startEscapes ICE_GLOBAL_VAR_SUFFIX;
354
357
 
355
358
  class ICE_API EndEscapes
356
359
  {
357
360
  };
358
- extern ICE_API EndEscapes endEscapes;
361
+ extern ICE_API EndEscapes endEscapes ICE_GLOBAL_VAR_SUFFIX;
359
362
 
360
363
  template<>
361
364
  inline XMLOutput&
@@ -37,7 +37,7 @@ struct RandomNumberGenerator : public std::unary_function<std::ptrdiff_t, std::p
37
37
  {
38
38
  std::ptrdiff_t operator()(std::ptrdiff_t d)
39
39
  {
40
- return IceUtilInternal::random(static_cast<int>(d));
40
+ return static_cast<std::ptrdiff_t>(IceUtilInternal::random(static_cast<int>(d)));
41
41
  }
42
42
  };
43
43
 
@@ -7,8 +7,8 @@
7
7
 
8
8
  #include "winver.h"
9
9
 
10
- #define ICE_VERSION 3,7,2,0
11
- #define ICE_STRING_VERSION "3.7.2\0"
10
+ #define ICE_VERSION 3,7,3,0
11
+ #define ICE_STRING_VERSION "3.7.3\0"
12
12
  #define ICE_SO_VERSION "37\0"
13
13
  #define ICE_COMPANY_NAME "ZeroC, Inc.\0"
14
14
  #define ICE_COPYRIGHT "\251 ZeroC, Inc.\0"
@@ -30,4 +30,10 @@
30
30
  # pragma warning(disable:5033)
31
31
  #endif
32
32
 
33
+ #if defined(__clang__)
34
+ # pragma clang diagnostic ignored "-Wconversion"
35
+ # pragma clang diagnostic ignored "-Wsign-conversion"
36
+ # pragma clang diagnostic ignored "-Wdocumentation"
37
+ #endif
38
+
33
39
  #endif
@@ -66,7 +66,7 @@ public:
66
66
  }
67
67
  };
68
68
 
69
- #ifdef __clang__
69
+ #if defined(__clang__) && !defined(ICE_STATIC_LIBS)
70
70
  //
71
71
  // Explicit template instantiation so that dynamic_cast of derived exported
72
72
  // classes works well with clang, see ICE-7473.
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.2
5
+ // Ice version 3.7.3
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -32,10 +32,10 @@
32
32
  # if ICE_INT_VERSION / 100 != 307
33
33
  # error Ice version mismatch!
34
34
  # endif
35
- # if ICE_INT_VERSION % 100 > 50
35
+ # if ICE_INT_VERSION % 100 >= 50
36
36
  # error Beta header file detected
37
37
  # endif
38
- # if ICE_INT_VERSION % 100 < 2
38
+ # if ICE_INT_VERSION % 100 < 3
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif