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,13 +1,13 @@
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.
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6b
10
+ // Ice version 3.6.0
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -28,8 +28,14 @@
28
28
  #include <IceUtil/PopDisableWarnings.h>
29
29
 
30
30
  #ifndef ICE_IGNORE_VERSION
31
- # if ICE_INT_VERSION != 30651
32
- # error Ice version mismatch: an exact match is required for beta generated code
31
+ # if ICE_INT_VERSION / 100 != 306
32
+ # error Ice version mismatch!
33
+ # endif
34
+ # if ICE_INT_VERSION % 100 > 50
35
+ # error Beta header file detected
36
+ # endif
37
+ # if ICE_INT_VERSION % 100 < 0
38
+ # error Ice patch level mismatch!
33
39
  # endif
34
40
  #endif
35
41
 
@@ -38,4 +44,4 @@ namespace
38
44
 
39
45
  }
40
46
 
41
- ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::upCast(::Ice::ObjectFactory* p) { return p; }
47
+ ICE_API ::Ice::LocalObject* Ice::upCast(::Ice::ObjectFactory* p) { return p; }
@@ -1,13 +1,13 @@
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.
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6b
10
+ // Ice version 3.6.0
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -27,8 +27,14 @@
27
27
  #include <IceUtil/PopDisableWarnings.h>
28
28
 
29
29
  #ifndef ICE_IGNORE_VERSION
30
- # if ICE_INT_VERSION != 30651
31
- # error Ice version mismatch: an exact match is required for beta generated code
30
+ # if ICE_INT_VERSION / 100 != 306
31
+ # error Ice version mismatch!
32
+ # endif
33
+ # if ICE_INT_VERSION % 100 > 50
34
+ # error Beta header file detected
35
+ # endif
36
+ # if ICE_INT_VERSION % 100 < 0
37
+ # error Ice patch level mismatch!
32
38
  # endif
33
39
  #endif
34
40
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  // **********************************************************************
3
3
  //
4
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
+ // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
5
5
  //
6
6
  // This copy of Ice is licensed to you under the terms described in the
7
7
  // ICE_LICENSE file included in this distribution.
@@ -12,7 +12,6 @@
12
12
  #include <Ice/ObjectFactory.h>
13
13
  #include <Ice/Functional.h>
14
14
  #include <Ice/LocalException.h>
15
-
16
15
  using namespace std;
17
16
  using namespace Ice;
18
17
  using namespace IceInternal;
@@ -42,7 +41,7 @@ IceInternal::ObjectFactoryManager::remove(const string& id)
42
41
  ObjectFactoryPtr factory = 0;
43
42
  {
44
43
  IceUtil::Mutex::Lock sync(*this);
45
-
44
+
46
45
  FactoryMap::iterator p = _factoryMap.end();
47
46
  if(_factoryMapHint != _factoryMap.end())
48
47
  {
@@ -51,7 +50,7 @@ IceInternal::ObjectFactoryManager::remove(const string& id)
51
50
  p = _factoryMapHint;
52
51
  }
53
52
  }
54
-
53
+
55
54
  if(p == _factoryMap.end())
56
55
  {
57
56
  p = _factoryMap.find(id);
@@ -64,9 +63,9 @@ IceInternal::ObjectFactoryManager::remove(const string& id)
64
63
  }
65
64
  }
66
65
  assert(p != _factoryMap.end());
67
-
66
+
68
67
  factory = p->second;
69
-
68
+
70
69
  if(p == _factoryMapHint)
71
70
  {
72
71
  _factoryMap.erase(p++);
@@ -77,7 +76,7 @@ IceInternal::ObjectFactoryManager::remove(const string& id)
77
76
  _factoryMap.erase(p);
78
77
  }
79
78
  }
80
-
79
+
81
80
  //
82
81
  // Destroy outside the lock
83
82
  //
@@ -89,7 +88,7 @@ ObjectFactoryPtr
89
88
  IceInternal::ObjectFactoryManager::find(const string& id) const
90
89
  {
91
90
  IceUtil::Mutex::Lock sync(*this);
92
-
91
+
93
92
  FactoryMap& factoryMap = const_cast<FactoryMap&>(_factoryMap);
94
93
 
95
94
  FactoryMap::iterator p = factoryMap.end();
@@ -100,12 +99,12 @@ IceInternal::ObjectFactoryManager::find(const string& id) const
100
99
  p = _factoryMapHint;
101
100
  }
102
101
  }
103
-
102
+
104
103
  if(p == factoryMap.end())
105
104
  {
106
105
  p = factoryMap.find(id);
107
106
  }
108
-
107
+
109
108
  if(p != factoryMap.end())
110
109
  {
111
110
  _factoryMapHint = p;
@@ -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.
@@ -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.
@@ -56,11 +56,11 @@ IceInternal::OpaqueEndpointI::OpaqueEndpointI(Short type, BasicStream* s) : _typ
56
56
  namespace
57
57
  {
58
58
 
59
- class InfoI : public Ice::OpaqueEndpointInfo
59
+ class OpaqueEndpointInfoI : public Ice::OpaqueEndpointInfo
60
60
  {
61
61
  public:
62
62
 
63
- InfoI(Ice::Short type, const Ice::EncodingVersion& rawEncoding, const Ice::ByteSeq& rawByes);
63
+ OpaqueEndpointInfoI(Ice::Short type, const Ice::EncodingVersion& rawEncoding, const Ice::ByteSeq& rawByes);
64
64
 
65
65
  virtual Ice::Short
66
66
  type() const
@@ -89,7 +89,8 @@ private:
89
89
  //
90
90
  // COMPILERFIX: inlining this constructor causes crashes with gcc 4.0.1.
91
91
  //
92
- InfoI::InfoI(Ice::Short type, const Ice::EncodingVersion& rawEncoding, const Ice::ByteSeq& rawBytes) :
92
+ OpaqueEndpointInfoI::OpaqueEndpointInfoI(Ice::Short type, const Ice::EncodingVersion& rawEncoding,
93
+ const Ice::ByteSeq& rawBytes) :
93
94
  Ice::OpaqueEndpointInfo(-1, false, rawEncoding, rawBytes),
94
95
  _type(type)
95
96
  {
@@ -106,7 +107,7 @@ IceInternal::OpaqueEndpointI::streamWrite(BasicStream* s) const
106
107
  Ice::EndpointInfoPtr
107
108
  IceInternal::OpaqueEndpointI::getInfo() const
108
109
  {
109
- return new InfoI(_type, _rawEncoding, _rawBytes);
110
+ return new OpaqueEndpointInfoI(_type, _rawEncoding, _rawBytes);
110
111
  }
111
112
 
112
113
  Short
@@ -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.
@@ -23,134 +23,29 @@ using namespace Ice;
23
23
  using namespace Ice::Instrumentation;
24
24
  using namespace IceInternal;
25
25
 
26
- OutgoingBase::OutgoingBase(Instance* instance, const string& operation) :
27
- _os(instance, Ice::currentProtocolEncoding), _sent(false)
26
+ OutgoingBase::OutgoingBase(Instance* instance) : _os(instance, Ice::currentProtocolEncoding), _sent(false)
28
27
  {
29
28
  }
30
29
 
31
- Outgoing::Outgoing(IceProxy::Ice::Object* proxy, const string& operation, OperationMode mode, const Context* context) :
32
- OutgoingBase(proxy->__reference()->getInstance().get(), operation),
30
+ ProxyOutgoingBase::ProxyOutgoingBase(IceProxy::Ice::Object* proxy, OperationMode mode) :
31
+ OutgoingBase(proxy->__reference()->getInstance().get()),
33
32
  _proxy(proxy),
34
33
  _mode(mode),
35
- _state(StateUnsent),
36
- _encoding(getCompatibleEncoding(proxy->__reference()->getEncoding())),
37
- _is(proxy->__reference()->getInstance().get(), Ice::currentProtocolEncoding)
38
- {
39
- checkSupportedProtocol(getCompatibleProtocol(proxy->__reference()->getProtocol()));
40
-
41
- _observer.attach(proxy, operation, context);
42
-
34
+ _state(StateUnsent)
35
+ {
43
36
  int invocationTimeout = _proxy->__reference()->getInvocationTimeout();
44
37
  if(invocationTimeout > 0)
45
38
  {
46
39
  _invocationTimeoutDeadline = Time::now(Time::Monotonic) + Time::milliSeconds(invocationTimeout);
47
40
  }
48
-
49
- switch(_proxy->__reference()->getMode())
50
- {
51
- case Reference::ModeTwoway:
52
- case Reference::ModeOneway:
53
- case Reference::ModeDatagram:
54
- {
55
- _os.writeBlob(requestHdr, sizeof(requestHdr));
56
- break;
57
- }
58
-
59
- case Reference::ModeBatchOneway:
60
- case Reference::ModeBatchDatagram:
61
- {
62
- while(true)
63
- {
64
- try
65
- {
66
- _handler = proxy->__getRequestHandler();
67
- _handler->prepareBatchRequest(&_os);
68
- break;
69
- }
70
- catch(const RetryException&)
71
- {
72
- _proxy->__setRequestHandler(_handler, 0); // Clear request handler and retry.
73
- }
74
- catch(const Ice::LocalException& ex)
75
- {
76
- _observer.failed(ex.ice_name());
77
- _proxy->__setRequestHandler(_handler, 0); // Clear request handler
78
- throw;
79
- }
80
- }
81
- break;
82
- }
83
- }
84
-
85
- try
86
- {
87
- _os.write(_proxy->__reference()->getIdentity());
88
-
89
- //
90
- // For compatibility with the old FacetPath.
91
- //
92
- if(_proxy->__reference()->getFacet().empty())
93
- {
94
- _os.write(static_cast<string*>(0), static_cast<string*>(0));
95
- }
96
- else
97
- {
98
- string facet = _proxy->__reference()->getFacet();
99
- _os.write(&facet, &facet + 1);
100
- }
101
-
102
- _os.write(operation, false);
103
-
104
- _os.write(static_cast<Ice::Byte>(mode));
105
-
106
- if(context != 0)
107
- {
108
- //
109
- // Explicit context
110
- //
111
- _os.write(*context);
112
- }
113
- else
114
- {
115
- //
116
- // Implicit context
117
- //
118
- const ImplicitContextIPtr& implicitContext = _proxy->__reference()->getInstance()->getImplicitContext();
119
- const Context& prxContext = _proxy->__reference()->getContext()->getValue();
120
- if(implicitContext == 0)
121
- {
122
- _os.write(prxContext);
123
- }
124
- else
125
- {
126
- implicitContext->write(prxContext, &_os);
127
- }
128
- }
129
- }
130
- catch(const LocalException& ex)
131
- {
132
- abort(ex);
133
- }
134
41
  }
135
42
 
136
- Outgoing::~Outgoing()
137
- {
138
- }
139
-
140
- bool
141
- Outgoing::send(const Ice::ConnectionIPtr& connection, bool compress, bool response)
43
+ ProxyOutgoingBase::~ProxyOutgoingBase()
142
44
  {
143
- return connection->sendRequest(this, compress, response);
144
45
  }
145
46
 
146
47
  void
147
- Outgoing::invokeCollocated(CollocatedRequestHandler* handler)
148
- {
149
- handler->invokeRequest(this);
150
- }
151
-
152
- void
153
- Outgoing::sent()
48
+ ProxyOutgoingBase::sent()
154
49
  {
155
50
  Monitor<Mutex>::Lock sync(_monitor);
156
51
  if(_proxy->__reference()->getMode() != Reference::ModeTwoway)
@@ -162,14 +57,14 @@ Outgoing::sent()
162
57
  _monitor.notify();
163
58
 
164
59
  //
165
- // NOTE: At this point the stack allocated Outgoing object can be destroyed
60
+ // NOTE: At this point the stack allocated ProxyOutgoingBase object can be destroyed
166
61
  // since the notify() on the monitor will release the thread waiting on the
167
62
  // synchronous Ice call.
168
63
  //
169
64
  }
170
65
 
171
66
  void
172
- Outgoing::completed(const Ice::Exception& ex)
67
+ ProxyOutgoingBase::completed(const Ice::Exception& ex)
173
68
  {
174
69
  Monitor<Mutex>::Lock sync(_monitor);
175
70
  //assert(_state <= StateInProgress);
@@ -197,7 +92,13 @@ Outgoing::completed(const Ice::Exception& ex)
197
92
  }
198
93
 
199
94
  void
200
- Outgoing::retryException(const Ice::Exception&)
95
+ ProxyOutgoingBase::completed(BasicStream& is)
96
+ {
97
+ assert(false); // Must be overriden
98
+ }
99
+
100
+ void
101
+ ProxyOutgoingBase::retryException(const Ice::Exception&)
201
102
  {
202
103
  Monitor<Mutex>::Lock sync(_monitor);
203
104
  assert(_state <= StateInProgress);
@@ -206,22 +107,14 @@ Outgoing::retryException(const Ice::Exception&)
206
107
  }
207
108
 
208
109
  bool
209
- Outgoing::invoke()
110
+ ProxyOutgoingBase::invokeImpl()
210
111
  {
211
112
  assert(_state == StateUnsent);
212
-
213
- const Reference::Mode mode = _proxy->__reference()->getMode();
214
- if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
215
- {
216
- _state = StateInProgress;
217
- _handler->finishBatchRequest(&_os);
218
- return true;
219
- }
220
113
 
221
114
  const int invocationTimeout = _proxy->__reference()->getInvocationTimeout();
222
115
  int cnt = 0;
223
116
  while(true)
224
- {
117
+ {
225
118
  try
226
119
  {
227
120
  if(invocationTimeout > 0 && _invocationTimeoutDeadline <= Time::now(Time::Monotonic))
@@ -256,7 +149,7 @@ Outgoing::invoke()
256
149
  {
257
150
  }
258
151
  }
259
-
152
+
260
153
  bool timedOut = false;
261
154
  {
262
155
  Monitor<Mutex>::Lock sync(_monitor);
@@ -274,7 +167,7 @@ Outgoing::invoke()
274
167
  break;
275
168
  }
276
169
  _monitor.timedWait(_invocationTimeoutDeadline - now);
277
-
170
+
278
171
  if((_state == StateInProgress || !_sent) && _state != StateFailed)
279
172
  {
280
173
  now = Time::now(Time::Monotonic);
@@ -290,7 +183,7 @@ Outgoing::invoke()
290
183
  }
291
184
  }
292
185
  }
293
-
186
+
294
187
  if(timedOut)
295
188
  {
296
189
  if(invocationTimeout == -2)
@@ -304,8 +197,8 @@ Outgoing::invoke()
304
197
 
305
198
  //
306
199
  // Wait for the exception to propagate. It's possible the request handler ignores
307
- // the timeout if there was a failure shortly before requestCanceled got called.
308
- // In this case, the exception should be set on the Outgoing.
200
+ // the timeout if there was a failure shortly before requestCanceled got called.
201
+ // In this case, the exception should be set on the ProxyOutgoingBase.
309
202
  //
310
203
  Monitor<Mutex>::Lock sync(_monitor);
311
204
  while(_state == StateInProgress)
@@ -313,14 +206,14 @@ Outgoing::invoke()
313
206
  _monitor.wait();
314
207
  }
315
208
  }
316
-
209
+
317
210
  if(_exception.get())
318
211
  {
319
212
  _exception->ice_throw();
320
213
  }
321
214
  else if(_state == StateRetry)
322
215
  {
323
- _proxy->__setRequestHandler(_handler, 0); // Clear request handler and retry.
216
+ _proxy->__updateRequestHandler(_handler, 0); // Clear request handler and retry.
324
217
  continue;
325
218
  }
326
219
  else
@@ -331,7 +224,7 @@ Outgoing::invoke()
331
224
  }
332
225
  catch(const RetryException&)
333
226
  {
334
- _proxy->__setRequestHandler(_handler, 0); // Clear request handler and retry.
227
+ _proxy->__updateRequestHandler(_handler, 0); // Clear request handler and retry.
335
228
  }
336
229
  catch(const Ice::Exception& ex)
337
230
  {
@@ -348,8 +241,8 @@ Outgoing::invoke()
348
241
 
349
242
  //
350
243
  // Wait until either the retry and invocation timeout deadline is reached.
351
- // Note that we're using a loop here because sleep() precision isn't as
352
- // good as the motonic clock and it can return few hundred micro-seconds
244
+ // Note that we're using a loop here because sleep() precision isn't as
245
+ // good as the motonic clock and it can return few hundred micro-seconds
353
246
  // earlier which breaks the check for the invocation timeout.
354
247
  //
355
248
  while(retryDeadline > now && _invocationTimeoutDeadline > now)
@@ -388,22 +281,129 @@ Outgoing::invoke()
388
281
  return false;
389
282
  }
390
283
 
284
+ Outgoing::Outgoing(IceProxy::Ice::Object* proxy, const string& operation, OperationMode mode, const Context* context) :
285
+ ProxyOutgoingBase(proxy, mode),
286
+ _encoding(getCompatibleEncoding(proxy->__reference()->getEncoding())),
287
+ _is(proxy->__reference()->getInstance().get(), Ice::currentProtocolEncoding),
288
+ _operation(operation)
289
+ {
290
+ checkSupportedProtocol(getCompatibleProtocol(proxy->__reference()->getProtocol()));
291
+ _observer.attach(proxy, operation, context);
292
+
293
+ switch(_proxy->__reference()->getMode())
294
+ {
295
+ case Reference::ModeTwoway:
296
+ case Reference::ModeOneway:
297
+ case Reference::ModeDatagram:
298
+ {
299
+ _os.writeBlob(requestHdr, sizeof(requestHdr));
300
+ break;
301
+ }
302
+
303
+ case Reference::ModeBatchOneway:
304
+ case Reference::ModeBatchDatagram:
305
+ {
306
+ _proxy->__getBatchRequestQueue()->prepareBatchRequest(&_os);
307
+ break;
308
+ }
309
+ }
310
+
311
+ try
312
+ {
313
+ _os.write(_proxy->__reference()->getIdentity());
314
+
315
+ //
316
+ // For compatibility with the old FacetPath.
317
+ //
318
+ if(_proxy->__reference()->getFacet().empty())
319
+ {
320
+ _os.write(static_cast<string*>(0), static_cast<string*>(0));
321
+ }
322
+ else
323
+ {
324
+ string facet = _proxy->__reference()->getFacet();
325
+ _os.write(&facet, &facet + 1);
326
+ }
327
+
328
+ _os.write(operation, false);
329
+
330
+ _os.write(static_cast<Ice::Byte>(mode));
331
+
332
+ if(context != 0)
333
+ {
334
+ //
335
+ // Explicit context
336
+ //
337
+ _os.write(*context);
338
+ }
339
+ else
340
+ {
341
+ //
342
+ // Implicit context
343
+ //
344
+ const ImplicitContextIPtr& implicitContext = _proxy->__reference()->getInstance()->getImplicitContext();
345
+ const Context& prxContext = _proxy->__reference()->getContext()->getValue();
346
+ if(implicitContext == 0)
347
+ {
348
+ _os.write(prxContext);
349
+ }
350
+ else
351
+ {
352
+ implicitContext->write(prxContext, &_os);
353
+ }
354
+ }
355
+ }
356
+ catch(const LocalException& ex)
357
+ {
358
+ abort(ex);
359
+ }
360
+ }
361
+
362
+ Outgoing::~Outgoing()
363
+ {
364
+ }
365
+
366
+ bool
367
+ Outgoing::invokeRemote(const Ice::ConnectionIPtr& connection, bool compress, bool response)
368
+ {
369
+ return connection->sendRequest(this, compress, response, 0);
370
+ }
371
+
372
+ void
373
+ Outgoing::invokeCollocated(CollocatedRequestHandler* handler)
374
+ {
375
+ handler->invokeRequest(this, 0);
376
+ }
377
+
378
+ bool
379
+ Outgoing::invoke()
380
+ {
381
+ const Reference::Mode mode = _proxy->__reference()->getMode();
382
+ if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
383
+ {
384
+ _state = StateInProgress;
385
+ _proxy->__getBatchRequestQueue()->finishBatchRequest(&_os, _proxy, _operation);
386
+ return true;
387
+ }
388
+ return invokeImpl();
389
+ }
390
+
391
391
  void
392
392
  Outgoing::abort(const LocalException& ex)
393
393
  {
394
394
  assert(_state == StateUnsent);
395
-
395
+
396
396
  //
397
397
  // If we didn't finish a batch oneway or datagram request, we must
398
398
  // notify the connection about that we give up ownership of the
399
399
  // batch stream.
400
400
  //
401
- if(_proxy->__reference()->getMode() == Reference::ModeBatchOneway ||
402
- _proxy->__reference()->getMode() == Reference::ModeBatchDatagram)
401
+ const Reference::Mode mode = _proxy->__reference()->getMode();
402
+ if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
403
403
  {
404
- _handler->abortBatchRequest();
404
+ _proxy->__getBatchRequestQueue()->abortBatchRequest(&_os);
405
405
  }
406
-
406
+
407
407
  ex.ice_throw();
408
408
  }
409
409
 
@@ -425,7 +425,7 @@ Outgoing::completed(BasicStream& is)
425
425
 
426
426
  Ice::Byte replyStatus;
427
427
  _is.read(replyStatus);
428
-
428
+
429
429
  switch(replyStatus)
430
430
  {
431
431
  case replyOK:
@@ -433,14 +433,14 @@ Outgoing::completed(BasicStream& is)
433
433
  _state = StateOK; // The state must be set last, in case there is an exception.
434
434
  break;
435
435
  }
436
-
436
+
437
437
  case replyUserException:
438
438
  {
439
439
  _observer.userException();
440
440
  _state = StateUserException; // The state must be set last, in case there is an exception.
441
441
  break;
442
442
  }
443
-
443
+
444
444
  case replyObjectNotExist:
445
445
  case replyFacetNotExist:
446
446
  case replyOperationNotExist:
@@ -470,7 +470,7 @@ Outgoing::completed(BasicStream& is)
470
470
 
471
471
  string operation;
472
472
  _is.read(operation, false);
473
-
473
+
474
474
  RequestFailedException* ex;
475
475
  switch(replyStatus)
476
476
  {
@@ -479,19 +479,19 @@ Outgoing::completed(BasicStream& is)
479
479
  ex = new ObjectNotExistException(__FILE__, __LINE__);
480
480
  break;
481
481
  }
482
-
482
+
483
483
  case replyFacetNotExist:
484
484
  {
485
485
  ex = new FacetNotExistException(__FILE__, __LINE__);
486
486
  break;
487
487
  }
488
-
488
+
489
489
  case replyOperationNotExist:
490
490
  {
491
491
  ex = new OperationNotExistException(__FILE__, __LINE__);
492
492
  break;
493
493
  }
494
-
494
+
495
495
  default:
496
496
  {
497
497
  ex = 0; // To keep the compiler from complaining.
@@ -499,7 +499,7 @@ Outgoing::completed(BasicStream& is)
499
499
  break;
500
500
  }
501
501
  }
502
-
502
+
503
503
  ex->id = ident;
504
504
  ex->facet = facet;
505
505
  ex->operation = operation;
@@ -508,7 +508,7 @@ Outgoing::completed(BasicStream& is)
508
508
  _state = StateLocalException; // The state must be set last, in case there is an exception.
509
509
  break;
510
510
  }
511
-
511
+
512
512
  case replyUnknownException:
513
513
  case replyUnknownLocalException:
514
514
  case replyUnknownUserException:
@@ -520,7 +520,7 @@ Outgoing::completed(BasicStream& is)
520
520
  //
521
521
  string unknown;
522
522
  _is.read(unknown, false);
523
-
523
+
524
524
  UnknownException* ex;
525
525
  switch(replyStatus)
526
526
  {
@@ -529,19 +529,19 @@ Outgoing::completed(BasicStream& is)
529
529
  ex = new UnknownException(__FILE__, __LINE__);
530
530
  break;
531
531
  }
532
-
532
+
533
533
  case replyUnknownLocalException:
534
534
  {
535
535
  ex = new UnknownLocalException(__FILE__, __LINE__);
536
536
  break;
537
537
  }
538
-
538
+
539
539
  case replyUnknownUserException:
540
540
  {
541
541
  ex = new UnknownUserException(__FILE__, __LINE__);
542
542
  break;
543
543
  }
544
-
544
+
545
545
  default:
546
546
  {
547
547
  ex = 0; // To keep the compiler from complaining.
@@ -549,14 +549,14 @@ Outgoing::completed(BasicStream& is)
549
549
  break;
550
550
  }
551
551
  }
552
-
552
+
553
553
  ex->unknown = unknown;
554
554
  _exception.reset(ex);
555
555
 
556
556
  _state = StateLocalException; // The state must be set last, in case there is an exception.
557
557
  break;
558
558
  }
