zeroc-ice 3.6b1

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 (675) hide show
  1. checksums.yaml +7 -0
  2. data/ICE_LICENSE +54 -0
  3. data/LICENSE +339 -0
  4. data/bin/slice2rb +17 -0
  5. data/ext/Communicator.cpp +596 -0
  6. data/ext/Communicator.h +25 -0
  7. data/ext/Config.h +111 -0
  8. data/ext/Connection.cpp +381 -0
  9. data/ext/Connection.h +26 -0
  10. data/ext/Endpoint.cpp +311 -0
  11. data/ext/Endpoint.h +27 -0
  12. data/ext/ImplicitContext.cpp +152 -0
  13. data/ext/ImplicitContext.h +25 -0
  14. data/ext/Init.cpp +52 -0
  15. data/ext/Logger.cpp +151 -0
  16. data/ext/Logger.h +28 -0
  17. data/ext/ObjectFactory.cpp +140 -0
  18. data/ext/ObjectFactory.h +50 -0
  19. data/ext/Operation.cpp +676 -0
  20. data/ext/Operation.h +36 -0
  21. data/ext/Properties.cpp +369 -0
  22. data/ext/Properties.h +25 -0
  23. data/ext/Proxy.cpp +1354 -0
  24. data/ext/Proxy.h +27 -0
  25. data/ext/Slice.cpp +223 -0
  26. data/ext/Slice.h +22 -0
  27. data/ext/Types.cpp +3160 -0
  28. data/ext/Types.h +545 -0
  29. data/ext/Util.cpp +792 -0
  30. data/ext/Util.h +511 -0
  31. data/ext/extconf.rb +118 -0
  32. data/ext/ice/BZIP_LICENSE +42 -0
  33. data/ext/ice/MCPP_LICENSE +36 -0
  34. data/ext/ice/bzip2/blocksort.c +1094 -0
  35. data/ext/ice/bzip2/bzlib.c +1572 -0
  36. data/ext/ice/bzip2/bzlib.h +282 -0
  37. data/ext/ice/bzip2/bzlib_private.h +509 -0
  38. data/ext/ice/bzip2/compress.c +672 -0
  39. data/ext/ice/bzip2/crctable.c +104 -0
  40. data/ext/ice/bzip2/decompress.c +646 -0
  41. data/ext/ice/bzip2/huffman.c +205 -0
  42. data/ext/ice/bzip2/randtable.c +84 -0
  43. data/ext/ice/cpp/include/Ice/ACMF.h +30 -0
  44. data/ext/ice/cpp/include/Ice/Application.h +156 -0
  45. data/ext/ice/cpp/include/Ice/AsyncResult.h +363 -0
  46. data/ext/ice/cpp/include/Ice/AsyncResultF.h +26 -0
  47. data/ext/ice/cpp/include/Ice/BasicStream.h +1315 -0
  48. data/ext/ice/cpp/include/Ice/Buffer.h +159 -0
  49. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +74 -0
  50. data/ext/ice/cpp/include/Ice/Communicator.h +194 -0
  51. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +115 -0
  52. data/ext/ice/cpp/include/Ice/CommunicatorF.h +60 -0
  53. data/ext/ice/cpp/include/Ice/Config.h +97 -0
  54. data/ext/ice/cpp/include/Ice/Connection.h +495 -0
  55. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +115 -0
  56. data/ext/ice/cpp/include/Ice/ConnectionF.h +72 -0
  57. data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +30 -0
  58. data/ext/ice/cpp/include/Ice/ConnectionIF.h +37 -0
  59. data/ext/ice/cpp/include/Ice/Current.h +94 -0
  60. data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +48 -0
  61. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +62 -0
  62. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +33 -0
  63. data/ext/ice/cpp/include/Ice/Dispatcher.h +51 -0
  64. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +105 -0
  65. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +29 -0
  66. data/ext/ice/cpp/include/Ice/Endpoint.h +350 -0
  67. data/ext/ice/cpp/include/Ice/EndpointF.h +97 -0
  68. data/ext/ice/cpp/include/Ice/EndpointTypes.h +74 -0
  69. data/ext/ice/cpp/include/Ice/Exception.h +114 -0
  70. data/ext/ice/cpp/include/Ice/FacetMap.h +56 -0
  71. data/ext/ice/cpp/include/Ice/FactoryTable.h +69 -0
  72. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +87 -0
  73. data/ext/ice/cpp/include/Ice/Format.h +39 -0
  74. data/ext/ice/cpp/include/Ice/Functional.h +138 -0
  75. data/ext/ice/cpp/include/Ice/GCObject.h +73 -0
  76. data/ext/ice/cpp/include/Ice/Handle.h +192 -0
  77. data/ext/ice/cpp/include/Ice/Ice.h +54 -0
  78. data/ext/ice/cpp/include/Ice/Identity.h +160 -0
  79. data/ext/ice/cpp/include/Ice/ImplicitContext.h +96 -0
  80. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +60 -0
  81. data/ext/ice/cpp/include/Ice/Incoming.h +131 -0
  82. data/ext/ice/cpp/include/Ice/IncomingAsync.h +108 -0
  83. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +35 -0
  84. data/ext/ice/cpp/include/Ice/Initialize.h +141 -0
  85. data/ext/ice/cpp/include/Ice/InstanceF.h +26 -0
  86. data/ext/ice/cpp/include/Ice/Instrumentation.h +377 -0
  87. data/ext/ice/cpp/include/Ice/InstrumentationF.h +71 -0
  88. data/ext/ice/cpp/include/Ice/LocalException.h +1022 -0
  89. data/ext/ice/cpp/include/Ice/LocalObject.h +36 -0
  90. data/ext/ice/cpp/include/Ice/LocalObjectF.h +26 -0
  91. data/ext/ice/cpp/include/Ice/Locator.h +2191 -0
  92. data/ext/ice/cpp/include/Ice/LocatorF.h +89 -0
  93. data/ext/ice/cpp/include/Ice/Logger.h +94 -0
  94. data/ext/ice/cpp/include/Ice/LoggerF.h +60 -0
  95. data/ext/ice/cpp/include/Ice/LoggerUtil.h +153 -0
  96. data/ext/ice/cpp/include/Ice/Makefile +26 -0
  97. data/ext/ice/cpp/include/Ice/Metrics.h +2989 -0
  98. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +662 -0
  99. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +144 -0
  100. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +576 -0
  101. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +55 -0
  102. data/ext/ice/cpp/include/Ice/Object.h +165 -0
  103. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +162 -0
  104. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +60 -0
  105. data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +26 -0
  106. data/ext/ice/cpp/include/Ice/ObjectF.h +26 -0
  107. data/ext/ice/cpp/include/Ice/ObjectFactory.h +86 -0
  108. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +60 -0
  109. data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +26 -0
  110. data/ext/ice/cpp/include/Ice/ObserverHelper.h +177 -0
  111. data/ext/ice/cpp/include/Ice/Outgoing.h +197 -0
  112. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +264 -0
  113. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +38 -0
  114. data/ext/ice/cpp/include/Ice/Plugin.h +121 -0
  115. data/ext/ice/cpp/include/Ice/PluginF.h +66 -0
  116. data/ext/ice/cpp/include/Ice/Process.h +568 -0
  117. data/ext/ice/cpp/include/Ice/ProcessF.h +77 -0
  118. data/ext/ice/cpp/include/Ice/Properties.h +130 -0
  119. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +824 -0
  120. data/ext/ice/cpp/include/Ice/PropertiesF.h +83 -0
  121. data/ext/ice/cpp/include/Ice/Protocol.h +242 -0
  122. data/ext/ice/cpp/include/Ice/Proxy.h +2448 -0
  123. data/ext/ice/cpp/include/Ice/ProxyF.h +78 -0
  124. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +26 -0
  125. data/ext/ice/cpp/include/Ice/ProxyHandle.h +330 -0
  126. data/ext/ice/cpp/include/Ice/ReferenceF.h +34 -0
  127. data/ext/ice/cpp/include/Ice/RemoteLogger.h +1496 -0
  128. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +29 -0
  129. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +25 -0
  130. data/ext/ice/cpp/include/Ice/Router.h +1155 -0
  131. data/ext/ice/cpp/include/Ice/RouterF.h +77 -0
  132. data/ext/ice/cpp/include/Ice/ServantLocator.h +90 -0
  133. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +60 -0
  134. data/ext/ice/cpp/include/Ice/ServantManagerF.h +26 -0
  135. data/ext/ice/cpp/include/Ice/Service.h +260 -0
  136. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +56 -0
  137. data/ext/ice/cpp/include/Ice/SliceChecksums.h +34 -0
  138. data/ext/ice/cpp/include/Ice/SlicedData.h +103 -0
  139. data/ext/ice/cpp/include/Ice/SlicedDataF.h +34 -0
  140. data/ext/ice/cpp/include/Ice/Stream.h +449 -0
  141. data/ext/ice/cpp/include/Ice/StreamF.h +30 -0
  142. data/ext/ice/cpp/include/Ice/StreamHelpers.h +877 -0
  143. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +28 -0
  144. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +56 -0
  145. data/ext/ice/cpp/include/Ice/Version.h +254 -0
  146. data/ext/ice/cpp/include/IceSSL/Config.h +23 -0
  147. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +119 -0
  148. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +101 -0
  149. data/ext/ice/cpp/include/IceSSL/IceSSL.h +22 -0
  150. data/ext/ice/cpp/include/IceSSL/Makefile +26 -0
  151. data/ext/ice/cpp/include/IceSSL/Plugin.h +558 -0
  152. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +119 -0
  153. data/ext/ice/cpp/include/IceUtil/Cache.h +362 -0
  154. data/ext/ice/cpp/include/IceUtil/Cond.h +323 -0
  155. data/ext/ice/cpp/include/IceUtil/Config.h +234 -0
  156. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +50 -0
  157. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +70 -0
  158. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +45 -0
  159. data/ext/ice/cpp/include/IceUtil/Exception.h +184 -0
  160. data/ext/ice/cpp/include/IceUtil/Functional.h +389 -0
  161. data/ext/ice/cpp/include/IceUtil/Handle.h +266 -0
  162. data/ext/ice/cpp/include/IceUtil/IceUtil.h +51 -0
  163. data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +302 -0
  164. data/ext/ice/cpp/include/IceUtil/InputUtil.h +47 -0
  165. data/ext/ice/cpp/include/IceUtil/Iterator.h +36 -0
  166. data/ext/ice/cpp/include/IceUtil/Lock.h +135 -0
  167. data/ext/ice/cpp/include/IceUtil/Makefile +26 -0
  168. data/ext/ice/cpp/include/IceUtil/Monitor.h +249 -0
  169. data/ext/ice/cpp/include/IceUtil/Mutex.h +357 -0
  170. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +28 -0
  171. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +83 -0
  172. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +82 -0
  173. data/ext/ice/cpp/include/IceUtil/Optional.h +322 -0
  174. data/ext/ice/cpp/include/IceUtil/Options.h +141 -0
  175. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +362 -0
  176. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +19 -0
  177. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +26 -0
  178. data/ext/ice/cpp/include/IceUtil/Random.h +24 -0
  179. data/ext/ice/cpp/include/IceUtil/RecMutex.h +113 -0
  180. data/ext/ice/cpp/include/IceUtil/SHA1.h +65 -0
  181. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +44 -0
  182. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +97 -0
  183. data/ext/ice/cpp/include/IceUtil/Shared.h +168 -0
  184. data/ext/ice/cpp/include/IceUtil/StringConverter.h +175 -0
  185. data/ext/ice/cpp/include/IceUtil/StringUtil.h +91 -0
  186. data/ext/ice/cpp/include/IceUtil/Thread.h +181 -0
  187. data/ext/ice/cpp/include/IceUtil/ThreadException.h +108 -0
  188. data/ext/ice/cpp/include/IceUtil/Time.h +209 -0
  189. data/ext/ice/cpp/include/IceUtil/Timer.h +143 -0
  190. data/ext/ice/cpp/include/IceUtil/UUID.h +22 -0
  191. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +42 -0
  192. data/ext/ice/cpp/include/IceUtil/UniquePtr.h +101 -0
  193. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +64 -0
  194. data/ext/ice/cpp/include/Slice/Checksum.h +26 -0
  195. data/ext/ice/cpp/include/Slice/CsUtil.h +92 -0
  196. data/ext/ice/cpp/include/Slice/DotNetNames.h +34 -0
  197. data/ext/ice/cpp/include/Slice/FileTracker.h +71 -0
  198. data/ext/ice/cpp/include/Slice/JavaUtil.h +277 -0
  199. data/ext/ice/cpp/include/Slice/Makefile +26 -0
  200. data/ext/ice/cpp/include/Slice/PHPUtil.h +50 -0
  201. data/ext/ice/cpp/include/Slice/Parser.h +1116 -0
  202. data/ext/ice/cpp/include/Slice/Preprocessor.h +68 -0
  203. data/ext/ice/cpp/include/Slice/PythonUtil.h +64 -0
  204. data/ext/ice/cpp/include/Slice/RubyUtil.h +54 -0
  205. data/ext/ice/cpp/include/Slice/Util.h +33 -0
  206. data/ext/ice/cpp/src/Ice/ACM.cpp +343 -0
  207. data/ext/ice/cpp/src/Ice/ACM.h +117 -0
  208. data/ext/ice/cpp/src/Ice/Acceptor.cpp +16 -0
  209. data/ext/ice/cpp/src/Ice/Acceptor.h +41 -0
  210. data/ext/ice/cpp/src/Ice/AcceptorF.h +30 -0
  211. data/ext/ice/cpp/src/Ice/Application.cpp +760 -0
  212. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +599 -0
  213. data/ext/ice/cpp/src/Ice/Base64.cpp +269 -0
  214. data/ext/ice/cpp/src/Ice/Base64.h +36 -0
  215. data/ext/ice/cpp/src/Ice/BasicStream.cpp +3393 -0
  216. data/ext/ice/cpp/src/Ice/Buffer.cpp +98 -0
  217. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +34 -0
  218. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +718 -0
  219. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +106 -0
  220. data/ext/ice/cpp/src/Ice/Communicator.cpp +45 -0
  221. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +38 -0
  222. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +386 -0
  223. data/ext/ice/cpp/src/Ice/CommunicatorI.h +112 -0
  224. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +546 -0
  225. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +97 -0
  226. data/ext/ice/cpp/src/Ice/Connection.cpp +58 -0
  227. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +38 -0
  228. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +1639 -0
  229. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +236 -0
  230. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +3876 -0
  231. data/ext/ice/cpp/src/Ice/ConnectionI.h +364 -0
  232. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +115 -0
  233. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +50 -0
  234. data/ext/ice/cpp/src/Ice/Connector.cpp +16 -0
  235. data/ext/ice/cpp/src/Ice/Connector.h +36 -0
  236. data/ext/ice/cpp/src/Ice/ConnectorF.h +26 -0
  237. data/ext/ice/cpp/src/Ice/Current.cpp +38 -0
  238. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +168 -0
  239. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +57 -0
  240. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +26 -0
  241. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +60 -0
  242. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +49 -0
  243. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +281 -0
  244. data/ext/ice/cpp/src/Ice/Endpoint.cpp +53 -0
  245. data/ext/ice/cpp/src/Ice/EndpointF.cpp +38 -0
  246. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +25 -0
  247. data/ext/ice/cpp/src/Ice/EndpointFactory.h +44 -0
  248. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +26 -0
  249. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +208 -0
  250. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +46 -0
  251. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +26 -0
  252. data/ext/ice/cpp/src/Ice/EndpointI.cpp +87 -0
  253. data/ext/ice/cpp/src/Ice/EndpointI.h +165 -0
  254. data/ext/ice/cpp/src/Ice/EndpointIF.h +41 -0
  255. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +38 -0
  256. data/ext/ice/cpp/src/Ice/EventHandler.cpp +35 -0
  257. data/ext/ice/cpp/src/Ice/EventHandler.h +78 -0
  258. data/ext/ice/cpp/src/Ice/EventHandlerF.h +26 -0
  259. data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +53 -0
  260. data/ext/ice/cpp/src/Ice/Exception.cpp +832 -0
  261. data/ext/ice/cpp/src/Ice/FacetMap.cpp +34 -0
  262. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +158 -0
  263. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +95 -0
  264. data/ext/ice/cpp/src/Ice/GCObject.cpp +444 -0
  265. data/ext/ice/cpp/src/Ice/HashUtil.h +59 -0
  266. data/ext/ice/cpp/src/Ice/HttpParser.cpp +680 -0
  267. data/ext/ice/cpp/src/Ice/HttpParser.h +124 -0
  268. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +733 -0
  269. data/ext/ice/cpp/src/Ice/IPEndpointI.h +157 -0
  270. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +29 -0
  271. data/ext/ice/cpp/src/Ice/Identity.cpp +42 -0
  272. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +41 -0
  273. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +38 -0
  274. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +639 -0
  275. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +51 -0
  276. data/ext/ice/cpp/src/Ice/Incoming.cpp +757 -0
  277. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +340 -0
  278. data/ext/ice/cpp/src/Ice/IncomingRequest.h +37 -0
  279. data/ext/ice/cpp/src/Ice/Initialize.cpp +401 -0
  280. data/ext/ice/cpp/src/Ice/Instance.cpp +1928 -0
  281. data/ext/ice/cpp/src/Ice/Instance.h +198 -0
  282. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +68 -0
  283. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +43 -0
  284. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1083 -0
  285. data/ext/ice/cpp/src/Ice/InstrumentationI.h +262 -0
  286. data/ext/ice/cpp/src/Ice/LocalException.cpp +2091 -0
  287. data/ext/ice/cpp/src/Ice/LocalObject.cpp +29 -0
  288. data/ext/ice/cpp/src/Ice/Locator.cpp +1946 -0
  289. data/ext/ice/cpp/src/Ice/LocatorF.cpp +39 -0
  290. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +917 -0
  291. data/ext/ice/cpp/src/Ice/LocatorInfo.h +193 -0
  292. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +34 -0
  293. data/ext/ice/cpp/src/Ice/Logger.cpp +40 -0
  294. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +862 -0
  295. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +46 -0
  296. data/ext/ice/cpp/src/Ice/LoggerF.cpp +38 -0
  297. data/ext/ice/cpp/src/Ice/LoggerI.cpp +199 -0
  298. data/ext/ice/cpp/src/Ice/LoggerI.h +57 -0
  299. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +107 -0
  300. data/ext/ice/cpp/src/Ice/Makefile +190 -0
  301. data/ext/ice/cpp/src/Ice/Metrics.cpp +2159 -0
  302. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +669 -0
  303. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +14 -0
  304. data/ext/ice/cpp/src/Ice/Network.cpp +2694 -0
  305. data/ext/ice/cpp/src/Ice/Network.h +291 -0
  306. data/ext/ice/cpp/src/Ice/NetworkF.h +28 -0
  307. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +325 -0
  308. data/ext/ice/cpp/src/Ice/NetworkProxy.h +74 -0
  309. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +26 -0
  310. data/ext/ice/cpp/src/Ice/Object.cpp +440 -0
  311. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -0
  312. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +38 -0
  313. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +241 -0
  314. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +52 -0
  315. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +1498 -0
  316. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +155 -0
  317. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +41 -0
  318. data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +38 -0
  319. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +140 -0
  320. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +43 -0
  321. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +84 -0
  322. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +407 -0
  323. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +70 -0
  324. data/ext/ice/cpp/src/Ice/Outgoing.cpp +737 -0
  325. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +874 -0
  326. data/ext/ice/cpp/src/Ice/Plugin.cpp +43 -0
  327. data/ext/ice/cpp/src/Ice/PluginF.cpp +38 -0
  328. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +503 -0
  329. data/ext/ice/cpp/src/Ice/PluginManagerI.h +67 -0
  330. data/ext/ice/cpp/src/Ice/Process.cpp +299 -0
  331. data/ext/ice/cpp/src/Ice/ProcessF.cpp +39 -0
  332. data/ext/ice/cpp/src/Ice/Properties.cpp +45 -0
  333. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +555 -0
  334. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +207 -0
  335. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +45 -0
  336. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +39 -0
  337. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +759 -0
  338. data/ext/ice/cpp/src/Ice/PropertiesI.h +78 -0
  339. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +1293 -0
  340. data/ext/ice/cpp/src/Ice/PropertyNames.h +81 -0
  341. data/ext/ice/cpp/src/Ice/Protocol.cpp +137 -0
  342. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +98 -0
  343. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +91 -0
  344. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +26 -0
  345. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +51 -0
  346. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +67 -0
  347. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +26 -0
  348. data/ext/ice/cpp/src/Ice/Proxy.cpp +1810 -0
  349. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +305 -0
  350. data/ext/ice/cpp/src/Ice/ProxyFactory.h +57 -0
  351. data/ext/ice/cpp/src/Ice/Reference.cpp +1947 -0
  352. data/ext/ice/cpp/src/Ice/Reference.h +305 -0
  353. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +937 -0
  354. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +81 -0
  355. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +24 -0
  356. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +958 -0
  357. data/ext/ice/cpp/src/Ice/ReplyStatus.h +29 -0
  358. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +40 -0
  359. data/ext/ice/cpp/src/Ice/RequestHandler.h +90 -0
  360. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +70 -0
  361. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +41 -0
  362. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +20 -0
  363. data/ext/ice/cpp/src/Ice/ResponseHandler.h +39 -0
  364. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +154 -0
  365. data/ext/ice/cpp/src/Ice/RetryQueue.h +69 -0
  366. data/ext/ice/cpp/src/Ice/RetryQueueF.h +24 -0
  367. data/ext/ice/cpp/src/Ice/Router.cpp +849 -0
  368. data/ext/ice/cpp/src/Ice/RouterF.cpp +39 -0
  369. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +381 -0
  370. data/ext/ice/cpp/src/Ice/RouterInfo.h +148 -0
  371. data/ext/ice/cpp/src/Ice/RouterInfoF.h +30 -0
  372. data/ext/ice/cpp/src/Ice/Selector.cpp +926 -0
  373. data/ext/ice/cpp/src/Ice/Selector.h +231 -0
  374. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +41 -0
  375. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +38 -0
  376. data/ext/ice/cpp/src/Ice/ServantManager.cpp +495 -0
  377. data/ext/ice/cpp/src/Ice/ServantManager.h +74 -0
  378. data/ext/ice/cpp/src/Ice/Service.cpp +1897 -0
  379. data/ext/ice/cpp/src/Ice/SharedContext.h +51 -0
  380. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +34 -0
  381. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +80 -0
  382. data/ext/ice/cpp/src/Ice/SlicedData.cpp +80 -0
  383. data/ext/ice/cpp/src/Ice/Stream.cpp +53 -0
  384. data/ext/ice/cpp/src/Ice/StreamI.cpp +832 -0
  385. data/ext/ice/cpp/src/Ice/StreamI.h +198 -0
  386. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +521 -0
  387. data/ext/ice/cpp/src/Ice/StreamSocket.h +85 -0
  388. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +145 -0
  389. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +167 -0
  390. data/ext/ice/cpp/src/Ice/SysLoggerI.h +43 -0
  391. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +235 -0
  392. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +67 -0
  393. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +133 -0
  394. data/ext/ice/cpp/src/Ice/TcpConnector.h +51 -0
  395. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +397 -0
  396. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +93 -0
  397. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +127 -0
  398. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +61 -0
  399. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +1357 -0
  400. data/ext/ice/cpp/src/Ice/ThreadPool.h +399 -0
  401. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +43 -0
  402. data/ext/ice/cpp/src/Ice/TraceLevels.h +50 -0
  403. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +26 -0
  404. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +452 -0
  405. data/ext/ice/cpp/src/Ice/TraceUtil.h +28 -0
  406. data/ext/ice/cpp/src/Ice/Transceiver.cpp +24 -0
  407. data/ext/ice/cpp/src/Ice/Transceiver.h +52 -0
  408. data/ext/ice/cpp/src/Ice/TransceiverF.h +38 -0
  409. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +144 -0
  410. data/ext/ice/cpp/src/Ice/UdpConnector.h +51 -0
  411. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +483 -0
  412. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +95 -0
  413. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +1156 -0
  414. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +123 -0
  415. data/ext/ice/cpp/src/Ice/Version.cpp +46 -0
  416. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +103 -0
  417. data/ext/ice/cpp/src/Ice/WSAcceptor.h +61 -0
  418. data/ext/ice/cpp/src/Ice/WSConnector.cpp +113 -0
  419. data/ext/ice/cpp/src/Ice/WSConnector.h +51 -0
  420. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +441 -0
  421. data/ext/ice/cpp/src/Ice/WSEndpoint.h +97 -0
  422. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +1728 -0
  423. data/ext/ice/cpp/src/Ice/WSTransceiver.h +149 -0
  424. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +594 -0
  425. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +1035 -0
  426. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +208 -0
  427. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +78 -0
  428. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +308 -0
  429. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +183 -0
  430. data/ext/ice/cpp/src/IceDiscovery/Makefile +61 -0
  431. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +148 -0
  432. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +39 -0
  433. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +258 -0
  434. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +66 -0
  435. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +1334 -0
  436. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +42 -0
  437. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +151 -0
  438. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +56 -0
  439. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +397 -0
  440. data/ext/ice/cpp/src/IceSSL/EndpointI.h +96 -0
  441. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +41 -0
  442. data/ext/ice/cpp/src/IceSSL/Instance.cpp +38 -0
  443. data/ext/ice/cpp/src/IceSSL/Instance.h +42 -0
  444. data/ext/ice/cpp/src/IceSSL/InstanceF.h +34 -0
  445. data/ext/ice/cpp/src/IceSSL/Makefile +82 -0
  446. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +1001 -0
  447. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +607 -0
  448. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +75 -0
  449. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +102 -0
  450. data/ext/ice/cpp/src/IceSSL/PluginI.h +56 -0
  451. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +541 -0
  452. data/ext/ice/cpp/src/IceSSL/RFC2253.h +67 -0
  453. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +729 -0
  454. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +1062 -0
  455. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +130 -0
  456. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +291 -0
  457. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +264 -0
  458. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +41 -0
  459. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1514 -0
  460. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +609 -0
  461. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +91 -0
  462. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +246 -0
  463. data/ext/ice/cpp/src/IceSSL/TrustManager.h +51 -0
  464. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +26 -0
  465. data/ext/ice/cpp/src/IceSSL/Util.cpp +1423 -0
  466. data/ext/ice/cpp/src/IceSSL/Util.h +136 -0
  467. data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +65 -0
  468. data/ext/ice/cpp/src/IceUtil/ArgVector.h +41 -0
  469. data/ext/ice/cpp/src/IceUtil/Cond.cpp +386 -0
  470. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +477 -0
  471. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +144 -0
  472. data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +184 -0
  473. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +273 -0
  474. data/ext/ice/cpp/src/IceUtil/Exception.cpp +782 -0
  475. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +532 -0
  476. data/ext/ice/cpp/src/IceUtil/FileUtil.h +159 -0
  477. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +41 -0
  478. data/ext/ice/cpp/src/IceUtil/Makefile +68 -0
  479. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +24 -0
  480. data/ext/ice/cpp/src/IceUtil/Options.cpp +1049 -0
  481. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +591 -0
  482. data/ext/ice/cpp/src/IceUtil/Random.cpp +185 -0
  483. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +257 -0
  484. data/ext/ice/cpp/src/IceUtil/SHA1.cpp +126 -0
  485. data/ext/ice/cpp/src/IceUtil/Shared.cpp +200 -0
  486. data/ext/ice/cpp/src/IceUtil/StopWatch.h +54 -0
  487. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +450 -0
  488. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +842 -0
  489. data/ext/ice/cpp/src/IceUtil/Thread.cpp +809 -0
  490. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +172 -0
  491. data/ext/ice/cpp/src/IceUtil/Time.cpp +306 -0
  492. data/ext/ice/cpp/src/IceUtil/Timer.cpp +251 -0
  493. data/ext/ice/cpp/src/IceUtil/UUID.cpp +174 -0
  494. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +131 -0
  495. data/ext/ice/cpp/src/IceUtil/Unicode.h +49 -0
  496. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +1139 -0
  497. data/ext/ice/cpp/src/Slice/Checksum.cpp +452 -0
  498. data/ext/ice/cpp/src/Slice/CsUtil.cpp +2650 -0
  499. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +146 -0
  500. data/ext/ice/cpp/src/Slice/FileTracker.cpp +203 -0
  501. data/ext/ice/cpp/src/Slice/Grammar.cpp +4755 -0
  502. data/ext/ice/cpp/src/Slice/Grammar.h +98 -0
  503. data/ext/ice/cpp/src/Slice/GrammarUtil.h +234 -0
  504. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +4376 -0
  505. data/ext/ice/cpp/src/Slice/MD5.cpp +57 -0
  506. data/ext/ice/cpp/src/Slice/MD5.h +44 -0
  507. data/ext/ice/cpp/src/Slice/MD5I.cpp +385 -0
  508. data/ext/ice/cpp/src/Slice/MD5I.h +91 -0
  509. data/ext/ice/cpp/src/Slice/Makefile +65 -0
  510. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +156 -0
  511. data/ext/ice/cpp/src/Slice/Parser.cpp +6386 -0
  512. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +686 -0
  513. data/ext/ice/cpp/src/Slice/Python.cpp +675 -0
  514. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +2614 -0
  515. data/ext/ice/cpp/src/Slice/Ruby.cpp +317 -0
  516. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +1774 -0
  517. data/ext/ice/cpp/src/Slice/Scanner.cpp +2426 -0
  518. data/ext/ice/cpp/src/Slice/Util.cpp +325 -0
  519. data/ext/ice/mcpp/config.h.Darwin +227 -0
  520. data/ext/ice/mcpp/config.h.Linux +227 -0
  521. data/ext/ice/mcpp/config.h.MINGW +7 -0
  522. data/ext/ice/mcpp/configed.H +382 -0
  523. data/ext/ice/mcpp/directive.c +1699 -0
  524. data/ext/ice/mcpp/eval.c +1673 -0
  525. data/ext/ice/mcpp/expand.c +2980 -0
  526. data/ext/ice/mcpp/internal.H +564 -0
  527. data/ext/ice/mcpp/main.c +1131 -0
  528. data/ext/ice/mcpp/mbchar.c +869 -0
  529. data/ext/ice/mcpp/mcpp_lib.h +31 -0
  530. data/ext/ice/mcpp/mcpp_out.h +13 -0
  531. data/ext/ice/mcpp/support.c +2811 -0
  532. data/ext/ice/mcpp/system.H +396 -0
  533. data/ext/ice/mcpp/system.c +4940 -0
  534. data/ice.gemspec +41 -0
  535. data/lib/Glacier2.rb +12 -0
  536. data/lib/Glacier2/Metrics.rb +99 -0
  537. data/lib/Glacier2/PermissionsVerifier.rb +168 -0
  538. data/lib/Glacier2/PermissionsVerifierF.rb +34 -0
  539. data/lib/Glacier2/Router.rb +141 -0
  540. data/lib/Glacier2/RouterF.rb +29 -0
  541. data/lib/Glacier2/SSLInfo.rb +79 -0
  542. data/lib/Glacier2/Session.rb +470 -0
  543. data/lib/Ice.rb +659 -0
  544. data/lib/Ice/BuiltinSequences.rb +64 -0
  545. data/lib/Ice/Communicator.rb +93 -0
  546. data/lib/Ice/CommunicatorF.rb +28 -0
  547. data/lib/Ice/Connection.rb +414 -0
  548. data/lib/Ice/ConnectionF.rb +36 -0
  549. data/lib/Ice/Current.rb +152 -0
  550. data/lib/Ice/Endpoint.rb +265 -0
  551. data/lib/Ice/EndpointF.rb +52 -0
  552. data/lib/Ice/EndpointTypes.rb +77 -0
  553. data/lib/Ice/FacetMap.rb +28 -0
  554. data/lib/Ice/Identity.rb +70 -0
  555. data/lib/Ice/ImplicitContext.rb +59 -0
  556. data/lib/Ice/ImplicitContextF.rb +28 -0
  557. data/lib/Ice/Instrumentation.rb +425 -0
  558. data/lib/Ice/InstrumentationF.rb +35 -0
  559. data/lib/Ice/LocalException.rb +1081 -0
  560. data/lib/Ice/Locator.rb +314 -0
  561. data/lib/Ice/LocatorF.rb +34 -0
  562. data/lib/Ice/Logger.rb +57 -0
  563. data/lib/Ice/LoggerF.rb +28 -0
  564. data/lib/Ice/Metrics.rb +696 -0
  565. data/lib/Ice/ObjectAdapterF.rb +28 -0
  566. data/lib/Ice/ObjectFactory.rb +53 -0
  567. data/lib/Ice/ObjectFactoryF.rb +28 -0
  568. data/lib/Ice/Plugin.rb +87 -0
  569. data/lib/Ice/PluginF.rb +32 -0
  570. data/lib/Ice/Process.rb +93 -0
  571. data/lib/Ice/ProcessF.rb +29 -0
  572. data/lib/Ice/Properties.rb +65 -0
  573. data/lib/Ice/PropertiesAdmin.rb +104 -0
  574. data/lib/Ice/PropertiesF.rb +33 -0
  575. data/lib/Ice/Router.rb +163 -0
  576. data/lib/Ice/RouterF.rb +29 -0
  577. data/lib/Ice/SliceChecksumDict.rb +28 -0
  578. data/lib/Ice/Version.rb +100 -0
  579. data/lib/IceBox.rb +10 -0
  580. data/lib/IceBox/IceBox.rb +272 -0
  581. data/lib/IceGrid.rb +17 -0
  582. data/lib/IceGrid/Admin.rb +1076 -0
  583. data/lib/IceGrid/Descriptor.rb +1505 -0
  584. data/lib/IceGrid/Exception.rb +401 -0
  585. data/lib/IceGrid/FileParser.rb +105 -0
  586. data/lib/IceGrid/Locator.rb +105 -0
  587. data/lib/IceGrid/Observer.rb +571 -0
  588. data/lib/IceGrid/Query.rb +168 -0
  589. data/lib/IceGrid/Registry.rb +120 -0
  590. data/lib/IceGrid/Session.rb +114 -0
  591. data/lib/IceGrid/UserAccountMapper.rb +101 -0
  592. data/lib/IcePatch2.rb +10 -0
  593. data/lib/IcePatch2/FileInfo.rb +75 -0
  594. data/lib/IcePatch2/FileServer.rb +141 -0
  595. data/lib/IceStorm.rb +11 -0
  596. data/lib/IceStorm/IceStorm.rb +463 -0
  597. data/lib/IceStorm/Metrics.rb +155 -0
  598. data/slice/Freeze/BackgroundSaveEvictor.ice +111 -0
  599. data/slice/Freeze/CatalogData.ice +49 -0
  600. data/slice/Freeze/Connection.ice +111 -0
  601. data/slice/Freeze/ConnectionF.ice +20 -0
  602. data/slice/Freeze/DB.ice +37 -0
  603. data/slice/Freeze/Evictor.ice +339 -0
  604. data/slice/Freeze/EvictorF.ice +22 -0
  605. data/slice/Freeze/EvictorStorage.ice +72 -0
  606. data/slice/Freeze/Exception.ice +100 -0
  607. data/slice/Freeze/Transaction.ice +57 -0
  608. data/slice/Freeze/TransactionalEvictor.ice +50 -0
  609. data/slice/Glacier2/Metrics.ice +77 -0
  610. data/slice/Glacier2/PermissionsVerifier.ice +105 -0
  611. data/slice/Glacier2/PermissionsVerifierF.ice +21 -0
  612. data/slice/Glacier2/Router.ice +178 -0
  613. data/slice/Glacier2/RouterF.ice +20 -0
  614. data/slice/Glacier2/SSLInfo.ice +50 -0
  615. data/slice/Glacier2/Session.ice +273 -0
  616. data/slice/Ice/BuiltinSequences.ice +48 -0
  617. data/slice/Ice/Communicator.ice +567 -0
  618. data/slice/Ice/CommunicatorF.ice +20 -0
  619. data/slice/Ice/Connection.ice +323 -0
  620. data/slice/Ice/ConnectionF.ice +22 -0
  621. data/slice/Ice/Current.ice +160 -0
  622. data/slice/Ice/Endpoint.ice +227 -0
  623. data/slice/Ice/EndpointF.ice +32 -0
  624. data/slice/Ice/EndpointTypes.ice +38 -0
  625. data/slice/Ice/FacetMap.ice +25 -0
  626. data/slice/Ice/Identity.ice +59 -0
  627. data/slice/Ice/ImplicitContext.ice +109 -0
  628. data/slice/Ice/ImplicitContextF.ice +20 -0
  629. data/slice/Ice/Instrumentation.ice +499 -0
  630. data/slice/Ice/InstrumentationF.ice +26 -0
  631. data/slice/Ice/LocalException.ice +1015 -0
  632. data/slice/Ice/Locator.ice +227 -0
  633. data/slice/Ice/LocatorF.ice +21 -0
  634. data/slice/Ice/Logger.ice +86 -0
  635. data/slice/Ice/LoggerF.ice +20 -0
  636. data/slice/Ice/Metrics.ice +422 -0
  637. data/slice/Ice/ObjectAdapter.ice +673 -0
  638. data/slice/Ice/ObjectAdapterF.ice +20 -0
  639. data/slice/Ice/ObjectFactory.ice +60 -0
  640. data/slice/Ice/ObjectFactoryF.ice +20 -0
  641. data/slice/Ice/Plugin.ice +117 -0
  642. data/slice/Ice/PluginF.ice +21 -0
  643. data/slice/Ice/Process.ice +54 -0
  644. data/slice/Ice/ProcessF.ice +20 -0
  645. data/slice/Ice/Properties.ice +228 -0
  646. data/slice/Ice/PropertiesAdmin.ice +75 -0
  647. data/slice/Ice/PropertiesF.ice +21 -0
  648. data/slice/Ice/RemoteLogger.ice +232 -0
  649. data/slice/Ice/Router.ice +83 -0
  650. data/slice/Ice/RouterF.ice +20 -0
  651. data/slice/Ice/ServantLocator.ice +117 -0
  652. data/slice/Ice/ServantLocatorF.ice +20 -0
  653. data/slice/Ice/SliceChecksumDict.ice +25 -0
  654. data/slice/Ice/Version.ice +39 -0
  655. data/slice/IceBox/IceBox.ice +194 -0
  656. data/slice/IceDiscovery/IceDiscovery.ice +32 -0
  657. data/slice/IceGrid/Admin.ice +1578 -0
  658. data/slice/IceGrid/Descriptor.ice +1079 -0
  659. data/slice/IceGrid/Discovery.ice +73 -0
  660. data/slice/IceGrid/Exception.ice +383 -0
  661. data/slice/IceGrid/FileParser.ice +61 -0
  662. data/slice/IceGrid/Locator.ice +56 -0
  663. data/slice/IceGrid/Observer.ice +394 -0
  664. data/slice/IceGrid/PluginFacade.ice +316 -0
  665. data/slice/IceGrid/Query.ice +130 -0
  666. data/slice/IceGrid/Registry.ice +138 -0
  667. data/slice/IceGrid/Session.ice +124 -0
  668. data/slice/IceGrid/UserAccountMapper.ice +58 -0
  669. data/slice/IcePatch2/FileInfo.ice +49 -0
  670. data/slice/IcePatch2/FileServer.ice +129 -0
  671. data/slice/IceSSL/ConnectionInfo.ice +34 -0
  672. data/slice/IceSSL/EndpointInfo.ice +41 -0
  673. data/slice/IceStorm/IceStorm.ice +405 -0
  674. data/slice/IceStorm/Metrics.ice +71 -0
  675. metadata +737 -0
