zeroc-ice 3.6b1 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
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
  }