559
-
559
+
560
560
  default:
561
561
  {
562
562
  _exception.reset(new UnknownReplyStatusException(__FILE__, __LINE__));
@@ -583,145 +583,94 @@ Outgoing::throwUserException()
583
583
  }
584
584
  }
585
585
 
586
- FlushBatch::FlushBatch(IceProxy::Ice::Object* proxy, const string& operation) :
587
- OutgoingBase(proxy->__reference()->getInstance().get(), operation), _proxy(proxy), _connection(0)
586
+ ProxyFlushBatch::ProxyFlushBatch(IceProxy::Ice::Object* proxy, const string& operation) :
587
+ ProxyOutgoingBase(proxy, Ice::Normal)
588
588
  {
589
- checkSupportedProtocol(proxy->__reference()->getProtocol());
589
+ checkSupportedProtocol(getCompatibleProtocol(proxy->__reference()->getProtocol()));
590
+ _observer.attach(proxy, operation, 0);
590
591
 
591
- _observer.attach(proxy->__reference()->getInstance().get(), operation);
592
+ _batchRequestNum = proxy->__getBatchRequestQueue()->swap(&_os);
592
593
  }
593
594
 
594
- FlushBatch::FlushBatch(ConnectionI* connection, Instance* instance, const string& operation) :
595
- OutgoingBase(instance, operation), _proxy(0), _connection(connection)
595
+ bool
596
+ ProxyFlushBatch::invokeRemote(const Ice::ConnectionIPtr& connection, bool compress, bool response)
596
597
  {
597
- _observer.attach(instance, operation);
598
+ return connection->sendRequest(this, compress, response, _batchRequestNum);
598
599
  }
