zeroc-ice 3.7.3 → 3.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. checksums.yaml +4 -4
  2. data/ext/Communicator.cpp +3 -0
  3. data/ext/Config.h +11 -0
  4. data/ext/Types.cpp +18 -2
  5. data/ext/Util.cpp +15 -3
  6. data/ext/Util.h +36 -0
  7. data/ext/ice/cpp/include/Ice/Exception.h +3 -3
  8. data/ext/ice/cpp/include/Ice/Functional.h +3 -1
  9. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +1 -1
  10. data/ext/ice/cpp/include/Ice/Initialize.h +1 -1
  11. data/ext/ice/cpp/include/Ice/Object.h +7 -0
  12. data/ext/ice/cpp/include/Ice/Optional.h +1 -1
  13. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +15 -0
  14. data/ext/ice/cpp/include/Ice/Proxy.h +56 -25
  15. data/ext/ice/cpp/include/Ice/Service.h +1 -1
  16. data/ext/ice/cpp/include/IceSSL/Plugin.h +142 -0
  17. data/ext/ice/cpp/include/IceUtil/Config.h +3 -2
  18. data/ext/ice/cpp/include/IceUtil/Functional.h +3 -1
  19. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
  20. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +2 -2
  21. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +2 -2
  22. data/ext/ice/cpp/include/generated/Ice/Communicator.h +10 -4
  23. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +2 -2
  24. data/ext/ice/cpp/include/generated/Ice/Connection.h +58 -15
  25. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +2 -2
  26. data/ext/ice/cpp/include/generated/Ice/Current.h +2 -2
  27. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +50 -14
  28. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +2 -2
  29. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +2 -2
  30. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +2 -2
  31. data/ext/ice/cpp/include/generated/Ice/Identity.h +2 -2
  32. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +8 -2
  33. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +2 -2
  34. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +62 -2
  35. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +2 -2
  36. data/ext/ice/cpp/include/generated/Ice/LocalException.h +523 -127
  37. data/ext/ice/cpp/include/generated/Ice/Locator.h +62 -14
  38. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +2 -2
  39. data/ext/ice/cpp/include/generated/Ice/Logger.h +8 -2
  40. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +2 -2
  41. data/ext/ice/cpp/include/generated/Ice/Metrics.h +79 -27
  42. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +8 -2
  43. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +2 -2
  44. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +8 -2
  45. data/ext/ice/cpp/include/generated/Ice/Plugin.h +14 -2
  46. data/ext/ice/cpp/include/generated/Ice/PluginF.h +2 -2
  47. data/ext/ice/cpp/include/generated/Ice/Process.h +10 -4
  48. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +2 -2
  49. data/ext/ice/cpp/include/generated/Ice/Properties.h +8 -2
  50. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +11 -5
  51. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +2 -2
  52. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +26 -8
  53. data/ext/ice/cpp/include/generated/Ice/Router.h +18 -6
  54. data/ext/ice/cpp/include/generated/Ice/RouterF.h +2 -2
  55. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +8 -2
  56. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +2 -2
  57. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +2 -2
  58. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +14 -2
  59. data/ext/ice/cpp/include/generated/Ice/Version.h +2 -2
  60. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +10 -5
  61. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +2 -2
  62. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +8 -3
  63. data/ext/ice/cpp/src/Ice/ArgVector.cpp +1 -1
  64. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +2 -2
  65. data/ext/ice/cpp/src/Ice/Communicator.cpp +2 -2
  66. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +2 -2
  67. data/ext/ice/cpp/src/Ice/Connection.cpp +2 -2
  68. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +2 -2
  69. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +3 -3
  70. data/ext/ice/cpp/src/Ice/Current.cpp +2 -2
  71. data/ext/ice/cpp/src/Ice/Endpoint.cpp +2 -2
  72. data/ext/ice/cpp/src/Ice/EndpointF.cpp +2 -2
  73. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +2 -2
  74. data/ext/ice/cpp/src/Ice/FacetMap.cpp +2 -2
  75. data/ext/ice/cpp/src/Ice/Identity.cpp +2 -2
  76. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +2 -2
  77. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +2 -2
  78. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +1 -1
  79. data/ext/ice/cpp/src/Ice/Initialize.cpp +1 -1
  80. data/ext/ice/cpp/src/Ice/InputStream.cpp +29 -14
  81. data/ext/ice/cpp/src/Ice/Instance.cpp +3 -0
  82. data/ext/ice/cpp/src/Ice/Instance.h +2 -0
  83. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +2 -2
  84. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +2 -2
  85. data/ext/ice/cpp/src/Ice/LocalException.cpp +398 -2
  86. data/ext/ice/cpp/src/Ice/Locator.cpp +32 -2
  87. data/ext/ice/cpp/src/Ice/LocatorF.cpp +2 -2
  88. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +3 -3
  89. data/ext/ice/cpp/src/Ice/Logger.cpp +2 -2
  90. data/ext/ice/cpp/src/Ice/LoggerF.cpp +2 -2
  91. data/ext/ice/cpp/src/Ice/Metrics.cpp +8 -2
  92. data/ext/ice/cpp/src/Ice/Network.cpp +1 -1
  93. data/ext/ice/cpp/src/Ice/Network.h +0 -0
  94. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +2 -2
  95. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +2 -2
  96. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +4 -4
  97. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +8 -8
  98. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +2 -2
  99. data/ext/ice/cpp/src/Ice/Plugin.cpp +2 -2
  100. data/ext/ice/cpp/src/Ice/PluginF.cpp +2 -2
  101. data/ext/ice/cpp/src/Ice/Process.cpp +2 -2
  102. data/ext/ice/cpp/src/Ice/ProcessF.cpp +2 -2
  103. data/ext/ice/cpp/src/Ice/Properties.cpp +2 -2
  104. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +2 -2
  105. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +2 -2
  106. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +6 -3
  107. data/ext/ice/cpp/src/Ice/PropertyNames.h +1 -1
  108. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +9 -0
  109. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +8 -2
  110. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +5 -2
  111. data/ext/ice/cpp/src/Ice/Router.cpp +2 -2
  112. data/ext/ice/cpp/src/Ice/RouterF.cpp +2 -2
  113. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +6 -2
  114. data/ext/ice/cpp/src/Ice/SHA1.cpp +2 -0
  115. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +2 -2
  116. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +2 -2
  117. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +2 -2
  118. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +0 -0
  119. data/ext/ice/cpp/src/Ice/Thread.cpp +2 -2
  120. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +5 -1
  121. data/ext/ice/cpp/src/Ice/ThreadPool.h +0 -4
  122. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -0
  123. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +2 -2
  124. data/ext/ice/cpp/src/Ice/Version.cpp +2 -2
  125. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +2 -2
  126. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +491 -6
  127. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +2 -2
  128. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +16 -4
  129. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +12 -1
  130. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +23 -1
  131. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +2 -2
  132. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +2 -2
  133. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +2 -2
  134. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +124 -19
  135. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +60 -1
  136. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +105 -2
  137. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +1 -0
  138. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +2 -0
  139. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +114 -0
  140. data/ext/ice/cpp/src/IceSSL/PluginI.h +21 -0
  141. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +142 -1
  142. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +117 -3
  143. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +1 -0
  144. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +20 -1
  145. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +4 -0
  146. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +133 -2
  147. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +151 -89
  148. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +1 -0
  149. data/ext/ice/cpp/src/IceSSL/Util.cpp +0 -0
  150. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +6 -0
  151. data/ext/ice/cpp/src/IceUtil/Time.cpp +8 -10
  152. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +6 -2
  153. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +12 -4
  154. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +4 -0
  155. data/ext/ice/cpp/src/Slice/Parser.cpp +11 -7
  156. data/ext/ice/cpp/src/Slice/Parser.h +2 -2
  157. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +12 -0
  158. data/ext/ice/cpp/src/Slice/Preprocessor.h +1 -1
  159. data/ext/ice/cpp/src/Slice/Python.cpp +1 -1
  160. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +17 -5
  161. data/ext/ice/cpp/src/Slice/Scanner.cpp +621 -369
  162. data/ext/ice/mcpp/CMakeLists.txt +80 -0
  163. data/ext/ice/mcpp/expand.c +6 -6
  164. data/ice.gemspec +1 -1
  165. data/lib/Glacier2/Metrics.rb +1 -1
  166. data/lib/Glacier2/PermissionsVerifier.rb +1 -1
  167. data/lib/Glacier2/PermissionsVerifierF.rb +1 -1
  168. data/lib/Glacier2/Router.rb +1 -1
  169. data/lib/Glacier2/RouterF.rb +1 -1
  170. data/lib/Glacier2/SSLInfo.rb +1 -1
  171. data/lib/Glacier2/Session.rb +1 -1
  172. data/lib/Ice/BuiltinSequences.rb +1 -1
  173. data/lib/Ice/Communicator.rb +1 -1
  174. data/lib/Ice/CommunicatorF.rb +1 -1
  175. data/lib/Ice/Connection.rb +1 -1
  176. data/lib/Ice/ConnectionF.rb +1 -1
  177. data/lib/Ice/Current.rb +1 -1
  178. data/lib/Ice/Endpoint.rb +1 -1
  179. data/lib/Ice/EndpointF.rb +1 -1
  180. data/lib/Ice/EndpointTypes.rb +1 -1
  181. data/lib/Ice/FacetMap.rb +1 -1
  182. data/lib/Ice/Identity.rb +1 -1
  183. data/lib/Ice/ImplicitContext.rb +1 -1
  184. data/lib/Ice/ImplicitContextF.rb +1 -1
  185. data/lib/Ice/Instrumentation.rb +1 -1
  186. data/lib/Ice/InstrumentationF.rb +1 -1
  187. data/lib/Ice/LocalException.rb +1 -1
  188. data/lib/Ice/Locator.rb +1 -1
  189. data/lib/Ice/LocatorF.rb +1 -1
  190. data/lib/Ice/Logger.rb +1 -1
  191. data/lib/Ice/LoggerF.rb +1 -1
  192. data/lib/Ice/Metrics.rb +1 -1
  193. data/lib/Ice/ObjectAdapter.rb +1 -1
  194. data/lib/Ice/ObjectAdapterF.rb +1 -1
  195. data/lib/Ice/ObjectFactory.rb +1 -1
  196. data/lib/Ice/Plugin.rb +1 -1
  197. data/lib/Ice/PluginF.rb +1 -1
  198. data/lib/Ice/Process.rb +1 -1
  199. data/lib/Ice/ProcessF.rb +1 -1
  200. data/lib/Ice/Properties.rb +1 -1
  201. data/lib/Ice/PropertiesAdmin.rb +1 -1
  202. data/lib/Ice/PropertiesF.rb +1 -1
  203. data/lib/Ice/RemoteLogger.rb +1 -1
  204. data/lib/Ice/Router.rb +1 -1
  205. data/lib/Ice/RouterF.rb +1 -1
  206. data/lib/Ice/ServantLocator.rb +1 -1
  207. data/lib/Ice/ServantLocatorF.rb +1 -1
  208. data/lib/Ice/SliceChecksumDict.rb +1 -1
  209. data/lib/Ice/ValueFactory.rb +1 -1
  210. data/lib/Ice/Version.rb +1 -1
  211. data/lib/IceBox/IceBox.rb +1 -1
  212. data/lib/IceGrid/Admin.rb +1 -1
  213. data/lib/IceGrid/Descriptor.rb +1 -1
  214. data/lib/IceGrid/Exception.rb +1 -1
  215. data/lib/IceGrid/FileParser.rb +1 -1
  216. data/lib/IceGrid/PluginFacade.rb +1 -1
  217. data/lib/IceGrid/Registry.rb +1 -1
  218. data/lib/IceGrid/Session.rb +1 -1
  219. data/lib/IceGrid/UserAccountMapper.rb +1 -1
  220. data/lib/IcePatch2/FileInfo.rb +1 -1
  221. data/lib/IcePatch2/FileServer.rb +1 -1
  222. data/lib/IceStorm/IceStorm.rb +1 -1
  223. data/lib/IceStorm/Metrics.rb +1 -1
  224. data/slice/Ice/Communicator.ice +1 -1
  225. data/slice/IceBox/IceBox.ice +17 -2
  226. data/slice/IceDiscovery/IceDiscovery.ice +56 -0
  227. metadata +4 -4
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 3
40
+ # if ICE_INT_VERSION % 100 < 7
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -41,7 +41,7 @@
41
41
  # if ICE_INT_VERSION % 100 >= 50
