zeroc-ice 3.6b1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (675) hide show
  1. checksums.yaml +7 -0
  2. data/ICE_LICENSE +54 -0
  3. data/LICENSE +339 -0
  4. data/bin/slice2rb +17 -0
  5. data/ext/Communicator.cpp +596 -0
  6. data/ext/Communicator.h +25 -0
  7. data/ext/Config.h +111 -0
  8. data/ext/Connection.cpp +381 -0
  9. data/ext/Connection.h +26 -0
  10. data/ext/Endpoint.cpp +311 -0
  11. data/ext/Endpoint.h +27 -0
  12. data/ext/ImplicitContext.cpp +152 -0
  13. data/ext/ImplicitContext.h +25 -0
  14. data/ext/Init.cpp +52 -0
  15. data/ext/Logger.cpp +151 -0
  16. data/ext/Logger.h +28 -0
  17. data/ext/ObjectFactory.cpp +140 -0
  18. data/ext/ObjectFactory.h +50 -0
  19. data/ext/Operation.cpp +676 -0
  20. data/ext/Operation.h +36 -0
  21. data/ext/Properties.cpp +369 -0
  22. data/ext/Properties.h +25 -0
  23. data/ext/Proxy.cpp +1354 -0
  24. data/ext/Proxy.h +27 -0
  25. data/ext/Slice.cpp +223 -0
  26. data/ext/Slice.h +22 -0
  27. data/ext/Types.cpp +3160 -0
  28. data/ext/Types.h +545 -0
  29. data/ext/Util.cpp +792 -0
  30. data/ext/Util.h +511 -0
  31. data/ext/extconf.rb +118 -0
  32. data/ext/ice/BZIP_LICENSE +42 -0
  33. data/ext/ice/MCPP_LICENSE +36 -0
  34. data/ext/ice/bzip2/blocksort.c +1094 -0
  35. data/ext/ice/bzip2/bzlib.c +1572 -0
  36. data/ext/ice/bzip2/bzlib.h +282 -0
  37. data/ext/ice/bzip2/bzlib_private.h +509 -0
  38. data/ext/ice/bzip2/compress.c +672 -0
  39. data/ext/ice/bzip2/crctable.c +104 -0
  40. data/ext/ice/bzip2/decompress.c +646 -0
  41. data/ext/ice/bzip2/huffman.c +205 -0
  42. data/ext/ice/bzip2/randtable.c +84 -0
  43. data/ext/ice/cpp/include/Ice/ACMF.h +30 -0
  44. data/ext/ice/cpp/include/Ice/Application.h +156 -0
  45. data/ext/ice/cpp/include/Ice/AsyncResult.h +363 -0
  46. data/ext/ice/cpp/include/Ice/AsyncResultF.h +26 -0
  47. data/ext/ice/cpp/include/Ice/BasicStream.h +1315 -0
  48. data/ext/ice/cpp/include/Ice/Buffer.h +159 -0
  49. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +74 -0
  50. data/ext/ice/cpp/include/Ice/Communicator.h +194 -0
  51. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +115 -0
  52. data/ext/ice/cpp/include/Ice/CommunicatorF.h +60 -0
  53. data/ext/ice/cpp/include/Ice/Config.h +97 -0
  54. data/ext/ice/cpp/include/Ice/Connection.h +495 -0
  55. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +115 -0
  56. data/ext/ice/cpp/include/Ice/ConnectionF.h +72 -0
  57. data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +30 -0
  58. data/ext/ice/cpp/include/Ice/ConnectionIF.h +37 -0
  59. data/ext/ice/cpp/include/Ice/Current.h +94 -0
  60. data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +48 -0
  61. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +62 -0
  62. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +33 -0
  63. data/ext/ice/cpp/include/Ice/Dispatcher.h +51 -0
  64. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +105 -0
  65. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +29 -0
  66. data/ext/ice/cpp/include/Ice/Endpoint.h +350 -0
  67. data/ext/ice/cpp/include/Ice/EndpointF.h +97 -0
  68. data/ext/ice/cpp/include/Ice/EndpointTypes.h +74 -0
  69. data/ext/ice/cpp/include/Ice/Exception.h +114 -0
  70. data/ext/ice/cpp/include/Ice/FacetMap.h +56 -0
  71. data/ext/ice/cpp/include/Ice/FactoryTable.h +69 -0
  72. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +87 -0
  73. data/ext/ice/cpp/include/Ice/Format.h +39 -0
  74. data/ext/ice/cpp/include/Ice/Functional.h +138 -0
  75. data/ext/ice/cpp/include/Ice/GCObject.h +73 -0
  76. data/ext/ice/cpp/include/Ice/Handle.h +192 -0
  77. data/ext/ice/cpp/include/Ice/Ice.h +54 -0
  78. data/ext/ice/cpp/include/Ice/Identity.h +160 -0
  79. data/ext/ice/cpp/include/Ice/ImplicitContext.h +96 -0
  80. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +60 -0
  81. data/ext/ice/cpp/include/Ice/Incoming.h +131 -0
  82. data/ext/ice/cpp/include/Ice/IncomingAsync.h +108 -0
  83. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +35 -0
  84. data/ext/ice/cpp/include/Ice/Initialize.h +141 -0
  85. data/ext/ice/cpp/include/Ice/InstanceF.h +26 -0
  86. data/ext/ice/cpp/include/Ice/Instrumentation.h +377 -0
  87. data/ext/ice/cpp/include/Ice/InstrumentationF.h +71 -0
  88. data/ext/ice/cpp/include/Ice/LocalException.h +1022 -0
  89. data/ext/ice/cpp/include/Ice/LocalObject.h +36 -0
  90. data/ext/ice/cpp/include/Ice/LocalObjectF.h +26 -0
  91. data/ext/ice/cpp/include/Ice/Locator.h +2191 -0
  92. data/ext/ice/cpp/include/Ice/LocatorF.h +89 -0
  93. data/ext/ice/cpp/include/Ice/Logger.h +94 -0
  94. data/ext/ice/cpp/include/Ice/LoggerF.h +60 -0
  95. data/ext/ice/cpp/include/Ice/LoggerUtil.h +153 -0
  96. data/ext/ice/cpp/include/Ice/Makefile +26 -0
  97. data/ext/ice/cpp/include/Ice/Metrics.h +2989 -0
  98. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +662 -0
  99. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +144 -0
  100. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +576 -0
  101. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +55 -0
  102. data/ext/ice/cpp/include/Ice/Object.h +165 -0
  103. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +162 -0
  104. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +60 -0
  105. data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +26 -0
  106. data/ext/ice/cpp/include/Ice/ObjectF.h +26 -0
  107. data/ext/ice/cpp/include/Ice/ObjectFactory.h +86 -0
  108. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +60 -0
  109. data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +26 -0
  110. data/ext/ice/cpp/include/Ice/ObserverHelper.h +177 -0
  111. data/ext/ice/cpp/include/Ice/Outgoing.h +197 -0
  112. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +264 -0
  113. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +38 -0
  114. data/ext/ice/cpp/include/Ice/Plugin.h +121 -0
  115. data/ext/ice/cpp/include/Ice/PluginF.h +66 -0
  116. data/ext/ice/cpp/include/Ice/Process.h +568 -0
  117. data/ext/ice/cpp/include/Ice/ProcessF.h +77 -0
  118. data/ext/ice/cpp/include/Ice/Properties.h +130 -0
  119. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +824 -0
  120. data/ext/ice/cpp/include/Ice/PropertiesF.h +83 -0
  121. data/ext/ice/cpp/include/Ice/Protocol.h +242 -0
  122. data/ext/ice/cpp/include/Ice/Proxy.h +2448 -0
  123. data/ext/ice/cpp/include/Ice/ProxyF.h +78 -0
  124. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +26 -0
  125. data/ext/ice/cpp/include/Ice/ProxyHandle.h +330 -0
  126. data/ext/ice/cpp/include/Ice/ReferenceF.h +34 -0
  127. data/ext/ice/cpp/include/Ice/RemoteLogger.h +1496 -0
  128. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +29 -0
  129. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +25 -0
  130. data/ext/ice/cpp/include/Ice/Router.h +1155 -0
  131. data/ext/ice/cpp/include/Ice/RouterF.h +77 -0
  132. data/ext/ice/cpp/include/Ice/ServantLocator.h +90 -0
  133. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +60 -0
  134. data/ext/ice/cpp/include/Ice/ServantManagerF.h +26 -0
  135. data/ext/ice/cpp/include/Ice/Service.h +260 -0
  136. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +56 -0
  137. data/ext/ice/cpp/include/Ice/SliceChecksums.h +34 -0
  138. data/ext/ice/cpp/include/Ice/SlicedData.h +103 -0
  139. data/ext/ice/cpp/include/Ice/SlicedDataF.h +34 -0
  140. data/ext/ice/cpp/include/Ice/Stream.h +449 -0
  141. data/ext/ice/cpp/include/Ice/StreamF.h +30 -0
  142. data/ext/ice/cpp/include/Ice/StreamHelpers.h +877 -0
  143. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +28 -0
  144. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +56 -0
  145. data/ext/ice/cpp/include/Ice/Version.h +254 -0
  146. data/ext/ice/cpp/include/IceSSL/Config.h +23 -0
  147. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +119 -0
  148. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +101 -0
  149. data/ext/ice/cpp/include/IceSSL/IceSSL.h +22 -0
  150. data/ext/ice/cpp/include/IceSSL/Makefile +26 -0
  151. data/ext/ice/cpp/include/IceSSL/Plugin.h +558 -0
  152. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +119 -0
  153. data/ext/ice/cpp/include/IceUtil/Cache.h +362 -0
  154. data/ext/ice/cpp/include/IceUtil/Cond.h +323 -0
  155. data/ext/ice/cpp/include/IceUtil/Config.h +234 -0
  156. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +50 -0
  157. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +70 -0
  158. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +45 -0
  159. data/ext/ice/cpp/include/IceUtil/Exception.h +184 -0
  160. data/ext/ice/cpp/include/IceUtil/Functional.h +389 -0
  161. data/ext/ice/cpp/include/IceUtil/Handle.h +266 -0
  162. data/ext/ice/cpp/include/IceUtil/IceUtil.h +51 -0
  163. data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +302 -0
  164. data/ext/ice/cpp/include/IceUtil/InputUtil.h +47 -0
  165. data/ext/ice/cpp/include/IceUtil/Iterator.h +36 -0
  166. data/ext/ice/cpp/include/IceUtil/Lock.h +135 -0
  167. data/ext/ice/cpp/include/IceUtil/Makefile +26 -0
  168. data/ext/ice/cpp/include/IceUtil/Monitor.h +249 -0
  169. data/ext/ice/cpp/include/IceUtil/Mutex.h +357 -0
  170. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +28 -0
  171. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +83 -0
  172. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +82 -0
  173. data/ext/ice/cpp/include/IceUtil/Optional.h +322 -0
  174. data/ext/ice/cpp/include/IceUtil/Options.h +141 -0
  175. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +362 -0
  176. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +19 -0
  177. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +26 -0
  178. data/ext/ice/cpp/include/IceUtil/Random.h +24 -0
  179. data/ext/ice/cpp/include/IceUtil/RecMutex.h +113 -0
  180. data/ext/ice/cpp/include/IceUtil/SHA1.h +65 -0
  181. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +44 -0
  182. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +97 -0
  183. data/ext/ice/cpp/include/IceUtil/Shared.h +168 -0
  184. data/ext/ice/cpp/include/IceUtil/StringConverter.h +175 -0
  185. data/ext/ice/cpp/include/IceUtil/StringUtil.h +91 -0
  186. data/ext/ice/cpp/include/IceUtil/Thread.h +181 -0
  187. data/ext/ice/cpp/include/IceUtil/ThreadException.h +108 -0
  188. data/ext/ice/cpp/include/IceUtil/Time.h +209 -0
  189. data/ext/ice/cpp/include/IceUtil/Timer.h +143 -0
  190. data/ext/ice/cpp/include/IceUtil/UUID.h +22 -0
  191. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +42 -0
  192. data/ext/ice/cpp/include/IceUtil/UniquePtr.h +101 -0
  193. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +64 -0
  194. data/ext/ice/cpp/include/Slice/Checksum.h +26 -0
  195. data/ext/ice/cpp/include/Slice/CsUtil.h +92 -0
  196. data/ext/ice/cpp/include/Slice/DotNetNames.h +34 -0
  197. data/ext/ice/cpp/include/Slice/FileTracker.h +71 -0
  198. data/ext/ice/cpp/include/Slice/JavaUtil.h +277 -0
  199. data/ext/ice/cpp/include/Slice/Makefile +26 -0
  200. data/ext/ice/cpp/include/Slice/PHPUtil.h +50 -0
  201. data/ext/ice/cpp/include/Slice/Parser.h +1116 -0
  202. data/ext/ice/cpp/include/Slice/Preprocessor.h +68 -0
  203. data/ext/ice/cpp/include/Slice/PythonUtil.h +64 -0
  204. data/ext/ice/cpp/include/Slice/RubyUtil.h +54 -0
  205. data/ext/ice/cpp/include/Slice/Util.h +33 -0
  206. data/ext/ice/cpp/src/Ice/ACM.cpp +343 -0
  207. data/ext/ice/cpp/src/Ice/ACM.h +117 -0
  208. data/ext/ice/cpp/src/Ice/Acceptor.cpp +16 -0
  209. data/ext/ice/cpp/src/Ice/Acceptor.h +41 -0
  210. data/ext/ice/cpp/src/Ice/AcceptorF.h +30 -0
  211. data/ext/ice/cpp/src/Ice/Application.cpp +760 -0
  212. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +599 -0
  213. data/ext/ice/cpp/src/Ice/Base64.cpp +269 -0
  214. data/ext/ice/cpp/src/Ice/Base64.h +36 -0
  215. data/ext/ice/cpp/src/Ice/BasicStream.cpp +3393 -0
  216. data/ext/ice/cpp/src/Ice/Buffer.cpp +98 -0
  217. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +34 -0
  218. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +718 -0
  219. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +106 -0
  220. data/ext/ice/cpp/src/Ice/Communicator.cpp +45 -0
  221. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +38 -0
  222. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +386 -0
  223. data/ext/ice/cpp/src/Ice/CommunicatorI.h +112 -0
  224. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +546 -0
  225. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +97 -0
  226. data/ext/ice/cpp/src/Ice/Connection.cpp +58 -0
  227. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +38 -0
  228. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +1639 -0
  229. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +236 -0
  230. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +3876 -0
  231. data/ext/ice/cpp/src/Ice/ConnectionI.h +364 -0
  232. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +115 -0
  233. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +50 -0
  234. data/ext/ice/cpp/src/Ice/Connector.cpp +16 -0
  235. data/ext/ice/cpp/src/Ice/Connector.h +36 -0
  236. data/ext/ice/cpp/src/Ice/ConnectorF.h +26 -0
  237. data/ext/ice/cpp/src/Ice/Current.cpp +38 -0
  238. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +168 -0
  239. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +57 -0
  240. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +26 -0
  241. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +60 -0
  242. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +49 -0
  243. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +281 -0
  244. data/ext/ice/cpp/src/Ice/Endpoint.cpp +53 -0
  245. data/ext/ice/cpp/src/Ice/EndpointF.cpp +38 -0
  246. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +25 -0
  247. data/ext/ice/cpp/src/Ice/EndpointFactory.h +44 -0
  248. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +26 -0
  249. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +208 -0
  250. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +46 -0
  251. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +26 -0
  252. data/ext/ice/cpp/src/Ice/EndpointI.cpp +87 -0
  253. data/ext/ice/cpp/src/Ice/EndpointI.h +165 -0
  254. data/ext/ice/cpp/src/Ice/EndpointIF.h +41 -0
  255. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +38 -0
  256. data/ext/ice/cpp/src/Ice/EventHandler.cpp +35 -0
  257. data/ext/ice/cpp/src/Ice/EventHandler.h +78 -0
  258. data/ext/ice/cpp/src/Ice/EventHandlerF.h +26 -0
  259. data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +53 -0
  260. data/ext/ice/cpp/src/Ice/Exception.cpp +832 -0
  261. data/ext/ice/cpp/src/Ice/FacetMap.cpp +34 -0
  262. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +158 -0
  263. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +95 -0
  264. data/ext/ice/cpp/src/Ice/GCObject.cpp +444 -0
  265. data/ext/ice/cpp/src/Ice/HashUtil.h +59 -0
  266. data/ext/ice/cpp/src/Ice/HttpParser.cpp +680 -0
  267. data/ext/ice/cpp/src/Ice/HttpParser.h +124 -0
  268. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +733 -0
  269. data/ext/ice/cpp/src/Ice/IPEndpointI.h +157 -0
  270. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +29 -0
  271. data/ext/ice/cpp/src/Ice/Identity.cpp +42 -0
  272. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +41 -0
  273. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +38 -0
  274. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +639 -0
  275. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +51 -0
  276. data/ext/ice/cpp/src/Ice/Incoming.cpp +757 -0
  277. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +340 -0
  278. data/ext/ice/cpp/src/Ice/IncomingRequest.h +37 -0
  279. data/ext/ice/cpp/src/Ice/Initialize.cpp +401 -0
  280. data/ext/ice/cpp/src/Ice/Instance.cpp +1928 -0
  281. data/ext/ice/cpp/src/Ice/Instance.h +198 -0
  282. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +68 -0
  283. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +43 -0
  284. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1083 -0
  285. data/ext/ice/cpp/src/Ice/InstrumentationI.h +262 -0
  286. data/ext/ice/cpp/src/Ice/LocalException.cpp +2091 -0
  287. data/ext/ice/cpp/src/Ice/LocalObject.cpp +29 -0
  288. data/ext/ice/cpp/src/Ice/Locator.cpp +1946 -0
  289. data/ext/ice/cpp/src/Ice/LocatorF.cpp +39 -0
  290. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +917 -0
  291. data/ext/ice/cpp/src/Ice/LocatorInfo.h +193 -0
  292. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +34 -0
  293. data/ext/ice/cpp/src/Ice/Logger.cpp +40 -0
  294. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +862 -0
  295. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +46 -0
  296. data/ext/ice/cpp/src/Ice/LoggerF.cpp +38 -0
  297. data/ext/ice/cpp/src/Ice/LoggerI.cpp +199 -0
  298. data/ext/ice/cpp/src/Ice/LoggerI.h +57 -0
  299. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +107 -0
  300. data/ext/ice/cpp/src/Ice/Makefile +190 -0
  301. data/ext/ice/cpp/src/Ice/Metrics.cpp +2159 -0
  302. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +669 -0
  303. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +14 -0
  304. data/ext/ice/cpp/src/Ice/Network.cpp +2694 -0
  305. data/ext/ice/cpp/src/Ice/Network.h +291 -0
  306. data/ext/ice/cpp/src/Ice/NetworkF.h +28 -0
  307. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +325 -0
  308. data/ext/ice/cpp/src/Ice/NetworkProxy.h +74 -0
  309. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +26 -0
  310. data/ext/ice/cpp/src/Ice/Object.cpp +440 -0
  311. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -0
  312. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +38 -0
  313. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +241 -0
  314. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +52 -0
  315. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +1498 -0
  316. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +155 -0
  317. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +41 -0
  318. data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +38 -0
  319. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +140 -0
  320. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +43 -0
  321. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +84 -0
  322. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +407 -0
  323. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +70 -0
  324. data/ext/ice/cpp/src/Ice/Outgoing.cpp +737 -0
  325. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +874 -0
  326. data/ext/ice/cpp/src/Ice/Plugin.cpp +43 -0
  327. data/ext/ice/cpp/src/Ice/PluginF.cpp +38 -0
  328. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +503 -0
  329. data/ext/ice/cpp/src/Ice/PluginManagerI.h +67 -0
  330. data/ext/ice/cpp/src/Ice/Process.cpp +299 -0
  331. data/ext/ice/cpp/src/Ice/ProcessF.cpp +39 -0
  332. data/ext/ice/cpp/src/Ice/Properties.cpp +45 -0
  333. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +555 -0
  334. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +207 -0
  335. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +45 -0
  336. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +39 -0
  337. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +759 -0
  338. data/ext/ice/cpp/src/Ice/PropertiesI.h +78 -0
  339. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +1293 -0
  340. data/ext/ice/cpp/src/Ice/PropertyNames.h +81 -0
  341. data/ext/ice/cpp/src/Ice/Protocol.cpp +137 -0
  342. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +98 -0
  343. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +91 -0
  344. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +26 -0
  345. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +51 -0
  346. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +67 -0
  347. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +26 -0
  348. data/ext/ice/cpp/src/Ice/Proxy.cpp +1810 -0
  349. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +305 -0
  350. data/ext/ice/cpp/src/Ice/ProxyFactory.h +57 -0
  351. data/ext/ice/cpp/src/Ice/Reference.cpp +1947 -0
  352. data/ext/ice/cpp/src/Ice/Reference.h +305 -0
  353. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +937 -0
  354. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +81 -0
  355. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +24 -0
  356. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +958 -0
  357. data/ext/ice/cpp/src/Ice/ReplyStatus.h +29 -0
  358. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +40 -0
  359. data/ext/ice/cpp/src/Ice/RequestHandler.h +90 -0
  360. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +70 -0
  361. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +41 -0
  362. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +20 -0
  363. data/ext/ice/cpp/src/Ice/ResponseHandler.h +39 -0
  364. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +154 -0
  365. data/ext/ice/cpp/src/Ice/RetryQueue.h +69 -0
  366. data/ext/ice/cpp/src/Ice/RetryQueueF.h +24 -0
  367. data/ext/ice/cpp/src/Ice/Router.cpp +849 -0
  368. data/ext/ice/cpp/src/Ice/RouterF.cpp +39 -0
  369. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +381 -0
  370. data/ext/ice/cpp/src/Ice/RouterInfo.h +148 -0
  371. data/ext/ice/cpp/src/Ice/RouterInfoF.h +30 -0
  372. data/ext/ice/cpp/src/Ice/Selector.cpp +926 -0
  373. data/ext/ice/cpp/src/Ice/Selector.h +231 -0
  374. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +41 -0
  375. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +38 -0
  376. data/ext/ice/cpp/src/Ice/ServantManager.cpp +495 -0
  377. data/ext/ice/cpp/src/Ice/ServantManager.h +74 -0
  378. data/ext/ice/cpp/src/Ice/Service.cpp +1897 -0
  379. data/ext/ice/cpp/src/Ice/SharedContext.h +51 -0
  380. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +34 -0
  381. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +80 -0
  382. data/ext/ice/cpp/src/Ice/SlicedData.cpp +80 -0
  383. data/ext/ice/cpp/src/Ice/Stream.cpp +53 -0
  384. data/ext/ice/cpp/src/Ice/StreamI.cpp +832 -0
  385. data/ext/ice/cpp/src/Ice/StreamI.h +198 -0
  386. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +521 -0
  387. data/ext/ice/cpp/src/Ice/StreamSocket.h +85 -0
  388. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +145 -0
  389. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +167 -0
  390. data/ext/ice/cpp/src/Ice/SysLoggerI.h +43 -0
  391. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +235 -0
  392. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +67 -0
  393. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +133 -0
  394. data/ext/ice/cpp/src/Ice/TcpConnector.h +51 -0
  395. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +397 -0
  396. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +93 -0
  397. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +127 -0
  398. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +61 -0
  399. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +1357 -0
  400. data/ext/ice/cpp/src/Ice/ThreadPool.h +399 -0
  401. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +43 -0
  402. data/ext/ice/cpp/src/Ice/TraceLevels.h +50 -0
  403. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +26 -0
  404. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +452 -0
  405. data/ext/ice/cpp/src/Ice/TraceUtil.h +28 -0
  406. data/ext/ice/cpp/src/Ice/Transceiver.cpp +24 -0
  407. data/ext/ice/cpp/src/Ice/Transceiver.h +52 -0
  408. data/ext/ice/cpp/src/Ice/TransceiverF.h +38 -0
  409. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +144 -0
  410. data/ext/ice/cpp/src/Ice/UdpConnector.h +51 -0
  411. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +483 -0
  412. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +95 -0
  413. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +1156 -0
  414. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +123 -0
  415. data/ext/ice/cpp/src/Ice/Version.cpp +46 -0
  416. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +103 -0
  417. data/ext/ice/cpp/src/Ice/WSAcceptor.h +61 -0
  418. data/ext/ice/cpp/src/Ice/WSConnector.cpp +113 -0
  419. data/ext/ice/cpp/src/Ice/WSConnector.h +51 -0
  420. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +441 -0
  421. data/ext/ice/cpp/src/Ice/WSEndpoint.h +97 -0
  422. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +1728 -0
  423. data/ext/ice/cpp/src/Ice/WSTransceiver.h +149 -0
  424. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +594 -0
  425. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +1035 -0
  426. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +208 -0
  427. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +78 -0
  428. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +308 -0
  429. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +183 -0
  430. data/ext/ice/cpp/src/IceDiscovery/Makefile +61 -0
  431. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +148 -0
  432. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +39 -0
  433. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +258 -0
  434. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +66 -0
  435. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +1334 -0
  436. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +42 -0
  437. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +151 -0
  438. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +56 -0
  439. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +397 -0
  440. data/ext/ice/cpp/src/IceSSL/EndpointI.h +96 -0
  441. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +41 -0
  442. data/ext/ice/cpp/src/IceSSL/Instance.cpp +38 -0
  443. data/ext/ice/cpp/src/IceSSL/Instance.h +42 -0
  444. data/ext/ice/cpp/src/IceSSL/InstanceF.h +34 -0
  445. data/ext/ice/cpp/src/IceSSL/Makefile +82 -0
  446. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +1001 -0
  447. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +607 -0
  448. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +75 -0
  449. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +102 -0
  450. data/ext/ice/cpp/src/IceSSL/PluginI.h +56 -0
  451. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +541 -0
  452. data/ext/ice/cpp/src/IceSSL/RFC2253.h +67 -0
  453. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +729 -0
  454. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +1062 -0
  455. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +130 -0
  456. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +291 -0
  457. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +264 -0
  458. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +41 -0
  459. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1514 -0
  460. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +609 -0
  461. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +91 -0
  462. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +246 -0
  463. data/ext/ice/cpp/src/IceSSL/TrustManager.h +51 -0
  464. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +26 -0
  465. data/ext/ice/cpp/src/IceSSL/Util.cpp +1423 -0
  466. data/ext/ice/cpp/src/IceSSL/Util.h +136 -0
  467. data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +65 -0
  468. data/ext/ice/cpp/src/IceUtil/ArgVector.h +41 -0
  469. data/ext/ice/cpp/src/IceUtil/Cond.cpp +386 -0
  470. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +477 -0
  471. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +144 -0
  472. data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +184 -0
  473. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +273 -0
  474. data/ext/ice/cpp/src/IceUtil/Exception.cpp +782 -0
  475. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +532 -0
  476. data/ext/ice/cpp/src/IceUtil/FileUtil.h +159 -0
  477. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +41 -0
  478. data/ext/ice/cpp/src/IceUtil/Makefile +68 -0
  479. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +24 -0
  480. data/ext/ice/cpp/src/IceUtil/Options.cpp +1049 -0
  481. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +591 -0
  482. data/ext/ice/cpp/src/IceUtil/Random.cpp +185 -0
  483. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +257 -0
  484. data/ext/ice/cpp/src/IceUtil/SHA1.cpp +126 -0
  485. data/ext/ice/cpp/src/IceUtil/Shared.cpp +200 -0
  486. data/ext/ice/cpp/src/IceUtil/StopWatch.h +54 -0
  487. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +450 -0
  488. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +842 -0
  489. data/ext/ice/cpp/src/IceUtil/Thread.cpp +809 -0
  490. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +172 -0
  491. data/ext/ice/cpp/src/IceUtil/Time.cpp +306 -0
  492. data/ext/ice/cpp/src/IceUtil/Timer.cpp +251 -0
  493. data/ext/ice/cpp/src/IceUtil/UUID.cpp +174 -0
  494. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +131 -0
  495. data/ext/ice/cpp/src/IceUtil/Unicode.h +49 -0
  496. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +1139 -0
  497. data/ext/ice/cpp/src/Slice/Checksum.cpp +452 -0
  498. data/ext/ice/cpp/src/Slice/CsUtil.cpp +2650 -0
  499. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +146 -0
  500. data/ext/ice/cpp/src/Slice/FileTracker.cpp +203 -0
  501. data/ext/ice/cpp/src/Slice/Grammar.cpp +4755 -0
  502. data/ext/ice/cpp/src/Slice/Grammar.h +98 -0
  503. data/ext/ice/cpp/src/Slice/GrammarUtil.h +234 -0
  504. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +4376 -0
  505. data/ext/ice/cpp/src/Slice/MD5.cpp +57 -0
  506. data/ext/ice/cpp/src/Slice/MD5.h +44 -0
  507. data/ext/ice/cpp/src/Slice/MD5I.cpp +385 -0
  508. data/ext/ice/cpp/src/Slice/MD5I.h +91 -0
  509. data/ext/ice/cpp/src/Slice/Makefile +65 -0
  510. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +156 -0
  511. data/ext/ice/cpp/src/Slice/Parser.cpp +6386 -0
  512. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +686 -0
  513. data/ext/ice/cpp/src/Slice/Python.cpp +675 -0
  514. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +2614 -0
  515. data/ext/ice/cpp/src/Slice/Ruby.cpp +317 -0
  516. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +1774 -0
  517. data/ext/ice/cpp/src/Slice/Scanner.cpp +2426 -0
  518. data/ext/ice/cpp/src/Slice/Util.cpp +325 -0
  519. data/ext/ice/mcpp/config.h.Darwin +227 -0
  520. data/ext/ice/mcpp/config.h.Linux +227 -0
  521. data/ext/ice/mcpp/config.h.MINGW +7 -0
  522. data/ext/ice/mcpp/configed.H +382 -0
  523. data/ext/ice/mcpp/directive.c +1699 -0
  524. data/ext/ice/mcpp/eval.c +1673 -0
  525. data/ext/ice/mcpp/expand.c +2980 -0
  526. data/ext/ice/mcpp/internal.H +564 -0
  527. data/ext/ice/mcpp/main.c +1131 -0
  528. data/ext/ice/mcpp/mbchar.c +869 -0
  529. data/ext/ice/mcpp/mcpp_lib.h +31 -0
  530. data/ext/ice/mcpp/mcpp_out.h +13 -0
  531. data/ext/ice/mcpp/support.c +2811 -0
  532. data/ext/ice/mcpp/system.H +396 -0
  533. data/ext/ice/mcpp/system.c +4940 -0
  534. data/ice.gemspec +41 -0
  535. data/lib/Glacier2.rb +12 -0
  536. data/lib/Glacier2/Metrics.rb +99 -0
  537. data/lib/Glacier2/PermissionsVerifier.rb +168 -0
  538. data/lib/Glacier2/PermissionsVerifierF.rb +34 -0
  539. data/lib/Glacier2/Router.rb +141 -0
  540. data/lib/Glacier2/RouterF.rb +29 -0
  541. data/lib/Glacier2/SSLInfo.rb +79 -0
  542. data/lib/Glacier2/Session.rb +470 -0
  543. data/lib/Ice.rb +659 -0
  544. data/lib/Ice/BuiltinSequences.rb +64 -0
  545. data/lib/Ice/Communicator.rb +93 -0
  546. data/lib/Ice/CommunicatorF.rb +28 -0
  547. data/lib/Ice/Connection.rb +414 -0
  548. data/lib/Ice/ConnectionF.rb +36 -0
  549. data/lib/Ice/Current.rb +152 -0
  550. data/lib/Ice/Endpoint.rb +265 -0
  551. data/lib/Ice/EndpointF.rb +52 -0
  552. data/lib/Ice/EndpointTypes.rb +77 -0
  553. data/lib/Ice/FacetMap.rb +28 -0
  554. data/lib/Ice/Identity.rb +70 -0
  555. data/lib/Ice/ImplicitContext.rb +59 -0
  556. data/lib/Ice/ImplicitContextF.rb +28 -0
  557. data/lib/Ice/Instrumentation.rb +425 -0
  558. data/lib/Ice/InstrumentationF.rb +35 -0
  559. data/lib/Ice/LocalException.rb +1081 -0
  560. data/lib/Ice/Locator.rb +314 -0
  561. data/lib/Ice/LocatorF.rb +34 -0
  562. data/lib/Ice/Logger.rb +57 -0
  563. data/lib/Ice/LoggerF.rb +28 -0
  564. data/lib/Ice/Metrics.rb +696 -0
  565. data/lib/Ice/ObjectAdapterF.rb +28 -0
  566. data/lib/Ice/ObjectFactory.rb +53 -0
  567. data/lib/Ice/ObjectFactoryF.rb +28 -0
  568. data/lib/Ice/Plugin.rb +87 -0
  569. data/lib/Ice/PluginF.rb +32 -0
  570. data/lib/Ice/Process.rb +93 -0
  571. data/lib/Ice/ProcessF.rb +29 -0
  572. data/lib/Ice/Properties.rb +65 -0
  573. data/lib/Ice/PropertiesAdmin.rb +104 -0
  574. data/lib/Ice/PropertiesF.rb +33 -0
  575. data/lib/Ice/Router.rb +163 -0
  576. data/lib/Ice/RouterF.rb +29 -0
  577. data/lib/Ice/SliceChecksumDict.rb +28 -0
  578. data/lib/Ice/Version.rb +100 -0
  579. data/lib/IceBox.rb +10 -0
  580. data/lib/IceBox/IceBox.rb +272 -0
  581. data/lib/IceGrid.rb +17 -0
  582. data/lib/IceGrid/Admin.rb +1076 -0
  583. data/lib/IceGrid/Descriptor.rb +1505 -0
  584. data/lib/IceGrid/Exception.rb +401 -0
  585. data/lib/IceGrid/FileParser.rb +105 -0
  586. data/lib/IceGrid/Locator.rb +105 -0
  587. data/lib/IceGrid/Observer.rb +571 -0
  588. data/lib/IceGrid/Query.rb +168 -0
  589. data/lib/IceGrid/Registry.rb +120 -0
  590. data/lib/IceGrid/Session.rb +114 -0
  591. data/lib/IceGrid/UserAccountMapper.rb +101 -0
  592. data/lib/IcePatch2.rb +10 -0
  593. data/lib/IcePatch2/FileInfo.rb +75 -0
  594. data/lib/IcePatch2/FileServer.rb +141 -0
  595. data/lib/IceStorm.rb +11 -0
  596. data/lib/IceStorm/IceStorm.rb +463 -0
  597. data/lib/IceStorm/Metrics.rb +155 -0
  598. data/slice/Freeze/BackgroundSaveEvictor.ice +111 -0
  599. data/slice/Freeze/CatalogData.ice +49 -0
  600. data/slice/Freeze/Connection.ice +111 -0
  601. data/slice/Freeze/ConnectionF.ice +20 -0
  602. data/slice/Freeze/DB.ice +37 -0
  603. data/slice/Freeze/Evictor.ice +339 -0
  604. data/slice/Freeze/EvictorF.ice +22 -0
  605. data/slice/Freeze/EvictorStorage.ice +72 -0
  606. data/slice/Freeze/Exception.ice +100 -0
  607. data/slice/Freeze/Transaction.ice +57 -0
  608. data/slice/Freeze/TransactionalEvictor.ice +50 -0
  609. data/slice/Glacier2/Metrics.ice +77 -0
  610. data/slice/Glacier2/PermissionsVerifier.ice +105 -0
  611. data/slice/Glacier2/PermissionsVerifierF.ice +21 -0
  612. data/slice/Glacier2/Router.ice +178 -0
  613. data/slice/Glacier2/RouterF.ice +20 -0
  614. data/slice/Glacier2/SSLInfo.ice +50 -0
  615. data/slice/Glacier2/Session.ice +273 -0
  616. data/slice/Ice/BuiltinSequences.ice +48 -0
  617. data/slice/Ice/Communicator.ice +567 -0
  618. data/slice/Ice/CommunicatorF.ice +20 -0
  619. data/slice/Ice/Connection.ice +323 -0
  620. data/slice/Ice/ConnectionF.ice +22 -0
  621. data/slice/Ice/Current.ice +160 -0
  622. data/slice/Ice/Endpoint.ice +227 -0
  623. data/slice/Ice/EndpointF.ice +32 -0
  624. data/slice/Ice/EndpointTypes.ice +38 -0
  625. data/slice/Ice/FacetMap.ice +25 -0
  626. data/slice/Ice/Identity.ice +59 -0
  627. data/slice/Ice/ImplicitContext.ice +109 -0
  628. data/slice/Ice/ImplicitContextF.ice +20 -0
  629. data/slice/Ice/Instrumentation.ice +499 -0
  630. data/slice/Ice/InstrumentationF.ice +26 -0
  631. data/slice/Ice/LocalException.ice +1015 -0
  632. data/slice/Ice/Locator.ice +227 -0
  633. data/slice/Ice/LocatorF.ice +21 -0
  634. data/slice/Ice/Logger.ice +86 -0
  635. data/slice/Ice/LoggerF.ice +20 -0
  636. data/slice/Ice/Metrics.ice +422 -0
  637. data/slice/Ice/ObjectAdapter.ice +673 -0
  638. data/slice/Ice/ObjectAdapterF.ice +20 -0
  639. data/slice/Ice/ObjectFactory.ice +60 -0
  640. data/slice/Ice/ObjectFactoryF.ice +20 -0
  641. data/slice/Ice/Plugin.ice +117 -0
  642. data/slice/Ice/PluginF.ice +21 -0
  643. data/slice/Ice/Process.ice +54 -0
  644. data/slice/Ice/ProcessF.ice +20 -0
  645. data/slice/Ice/Properties.ice +228 -0
  646. data/slice/Ice/PropertiesAdmin.ice +75 -0
  647. data/slice/Ice/PropertiesF.ice +21 -0
  648. data/slice/Ice/RemoteLogger.ice +232 -0
  649. data/slice/Ice/Router.ice +83 -0
  650. data/slice/Ice/RouterF.ice +20 -0
  651. data/slice/Ice/ServantLocator.ice +117 -0
  652. data/slice/Ice/ServantLocatorF.ice +20 -0
  653. data/slice/Ice/SliceChecksumDict.ice +25 -0
  654. data/slice/Ice/Version.ice +39 -0
  655. data/slice/IceBox/IceBox.ice +194 -0
  656. data/slice/IceDiscovery/IceDiscovery.ice +32 -0
  657. data/slice/IceGrid/Admin.ice +1578 -0
  658. data/slice/IceGrid/Descriptor.ice +1079 -0
  659. data/slice/IceGrid/Discovery.ice +73 -0
  660. data/slice/IceGrid/Exception.ice +383 -0
  661. data/slice/IceGrid/FileParser.ice +61 -0
  662. data/slice/IceGrid/Locator.ice +56 -0
  663. data/slice/IceGrid/Observer.ice +394 -0
  664. data/slice/IceGrid/PluginFacade.ice +316 -0
  665. data/slice/IceGrid/Query.ice +130 -0
  666. data/slice/IceGrid/Registry.ice +138 -0
  667. data/slice/IceGrid/Session.ice +124 -0
  668. data/slice/IceGrid/UserAccountMapper.ice +58 -0
  669. data/slice/IcePatch2/FileInfo.ice +49 -0
  670. data/slice/IcePatch2/FileServer.ice +129 -0
  671. data/slice/IceSSL/ConnectionInfo.ice +34 -0
  672. data/slice/IceSSL/EndpointInfo.ice +41 -0
  673. data/slice/IceStorm/IceStorm.ice +405 -0
  674. data/slice/IceStorm/Metrics.ice +71 -0
  675. metadata +737 -0
