zeroc-ice 3.6.5 → 3.7.0

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