42
42
  # error Beta header file detected
43
43
  # endif
44
- # if ICE_INT_VERSION % 100 < 3
44
+ # if ICE_INT_VERSION % 100 < 7
45
45
  # error Ice patch level mismatch!
46
46
  # endif
47
47
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -35,7 +35,7 @@
35
35
  # if ICE_INT_VERSION % 100 >= 50
36
36
  # error Beta header file detected
37
37
  # endif
38
- # if ICE_INT_VERSION % 100 < 3
38
+ # if ICE_INT_VERSION % 100 < 7
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 3
40
+ # if ICE_INT_VERSION % 100 < 7
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -35,7 +35,7 @@
35
35
  # if ICE_INT_VERSION % 100 >= 50
36
36
  # error Beta header file detected
37
37
  # endif
38
- # if ICE_INT_VERSION % 100 < 3
38
+ # if ICE_INT_VERSION % 100 < 7
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif
@@ -48,7 +48,7 @@ IceUtil::Shared* IceInternal::upCast(IncomingConnectionFactory* p) { return p; }
48
48
  namespace
49
49
  {
50
50
 
51
- #ifdef ICE_CPP11_MAPPING
51
+ #ifdef ICE_CPP11_COMPILER
52
52
  template <typename Map> void
53
53
  remove(Map& m, const typename Map::key_type& k, const typename Map::mapped_type& v)
54
54
  {
@@ -463,7 +463,7 @@ IceInternal::OutgoingConnectionFactory::findConnection(const vector<EndpointIPtr
463
463
  assert(!endpoints.empty());
464
464
  for(vector<EndpointIPtr>::const_iterator p = endpoints.begin(); p != endpoints.end(); ++p)
465
465
  {
466
- #ifdef ICE_CPP11_MAPPING
466
+ #ifdef ICE_CPP11_COMPILER
467
467
  auto connection = find(_connectionsByEndpoint, *p,
468
468
  [](const ConnectionIPtr& conn)
469
469
  {
@@ -501,7 +501,7 @@ IceInternal::OutgoingConnectionFactory::findConnection(const vector<ConnectorInf
501
501
  continue;
502
502
  }
503
503
 
504
- #ifdef ICE_CPP11_MAPPING
504
+ #ifdef ICE_CPP11_COMPILER
505
505
  auto connection = find(_connections, p->connector,
506
506
  [](const ConnectionIPtr& conn)
507
507
  {
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 3
40
+ # if ICE_INT_VERSION % 100 < 7
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 3
40
+ # if ICE_INT_VERSION % 100 < 7
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -35,7 +35,7 @@
35
35
  # if ICE_INT_VERSION % 100 >= 50
36
36
  # error Beta header file detected
37
37
  # endif
38
- # if ICE_INT_VERSION % 100 < 3
38
+ # if ICE_INT_VERSION % 100 < 7
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -35,7 +35,7 @@
35
35
  # if ICE_INT_VERSION % 100 >= 50
36
36
  # error Beta header file detected
37
37
  # endif
38
- # if ICE_INT_VERSION % 100 < 3
38
+ # if ICE_INT_VERSION % 100 < 7
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 3
40
+ # if ICE_INT_VERSION % 100 < 7
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 3
40
+ # if ICE_INT_VERSION % 100 < 7
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 3
40
+ # if ICE_INT_VERSION % 100 < 7
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -35,7 +35,7 @@
35
35
  # if ICE_INT_VERSION % 100 >= 50
36
36
  # error Beta header file detected
37
37
  # endif
38
- # if ICE_INT_VERSION % 100 < 3
38
+ # if ICE_INT_VERSION % 100 < 7
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif
@@ -471,7 +471,7 @@ PerThreadImplicitContext::clearThreadContext() const
471
471
  # ifdef _WIN32
472
472
  if(TlsSetValue(_key, 0) == 0)
473
473
  {
474
- IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
474
+ throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
475
475
  }
476
476
  # else
477
477
  if(int err = pthread_setspecific(_key, 0))
@@ -413,7 +413,7 @@ Ice::CommunicatorHolder::operator=(shared_ptr<Communicator> communicator)
413
413
  }
414
414
 
415
415
  Ice::CommunicatorHolder&
416
- Ice::CommunicatorHolder::operator=(CommunicatorHolder&& other)
416
+ Ice::CommunicatorHolder::operator=(CommunicatorHolder&& other) noexcept
417
417
  {
418
418
  if(_communicator)
419
419
  {
@@ -481,7 +481,7 @@ struct ReadBoolHelper
481
481
  {
482
482
  static bool* read(pair<const bool*, const bool*>& v, Int sz, InputStream::Container::iterator& i)
483
483
  {
484
- bool* array = new bool[sz];
484
+ bool* array = new bool[static_cast<size_t>(sz)];
485
485
  for(int idx = 0; idx < sz; ++idx)
486
486
  {
487
487
  array[idx] = static_cast<bool>(*(i + idx));
@@ -608,12 +608,12 @@ Ice::InputStream::read(pair<const Short*, const Short*>& v, IceUtil::ScopedArray
608
608
  v.second = reinterpret_cast<Short*>(i);
609
609
  #else
610
610
  # ifdef ICE_CPP11_MAPPING
611
- auto result = new short[sz];
611
+ auto result = new short[static_cast<size_t>(sz)];
612
612
  _deleters.push_back([result] { delete[] result; });
613
613
  v.first = result;
614
614
  v.second = result + sz;
615
615
  # else
616
- result.reset(new Short[sz]);
616
+ result.reset(new Short[static_cast<size_t>(sz)]);
617
617
  v.first = result.get();
618
618
  v.second = result.get() + sz;
619
619
  # endif
@@ -691,12 +691,12 @@ Ice::InputStream::read(pair<const Int*, const Int*>& v, ::IceUtil::ScopedArray<I
691
691
  #else
692
692
 
693
693
  # ifdef ICE_CPP11_MAPPING
694
- auto result = new int[sz];
694
+ auto result = new int[static_cast<size_t>(sz)];
695
695
  _deleters.push_back([result] { delete[] result; });
696
696
  v.first = result;
697
697
  v.second = result + sz;
698
698
  # else
699
- result.reset(new Int[sz]);
699
+ result.reset(new Int[static_cast<size_t>(sz)]);
700
700
  v.first = result.get();
701
701
  v.second = result.get() + sz;
702
702
  # endif
@@ -812,12 +812,12 @@ Ice::InputStream::read(pair<const Long*, const Long*>& v, IceUtil::ScopedArray<L
812
812
  #else
813
813
 
814
814
  # ifdef ICE_CPP11_MAPPING
815
- auto result = new long long[sz];
815
+ auto result = new long long[static_cast<size_t>(sz)];
816
816
  _deleters.push_back([result] { delete[] result; });
817
817
  v.first = result;
818
818
  v.second = result + sz;
819
819
  # else
820
- result.reset(new Long[sz]);
820
+ result.reset(new Long[static_cast<size_t>(sz)]);
821
821
  v.first = result.get();
822
822
  v.second = result.get() + sz;
823
823
  # endif
@@ -925,12 +925,12 @@ Ice::InputStream::read(pair<const Float*, const Float*>& v, IceUtil::ScopedArray
925
925
  #else
926
926
 
927
927
  # ifdef ICE_CPP11_MAPPING
928
- auto result = new float[sz];
928
+ auto result = new float[static_cast<size_t>(sz)];
929
929
  _deleters.push_back([result] { delete[] result; });
930
930
  v.first = result;
931
931
  v.second = result + sz;
932
932
  # else
933
- result.reset(new Float[sz]);
933
+ result.reset(new Float[static_cast<size_t>(sz)]);
934
934
  v.first = result.get();
935
935
  v.second = result.get() + sz;
936
936
  # endif
@@ -1046,12 +1046,12 @@ Ice::InputStream::read(pair<const Double*, const Double*>& v, IceUtil::ScopedArr
1046
1046
  #else
1047
1047
 
1048
1048
  # ifdef ICE_CPP11_MAPPING
1049
- auto result = new double[sz];
1049
+ auto result = new double[static_cast<size_t>(sz)];
1050
1050
  _deleters.push_back([result] { delete[] result; });
1051
1051
  v.first = result;
1052
1052
  v.second = result + sz;
1053
1053
  # else
1054
- result.reset(new Double[sz]);
1054
+ result.reset(new Double[static_cast<size_t>(sz)]);
1055
1055
  v.first = result.get();
1056
1056
  v.second = result.get() + sz;
1057
1057
  # endif
@@ -1819,12 +1819,17 @@ Ice::InputStream::EncapsDecoder::addPatchEntry(Int index, PatchFunc patchFunc, v
1819
1819
  assert(index > 0);
1820
1820
 
1821
1821
  //
1822
- // Check if we already unmarshaled the object. If that's the case,
1823
- // just patch the object smart pointer and we're done.
1822
+ // Check if we already unmarshaled the object. If that's the case, just patch the object smart pointer
1823
+ // and we're done. A null value indicates we've encountered a cycle and Ice.AllowClassCycles is false.
1824
1824
  //
1825
1825
  IndexToPtrMap::iterator p = _unmarshaledMap.find(index);
1826
1826
  if(p != _unmarshaledMap.end())
1827
1827
  {
1828
+ if (p->second == ICE_NULLPTR)
1829
+ {
1830
+ assert(!_stream->_instance->acceptClassCycles());
1831
+ throw MarshalException(__FILE__, __LINE__, "cycle detected during Value unmarshaling");
1832
+ }
1828
1833
  (*patchFunc)(patchAddr, p->second);
1829
1834
  return;
1830
1835
  }
@@ -1862,7 +1867,10 @@ Ice::InputStream::EncapsDecoder::unmarshal(Int index, const Ice::ValuePtr& v)
1862
1867
  // Add the object to the map of unmarshaled instances, this must
1863
1868
  // be done before reading the instances (for circular references).
1864
1869
  //
1865
- _unmarshaledMap.insert(make_pair(index, v));
1870
+ // If circular references are not allowed we insert null (for cycle detection) and add
1871
+ // the object to the map once it has been fully unmarshaled.
1872
+ //
1873
+ _unmarshaledMap.insert(make_pair(index, _stream->_instance->acceptClassCycles() ? v : Ice::ValuePtr()));
1866
1874
 
1867
1875
  //
1868
1876
  // Read the object.
@@ -1915,6 +1923,13 @@ Ice::InputStream::EncapsDecoder::unmarshal(Int index, const Ice::ValuePtr& v)
1915
1923
  _valueList.clear();
1916
1924
  }
1917
1925
  }
1926
+
1927
+ if(!_stream->_instance->acceptClassCycles())
1928
+ {
1929
+ // This class has been fully unmarshaled without creating any cycles
1930
+ // It can be added to the map now.
1931
+ _unmarshaledMap[index] = v;
1932
+ }
1918
1933
  }
1919
1934
 
1920
1935
  void
@@ -950,6 +950,7 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
950
950
  _classGraphDepthMax(0),
951
951
  _collectObjects(false),
952
952
  _toStringMode(ICE_ENUM(ToStringMode, Unicode)),
953
+ _acceptClassCycles(false),
953
954
  _implicitContext(0),
954
955
  _stringConverter(Ice::getProcessStringConverter()),
955
956
  _wstringConverter(Ice::getProcessWstringConverter()),
@@ -1227,6 +1228,8 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
1227
1228
  throw InitializationException(__FILE__, __LINE__, "The value for Ice.ToStringMode must be Unicode, ASCII or Compat");
1228
1229
  }
1229
1230
 
1231
+ const_cast<bool&>(_acceptClassCycles) = _initData.properties->getPropertyAsInt("Ice.AcceptClassCycles") > 0;
1232
+
1230
1233
  const_cast<ImplicitContextIPtr&>(_implicitContext) =
1231
1234
  ImplicitContextI::create(_initData.properties->getProperty("Ice.ImplicitContext"));
1232
1235
 
@@ -106,6 +106,7 @@ public:
106
106
  size_t classGraphDepthMax() const { return _classGraphDepthMax; }
107
107
  bool collectObjects() const { return _collectObjects; }
108
108
  Ice::ToStringMode toStringMode() const { return _toStringMode; }
109
+ bool acceptClassCycles() const { return _acceptClassCycles; }
109
110
  const ACMConfig& clientACM() const;
110
111
  const ACMConfig& serverACM() const;
111
112
 
@@ -175,6 +176,7 @@ private:
175
176
  const size_t _classGraphDepthMax; // Immutable, not reset by destroy().
176
177
  const bool _collectObjects; // Immutable, not reset by destroy().
177
178
  const Ice::ToStringMode _toStringMode; // Immutable, not reset by destroy()
179
+ const bool _acceptClassCycles; // Immutable, not reset by destroy()
178
180
  ACMConfig _clientACM;
179
181
  ACMConfig _serverACM;
180
182
  RouterManagerPtr _routerManager;
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 3
40
+ # if ICE_INT_VERSION % 100 < 7
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.3
5
+ // Ice version 3.7.7
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -35,7 +35,7 @@
35
35
  # if ICE_INT_VERSION % 100 >= 50
36
36
  # error Beta header file detected
37
37
  # endif
38
- # if ICE_INT_VERSION % 100 < 3
38
+ # if ICE_INT_VERSION % 100 < 7
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif