zeroc-ice 3.7.0 → 3.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (684) hide show
  1. checksums.yaml +4 -4
  2. data/ICE_LICENSE +1 -1
  3. data/bin/slice2rb +1 -1
  4. data/ext/Communicator.cpp +72 -2
  5. data/ext/Communicator.h +1 -1
  6. data/ext/Config.h +11 -1
  7. data/ext/Connection.cpp +22 -2
  8. data/ext/Connection.h +4 -1
  9. data/ext/Endpoint.cpp +1 -1
  10. data/ext/Endpoint.h +1 -1
  11. data/ext/ImplicitContext.cpp +1 -1
  12. data/ext/ImplicitContext.h +1 -1
  13. data/ext/Init.cpp +1 -1
  14. data/ext/Logger.cpp +1 -1
  15. data/ext/Logger.h +1 -1
  16. data/ext/Operation.cpp +1 -1
  17. data/ext/Operation.h +1 -1
  18. data/ext/Properties.cpp +1 -1
  19. data/ext/Properties.h +1 -1
  20. data/ext/Proxy.cpp +70 -1
  21. data/ext/Proxy.h +1 -1
  22. data/ext/Slice.cpp +1 -1
  23. data/ext/Slice.h +1 -1
  24. data/ext/Types.cpp +21 -5
  25. data/ext/Types.h +1 -1
  26. data/ext/Util.cpp +1 -1
  27. data/ext/Util.h +1 -1
  28. data/ext/ValueFactoryManager.cpp +2 -2
  29. data/ext/ValueFactoryManager.h +2 -2
  30. data/ext/ice/cpp/include/Ice/Application.h +234 -76
  31. data/ext/ice/cpp/include/Ice/AsyncResult.h +77 -1
  32. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -1
  33. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +35 -2
  34. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
  35. data/ext/ice/cpp/include/Ice/Buffer.h +1 -1
  36. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +43 -1
  37. data/ext/ice/cpp/include/Ice/Comparable.h +81 -1
  38. data/ext/ice/cpp/include/Ice/Config.h +8 -1
  39. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +97 -1
  40. data/ext/ice/cpp/include/Ice/ConnectionIF.h +3 -1
  41. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +1 -1
  42. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +1 -1
  43. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +17 -2
  44. data/ext/ice/cpp/include/Ice/Dispatcher.h +22 -2
  45. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -1
  46. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  47. data/ext/ice/cpp/include/Ice/Exception.h +57 -15
  48. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +19 -1
  49. data/ext/ice/cpp/include/Ice/FactoryTable.h +12 -2
  50. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
  51. data/ext/ice/cpp/include/Ice/Format.h +13 -14
  52. data/ext/ice/cpp/include/Ice/Functional.h +6 -1
  53. data/ext/ice/cpp/include/Ice/GCObject.h +1 -1
  54. data/ext/ice/cpp/include/Ice/Handle.h +1 -1
  55. data/ext/ice/cpp/include/Ice/Ice.h +1 -1
  56. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +38 -3
  57. data/ext/ice/cpp/include/Ice/Incoming.h +15 -2
  58. data/ext/ice/cpp/include/Ice/IncomingAsync.h +37 -4
  59. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -1
  60. data/ext/ice/cpp/include/Ice/Initialize.h +764 -98
  61. data/ext/ice/cpp/include/Ice/InputStream.h +637 -112
  62. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -1
  63. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +17 -1
  64. data/ext/ice/cpp/include/Ice/LocalObject.h +5 -1
  65. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  66. data/ext/ice/cpp/include/Ice/LoggerUtil.h +37 -6
  67. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +3 -1
  68. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +3 -1
  69. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +3 -1
  70. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +46 -23
  71. data/ext/ice/cpp/include/Ice/Object.h +338 -47
  72. data/ext/ice/cpp/include/Ice/ObjectF.h +5 -1
  73. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -1
  74. data/ext/ice/cpp/include/Ice/Optional.h +22 -6
  75. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +15 -1
  76. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -1
  77. data/ext/ice/cpp/include/Ice/OutputStream.h +436 -92
  78. data/ext/ice/cpp/include/Ice/Protocol.h +31 -1
  79. data/ext/ice/cpp/include/Ice/Proxy.h +2244 -190
  80. data/ext/ice/cpp/include/Ice/ProxyF.h +3 -1
  81. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  82. data/ext/ice/cpp/include/Ice/ProxyHandle.h +10 -1
  83. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  84. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +67 -9
  85. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -1
  86. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -1
  87. data/ext/ice/cpp/include/Ice/SHA1.h +1 -1
  88. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  89. data/ext/ice/cpp/include/Ice/Service.h +267 -138
  90. data/ext/ice/cpp/include/Ice/SliceChecksums.h +5 -1
  91. data/ext/ice/cpp/include/Ice/SlicedData.h +80 -33
  92. data/ext/ice/cpp/include/Ice/SlicedDataF.h +4 -1
  93. data/ext/ice/cpp/include/Ice/StreamHelpers.h +324 -116
  94. data/ext/ice/cpp/include/Ice/StringConverter.h +32 -1
  95. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  96. data/ext/ice/cpp/include/Ice/UUID.h +2 -1
  97. data/ext/ice/cpp/include/Ice/UniquePtr.h +2 -2
  98. data/ext/ice/cpp/include/Ice/UniqueRef.h +6 -2
  99. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +6 -1
  100. data/ext/ice/cpp/include/Ice/Value.h +41 -1
  101. data/ext/ice/cpp/include/Ice/ValueF.h +3 -1
  102. data/ext/ice/cpp/include/IceSSL/Config.h +1 -1
  103. data/ext/ice/cpp/include/IceSSL/IceSSL.h +1 -1
  104. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +75 -53
  105. data/ext/ice/cpp/include/IceSSL/Plugin.h +323 -218
  106. data/ext/ice/cpp/include/IceSSL/SChannel.h +34 -27
  107. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +35 -28
  108. data/ext/ice/cpp/include/IceSSL/UWP.h +33 -24
  109. data/ext/ice/cpp/include/IceUtil/Atomic.h +1 -1
  110. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -1
  111. data/ext/ice/cpp/include/IceUtil/Config.h +11 -3
  112. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +1 -1
  113. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -1
  114. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +59 -31
  115. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -1
  116. data/ext/ice/cpp/include/IceUtil/Exception.h +1 -1
  117. data/ext/ice/cpp/include/IceUtil/FileUtil.h +1 -1
  118. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -1
  119. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -1
  120. data/ext/ice/cpp/include/IceUtil/IceUtil.h +1 -1
  121. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -1
  122. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -1
  123. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -1
  124. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -1
  125. data/ext/ice/cpp/include/IceUtil/Mutex.h +2 -5
  126. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -1
  127. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -1
  128. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -1
  129. data/ext/ice/cpp/include/IceUtil/Optional.h +95 -1
  130. data/ext/ice/cpp/include/IceUtil/Options.h +1 -1
  131. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +1 -1
  132. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -1
  133. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +1 -1
  134. data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
  135. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -1
  136. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +4 -4
  137. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +5 -3
  138. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -1
  139. data/ext/ice/cpp/include/IceUtil/Shared.h +1 -1
  140. data/ext/ice/cpp/include/IceUtil/StopWatch.h +1 -1
  141. data/ext/ice/cpp/include/IceUtil/StringConverter.h +106 -86
  142. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -1
  143. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -1
  144. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -1
  145. data/ext/ice/cpp/include/IceUtil/Time.h +1 -1
  146. data/ext/ice/cpp/include/IceUtil/Timer.h +5 -1
  147. data/ext/ice/cpp/include/IceUtil/UUID.h +5 -1
  148. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  149. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +80 -20
  150. data/ext/ice/cpp/include/generated/Ice/Communicator.h +927 -130
  151. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +13 -5
  152. data/ext/ice/cpp/include/generated/Ice/Connection.h +990 -194
  153. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +21 -9
  154. data/ext/ice/cpp/include/generated/Ice/Current.h +180 -17
  155. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +484 -118
  156. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +41 -17
  157. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +29 -3
  158. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +11 -5
  159. data/ext/ice/cpp/include/generated/Ice/Identity.h +56 -7
  160. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +150 -28
  161. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +13 -5
  162. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +629 -83
  163. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +19 -7
  164. data/ext/ice/cpp/include/generated/Ice/LocalException.h +5104 -794
  165. data/ext/ice/cpp/include/generated/Ice/Locator.h +2222 -443
  166. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +27 -9
  167. data/ext/ice/cpp/include/generated/Ice/Logger.h +104 -26
  168. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +13 -5
  169. data/ext/ice/cpp/include/generated/Ice/Metrics.h +2534 -455
  170. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +1004 -126
  171. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +13 -5
  172. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +72 -12
  173. data/ext/ice/cpp/include/generated/Ice/Plugin.h +142 -28
  174. data/ext/ice/cpp/include/generated/Ice/PluginF.h +17 -7
  175. data/ext/ice/cpp/include/generated/Ice/Process.h +511 -71
  176. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +18 -6
  177. data/ext/ice/cpp/include/generated/Ice/Properties.h +306 -58
  178. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +737 -121
  179. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +22 -8
  180. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1526 -279
  181. data/ext/ice/cpp/include/generated/Ice/Router.h +1009 -198
  182. data/ext/ice/cpp/include/generated/Ice/RouterF.h +18 -6
  183. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +174 -18
  184. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +13 -5
  185. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +13 -3
  186. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +177 -23
  187. data/ext/ice/cpp/include/generated/Ice/Version.h +43 -13
  188. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +71 -15
  189. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +13 -5
  190. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +39 -9
  191. data/ext/ice/cpp/src/Ice/ACM.cpp +12 -3
  192. data/ext/ice/cpp/src/Ice/ACM.h +1 -1
  193. data/ext/ice/cpp/src/Ice/ACMF.h +1 -1
  194. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -1
  195. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -1
  196. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  197. data/ext/ice/cpp/src/Ice/ArgVector.cpp +1 -1
  198. data/ext/ice/cpp/src/Ice/ArgVector.h +1 -1
  199. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -1
  200. data/ext/ice/cpp/src/Ice/Base64.cpp +1 -1
  201. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  202. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +1 -1
  203. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +1 -1
  204. data/ext/ice/cpp/src/Ice/Buffer.cpp +1 -1
  205. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +3 -3
  206. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +1 -1
  207. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +1 -1
  208. data/ext/ice/cpp/src/Ice/Communicator.cpp +6 -4
  209. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +3 -3
  210. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +34 -13
  211. data/ext/ice/cpp/src/Ice/CommunicatorI.h +10 -10
  212. data/ext/ice/cpp/src/Ice/Cond.cpp +1 -1
  213. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +11 -6
  214. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +1 -1
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +1 -1
  216. data/ext/ice/cpp/src/Ice/Connection.cpp +27 -11
  217. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +3 -3
  218. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +24 -19
  219. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +1 -1
  220. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +1 -1
  221. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +45 -37
  222. data/ext/ice/cpp/src/Ice/ConnectionI.h +10 -8
  223. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +1 -1
  224. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +1 -1
  225. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -1
  226. data/ext/ice/cpp/src/Ice/Connector.h +1 -1
  227. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  228. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +1 -1
  229. data/ext/ice/cpp/src/Ice/Current.cpp +3 -3
  230. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +5 -7
  231. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  232. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  233. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -1
  234. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +1 -1
  235. data/ext/ice/cpp/src/Ice/Endpoint.cpp +24 -10
  236. data/ext/ice/cpp/src/Ice/EndpointF.cpp +3 -3
  237. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +1 -1
  238. data/ext/ice/cpp/src/Ice/EndpointFactory.h +1 -1
  239. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +7 -13
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -1
  242. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  243. data/ext/ice/cpp/src/Ice/EndpointI.cpp +2 -2
  244. data/ext/ice/cpp/src/Ice/EndpointI.h +5 -5
  245. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -1
  246. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +3 -3
  247. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -1
  248. data/ext/ice/cpp/src/Ice/EventHandler.h +1 -1
  249. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -1
  250. data/ext/ice/cpp/src/Ice/Exception.cpp +1 -1
  251. data/ext/ice/cpp/src/Ice/FacetMap.cpp +3 -3
  252. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -1
  253. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +1 -1
  254. data/ext/ice/cpp/src/Ice/GCObject.cpp +1 -1
  255. data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
  256. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -1
  257. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
  258. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +24 -29
  259. data/ext/ice/cpp/src/Ice/IPEndpointI.h +5 -5
  260. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -1
  261. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +1 -1
  262. data/ext/ice/cpp/src/Ice/Identity.cpp +3 -3
  263. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +6 -4
  264. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +3 -3
  265. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +2 -13
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -1
  267. data/ext/ice/cpp/src/Ice/Incoming.cpp +1 -1
  268. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -1
  269. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -1
  270. data/ext/ice/cpp/src/Ice/Initialize.cpp +10 -16
  271. data/ext/ice/cpp/src/Ice/InputStream.cpp +1 -1
  272. data/ext/ice/cpp/src/Ice/Instance.cpp +13 -34
  273. data/ext/ice/cpp/src/Ice/Instance.h +1 -1
  274. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +33 -13
  275. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +3 -3
  276. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -1
  277. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -1
  278. data/ext/ice/cpp/src/Ice/LocalException.cpp +279 -279
  279. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -1
  280. data/ext/ice/cpp/src/Ice/Locator.cpp +287 -174
  281. data/ext/ice/cpp/src/Ice/LocatorF.cpp +3 -3
  282. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +4 -9
  283. data/ext/ice/cpp/src/Ice/LocatorInfo.h +1 -1
  284. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  285. data/ext/ice/cpp/src/Ice/Logger.cpp +6 -4
  286. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -1
  287. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -1
  288. data/ext/ice/cpp/src/Ice/LoggerF.cpp +3 -3
  289. data/ext/ice/cpp/src/Ice/LoggerI.cpp +1 -1
  290. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -1
  291. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +1 -1
  292. data/ext/ice/cpp/src/Ice/Metrics.cpp +297 -109
  293. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +2 -7
  294. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -1
  295. data/ext/ice/cpp/src/Ice/Network.cpp +188 -225
  296. data/ext/ice/cpp/src/Ice/Network.h +3 -12
  297. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -1
  298. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +1 -1
  299. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -1
  300. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  301. data/ext/ice/cpp/src/Ice/Object.cpp +7 -4
  302. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +6 -4
  303. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +3 -3
  304. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +53 -19
  305. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +1 -1
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +1 -1
  307. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +116 -150
  308. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +11 -11
  309. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +6 -4
  310. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -1
  311. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +25 -42
  312. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +2 -2
  313. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +1 -1
  314. data/ext/ice/cpp/src/Ice/OutputStream.cpp +1 -1
  315. data/ext/ice/cpp/src/Ice/Plugin.cpp +9 -5
  316. data/ext/ice/cpp/src/Ice/PluginF.cpp +3 -3
  317. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +15 -34
  318. data/ext/ice/cpp/src/Ice/PluginManagerI.h +3 -3
  319. data/ext/ice/cpp/src/Ice/Process.cpp +69 -40
  320. data/ext/ice/cpp/src/Ice/ProcessF.cpp +3 -3
  321. data/ext/ice/cpp/src/Ice/Properties.cpp +6 -4
  322. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +89 -54
  323. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +1 -1
  324. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -1
  325. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +3 -3
  326. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +15 -21
  327. data/ext/ice/cpp/src/Ice/PropertiesI.h +10 -10
  328. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +4 -2
  329. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -2
  330. data/ext/ice/cpp/src/Ice/Protocol.cpp +5 -13
  331. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +1 -1
  332. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +1 -1
  333. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  334. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -1
  335. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -1
  336. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  337. data/ext/ice/cpp/src/Ice/Proxy.cpp +46 -1
  338. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
  339. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -1
  340. data/ext/ice/cpp/src/Ice/Reference.cpp +56 -6
  341. data/ext/ice/cpp/src/Ice/Reference.h +13 -2
  342. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +51 -90
  343. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -1
  344. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  345. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +1 -1
  346. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
  347. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +203 -117
  348. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  349. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -1
  350. data/ext/ice/cpp/src/Ice/RequestHandler.h +1 -1
  351. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +1 -1
  352. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +1 -1
  353. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -1
  354. data/ext/ice/cpp/src/Ice/ResponseHandler.h +1 -1
  355. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +1 -1
  356. data/ext/ice/cpp/src/Ice/RetryQueue.h +1 -1
  357. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  358. data/ext/ice/cpp/src/Ice/Router.cpp +167 -89
  359. data/ext/ice/cpp/src/Ice/RouterF.cpp +3 -3
  360. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +6 -28
  361. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -3
  362. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  363. data/ext/ice/cpp/src/Ice/SHA1.cpp +1 -1
  364. data/ext/ice/cpp/src/Ice/Selector.cpp +19 -26
  365. data/ext/ice/cpp/src/Ice/Selector.h +1 -1
  366. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +6 -4
  367. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +3 -3
  368. data/ext/ice/cpp/src/Ice/ServantManager.cpp +15 -31
  369. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  370. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -1
  371. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +3 -3
  372. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -1
  373. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -1
  374. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +32 -52
  375. data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -1
  376. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +10 -1
  377. data/ext/ice/cpp/src/Ice/StringUtil.h +1 -1
  378. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +1 -1
  379. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -1
  380. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +5 -13
  381. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -1
  382. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -1
  383. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -1
  384. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +8 -11
  385. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +2 -2
  386. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +1 -1
  387. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +1 -1
  388. data/ext/ice/cpp/src/Ice/Thread.cpp +1 -1
  389. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +13 -13
  390. data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -1
  391. data/ext/ice/cpp/src/Ice/Timer.cpp +1 -1
  392. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +1 -1
  393. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  394. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -1
  395. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +1 -1
  396. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -1
  397. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -1
  398. data/ext/ice/cpp/src/Ice/Transceiver.h +1 -1
  399. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  400. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +1 -1
  401. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -1
  402. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +19 -27
  403. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -2
  404. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +17 -54
  405. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +1 -1
  406. data/ext/ice/cpp/src/Ice/Value.cpp +1 -1
  407. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +9 -5
  408. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +3 -6
  409. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +2 -2
  410. data/ext/ice/cpp/src/Ice/Version.cpp +3 -3
  411. data/ext/ice/cpp/src/Ice/VirtualShared.h +1 -1
  412. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -1
  413. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -1
  414. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -1
  415. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -1
  416. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +4 -5
  417. data/ext/ice/cpp/src/Ice/WSEndpoint.h +2 -2
  418. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +8 -9
  419. data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -1
  420. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +85 -27
  421. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +599 -113
  422. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +1 -1
  423. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -1
  424. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +1 -1
  425. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -1
  426. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +1 -1
  427. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -1
  428. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +70 -24
  429. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +635 -69
  430. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +1 -1
  431. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +71 -9
  432. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +2 -4
  433. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -1
  434. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +1 -1
  435. data/ext/ice/cpp/src/IceSSL/CertificateI.h +1 -1
  436. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +6 -4
  437. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +3 -3
  438. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +2 -4
  439. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -1
  440. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +2 -2
  441. data/ext/ice/cpp/src/IceSSL/EndpointI.h +2 -2
  442. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +6 -4
  443. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -1
  444. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -1
  445. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -1
  446. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +1 -1
  447. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +1 -1
  448. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +1 -1
  449. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +1 -1
  450. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +1 -1
  451. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +25 -62
  452. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +1 -1
  453. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +1 -1
  454. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +1 -1
  455. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +1 -1
  456. data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -1
  457. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -1
  458. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -1
  459. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +1 -1
  460. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +1 -1
  461. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +1 -1
  462. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +1 -1
  463. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +1 -1
  464. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +19 -27
  465. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +1 -1
  466. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +7 -16
  467. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +1 -1
  468. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -1
  469. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +1 -1
  470. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1 -1
  471. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +1 -1
  472. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +1 -1
  473. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +1 -1
  474. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +1 -1
  475. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +1 -1
  476. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +7 -10
  477. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +1 -1
  478. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +4 -5
  479. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -1
  480. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -1
  481. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +1 -1
  482. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +1 -1
  483. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +1 -1
  484. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +1 -1
  485. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +1 -1
  486. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +1 -1
  487. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +1 -1
  488. data/ext/ice/cpp/src/IceSSL/Util.cpp +1 -1
  489. data/ext/ice/cpp/src/IceSSL/Util.h +1 -1
  490. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +1 -1
  491. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -1
  492. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -1
  493. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +1 -1
  494. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +5 -5
  495. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  496. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  497. data/ext/ice/cpp/src/IceUtil/Options.cpp +1 -1
  498. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +1 -1
  499. data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -1
  500. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +1 -5
  501. data/ext/ice/cpp/src/IceUtil/Shared.cpp +1 -1
  502. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -1
  503. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +1 -1
  504. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -1
  505. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  506. data/ext/ice/cpp/src/IceUtil/UUID.cpp +3 -3
  507. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -1
  508. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -1
  509. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +1 -1
  510. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +160 -150
  511. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +9 -8
  512. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -1
  513. data/ext/ice/cpp/src/Slice/Checksum.h +1 -1
  514. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -1
  515. data/ext/ice/cpp/src/Slice/FileTracker.h +1 -1
  516. data/ext/ice/cpp/src/Slice/Grammar.cpp +567 -585
  517. data/ext/ice/cpp/src/Slice/Grammar.h +2 -2
  518. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -1
  519. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +131 -47
  520. data/ext/ice/cpp/src/Slice/JavaUtil.h +10 -5
  521. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  522. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  523. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +1 -1
  524. data/ext/ice/cpp/src/Slice/PHPUtil.h +1 -1
  525. data/ext/ice/cpp/src/Slice/Parser.cpp +383 -101
  526. data/ext/ice/cpp/src/Slice/Parser.h +40 -3
  527. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +2 -1
  528. data/ext/ice/cpp/src/Slice/Preprocessor.h +2 -2
  529. data/ext/ice/cpp/src/Slice/Python.cpp +7 -15
  530. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +66 -9
  531. data/ext/ice/cpp/src/Slice/PythonUtil.h +2 -2
  532. data/ext/ice/cpp/src/Slice/Ruby.cpp +1 -1
  533. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +2 -2
  534. data/ext/ice/cpp/src/Slice/RubyUtil.h +1 -1
  535. data/ext/ice/cpp/src/Slice/Scanner.cpp +214 -135
  536. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +1 -1
  537. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +99 -17
  538. data/ext/ice/cpp/src/Slice/Util.h +5 -4
  539. data/ice.gemspec +2 -2
  540. data/lib/Glacier2.rb +1 -1
  541. data/lib/Glacier2/Metrics.rb +2 -2
  542. data/lib/Glacier2/PermissionsVerifier.rb +2 -2
  543. data/lib/Glacier2/PermissionsVerifierF.rb +2 -2
  544. data/lib/Glacier2/Router.rb +2 -2
  545. data/lib/Glacier2/RouterF.rb +2 -2
  546. data/lib/Glacier2/SSLInfo.rb +2 -2
  547. data/lib/Glacier2/Session.rb +2 -2
  548. data/lib/Ice.rb +2 -2
  549. data/lib/Ice/BuiltinSequences.rb +2 -2
  550. data/lib/Ice/Communicator.rb +2 -2
  551. data/lib/Ice/CommunicatorF.rb +2 -2
  552. data/lib/Ice/Connection.rb +2 -2
  553. data/lib/Ice/ConnectionF.rb +2 -2
  554. data/lib/Ice/Current.rb +2 -2
  555. data/lib/Ice/Endpoint.rb +2 -2
  556. data/lib/Ice/EndpointF.rb +2 -2
  557. data/lib/Ice/EndpointTypes.rb +2 -2
  558. data/lib/Ice/FacetMap.rb +2 -2
  559. data/lib/Ice/Identity.rb +2 -2
  560. data/lib/Ice/ImplicitContext.rb +2 -2
  561. data/lib/Ice/ImplicitContextF.rb +2 -2
  562. data/lib/Ice/Instrumentation.rb +2 -2
  563. data/lib/Ice/InstrumentationF.rb +2 -2
  564. data/lib/Ice/LocalException.rb +2 -2
  565. data/lib/Ice/Locator.rb +2 -2
  566. data/lib/Ice/LocatorF.rb +2 -2
  567. data/lib/Ice/Logger.rb +2 -2
  568. data/lib/Ice/LoggerF.rb +2 -2
  569. data/lib/Ice/Metrics.rb +2 -2
  570. data/lib/Ice/ObjectAdapter.rb +2 -2
  571. data/lib/Ice/ObjectAdapterF.rb +2 -2
  572. data/lib/Ice/ObjectFactory.rb +2 -2
  573. data/lib/Ice/Plugin.rb +2 -2
  574. data/lib/Ice/PluginF.rb +2 -2
  575. data/lib/Ice/Process.rb +2 -2
  576. data/lib/Ice/ProcessF.rb +2 -2
  577. data/lib/Ice/Properties.rb +2 -2
  578. data/lib/Ice/PropertiesAdmin.rb +2 -2
  579. data/lib/Ice/PropertiesF.rb +2 -2
  580. data/lib/Ice/RemoteLogger.rb +2 -2
  581. data/lib/Ice/Router.rb +2 -2
  582. data/lib/Ice/RouterF.rb +2 -2
  583. data/lib/Ice/ServantLocator.rb +2 -2
  584. data/lib/Ice/ServantLocatorF.rb +2 -2
  585. data/lib/Ice/SliceChecksumDict.rb +2 -2
  586. data/lib/Ice/ValueFactory.rb +2 -2
  587. data/lib/Ice/Version.rb +2 -2
  588. data/lib/IceBox.rb +1 -1
  589. data/lib/IceBox/IceBox.rb +2 -2
  590. data/lib/IceGrid.rb +1 -1
  591. data/lib/IceGrid/Admin.rb +2 -2
  592. data/lib/IceGrid/Descriptor.rb +2 -2
  593. data/lib/IceGrid/Exception.rb +2 -2
  594. data/lib/IceGrid/FileParser.rb +2 -2
  595. data/lib/IceGrid/PluginFacade.rb +2 -2
  596. data/lib/IceGrid/Registry.rb +2 -2
  597. data/lib/IceGrid/Session.rb +2 -2
  598. data/lib/IceGrid/UserAccountMapper.rb +2 -2
  599. data/lib/IcePatch2.rb +1 -1
  600. data/lib/IcePatch2/FileInfo.rb +2 -2
  601. data/lib/IcePatch2/FileServer.rb +2 -2
  602. data/lib/IceStorm.rb +1 -1
  603. data/lib/IceStorm/IceStorm.rb +2 -2
  604. data/lib/IceStorm/Metrics.rb +2 -2
  605. data/slice/Glacier2/Metrics.ice +2 -2
  606. data/slice/Glacier2/PermissionsVerifier.ice +2 -2
  607. data/slice/Glacier2/PermissionsVerifierF.ice +2 -2
  608. data/slice/Glacier2/Router.ice +2 -2
  609. data/slice/Glacier2/RouterF.ice +2 -2
  610. data/slice/Glacier2/SSLInfo.ice +2 -2
  611. data/slice/Glacier2/Session.ice +2 -2
  612. data/slice/Ice/BuiltinSequences.ice +2 -2
  613. data/slice/Ice/Communicator.ice +66 -73
  614. data/slice/Ice/CommunicatorF.ice +2 -2
  615. data/slice/Ice/Connection.ice +47 -17
  616. data/slice/Ice/ConnectionF.ice +2 -2
  617. data/slice/Ice/Current.ice +4 -5
  618. data/slice/Ice/Endpoint.ice +16 -16
  619. data/slice/Ice/EndpointF.ice +2 -2
  620. data/slice/Ice/EndpointTypes.ice +2 -2
  621. data/slice/Ice/FacetMap.ice +2 -2
  622. data/slice/Ice/Identity.ice +2 -2
  623. data/slice/Ice/ImplicitContext.ice +6 -6
  624. data/slice/Ice/ImplicitContextF.ice +2 -2
  625. data/slice/Ice/Instrumentation.ice +2 -2
  626. data/slice/Ice/InstrumentationF.ice +2 -2
  627. data/slice/Ice/LocalException.ice +2 -2
  628. data/slice/Ice/Locator.ice +3 -3
  629. data/slice/Ice/LocatorF.ice +2 -2
  630. data/slice/Ice/Logger.ice +2 -2
  631. data/slice/Ice/LoggerF.ice +2 -2
  632. data/slice/Ice/Metrics.ice +2 -2
  633. data/slice/Ice/ObjectAdapter.ice +10 -10
  634. data/slice/Ice/ObjectAdapterF.ice +2 -2
  635. data/slice/Ice/ObjectFactory.ice +3 -3
  636. data/slice/Ice/Plugin.ice +4 -4
  637. data/slice/Ice/PluginF.ice +2 -2
  638. data/slice/Ice/Process.ice +2 -2
  639. data/slice/Ice/ProcessF.ice +2 -2
  640. data/slice/Ice/Properties.ice +11 -11
  641. data/slice/Ice/PropertiesAdmin.ice +2 -2
  642. data/slice/Ice/PropertiesF.ice +2 -2
  643. data/slice/Ice/RemoteLogger.ice +12 -23
  644. data/slice/Ice/Router.ice +2 -2
  645. data/slice/Ice/RouterF.ice +2 -2
  646. data/slice/Ice/ServantLocator.ice +2 -2
  647. data/slice/Ice/ServantLocatorF.ice +2 -2
  648. data/slice/Ice/SliceChecksumDict.ice +2 -2
  649. data/slice/Ice/ValueFactory.ice +14 -16
  650. data/slice/Ice/Version.ice +2 -2
  651. data/slice/IceBT/ConnectionInfo.ice +2 -2
  652. data/slice/IceBT/EndpointInfo.ice +2 -2
  653. data/slice/IceBT/Types.ice +2 -2
  654. data/slice/IceBox/IceBox.ice +3 -4
  655. data/slice/IceDiscovery/IceDiscovery.ice +2 -2
  656. data/slice/IceGrid/Admin.ice +2 -2
  657. data/slice/IceGrid/Descriptor.ice +2 -2
  658. data/slice/IceGrid/Exception.ice +2 -2
  659. data/slice/IceGrid/FileParser.ice +2 -2
  660. data/slice/IceGrid/PluginFacade.ice +6 -6
  661. data/slice/IceGrid/Registry.ice +2 -2
  662. data/slice/IceGrid/Session.ice +2 -2
  663. data/slice/IceGrid/UserAccountMapper.ice +2 -2
  664. data/slice/IceIAP/ConnectionInfo.ice +2 -2
  665. data/slice/IceIAP/EndpointInfo.ice +2 -2
  666. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +2 -2
  667. data/slice/IcePatch2/FileInfo.ice +2 -2
  668. data/slice/IcePatch2/FileServer.ice +2 -2
  669. data/slice/IceSSL/ConnectionInfo.ice +2 -2
  670. data/slice/IceSSL/ConnectionInfoF.ice +2 -2
  671. data/slice/IceSSL/EndpointInfo.ice +2 -2
  672. data/slice/IceStorm/IceStorm.ice +5 -6
  673. data/slice/IceStorm/Metrics.ice +2 -2
  674. metadata +3 -13
  675. data/BZIP2_LICENSE +0 -42
  676. data/ext/ice/bzip2/blocksort.c +0 -1094
  677. data/ext/ice/bzip2/bzlib.c +0 -1572
  678. data/ext/ice/bzip2/bzlib.h +0 -282
  679. data/ext/ice/bzip2/bzlib_private.h +0 -509
  680. data/ext/ice/bzip2/compress.c +0 -672
  681. data/ext/ice/bzip2/crctable.c +0 -104
  682. data/ext/ice/bzip2/decompress.c +0 -646
  683. data/ext/ice/bzip2/huffman.c +0 -205
  684. data/ext/ice/bzip2/randtable.c +0 -84
@@ -1,13 +1,13 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.7.0
10
+ // Ice version 3.7.1
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -53,7 +53,7 @@
53
53
  # if ICE_INT_VERSION % 100 > 50
54
54
  # error Beta header file detected
55
55
  # endif
56
- # if ICE_INT_VERSION % 100 < 0
56
+ # if ICE_INT_VERSION % 100 < 1
57
57
  # error Ice patch level mismatch!
58
58
  # endif
59
59
  #endif
@@ -80,96 +80,533 @@ class ObjectAdapter;
80
80
  namespace Ice
81
81
  {
82
82
 
83
+ /**
84
+ * The object adapter provides an up-call interface from the Ice
85
+ * run time to the implementation of Ice objects.
86
+ *
87
+ * The object adapter is responsible for receiving requests
88
+ * from endpoints, and for mapping between servants, identities, and
89
+ * proxies.
90
+ * @see Communicator
91
+ * @see ServantLocator
92
+ * \headerfile Ice/Ice.h
93
+ */
83
94
  class ICE_CLASS(ICE_API) ObjectAdapter
84
95
  {
85
96
  public:
86
97
 
87
98
  ICE_MEMBER(ICE_API) virtual ~ObjectAdapter();
88
99
 
89
- virtual ::std::string getName() const = 0;
90
-
91
- virtual ::std::shared_ptr<::Ice::Communicator> getCommunicator() const = 0;
92
-
100
+ /**
101
+ * Get the name of this object adapter.
102
+ * @return This object adapter's name.
103
+ */
104
+ virtual ::std::string getName() const noexcept = 0;
105
+
106
+ /**
107
+ * Get the communicator this object adapter belongs to.
108
+ * @return This object adapter's communicator.
109
+ * @see Communicator
110
+ */
111
+ virtual ::std::shared_ptr<::Ice::Communicator> getCommunicator() const noexcept = 0;
112
+
113
+ /**
114
+ * Activate all endpoints that belong to this object adapter.
115
+ * After activation, the object adapter can dispatch requests
116
+ * received through its endpoints.
117
+ * @see #hold
118
+ * @see #deactivate
119
+ */
93
120
  virtual void activate() = 0;
94
121
 
122
+ /**
123
+ * Temporarily hold receiving and dispatching requests. The object
124
+ * adapter can be reactivated with the {@link #activate} operation.
125
+ *
126
+ * <p class="Note"> Holding is not immediate, i.e., after {@link #hold}
127
+ * returns, the object adapter might still be active for some
128
+ * time. You can use {@link #waitForHold} to wait until holding is
129
+ * complete.
130
+ * @see #activate
131
+ * @see #deactivate
132
+ * @see #waitForHold
133
+ */
95
134
  virtual void hold() = 0;
96
135
 
136
+ /**
137
+ * Wait until the object adapter holds requests. Calling {@link #hold}
138
+ * initiates holding of requests, and {@link #waitForHold} only returns
139
+ * when holding of requests has been completed.
140
+ * @see #hold
141
+ * @see #waitForDeactivate
142
+ * @see Communicator#waitForShutdown
143
+ */
97
144
  virtual void waitForHold() = 0;
98
145
 
99
- virtual void deactivate() = 0;
100
-
101
- virtual void waitForDeactivate() = 0;
102
-
103
- virtual bool isDeactivated() const = 0;
104
-
146
+ /**
147
+ * Deactivate all endpoints that belong to this object adapter.
148
+ * After deactivation, the object adapter stops receiving
149
+ * requests through its endpoints. Object adapters that have been
150
+ * deactivated must not be reactivated again, and cannot be used
151
+ * otherwise. Attempts to use a deactivated object adapter raise
152
+ * {@link ObjectAdapterDeactivatedException} however, attempts to
153
+ * {@link #deactivate} an already deactivated object adapter are
154
+ * ignored and do nothing. Once deactivated, it is possible to
155
+ * destroy the adapter to clean up resources and then create and
156
+ * activate a new adapter with the same name.
157
+ *
158
+ * <p class="Note"> After {@link #deactivate} returns, no new requests
159
+ * are processed by the object adapter. However, requests that
160
+ * have been started before {@link #deactivate} was called might
161
+ * still be active. You can use {@link #waitForDeactivate} to wait
162
+ * for the completion of all requests for this object adapter.
163
+ * @see #activate
164
+ * @see #hold
165
+ * @see #waitForDeactivate
166
+ * @see Communicator#shutdown
167
+ */
168
+ virtual void deactivate() noexcept = 0;
169
+
170
+ /**
171
+ * Wait until the object adapter has deactivated. Calling
172
+ * {@link #deactivate} initiates object adapter deactivation, and
173
+ * {@link #waitForDeactivate} only returns when deactivation has
174
+ * been completed.
175
+ * @see #deactivate
176
+ * @see #waitForHold
177
+ * @see Communicator#waitForShutdown
178
+ */
179
+ virtual void waitForDeactivate() noexcept = 0;
180
+
181
+ /**
182
+ * Check whether object adapter has been deactivated.
183
+ * @return Whether adapter has been deactivated.
184
+ * @see Communicator#shutdown
185
+ */
186
+ virtual bool isDeactivated() const noexcept = 0;
187
+
188
+ /**
189
+ * Destroys the object adapter and cleans up all resources held by
190
+ * the object adapter. If the object adapter has not yet been
191
+ * deactivated, destroy implicitly initiates the deactivation
192
+ * and waits for it to finish. Subsequent calls to destroy are
193
+ * ignored. Once destroy has returned, it is possible to create
194
+ * another object adapter with the same name.
195
+ * @see #deactivate
196
+ * @see #waitForDeactivate
197
+ * @see Communicator#destroy
198
+ */
105
199
  virtual void destroy() noexcept = 0;
106
200
 
107
- virtual ::std::shared_ptr<::Ice::ObjectPrx> add(const ::std::shared_ptr<::Ice::Object>&, const ::Ice::Identity&) = 0;
108
-
109
- virtual ::std::shared_ptr<::Ice::ObjectPrx> addFacet(const ::std::shared_ptr<::Ice::Object>&, const ::Ice::Identity&, const ::std::string&) = 0;
110
-
111
- virtual ::std::shared_ptr<::Ice::ObjectPrx> addWithUUID(const ::std::shared_ptr<::Ice::Object>&) = 0;
112
-
113
- virtual ::std::shared_ptr<::Ice::ObjectPrx> addFacetWithUUID(const ::std::shared_ptr<::Ice::Object>&, const ::std::string&) = 0;
114
-
115
- virtual void addDefaultServant(const ::std::shared_ptr<::Ice::Object>&, const ::std::string&) = 0;
116
-
117
- virtual ::std::shared_ptr<::Ice::Object> remove(const ::Ice::Identity&) = 0;
118
-
119
- virtual ::std::shared_ptr<::Ice::Object> removeFacet(const ::Ice::Identity&, const ::std::string&) = 0;
120
-
121
- virtual ::Ice::FacetMap removeAllFacets(const ::Ice::Identity&) = 0;
122
-
123
- virtual ::std::shared_ptr<::Ice::Object> removeDefaultServant(const ::std::string&) = 0;
124
-
125
- virtual ::std::shared_ptr<::Ice::Object> find(const ::Ice::Identity&) const = 0;
126
-
127
- virtual ::std::shared_ptr<::Ice::Object> findFacet(const ::Ice::Identity&, const ::std::string&) const = 0;
128
-
129
- virtual ::Ice::FacetMap findAllFacets(const ::Ice::Identity&) const = 0;
130
-
131
- virtual ::std::shared_ptr<::Ice::Object> findByProxy(const ::std::shared_ptr<::Ice::ObjectPrx>&) const = 0;
132
-
133
- virtual void addServantLocator(const ::std::shared_ptr<::Ice::ServantLocator>&, const ::std::string&) = 0;
134
-
135
- virtual ::std::shared_ptr<::Ice::ServantLocator> removeServantLocator(const ::std::string&) = 0;
136
-
137
- virtual ::std::shared_ptr<::Ice::ServantLocator> findServantLocator(const ::std::string&) const = 0;
138
-
139
- virtual ::std::shared_ptr<::Ice::Object> findDefaultServant(const ::std::string&) const = 0;
140
-
141
- virtual ::std::shared_ptr<::Ice::ObjectPrx> createProxy(const ::Ice::Identity&) const = 0;
142
-
143
- virtual ::std::shared_ptr<::Ice::ObjectPrx> createDirectProxy(const ::Ice::Identity&) const = 0;
144
-
145
- virtual ::std::shared_ptr<::Ice::ObjectPrx> createIndirectProxy(const ::Ice::Identity&) const = 0;
146
-
147
- virtual void setLocator(const ::std::shared_ptr<::Ice::LocatorPrx>&) = 0;
148
-
149
- virtual ::std::shared_ptr<::Ice::LocatorPrx> getLocator() const = 0;
150
-
151
- virtual ::Ice::EndpointSeq getEndpoints() const = 0;
152
-
201
+ /**
202
+ * Add a servant to this object adapter's Active Servant Map. Note
203
+ * that one servant can implement several Ice objects by registering
204
+ * the servant with multiple identities. Adding a servant with an
205
+ * identity that is in the map already throws {@link AlreadyRegisteredException}.
206
+ * @param servant The servant to add.
207
+ * @param id The identity of the Ice object that is implemented by
208
+ * the servant.
209
+ * @return A proxy that matches the given identity and this object
210
+ * adapter.
211
+ * @see Identity
212
+ * @see #addFacet
213
+ * @see #addWithUUID
214
+ * @see #remove
215
+ * @see #find
216
+ */
217
+ virtual ::std::shared_ptr<::Ice::ObjectPrx> add(const ::std::shared_ptr<Object>& servant, const Identity& id) = 0;
218
+
219
+ /**
220
+ * Like {@link #add}, but with a facet. Calling <tt>add(servant, id)</tt>
221
+ * is equivalent to calling {@link #addFacet} with an empty facet.
222
+ * @param servant The servant to add.
223
+ * @param id The identity of the Ice object that is implemented by
224
+ * the servant.
225
+ * @param facet The facet. An empty facet means the default facet.
226
+ * @return A proxy that matches the given identity, facet, and
227
+ * this object adapter.
228
+ * @see Identity
229
+ * @see #add
230
+ * @see #addFacetWithUUID
231
+ * @see #removeFacet
232
+ * @see #findFacet
233
+ */
234
+ virtual ::std::shared_ptr<::Ice::ObjectPrx> addFacet(const ::std::shared_ptr<Object>& servant, const Identity& id, const ::std::string& facet) = 0;
235
+
236
+ /**
237
+ * Add a servant to this object adapter's Active Servant Map,
238
+ * using an automatically generated UUID as its identity. Note that
239
+ * the generated UUID identity can be accessed using the proxy's
240
+ * <tt>ice_getIdentity</tt> operation.
241
+ * @param servant The servant to add.
242
+ * @return A proxy that matches the generated UUID identity and
243
+ * this object adapter.
244
+ * @see Identity
245
+ * @see #add
246
+ * @see #addFacetWithUUID
247
+ * @see #remove
248
+ * @see #find
249
+ */
250
+ virtual ::std::shared_ptr<::Ice::ObjectPrx> addWithUUID(const ::std::shared_ptr<Object>& servant) = 0;
251
+
252
+ /**
253
+ * Like {@link #addWithUUID}, but with a facet. Calling
254
+ * <tt>addWithUUID(servant)</tt> is equivalent to calling
255
+ * {@link #addFacetWithUUID} with an empty facet.
256
+ * @param servant The servant to add.
257
+ * @param facet The facet. An empty facet means the default
258
+ * facet.
259
+ * @return A proxy that matches the generated UUID identity,
260
+ * facet, and this object adapter.
261
+ * @see Identity
262
+ * @see #addFacet
263
+ * @see #addWithUUID
264
+ * @see #removeFacet
265
+ * @see #findFacet
266
+ */
267
+ virtual ::std::shared_ptr<::Ice::ObjectPrx> addFacetWithUUID(const ::std::shared_ptr<Object>& servant, const ::std::string& facet) = 0;
268
+
269
+ /**
270
+ * Add a default servant to handle requests for a specific
271
+ * category. Adding a default servant for a category for
272
+ * which a default servant is already registered throws
273
+ * {@link AlreadyRegisteredException}. To dispatch operation
274
+ * calls on servants, the object adapter tries to find a servant
275
+ * for a given Ice object identity and facet in the following
276
+ * order:
277
+ *
278
+ * <ol>
279
+ *
280
+ * <li>The object adapter tries to find a servant for the identity
281
+ * and facet in the Active Servant Map.</li>
282
+ *
283
+ * <li>If no servant has been found in the Active Servant Map, the
284
+ * object adapter tries to find a default servant for the category
285
+ * component of the identity.</li>
286
+ *
287
+ * <li>If no servant has been found by any of the preceding steps,
288
+ * the object adapter tries to find a default servant for an empty
289
+ * category, regardless of the category contained in the identity.</li>
290
+ *
291
+ * <li>If no servant has been found by any of the preceding steps,
292
+ * the object adapter gives up and the caller receives
293
+ * {@link ObjectNotExistException} or {@link FacetNotExistException}.</li>
294
+ *
295
+ * </ol>
296
+ * @param servant The default servant.
297
+ * @param category The category for which the default servant is
298
+ * registered. An empty category means it will handle all categories.
299
+ * @see #removeDefaultServant
300
+ * @see #findDefaultServant
301
+ */
302
+ virtual void addDefaultServant(const ::std::shared_ptr<Object>& servant, const ::std::string& category) = 0;
303
+
304
+ /**
305
+ * Remove a servant (that is, the default facet) from the object
306
+ * adapter's Active Servant Map.
307
+ * @param id The identity of the Ice object that is implemented by
308
+ * the servant. If the servant implements multiple Ice objects,
309
+ * {@link #remove} has to be called for all those Ice objects.
310
+ * Removing an identity that is not in the map throws
311
+ * {@link NotRegisteredException}.
312
+ * @return The removed servant.
313
+ * @see Identity
314
+ * @see #add
315
+ * @see #addWithUUID
316
+ */
317
+ virtual ::std::shared_ptr<::Ice::Object> remove(const Identity& id) = 0;
318
+
319
+ /**
320
+ * Like {@link #remove}, but with a facet. Calling <tt>remove(id)</tt>
321
+ * is equivalent to calling {@link #removeFacet} with an empty facet.
322
+ * @param id The identity of the Ice object that is implemented by
323
+ * the servant.
324
+ * @param facet The facet. An empty facet means the default facet.
325
+ * @return The removed servant.
326
+ * @see Identity
327
+ * @see #addFacet
328
+ * @see #addFacetWithUUID
329
+ */
330
+ virtual ::std::shared_ptr<::Ice::Object> removeFacet(const Identity& id, const ::std::string& facet) = 0;
331
+
332
+ /**
333
+ * Remove all facets with the given identity from the Active
334
+ * Servant Map. The operation completely removes the Ice object,
335
+ * including its default facet. Removing an identity that
336
+ * is not in the map throws {@link NotRegisteredException}.
337
+ * @param id The identity of the Ice object to be removed.
338
+ * @return A collection containing all the facet names and
339
+ * servants of the removed Ice object.
340
+ * @see #remove
341
+ * @see #removeFacet
342
+ */
343
+ virtual ::Ice::FacetMap removeAllFacets(const Identity& id) = 0;
344
+
345
+ /**
346
+ * Remove the default servant for a specific category. Attempting
347
+ * to remove a default servant for a category that is not
348
+ * registered throws {@link NotRegisteredException}.
349
+ * @param category The category of the default servant to remove.
350
+ * @return The default servant.
351
+ * @see #addDefaultServant
352
+ * @see #findDefaultServant
353
+ */
354
+ virtual ::std::shared_ptr<::Ice::Object> removeDefaultServant(const ::std::string& category) = 0;
355
+
356
+ /**
357
+ * Look up a servant in this object adapter's Active Servant Map
358
+ * by the identity of the Ice object it implements.
359
+ *
360
+ * <p class="Note">This operation only tries to look up a servant in
361
+ * the Active Servant Map. It does not attempt to find a servant
362
+ * by using any installed {@link ServantLocator}.
363
+ * @param id The identity of the Ice object for which the servant
364
+ * should be returned.
365
+ * @return The servant that implements the Ice object with the
366
+ * given identity, or null if no such servant has been found.
367
+ * @see Identity
368
+ * @see #findFacet
369
+ * @see #findByProxy
370
+ */
371
+ virtual ::std::shared_ptr<::Ice::Object> find(const Identity& id) const = 0;
372
+
373
+ /**
374
+ * Like {@link #find}, but with a facet. Calling <tt>find(id)</tt>
375
+ * is equivalent to calling {@link #findFacet} with an empty
376
+ * facet.
377
+ * @param id The identity of the Ice object for which the
378
+ * servant should be returned.
379
+ * @param facet The facet. An empty facet means the default
380
+ * facet.
381
+ * @return The servant that implements the Ice object with the
382
+ * given identity and facet, or null if no such servant has been
383
+ * found.
384
+ * @see Identity
385
+ * @see #find
386
+ * @see #findByProxy
387
+ */
388
+ virtual ::std::shared_ptr<::Ice::Object> findFacet(const Identity& id, const ::std::string& facet) const = 0;
389
+
390
+ /**
391
+ * Find all facets with the given identity in the Active Servant
392
+ * Map.
393
+ * @param id The identity of the Ice object for which the facets
394
+ * should be returned.
395
+ * @return A collection containing all the facet names and
396
+ * servants that have been found, or an empty map if there is no
397
+ * facet for the given identity.
398
+ * @see #find
399
+ * @see #findFacet
400
+ */
401
+ virtual ::Ice::FacetMap findAllFacets(const Identity& id) const = 0;
402
+
403
+ /**
404
+ * Look up a servant in this object adapter's Active Servant Map,
405
+ * given a proxy.
406
+ *
407
+ * <p class="Note">This operation only tries to lookup a servant in
408
+ * the Active Servant Map. It does not attempt to find a servant
409
+ * by using any installed {@link ServantLocator}.
410
+ * @param proxy The proxy for which the servant should be returned.
411
+ * @return The servant that matches the proxy, or null if no such
412
+ * servant has been found.
413
+ * @see #find
414
+ * @see #findFacet
415
+ */
416
+ virtual ::std::shared_ptr<::Ice::Object> findByProxy(const ::std::shared_ptr<ObjectPrx>& proxy) const = 0;
417
+
418
+ /**
419
+ * Add a Servant Locator to this object adapter. Adding a servant
420
+ * locator for a category for which a servant locator is already
421
+ * registered throws {@link AlreadyRegisteredException}. To dispatch
422
+ * operation calls on servants, the object adapter tries to find a
423
+ * servant for a given Ice object identity and facet in the
424
+ * following order:
425
+ *
426
+ * <ol>
427
+ *
428
+ * <li>The object adapter tries to find a servant for the identity
429
+ * and facet in the Active Servant Map.</li>
430
+ *
431
+ * <li>If no servant has been found in the Active Servant Map,
432
+ * the object adapter tries to find a servant locator for the
433
+ * category component of the identity. If a locator is found, the
434
+ * object adapter tries to find a servant using this locator.</li>
435
+ *
436
+ * <li>If no servant has been found by any of the preceding steps,
437
+ * the object adapter tries to find a locator for an empty category,
438
+ * regardless of the category contained in the identity. If a
439
+ * locator is found, the object adapter tries to find a servant
440
+ * using this locator.</li>
441
+ *
442
+ * <li>If no servant has been found by any of the preceding steps,
443
+ * the object adapter gives up and the caller receives
444
+ * {@link ObjectNotExistException} or {@link FacetNotExistException}.</li>
445
+ *
446
+ * </ol>
447
+ *
448
+ * <p class="Note">Only one locator for the empty category can be
449
+ * installed.
450
+ * @param locator The locator to add.
451
+ * @param category The category for which the Servant Locator can
452
+ * locate servants, or an empty string if the Servant Locator does
453
+ * not belong to any specific category.
454
+ * @see Identity
455
+ * @see #removeServantLocator
456
+ * @see #findServantLocator
457
+ * @see ServantLocator
458
+ */
459
+ virtual void addServantLocator(const ::std::shared_ptr<ServantLocator>& locator, const ::std::string& category) = 0;
460
+
461
+ /**
462
+ * Remove a Servant Locator from this object adapter.
463
+ * @param category The category for which the Servant Locator can
464
+ * locate servants, or an empty string if the Servant Locator does
465
+ * not belong to any specific category.
466
+ * @return The Servant Locator, or throws {@link NotRegisteredException}
467
+ * if no Servant Locator was found for the given category.
468
+ * @see Identity
469
+ * @see #addServantLocator
470
+ * @see #findServantLocator
471
+ * @see ServantLocator
472
+ */
473
+ virtual ::std::shared_ptr<::Ice::ServantLocator> removeServantLocator(const ::std::string& category) = 0;
474
+
475
+ /**
476
+ * Find a Servant Locator installed with this object adapter.
477
+ * @param category The category for which the Servant Locator can
478
+ * locate servants, or an empty string if the Servant Locator does
479
+ * not belong to any specific category.
480
+ * @return The Servant Locator, or null if no Servant Locator was
481
+ * found for the given category.
482
+ * @see Identity
483
+ * @see #addServantLocator
484
+ * @see #removeServantLocator
485
+ * @see ServantLocator
486
+ */
487
+ virtual ::std::shared_ptr<::Ice::ServantLocator> findServantLocator(const ::std::string& category) const = 0;
488
+
489
+ /**
490
+ * Find the default servant for a specific category.
491
+ * @param category The category of the default servant to find.
492
+ * @return The default servant or null if no default servant was
493
+ * registered for the category.
494
+ * @see #addDefaultServant
495
+ * @see #removeDefaultServant
496
+ */
497
+ virtual ::std::shared_ptr<::Ice::Object> findDefaultServant(const ::std::string& category) const = 0;
498
+
499
+ /**
500
+ * Create a proxy for the object with the given identity. If this
501
+ * object adapter is configured with an adapter id, the return
502
+ * value is an indirect proxy that refers to the adapter id. If
503
+ * a replica group id is also defined, the return value is an
504
+ * indirect proxy that refers to the replica group id. Otherwise,
505
+ * if no adapter id is defined, the return value is a direct
506
+ * proxy containing this object adapter's published endpoints.
507
+ * @param id The object's identity.
508
+ * @return A proxy for the object with the given identity.
509
+ * @see Identity
510
+ */
511
+ virtual ::std::shared_ptr<::Ice::ObjectPrx> createProxy(const Identity& id) const = 0;
512
+
513
+ /**
514
+ * Create a direct proxy for the object with the given identity.
515
+ * The returned proxy contains this object adapter's published
516
+ * endpoints.
517
+ * @param id The object's identity.
518
+ * @return A proxy for the object with the given identity.
519
+ * @see Identity
520
+ */
521
+ virtual ::std::shared_ptr<::Ice::ObjectPrx> createDirectProxy(const Identity& id) const = 0;
522
+
523
+ /**
524
+ * Create an indirect proxy for the object with the given identity.
525
+ * If this object adapter is configured with an adapter id, the
526
+ * return value refers to the adapter id. Otherwise, the return
527
+ * value contains only the object identity.
528
+ * @param id The object's identity.
529
+ * @return A proxy for the object with the given identity.
530
+ * @see Identity
531
+ */
532
+ virtual ::std::shared_ptr<::Ice::ObjectPrx> createIndirectProxy(const Identity& id) const = 0;
533
+
534
+ /**
535
+ * Set an Ice locator for this object adapter. By doing so, the
536
+ * object adapter will register itself with the locator registry
537
+ * when it is activated for the first time. Furthermore, the proxies
538
+ * created by this object adapter will contain the adapter identifier
539
+ * instead of its endpoints. The adapter identifier must be configured
540
+ * using the AdapterId property.
541
+ * @param loc The locator used by this object adapter.
542
+ * @see #createDirectProxy
543
+ * @see Locator
544
+ * @see LocatorRegistry
545
+ */
546
+ virtual void setLocator(const ::std::shared_ptr<LocatorPrx>& loc) = 0;
547
+
548
+ /**
549
+ * Get the Ice locator used by this object adapter.
550
+ * @return The locator used by this object adapter, or null if no locator is
551
+ * used by this object adapter.
552
+ * @see Locator
553
+ * @see #setLocator
554
+ */
555
+ virtual ::std::shared_ptr<::Ice::LocatorPrx> getLocator() const noexcept = 0;
556
+
557
+ /**
558
+ * Get the set of endpoints configured with this object adapter.
559
+ * @return The set of endpoints.
560
+ * @see Endpoint
561
+ */
562
+ virtual ::Ice::EndpointSeq getEndpoints() const noexcept = 0;
563
+
564
+ /**
565
+ * Refresh the set of published endpoints. The run time re-reads
566
+ * the PublishedEndpoints property if it is set and re-reads the
567
+ * list of local interfaces if the adapter is configured to listen
568
+ * on all endpoints. This operation is useful to refresh the endpoint
569
+ * information that is published in the proxies that are created by
570
+ * an object adapter if the network interfaces used by a host changes.
571
+ */
153
572
  virtual void refreshPublishedEndpoints() = 0;
154
573
 
155
- virtual ::Ice::EndpointSeq getPublishedEndpoints() const = 0;
156
-
157
- virtual void setPublishedEndpoints(const ::Ice::EndpointSeq&) = 0;
574
+ /**
575
+ * Get the set of endpoints that proxies created by this object
576
+ * adapter will contain.
577
+ * @return The set of published endpoints.
578
+ * @see #refreshPublishedEndpoints
579
+ * @see Endpoint
580
+ */
581
+ virtual ::Ice::EndpointSeq getPublishedEndpoints() const noexcept = 0;
582
+
583
+ /**
584
+ * Set of the endpoints that proxies created by this object
585
+ * adapter will contain.
586
+ * @param newEndpoints The new set of endpoints that the object adapter will embed in proxies.
587
+ * @see #refreshPublishedEndpoints
588
+ * @see Endpoint
589
+ */
590
+ virtual void setPublishedEndpoints(const EndpointSeq& newEndpoints) = 0;
158
591
  };
159
592
 
160
593
  }
161
594
 
595
+ /// \cond STREAM
162
596
  namespace Ice
163
597
  {
164
598
 
165
599
  }
600
+ /// \endcond
166
601
 
602
+ /// \cond INTERNAL
167
603
  namespace Ice
168
604
  {
169
605
 
170
606
  using ObjectAdapterPtr = ::std::shared_ptr<ObjectAdapter>;
171
607
 
172
608
  }
609
+ /// \endcond
173
610
 
174
611
  #else // C++98 mapping
175
612
 
@@ -182,15 +619,19 @@ namespace Ice
182
619
  {
183
620
 
184
621
  class ObjectAdapter;
185
- ICE_API ::Ice::LocalObject* upCast(::Ice::ObjectAdapter*);
186
- typedef ::IceInternal::Handle< ::Ice::ObjectAdapter> ObjectAdapterPtr;
622
+ /// \cond INTERNAL
623
+ ICE_API LocalObject* upCast(ObjectAdapter*);
624
+ /// \endcond
625
+ typedef ::IceInternal::Handle< ObjectAdapter> ObjectAdapterPtr;
187
626
 
188
627
  }
189
628
 
629
+ /// \cond INTERNAL
190
630
  namespace IceAsync
191
631
  {
192
632
 
193
633
  }
634
+ /// \endcond
194
635
 
195
636
  namespace IceProxy
196
637
  {
@@ -200,7 +641,18 @@ namespace IceProxy
200
641
  namespace Ice
201
642
  {
202
643
 
203
- class ICE_API ObjectAdapter : public virtual ::Ice::LocalObject
644
+ /**
645
+ * The object adapter provides an up-call interface from the Ice
646
+ * run time to the implementation of Ice objects.
647
+ *
648
+ * The object adapter is responsible for receiving requests
649
+ * from endpoints, and for mapping between servants, identities, and
650
+ * proxies.
651
+ * @see Communicator
652
+ * @see ServantLocator
653
+ * \headerfile Ice/Ice.h
654
+ */
655
+ class ICE_API ObjectAdapter : public virtual LocalObject
204
656
  {
205
657
  public:
206
658
 
@@ -208,93 +660,519 @@ public:
208
660
 
209
661
  virtual ~ObjectAdapter();
210
662
 
211
- virtual ::std::string getName() const = 0;
212
-
213
- virtual ::Ice::CommunicatorPtr getCommunicator() const = 0;
214
-
663
+ /**
664
+ * Get the name of this object adapter.
665
+ * @return This object adapter's name.
666
+ */
667
+ virtual ::std::string getName() const ICE_NOEXCEPT = 0;
668
+
669
+ /**
670
+ * Get the communicator this object adapter belongs to.
671
+ * @return This object adapter's communicator.
672
+ * @see Communicator
673
+ */
674
+ virtual CommunicatorPtr getCommunicator() const ICE_NOEXCEPT = 0;
675
+
676
+ /**
677
+ * Activate all endpoints that belong to this object adapter.
678
+ * After activation, the object adapter can dispatch requests
679
+ * received through its endpoints.
680
+ * @see #hold
681
+ * @see #deactivate
682
+ */
215
683
  virtual void activate() = 0;
216
684
 
685
+ /**
686
+ * Temporarily hold receiving and dispatching requests. The object
687
+ * adapter can be reactivated with the {@link #activate} operation.
688
+ *
689
+ * <p class="Note"> Holding is not immediate, i.e., after {@link #hold}
690
+ * returns, the object adapter might still be active for some
691
+ * time. You can use {@link #waitForHold} to wait until holding is
692
+ * complete.
693
+ * @see #activate
694
+ * @see #deactivate
695
+ * @see #waitForHold
696
+ */
217
697
  virtual void hold() = 0;
218
698
 
699
+ /**
700
+ * Wait until the object adapter holds requests. Calling {@link #hold}
701
+ * initiates holding of requests, and {@link #waitForHold} only returns
702
+ * when holding of requests has been completed.
703
+ * @see #hold
704
+ * @see #waitForDeactivate
705
+ * @see Communicator#waitForShutdown
706
+ */
219
707
  virtual void waitForHold() = 0;
220
708
 
221
- virtual void deactivate() = 0;
222
-
223
- virtual void waitForDeactivate() = 0;
224
-
225
- virtual bool isDeactivated() const = 0;
226
-
709
+ /**
710
+ * Deactivate all endpoints that belong to this object adapter.
711
+ * After deactivation, the object adapter stops receiving
712
+ * requests through its endpoints. Object adapters that have been
713
+ * deactivated must not be reactivated again, and cannot be used
714
+ * otherwise. Attempts to use a deactivated object adapter raise
715
+ * {@link ObjectAdapterDeactivatedException} however, attempts to
716
+ * {@link #deactivate} an already deactivated object adapter are
717
+ * ignored and do nothing. Once deactivated, it is possible to
718
+ * destroy the adapter to clean up resources and then create and
719
+ * activate a new adapter with the same name.
720
+ *
721
+ * <p class="Note"> After {@link #deactivate} returns, no new requests
722
+ * are processed by the object adapter. However, requests that
723
+ * have been started before {@link #deactivate} was called might
724
+ * still be active. You can use {@link #waitForDeactivate} to wait
725
+ * for the completion of all requests for this object adapter.
726
+ * @see #activate
727
+ * @see #hold
728
+ * @see #waitForDeactivate
729
+ * @see Communicator#shutdown
730
+ */
731
+ virtual void deactivate() ICE_NOEXCEPT = 0;
732
+
733
+ /**
734
+ * Wait until the object adapter has deactivated. Calling
735
+ * {@link #deactivate} initiates object adapter deactivation, and
736
+ * {@link #waitForDeactivate} only returns when deactivation has
737
+ * been completed.
738
+ * @see #deactivate
739
+ * @see #waitForHold
740
+ * @see Communicator#waitForShutdown
741
+ */
742
+ virtual void waitForDeactivate() ICE_NOEXCEPT = 0;
743
+
744
+ /**
745
+ * Check whether object adapter has been deactivated.
746
+ * @return Whether adapter has been deactivated.
747
+ * @see Communicator#shutdown
748
+ */
749
+ virtual bool isDeactivated() const ICE_NOEXCEPT = 0;
750
+
751
+ /**
752
+ * Destroys the object adapter and cleans up all resources held by
753
+ * the object adapter. If the object adapter has not yet been
754
+ * deactivated, destroy implicitly initiates the deactivation
755
+ * and waits for it to finish. Subsequent calls to destroy are
756
+ * ignored. Once destroy has returned, it is possible to create
757
+ * another object adapter with the same name.
758
+ * @see #deactivate
759
+ * @see #waitForDeactivate
760
+ * @see Communicator#destroy
761
+ */
227
762
  virtual void destroy() ICE_NOEXCEPT = 0;
228
763
 
229
- virtual ::Ice::ObjectPrx add(const ::Ice::ObjectPtr&, const ::Ice::Identity&) = 0;
230
-
231
- virtual ::Ice::ObjectPrx addFacet(const ::Ice::ObjectPtr&, const ::Ice::Identity&, const ::std::string&) = 0;
232
-
233
- virtual ::Ice::ObjectPrx addWithUUID(const ::Ice::ObjectPtr&) = 0;
234
-
235
- virtual ::Ice::ObjectPrx addFacetWithUUID(const ::Ice::ObjectPtr&, const ::std::string&) = 0;
236
-
237
- virtual void addDefaultServant(const ::Ice::ObjectPtr&, const ::std::string&) = 0;
238
-
239
- virtual ::Ice::ObjectPtr remove(const ::Ice::Identity&) = 0;
240
-
241
- virtual ::Ice::ObjectPtr removeFacet(const ::Ice::Identity&, const ::std::string&) = 0;
242
-
243
- virtual ::Ice::FacetMap removeAllFacets(const ::Ice::Identity&) = 0;
244
-
245
- virtual ::Ice::ObjectPtr removeDefaultServant(const ::std::string&) = 0;
246
-
247
- virtual ::Ice::ObjectPtr find(const ::Ice::Identity&) const = 0;
248
-
249
- virtual ::Ice::ObjectPtr findFacet(const ::Ice::Identity&, const ::std::string&) const = 0;
250
-
251
- virtual ::Ice::FacetMap findAllFacets(const ::Ice::Identity&) const = 0;
252
-
253
- virtual ::Ice::ObjectPtr findByProxy(const ::Ice::ObjectPrx&) const = 0;
254
-
255
- virtual void addServantLocator(const ::Ice::ServantLocatorPtr&, const ::std::string&) = 0;
256
-
257
- virtual ::Ice::ServantLocatorPtr removeServantLocator(const ::std::string&) = 0;
258
-
259
- virtual ::Ice::ServantLocatorPtr findServantLocator(const ::std::string&) const = 0;
260
-
261
- virtual ::Ice::ObjectPtr findDefaultServant(const ::std::string&) const = 0;
262
-
263
- virtual ::Ice::ObjectPrx createProxy(const ::Ice::Identity&) const = 0;
264
-
265
- virtual ::Ice::ObjectPrx createDirectProxy(const ::Ice::Identity&) const = 0;
266
-
267
- virtual ::Ice::ObjectPrx createIndirectProxy(const ::Ice::Identity&) const = 0;
268
-
269
- virtual void setLocator(const ::Ice::LocatorPrx&) = 0;
270
-
271
- virtual ::Ice::LocatorPrx getLocator() const = 0;
272
-
273
- virtual ::Ice::EndpointSeq getEndpoints() const = 0;
274
-
764
+ /**
765
+ * Add a servant to this object adapter's Active Servant Map. Note
766
+ * that one servant can implement several Ice objects by registering
767
+ * the servant with multiple identities. Adding a servant with an
768
+ * identity that is in the map already throws {@link AlreadyRegisteredException}.
769
+ * @param servant The servant to add.
770
+ * @param id The identity of the Ice object that is implemented by
771
+ * the servant.
772
+ * @return A proxy that matches the given identity and this object
773
+ * adapter.
774
+ * @see Identity
775
+ * @see #addFacet
776
+ * @see #addWithUUID
777
+ * @see #remove
778
+ * @see #find
779
+ */
780
+ virtual ObjectPrx add(const ObjectPtr& servant, const Identity& id) = 0;
781
+
782
+ /**
783
+ * Like {@link #add}, but with a facet. Calling <tt>add(servant, id)</tt>
784
+ * is equivalent to calling {@link #addFacet} with an empty facet.
785
+ * @param servant The servant to add.
786
+ * @param id The identity of the Ice object that is implemented by
787
+ * the servant.
788
+ * @param facet The facet. An empty facet means the default facet.
789
+ * @return A proxy that matches the given identity, facet, and
790
+ * this object adapter.
791
+ * @see Identity
792
+ * @see #add
793
+ * @see #addFacetWithUUID
794
+ * @see #removeFacet
795
+ * @see #findFacet
796
+ */
797
+ virtual ObjectPrx addFacet(const ObjectPtr& servant, const Identity& id, const ::std::string& facet) = 0;
798
+
799
+ /**
800
+ * Add a servant to this object adapter's Active Servant Map,
801
+ * using an automatically generated UUID as its identity. Note that
802
+ * the generated UUID identity can be accessed using the proxy's
803
+ * <tt>ice_getIdentity</tt> operation.
804
+ * @param servant The servant to add.
805
+ * @return A proxy that matches the generated UUID identity and
806
+ * this object adapter.
807
+ * @see Identity
808
+ * @see #add
809
+ * @see #addFacetWithUUID
810
+ * @see #remove
811
+ * @see #find
812
+ */
813
+ virtual ObjectPrx addWithUUID(const ObjectPtr& servant) = 0;
814
+
815
+ /**
816
+ * Like {@link #addWithUUID}, but with a facet. Calling
817
+ * <tt>addWithUUID(servant)</tt> is equivalent to calling
818
+ * {@link #addFacetWithUUID} with an empty facet.
819
+ * @param servant The servant to add.
820
+ * @param facet The facet. An empty facet means the default
821
+ * facet.
822
+ * @return A proxy that matches the generated UUID identity,
823
+ * facet, and this object adapter.
824
+ * @see Identity
825
+ * @see #addFacet
826
+ * @see #addWithUUID
827
+ * @see #removeFacet
828
+ * @see #findFacet
829
+ */
830
+ virtual ObjectPrx addFacetWithUUID(const ObjectPtr& servant, const ::std::string& facet) = 0;
831
+
832
+ /**
833
+ * Add a default servant to handle requests for a specific
834
+ * category. Adding a default servant for a category for
835
+ * which a default servant is already registered throws
836
+ * {@link AlreadyRegisteredException}. To dispatch operation
837
+ * calls on servants, the object adapter tries to find a servant
838
+ * for a given Ice object identity and facet in the following
839
+ * order:
840
+ *
841
+ * <ol>
842
+ *
843
+ * <li>The object adapter tries to find a servant for the identity
844
+ * and facet in the Active Servant Map.</li>
845
+ *
846
+ * <li>If no servant has been found in the Active Servant Map, the
847
+ * object adapter tries to find a default servant for the category
848
+ * component of the identity.</li>
849
+ *
850
+ * <li>If no servant has been found by any of the preceding steps,
851
+ * the object adapter tries to find a default servant for an empty
852
+ * category, regardless of the category contained in the identity.</li>
853
+ *
854
+ * <li>If no servant has been found by any of the preceding steps,
855
+ * the object adapter gives up and the caller receives
856
+ * {@link ObjectNotExistException} or {@link FacetNotExistException}.</li>
857
+ *
858
+ * </ol>
859
+ * @param servant The default servant.
860
+ * @param category The category for which the default servant is
861
+ * registered. An empty category means it will handle all categories.
862
+ * @see #removeDefaultServant
863
+ * @see #findDefaultServant
864
+ */
865
+ virtual void addDefaultServant(const ObjectPtr& servant, const ::std::string& category) = 0;
866
+
867
+ /**
868
+ * Remove a servant (that is, the default facet) from the object
869
+ * adapter's Active Servant Map.
870
+ * @param id The identity of the Ice object that is implemented by
871
+ * the servant. If the servant implements multiple Ice objects,
872
+ * {@link #remove} has to be called for all those Ice objects.
873
+ * Removing an identity that is not in the map throws
874
+ * {@link NotRegisteredException}.
875
+ * @return The removed servant.
876
+ * @see Identity
877
+ * @see #add
878
+ * @see #addWithUUID
879
+ */
880
+ virtual ObjectPtr remove(const Identity& id) = 0;
881
+
882
+ /**
883
+ * Like {@link #remove}, but with a facet. Calling <tt>remove(id)</tt>
884
+ * is equivalent to calling {@link #removeFacet} with an empty facet.
885
+ * @param id The identity of the Ice object that is implemented by
886
+ * the servant.
887
+ * @param facet The facet. An empty facet means the default facet.
888
+ * @return The removed servant.
889
+ * @see Identity
890
+ * @see #addFacet
891
+ * @see #addFacetWithUUID
892
+ */
893
+ virtual ObjectPtr removeFacet(const Identity& id, const ::std::string& facet) = 0;
894
+
895
+ /**
896
+ * Remove all facets with the given identity from the Active
897
+ * Servant Map. The operation completely removes the Ice object,
898
+ * including its default facet. Removing an identity that
899
+ * is not in the map throws {@link NotRegisteredException}.
900
+ * @param id The identity of the Ice object to be removed.
901
+ * @return A collection containing all the facet names and
902
+ * servants of the removed Ice object.
903
+ * @see #remove
904
+ * @see #removeFacet
905
+ */
906
+ virtual FacetMap removeAllFacets(const Identity& id) = 0;
907
+
908
+ /**
909
+ * Remove the default servant for a specific category. Attempting
910
+ * to remove a default servant for a category that is not
911
+ * registered throws {@link NotRegisteredException}.
912
+ * @param category The category of the default servant to remove.
913
+ * @return The default servant.
914
+ * @see #addDefaultServant
915
+ * @see #findDefaultServant
916
+ */
917
+ virtual ObjectPtr removeDefaultServant(const ::std::string& category) = 0;
918
+
919
+ /**
920
+ * Look up a servant in this object adapter's Active Servant Map
921
+ * by the identity of the Ice object it implements.
922
+ *
923
+ * <p class="Note">This operation only tries to look up a servant in
924
+ * the Active Servant Map. It does not attempt to find a servant
925
+ * by using any installed {@link ServantLocator}.
926
+ * @param id The identity of the Ice object for which the servant
927
+ * should be returned.
928
+ * @return The servant that implements the Ice object with the
929
+ * given identity, or null if no such servant has been found.
930
+ * @see Identity
931
+ * @see #findFacet
932
+ * @see #findByProxy
933
+ */
934
+ virtual ObjectPtr find(const Identity& id) const = 0;
935
+
936
+ /**
937
+ * Like {@link #find}, but with a facet. Calling <tt>find(id)</tt>
938
+ * is equivalent to calling {@link #findFacet} with an empty
939
+ * facet.
940
+ * @param id The identity of the Ice object for which the
941
+ * servant should be returned.
942
+ * @param facet The facet. An empty facet means the default
943
+ * facet.
944
+ * @return The servant that implements the Ice object with the
945
+ * given identity and facet, or null if no such servant has been
946
+ * found.
947
+ * @see Identity
948
+ * @see #find
949
+ * @see #findByProxy
950
+ */
951
+ virtual ObjectPtr findFacet(const Identity& id, const ::std::string& facet) const = 0;
952
+
953
+ /**
954
+ * Find all facets with the given identity in the Active Servant
955
+ * Map.
956
+ * @param id The identity of the Ice object for which the facets
957
+ * should be returned.
958
+ * @return A collection containing all the facet names and
959
+ * servants that have been found, or an empty map if there is no
960
+ * facet for the given identity.
961
+ * @see #find
962
+ * @see #findFacet
963
+ */
964
+ virtual FacetMap findAllFacets(const Identity& id) const = 0;
965
+
966
+ /**
967
+ * Look up a servant in this object adapter's Active Servant Map,
968
+ * given a proxy.
969
+ *
970
+ * <p class="Note">This operation only tries to lookup a servant in
971
+ * the Active Servant Map. It does not attempt to find a servant
972
+ * by using any installed {@link ServantLocator}.
973
+ * @param proxy The proxy for which the servant should be returned.
974
+ * @return The servant that matches the proxy, or null if no such
975
+ * servant has been found.
976
+ * @see #find
977
+ * @see #findFacet
978
+ */
979
+ virtual ObjectPtr findByProxy(const ObjectPrx& proxy) const = 0;
980
+
981
+ /**
982
+ * Add a Servant Locator to this object adapter. Adding a servant
983
+ * locator for a category for which a servant locator is already
984
+ * registered throws {@link AlreadyRegisteredException}. To dispatch
985
+ * operation calls on servants, the object adapter tries to find a
986
+ * servant for a given Ice object identity and facet in the
987
+ * following order:
988
+ *
989
+ * <ol>
990
+ *
991
+ * <li>The object adapter tries to find a servant for the identity
992
+ * and facet in the Active Servant Map.</li>
993
+ *
994
+ * <li>If no servant has been found in the Active Servant Map,
995
+ * the object adapter tries to find a servant locator for the
996
+ * category component of the identity. If a locator is found, the
997
+ * object adapter tries to find a servant using this locator.</li>
998
+ *
999
+ * <li>If no servant has been found by any of the preceding steps,
1000
+ * the object adapter tries to find a locator for an empty category,
1001
+ * regardless of the category contained in the identity. If a
1002
+ * locator is found, the object adapter tries to find a servant
1003
+ * using this locator.</li>
1004
+ *
1005
+ * <li>If no servant has been found by any of the preceding steps,
1006
+ * the object adapter gives up and the caller receives
1007
+ * {@link ObjectNotExistException} or {@link FacetNotExistException}.</li>
1008
+ *
1009
+ * </ol>
1010
+ *
1011
+ * <p class="Note">Only one locator for the empty category can be
1012
+ * installed.
1013
+ * @param locator The locator to add.
1014
+ * @param category The category for which the Servant Locator can
1015
+ * locate servants, or an empty string if the Servant Locator does
1016
+ * not belong to any specific category.
1017
+ * @see Identity
1018
+ * @see #removeServantLocator
1019
+ * @see #findServantLocator
1020
+ * @see ServantLocator
1021
+ */
1022
+ virtual void addServantLocator(const ServantLocatorPtr& locator, const ::std::string& category) = 0;
1023
+
1024
+ /**
1025
+ * Remove a Servant Locator from this object adapter.
1026
+ * @param category The category for which the Servant Locator can
1027
+ * locate servants, or an empty string if the Servant Locator does
1028
+ * not belong to any specific category.
1029
+ * @return The Servant Locator, or throws {@link NotRegisteredException}
1030
+ * if no Servant Locator was found for the given category.
1031
+ * @see Identity
1032
+ * @see #addServantLocator
1033
+ * @see #findServantLocator
1034
+ * @see ServantLocator
1035
+ */
1036
+ virtual ServantLocatorPtr removeServantLocator(const ::std::string& category) = 0;
1037
+
1038
+ /**
1039
+ * Find a Servant Locator installed with this object adapter.
1040
+ * @param category The category for which the Servant Locator can
1041
+ * locate servants, or an empty string if the Servant Locator does
1042
+ * not belong to any specific category.
1043
+ * @return The Servant Locator, or null if no Servant Locator was
1044
+ * found for the given category.
1045
+ * @see Identity
1046
+ * @see #addServantLocator
1047
+ * @see #removeServantLocator
1048
+ * @see ServantLocator
1049
+ */
1050
+ virtual ServantLocatorPtr findServantLocator(const ::std::string& category) const = 0;
1051
+
1052
+ /**
1053
+ * Find the default servant for a specific category.
1054
+ * @param category The category of the default servant to find.
1055
+ * @return The default servant or null if no default servant was
1056
+ * registered for the category.
1057
+ * @see #addDefaultServant
1058
+ * @see #removeDefaultServant
1059
+ */
1060
+ virtual ObjectPtr findDefaultServant(const ::std::string& category) const = 0;
1061
+
1062
+ /**
1063
+ * Create a proxy for the object with the given identity. If this
1064
+ * object adapter is configured with an adapter id, the return
1065
+ * value is an indirect proxy that refers to the adapter id. If
1066
+ * a replica group id is also defined, the return value is an
1067
+ * indirect proxy that refers to the replica group id. Otherwise,
1068
+ * if no adapter id is defined, the return value is a direct
1069
+ * proxy containing this object adapter's published endpoints.
1070
+ * @param id The object's identity.
1071
+ * @return A proxy for the object with the given identity.
1072
+ * @see Identity
1073
+ */
1074
+ virtual ObjectPrx createProxy(const Identity& id) const = 0;
1075
+
1076
+ /**
1077
+ * Create a direct proxy for the object with the given identity.
1078
+ * The returned proxy contains this object adapter's published
1079
+ * endpoints.
1080
+ * @param id The object's identity.
1081
+ * @return A proxy for the object with the given identity.
1082
+ * @see Identity
1083
+ */
1084
+ virtual ObjectPrx createDirectProxy(const Identity& id) const = 0;
1085
+
1086
+ /**
1087
+ * Create an indirect proxy for the object with the given identity.
1088
+ * If this object adapter is configured with an adapter id, the
1089
+ * return value refers to the adapter id. Otherwise, the return
1090
+ * value contains only the object identity.
1091
+ * @param id The object's identity.
1092
+ * @return A proxy for the object with the given identity.
1093
+ * @see Identity
1094
+ */
1095
+ virtual ObjectPrx createIndirectProxy(const Identity& id) const = 0;
1096
+
1097
+ /**
1098
+ * Set an Ice locator for this object adapter. By doing so, the
1099
+ * object adapter will register itself with the locator registry
1100
+ * when it is activated for the first time. Furthermore, the proxies
1101
+ * created by this object adapter will contain the adapter identifier
1102
+ * instead of its endpoints. The adapter identifier must be configured
1103
+ * using the AdapterId property.
1104
+ * @param loc The locator used by this object adapter.
1105
+ * @see #createDirectProxy
1106
+ * @see Locator
1107
+ * @see LocatorRegistry
1108
+ */
1109
+ virtual void setLocator(const LocatorPrx& loc) = 0;
1110
+
1111
+ /**
1112
+ * Get the Ice locator used by this object adapter.
1113
+ * @return The locator used by this object adapter, or null if no locator is
1114
+ * used by this object adapter.
1115
+ * @see Locator
1116
+ * @see #setLocator
1117
+ */
1118
+ virtual LocatorPrx getLocator() const ICE_NOEXCEPT = 0;
1119
+
1120
+ /**
1121
+ * Get the set of endpoints configured with this object adapter.
1122
+ * @return The set of endpoints.
1123
+ * @see Endpoint
1124
+ */
1125
+ virtual EndpointSeq getEndpoints() const ICE_NOEXCEPT = 0;
1126
+
1127
+ /**
1128
+ * Refresh the set of published endpoints. The run time re-reads
1129
+ * the PublishedEndpoints property if it is set and re-reads the
1130
+ * list of local interfaces if the adapter is configured to listen
1131
+ * on all endpoints. This operation is useful to refresh the endpoint
1132
+ * information that is published in the proxies that are created by
1133
+ * an object adapter if the network interfaces used by a host changes.
1134
+ */
275
1135
  virtual void refreshPublishedEndpoints() = 0;
276
1136
 
277
- virtual ::Ice::EndpointSeq getPublishedEndpoints() const = 0;
278
-
279
- virtual void setPublishedEndpoints(const ::Ice::EndpointSeq&) = 0;
1137
+ /**
1138
+ * Get the set of endpoints that proxies created by this object
1139
+ * adapter will contain.
1140
+ * @return The set of published endpoints.
1141
+ * @see #refreshPublishedEndpoints
1142
+ * @see Endpoint
1143
+ */
1144
+ virtual EndpointSeq getPublishedEndpoints() const ICE_NOEXCEPT = 0;
1145
+
1146
+ /**
1147
+ * Set of the endpoints that proxies created by this object
1148
+ * adapter will contain.
1149
+ * @param newEndpoints The new set of endpoints that the object adapter will embed in proxies.
1150
+ * @see #refreshPublishedEndpoints
1151
+ * @see Endpoint
1152
+ */
1153
+ virtual void setPublishedEndpoints(const EndpointSeq& newEndpoints) = 0;
280
1154
  };
281
1155
 
1156
+ /// \cond INTERNAL
282
1157
  inline bool operator==(const ObjectAdapter& lhs, const ObjectAdapter& rhs)
283
1158
  {
284
- return static_cast<const ::Ice::LocalObject&>(lhs) == static_cast<const ::Ice::LocalObject&>(rhs);
1159
+ return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
285
1160
  }
286
1161
 
287
1162
  inline bool operator<(const ObjectAdapter& lhs, const ObjectAdapter& rhs)
288
1163
  {
289
- return static_cast<const ::Ice::LocalObject&>(lhs) < static_cast<const ::Ice::LocalObject&>(rhs);
1164
+ return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
290
1165
  }
1166
+ /// \endcond
291
1167
 
292
1168
  }
293
1169
 
1170
+ /// \cond STREAM
294
1171
  namespace Ice
295
1172
  {
296
1173
 
297
1174
  }
1175
+ /// \endcond
298
1176
 
299
1177
  #endif
300
1178