599
600
 
600
601
  void
601
- FlushBatch::invoke()
602
+ ProxyFlushBatch::invokeCollocated(CollocatedRequestHandler* handler)
602
603
  {
603
- assert(_proxy || _connection);
604
+ handler->invokeRequest(this, _batchRequestNum);
605
+ }
604
606
 
605
- if(_connection)
607
+ void
608
+ ProxyFlushBatch::invoke()
609
+ {
610
+ if(_batchRequestNum == 0)
606
611
  {
607
- if(_connection->flushBatchRequests(this))
608
- {
609
- return;
610
- }
611
-
612
- Monitor<Mutex>::Lock sync(_monitor);
613
- while(!_exception.get() && !_sent)
614
- {
615
- _monitor.wait();
616
- }
617
- if(_exception.get())
618
- {
619
- _exception->ice_throw();
620
- }
621
- return;
612
+ sent();
622
613
  }
614
+ else
615
+ {
616
+ invokeImpl();
617
+ }
618
+ }
619
+
620
+ ConnectionFlushBatch::ConnectionFlushBatch(ConnectionI* connection, Instance* instance, const string& operation) :
621
+ OutgoingBase(instance), _connection(connection)
622
+ {
623
+ _observer.attach(instance, operation);
624
+ }
625
+
626
+ void
627
+ ConnectionFlushBatch::invoke()
628
+ {
629
+ int batchRequestNum = _connection->getBatchRequestQueue()->swap(&_os);
623
630
 
624
- RequestHandlerPtr handler;
625
631
  try
626
632
  {
627
- handler = _proxy->__getRequestHandler();
628
- if(handler->sendRequest(this))
633
+ if(batchRequestNum == 0)
629
634
  {
630
- return;
635
+ sent();
631
636
  }
632
-
633
- bool timedOut = false;
637
+ else if(!_connection->sendRequest(this, false, false, batchRequestNum))
634
638
  {
635
- Monitor<Mutex>::Lock sync(_monitor);
636
- int timeout = _proxy->__reference()->getInvocationTimeout();
637
- if(timeout > 0)
638
- {
639
- Time now = Time::now(Time::Monotonic);
640
- Time deadline = now + Time::milliSeconds(timeout);
641
- while(!_exception.get() && !_sent && !timedOut)
642
- {
643
- _monitor.timedWait(deadline - now);
644
- if(!_exception.get() && !_sent)
645
- {
646
- now = Time::now(Time::Monotonic);
647
- timedOut = now >= deadline;
648
- }
649
- }
650
- }
651
- else
652
- {
653
- while(!_exception.get() && !_sent)
654
- {
655
- _monitor.wait();
656
- }
657
- }
658
- }
659
-
660
- if(timedOut)
661
- {
662
- Ice::InvocationTimeoutException ex(__FILE__, __LINE__);
663
- handler->requestCanceled(this, ex);
664
-
665
- //
666
- // Wait for the exception to propagate. It's possible the request handler ignores
667
- // the timeout if there was a failure shortly before requestTimedOut got called.
668
- // In this case, the exception should be set on the Outgoing.
669
- //
670
639
  Monitor<Mutex>::Lock sync(_monitor);
671
640
  while(!_exception.get() && !_sent)
672
641
  {
673
642
  _monitor.wait();
674
643
  }
675
- }
676
-
677
- if(_exception.get())
678
- {
679
- _exception->ice_throw();
644
+ if(_exception.get())
645
+ {
646
+ _exception->ice_throw();
647
+ }
680
648
  }
681
649
  }
682
650
  catch(const RetryException& ex)
683
651
  {
684
- _proxy->__setRequestHandler(handler, 0); // Clear request handler
685
- ex.get()->ice_throw(); // Throw to notify the user that batch requests were potentially lost.
652
+ ex.get()->ice_throw();
686
653
  }
687
- catch(const Ice::Exception& ex)
688
- {
689
- _proxy->__setRequestHandler(handler, 0); // Clear request handler
690
- _observer.failed(ex.ice_name());
691
- throw; // Throw to notify the user that batch requests were potentially lost.
692
- }
693
- }
694
-
695
- bool
696
- FlushBatch::send(const Ice::ConnectionIPtr& connection, bool, bool)
697
- {
698
- return connection->flushBatchRequests(this);
699
- }
700
-
701
- void
702
- FlushBatch::invokeCollocated(CollocatedRequestHandler* handler)
703
- {
704
- handler->invokeBatchRequests(this);
705
654
  }