@@ -0,0 +1,198 @@
1
+ // **********************************************************************
2
+ //
3
+ // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
+ //
5
+ // This copy of Ice is licensed to you under the terms described in the
6
+ // ICE_LICENSE file included in this distribution.
7
+ //
8
+ // **********************************************************************
9
+
10
+ #ifndef ICE_INSTANCE_H
11
+ #define ICE_INSTANCE_H
12
+
13
+ #include <IceUtil/Config.h>
14
+ #include <IceUtil/Shared.h>
15
+ #include <IceUtil/Mutex.h>
16
+ #include <IceUtil/RecMutex.h>
17
+ #include <IceUtil/Timer.h>
18
+ #include <IceUtil/StringConverter.h>
19
+ #include <Ice/InstanceF.h>
20
+ #include <Ice/CommunicatorF.h>
21
+ #include <Ice/InstrumentationF.h>
22
+ #include <Ice/TraceLevelsF.h>
23
+ #include <Ice/DefaultsAndOverridesF.h>
24
+ #include <Ice/RouterInfoF.h>
25
+ #include <Ice/LocatorInfoF.h>
26
+ #include <Ice/ReferenceFactoryF.h>
27
+ #include <Ice/ProxyFactoryF.h>
28
+ #include <Ice/ThreadPoolF.h>
29
+ #include <Ice/ConnectionFactoryF.h>
30
+ #include <Ice/ACM.h>
31
+ #include <Ice/ObjectFactoryManagerF.h>
32
+ #include <Ice/ObjectAdapterFactoryF.h>
33
+ #include <Ice/EndpointFactoryManagerF.h>
34
+ #include <Ice/IPEndpointIF.h>
35
+ #include <Ice/RetryQueueF.h>
36
+ #include <Ice/DynamicLibraryF.h>
37
+ #include <Ice/PluginF.h>
38
+ #include <Ice/NetworkF.h>
39
+ #include <Ice/NetworkProxyF.h>
40
+ #include <Ice/Initialize.h>
41
+ #include <Ice/ImplicitContextI.h>
42
+ #include <Ice/FacetMap.h>
43
+ #include <Ice/Process.h>
44
+ #include <list>
45
+ #include <IceUtil/UniquePtr.h>
46
+
47
+ namespace Ice
48
+ {
49
+
50
+ class CommunicatorI;
51
+
52
+ }
53
+
54
+ namespace IceInternal
55
+ {
56
+
57
+ class Timer;
58
+ typedef IceUtil::Handle<Timer> TimerPtr;
59
+
60
+ class MetricsAdminI;
61
+ typedef IceUtil::Handle<MetricsAdminI> MetricsAdminIPtr;
62
+
63
+ class RequestHandlerFactory;
64
+ typedef IceUtil::Handle<RequestHandlerFactory> RequestHandlerFactoryPtr;
65
+
66
+ class Instance : public IceUtil::Shared, public IceUtil::Monitor<IceUtil::RecMutex>
67
+ {
68
+ public:
69
+
70
+ bool destroyed() const;
71
+ const Ice::InitializationData& initializationData() const { return _initData; }
72
+ TraceLevelsPtr traceLevels() const;
73
+ DefaultsAndOverridesPtr defaultsAndOverrides() const;
74
+ RouterManagerPtr routerManager() const;
75
+ LocatorManagerPtr locatorManager() const;
76
+ ReferenceFactoryPtr referenceFactory() const;
77
+ RequestHandlerFactoryPtr requestHandlerFactory() const;
78
+ ProxyFactoryPtr proxyFactory() const;
79
+ OutgoingConnectionFactoryPtr outgoingConnectionFactory() const;
80
+ ObjectFactoryManagerPtr servantFactoryManager() const;
81
+ ObjectAdapterFactoryPtr objectAdapterFactory() const;
82
+ ProtocolSupport protocolSupport() const;
83
+ bool preferIPv6() const;
84
+ NetworkProxyPtr networkProxy() const;
85
+ ThreadPoolPtr clientThreadPool();
86
+ ThreadPoolPtr serverThreadPool();
87
+ EndpointHostResolverPtr endpointHostResolver();
88
+ RetryQueuePtr retryQueue();
89
+ IceUtil::TimerPtr timer();
90
+ EndpointFactoryManagerPtr endpointFactoryManager() const;
91
+ DynamicLibraryListPtr dynamicLibraryList() const;
92
+ Ice::PluginManagerPtr pluginManager() const;
93
+ size_t messageSizeMax() const { return _messageSizeMax; }
94
+ size_t batchAutoFlushSize() const { return _batchAutoFlushSize; }
95
+ bool collectObjects() const { return _collectObjects; }
96
+ const ACMConfig& clientACM() const;
97
+ const ACMConfig& serverACM() const;
98
+ Ice::Identity stringToIdentity(const std::string&) const;
99
+ std::string identityToString(const Ice::Identity&) const;
100
+
101
+ Ice::ObjectPrx createAdmin(const Ice::ObjectAdapterPtr&, const Ice::Identity&);
102
+ Ice::ObjectPrx getAdmin();
103
+ void addAdminFacet(const Ice::ObjectPtr&, const std::string&);
104
+ Ice::ObjectPtr removeAdminFacet(const std::string&);
105
+ Ice::ObjectPtr findAdminFacet(const std::string&);
106
+ Ice::FacetMap findAllAdminFacets();
107
+
108
+ const Ice::ImplicitContextIPtr& getImplicitContext() const
109
+ {
110
+ return _implicitContext;
111
+ }
112
+
113
+ void setDefaultLocator(const Ice::LocatorPrx&);
114
+ void setDefaultRouter(const Ice::RouterPrx&);
115
+
116
+ void setLogger(const Ice::LoggerPtr&);
117
+ void setThreadHook(const Ice::ThreadNotificationPtr&);
118
+
119
+ IceUtil::StringConverterPtr getStringConverter() const { return _stringConverter; }
120
+ IceUtil::WstringConverterPtr getWstringConverter() const { return _wstringConverter; }
121
+
122
+ private:
123
+
124
+ Instance(const Ice::CommunicatorPtr&, const Ice::InitializationData&);
125
+ virtual ~Instance();
126
+ void finishSetup(int&, char*[], const Ice::CommunicatorPtr&);
127
+ void destroy();
128
+ friend class Ice::CommunicatorI;
129
+
130
+ void updateConnectionObservers();
131
+ void updateThreadObservers();
132
+ friend class ObserverUpdaterI;
133
+
134
+ void addAllAdminFacets();
135
+ void setServerProcessProxy(const Ice::ObjectAdapterPtr&, const Ice::Identity&);
136
+
137
+ enum State
138
+ {
139
+ StateActive,
140
+ StateDestroyInProgress,
141
+ StateDestroyed
142
+ };
143
+ State _state;
144
+ Ice::InitializationData _initData;
145
+ const TraceLevelsPtr _traceLevels; // Immutable, not reset by destroy().
146
+ const DefaultsAndOverridesPtr _defaultsAndOverrides; // Immutable, not reset by destroy().
147
+ const size_t _messageSizeMax; // Immutable, not reset by destroy().
148
+ const size_t _batchAutoFlushSize; // Immutable, not reset by destroy().
149
+ const bool _collectObjects; // Immutable, not reset by destroy().
150
+ ACMConfig _clientACM;
151
+ ACMConfig _serverACM;
152
+ RouterManagerPtr _routerManager;
153
+ LocatorManagerPtr _locatorManager;
154
+ ReferenceFactoryPtr _referenceFactory;
155
+ RequestHandlerFactoryPtr _requestHandlerFactory;
156
+ ProxyFactoryPtr _proxyFactory;
157
+ OutgoingConnectionFactoryPtr _outgoingConnectionFactory;
158
+ ObjectFactoryManagerPtr _servantFactoryManager;
159
+ ObjectAdapterFactoryPtr _objectAdapterFactory;
160
+ ProtocolSupport _protocolSupport;
161
+ bool _preferIPv6;
162
+ NetworkProxyPtr _networkProxy;
163
+ ThreadPoolPtr _clientThreadPool;
164
+ ThreadPoolPtr _serverThreadPool;
165
+ EndpointHostResolverPtr _endpointHostResolver;
166
+ RetryQueuePtr _retryQueue;
167
+ TimerPtr _timer;
168
+ EndpointFactoryManagerPtr _endpointFactoryManager;
169
+ DynamicLibraryListPtr _dynamicLibraryList;
170
+ Ice::PluginManagerPtr _pluginManager;
171
+ const Ice::ImplicitContextIPtr _implicitContext;
172
+ IceUtil::StringConverterPtr _stringConverter;
173
+ IceUtil::WstringConverterPtr _wstringConverter;
174
+ bool _adminEnabled;
175
+ Ice::ObjectAdapterPtr _adminAdapter;
176
+ Ice::FacetMap _adminFacets;
177
+ Ice::Identity _adminIdentity;
178
+ std::set<std::string> _adminFacetFilter;
179
+ IceInternal::MetricsAdminIPtr _metricsAdmin;
180
+ };
181
+
182
+ class ProcessI : public Ice::Process
183
+ {
184
+ public:
185
+
186
+ ProcessI(const Ice::CommunicatorPtr&);
187
+
188
+ virtual void shutdown(const Ice::Current&);
189
+ virtual void writeMessage(const std::string&, Ice::Int, const Ice::Current&);
190
+
191
+ private:
192
+
193
+ const Ice::CommunicatorPtr _communicator;
194
+ };
195
+
196
+ }
197
+
198
+ #endif
@@ -0,0 +1,68 @@
1
+ // **********************************************************************
2
+ //
3
+ // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
+ //
5
+ // This copy of Ice is licensed to you under the terms described in the
6
+ // ICE_LICENSE file included in this distribution.
7
+ //
8
+ // **********************************************************************
9
+ //
10
+ // Ice version 3.6b
11
+ //
12
+ // <auto-generated>
13
+ //
14
+ // Generated from file `Instrumentation.ice'
15
+ //
16
+ // Warning: do not edit this file.
17
+ //
18
+ // </auto-generated>
19
+ //
20
+
21
+ #ifndef ICE_API_EXPORTS
22
+ # define ICE_API_EXPORTS
23
+ #endif
24
+ #include <Ice/Instrumentation.h>
25
+ #include <IceUtil/PushDisableWarnings.h>
26
+ #include <Ice/BasicStream.h>
27
+ #include <IceUtil/Iterator.h>
28
+ #include <IceUtil/PopDisableWarnings.h>
29
+
30
+ #ifndef ICE_IGNORE_VERSION
31
+ # if ICE_INT_VERSION != 30651
32
+ # error Ice version mismatch: an exact match is required for beta generated code
33
+ # endif
34
+ #endif
35
+
36
+ namespace
37
+ {
38
+
39
+ namespace
40
+ {
41
+
42
+ }
43
+
44
+ }
45
+
46
+ namespace Ice
47
+ {
48
+ }
49
+
50
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::Observer* p) { return p; }
51
+
52
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::ThreadObserver* p) { return p; }
53
+
54
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::ConnectionObserver* p) { return p; }
55
+
56
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::DispatchObserver* p) { return p; }
57
+
58
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::ChildInvocationObserver* p) { return p; }
59
+
60
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::RemoteObserver* p) { return p; }
61
+
62
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::CollocatedObserver* p) { return p; }
63
+
64
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::InvocationObserver* p) { return p; }
65
+
66
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::ObserverUpdater* p) { return p; }
67
+
68
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::Instrumentation::upCast(::Ice::Instrumentation::CommunicatorObserver* p) { return p; }
@@ -0,0 +1,43 @@
1
+ // **********************************************************************
2
+ //
3
+ // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
+ //
5
+ // This copy of Ice is licensed to you under the terms described in the
6
+ // ICE_LICENSE file included in this distribution.
7
+ //
8
+ // **********************************************************************
9
+ //
10
+ // Ice version 3.6b
11
+ //
12
+ // <auto-generated>
13
+ //
14
+ // Generated from file `InstrumentationF.ice'
15
+ //
16
+ // Warning: do not edit this file.
17
+ //
18
+ // </auto-generated>
19
+ //
20
+
21
+ #ifndef ICE_API_EXPORTS
22
+ # define ICE_API_EXPORTS
23
+ #endif
24
+ #include <Ice/InstrumentationF.h>
25
+ #include <IceUtil/PushDisableWarnings.h>
26
+ #include <IceUtil/Iterator.h>
27
+ #include <IceUtil/PopDisableWarnings.h>
28
+
29
+ #ifndef ICE_IGNORE_VERSION
30
+ # if ICE_INT_VERSION != 30651
31
+ # error Ice version mismatch: an exact match is required for beta generated code
32
+ # endif
33
+ #endif
34
+
35
+ namespace
36
+ {
37
+
38
+ namespace
39
+ {
40
+
41
+ }
42
+
43
+ }
@@ -0,0 +1,1083 @@
1
+ // **********************************************************************
2
+ //
3
+ // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
+ //
5
+ // This copy of Ice is licensed to you under the terms described in the
6
+ // ICE_LICENSE file included in this distribution.
7
+ //
8
+ // **********************************************************************
9
+
10
+ #include <Ice/InstrumentationI.h>
11
+
12
+ #include <Ice/Connection.h>
13
+ #include <Ice/Endpoint.h>
14
+ #include <Ice/ObjectAdapter.h>
15
+ #include <Ice/LocalException.h>
16
+ #include <Ice/Communicator.h>
17
+ #include <Ice/LoggerUtil.h>
18
+
19
+ using namespace std;
20
+ using namespace Ice;
21
+ using namespace IceInternal;
22
+ using namespace Ice::Instrumentation;
23
+ using namespace IceMX;
24
+
25
+ namespace
26
+ {
27
+
28
+ Context emptyCtx;
29
+
30
+ int ThreadMetrics::*
31
+ getThreadStateMetric(ThreadState s)
32
+ {
33
+ switch(s)
34
+ {
35
+ case ThreadStateIdle:
36
+ return 0;
37
+ case ThreadStateInUseForIO:
38
+ return &ThreadMetrics::inUseForIO;
39
+ case ThreadStateInUseForUser:
40
+ return &ThreadMetrics::inUseForUser;
41
+ case ThreadStateInUseForOther:
42
+ return &ThreadMetrics::inUseForOther;
43
+ default:
44
+ assert(false);
45
+ return 0;
46
+ }
47
+ }
48
+
49
+ struct ThreadStateChanged
50
+ {
51
+ ThreadStateChanged(ThreadState oldState, ThreadState newState) : oldState(oldState), newState(newState)
52
+ {
53
+ }
54
+
55
+ void operator()(const ThreadMetricsPtr& v)
56
+ {
57
+ if(oldState != ThreadStateIdle)
58
+ {
59
+ --(v.get()->*getThreadStateMetric(oldState));
60
+ }
61
+ if(newState != ThreadStateIdle)
62
+ {
63
+ ++(v.get()->*getThreadStateMetric(newState));
64
+ }
65
+ }
66
+
67
+ ThreadState oldState;
68
+ ThreadState newState;
69
+ };
70
+
71
+ class ConnectionHelper : public MetricsHelperT<ConnectionMetrics>
72
+ {
73
+ public:
74
+
75
+ class Attributes : public AttributeResolverT<ConnectionHelper>
76
+ {
77
+ public:
78
+
79
+ Attributes()
80
+ {
81
+ add("parent", &ConnectionHelper::getParent);
82
+ add("id", &ConnectionHelper::getId);
83
+ add("state", &ConnectionHelper::getState);
84
+ addConnectionAttributes<ConnectionHelper>(*this);
85
+ }
86
+ };
87
+ static Attributes attributes;
88
+
89
+ ConnectionHelper(const ConnectionInfoPtr& con, const EndpointPtr& endpt, ConnectionState state) :
90
+ _connectionInfo(con), _endpoint(endpt), _state(state)
91
+ {
92
+ }
93
+
94
+ virtual string operator()(const string& attribute) const
95
+ {
96
+ return attributes(this, attribute);
97
+ }
98
+
99
+ const string&
100
+ getId() const
101
+ {
102
+ if(_id.empty())
103
+ {
104
+ ostringstream os;
105
+ IPConnectionInfoPtr info = IPConnectionInfoPtr::dynamicCast(_connectionInfo);
106
+ if(info)
107
+ {
108
+ os << info->localAddress << ':' << info->localPort;
109
+ os << " -> ";
110
+ os << info->remoteAddress << ':' << info->remotePort;
111
+ }
112
+ else
113
+ {
114
+ os << "connection-" << _connectionInfo.get();
115
+ }
116
+ if(!_connectionInfo->connectionId.empty())
117
+ {
118
+ os << " [" << _connectionInfo->connectionId << "]";
119
+ }
120
+ _id = os.str();
121
+ }
122
+ return _id;
123
+ }
124
+
125
+ string
126
+ getState() const
127
+ {
128
+ switch(_state)
129
+ {
130
+ case ConnectionStateValidating:
131
+ return "validating";
132
+ case ConnectionStateHolding:
133
+ return "holding";
134
+ case ConnectionStateActive:
135
+ return "active";
136
+ case ConnectionStateClosing:
137
+ return "closing";
138
+ case ConnectionStateClosed:
139
+ return "closed";
140
+ default:
141
+ assert(false);
142
+ return "";
143
+ }
144
+ }
145
+
146
+ string
147
+ getParent() const
148
+ {
149
+ if(!_connectionInfo->adapterName.empty())
150
+ {
151
+ return _connectionInfo->adapterName;
152
+ }
153
+ else
154
+ {
155
+ return "Communicator";
156
+ }
157
+ }
158
+
159
+ const ConnectionInfoPtr&
160
+ getConnectionInfo() const
161
+ {
162
+ return _connectionInfo;
163
+ }
164
+
165
+ const EndpointPtr&
166
+ getEndpoint() const
167
+ {
168
+ return _endpoint;
169
+ }
170
+
171
+ const EndpointInfoPtr&
172
+ getEndpointInfo() const
173
+ {
174
+ if(!_endpointInfo)
175
+ {
176
+ _endpointInfo = _endpoint->getInfo();
177
+ }
178
+ return _endpointInfo;
179
+ }
180
+
181
+ private:
182
+
183
+ const ConnectionInfoPtr& _connectionInfo;
184
+ const EndpointPtr& _endpoint;
185
+ const ConnectionState _state;
186
+ mutable string _id;
187
+ mutable EndpointInfoPtr _endpointInfo;
188
+ };
189
+
190
+ ConnectionHelper::Attributes ConnectionHelper::attributes;
191
+
192
+ class DispatchHelper : public MetricsHelperT<DispatchMetrics>
193
+ {
194
+ public:
195
+
196
+ class Attributes : public AttributeResolverT<DispatchHelper>
197
+ {
198
+ public:
199
+
200
+ Attributes()
201
+ {
202
+ add("parent", &DispatchHelper::getParent);
203
+ add("id", &DispatchHelper::getId);
204
+ add("connection", &DispatchHelper::getConnection);
205
+
206
+ addConnectionAttributes<DispatchHelper>(*this);
207
+
208
+ add("operation", &DispatchHelper::getCurrent, &Current::operation);
209
+ add("identity", &DispatchHelper::getIdentity);
210
+ add("facet", &DispatchHelper::getCurrent, &Current::facet);
211
+ add("mode", &DispatchHelper::getMode);
212
+ add("requestId", &DispatchHelper::getCurrent, &Current::requestId);
213
+
214
+ setDefault(&DispatchHelper::resolve);
215
+ }
216
+ };
217
+ static Attributes attributes;
218
+
219
+ DispatchHelper(const Current& current, int size) : _current(current), _size(size)
220
+ {
221
+ }
222
+
223
+ virtual string operator()(const string& attribute) const
224
+ {
225
+ return attributes(this, attribute);
226
+ }
227
+
228
+ virtual void initMetrics(const DispatchMetricsPtr& v) const
229
+ {
230
+ v->size += _size;
231
+ }
232
+
233
+ string resolve(const string& attribute) const
234
+ {
235
+ if(attribute.compare(0, 8, "context.") == 0)
236
+ {
237
+ Context::const_iterator p = _current.ctx.find(attribute.substr(8));
238
+ if(p != _current.ctx.end())
239
+ {
240
+ return p->second;
241
+ }
242
+ }
243
+ throw invalid_argument(attribute);
244
+ }
245
+
246
+ string
247
+ getMode() const
248
+ {
249
+ return _current.requestId == 0 ? "oneway" : "twoway";
250
+ }
251
+
252
+ const string&
253
+ getId() const
254
+ {
255
+ if(_id.empty())
256
+ {
257
+ ostringstream os;
258
+ if(!_current.id.category.empty())
259
+ {
260
+ os << _current.id.category << '/';
261
+ }
262
+ os << _current.id.name << " [" << _current.operation << ']';
263
+ _id = os.str();
264
+ }
265
+ return _id;
266
+ }
267
+
268
+ string
269
+ getParent() const
270
+ {
271
+ return _current.adapter->getName();
272
+ }
273
+
274
+ ConnectionInfoPtr
275
+ getConnectionInfo() const
276
+ {
277
+ if(_current.con)
278
+ {
279
+ return _current.con->getInfo();
280
+ }
281
+ return 0;
282
+ }
283
+
284
+ EndpointPtr
285
+ getEndpoint() const
286
+ {
287
+ if(_current.con)
288
+ {
289
+ return _current.con->getEndpoint();
290
+ }
291
+ return 0;
292
+ }
293
+
294
+ const ConnectionPtr&
295
+ getConnection() const
296
+ {
297
+ return _current.con;
298
+ }
299
+
300
+ const EndpointInfoPtr&
301
+ getEndpointInfo() const
302
+ {
303
+ if(_current.con && !_endpointInfo)
304
+ {
305
+ _endpointInfo = _current.con->getEndpoint()->getInfo();
306
+ }
307
+ return _endpointInfo;
308
+ }
309
+
310
+ const Current&
311
+ getCurrent() const
312
+ {
313
+ return _current;
314
+ }
315
+
316
+ string
317
+ getIdentity() const
318
+ {
319
+ return _current.adapter->getCommunicator()->identityToString(_current.id);
320
+ }
321
+
322
+ private:
323
+
324
+ const Current& _current;
325
+ const int _size;
326
+ mutable string _id;
327
+ mutable EndpointInfoPtr _endpointInfo;
328
+ };
329
+
330
+ DispatchHelper::Attributes DispatchHelper::attributes;
331
+
332
+ class InvocationHelper : public MetricsHelperT<InvocationMetrics>
333
+ {
334
+ public:
335
+
336
+ class Attributes : public AttributeResolverT<InvocationHelper>
337
+ {
338
+ public:
339
+
340
+ Attributes()
341
+ {
342
+ add("parent", &InvocationHelper::getParent);
343
+ add("id", &InvocationHelper::getId);
344
+
345
+ add("operation", &InvocationHelper::getOperation);
346
+ add("identity", &InvocationHelper::getIdentity);
347
+ add("facet", &InvocationHelper::getProxy, &IceProxy::Ice::Object::ice_getFacet);
348
+ add("encoding", &InvocationHelper::getProxy, &IceProxy::Ice::Object::ice_getEncodingVersion);
349
+ add("mode", &InvocationHelper::getMode);
350
+ add("proxy", &InvocationHelper::getProxy);
351
+
352
+ setDefault(&InvocationHelper::resolve);
353
+ }
354
+ };
355
+ static Attributes attributes;
356
+
357
+ InvocationHelper(const ObjectPrx& proxy, const string& op, const Context& ctx = emptyCtx) :
358
+ _proxy(proxy), _operation(op), _context(ctx)
359
+ {
360
+ }
361
+
362
+ string resolve(const string& attribute) const
363
+ {
364
+ if(attribute.compare(0, 8, "context.") == 0)
365
+ {
366
+ Context::const_iterator p = _context.find(attribute.substr(8));
367
+ if(p != _context.end())
368
+ {
369
+ return p->second;
370
+ }
371
+ }
372
+ throw invalid_argument(attribute);
373
+ }
374
+
375
+ virtual string operator()(const string& attribute) const
376
+ {
377
+ return attributes(this, attribute);
378
+ }
379
+
380
+ string
381
+ getMode() const
382
+ {
383
+ if(!_proxy)
384
+ {
385
+ throw invalid_argument("mode");
386
+ }
387
+
388
+ if(_proxy->ice_isTwoway())
389
+ {
390
+ return "twoway";
391
+ }
392
+ else if(_proxy->ice_isOneway())
393
+ {
394
+ return "oneway";
395
+ }
396
+ else if(_proxy->ice_isBatchOneway())
397
+ {
398
+ return "batch-oneway";
399
+ }
400
+ else if(_proxy->ice_isDatagram())
401
+ {
402
+ return "datagram";
403
+ }
404
+ else if(_proxy->ice_isBatchDatagram())
405
+ {
406
+ return "batch-datagram";
407
+ }
408
+ else
409
+ {
410
+ throw invalid_argument("mode");
411
+ }
412
+ }
413
+
414
+ const string&
415
+ getId() const
416
+ {
417
+ if(_id.empty())
418
+ {
419
+ ostringstream os;
420
+ if(_proxy)
421
+ {
422
+ try
423
+ {
424
+ os << _proxy->ice_endpoints(Ice::EndpointSeq()) << " [" << _operation << ']';
425
+ }
426
+ catch(const Exception&)
427
+ {
428
+ // Either a fixed proxy or the communicator is destroyed.
429
+ os << _proxy->ice_getCommunicator()->identityToString(_proxy->ice_getIdentity());
430
+ os << " [" << _operation << ']';
431
+ }
432
+ }
433
+ else
434
+ {
435
+ os << _operation;
436
+ }
437
+ _id = os.str();
438
+ }
439
+ return _id;
440
+ }
441
+
442
+ string
443
+ getParent() const
444
+ {
445
+ return "Communicator";
446
+ }
447
+
448
+ const ObjectPrx&
449
+ getProxy() const
450
+ {
451
+ return _proxy;
452
+ }
453
+
454
+
455
+ string
456
+ getIdentity() const
457
+ {
458
+ if(_proxy)
459
+ {
460
+ return _proxy->ice_getCommunicator()->identityToString(_proxy->ice_getIdentity());
461
+ }
462
+ else
463
+ {
464
+ return "";
465
+ }
466
+ }
467
+
468
+ const string&
469
+ getOperation() const
470
+ {
471
+ return _operation;
472
+ }
473
+
474
+ private:
475
+
476
+ const ObjectPrx& _proxy;
477
+ const string& _operation;
478
+ const Context& _context;
479
+ mutable string _id;
480
+ };
481
+
482
+ InvocationHelper::Attributes InvocationHelper::attributes;
483
+
484
+ class RemoteInvocationHelper : public MetricsHelperT<RemoteMetrics>
485
+ {
486
+ public:
487
+
488
+ class Attributes : public AttributeResolverT<RemoteInvocationHelper>
489
+ {
490
+ public:
491
+
492
+ Attributes()
493
+ {
494
+ add("parent", &RemoteInvocationHelper::getParent);
495
+ add("id", &RemoteInvocationHelper::getId);
496
+ add("requestId", &RemoteInvocationHelper::_requestId);
497
+ addConnectionAttributes<RemoteInvocationHelper>(*this);
498
+ }
499
+ };
500
+ static Attributes attributes;
501
+
502
+ RemoteInvocationHelper(const ConnectionInfoPtr& con, const EndpointPtr& endpt, int requestId, int size) :
503
+ _connectionInfo(con), _endpoint(endpt), _requestId(requestId), _size(size)
504
+ {
505
+ }
506
+
507
+ virtual string operator()(const string& attribute) const
508
+ {
509
+ return attributes(this, attribute);
510
+ }
511
+
512
+ virtual void initMetrics(const RemoteMetricsPtr& v) const
513
+ {
514
+ v->size += _size;
515
+ }
516
+
517
+ const string&
518
+ getId() const
519
+ {
520
+ if(_id.empty())
521
+ {
522
+ _id = _endpoint->toString();
523
+ if(!_connectionInfo->connectionId.empty())
524
+ {
525
+ _id += " [" + _connectionInfo->connectionId + "]";
526
+ }
527
+ }
528
+ return _id;
529
+ }
530
+
531
+ string
532
+ getParent() const
533
+ {
534
+ if(!_connectionInfo->adapterName.empty())
535
+ {
536
+ return _connectionInfo->adapterName;
537
+ }
538
+ else
539
+ {
540
+ return "Communicator";
541
+ }
542
+ }
543
+
544
+ const ConnectionInfoPtr&
545
+ getConnectionInfo() const
546
+ {
547
+ return _connectionInfo;
548
+ }
549
+
550
+ const EndpointPtr&
551
+ getEndpoint() const
552
+ {
553
+ return _endpoint;
554
+ }
555
+
556
+ const EndpointInfoPtr&
557
+ getEndpointInfo() const
558
+ {
559
+ if(!_endpointInfo)
560
+ {
561
+ _endpointInfo = _endpoint->getInfo();
562
+ }
563
+ return _endpointInfo;
564
+ }
565
+
566
+ private:
567
+
568
+ const ConnectionInfoPtr& _connectionInfo;
569
+ const EndpointPtr& _endpoint;
570
+
571
+ protected:
572
+ //
573
+ // COMPILERFIX: Clang 4.2 reports unused-private-field for the _requestId
574
+ // field that is only used in the nested Attributes class.
575
+ //
576
+ const int _requestId;
577
+
578
+ private:
579
+ const int _size;
580
+ mutable string _id;
581
+ mutable EndpointInfoPtr _endpointInfo;
582
+ };
583
+
584
+ RemoteInvocationHelper::Attributes RemoteInvocationHelper::attributes;
585
+
586
+ class CollocatedInvocationHelper : public MetricsHelperT<CollocatedMetrics>
587
+ {
588
+ public:
589
+
590
+ class Attributes : public AttributeResolverT<CollocatedInvocationHelper>
591
+ {
592
+ public:
593
+
594
+ Attributes()
595
+ {
596
+ add("parent", &CollocatedInvocationHelper::getParent);
597
+ add("id", &CollocatedInvocationHelper::getId);
598
+ add("requestId", &CollocatedInvocationHelper::_requestId);
599
+ }
600
+ };
601
+ static Attributes attributes;
602
+
603
+ CollocatedInvocationHelper(const Ice::ObjectAdapterPtr& adapter, int requestId, int size) :
604
+ _requestId(requestId), _size(size), _id(adapter->getName())
605
+ {
606
+ }
607
+
608
+ virtual string operator()(const string& attribute) const
609
+ {
610
+ return attributes(this, attribute);
611
+ }
612
+
613
+ virtual void initMetrics(const CollocatedMetricsPtr& v) const
614
+ {
615
+ v->size += _size;
616
+ }
617
+
618
+ const string&
619
+ getId() const
620
+ {
621
+ return _id;
622
+ }
623
+
624
+ string
625
+ getParent() const
626
+ {
627
+ return "Communicator";
628
+ }
629
+
630
+ protected:
631
+ //
632
+ // COMPILERFIX: Clang 4.2 reports unused-private-field for the _requestId
633
+ // field that is only used in the nested Attributes class.
634
+ //
635
+ const int _requestId;
636
+
637
+ private:
638
+
639
+ const int _size;
640
+ mutable string _id;
641
+ };
642
+
643
+ CollocatedInvocationHelper::Attributes CollocatedInvocationHelper::attributes;
644
+
645
+ class ThreadHelper : public MetricsHelperT<ThreadMetrics>
646
+ {
647
+ public:
648
+
649
+ class Attributes : public AttributeResolverT<ThreadHelper>
650
+ {
651
+ public:
652
+
653
+ Attributes()
654
+ {
655
+ add("parent", &ThreadHelper::_parent);
656
+ add("id", &ThreadHelper::_id);
657
+ }
658
+ };
659
+ static Attributes attributes;
660
+
661
+ ThreadHelper(const string& parent, const string& id, ThreadState state) : _parent(parent), _id(id), _state(state)
662
+ {
663
+ }
664
+
665
+ virtual string operator()(const string& attribute) const
666
+ {
667
+ return attributes(this, attribute);
668
+ }
669
+
670
+ virtual void initMetrics(const ThreadMetricsPtr& v) const
671
+ {
672
+ if(_state != ThreadStateIdle)
673
+ {
674
+ ++(v.get()->*getThreadStateMetric(_state));
675
+ }
676
+ }
677
+
678
+ private:
679
+
680
+ const string _parent;
681
+ const string _id;
682
+ const ThreadState _state;
683
+ };
684
+
685
+ ThreadHelper::Attributes ThreadHelper::attributes;
686
+
687
+ class EndpointHelper : public MetricsHelperT<Metrics>
688
+ {
689
+ public:
690
+
691
+ class Attributes : public AttributeResolverT<EndpointHelper>
692
+ {
693
+ public:
694
+
695
+ Attributes()
696
+ {
697
+ add("parent", &EndpointHelper::getParent);
698
+ add("id", &EndpointHelper::getId);
699
+ addEndpointAttributes<EndpointHelper>(*this);
700
+ }
701
+ };
702
+ static Attributes attributes;
703
+
704
+ EndpointHelper(const EndpointPtr& endpt, const string& id) : _endpoint(endpt), _id(id)
705
+ {
706
+ }
707
+
708
+ EndpointHelper(const EndpointPtr& endpt) : _endpoint(endpt)
709
+ {
710
+ }
711
+
712
+ virtual string operator()(const string& attribute) const
713
+ {
714
+ return attributes(this, attribute);
715
+ }
716
+
717
+ const EndpointInfoPtr&
718
+ getEndpointInfo() const
719
+ {
720
+ if(!_endpointInfo)
721
+ {
722
+ _endpointInfo = _endpoint->getInfo();
723
+ }
724
+ return _endpointInfo;
725
+ }
726
+
727
+ string
728
+ getParent() const
729
+ {
730
+ return "Communicator";
731
+ }
732
+
733
+ const string&
734
+ getId() const
735
+ {
736
+ if(_id.empty())
737
+ {
738
+ _id = _endpoint->toString();
739
+ }
740
+ return _id;
741
+ }
742
+
743
+ string
744
+ getEndpoint() const
745
+ {
746
+ return _endpoint->toString();
747
+ }
748
+
749
+ private:
750
+
751
+ const EndpointPtr _endpoint;
752
+ mutable string _id;
753
+ mutable EndpointInfoPtr _endpointInfo;
754
+ };
755
+
756
+ EndpointHelper::Attributes EndpointHelper::attributes;
757
+
758
+ }
759
+
760
+ void
761
+ ConnectionObserverI::sentBytes(Int num)
762
+ {
763
+ forEach(add(&ConnectionMetrics::sentBytes, num));
764
+ if(_delegate)
765
+ {
766
+ _delegate->sentBytes(num);
767
+ }
768
+ }
769
+
770
+ void
771
+ ConnectionObserverI::receivedBytes(Int num)
772
+ {
773
+ forEach(add(&ConnectionMetrics::receivedBytes, num));
774
+ if(_delegate)
775
+ {
776
+ _delegate->receivedBytes(num);
777
+ }
778
+ }
779
+
780
+ void
781
+ ThreadObserverI::stateChanged(ThreadState oldState, ThreadState newState)
782
+ {
783
+ forEach(ThreadStateChanged(oldState, newState));
784
+ if(_delegate)
785
+ {
786
+ _delegate->stateChanged(oldState, newState);
787
+ }
788
+
789
+ }
790
+
791
+ void
792
+ DispatchObserverI::userException()
793
+ {
794
+ forEach(inc(&DispatchMetrics::userException));
795
+ if(_delegate)
796
+ {
797
+ _delegate->userException();
798
+ }
799
+ }
800
+
801
+ void
802
+ DispatchObserverI::reply(Int size)
803
+ {
804
+ forEach(add(&DispatchMetrics::replySize, size));
805
+ if(_delegate)
806
+ {
807
+ _delegate->reply(size);
808
+ }
809
+ }
810
+
811
+ void
812
+ RemoteObserverI::reply(Int size)
813
+ {
814
+ forEach(add(&RemoteMetrics::replySize, size));
815
+ if(_delegate)
816
+ {
817
+ _delegate->reply(size);
818
+ }
819
+ }
820
+
821
+ void
822
+ CollocatedObserverI::reply(Int size)
823
+ {
824
+ forEach(add(&CollocatedMetrics::replySize, size));
825
+ if(_delegate)
826
+ {
827
+ _delegate->reply(size);
828
+ }
829
+ }
830
+
831
+ void
832
+ InvocationObserverI::retried()
833
+ {
834
+ forEach(inc(&InvocationMetrics::retry));
835
+ if(_delegate)
836
+ {
837
+ _delegate->retried();
838
+ }
839
+ }
840
+
841
+ void
842
+ InvocationObserverI::userException()
843
+ {
844
+ forEach(inc(&InvocationMetrics::userException));
845
+ if(_delegate)
846
+ {
847
+ _delegate->userException();
848
+ }
849
+ }
850
+
851
+ RemoteObserverPtr
852
+ InvocationObserverI::getRemoteObserver(const ConnectionInfoPtr& connection,
853
+ const EndpointPtr& endpoint,
854
+ int requestId,
855
+ int size)
856
+ {
857
+ try
858
+ {
859
+ RemoteObserverPtr delegate;
860
+ if(_delegate)
861
+ {
862
+ delegate = _delegate->getRemoteObserver(connection, endpoint, requestId, size);
863
+ }
864
+ return getObserverWithDelegate<RemoteObserverI>("Remote",
865
+ RemoteInvocationHelper(connection, endpoint, requestId, size),
866
+ delegate);
867
+ }
868
+ catch(const exception&)
869
+ {
870
+ }
871
+ return 0;
872
+ }
873
+
874
+ CollocatedObserverPtr
875
+ InvocationObserverI::getCollocatedObserver(const Ice::ObjectAdapterPtr& adapter, int requestId, int size)
876
+ {
877
+ try
878
+ {
879
+ CollocatedObserverPtr delegate;
880
+ if(_delegate)
881
+ {
882
+ delegate = _delegate->getCollocatedObserver(adapter, requestId, size);
883
+ }
884
+ return getObserverWithDelegate<CollocatedObserverI>("Collocated",
885
+ CollocatedInvocationHelper(adapter, requestId, size),
886
+ delegate);
887
+ }
888
+ catch(const exception&)
889
+ {
890
+ }
891
+ return 0;
892
+ }
893
+
894
+ CommunicatorObserverI::CommunicatorObserverI(const InitializationData& initData) :
895
+ _metrics(new MetricsAdminI(initData.properties, initData.logger)),
896
+ _delegate(initData.observer),
897
+ _connections(_metrics, "Connection"),
898
+ _dispatch(_metrics, "Dispatch"),
899
+ _invocations(_metrics, "Invocation"),
900
+ _threads(_metrics, "Thread"),
901
+ _connects(_metrics, "ConnectionEstablishment"),
902
+ _endpointLookups(_metrics, "EndpointLookup")
903
+ {
904
+ _invocations.registerSubMap<RemoteMetrics>("Remote", &InvocationMetrics::remotes);
905
+ _invocations.registerSubMap<CollocatedMetrics>("Collocated", &InvocationMetrics::collocated);
906
+ }
907
+
908
+ void
909
+ CommunicatorObserverI::setObserverUpdater(const ObserverUpdaterPtr& updater)
910
+ {
911
+ _connections.setUpdater(newUpdater(updater, &ObserverUpdater::updateConnectionObservers));
912
+ _threads.setUpdater(newUpdater(updater, &ObserverUpdater::updateThreadObservers));
913
+ if(_delegate)
914
+ {
915
+ _delegate->setObserverUpdater(updater);
916
+ }
917
+ }
918
+
919
+ ObserverPtr
920
+ CommunicatorObserverI::getConnectionEstablishmentObserver(const EndpointPtr& endpt, const string& connector)
921
+ {
922
+ if(_connects.isEnabled())
923
+ {
924
+ try
925
+ {
926
+ ObserverPtr delegate;
927
+ if(_delegate)
928
+ {
929
+ delegate = _delegate->getConnectionEstablishmentObserver(endpt, connector);
930
+ }
931
+ return _connects.getObserverWithDelegate(EndpointHelper(endpt, connector), delegate);
932
+ }
933
+ catch(const exception& ex)
934
+ {
935
+ Error error(_metrics->getLogger());
936
+ error << "unexpected exception trying to obtain observer:\n" << ex;
937
+ }
938
+ }
939
+ return 0;
940
+ }
941
+
942
+ ObserverPtr
943
+ CommunicatorObserverI::getEndpointLookupObserver(const EndpointPtr& endpt)
944
+ {
945
+ if(_endpointLookups.isEnabled())
946
+ {
947
+ try
948
+ {
949
+ ObserverPtr delegate;
950
+ if(_delegate)
951
+ {
952
+ delegate = _delegate->getEndpointLookupObserver(endpt);
953
+ }
954
+ return _endpointLookups.getObserverWithDelegate(EndpointHelper(endpt), delegate);
955
+ }
956
+ catch(const exception& ex)
957
+ {
958
+ Error error(_metrics->getLogger());
959
+ error << "unexpected exception trying to obtain observer:\n" << ex;
960
+ }
961
+ }
962
+ return 0;
963
+ }
964
+
965
+ ConnectionObserverPtr
966
+ CommunicatorObserverI::getConnectionObserver(const ConnectionInfoPtr& con,
967
+ const EndpointPtr& endpt,
968
+ ConnectionState state,
969
+ const ConnectionObserverPtr& observer)
970
+ {
971
+ if(_connections.isEnabled())
972
+ {
973
+ try
974
+ {
975
+ ConnectionObserverPtr delegate;
976
+ ConnectionObserverI* o = dynamic_cast<ConnectionObserverI*>(observer.get());
977
+ if(_delegate)
978
+ {
979
+ delegate = _delegate->getConnectionObserver(con, endpt, state, o ? o->getDelegate() : observer);
980
+ }
981
+ return _connections.getObserverWithDelegate(ConnectionHelper(con, endpt, state), delegate, observer);
982
+ }
983
+ catch(const exception& ex)
984
+ {
985
+ Error error(_metrics->getLogger());
986
+ error << "unexpected exception trying to obtain observer:\n" << ex;
987
+ }
988
+ }
989
+ return 0;
990
+ }
991
+
992
+ ThreadObserverPtr
993
+ CommunicatorObserverI::getThreadObserver(const string& parent,
994
+ const string& id,
995
+ ThreadState state,
996
+ const ThreadObserverPtr& observer)
997
+ {
998
+ if(_threads.isEnabled())
999
+ {
1000
+ try
1001
+ {
1002
+ ThreadObserverPtr delegate;
1003
+ ThreadObserverI* o = dynamic_cast<ThreadObserverI*>(observer.get());
1004
+ if(_delegate)
1005
+ {
1006
+ delegate = _delegate->getThreadObserver(parent, id, state, o ? o->getDelegate() : observer);
1007
+ }
1008
+ return _threads.getObserverWithDelegate(ThreadHelper(parent, id, state), delegate, observer);
1009
+ }
1010
+ catch(const exception& ex)
1011
+ {
1012
+ Error error(_metrics->getLogger());
1013
+ error << "unexpected exception trying to obtain observer:\n" << ex;
1014
+ }
1015
+ }
1016
+ return 0;
1017
+ }
1018
+
1019
+ InvocationObserverPtr
1020
+ CommunicatorObserverI::getInvocationObserver(const ObjectPrx& proxy, const string& op, const Context& ctx)
1021
+ {
1022
+ if(_invocations.isEnabled())
1023
+ {
1024
+ try
1025
+ {
1026
+ InvocationObserverPtr delegate;
1027
+ if(_delegate)
1028
+ {
1029
+ delegate = _delegate->getInvocationObserver(proxy, op, ctx);
1030
+ }
1031
+ return _invocations.getObserverWithDelegate(InvocationHelper(proxy, op, ctx), delegate);
1032
+ }
1033
+ catch(const exception& ex)
1034
+ {
1035
+ Error error(_metrics->getLogger());
1036
+ error << "unexpected exception trying to obtain observer:\n" << ex;
1037
+ }
1038
+ }
1039
+ return 0;
1040
+ }
1041
+
1042
+ DispatchObserverPtr
1043
+ CommunicatorObserverI::getDispatchObserver(const Current& current, int size)
1044
+ {
1045
+ if(_dispatch.isEnabled())
1046
+ {
1047
+ try
1048
+ {
1049
+ DispatchObserverPtr delegate;
1050
+ if(_delegate)
1051
+ {
1052
+ delegate = _delegate->getDispatchObserver(current, size);
1053
+ }
1054
+ return _dispatch.getObserverWithDelegate(DispatchHelper(current, size), delegate);
1055
+ }
1056
+ catch(const exception& ex)
1057
+ {
1058
+ Error error(_metrics->getLogger());
1059
+ error << "unexpected exception trying to obtain observer:\n" << ex;
1060
+ }
1061
+ }
1062
+ return 0;
1063
+ }
1064
+
1065
+ const IceInternal::MetricsAdminIPtr&
1066
+ CommunicatorObserverI::getFacet() const
1067
+ {
1068
+ assert(_metrics);
1069
+ return _metrics;
1070
+ }
1071
+
1072
+ void
1073
+ CommunicatorObserverI::destroy()
1074
+ {
1075
+ _connections.destroy();
1076
+ _dispatch.destroy();
1077
+ _invocations.destroy();
1078
+ _threads.destroy();
1079
+ _connects.destroy();
1080
+ _endpointLookups.destroy();
1081
+
1082
+ _metrics->destroy();
1083
+ }