zeroc-ice 3.6b1 → 3.6.0

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 (679) hide show
  1. checksums.yaml +4 -4
  2. data/{ext/ice/BZIP_LICENSE → BZIP2_LICENSE} +0 -0
  3. data/ICE_LICENSE +8 -14
  4. data/LICENSE +2 -1
  5. data/{ext/ice/MCPP_LICENSE → MCPP_LICENSE} +2 -9
  6. data/bin/slice2rb +1 -1
  7. data/ext/Communicator.cpp +1 -1
  8. data/ext/Communicator.h +1 -1
  9. data/ext/Config.h +1 -22
  10. data/ext/Connection.cpp +125 -13
  11. data/ext/Connection.h +1 -1
  12. data/ext/Endpoint.cpp +62 -3
  13. data/ext/Endpoint.h +1 -1
  14. data/ext/ImplicitContext.cpp +1 -1
  15. data/ext/ImplicitContext.h +1 -1
  16. data/ext/Init.cpp +8 -1
  17. data/ext/Logger.cpp +1 -1
  18. data/ext/Logger.h +1 -1
  19. data/ext/ObjectFactory.cpp +1 -1
  20. data/ext/ObjectFactory.h +1 -1
  21. data/ext/Operation.cpp +1 -1
  22. data/ext/Operation.h +1 -1
  23. data/ext/Properties.cpp +1 -1
  24. data/ext/Properties.h +1 -1
  25. data/ext/Proxy.cpp +1 -1
  26. data/ext/Proxy.h +1 -1
  27. data/ext/Slice.cpp +1 -1
  28. data/ext/Slice.h +1 -1
  29. data/ext/Types.cpp +65 -17
  30. data/ext/Types.h +4 -1
  31. data/ext/Util.cpp +49 -58
  32. data/ext/Util.h +1 -1
  33. data/ext/extconf.rb +17 -15
  34. data/ext/ice/cpp/include/Ice/ACMF.h +1 -1
  35. data/ext/ice/cpp/include/Ice/Application.h +1 -1
  36. data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -1
  37. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -1
  38. data/ext/ice/cpp/include/Ice/BasicStream.h +1 -1
  39. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +52 -0
  40. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +25 -0
  41. data/ext/ice/cpp/include/Ice/Buffer.h +1 -1
  42. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +12 -4
  43. data/ext/ice/cpp/include/Ice/Communicator.h +12 -4
  44. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -1
  45. data/ext/ice/cpp/include/Ice/CommunicatorF.h +12 -4
  46. data/ext/ice/cpp/include/Ice/Config.h +13 -8
  47. data/ext/ice/cpp/include/Ice/Connection.h +41 -16
  48. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -1
  49. data/ext/ice/cpp/include/Ice/ConnectionF.h +12 -4
  50. data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +1 -1
  51. data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -1
  52. data/ext/ice/cpp/include/Ice/Current.h +12 -4
  53. data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +1 -1
  54. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +1 -1
  55. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -1
  56. data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -1
  57. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -1
  58. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  59. data/ext/ice/cpp/include/Ice/Endpoint.h +16 -6
  60. data/ext/ice/cpp/include/Ice/EndpointF.h +12 -4
  61. data/ext/ice/cpp/include/Ice/EndpointTypes.h +12 -4
  62. data/ext/ice/cpp/include/Ice/Exception.h +3 -3
  63. data/ext/ice/cpp/include/Ice/FacetMap.h +12 -4
  64. data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -1
  65. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
  66. data/ext/ice/cpp/include/Ice/Format.h +1 -1
  67. data/ext/ice/cpp/include/Ice/Functional.h +1 -1
  68. data/ext/ice/cpp/include/Ice/GCObject.h +5 -1
  69. data/ext/ice/cpp/include/Ice/Handle.h +1 -1
  70. data/ext/ice/cpp/include/Ice/Ice.h +4 -3
  71. data/ext/ice/cpp/include/Ice/Identity.h +13 -5
  72. data/ext/ice/cpp/include/Ice/ImplicitContext.h +12 -4
  73. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +12 -4
  74. data/ext/ice/cpp/include/Ice/Incoming.h +1 -1
  75. data/ext/ice/cpp/include/Ice/IncomingAsync.h +1 -1
  76. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -1
  77. data/ext/ice/cpp/include/Ice/Initialize.h +4 -2
  78. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -1
  79. data/ext/ice/cpp/include/Ice/Instrumentation.h +12 -4
  80. data/ext/ice/cpp/include/Ice/InstrumentationF.h +12 -4
  81. data/ext/ice/cpp/include/Ice/LocalException.h +12 -4
  82. data/ext/ice/cpp/include/Ice/LocalObject.h +1 -1
  83. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  84. data/ext/ice/cpp/include/Ice/Locator.h +137 -129
  85. data/ext/ice/cpp/include/Ice/LocatorF.h +12 -4
  86. data/ext/ice/cpp/include/Ice/Logger.h +12 -4
  87. data/ext/ice/cpp/include/Ice/LoggerF.h +12 -4
  88. data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -1
  89. data/ext/ice/cpp/include/Ice/Metrics.h +144 -136
  90. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +1 -1
  91. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -1
  92. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +35 -26
  93. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -1
  94. data/ext/ice/cpp/include/Ice/Object.h +1 -1
  95. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +12 -4
  96. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +12 -4
  97. data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +1 -1
  98. data/ext/ice/cpp/include/Ice/ObjectF.h +1 -1
  99. data/ext/ice/cpp/include/Ice/ObjectFactory.h +12 -4
  100. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +12 -4
  101. data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +1 -1
  102. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -1
  103. data/ext/ice/cpp/include/Ice/Outgoing.h +67 -39
  104. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +31 -34
  105. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +4 -4
  106. data/ext/ice/cpp/include/Ice/Plugin.h +12 -4
  107. data/ext/ice/cpp/include/Ice/PluginF.h +12 -4
  108. data/ext/ice/cpp/include/Ice/Process.h +36 -28
  109. data/ext/ice/cpp/include/Ice/ProcessF.h +12 -4
  110. data/ext/ice/cpp/include/Ice/Properties.h +12 -4
  111. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +86 -78
  112. data/ext/ice/cpp/include/Ice/PropertiesF.h +12 -4
  113. data/ext/ice/cpp/include/Ice/Protocol.h +1 -1
  114. data/ext/ice/cpp/include/Ice/Proxy.h +6 -2
  115. data/ext/ice/cpp/include/Ice/ProxyF.h +1 -1
  116. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  117. data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -1
  118. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  119. data/ext/ice/cpp/include/Ice/RemoteLogger.h +137 -129
  120. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -1
  121. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -1
  122. data/ext/ice/cpp/include/Ice/Router.h +37 -29
  123. data/ext/ice/cpp/include/Ice/RouterF.h +12 -4
  124. data/ext/ice/cpp/include/Ice/ServantLocator.h +12 -4
  125. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +12 -4
  126. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  127. data/ext/ice/cpp/include/Ice/Service.h +1 -1
  128. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +12 -4
  129. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
  130. data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
  131. data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -1
  132. data/ext/ice/cpp/include/Ice/Stream.h +3 -5
  133. data/ext/ice/cpp/include/Ice/StreamF.h +1 -1
  134. data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -1
  135. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  136. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -1
  137. data/ext/ice/cpp/include/Ice/Version.h +14 -6
  138. data/ext/ice/cpp/include/IceSSL/Config.h +19 -1
  139. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +61 -7
  140. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +52 -5
  141. data/ext/ice/cpp/include/IceSSL/IceSSL.h +2 -2
  142. data/ext/ice/cpp/include/IceSSL/Plugin.h +32 -26
  143. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +1 -1
  144. data/ext/ice/cpp/include/IceUtil/Atomic.h +186 -0
  145. data/ext/ice/cpp/include/IceUtil/Cache.h +1 -1
  146. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -1
  147. data/ext/ice/cpp/include/IceUtil/Config.h +31 -20
  148. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -1
  149. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +1 -1
  150. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +9 -2
  151. data/ext/ice/cpp/include/IceUtil/Exception.h +4 -3
  152. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -1
  153. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -1
  154. data/ext/ice/cpp/include/IceUtil/IceUtil.h +2 -2
  155. data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +1 -1
  156. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -1
  157. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -1
  158. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -1
  159. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -1
  160. data/ext/ice/cpp/include/IceUtil/Mutex.h +1 -1
  161. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -1
  162. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -1
  163. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -1
  164. data/ext/ice/cpp/include/IceUtil/Optional.h +1 -1
  165. data/ext/ice/cpp/include/IceUtil/Options.h +1 -1
  166. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +8 -11
  167. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -1
  168. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +5 -1
  169. data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
  170. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -1
  171. data/ext/ice/cpp/include/IceUtil/SHA1.h +8 -26
  172. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +5 -5
  173. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -1
  174. data/ext/ice/cpp/include/IceUtil/Shared.h +3 -37
  175. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -1
  176. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -1
  177. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -1
  178. data/ext/ice/cpp/include/IceUtil/Time.h +1 -1
  179. data/ext/ice/cpp/include/IceUtil/Timer.h +1 -1
  180. data/ext/ice/cpp/include/IceUtil/UUID.h +1 -1
  181. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  182. data/ext/ice/cpp/include/IceUtil/UniquePtr.h +1 -1
  183. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +7 -6
  184. data/ext/ice/cpp/include/Slice/Checksum.h +1 -1
  185. data/ext/ice/cpp/include/Slice/CsUtil.h +1 -1
  186. data/ext/ice/cpp/include/Slice/DotNetNames.h +1 -1
  187. data/ext/ice/cpp/include/Slice/FileTracker.h +1 -1
  188. data/ext/ice/cpp/include/Slice/JavaUtil.h +3 -1
  189. data/ext/ice/cpp/include/Slice/ObjCUtil.h +127 -0
  190. data/ext/ice/cpp/include/Slice/PHPUtil.h +1 -1
  191. data/ext/ice/cpp/include/Slice/Parser.h +18 -12
  192. data/ext/ice/cpp/include/Slice/Preprocessor.h +6 -4
  193. data/ext/ice/cpp/include/Slice/PythonUtil.h +1 -1
  194. data/ext/ice/cpp/include/Slice/RubyUtil.h +1 -1
  195. data/ext/ice/cpp/include/Slice/Util.h +20 -2
  196. data/ext/ice/cpp/src/Ice/ACM.cpp +1 -1
  197. data/ext/ice/cpp/src/Ice/ACM.h +1 -1
  198. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -1
  199. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -1
  200. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  201. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -1
  202. data/ext/ice/cpp/src/Ice/Base64.cpp +1 -1
  203. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  204. data/ext/ice/cpp/src/Ice/BasicStream.cpp +7 -5
  205. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +227 -0
  206. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +59 -0
  207. data/ext/ice/cpp/src/Ice/Buffer.cpp +3 -3
  208. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +10 -4
  209. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +82 -282
  210. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +8 -21
  211. data/ext/ice/cpp/src/Ice/Communicator.cpp +11 -5
  212. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +10 -4
  213. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +6 -6
  214. data/ext/ice/cpp/src/Ice/CommunicatorI.h +1 -1
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +42 -180
  216. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +10 -19
  217. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +25 -0
  218. data/ext/ice/cpp/src/Ice/Connection.cpp +17 -11
  219. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +10 -4
  220. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +137 -51
  221. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +18 -8
  222. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +105 -391
  223. data/ext/ice/cpp/src/Ice/ConnectionI.h +25 -23
  224. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +5 -29
  225. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +3 -8
  226. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -1
  227. data/ext/ice/cpp/src/Ice/Connector.h +1 -1
  228. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  229. data/ext/ice/cpp/src/Ice/Current.cpp +10 -4
  230. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -1
  231. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  232. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  233. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +1 -1
  234. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -1
  235. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +1 -1
  236. data/ext/ice/cpp/src/Ice/Endpoint.cpp +17 -11
  237. data/ext/ice/cpp/src/Ice/EndpointF.cpp +10 -4
  238. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +19 -1
  239. data/ext/ice/cpp/src/Ice/EndpointFactory.h +13 -1
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -1
  242. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -1
  243. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  244. data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -1
  245. data/ext/ice/cpp/src/Ice/EndpointI.h +33 -1
  246. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -1
  247. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +10 -4
  248. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -1
  249. data/ext/ice/cpp/src/Ice/EventHandler.h +4 -1
  250. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -1
  251. data/ext/ice/cpp/src/Ice/Exception.cpp +20 -11
  252. data/ext/ice/cpp/src/Ice/FacetMap.cpp +10 -4
  253. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -1
  254. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -2
  255. data/ext/ice/cpp/src/Ice/GCObject.cpp +1 -1
  256. data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
  257. data/ext/ice/cpp/src/Ice/HttpParser.cpp +27 -15
  258. data/ext/ice/cpp/src/Ice/HttpParser.h +4 -6
  259. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +7 -1
  260. data/ext/ice/cpp/src/Ice/IPEndpointI.h +2 -1
  261. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -1
  262. data/ext/ice/cpp/src/Ice/Identity.cpp +11 -5
  263. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +11 -5
  264. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +10 -4
  265. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +1 -1
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -1
  267. data/ext/ice/cpp/src/Ice/Incoming.cpp +22 -20
  268. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -1
  269. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -1
  270. data/ext/ice/cpp/src/Ice/Initialize.cpp +31 -5
  271. data/ext/ice/cpp/src/Ice/Instance.cpp +102 -59
  272. data/ext/ice/cpp/src/Ice/Instance.h +28 -2
  273. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +20 -14
  274. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +10 -4
  275. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -1
  276. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -1
  277. data/ext/ice/cpp/src/Ice/LocalException.cpp +10 -4
  278. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -1
  279. data/ext/ice/cpp/src/Ice/Locator.cpp +83 -77
  280. data/ext/ice/cpp/src/Ice/LocatorF.cpp +10 -4
  281. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +77 -69
  282. data/ext/ice/cpp/src/Ice/LocatorInfo.h +1 -1
  283. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  284. data/ext/ice/cpp/src/Ice/Logger.cpp +11 -5
  285. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -1
  286. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -1
  287. data/ext/ice/cpp/src/Ice/LoggerF.cpp +10 -4
  288. data/ext/ice/cpp/src/Ice/LoggerI.cpp +10 -8
  289. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -1
  290. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +2 -2
  291. data/ext/ice/cpp/src/Ice/Metrics.cpp +122 -116
  292. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +1 -1
  293. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -1
  294. data/ext/ice/cpp/src/Ice/Network.cpp +63 -19
  295. data/ext/ice/cpp/src/Ice/Network.h +10 -3
  296. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -1
  297. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +1 -1
  298. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -1
  299. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  300. data/ext/ice/cpp/src/Ice/Object.cpp +1 -1
  301. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +11 -5
  302. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +10 -4
  303. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +9 -9
  304. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +2 -2
  305. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +3 -3
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +5 -5
  307. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +11 -5
  308. data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +10 -4
  309. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +9 -10
  310. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +1 -1
  311. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -1
  312. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +6 -5
  313. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -1
  314. data/ext/ice/cpp/src/Ice/Outgoing.cpp +209 -254
  315. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +120 -106
  316. data/ext/ice/cpp/src/Ice/Plugin.cpp +12 -6
  317. data/ext/ice/cpp/src/Ice/PluginF.cpp +10 -4
  318. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +21 -2
  319. data/ext/ice/cpp/src/Ice/Process.cpp +25 -19
  320. data/ext/ice/cpp/src/Ice/ProcessF.cpp +10 -4
  321. data/ext/ice/cpp/src/Ice/Properties.cpp +11 -5
  322. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +39 -33
  323. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +1 -1
  324. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -1
  325. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +10 -4
  326. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +1 -1
  327. data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -1
  328. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +12 -8
  329. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -2
  330. data/ext/ice/cpp/src/Ice/Protocol.cpp +7 -7
  331. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +9 -6
  332. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +25 -7
  333. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  334. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -1
  335. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -1
  336. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  337. data/ext/ice/cpp/src/Ice/Proxy.cpp +32 -13
  338. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
  339. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -1
  340. data/ext/ice/cpp/src/Ice/Reference.cpp +101 -86
  341. data/ext/ice/cpp/src/Ice/Reference.h +16 -9
  342. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -1
  343. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -1
  344. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  345. data/ext/ice/cpp/src/Ice/RegisterPlugins.cpp +28 -0
  346. data/ext/ice/cpp/src/Ice/RegisterPlugins.h +25 -0
  347. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +92 -86
  348. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  349. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -1
  350. data/ext/ice/cpp/src/Ice/RequestHandler.h +4 -8
  351. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +24 -16
  352. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +5 -4
  353. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -1
  354. data/ext/ice/cpp/src/Ice/ResponseHandler.h +3 -3
  355. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +16 -5
  356. data/ext/ice/cpp/src/Ice/RetryQueue.h +3 -2
  357. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  358. data/ext/ice/cpp/src/Ice/Router.cpp +27 -21
  359. data/ext/ice/cpp/src/Ice/RouterF.cpp +10 -4
  360. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +1 -1
  361. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -1
  362. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  363. data/ext/ice/cpp/src/Ice/Selector.cpp +480 -1
  364. data/ext/ice/cpp/src/Ice/Selector.h +130 -1
  365. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +11 -5
  366. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +10 -4
  367. data/ext/ice/cpp/src/Ice/ServantManager.cpp +29 -23
  368. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  369. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -1
  370. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +10 -4
  371. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -1
  372. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -1
  373. data/ext/ice/cpp/src/Ice/Stream.cpp +1 -1
  374. data/ext/ice/cpp/src/Ice/StreamI.cpp +1 -1
  375. data/ext/ice/cpp/src/Ice/StreamI.h +1 -1
  376. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +30 -22
  377. data/ext/ice/cpp/src/Ice/StreamSocket.h +7 -4
  378. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -1
  379. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +1 -1
  380. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -1
  381. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +8 -8
  382. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -1
  383. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -1
  384. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -1
  385. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +21 -38
  386. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +5 -6
  387. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +29 -4
  388. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -2
  389. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +2 -2
  390. data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -1
  391. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
  392. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  393. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -1
  394. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +16 -7
  395. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -1
  396. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -1
  397. data/ext/ice/cpp/src/Ice/Transceiver.h +2 -1
  398. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  399. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +1 -1
  400. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -1
  401. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +13 -39
  402. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -5
  403. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +46 -10
  404. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +3 -2
  405. data/ext/ice/cpp/src/Ice/Version.cpp +12 -6
  406. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -1
  407. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -1
  408. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -1
  409. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -1
  410. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +6 -38
  411. data/ext/ice/cpp/src/Ice/WSEndpoint.h +12 -1
  412. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +31 -35
  413. data/ext/ice/cpp/src/Ice/WSTransceiver.h +13 -1
  414. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +66 -60
  415. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +106 -100
  416. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +1 -1
  417. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -1
  418. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +76 -36
  419. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -1
  420. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +19 -6
  421. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -1
  422. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +452 -0
  423. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +732 -0
  424. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +520 -0
  425. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.h +36 -0
  426. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +8 -8
  427. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -1
  428. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +49 -47
  429. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +13 -5
  430. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -1
  431. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -1
  432. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +10 -38
  433. data/ext/ice/cpp/src/IceSSL/EndpointI.h +4 -3
  434. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +13 -5
  435. data/ext/ice/cpp/src/IceSSL/Instance.cpp +2 -2
  436. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -1
  437. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -1
  438. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +107 -111
  439. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +130 -47
  440. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +11 -3
  441. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +8 -14
  442. data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -1
  443. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -1
  444. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -1
  445. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +238 -156
  446. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +93 -66
  447. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +7 -3
  448. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +2 -2
  449. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +32 -35
  450. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -1
  451. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +244 -360
  452. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +59 -29
  453. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +8 -4
  454. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -1
  455. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -1
  456. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -1
  457. data/ext/ice/cpp/src/IceSSL/Util.cpp +427 -620
  458. data/ext/ice/cpp/src/IceSSL/Util.h +72 -15
  459. data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +1 -1
  460. data/ext/ice/cpp/src/IceUtil/ArgVector.h +1 -1
  461. data/ext/ice/cpp/src/IceUtil/Cond.cpp +1 -1
  462. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -1
  463. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -1
  464. data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +1 -1
  465. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +1 -1
  466. data/ext/ice/cpp/src/IceUtil/Exception.cpp +105 -96
  467. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +2 -1
  468. data/ext/ice/cpp/src/IceUtil/FileUtil.h +9 -1
  469. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  470. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  471. data/ext/ice/cpp/src/IceUtil/Options.cpp +1 -1
  472. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +12 -25
  473. data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -1
  474. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +1 -1
  475. data/ext/ice/cpp/src/IceUtil/SHA1.cpp +72 -10
  476. data/ext/ice/cpp/src/IceUtil/Shared.cpp +3 -132
  477. data/ext/ice/cpp/src/IceUtil/StopWatch.h +1 -1
  478. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -1
  479. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +1 -1
  480. data/ext/ice/cpp/src/IceUtil/Thread.cpp +16 -1
  481. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -1
  482. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  483. data/ext/ice/cpp/src/IceUtil/Timer.cpp +1 -1
  484. data/ext/ice/cpp/src/IceUtil/UUID.cpp +1 -1
  485. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -1
  486. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -1
  487. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +62 -55
  488. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -1
  489. data/ext/ice/cpp/src/Slice/CsUtil.cpp +8 -29
  490. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +1 -1
  491. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -1
  492. data/ext/ice/cpp/src/Slice/Grammar.cpp +1 -1
  493. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -1
  494. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +145 -172
  495. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  496. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  497. data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +1310 -0
  498. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +1 -1
  499. data/ext/ice/cpp/src/Slice/Parser.cpp +65 -187
  500. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +61 -9
  501. data/ext/ice/cpp/src/Slice/Python.cpp +36 -3
  502. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +10 -10
  503. data/ext/ice/cpp/src/Slice/Ruby.cpp +34 -3
  504. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +8 -7
  505. data/ext/ice/cpp/src/Slice/Scanner.cpp +1 -1
  506. data/ext/ice/cpp/src/Slice/Util.cpp +137 -30
  507. data/ext/ice/mcpp/LICENSE +29 -0
  508. data/ext/ice/mcpp/Makefile +60 -0
  509. data/ext/ice/mcpp/Makefile.mak +46 -0
  510. data/ext/ice/mcpp/README.md +30 -0
  511. data/ext/ice/mcpp/config.h +89 -0
  512. data/ext/ice/mcpp/configed.H +1 -146
  513. data/ext/ice/mcpp/directive.c +115 -410
  514. data/ext/ice/mcpp/eval.c +38 -377
  515. data/ext/ice/mcpp/expand.c +155 -852
  516. data/ext/ice/mcpp/internal.H +10 -44
  517. data/ext/ice/mcpp/main.c +6 -345
  518. data/ext/ice/mcpp/mbchar.c +17 -654
  519. data/ext/ice/mcpp/mcpp.gyp +62 -0
  520. data/ext/ice/mcpp/support.c +116 -943
  521. data/ext/ice/mcpp/system.H +0 -23
  522. data/ext/ice/mcpp/system.c +81 -2321
  523. data/ice.gemspec +3 -4
  524. data/lib/Glacier2.rb +1 -1
  525. data/lib/Glacier2/Metrics.rb +2 -2
  526. data/lib/Glacier2/PermissionsVerifier.rb +2 -2
  527. data/lib/Glacier2/PermissionsVerifierF.rb +2 -2
  528. data/lib/Glacier2/Router.rb +2 -2
  529. data/lib/Glacier2/RouterF.rb +2 -2
  530. data/lib/Glacier2/SSLInfo.rb +2 -2
  531. data/lib/Glacier2/Session.rb +2 -2
  532. data/lib/Ice.rb +1 -1
  533. data/lib/Ice/BuiltinSequences.rb +2 -2
  534. data/lib/Ice/Communicator.rb +2 -2
  535. data/lib/Ice/CommunicatorF.rb +2 -2
  536. data/lib/Ice/Connection.rb +26 -14
  537. data/lib/Ice/ConnectionF.rb +2 -2
  538. data/lib/Ice/Current.rb +2 -2
  539. data/lib/Ice/Endpoint.rb +4 -2
  540. data/lib/Ice/EndpointF.rb +2 -2
  541. data/lib/Ice/EndpointTypes.rb +2 -2
  542. data/lib/Ice/FacetMap.rb +2 -2
  543. data/lib/Ice/Identity.rb +2 -2
  544. data/lib/Ice/ImplicitContext.rb +2 -2
  545. data/lib/Ice/ImplicitContextF.rb +2 -2
  546. data/lib/Ice/Instrumentation.rb +2 -2
  547. data/lib/Ice/InstrumentationF.rb +2 -2
  548. data/lib/Ice/LocalException.rb +2 -2
  549. data/lib/Ice/Locator.rb +2 -2
  550. data/lib/Ice/LocatorF.rb +2 -2
  551. data/lib/Ice/Logger.rb +2 -2
  552. data/lib/Ice/LoggerF.rb +2 -2
  553. data/lib/Ice/Metrics.rb +2 -2
  554. data/lib/Ice/ObjectAdapterF.rb +2 -2
  555. data/lib/Ice/ObjectFactory.rb +2 -2
  556. data/lib/Ice/ObjectFactoryF.rb +2 -2
  557. data/lib/Ice/Plugin.rb +2 -2
  558. data/lib/Ice/PluginF.rb +2 -2
  559. data/lib/Ice/Process.rb +2 -2
  560. data/lib/Ice/ProcessF.rb +2 -2
  561. data/lib/Ice/Properties.rb +2 -2
  562. data/lib/Ice/PropertiesAdmin.rb +2 -2
  563. data/lib/Ice/PropertiesF.rb +2 -2
  564. data/lib/Ice/Router.rb +2 -2
  565. data/lib/Ice/RouterF.rb +2 -2
  566. data/lib/Ice/SliceChecksumDict.rb +2 -2
  567. data/lib/Ice/Version.rb +2 -2
  568. data/lib/IceBox.rb +1 -1
  569. data/lib/IceBox/IceBox.rb +2 -2
  570. data/lib/IceGrid.rb +1 -1
  571. data/lib/IceGrid/Admin.rb +2 -2
  572. data/lib/IceGrid/Descriptor.rb +2 -2
  573. data/lib/IceGrid/Exception.rb +2 -2
  574. data/lib/IceGrid/FileParser.rb +2 -2
  575. data/lib/IceGrid/Locator.rb +2 -2
  576. data/lib/IceGrid/Observer.rb +2 -2
  577. data/lib/IceGrid/Query.rb +2 -2
  578. data/lib/IceGrid/Registry.rb +2 -2
  579. data/lib/IceGrid/Session.rb +2 -2
  580. data/lib/IceGrid/UserAccountMapper.rb +2 -2
  581. data/lib/IcePatch2.rb +1 -1
  582. data/lib/IcePatch2/FileInfo.rb +52 -2
  583. data/lib/IcePatch2/FileServer.rb +33 -4
  584. data/lib/IceStorm.rb +1 -1
  585. data/lib/IceStorm/IceStorm.rb +2 -2
  586. data/lib/IceStorm/Metrics.rb +2 -2
  587. data/slice/Freeze/BackgroundSaveEvictor.ice +2 -2
  588. data/slice/Freeze/CatalogData.ice +2 -2
  589. data/slice/Freeze/Connection.ice +2 -2
  590. data/slice/Freeze/ConnectionF.ice +2 -2
  591. data/slice/Freeze/DB.ice +2 -2
  592. data/slice/Freeze/Evictor.ice +2 -2
  593. data/slice/Freeze/EvictorF.ice +2 -2
  594. data/slice/Freeze/EvictorStorage.ice +2 -2
  595. data/slice/Freeze/Exception.ice +2 -2
  596. data/slice/Freeze/Transaction.ice +2 -2
  597. data/slice/Freeze/TransactionalEvictor.ice +2 -2
  598. data/slice/Glacier2/Metrics.ice +7 -6
  599. data/slice/Glacier2/PermissionsVerifier.ice +4 -3
  600. data/slice/Glacier2/PermissionsVerifierF.ice +3 -2
  601. data/slice/Glacier2/Router.ice +4 -3
  602. data/slice/Glacier2/RouterF.ice +3 -2
  603. data/slice/Glacier2/SSLInfo.ice +3 -2
  604. data/slice/Glacier2/Session.ice +12 -11
  605. data/slice/Ice/BuiltinSequences.ice +4 -3
  606. data/slice/Ice/Communicator.ice +22 -25
  607. data/slice/Ice/CommunicatorF.ice +3 -2
  608. data/slice/Ice/Connection.ice +39 -11
  609. data/slice/Ice/ConnectionF.ice +3 -2
  610. data/slice/Ice/Current.ice +4 -3
  611. data/slice/Ice/Endpoint.ice +11 -3
  612. data/slice/Ice/EndpointF.ice +3 -2
  613. data/slice/Ice/EndpointTypes.ice +3 -2
  614. data/slice/Ice/FacetMap.ice +3 -2
  615. data/slice/Ice/Identity.ice +3 -2
  616. data/slice/Ice/ImplicitContext.ice +3 -2
  617. data/slice/Ice/ImplicitContextF.ice +3 -2
  618. data/slice/Ice/Instrumentation.ice +4 -2
  619. data/slice/Ice/InstrumentationF.ice +4 -2
  620. data/slice/Ice/LocalException.ice +29 -10
  621. data/slice/Ice/Locator.ice +5 -3
  622. data/slice/Ice/LocatorF.ice +3 -2
  623. data/slice/Ice/Logger.ice +3 -2
  624. data/slice/Ice/LoggerF.ice +3 -2
  625. data/slice/Ice/Metrics.ice +15 -14
  626. data/slice/Ice/ObjectAdapter.ice +5 -4
  627. data/slice/Ice/ObjectAdapterF.ice +3 -2
  628. data/slice/Ice/ObjectFactory.ice +3 -2
  629. data/slice/Ice/ObjectFactoryF.ice +3 -2
  630. data/slice/Ice/Plugin.ice +3 -2
  631. data/slice/Ice/PluginF.ice +3 -2
  632. data/slice/Ice/Process.ice +3 -2
  633. data/slice/Ice/ProcessF.ice +3 -2
  634. data/slice/Ice/Properties.ice +3 -2
  635. data/slice/Ice/PropertiesAdmin.ice +3 -2
  636. data/slice/Ice/PropertiesF.ice +3 -2
  637. data/slice/Ice/RemoteLogger.ice +3 -2
  638. data/slice/Ice/Router.ice +3 -2
  639. data/slice/Ice/RouterF.ice +3 -2
  640. data/slice/Ice/ServantLocator.ice +3 -2
  641. data/slice/Ice/ServantLocatorF.ice +3 -2
  642. data/slice/Ice/SliceChecksumDict.ice +3 -2
  643. data/slice/Ice/Version.ice +3 -2
  644. data/slice/IceBox/IceBox.ice +2 -2
  645. data/slice/IceDiscovery/IceDiscovery.ice +2 -2
  646. data/slice/IceGrid/Admin.ice +49 -48
  647. data/slice/IceGrid/Descriptor.ice +3 -2
  648. data/slice/IceGrid/Exception.ice +6 -5
  649. data/slice/IceGrid/FileParser.ice +4 -3
  650. data/slice/IceGrid/Locator.ice +4 -3
  651. data/slice/IceGrid/Observer.ice +28 -27
  652. data/slice/IceGrid/PluginFacade.ice +3 -2
  653. data/slice/IceGrid/Query.ice +3 -2
  654. data/slice/IceGrid/Registry.ice +4 -3
  655. data/slice/IceGrid/Session.ice +9 -8
  656. data/slice/IceGrid/UserAccountMapper.ice +4 -3
  657. data/slice/{IceGrid/Discovery.ice → IceLocatorDiscovery/IceLocatorDiscovery.ice} +12 -14
  658. data/slice/IcePatch2/FileInfo.ice +31 -2
  659. data/slice/IcePatch2/FileServer.ice +63 -5
  660. data/slice/IceSSL/ConnectionInfo.ice +17 -2
  661. data/slice/IceSSL/EndpointInfo.ice +21 -3
  662. data/slice/IceStorm/IceStorm.ice +3 -2
  663. data/slice/IceStorm/Metrics.ice +4 -3
  664. metadata +27 -23
  665. data/ext/ice/cpp/include/Ice/Makefile +0 -26
  666. data/ext/ice/cpp/include/IceSSL/Makefile +0 -26
  667. data/ext/ice/cpp/include/IceUtil/Makefile +0 -26
  668. data/ext/ice/cpp/include/Slice/Makefile +0 -26
  669. data/ext/ice/cpp/src/Ice/Application.cpp +0 -760
  670. data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +0 -53
  671. data/ext/ice/cpp/src/Ice/Makefile +0 -190
  672. data/ext/ice/cpp/src/Ice/Service.cpp +0 -1897
  673. data/ext/ice/cpp/src/IceDiscovery/Makefile +0 -61
  674. data/ext/ice/cpp/src/IceSSL/Makefile +0 -82
  675. data/ext/ice/cpp/src/IceUtil/Makefile +0 -68
  676. data/ext/ice/cpp/src/Slice/Makefile +0 -65
  677. data/ext/ice/mcpp/config.h.Darwin +0 -227
  678. data/ext/ice/mcpp/config.h.Linux +0 -227
  679. data/ext/ice/mcpp/config.h.MINGW +0 -7
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -629,48 +629,27 @@ Slice::CsGenerator::writeMarshalUnmarshalCode(Output &out,
629
629
  {
630
630
  if(marshal)
631
631
  {
632
+ const string write = streamingAPI ? "ice_write" : "write__";
632
633
  if(!isValueType(st))
633
634
  {
634
- out << nl << "if(" << param << " == null)";
635
- out << sb;
636
- string typeS = typeToString(st);
637
- out << nl << typeS << " tmp__ = new " << typeS << "();";
638
- out << nl << "tmp__.";
639
- out << (streamingAPI ? "ice_write" : "write__") << "(" << stream << ");";
640
- out << eb;
641
- out << nl << "else";
642
- out << sb;
643
- out << nl << param << "." << (streamingAPI ? "ice_write" : "write__") << "(" << stream << ");";
644
- out << eb;
635
+ out << nl << typeToString(st) << "." << write << "(" << stream << ", " << param << ");";
645
636
  }
646
637
  else
647
638
  {
648
- if(streamingAPI)
649
- {
650
- out << nl << param << ".ice_write(" << stream << ");";
651
- }
652
- else
653
- {
654
- out << nl << param << ".write__(" << stream << ");";
655
- }
639
+ out << nl << param << "." << write << "(" << stream << ");";
656
640
  }
657
641
  }
658
642
  else
659
643
  {
660
644
  if(!isValueType(st))
661
645
  {
662
- out << nl << "if(" << param << " == null)";
663
- out << sb;
664
- out << nl << param << " = new " << typeToString(type) << "();";
665
- out << eb;
666
- }
667
- if(streamingAPI)
668
- {
669
- out << nl << param << ".ice_read(" << stream << ");";
646
+ const string r = streamingAPI ? "ice_read" : "read__";
647
+ out << nl << param << " = " << typeToString(type) << "." << r << "(" << stream << ", " << param << ");";
670
648
  }
671
649
  else
672
650
  {
673
- out << nl << param << ".read__(" << stream << ");";
651
+ const string read = streamingAPI ? "ice_read" : "read__";
652
+ out << nl << param << "." << read << "(" << stream << ");";
674
653
  }
675
654
  }
676
655
  return;
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -81,7 +81,7 @@
81
81
 
82
82
  // **********************************************************************
83
83
  //
84
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
84
+ // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
85
85
  //
86
86
  // This copy of Ice is licensed to you under the terms described in the
87
87
  // ICE_LICENSE file included in this distribution.
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -232,7 +232,7 @@ Slice::JavaOutput::openClass(const string& cls, const string& prefix, const stri
232
232
  #ifdef _WIN32
233
233
  result = _mkdir(path.c_str());
234
234
  #else
235
- result = mkdir(path.c_str(), S_IRWXU | S_IRWXG | S_IRWXO);
235
+ result = ::mkdir(path.c_str(), S_IRWXU | S_IRWXG | S_IRWXO);
236
236
  #endif
237
237
  if(result != 0)
238
238
  {
@@ -287,7 +287,7 @@ Slice::JavaOutput::printHeader()
287
287
  static const char* header =
288
288
  "// **********************************************************************\n"
289
289
  "//\n"
290
- "// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.\n"
290
+ "// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.\n"
291
291
  "//\n"
292
292
  "// This copy of Ice is licensed to you under the terms described in the\n"
293
293
  "// ICE_LICENSE file included in this distribution.\n"
@@ -839,47 +839,20 @@ Slice::JavaGenerator::typeToString(const TypePtr& type,
839
839
  {
840
840
  if(mode == TypeModeOut)
841
841
  {
842
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type());
843
- if(builtin && builtin->kind() == Builtin::KindByte)
844
- {
845
- string prefix = "java:serializable:";
846
- string meta;
847
- if(seq->findMetaData(prefix, meta))
848
- {
849
- return string("Ice.Holder<") + meta.substr(prefix.size()) + " >";
850
- }
851
- prefix = "java:protobuf:";
852
- if(seq->findMetaData(prefix, meta))
853
- {
854
- return string("Ice.Holder<") + meta.substr(prefix.size()) + " >";
855
- }
856
- }
857
-
858
- if(builtin &&
859
- (builtin->kind() == Builtin::KindByte || builtin->kind() == Builtin::KindShort ||
860
- builtin->kind() == Builtin::KindInt || builtin->kind() == Builtin::KindLong ||
861
- builtin->kind() == Builtin::KindFloat || builtin->kind() == Builtin::KindDouble))
862
- {
863
- string prefix = "java:buffer";
864
- string meta;
865
- string ignore;
866
- if(seq->findMetaData(prefix, meta) || findMetaData(prefix, metaData, ignore))
867
- {
868
- return string("Ice.Holder<") + typeToBufferString(seq->type()) + ">";
869
- }
870
- }
871
-
872
- //
873
- // Only use the type's generated holder if the instance and
874
- // formal types match.
875
- //
876
842
  string instanceType, formalType;
877
843
  getSequenceTypes(seq, "", metaData, instanceType, formalType);
878
- string origInstanceType, origFormalType;
879
- getSequenceTypes(seq, "", StringList(), origInstanceType, origFormalType);
880
- if(formalType == origFormalType && instanceType == origInstanceType)
844
+ if(sequenceHasHolder(seq))
881
845
  {
882
- return getAbsolute(seq, package, "", "Holder");
846
+ //
847
+ // Only use the type's generated holder if the instance and
848
+ // formal types match.
849
+ //
850
+ string origInstanceType, origFormalType;
851
+ getSequenceTypes(seq, "", StringList(), origInstanceType, origFormalType);
852
+ if(formalType == origFormalType && instanceType == origInstanceType)
853
+ {
854
+ return getAbsolute(seq, package, "", "Holder");
855
+ }
883
856
  }
884
857
 
885
858
  //
@@ -891,37 +864,6 @@ Slice::JavaGenerator::typeToString(const TypePtr& type,
891
864
  }
892
865
  else
893
866
  {
894
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type());
895
- if(builtin && builtin->kind() == Builtin::KindByte)
896
- {
897
- string prefix = "java:serializable:";
898
- string meta;
899
- if(seq->findMetaData(prefix, meta))
900
- {
901
- return meta.substr(prefix.size());
902
- }
903
-
904
- prefix = "java:protobuf:";
905
- if(seq->findMetaData(prefix, meta))
906
- {
907
- return meta.substr(prefix.size());
908
- }
909
- }
910
-
911
- if(builtin &&
912
- (builtin->kind() == Builtin::KindByte || builtin->kind() == Builtin::KindShort ||
913
- builtin->kind() == Builtin::KindInt || builtin->kind() == Builtin::KindLong ||
914
- builtin->kind() == Builtin::KindFloat || builtin->kind() == Builtin::KindDouble))
915
- {
916
- string prefix = "java:buffer";
917
- string meta;
918
- string ignore;
919
- if(seq->findMetaData(prefix, meta) || findMetaData(prefix, metaData, ignore))
920
- {
921
- return typeToBufferString(seq->type());
922
- }
923
- }
924
-
925
867
  string instanceType, formalType;
926
868
  getSequenceTypes(seq, package, metaData, instanceType, formalType);
927
869
  return formal ? formalType : instanceType;
@@ -1424,12 +1366,12 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out,
1424
1366
  StructPtr st = StructPtr::dynamicCast(type);
1425
1367
  if(st)
1426
1368
  {
1369
+ string typeS = typeToString(type, TypeModeIn, package, metaData);
1427
1370
  if(marshal)
1428
1371
  {
1429
1372
  if(optionalParam || mode == OptionalMember)
1430
1373
  {
1431
1374
  string val;
1432
-
1433
1375
  if(optionalParam)
1434
1376
  {
1435
1377
  if(optionalMapping)
@@ -1443,7 +1385,6 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out,
1443
1385
  out << nl << "if(" << stream << ".writeOpt(" << tag << ", " << getOptionalFormat(type) << "))";
1444
1386
  val = v;
1445
1387
  }
1446
-
1447
1388
  out << sb;
1448
1389
  }
1449
1390
  else
@@ -1454,15 +1395,14 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out,
1454
1395
  if(st->isVariableLength())
1455
1396
  {
1456
1397
  out << nl << "int __pos = " << stream << ".startSize();";
1457
- out << nl << val << ".__write(" << stream << ");";
1398
+ out << nl << typeS << ".__write(" << stream << ", " << val << ");";
1458
1399
  out << nl << stream << ".endSize(__pos);";
1459
1400
  }
1460
1401
  else
1461
1402
  {
1462
1403
  out << nl << stream << ".writeSize(" << st->minWireSize() << ");";
1463
- out << nl << val << ".__write(" << stream << ");";
1404
+ out << nl << typeS << ".__write(" << stream << ", " << val << ");";
1464
1405
  }
1465
-
1466
1406
  if(optionalParam)
1467
1407
  {
1468
1408
  out << eb;
@@ -1470,13 +1410,11 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out,
1470
1410
  }
1471
1411
  else
1472
1412
  {
1473
- out << nl << v << ".__write(" << stream << ");";
1413
+ out << nl << typeS << ".__write(" << stream << ", " << v << ");";
1474
1414
  }
1475
1415
  }
1476
1416
  else
1477
1417
  {
1478
- string typeS = typeToString(type, TypeModeIn, package, metaData);
1479
-
1480
1418
  if(optionalParam)
1481
1419
  {
1482
1420
  out << nl << "if(" << stream << ".readOpt(" << tag << ", " << getOptionalFormat(type) << "))";
@@ -1515,13 +1453,11 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out,
1515
1453
  {
1516
1454
  out << nl << stream << ".skipSize();";
1517
1455
  }
1518
- out << nl << v << " = new " << typeS << "();";
1519
- out << nl << v << ".__read(" << stream << ");";
1456
+ out << nl << v << " = " << typeS << ".__read(" << stream << ", " << v << ");";
1520
1457
  }
1521
1458
  else
1522
1459
  {
1523
- out << nl << v << " = new " << typeS << "();";
1524
- out << nl << v << ".__read(" << stream << ");";
1460
+ out << nl << v << " = " << typeS << ".__read(" << stream << ", " << v << ");";
1525
1461
  }
1526
1462
  }
1527
1463
  return;
@@ -1530,6 +1466,7 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out,
1530
1466
  EnumPtr en = EnumPtr::dynamicCast(type);
1531
1467
  if(en)
1532
1468
  {
1469
+ string typeS = typeToString(type, TypeModeIn, package, metaData);
1533
1470
  if(marshal)
1534
1471
  {
1535
1472
  if(optionalParam)
@@ -1539,26 +1476,24 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out,
1539
1476
  out << nl << "if(" << v << " != null && " << v << ".isSet() && " << stream << ".writeOpt(" << tag
1540
1477
  << ", " << getOptionalFormat(type) << "))";
1541
1478
  out << sb;
1542
- out << nl << v << ".get().__write(" << stream << ");";
1479
+ out << nl << typeS << ".__write(" << stream << ", " << v << ".get());";
1543
1480
  out << eb;
1544
1481
  }
1545
1482
  else
1546
1483
  {
1547
1484
  out << nl << "if(" << stream << ".writeOpt(" << tag << ", " << getOptionalFormat(type) << "))";
1548
1485
  out << sb;
1549
- out << nl << v << ".__write(" << stream << ");";
1486
+ out << nl << typeS << ".__write(" << stream << ", " << v << ");";
1550
1487
  out << eb;
1551
1488
  }
1552
1489
  }
1553
1490
  else
1554
1491
  {
1555
- out << nl << v << ".__write(" << stream << ");";
1492
+ out << nl << typeS << ".__write(" << stream << ", " << v << ");";
1556
1493
  }
1557
1494
  }
1558
1495
  else
1559
1496
  {
1560
- string typeS = typeToString(type, TypeModeIn, package, metaData);
1561
-
1562
1497
  if(optionalParam)
1563
1498
  {
1564
1499
  out << nl << "if(" << stream << ".readOpt(" << tag << ", " << getOptionalFormat(type) << "))";
@@ -2049,7 +1984,14 @@ Slice::JavaGenerator::writeDictionaryMarshalUnmarshalCode(Output& out,
2049
1984
  }
2050
1985
  else
2051
1986
  {
2052
- out << nl << typeS << ' ' << arg << ';';
1987
+ if(StructPtr::dynamicCast(type))
1988
+ {
1989
+ out << nl << typeS << ' ' << arg << " = null;";
1990
+ }
1991
+ else
1992
+ {
1993
+ out << nl << typeS << ' ' << arg << ';';
1994
+ }
2053
1995
  writeMarshalUnmarshalCode(out, package, type, OptionalNone, false, 0, arg, false, iter, false);
2054
1996
  }
2055
1997
  }
@@ -2366,7 +2308,14 @@ Slice::JavaGenerator::writeSequenceMarshalUnmarshalCode(Output& out,
2366
2308
  }
2367
2309
  else
2368
2310
  {
2369
- out << nl << cont << " __elem;";
2311
+ if(StructPtr::dynamicCast(type))
2312
+ {
2313
+ out << nl << cont << " __elem = null;";
2314
+ }
2315
+ else
2316
+ {
2317
+ out << nl << cont << " __elem;";
2318
+ }
2370
2319
  writeMarshalUnmarshalCode(out, package, type, OptionalNone, false, 0, "__elem", false, iter, false);
2371
2320
  }
2372
2321
  if(!isObject)
@@ -2849,6 +2798,7 @@ Slice::JavaGenerator::writeStreamMarshalUnmarshalCode(Output& out,
2849
2798
  StructPtr st = StructPtr::dynamicCast(type);
2850
2799
  if(st)
2851
2800
  {
2801
+ string typeS = typeToString(type, TypeModeIn, package);
2852
2802
  if(marshal)
2853
2803
  {
2854
2804
  if(optional)
@@ -2856,23 +2806,22 @@ Slice::JavaGenerator::writeStreamMarshalUnmarshalCode(Output& out,
2856
2806
  if(st->isVariableLength())
2857
2807
  {
2858
2808
  out << nl << "int __pos = " << stream << ".startSize();";
2859
- out << nl << v << ".ice_write(" << stream << ");";
2809
+ out << nl << typeS << ".ice_write(" << stream << ", " << v << ");";
2860
2810
  out << nl << stream << ".endSize(__pos);";
2861
2811
  }
2862
2812
  else
2863
2813
  {
2864
2814
  out << nl << stream << ".writeSize(" << st->minWireSize() << ");";
2865
- out << nl << v << ".ice_write(" << stream << ");";
2815
+ out << nl << typeS << ".ice_write(" << stream << ", " << v << ");";
2866
2816
  }
2867
2817
  }
2868
2818
  else
2869
2819
  {
2870
- out << nl << v << ".ice_write(" << stream << ");";
2820
+ out << nl << typeS << ".ice_write(" << stream << ", " << v << ");";
2871
2821
  }
2872
2822
  }
2873
2823
  else
2874
2824
  {
2875
- string typeS = typeToString(type, TypeModeIn, package);
2876
2825
  if(optional)
2877
2826
  {
2878
2827
  if(st->isVariableLength())
@@ -2883,14 +2832,8 @@ Slice::JavaGenerator::writeStreamMarshalUnmarshalCode(Output& out,
2883
2832
  {
2884
2833
  out << nl << stream << ".skipSize();";
2885
2834
  }
2886
- out << nl << v << " = new " << typeS << "();";
2887
- out << nl << v << ".ice_read(" << stream << ");";
2888
- }
2889
- else
2890
- {
2891
- out << nl << v << " = new " << typeS << "();";
2892
- out << nl << v << ".ice_read(" << stream << ");";
2893
2835
  }
2836
+ out << nl << v << " = " << typeS << ".ice_read(" << stream << ", " << v << ");";
2894
2837
  }
2895
2838
  return;
2896
2839
  }
@@ -2898,13 +2841,13 @@ Slice::JavaGenerator::writeStreamMarshalUnmarshalCode(Output& out,
2898
2841
  EnumPtr en = EnumPtr::dynamicCast(type);
2899
2842
  if(en)
2900
2843
  {
2844
+ string typeS = typeToString(type, TypeModeIn, package);
2901
2845
  if(marshal)
2902
2846
  {
2903
- out << nl << v << ".ice_write(" << stream << ");";
2847
+ out << nl << typeS << ".ice_write(" << stream << ", " << v << ");";
2904
2848
  }
2905
2849
  else
2906
2850
  {
2907
- string typeS = typeToString(type, TypeModeIn, package);
2908
2851
  out << nl << v << " = " << typeS << ".ice_read(" << stream << ");";
2909
2852
  }
2910
2853
  return;
@@ -3229,7 +3172,14 @@ Slice::JavaGenerator::writeStreamDictionaryMarshalUnmarshalCode(Output& out,
3229
3172
  }
3230
3173
  else
3231
3174
  {
3232
- out << nl << s << ' ' << arg << ';';
3175
+ if(StructPtr::dynamicCast(type))
3176
+ {
3177
+ out << nl << s << ' ' << arg << " = null;";
3178
+ }
3179
+ else
3180
+ {
3181
+ out << nl << s << ' ' << arg << ';';
3182
+ }
3233
3183
  writeStreamMarshalUnmarshalCode(out, package, type, false, 0, arg, false, iter, false);
3234
3184
  }
3235
3185
  }
@@ -3545,7 +3495,14 @@ Slice::JavaGenerator::writeStreamSequenceMarshalUnmarshalCode(Output& out,
3545
3495
  }
3546
3496
  else
3547
3497
  {
3548
- out << nl << cont << " __elem;";
3498
+ if(StructPtr::dynamicCast(type))
3499
+ {
3500
+ out << nl << cont << " __elem = null;";
3501
+ }
3502
+ else
3503
+ {
3504
+ out << nl << cont << " __elem;";
3505
+ }
3549
3506
  writeStreamMarshalUnmarshalCode(out, package, type, false, 0, "__elem", false, iter, false);
3550
3507
  }
3551
3508
  if(!isObject)
@@ -3889,18 +3846,6 @@ Slice::JavaGenerator::getDictionaryTypes(const DictionaryPtr& dict,
3889
3846
  string& instanceType,
3890
3847
  string& formalType) const
3891
3848
  {
3892
- bool customType = false;
3893
-
3894
- //
3895
- // Collect metadata for a custom type.
3896
- //
3897
- string ct, at;
3898
- customType = getTypeMetaData(metaData, ct, at);
3899
- if(!customType)
3900
- {
3901
- customType = getTypeMetaData(dict->getMetaData(), ct, at);
3902
- }
3903
-
3904
3849
  //
3905
3850
  // Get the types of the key and value.
3906
3851
  //
@@ -3908,36 +3853,25 @@ Slice::JavaGenerator::getDictionaryTypes(const DictionaryPtr& dict,
3908
3853
  string valueTypeStr = typeToObjectString(dict->valueType(), TypeModeIn, package);
3909
3854
 
3910
3855
  //
3911
- // Handle a custom type.
3856
+ // Collect metadata for a custom type.
3912
3857
  //
3913
- if(customType)
3858
+ if(getTypeMetaData(metaData, instanceType, formalType) ||
3859
+ getTypeMetaData(dict->getMetaData(), instanceType, formalType))
3914
3860
  {
3915
- assert(!ct.empty());
3916
- instanceType = ct;
3917
- formalType = at;
3861
+ assert(!instanceType.empty());
3862
+ if(formalType.empty())
3863
+ {
3864
+ formalType = "java.util.Map<" + keyTypeStr + ", " + valueTypeStr + ">";
3865
+ }
3866
+ return true;
3918
3867
  }
3919
3868
 
3920
3869
  //
3921
3870
  // Return a default type for the platform.
3922
3871
  //
3923
- if(instanceType.empty())
3924
- {
3925
- instanceType = "java.util.HashMap<" + keyTypeStr + ", " + valueTypeStr + ">";
3926
- }
3927
-
3928
- //
3929
- // If a formal type is not defined, we use the instance type as the default.
3930
- // If instead we chose a default formal type, such as Map<K, V>, then we
3931
- // might inadvertently generate uncompilable code. The Java5 compiler does not
3932
- // allow polymorphic assignment between generic types if it can weaken the
3933
- // compile-time type safety rules.
3934
- //
3935
- if(formalType.empty())
3936
- {
3937
- formalType = "java.util.Map<" + keyTypeStr + ", " + valueTypeStr + ">";
3938
- }
3939
-
3940
- return customType;
3872
+ instanceType = "java.util.HashMap<" + keyTypeStr + ", " + valueTypeStr + ">";
3873
+ formalType = "java.util.Map<" + keyTypeStr + ", " + valueTypeStr + ">";
3874
+ return false;
3941
3875
  }
3942
3876
 
3943
3877
  bool
@@ -3947,59 +3881,98 @@ Slice::JavaGenerator::getSequenceTypes(const SequencePtr& seq,
3947
3881
  string& instanceType,
3948
3882
  string& formalType) const
3949
3883
  {
3950
- bool customType = false;
3884
+ BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type());
3885
+ if(builtin)
3886
+ {
3887
+ if(builtin->kind() == Builtin::KindByte)
3888
+ {
3889
+ string prefix = "java:serializable:";
3890
+ string meta;
3891
+ if(seq->findMetaData(prefix, meta))
3892
+ {
3893
+ instanceType = formalType = meta.substr(prefix.size());
3894
+ return true;
3895
+ }
3896
+ prefix = "java:protobuf:";
3897
+ if(seq->findMetaData(prefix, meta))
3898
+ {
3899
+ instanceType = formalType = meta.substr(prefix.size());
3900
+ return true;
3901
+ }
3902
+ }
3903
+
3904
+ if((builtin->kind() == Builtin::KindByte || builtin->kind() == Builtin::KindShort ||
3905
+ builtin->kind() == Builtin::KindInt || builtin->kind() == Builtin::KindLong ||
3906
+ builtin->kind() == Builtin::KindFloat || builtin->kind() == Builtin::KindDouble))
3907
+ {
3908
+ string prefix = "java:buffer";
3909
+ string meta;
3910
+ string ignore;
3911
+ if(seq->findMetaData(prefix, meta) || findMetaData(prefix, metaData, ignore))
3912
+ {
3913
+ instanceType = formalType = typeToBufferString(seq->type());
3914
+ return true;
3915
+ }
3916
+ }
3917
+ }
3951
3918
 
3952
3919
  //
3953
3920
  // Collect metadata for a custom type.
3954
3921
  //
3955
- string ct, at;
3956
- customType = getTypeMetaData(metaData, ct, at);
3957
- if(!customType)
3922
+ if(getTypeMetaData(metaData, instanceType, formalType) ||
3923
+ getTypeMetaData(seq->getMetaData(), instanceType, formalType))
3958
3924
  {
3959
- customType = getTypeMetaData(seq->getMetaData(), ct, at);
3925
+ assert(!instanceType.empty());
3926
+ if(formalType.empty())
3927
+ {
3928
+ formalType = "java.util.List<" + typeToObjectString(seq->type(), TypeModeIn, package) + ">";
3929
+ }
3930
+ return true;
3960
3931
  }
3961
3932
 
3962
3933
  //
3963
- // Get the inner type.
3934
+ // The default mapping is a native array.
3964
3935
  //
3965
- string typeStr = typeToObjectString(seq->type(), TypeModeIn, package);
3936
+ instanceType = formalType = typeToString(seq->type(), TypeModeIn, package, metaData) + "[]";
3937
+ return false;
3938
+ }
3966
3939
 
3967
- //
3968
- // Handle a custom type.
3969
- //
3970
- if(customType)
3940
+ bool
3941
+ Slice::JavaGenerator::sequenceHasHolder(const SequencePtr& p) const
3942
+ {
3943
+ BuiltinPtr builtin = BuiltinPtr::dynamicCast(p->type());
3944
+ if(builtin && builtin->kind() == Builtin::KindByte)
3971
3945
  {
3972
- assert(!ct.empty());
3973
- instanceType = ct;
3974
-
3975
- if(!at.empty())
3946
+ string prefix = "java:serializable:";
3947
+ string meta;
3948
+ if(p->findMetaData(prefix, meta))
3976
3949
  {
3977
- formalType = at;
3950
+ return false;
3978
3951
  }
3979
- else
3952
+ prefix = "java:protobuf:";
3953
+ if(p->findMetaData(prefix, meta))
3980
3954
  {
3981
- //
3982
- // If a formal type is not defined, we use the instance type as the default.
3983
- // If instead we chose a default formal type, such as List<T>, then we
3984
- // might inadvertently generate uncompilable code. The Java5 compiler does not
3985
- // allow polymorphic assignment between generic types if it can weaken the
3986
- // compile-time type safety rules.
3987
- //
3988
- formalType = "java.util.List<" + typeStr + ">";
3955
+ return false;
3989
3956
  }
3990
3957
  }
3991
3958
 
3992
- //
3993
- // The default mapping is a native array.
3994
- //
3995
- if(instanceType.empty())
3959
+ if(builtin &&
3960
+ (builtin->kind() == Builtin::KindByte || builtin->kind() == Builtin::KindShort ||
3961
+ builtin->kind() == Builtin::KindInt || builtin->kind() == Builtin::KindLong ||
3962
+ builtin->kind() == Builtin::KindFloat || builtin->kind() == Builtin::KindDouble))
3996
3963
  {
3997
- instanceType = formalType = typeToString(seq->type(), TypeModeIn, package) + "[]";
3964
+ string meta;
3965
+ string prefix = "java:buffer";
3966
+ if(p->findMetaData(prefix, meta))
3967
+ {
3968
+ return false;
3969
+ }
3998
3970
  }
3999
3971
 
4000
- return customType;
3972
+ return true;
4001
3973
  }
4002
3974
 
3975
+
4003
3976
  JavaOutput*
4004
3977
  Slice::JavaGenerator::createOutput()
4005
3978
  {