706
655
 
707
656
  void
708
- FlushBatch::sent()
657
+ ConnectionFlushBatch::sent()
709
658
  {
710
659
  Monitor<Mutex>::Lock sync(_monitor);
711
660
  _childObserver.detach();
712
-
661
+
713
662
  _sent = true;
714
663
  _monitor.notify();
715
664
 
716
665
  //
717
- // NOTE: At this point the stack allocated FlushBatch object
718
- // can be destroyed since the notify() on the monitor will release
719
- // the thread waiting on the synchronous Ice call.
666
+ // NOTE: At this point the stack allocated ConnectionFlushBatch
667
+ // object can be destroyed since the notify() on the monitor will
668
+ // release the thread waiting on the synchronous Ice call.
720
669
  //
721
670
  }
722
671
 
723
672
  void
724
- FlushBatch::completed(const Ice::Exception& ex)
673
+ ConnectionFlushBatch::completed(const Ice::Exception& ex)
725
674
  {
726
675
  Monitor<Mutex>::Lock sync(_monitor);
727
676
  _childObserver.failed(ex.ice_name());
@@ -731,7 +680,13 @@ FlushBatch::completed(const Ice::Exception& ex)
731
680
  }
732
681
 
733
682
  void
734
- FlushBatch::retryException(const Ice::Exception& ex)
683
+ ConnectionFlushBatch::completed(BasicStream& is)
684
+ {
685
+ assert(false);
686
+ }
687
+
688
+ void
689
+ ConnectionFlushBatch::retryException(const Ice::Exception& ex)
735
690
  {
736
691
  completed(ex);
737
692
  }