@@ -0,0 +1,67 @@
1
+ // **********************************************************************
2
+ //
3
+ // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
+ //
5
+ // This copy of Ice is licensed to you under the terms described in the
6
+ // ICE_LICENSE file included in this distribution.
7
+ //
8
+ // **********************************************************************
9
+
10
+ #ifndef ICE_PROTOCOL_PLUGIN_FACADE_H
11
+ #define ICE_PROTOCOL_PLUGIN_FACADE_H
12
+
13
+ #include <IceUtil/Config.h>
14
+ #include <IceUtil/Shared.h>
15
+ #include <Ice/ProtocolPluginFacadeF.h>
16
+ #include <Ice/CommunicatorF.h>
17
+ #include <Ice/EndpointFactoryF.h>
18
+ #include <Ice/InstanceF.h>
19
+ #include <Ice/EndpointIF.h>
20
+ #include <Ice/NetworkF.h>
21
+
22
+ namespace IceInternal
23
+ {
24
+
25
+ //
26
+ // Global function to obtain a ProtocolPluginFacade given a Communicator
27
+ // instance.
28
+ //
29
+ ICE_API ProtocolPluginFacadePtr getProtocolPluginFacade(const Ice::CommunicatorPtr&);
30
+
31
+ //
32
+ // ProtocolPluginFacade wraps the internal operations that protocol
33
+ // plug-ins may need.
34
+ //
35
+ class ICE_API ProtocolPluginFacade : public ::IceUtil::Shared
36
+ {
37
+ public:
38
+
39
+ //
40
+ // Get the Communicator instance with which this facade is
41
+ // associated.
42
+ //
43
+ Ice::CommunicatorPtr getCommunicator() const;
44
+
45
+ //
46
+ // Register an EndpointFactory.
47
+ //
48
+ void addEndpointFactory(const EndpointFactoryPtr&) const;
49
+
50
+ //
51
+ // Get an EndpointFactory.
52
+ //
53
+ EndpointFactoryPtr getEndpointFactory(Ice::Short) const;
54
+
55
+ private:
56
+
57
+ ProtocolPluginFacade(const Ice::CommunicatorPtr&);
58
+
59
+ friend ICE_API ProtocolPluginFacadePtr getProtocolPluginFacade(const Ice::CommunicatorPtr&);
60
+
61
+ InstancePtr _instance;
62
+ Ice::CommunicatorPtr _communicator;
63
+ };
64
+
65
+ }
66
+
67
+ #endif
@@ -0,0 +1,26 @@
1
+ // **********************************************************************
2
+ //
3
+ // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
+ //
5
+ // This copy of Ice is licensed to you under the terms described in the
6
+ // ICE_LICENSE file included in this distribution.
7
+ //
8
+ // **********************************************************************
9
+
10
+ #ifndef ICE_PROTOCOL_PLUGIN_FACADE_F_H
11
+ #define ICE_PROTOCOL_PLUGIN_FACADE_F_H
12
+
13
+ #include <IceUtil/Shared.h>
14
+
15
+ #include <Ice/Handle.h>
16
+
17
+ namespace IceInternal
18
+ {
19
+
20
+ class ProtocolPluginFacade;
21
+ ICE_API IceUtil::Shared* upCast(ProtocolPluginFacade*);
22
+ typedef Handle<ProtocolPluginFacade> ProtocolPluginFacadePtr;
23
+
24
+ }
25
+
26
+ #endif
@@ -0,0 +1,1810 @@
1
+ // **********************************************************************
2
+ //
3
+ // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
+ //
5
+ // This copy of Ice is licensed to you under the terms described in the
6
+ // ICE_LICENSE file included in this distribution.
7
+ //
8
+ // **********************************************************************
9
+
10
+ #include <Ice/Proxy.h>
11
+ #include <Ice/ProxyFactory.h>
12
+ #include <Ice/ReferenceFactory.h>
13
+ #include <Ice/Object.h>
14
+ #include <Ice/ObjectAdapterFactory.h>
15
+ #include <Ice/Outgoing.h>
16
+ #include <Ice/OutgoingAsync.h>
17
+ #include <Ice/RequestHandlerFactory.h>
18
+ #include <Ice/Reference.h>
19
+ #include <Ice/EndpointI.h>
20
+ #include <Ice/Instance.h>
21
+ #include <Ice/RouterInfo.h>
22
+ #include <Ice/LocatorInfo.h>
23
+ #include <Ice/BasicStream.h>
24
+ #include <Ice/LocalException.h>
25
+ #include <Ice/ConnectionI.h> // To convert from ConnectionIPtr to ConnectionPtr in ice_getConnection().
26
+ #include <Ice/Stream.h>
27
+ #include <Ice/ImplicitContextI.h>
28
+
29
+ using namespace std;
30
+ using namespace Ice;
31
+ using namespace IceInternal;
32
+
33
+ namespace
34
+ {
35
+
36
+ const string ice_ping_name = "ice_ping";
37
+ const string ice_ids_name = "ice_ids";
38
+ const string ice_id_name = "ice_id";
39
+ const string ice_isA_name = "ice_isA";
40
+ const string ice_invoke_name = "ice_invoke";
41
+ const string ice_getConnection_name = "ice_getConnection";
42
+ const string ice_flushBatchRequests_name = "ice_flushBatchRequests";
43
+
44
+ }
45
+
46
+ ::Ice::ObjectPrx
47
+ IceInternal::checkedCastImpl(const ObjectPrx& b, const string& f, const string& typeId, const Context* context)
48
+ {
49
+ if(b)
50
+ {
51
+ ObjectPrx bb = b->ice_facet(f);
52
+ try
53
+ {
54
+ if(context == 0 ? bb->ice_isA(typeId) : bb->ice_isA(typeId, *context))
55
+ {
56
+ return bb;
57
+ }
58
+ #ifndef NDEBUG
59
+ else
60
+ {
61
+ assert(typeId != "::Ice::Object");
62
+ }
63
+ #endif
64
+ }
65
+ catch(const FacetNotExistException&)
66
+ {
67
+ }
68
+ }
69
+ return 0;
70
+ }
71
+
72
+ #ifdef ICE_CPP11
73
+
74
+ IceInternal::Cpp11FnCallbackNC::Cpp11FnCallbackNC(const ::std::function<void (const ::Ice::Exception&)>& excb,
75
+ const ::std::function<void (bool)>& sentcb) :
76
+ _exception(excb),
77
+ _sent(sentcb)
78
+ {
79
+ }
80
+
81
+ IceInternal::CallbackBasePtr
82
+ IceInternal::Cpp11FnCallbackNC::verify(const ::Ice::LocalObjectPtr&)
83
+ {
84
+ return this;
85
+ }
86
+
87
+ void
88
+ IceInternal::Cpp11FnCallbackNC::sent(const ::Ice::AsyncResultPtr& result) const
89
+ {
90
+ if(_sent != nullptr)
91
+ {
92
+ _sent(result->sentSynchronously());
93
+ }
94
+ }
95
+
96
+ bool
97
+ IceInternal::Cpp11FnCallbackNC::hasSentCallback() const
98
+ {
99
+ return _sent != nullptr;
100
+ }
101
+
102
+ void
103
+ IceInternal::Cpp11FnCallbackNC::exception(const ::Ice::AsyncResultPtr&, const ::Ice::Exception& ex) const
104
+ {
105
+ if(_exception != nullptr)
106
+ {
107
+ _exception(ex);
108
+ }
109
+ }
110
+
111
+ IceInternal::Cpp11FnOnewayCallbackNC::Cpp11FnOnewayCallbackNC(const ::std::function<void ()>& cb,
112
+ const ::std::function<void (const ::Ice::Exception&)>& excb,
113
+ const ::std::function<void (bool)>& sentcb) :
114
+ Cpp11FnCallbackNC(excb, sentcb),
115
+ _cb(cb)
116
+ {
117
+ CallbackBase::checkCallback(true, cb || excb != nullptr);
118
+ }
119
+
120
+ void
121
+ IceInternal::Cpp11FnOnewayCallbackNC::completed(const ::Ice::AsyncResultPtr& result) const
122
+ {
123
+ try
124
+ {
125
+ result->getProxy()->__end(result, result->getOperation());
126
+ }
127
+ catch(const ::Ice::Exception& ex)
128
+ {
129
+ Cpp11FnCallbackNC::exception(result, ex);
130
+ return;
131
+ }
132
+ if(_cb != nullptr)
133
+ {
134
+ _cb();
135
+ }
136
+ }
137
+ #endif
138
+
139
+ bool
140
+ IceProxy::Ice::Object::operator==(const Object& r) const
141
+ {
142
+ return _reference == r._reference;
143
+ }
144
+
145
+ bool
146
+ IceProxy::Ice::Object::operator!=(const Object& r) const
147
+ {
148
+ return _reference != r._reference;
149
+ }
150
+
151
+ bool
152
+ IceProxy::Ice::Object::operator<(const Object& r) const
153
+ {
154
+ return _reference < r._reference;
155
+ }
156
+
157
+ CommunicatorPtr
158
+ IceProxy::Ice::Object::ice_getCommunicator() const
159
+ {
160
+ return _reference->getCommunicator();
161
+ }
162
+
163
+ string
164
+ IceProxy::Ice::Object::ice_toString() const
165
+ {
166
+ //
167
+ // Returns the stringified proxy. There's no need to convert the
168
+ // string to a native string: a stringified proxy only contains
169
+ // printable ASCII which is a subset of all native character sets.
170
+ //
171
+ return _reference->toString();
172
+ }
173
+
174
+
175
+ bool
176
+ IceProxy::Ice::Object::ice_isA(const string& typeId, const Context* context)
177
+ {
178
+ __checkTwowayOnly(ice_isA_name);
179
+ Outgoing __og(this, ice_isA_name, ::Ice::Nonmutating, context);
180
+ try
181
+ {
182
+ BasicStream* __os = __og.startWriteParams(DefaultFormat);
183
+ __os->write(typeId, false);
184
+ __og.endWriteParams();
185
+ }
186
+ catch(const ::Ice::LocalException& __ex)
187
+ {
188
+ __og.abort(__ex);
189
+ }
190
+ if(!__og.invoke())
191
+ {
192
+ try
193
+ {
194
+ __og.throwUserException();
195
+ }
196
+ catch(const ::Ice::UserException& __ex)
197
+ {
198
+ throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
199
+ }
200
+ }
201
+ bool __ret;
202
+ BasicStream* __is = __og.startReadParams();
203
+ __is->read(__ret);
204
+ __og.endReadParams();
205
+ return __ret;
206
+ }
207
+
208
+ Ice::AsyncResultPtr
209
+ IceProxy::Ice::Object::begin_ice_isA(const string& typeId,
210
+ const Context* ctx,
211
+ const ::IceInternal::CallbackBasePtr& del,
212
+ const ::Ice::LocalObjectPtr& cookie)
213
+ {
214
+ __checkAsyncTwowayOnly(ice_isA_name);
215
+ OutgoingAsyncPtr __result = new OutgoingAsync(this, ice_isA_name, del, cookie);
216
+ try
217
+ {
218
+ __result->prepare(ice_isA_name, Nonmutating, ctx);
219
+ IceInternal::BasicStream* __os = __result->startWriteParams(DefaultFormat);
220
+ __os->write(typeId);
221
+ __result->endWriteParams();
222
+ __result->invoke();
223
+ }
224
+ catch(const Exception& __ex)
225
+ {
226
+ __result->abort(__ex);
227
+ }
228
+ return __result;
229
+ }
230
+
231
+ #ifdef ICE_CPP11
232
+
233
+ Ice::AsyncResultPtr
234
+ IceProxy::Ice::Object::__begin_ice_isA(const ::std::string& typeId,
235
+ const ::Ice::Context* ctx,
236
+ const ::IceInternal::Function<void (bool)>& response,
237
+ const ::IceInternal::Function<void (const ::Ice::Exception&)>& exception,
238
+ const ::IceInternal::Function<void (bool)>& sent)
239
+ {
240
+ class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
241
+ {
242
+ public:
243
+
244
+ Cpp11CB(const ::std::function<void (bool)>& responseFunc,
245
+ const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc,
246
+ const ::std::function<void (bool)>& sentFunc) :
247
+ ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
248
+ _response(responseFunc)
249
+ {
250
+ CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
251
+ }
252
+
253
+ virtual void completed(const ::Ice::AsyncResultPtr& __result) const
254
+ {
255
+ ::Ice::ObjectPrx __proxy = ::Ice::ObjectPrx::uncheckedCast(__result->getProxy());
256
+ bool __ret;
257
+ try
258
+ {
259
+ __ret = __proxy->end_ice_isA(__result);
260
+ }
261
+ catch(const ::Ice::Exception& ex)
262
+ {
263
+ Cpp11FnCallbackNC::exception(__result, ex);
264
+ return;
265
+ }
266
+ if(_response != nullptr)
267
+ {
268
+ _response(__ret);
269
+ }
270
+ }
271
+
272
+ private:
273
+
274
+ ::std::function<void (bool)> _response;
275
+ };
276
+
277
+ return begin_ice_isA(typeId, ctx, new Cpp11CB(response, exception, sent), 0);
278
+ }
279
+
280
+ Ice::AsyncResultPtr
281
+ IceProxy::Ice::Object::__begin_ice_id(const ::Ice::Context* ctx,
282
+ const ::IceInternal::Function<void (const ::std::string&)>& response,
283
+ const ::IceInternal::Function<void (const ::Ice::Exception&)>& exception,
284
+ const ::IceInternal::Function<void (bool)>& sent)
285
+ {
286
+ class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
287
+ {
288
+ public:
289
+
290
+ Cpp11CB(const ::std::function<void (const ::std::string&)>& responseFunc,
291
+ const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc,
292
+ const ::std::function<void (bool)>& sentFunc) :
293
+ ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
294
+ _response(responseFunc)
295
+ {
296
+ CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
297
+ }
298
+
299
+ virtual void completed(const ::Ice::AsyncResultPtr& __result) const
300
+ {
301
+ ::Ice::ObjectPrx __proxy = ::Ice::ObjectPrx::uncheckedCast(__result->getProxy());
302
+ ::std::string __ret;
303
+ try
304
+ {
305
+ __ret = __proxy->end_ice_id(__result);
306
+ }
307
+ catch(const ::Ice::Exception& ex)
308
+ {
309
+ Cpp11FnCallbackNC::exception(__result, ex);
310
+ return;
311
+ }
312
+ if(_response != nullptr)
313
+ {
314
+ _response(__ret);
315
+ }
316
+ }
317
+
318
+ private:
319
+
320
+ ::std::function<void (const ::std::string&)> _response;
321
+ };
322
+ return begin_ice_id(ctx, new Cpp11CB(response, exception, sent), 0);
323
+ }
324
+
325
+ Ice::AsyncResultPtr
326
+ IceProxy::Ice::Object::__begin_ice_ids(
327
+ const ::Ice::Context* ctx,
328
+ const ::IceInternal::Function<void (const ::std::vector< ::std::string>&)>& response,
329
+ const ::IceInternal::Function<void (const ::Ice::Exception&)>& exception,
330
+ const ::IceInternal::Function<void (bool)>& sent)
331
+ {
332
+ class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
333
+ {
334
+ public:
335
+
336
+ Cpp11CB(const ::std::function<void (const ::std::vector< ::std::string>&)>& responseFunc,
337
+ const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc,
338
+ const ::std::function<void (bool)>& sentFunc) :
339
+ ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
340
+ _response(responseFunc)
341
+ {
342
+ CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
343
+ }
344
+
345
+ virtual void completed(const ::Ice::AsyncResultPtr& __result) const
346
+ {
347
+ ::Ice::ObjectPrx __proxy = ::Ice::ObjectPrx::uncheckedCast(__result->getProxy());
348
+ ::std::vector< ::std::string> __ret;
349
+ try
350
+ {
351
+ __ret = __proxy->end_ice_ids(__result);
352
+ }
353
+ catch(const ::Ice::Exception& ex)
354
+ {
355
+ Cpp11FnCallbackNC::exception(__result, ex);
356
+ return;
357
+ }
358
+ if(_response != nullptr)
359
+ {
360
+ _response(__ret);
361
+ }
362
+ }
363
+
364
+ private:
365
+
366
+ ::std::function<void (const ::std::vector< ::std::string>&)> _response;
367
+ };
368
+ return begin_ice_ids(ctx, new Cpp11CB(response, exception, sent), 0);
369
+ }
370
+
371
+ Ice::AsyncResultPtr
372
+ IceProxy::Ice::Object::__begin_ice_invoke(
373
+ const ::std::string& operation,
374
+ ::Ice::OperationMode mode,
375
+ const ::std::vector< ::Ice::Byte>& inParams,
376
+ const ::Ice::Context* ctx,
377
+ const ::IceInternal::Function<void (bool, const ::std::vector< ::Ice::Byte>&)>& response,
378
+ const ::IceInternal::Function<void (const ::Ice::Exception&)>& exception,
379
+ const ::IceInternal::Function<void (bool)>& sent)
380
+ {
381
+ class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
382
+ {
383
+ public:
384
+
385
+ Cpp11CB(const ::std::function<void (bool, const ::std::vector< ::Ice::Byte>&)>& responseFunc,
386
+ const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc,
387
+ const ::std::function<void (bool)>& sentFunc) :
388
+ ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
389
+ _response(responseFunc)
390
+ {
391
+ CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
392
+ }
393
+
394
+ virtual void completed(const ::Ice::AsyncResultPtr& __result) const
395
+ {
396
+ ::Ice::ObjectPrx __proxy = ::Ice::ObjectPrx::uncheckedCast(__result->getProxy());
397
+ bool __ret;
398
+ ::std::vector< ::Ice::Byte> p1;
399
+ try
400
+ {
401
+ __ret = __proxy->end_ice_invoke(p1, __result);
402
+ }
403
+ catch(const ::Ice::Exception& ex)
404
+ {
405
+ Cpp11FnCallbackNC::exception(__result, ex);
406
+ return;
407
+ }
408
+ if(_response != nullptr)
409
+ {
410
+ _response(__ret, p1);
411
+ }
412
+ }
413
+
414
+ private:
415
+
416
+ ::std::function<void (bool, const ::std::vector< ::Ice::Byte>&)> _response;
417
+ };
418
+
419
+ return begin_ice_invoke(operation, mode, inParams, ctx, new Cpp11CB(response, exception, sent), 0);
420
+ }
421
+
422
+ Ice::AsyncResultPtr
423
+ IceProxy::Ice::Object::__begin_ice_invoke(
424
+ const ::std::string& operation,
425
+ ::Ice::OperationMode mode,
426
+ const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
427
+ const ::Ice::Context* ctx,
428
+ const ::IceInternal::Function<void (bool, const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&)>& response,
429
+ const ::IceInternal::Function<void (const ::Ice::Exception&)>& exception,
430
+ const ::IceInternal::Function<void (bool)>& sent)
431
+ {
432
+ class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
433
+ {
434
+ public:
435
+
436
+ Cpp11CB(const ::std::function<void (bool, const ::std::pair<const ::Ice::Byte*,
437
+ const ::Ice::Byte*>&)>& responseFunc,
438
+ const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc,
439
+ const ::std::function<void (bool)>& sentFunc) :
440
+ ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, sentFunc),
441
+ _response(responseFunc)
442
+ {
443
+ CallbackBase::checkCallback(true, _response || _exception != nullptr);
444
+ }
445
+
446
+ virtual void completed(const ::Ice::AsyncResultPtr& __result) const
447
+ {
448
+ bool __ret;
449
+ ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*> p1;
450
+ try
451
+ {
452
+ __ret = __result->getProxy()->___end_ice_invoke(p1, __result);
453
+ }
454
+ catch(const ::Ice::Exception& ex)
455
+ {
456
+ Cpp11FnCallbackNC::exception(__result, ex);
457
+ return;
458
+ }
459
+ if(_response != nullptr)
460
+ {
461
+ _response(__ret, p1);
462
+ }
463
+ }
464
+
465
+ private:
466
+
467
+ ::std::function<void (bool, const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&)> _response;
468
+ };
469
+ return begin_ice_invoke(operation, mode, inParams, ctx, new Cpp11CB(response, exception, sent), 0);
470
+ }
471
+
472
+ Ice::AsyncResultPtr
473
+ IceProxy::Ice::Object::begin_ice_getConnection(
474
+ const ::IceInternal::Function<void (const ::Ice::ConnectionPtr&)>& response,
475
+ const ::IceInternal::Function<void (const ::Ice::Exception&)>& exception)
476
+ {
477
+ class Cpp11CB : public ::IceInternal::Cpp11FnCallbackNC
478
+ {
479
+ public:
480
+
481
+ Cpp11CB(const ::std::function<void (const ::Ice::ConnectionPtr&)>& responseFunc,
482
+ const ::std::function<void (const ::Ice::Exception&)>& exceptionFunc) :
483
+ ::IceInternal::Cpp11FnCallbackNC(exceptionFunc, nullptr),
484
+ _response(responseFunc)
485
+ {
486
+ CallbackBase::checkCallback(true, responseFunc || exceptionFunc != nullptr);
487
+ }
488
+
489
+ virtual void completed(const ::Ice::AsyncResultPtr& __result) const
490
+ {
491
+ ::Ice::ObjectPrx __proxy = ::Ice::ObjectPrx::uncheckedCast(__result->getProxy());
492
+ ::Ice::ConnectionPtr __ret;
493
+ try
494
+ {
495
+ __ret = __proxy->end_ice_getConnection(__result);
496
+ }
497
+ catch(const ::Ice::Exception& ex)
498
+ {
499
+ Cpp11FnCallbackNC::exception(__result, ex);
500
+ return;
501
+ }
502
+ if(_response != nullptr)
503
+ {
504
+ _response(__ret);
505
+ }
506
+ }
507
+
508
+ private:
509
+
510
+ ::std::function<void (const ::Ice::ConnectionPtr&)> _response;
511
+ };
512
+ return begin_ice_getConnectionInternal(new Cpp11CB(response, exception), 0);
513
+ }
514
+
515
+ #endif
516
+
517
+
518
+ bool
519
+ IceProxy::Ice::Object::end_ice_isA(const AsyncResultPtr& __result)
520
+ {
521
+ AsyncResult::__check(__result, this, ice_isA_name);
522
+ bool __ok = __result->__wait();
523
+ if(!__ok)
524
+ {
525
+ try
526
+ {
527
+ __result->__throwUserException();
528
+ }
529
+ catch(const UserException& __ex)
530
+ {
531
+ throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
532
+ }
533
+ }
534
+ bool __ret;
535
+ IceInternal::BasicStream* __is = __result->__startReadParams();
536
+ __is->read(__ret);
537
+ __result->__endReadParams();
538
+ return __ret;
539
+ }
540
+
541
+ void
542
+ IceProxy::Ice::Object::ice_ping(const Context* context)
543
+ {
544
+ Outgoing __og(this, ice_ping_name, ::Ice::Nonmutating, context);
545
+ __og.writeEmptyParams();
546
+ bool __ok = __og.invoke();
547
+ if(__og.hasResponse())
548
+ {
549
+ if(!__ok)
550
+ {
551
+ try
552
+ {
553
+ __og.throwUserException();
554
+ }
555
+ catch(const ::Ice::UserException& __ex)
556
+ {
557
+ throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
558
+ }
559
+ }
560
+ __og.readEmptyParams();
561
+ }
562
+ }
563
+
564
+ AsyncResultPtr
565
+ IceProxy::Ice::Object::begin_ice_ping(const Context* ctx,
566
+ const ::IceInternal::CallbackBasePtr& del,
567
+ const ::Ice::LocalObjectPtr& cookie)
568
+ {
569
+ OutgoingAsyncPtr __result = new OutgoingAsync(this, ice_ping_name, del, cookie);
570
+ try
571
+ {
572
+ __result->prepare(ice_ping_name, Nonmutating, ctx);
573
+ __result->writeEmptyParams();
574
+ __result->invoke();
575
+ }
576
+ catch(const Exception& __ex)
577
+ {
578
+ __result->abort(__ex);
579
+ }
580
+ return __result;
581
+ }
582
+
583
+ void
584
+ IceProxy::Ice::Object::end_ice_ping(const AsyncResultPtr& __result)
585
+ {
586
+ __end(__result, ice_ping_name);
587
+ }
588
+
589
+ vector<string>
590
+ IceProxy::Ice::Object::ice_ids(const Context* context)
591
+ {
592
+ __checkTwowayOnly(ice_ids_name);
593
+ Outgoing __og(this, ice_ids_name, ::Ice::Nonmutating, context);
594
+ __og.writeEmptyParams();
595
+ if(!__og.invoke())
596
+ {
597
+ try
598
+ {
599
+ __og.throwUserException();
600
+ }
601
+ catch(const ::Ice::UserException& __ex)
602
+ {
603
+ throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
604
+ }
605
+ }
606
+ vector<string> __ret;
607
+ BasicStream* __is = __og.startReadParams();
608
+ __is->read(__ret, false);
609
+ __og.endReadParams();
610
+ return __ret;
611
+ }
612
+
613
+ string
614
+ IceProxy::Ice::Object::ice_id(const Context* context)
615
+ {
616
+ __checkTwowayOnly(ice_id_name);
617
+ Outgoing __og(this, ice_id_name, ::Ice::Nonmutating, context);
618
+ __og.writeEmptyParams();
619
+ if(!__og.invoke())
620
+ {
621
+ try
622
+ {
623
+ __og.throwUserException();
624
+ }
625
+ catch(const ::Ice::UserException& __ex)
626
+ {
627
+ throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
628
+ }
629
+ }
630
+ string __ret;
631
+ BasicStream* __is = __og.startReadParams();
632
+ __is->read(__ret, false);
633
+ __og.endReadParams();
634
+ return __ret;
635
+ }
636
+
637
+ AsyncResultPtr
638
+ IceProxy::Ice::Object::begin_ice_ids(const Context* ctx,
639
+ const ::IceInternal::CallbackBasePtr& del,
640
+ const ::Ice::LocalObjectPtr& cookie)
641
+ {
642
+ __checkAsyncTwowayOnly(ice_ids_name);
643
+ OutgoingAsyncPtr __result = new OutgoingAsync(this, ice_ids_name, del, cookie);
644
+ try
645
+ {
646
+ __result->prepare(ice_ids_name, Nonmutating, ctx);
647
+ __result->writeEmptyParams();
648
+ __result->invoke();
649
+ }
650
+ catch(const Exception& __ex)
651
+ {
652
+ __result->abort(__ex);
653
+ }
654
+ return __result;
655
+ }
656
+
657
+ vector<string>
658
+ IceProxy::Ice::Object::end_ice_ids(const AsyncResultPtr& __result)
659
+ {
660
+ AsyncResult::__check(__result, this, ice_ids_name);
661
+ bool __ok = __result->__wait();
662
+ if(!__ok)
663
+ {
664
+ try
665
+ {
666
+ __result->__throwUserException();
667
+ }
668
+ catch(const UserException& __ex)
669
+ {
670
+ throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
671
+ }
672
+ }
673
+ vector<string> __ret;
674
+ IceInternal::BasicStream* __is = __result->__startReadParams();
675
+ __is->read(__ret);
676
+ __result->__endReadParams();
677
+ return __ret;
678
+ }
679
+
680
+ AsyncResultPtr
681
+ IceProxy::Ice::Object::begin_ice_id(const Context* ctx,
682
+ const ::IceInternal::CallbackBasePtr& del,
683
+ const ::Ice::LocalObjectPtr& cookie)
684
+ {
685
+ __checkAsyncTwowayOnly(ice_id_name);
686
+ OutgoingAsyncPtr __result = new OutgoingAsync(this, ice_id_name, del, cookie);
687
+ try
688
+ {
689
+ __result->prepare(ice_id_name, Nonmutating, ctx);
690
+ __result->writeEmptyParams();
691
+ __result->invoke();
692
+ }
693
+ catch(const Exception& __ex)
694
+ {
695
+ __result->abort(__ex);
696
+ }
697
+ return __result;
698
+ }
699
+
700
+ string
701
+ IceProxy::Ice::Object::end_ice_id(const AsyncResultPtr& __result)
702
+ {
703
+ AsyncResult::__check(__result, this, ice_id_name);
704
+ bool __ok = __result->__wait();
705
+ if(!__ok)
706
+ {
707
+ try
708
+ {
709
+ __result->__throwUserException();
710
+ }
711
+ catch(const UserException& __ex)
712
+ {
713
+ throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
714
+ }
715
+ }
716
+ string __ret;
717
+ IceInternal::BasicStream* __is = __result->__startReadParams();
718
+ __is->read(__ret);
719
+ __result->__endReadParams();
720
+ return __ret;
721
+ }
722
+
723
+ bool
724
+ IceProxy::Ice::Object::ice_invoke(const string& operation,
725
+ OperationMode mode,
726
+ const vector<Byte>& inEncaps,
727
+ vector<Byte>& outEncaps,
728
+ const Context* context)
729
+ {
730
+ pair<const Byte*, const Byte*> inPair;
731
+ if(inEncaps.empty())
732
+ {
733
+ inPair.first = inPair.second = 0;
734
+ }
735
+ else
736
+ {
737
+ inPair.first = &inEncaps[0];
738
+ inPair.second = inPair.first + inEncaps.size();
739
+ }
740
+ return ice_invoke(operation, mode, inPair, outEncaps, context);
741
+ }
742
+
743
+ AsyncResultPtr
744
+ IceProxy::Ice::Object::begin_ice_invoke(const string& operation,
745
+ OperationMode mode,
746
+ const vector<Byte>& inEncaps,
747
+ const Context* ctx,
748
+ const ::IceInternal::CallbackBasePtr& del,
749
+ const ::Ice::LocalObjectPtr& cookie)
750
+ {
751
+ pair<const Byte*, const Byte*> inPair;
752
+ if(inEncaps.empty())
753
+ {
754
+ inPair.first = inPair.second = 0;
755
+ }
756
+ else
757
+ {
758
+ inPair.first = &inEncaps[0];
759
+ inPair.second = inPair.first + inEncaps.size();
760
+ }
761
+ return begin_ice_invoke(operation, mode, inPair, ctx, del, cookie);
762
+ }
763
+
764
+ bool
765
+ IceProxy::Ice::Object::end_ice_invoke(vector<Byte>& outEncaps, const AsyncResultPtr& __result)
766
+ {
767
+ AsyncResult::__check(__result, this, ice_invoke_name);
768
+ bool ok = __result->__wait();
769
+ if(_reference->getMode() == Reference::ModeTwoway)
770
+ {
771
+ const Byte* v;
772
+ Int sz;
773
+ __result->__readParamEncaps(v, sz);
774
+ vector<Byte>(v, v + sz).swap(outEncaps);
775
+ }
776
+ return ok;
777
+ }
778
+
779
+ bool
780
+ IceProxy::Ice::Object::ice_invoke(const string& operation,
781
+ OperationMode mode,
782
+ const pair<const Byte*, const Byte*>& inEncaps,
783
+ vector<Byte>& outEncaps,
784
+ const Context* context)
785
+ {
786
+ Outgoing __og(this, operation, mode, context);
787
+ try
788
+ {
789
+ __og.writeParamEncaps(inEncaps.first, static_cast<Int>(inEncaps.second - inEncaps.first));
790
+ }
791
+ catch(const ::Ice::LocalException& __ex)
792
+ {
793
+ __og.abort(__ex);
794
+ }
795
+ bool ok = __og.invoke();
796
+ if(_reference->getMode() == Reference::ModeTwoway)
797
+ {
798
+ const Byte* v;
799
+ Int sz;
800
+ __og.readParamEncaps(v, sz);
801
+ vector<Byte>(v, v + sz).swap(outEncaps);
802
+ }
803
+ return ok;
804
+ }
805
+
806
+ AsyncResultPtr
807
+ IceProxy::Ice::Object::begin_ice_invoke(const string& operation,
808
+ OperationMode mode,
809
+ const pair<const Byte*, const Byte*>& inEncaps,
810
+ const Context* ctx,
811
+ const ::IceInternal::CallbackBasePtr& del,
812
+ const ::Ice::LocalObjectPtr& cookie)
813
+ {
814
+ OutgoingAsyncPtr __result = new OutgoingAsync(this, ice_invoke_name, del, cookie);
815
+ try
816
+ {
817
+ __result->prepare(operation, mode, ctx);
818
+ __result->writeParamEncaps(inEncaps.first, static_cast<Int>(inEncaps.second - inEncaps.first));
819
+ __result->invoke();
820
+ }
821
+ catch(const Exception& __ex)
822
+ {
823
+ __result->abort(__ex);
824
+ }
825
+ return __result;
826
+ }
827
+
828
+ bool
829
+ IceProxy::Ice::Object::___end_ice_invoke(pair<const Byte*, const Byte*>& outEncaps, const AsyncResultPtr& __result)
830
+ {
831
+ AsyncResult::__check(__result, this, ice_invoke_name);
832
+ bool ok = __result->__wait();
833
+ if(_reference->getMode() == Reference::ModeTwoway)
834
+ {
835
+ Int sz;
836
+ __result->__readParamEncaps(outEncaps.first, sz);
837
+ outEncaps.second = outEncaps.first + sz;
838
+ }
839
+ return ok;
840
+ }
841
+
842
+ Identity
843
+ IceProxy::Ice::Object::ice_getIdentity() const
844
+ {
845
+ return _reference->getIdentity();
846
+ }
847
+
848
+ ObjectPrx
849
+ IceProxy::Ice::Object::ice_identity(const Identity& newIdentity) const
850
+ {
851
+ if(newIdentity.name.empty())
852
+ {
853
+ throw IllegalIdentityException(__FILE__, __LINE__);
854
+ }
855
+ if(newIdentity == _reference->getIdentity())
856
+ {
857
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
858
+ }
859
+ else
860
+ {
861
+ ObjectPrx proxy = new Object;
862
+ proxy->setup(_reference->changeIdentity(newIdentity));
863
+ return proxy;
864
+ }
865
+ }
866
+
867
+ Context
868
+ IceProxy::Ice::Object::ice_getContext() const
869
+ {
870
+ return _reference->getContext()->getValue();
871
+ }
872
+
873
+ ObjectPrx
874
+ IceProxy::Ice::Object::ice_context(const Context& newContext) const
875
+ {
876
+ ObjectPrx proxy = __newInstance();
877
+ proxy->setup(_reference->changeContext(newContext));
878
+ return proxy;
879
+ }
880
+
881
+ const string&
882
+ IceProxy::Ice::Object::ice_getFacet() const
883
+ {
884
+ return _reference->getFacet();
885
+ }
886
+
887
+ ObjectPrx
888
+ IceProxy::Ice::Object::ice_facet(const string& newFacet) const
889
+ {
890
+ if(newFacet == _reference->getFacet())
891
+ {
892
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
893
+ }
894
+ else
895
+ {
896
+ ObjectPrx proxy = new Object;
897
+ proxy->setup(_reference->changeFacet(newFacet));
898
+ return proxy;
899
+ }
900
+ }
901
+
902
+ string
903
+ IceProxy::Ice::Object::ice_getAdapterId() const
904
+ {
905
+ return _reference->getAdapterId();
906
+ }
907
+
908
+ ObjectPrx
909
+ IceProxy::Ice::Object::ice_adapterId(const string& newAdapterId) const
910
+ {
911
+ if(newAdapterId == _reference->getAdapterId())
912
+ {
913
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
914
+ }
915
+ else
916
+ {
917
+ ObjectPrx proxy = __newInstance();
918
+ proxy->setup(_reference->changeAdapterId(newAdapterId));
919
+ return proxy;
920
+ }
921
+ }
922
+
923
+ EndpointSeq
924
+ IceProxy::Ice::Object::ice_getEndpoints() const
925
+ {
926
+ vector<EndpointIPtr> endpoints = _reference->getEndpoints();
927
+ EndpointSeq retSeq;
928
+ for(vector<EndpointIPtr>::const_iterator p = endpoints.begin(); p != endpoints.end(); ++p)
929
+ {
930
+ retSeq.push_back(EndpointPtr::dynamicCast(*p));
931
+ }
932
+ return retSeq;
933
+ }
934
+
935
+ ObjectPrx
936
+ IceProxy::Ice::Object::ice_endpoints(const EndpointSeq& newEndpoints) const
937
+ {
938
+ vector<EndpointIPtr> endpoints;
939
+ for(EndpointSeq::const_iterator p = newEndpoints.begin(); p != newEndpoints.end(); ++p)
940
+ {
941
+ endpoints.push_back(EndpointIPtr::dynamicCast(*p));
942
+ }
943
+
944
+ if(endpoints == _reference->getEndpoints())
945
+ {
946
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
947
+ }
948
+ else
949
+ {
950
+ ObjectPrx proxy = __newInstance();
951
+ proxy->setup(_reference->changeEndpoints(endpoints));
952
+ return proxy;
953
+ }
954
+ }
955
+
956
+ Int
957
+ IceProxy::Ice::Object::ice_getLocatorCacheTimeout() const
958
+ {
959
+ return _reference->getLocatorCacheTimeout();
960
+ }
961
+
962
+ ObjectPrx
963
+ IceProxy::Ice::Object::ice_locatorCacheTimeout(Int newTimeout) const
964
+ {
965
+ if(newTimeout < -1)
966
+ {
967
+ ostringstream s;
968
+ s << "invalid value passed to ice_locatorCacheTimeout: " << newTimeout;
969
+ throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, s.str());
970
+ }
971
+ if(newTimeout == _reference->getLocatorCacheTimeout())
972
+ {
973
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
974
+ }
975
+ else
976
+ {
977
+ ObjectPrx proxy = __newInstance();
978
+ proxy->setup(_reference->changeLocatorCacheTimeout(newTimeout));
979
+ return proxy;
980
+ }
981
+ }
982
+
983
+ bool
984
+ IceProxy::Ice::Object::ice_isConnectionCached() const
985
+ {
986
+ return _reference->getCacheConnection();
987
+ }
988
+
989
+ ObjectPrx
990
+ IceProxy::Ice::Object::ice_connectionCached(bool newCache) const
991
+ {
992
+ if(newCache == _reference->getCacheConnection())
993
+ {
994
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
995
+ }
996
+ else
997
+ {
998
+ ObjectPrx proxy = __newInstance();
999
+ proxy->setup(_reference->changeCacheConnection(newCache));
1000
+ return proxy;
1001
+ }
1002
+ }
1003
+
1004
+ EndpointSelectionType
1005
+ IceProxy::Ice::Object::ice_getEndpointSelection() const
1006
+ {
1007
+ return _reference->getEndpointSelection();
1008
+ }
1009
+
1010
+ ObjectPrx
1011
+ IceProxy::Ice::Object::ice_endpointSelection(EndpointSelectionType newType) const
1012
+ {
1013
+ if(newType == _reference->getEndpointSelection())
1014
+ {
1015
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1016
+ }
1017
+ else
1018
+ {
1019
+ ObjectPrx proxy = __newInstance();
1020
+ proxy->setup(_reference->changeEndpointSelection(newType));
1021
+ return proxy;
1022
+ }
1023
+ }
1024
+
1025
+ bool
1026
+ IceProxy::Ice::Object::ice_isSecure() const
1027
+ {
1028
+ return _reference->getSecure();
1029
+ }
1030
+
1031
+ ObjectPrx
1032
+ IceProxy::Ice::Object::ice_secure(bool b) const
1033
+ {
1034
+ if(b == _reference->getSecure())
1035
+ {
1036
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1037
+ }
1038
+ else
1039
+ {
1040
+ ObjectPrx proxy = __newInstance();
1041
+ proxy->setup(_reference->changeSecure(b));
1042
+ return proxy;
1043
+ }
1044
+ }
1045
+
1046
+ ::Ice::EncodingVersion
1047
+ IceProxy::Ice::Object::ice_getEncodingVersion() const
1048
+ {
1049
+ return _reference->getEncoding();
1050
+ }
1051
+
1052
+ ObjectPrx
1053
+ IceProxy::Ice::Object::ice_encodingVersion(const ::Ice::EncodingVersion& encoding) const
1054
+ {
1055
+ if(encoding == _reference->getEncoding())
1056
+ {
1057
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1058
+ }
1059
+ else
1060
+ {
1061
+ ObjectPrx proxy = __newInstance();
1062
+ proxy->setup(_reference->changeEncoding(encoding));
1063
+ return proxy;
1064
+ }
1065
+ }
1066
+
1067
+ bool
1068
+ IceProxy::Ice::Object::ice_isPreferSecure() const
1069
+ {
1070
+ return _reference->getPreferSecure();
1071
+ }
1072
+
1073
+ ObjectPrx
1074
+ IceProxy::Ice::Object::ice_preferSecure(bool b) const
1075
+ {
1076
+ if(b == _reference->getPreferSecure())
1077
+ {
1078
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1079
+ }
1080
+ else
1081
+ {
1082
+ ObjectPrx proxy = __newInstance();
1083
+ proxy->setup(_reference->changePreferSecure(b));
1084
+ return proxy;
1085
+ }
1086
+ }
1087
+
1088
+ RouterPrx
1089
+ IceProxy::Ice::Object::ice_getRouter() const
1090
+ {
1091
+ RouterInfoPtr ri = _reference->getRouterInfo();
1092
+ return ri ? ri->getRouter() : RouterPrx();
1093
+ }
1094
+
1095
+ ObjectPrx
1096
+ IceProxy::Ice::Object::ice_router(const RouterPrx& router) const
1097
+ {
1098
+ ReferencePtr ref = _reference->changeRouter(router);
1099
+ if(ref == _reference)
1100
+ {
1101
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1102
+ }
1103
+ else
1104
+ {
1105
+ ObjectPrx proxy = __newInstance();
1106
+ proxy->setup(ref);
1107
+ return proxy;
1108
+ }
1109
+ }
1110
+
1111
+ LocatorPrx
1112
+ IceProxy::Ice::Object::ice_getLocator() const
1113
+ {
1114
+ LocatorInfoPtr ri = _reference->getLocatorInfo();
1115
+ return ri ? ri->getLocator() : LocatorPrx();
1116
+ }
1117
+
1118
+ ObjectPrx
1119
+ IceProxy::Ice::Object::ice_locator(const LocatorPrx& locator) const
1120
+ {
1121
+ ReferencePtr ref = _reference->changeLocator(locator);
1122
+ if(ref == _reference)
1123
+ {
1124
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1125
+ }
1126
+ else
1127
+ {
1128
+ ObjectPrx proxy = __newInstance();
1129
+ proxy->setup(ref);
1130
+ return proxy;
1131
+ }
1132
+ }
1133
+
1134
+ bool
1135
+ IceProxy::Ice::Object::ice_isCollocationOptimized() const
1136
+ {
1137
+ return _reference->getCollocationOptimized();
1138
+ }
1139
+
1140
+ ObjectPrx
1141
+ IceProxy::Ice::Object::ice_collocationOptimized(bool b) const
1142
+ {
1143
+ if(b == _reference->getCollocationOptimized())
1144
+ {
1145
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1146
+ }
1147
+ else
1148
+ {
1149
+ ObjectPrx proxy = __newInstance();
1150
+ proxy->setup(_reference->changeCollocationOptimized(b));
1151
+ return proxy;
1152
+ }
1153
+ }
1154
+
1155
+ Int
1156
+ IceProxy::Ice::Object::ice_getInvocationTimeout() const
1157
+ {
1158
+ return _reference->getInvocationTimeout();
1159
+ }
1160
+
1161
+ ObjectPrx
1162
+ IceProxy::Ice::Object::ice_invocationTimeout(Int newTimeout) const
1163
+ {
1164
+ if(newTimeout < 1 && newTimeout != -1 && newTimeout != -2)
1165
+ {
1166
+ ostringstream s;
1167
+ s << "invalid value passed to ice_invocationTimeout: " << newTimeout;
1168
+ throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, s.str());
1169
+ }
1170
+ if(newTimeout == _reference->getInvocationTimeout())
1171
+ {
1172
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1173
+ }
1174
+ else
1175
+ {
1176
+ ObjectPrx proxy = __newInstance();
1177
+ proxy->setup(_reference->changeInvocationTimeout(newTimeout));
1178
+ return proxy;
1179
+ }
1180
+ }
1181
+
1182
+ ObjectPrx
1183
+ IceProxy::Ice::Object::ice_twoway() const
1184
+ {
1185
+ if(_reference->getMode() == Reference::ModeTwoway)
1186
+ {
1187
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1188
+ }
1189
+ else
1190
+ {
1191
+ ObjectPrx proxy = __newInstance();
1192
+ proxy->setup(_reference->changeMode(Reference::ModeTwoway));
1193
+ return proxy;
1194
+ }
1195
+ }
1196
+
1197
+ bool
1198
+ IceProxy::Ice::Object::ice_isTwoway() const
1199
+ {
1200
+ return _reference->getMode() == Reference::ModeTwoway;
1201
+ }
1202
+
1203
+ ObjectPrx
1204
+ IceProxy::Ice::Object::ice_oneway() const
1205
+ {
1206
+ if(_reference->getMode() == Reference::ModeOneway)
1207
+ {
1208
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1209
+ }
1210
+ else
1211
+ {
1212
+ ObjectPrx proxy = __newInstance();
1213
+ proxy->setup(_reference->changeMode(Reference::ModeOneway));
1214
+ return proxy;
1215
+ }
1216
+ }
1217
+
1218
+ bool
1219
+ IceProxy::Ice::Object::ice_isOneway() const
1220
+ {
1221
+ return _reference->getMode() == Reference::ModeOneway;
1222
+ }
1223
+
1224
+ ObjectPrx
1225
+ IceProxy::Ice::Object::ice_batchOneway() const
1226
+ {
1227
+ if(_reference->getMode() == Reference::ModeBatchOneway)
1228
+ {
1229
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1230
+ }
1231
+ else
1232
+ {
1233
+ ObjectPrx proxy = __newInstance();
1234
+ proxy->setup(_reference->changeMode(Reference::ModeBatchOneway));
1235
+ return proxy;
1236
+ }
1237
+ }
1238
+
1239
+ bool
1240
+ IceProxy::Ice::Object::ice_isBatchOneway() const
1241
+ {
1242
+ return _reference->getMode() == Reference::ModeBatchOneway;
1243
+ }
1244
+
1245
+ ObjectPrx
1246
+ IceProxy::Ice::Object::ice_datagram() const
1247
+ {
1248
+ if(_reference->getMode() == Reference::ModeDatagram)
1249
+ {
1250
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1251
+ }
1252
+ else
1253
+ {
1254
+ ObjectPrx proxy = __newInstance();
1255
+ proxy->setup(_reference->changeMode(Reference::ModeDatagram));
1256
+ return proxy;
1257
+ }
1258
+ }
1259
+
1260
+ bool
1261
+ IceProxy::Ice::Object::ice_isDatagram() const
1262
+ {
1263
+ return _reference->getMode() == Reference::ModeDatagram;
1264
+ }
1265
+
1266
+ ObjectPrx
1267
+ IceProxy::Ice::Object::ice_batchDatagram() const
1268
+ {
1269
+ if(_reference->getMode() == Reference::ModeBatchDatagram)
1270
+ {
1271
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1272
+ }
1273
+ else
1274
+ {
1275
+ ObjectPrx proxy = __newInstance();
1276
+ proxy->setup(_reference->changeMode(Reference::ModeBatchDatagram));
1277
+ return proxy;
1278
+ }
1279
+ }
1280
+
1281
+ bool
1282
+ IceProxy::Ice::Object::ice_isBatchDatagram() const
1283
+ {
1284
+ return _reference->getMode() == Reference::ModeBatchDatagram;
1285
+ }
1286
+
1287
+ ObjectPrx
1288
+ IceProxy::Ice::Object::ice_compress(bool b) const
1289
+ {
1290
+ ReferencePtr ref = _reference->changeCompress(b);
1291
+ if(ref == _reference)
1292
+ {
1293
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1294
+ }
1295
+ else
1296
+ {
1297
+ ObjectPrx proxy = __newInstance();
1298
+ proxy->setup(ref);
1299
+ return proxy;
1300
+ }
1301
+ }
1302
+
1303
+ ObjectPrx
1304
+ IceProxy::Ice::Object::ice_timeout(int t) const
1305
+ {
1306
+ if(t < 1 && t != -1)
1307
+ {
1308
+ ostringstream s;
1309
+ s << "invalid value passed to ice_timeout: " << t;
1310
+ throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, s.str());
1311
+ }
1312
+ ReferencePtr ref = _reference->changeTimeout(t);
1313
+ if(ref == _reference)
1314
+ {
1315
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1316
+ }
1317
+ else
1318
+ {
1319
+ ObjectPrx proxy = __newInstance();
1320
+ proxy->setup(ref);
1321
+ return proxy;
1322
+ }
1323
+ }
1324
+
1325
+ ObjectPrx
1326
+ IceProxy::Ice::Object::ice_connectionId(const string& id) const
1327
+ {
1328
+ ReferencePtr ref = _reference->changeConnectionId(id);
1329
+ if(ref == _reference)
1330
+ {
1331
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
1332
+ }
1333
+ else
1334
+ {
1335
+ ObjectPrx proxy = __newInstance();
1336
+ proxy->setup(ref);
1337
+ return proxy;
1338
+ }
1339
+ }
1340
+
1341
+ string
1342
+ IceProxy::Ice::Object::ice_getConnectionId() const
1343
+ {
1344
+ return _reference->getConnectionId();
1345
+ }
1346
+
1347
+ ConnectionPtr
1348
+ IceProxy::Ice::Object::ice_getConnection()
1349
+ {
1350
+ InvocationObserver observer(this, "ice_getConnection", 0);
1351
+ int cnt = 0;
1352
+ while(true)
1353
+ {
1354
+ RequestHandlerPtr handler;
1355
+ try
1356
+ {
1357
+ handler = __getRequestHandler();
1358
+ return handler->waitForConnection(); // Wait for the connection to be established.
1359
+ }
1360
+ catch(const IceInternal::RetryException&)
1361
+ {
1362
+ __setRequestHandler(handler, 0); // Clear request handler and retry.
1363
+ }
1364
+ catch(const Exception& ex)
1365
+ {
1366
+ try
1367
+ {
1368
+ int interval = __handleException(ex, handler, Idempotent, false, cnt);
1369
+ observer.retried();
1370
+ if(interval > 0)
1371
+ {
1372
+ IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(interval));
1373
+ }
1374
+ }
1375
+ catch(const Exception& exc)
1376
+ {
1377
+ observer.failed(exc.ice_name());
1378
+ throw;
1379
+ }
1380
+ }
1381
+ }
1382
+ }
1383
+
1384
+ AsyncResultPtr
1385
+ IceProxy::Ice::Object::begin_ice_getConnectionInternal(const ::IceInternal::CallbackBasePtr& del,
1386
+ const ::Ice::LocalObjectPtr& cookie)
1387
+ {
1388
+ ProxyGetConnectionPtr result = new ProxyGetConnection(this, ice_getConnection_name, del, cookie);
1389
+ try
1390
+ {
1391
+ result->invoke();
1392
+ }
1393
+ catch(const Exception& ex)
1394
+ {
1395
+ result->abort(ex);
1396
+ }
1397
+ return result;
1398
+ }
1399
+
1400
+ ConnectionPtr
1401
+ IceProxy::Ice::Object::end_ice_getConnection(const AsyncResultPtr& __result)
1402
+ {
1403
+ AsyncResult::__check(__result, this, ice_getConnection_name);
1404
+ __result->__wait();
1405
+ return ice_getCachedConnection();
1406
+ }
1407
+
1408
+ ConnectionPtr
1409
+ IceProxy::Ice::Object::ice_getCachedConnection() const
1410
+ {
1411
+ RequestHandlerPtr __handler;
1412
+ {
1413
+ IceUtil::Mutex::Lock sync(_mutex);
1414
+ __handler = _requestHandler;
1415
+ }
1416
+
1417
+ if(__handler)
1418
+ {
1419
+ try
1420
+ {
1421
+ return __handler->getConnection();
1422
+ }
1423
+ catch(const LocalException&)
1424
+ {
1425
+ }
1426
+ }
1427
+ return 0;
1428
+ }
1429
+
1430
+ void
1431
+ IceProxy::Ice::Object::ice_flushBatchRequests()
1432
+ {
1433
+ FlushBatch og(this, ice_flushBatchRequests_name);
1434
+ og.invoke();
1435
+ }
1436
+
1437
+ ::Ice::AsyncResultPtr
1438
+ IceProxy::Ice::Object::begin_ice_flushBatchRequestsInternal(const ::IceInternal::CallbackBasePtr& del,
1439
+ const ::Ice::LocalObjectPtr& cookie)
1440
+ {
1441
+ ProxyFlushBatchPtr result = new ProxyFlushBatch(this, ice_flushBatchRequests_name, del, cookie);
1442
+ try
1443
+ {
1444
+ result->invoke();
1445
+ }
1446
+ catch(const Exception& ex)
1447
+ {
1448
+ result->abort(ex);
1449
+ }
1450
+ return result;
1451
+ }
1452
+
1453
+ void
1454
+ IceProxy::Ice::Object::end_ice_flushBatchRequests(const AsyncResultPtr& result)
1455
+ {
1456
+ AsyncResult::__check(result, this, ice_flushBatchRequests_name);
1457
+ result->__wait();
1458
+ }
1459
+
1460
+ Int
1461
+ IceProxy::Ice::Object::__hash() const
1462
+ {
1463
+ return _reference->hash();
1464
+ }
1465
+
1466
+ void
1467
+ IceProxy::Ice::Object::__copyFrom(const ObjectPrx& from)
1468
+ {
1469
+ IceUtil::Mutex::Lock sync(from->_mutex);
1470
+ _reference = from->_reference;
1471
+ _requestHandler = from->_requestHandler;
1472
+ }
1473
+
1474
+ int
1475
+ IceProxy::Ice::Object::__handleException(const Exception& ex,
1476
+ const RequestHandlerPtr& handler,
1477
+ OperationMode mode,
1478
+ bool sent,
1479
+ int& cnt)
1480
+ {
1481
+ __setRequestHandler(handler, 0); // Clear the request handler
1482
+
1483
+ //
1484
+ // We only retry local exception, system exceptions aren't retried.
1485
+ //
1486
+ // A CloseConnectionException indicates graceful server shutdown, and is therefore
1487
+ // always repeatable without violating "at-most-once". That's because by sending a
1488
+ // close connection message, the server guarantees that all outstanding requests
1489
+ // can safely be repeated.
1490
+ //
1491
+ // An ObjectNotExistException can always be retried as well without violating
1492
+ // "at-most-once" (see the implementation of the checkRetryAfterException method
1493
+ // of the ProxyFactory class for the reasons why it can be useful).
1494
+ //
1495
+ // If the request didn't get sent or if it's non-mutating or idempotent it can
1496
+ // also always be retried if the retry count isn't reached.
1497
+ //
1498
+ const LocalException* localEx = dynamic_cast<const LocalException*>(&ex);
1499
+ if(localEx && (!sent ||
1500
+ mode == Nonmutating || mode == Idempotent ||
1501
+ dynamic_cast<const CloseConnectionException*>(&ex) ||
1502
+ dynamic_cast<const ObjectNotExistException*>(&ex)))
1503
+ {
1504
+ try
1505
+ {
1506
+ return _reference->getInstance()->proxyFactory()->checkRetryAfterException(*localEx, _reference, cnt);
1507
+ }
1508
+ catch(const CommunicatorDestroyedException&)
1509
+ {
1510
+ //
1511
+ // The communicator is already destroyed, so we cannot retry.
1512
+ //
1513
+ ex.ice_throw();
1514
+ }
1515
+ }
1516
+ else
1517
+ {
1518
+ ex.ice_throw(); // Retry could break at-most-once semantics, don't retry.
1519
+ }
1520
+ return 0; // Keep the compiler happy.
1521
+ }
1522
+
1523
+ void
1524
+ IceProxy::Ice::Object::__checkTwowayOnly(const string& name) const
1525
+ {
1526
+ //
1527
+ // No mutex lock necessary, there is nothing mutable in this operation.
1528
+ //
1529
+ if(!ice_isTwoway())
1530
+ {
1531
+ TwowayOnlyException ex(__FILE__, __LINE__);
1532
+ ex.operation = name;
1533
+ throw ex;
1534
+ }
1535
+ }
1536
+
1537
+ void
1538
+ IceProxy::Ice::Object::__checkAsyncTwowayOnly(const string& name) const
1539
+ {
1540
+ //
1541
+ // No mutex lock necessary, there is nothing mutable in this operation.
1542
+ //
1543
+ if(!ice_isTwoway())
1544
+ {
1545
+ throw IceUtil::IllegalArgumentException(__FILE__,
1546
+ __LINE__,
1547
+ "`" + name + "' can only be called with a twoway proxy");
1548
+ }
1549
+ }
1550
+
1551
+ void
1552
+ IceProxy::Ice::Object::__invoke(Outgoing& __og) const
1553
+ {
1554
+ //
1555
+ // Helper for operations without out/return parameters and user
1556
+ // exceptions.
1557
+ //
1558
+
1559
+ bool __ok = __og.invoke();
1560
+ if(__og.hasResponse())
1561
+ {
1562
+ if(!__ok)
1563
+ {
1564
+ try
1565
+ {
1566
+ __og.throwUserException();
1567
+ }
1568
+ catch(const ::Ice::UserException& __ex)
1569
+ {
1570
+ ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
1571
+ throw __uue;
1572
+ }
1573
+ }
1574
+ __og.readEmptyParams();
1575
+ }
1576
+ }
1577
+
1578
+ void
1579
+ IceProxy::Ice::Object::__end(const ::Ice::AsyncResultPtr& __result, const std::string& operation) const
1580
+ {
1581
+ AsyncResult::__check(__result, this, operation);
1582
+ bool __ok = __result->__wait();
1583
+ if(_reference->getMode() == Reference::ModeTwoway)
1584
+ {
1585
+ if(!__ok)
1586
+ {
1587
+ try
1588
+ {
1589
+ __result->__throwUserException();
1590
+ }
1591
+ catch(const UserException& __ex)
1592
+ {
1593
+ throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name());
1594
+ }
1595
+ }
1596
+ __result->__readEmptyParams();
1597
+ }
1598
+ }
1599
+
1600
+ namespace IceProxy
1601
+ {
1602
+
1603
+ namespace Ice
1604
+ {
1605
+
1606
+ ostream&
1607
+ operator<<(ostream& os, const ::IceProxy::Ice::Object& p)
1608
+ {
1609
+ return os << p.ice_toString();
1610
+ }
1611
+
1612
+ }
1613
+
1614
+ }
1615
+
1616
+ ::IceInternal::RequestHandlerPtr
1617
+ IceProxy::Ice::Object::__getRequestHandler()
1618
+ {
1619
+ RequestHandlerPtr handler;
1620
+ if(_reference->getCacheConnection())
1621
+ {
1622
+ IceUtil::Mutex::Lock sync(_mutex);
1623
+ if(_requestHandler)
1624
+ {
1625
+ return _requestHandler;
1626
+ }
1627
+ handler = _reference->getInstance()->requestHandlerFactory()->getRequestHandler(_reference, this);
1628
+ _requestHandler = handler;
1629
+ }
1630
+ else
1631
+ {
1632
+ handler = _reference->getInstance()->requestHandlerFactory()->getRequestHandler(_reference, this);
1633
+ }
1634
+ return handler->connect(this);
1635
+ }
1636
+
1637
+ void
1638
+ IceProxy::Ice::Object::__setRequestHandler(const ::IceInternal::RequestHandlerPtr& previous,
1639
+ const ::IceInternal::RequestHandlerPtr& handler)
1640
+ {
1641
+ if(_reference->getCacheConnection() && previous)
1642
+ {
1643
+ IceUtil::Mutex::Lock sync(_mutex);
1644
+ if(_requestHandler && _requestHandler.get() != handler.get())
1645
+ {
1646
+ //
1647
+ // Update the request handler only if "previous" is the same
1648
+ // as the current request handler. This is called after
1649
+ // connection binding by the connect request handler. We only
1650
+ // replace the request handler if the current handler is the
1651
+ // connect request handler.
1652
+ //
1653
+ _requestHandler = _requestHandler->update(previous, handler);
1654
+ }
1655
+ }
1656
+ }
1657
+
1658
+ IceProxy::Ice::Object*
1659
+ IceProxy::Ice::Object::__newInstance() const
1660
+ {
1661
+ return new Object;
1662
+ }
1663
+
1664
+ void
1665
+ IceProxy::Ice::Object::setup(const ReferencePtr& ref)
1666
+ {
1667
+ //
1668
+ // No need to synchronize "*this", as this operation is only
1669
+ // called upon initialization.
1670
+ //
1671
+
1672
+ assert(!_reference);
1673
+ assert(!_requestHandler);
1674
+
1675
+ _reference = ref;
1676
+ }
1677
+
1678
+ bool
1679
+ Ice::proxyIdentityLess(const ObjectPrx& lhs, const ObjectPrx& rhs)
1680
+ {
1681
+ if(!lhs && !rhs)
1682
+ {
1683
+ return false;
1684
+ }
1685
+ else if(!lhs && rhs)
1686
+ {
1687
+ return true;
1688
+ }
1689
+ else if(lhs && !rhs)
1690
+ {
1691
+ return false;
1692
+ }
1693
+ else
1694
+ {
1695
+ return lhs->ice_getIdentity() < rhs->ice_getIdentity();
1696
+ }
1697
+ }
1698
+
1699
+ bool
1700
+ Ice::proxyIdentityEqual(const ObjectPrx& lhs, const ObjectPrx& rhs)
1701
+ {
1702
+ if(!lhs && !rhs)
1703
+ {
1704
+ return true;
1705
+ }
1706
+ else if(!lhs && rhs)
1707
+ {
1708
+ return false;
1709
+ }
1710
+ else if(lhs && !rhs)
1711
+ {
1712
+ return false;
1713
+ }
1714
+ else
1715
+ {
1716
+ return lhs->ice_getIdentity() == rhs->ice_getIdentity();
1717
+ }
1718
+ }
1719
+
1720
+ bool
1721
+ Ice::proxyIdentityAndFacetLess(const ObjectPrx& lhs, const ObjectPrx& rhs)
1722
+ {
1723
+ if(!lhs && !rhs)
1724
+ {
1725
+ return false;
1726
+ }
1727
+ else if(!lhs && rhs)
1728
+ {
1729
+ return true;
1730
+ }
1731
+ else if(lhs && !rhs)
1732
+ {
1733
+ return false;
1734
+ }
1735
+ else
1736
+ {
1737
+ Identity lhsIdentity = lhs->ice_getIdentity();
1738
+ Identity rhsIdentity = rhs->ice_getIdentity();
1739
+
1740
+ if(lhsIdentity < rhsIdentity)
1741
+ {
1742
+ return true;
1743
+ }
1744
+ else if(rhsIdentity < lhsIdentity)
1745
+ {
1746
+ return false;
1747
+ }
1748
+
1749
+ string lhsFacet = lhs->ice_getFacet();
1750
+ string rhsFacet = rhs->ice_getFacet();
1751
+
1752
+ if(lhsFacet < rhsFacet)
1753
+ {
1754
+ return true;
1755
+ }
1756
+ else if(rhsFacet < lhsFacet)
1757
+ {
1758
+ return false;
1759
+ }
1760
+
1761
+ return false;
1762
+ }
1763
+ }
1764
+
1765
+ bool
1766
+ Ice::proxyIdentityAndFacetEqual(const ObjectPrx& lhs, const ObjectPrx& rhs)
1767
+ {
1768
+ if(!lhs && !rhs)
1769
+ {
1770
+ return true;
1771
+ }
1772
+ else if(!lhs && rhs)
1773
+ {
1774
+ return false;
1775
+ }
1776
+ else if(lhs && !rhs)
1777
+ {
1778
+ return false;
1779
+ }
1780
+ else
1781
+ {
1782
+ Identity lhsIdentity = lhs->ice_getIdentity();
1783
+ Identity rhsIdentity = rhs->ice_getIdentity();
1784
+
1785
+ if(lhsIdentity == rhsIdentity)
1786
+ {
1787
+ string lhsFacet = lhs->ice_getFacet();
1788
+ string rhsFacet = rhs->ice_getFacet();
1789
+
1790
+ if(lhsFacet == rhsFacet)
1791
+ {
1792
+ return true;
1793
+ }
1794
+ }
1795
+
1796
+ return false;
1797
+ }
1798
+ }
1799
+
1800
+ void
1801
+ Ice::ice_writeObjectPrx(const OutputStreamPtr& out, const ObjectPrx& v)
1802
+ {
1803
+ out->write(v);
1804
+ }
1805
+
1806
+ void
1807
+ Ice::ice_readObjectPrx(const InputStreamPtr& in, ObjectPrx& v)
1808
+ {
1809
+ in->read(v);
1810
+ }