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,193 @@
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_LOCATOR_INFO_H
11
+ #define ICE_LOCATOR_INFO_H
12
+
13
+ #include <IceUtil/Shared.h>
14
+ #include <IceUtil/Mutex.h>
15
+ #include <IceUtil/Monitor.h>
16
+ #include <IceUtil/Time.h>
17
+ #include <Ice/LocatorInfoF.h>
18
+ #include <Ice/LocatorF.h>
19
+ #include <Ice/ReferenceF.h>
20
+ #include <Ice/Identity.h>
21
+ #include <Ice/EndpointIF.h>
22
+ #include <Ice/PropertiesF.h>
23
+ #include <Ice/Version.h>
24
+
25
+ #include <IceUtil/UniquePtr.h>
26
+
27
+ namespace IceInternal
28
+ {
29
+
30
+ class LocatorManager : public IceUtil::Shared, public IceUtil::Mutex
31
+ {
32
+ public:
33
+
34
+ LocatorManager(const Ice::PropertiesPtr&);
35
+
36
+ void destroy();
37
+
38
+ //
39
+ // Returns locator info for a given locator. Automatically creates
40
+ // the locator info if it doesn't exist yet.
41
+ //
42
+ LocatorInfoPtr get(const Ice::LocatorPrx&);
43
+
44
+ private:
45
+
46
+ const bool _background;
47
+
48
+ std::map<Ice::LocatorPrx, LocatorInfoPtr> _table;
49
+ std::map<Ice::LocatorPrx, LocatorInfoPtr>::iterator _tableHint;
50
+
51
+ std::map<std::pair<Ice::Identity, Ice::EncodingVersion>, LocatorTablePtr> _locatorTables;
52
+ };
53
+
54
+ class LocatorTable : public IceUtil::Shared, public IceUtil::Mutex
55
+ {
56
+ public:
57
+
58
+ LocatorTable();
59
+
60
+ void clear();
61
+
62
+ bool getAdapterEndpoints(const std::string&, int, ::std::vector<EndpointIPtr>&);
63
+ void addAdapterEndpoints(const std::string&, const ::std::vector<EndpointIPtr>&);
64
+ ::std::vector<EndpointIPtr> removeAdapterEndpoints(const std::string&);
65
+
66
+ bool getObjectReference(const Ice::Identity&, int, ReferencePtr&);
67
+ void addObjectReference(const Ice::Identity&, const ReferencePtr&);
68
+ ReferencePtr removeObjectReference(const Ice::Identity&);
69
+
70
+ private:
71
+
72
+ bool checkTTL(const IceUtil::Time&, int) const;
73
+
74
+ std::map<std::string, std::pair<IceUtil::Time, std::vector<EndpointIPtr> > > _adapterEndpointsMap;
75
+ std::map<Ice::Identity, std::pair<IceUtil::Time, ReferencePtr> > _objectMap;
76
+ };
77
+
78
+ class LocatorInfo : public IceUtil::Shared, public IceUtil::Mutex
79
+ {
80
+ public:
81
+
82
+ class GetEndpointsCallback : virtual public IceUtil::Shared
83
+ {
84
+ public:
85
+
86
+ virtual void setEndpoints(const std::vector<EndpointIPtr>&, bool) = 0;
87
+ virtual void setException(const Ice::LocalException&) = 0;
88
+ };
89
+ typedef IceUtil::Handle<GetEndpointsCallback> GetEndpointsCallbackPtr;
90
+
91
+ class RequestCallback : virtual public IceUtil::Shared
92
+ {
93
+ public:
94
+
95
+ RequestCallback(const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
96
+
97
+ void response(const LocatorInfoPtr&, const Ice::ObjectPrx&);
98
+ void exception(const LocatorInfoPtr&, const Ice::Exception&);
99
+
100
+ private:
101
+
102
+ const ReferencePtr _ref;
103
+ const int _ttl;
104
+ const GetEndpointsCallbackPtr _callback;
105
+ };
106
+ typedef IceUtil::Handle<RequestCallback> RequestCallbackPtr;
107
+
108
+ class Request : virtual public IceUtil::Shared
109
+ {
110
+ public:
111
+
112
+ void addCallback(const ReferencePtr&, const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
113
+ std::vector<EndpointIPtr> getEndpoints(const ReferencePtr&, const ReferencePtr&, int, bool&);
114
+
115
+ void response(const Ice::ObjectPrx&);
116
+ void exception(const Ice::Exception&);
117
+
118
+ protected:
119
+
120
+ Request(const LocatorInfoPtr&, const ReferencePtr&);
121
+
122
+ virtual void send() = 0;
123
+
124
+ const LocatorInfoPtr _locatorInfo;
125
+ const ReferencePtr _ref;
126
+
127
+ private:
128
+
129
+ IceUtil::Monitor<IceUtil::Mutex> _monitor;
130
+ std::vector<RequestCallbackPtr> _callbacks;
131
+ std::vector<ReferencePtr> _wellKnownRefs;
132
+ bool _sent;
133
+ bool _response;
134
+ Ice::ObjectPrx _proxy;
135
+ IceUtil::UniquePtr<Ice::Exception> _exception;
136
+ };
137
+ typedef IceUtil::Handle<Request> RequestPtr;
138
+
139
+ LocatorInfo(const Ice::LocatorPrx&, const LocatorTablePtr&, bool);
140
+
141
+ void destroy();
142
+
143
+ bool operator==(const LocatorInfo&) const;
144
+ bool operator!=(const LocatorInfo&) const;
145
+ bool operator<(const LocatorInfo&) const;
146
+
147
+ const Ice::LocatorPrx& getLocator() const
148
+ {
149
+ //
150
+ // No mutex lock necessary, _locator is immutable.
151
+ //
152
+ return _locator;
153
+ }
154
+ Ice::LocatorRegistryPrx getLocatorRegistry();
155
+
156
+ std::vector<EndpointIPtr> getEndpoints(const ReferencePtr& ref, int ttl, bool& cached)
157
+ {
158
+ return getEndpoints(ref, 0, ttl, cached);
159
+ }
160
+ void getEndpoints(const ReferencePtr& ref, int ttl, const GetEndpointsCallbackPtr& cb)
161
+ {
162
+ getEndpoints(ref, 0, ttl, cb);
163
+ }
164
+ std::vector<EndpointIPtr> getEndpoints(const ReferencePtr&, const ReferencePtr&, int, bool&);
165
+ void getEndpoints(const ReferencePtr&, const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
166
+
167
+ void clearCache(const ReferencePtr&);
168
+
169
+ private:
170
+
171
+ void getEndpointsException(const ReferencePtr&, const Ice::Exception&);
172
+ void getEndpointsTrace(const ReferencePtr&, const std::vector<EndpointIPtr>&, bool);
173
+ void trace(const std::string&, const ReferencePtr&, const std::vector<EndpointIPtr>&);
174
+
175
+ RequestPtr getAdapterRequest(const ReferencePtr&);
176
+ RequestPtr getObjectRequest(const ReferencePtr&);
177
+
178
+ void finishRequest(const ReferencePtr&, const std::vector<ReferencePtr>&, const Ice::ObjectPrx&, bool);
179
+ friend class Request;
180
+ friend class RequestCallback;
181
+
182
+ const Ice::LocatorPrx _locator;
183
+ Ice::LocatorRegistryPrx _locatorRegistry;
184
+ const LocatorTablePtr _table;
185
+ const bool _background;
186
+
187
+ std::map<std::string, RequestPtr> _adapterRequests;
188
+ std::map<Ice::Identity, RequestPtr> _objectRequests;
189
+ };
190
+
191
+ }
192
+
193
+ #endif
@@ -0,0 +1,34 @@
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_LOCATOR_INFO_F_H
11
+ #define ICE_LOCATOR_INFO_F_H
12
+
13
+ #include <IceUtil/Shared.h>
14
+
15
+ #include <Ice/Handle.h>
16
+
17
+ namespace IceInternal
18
+ {
19
+
20
+ class LocatorManager;
21
+ IceUtil::Shared* upCast(LocatorManager*);
22
+ typedef Handle<LocatorManager> LocatorManagerPtr;
23
+
24
+ class LocatorInfo;
25
+ IceUtil::Shared* upCast(LocatorInfo*);
26
+ typedef Handle<LocatorInfo> LocatorInfoPtr;
27
+
28
+ class LocatorTable;
29
+ IceUtil::Shared* upCast(LocatorTable*);
30
+ typedef Handle<LocatorTable> LocatorTablePtr;
31
+
32
+ }
33
+
34
+ #endif
@@ -0,0 +1,40 @@
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 `Logger.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/Logger.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
+ }
39
+
40
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::upCast(::Ice::Logger* p) { return p; }
@@ -0,0 +1,862 @@
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/LoggerAdminI.h>
11
+ #include <Ice/Initialize.h>
12
+ #include <Ice/Communicator.h>
13
+ #include <Ice/RemoteLogger.h>
14
+ #include <Ice/Properties.h>
15
+ #include <Ice/ObjectAdapter.h>
16
+ #include <Ice/Connection.h>
17
+ #include <Ice/LocalException.h>
18
+ #include <Ice/LoggerUtil.h>
19
+
20
+ #include <set>
21
+
22
+ using namespace Ice;
23
+ using namespace std;
24
+
25
+ namespace
26
+ {
27
+
28
+ const char* traceCategory = "Admin.Logger";
29
+
30
+ class LoggerAdminI : public Ice::LoggerAdmin
31
+ {
32
+ public:
33
+
34
+ LoggerAdminI(const PropertiesPtr&);
35
+
36
+ virtual void attachRemoteLogger(const RemoteLoggerPrx&, const LogMessageTypeSeq&,
37
+ const StringSeq&, Int, const Current&);
38
+
39
+ virtual bool detachRemoteLogger(const RemoteLoggerPrx&, const Current&);
40
+
41
+ virtual LogMessageSeq getLog(const LogMessageTypeSeq&, const StringSeq&, Int, string&, const Current&);
42
+
43
+ void destroy();
44
+
45
+ vector<RemoteLoggerPrx> log(const LogMessage&);
46
+
47
+ void deadRemoteLogger(const RemoteLoggerPrx&, const LoggerPtr&, const LocalException&, const string&);
48
+
49
+ const int getTraceLevel() const
50
+ {
51
+ return _traceLevel;
52
+ }
53
+
54
+ private:
55
+
56
+ bool removeRemoteLogger(const RemoteLoggerPrx&);
57
+
58
+ void initCompleted(const AsyncResultPtr&);
59
+
60
+ IceUtil::Mutex _mutex;
61
+ list<LogMessage> _queue;
62
+ int _logCount; // non-trace messages
63
+ const int _maxLogCount;
64
+ int _traceCount;
65
+ const int _maxTraceCount;
66
+ const int _traceLevel;
67
+
68
+ list<LogMessage>::iterator _oldestTrace;
69
+ list<LogMessage>::iterator _oldestLog;
70
+
71
+ struct ObjectIdentityCompare
72
+ {
73
+ bool operator()(const RemoteLoggerPrx& lhs, const RemoteLoggerPrx& rhs) const
74
+ {
75
+ //
76
+ // Caller should make sure that proxies are never null
77
+ //
78
+ assert(lhs != 0 && rhs != 0);
79
+
80
+ return lhs->ice_getIdentity() < rhs->ice_getIdentity();
81
+ }
82
+ };
83
+
84
+ struct Filters
85
+ {
86
+ Filters(const LogMessageTypeSeq& m, const StringSeq& c) :
87
+ messageTypes(m.begin(), m.end()),
88
+ traceCategories(c.begin(), c.end())
89
+ {
90
+ }
91
+
92
+ const set<LogMessageType> messageTypes;
93
+ const set<string> traceCategories;
94
+ };
95
+
96
+ typedef map<RemoteLoggerPrx, Filters, ObjectIdentityCompare> RemoteLoggerMap;
97
+
98
+ struct GetRemoteLoggerMapKey
99
+ {
100
+ RemoteLoggerMap::key_type
101
+ operator()(const RemoteLoggerMap::value_type& val)
102
+ {
103
+ return val.first;
104
+ }
105
+ };
106
+
107
+ RemoteLoggerMap _remoteLoggerMap;
108
+ CommunicatorPtr _sendLogCommunicator;
109
+ bool _destroyed;
110
+ };
111
+ typedef IceUtil::Handle<LoggerAdminI> LoggerAdminIPtr;
112
+
113
+
114
+ class Job : public IceUtil::Shared
115
+ {
116
+ public:
117
+
118
+ Job(const vector<RemoteLoggerPrx>& r, const LogMessage& l) :
119
+ remoteLoggers(r),
120
+ logMessage(l)
121
+ {
122
+ }
123
+
124
+ const vector<RemoteLoggerPrx> remoteLoggers;
125
+ const LogMessage logMessage;
126
+ };
127
+ typedef IceUtil::Handle<Job> JobPtr;
128
+
129
+
130
+ class LoggerAdminLoggerI : public IceInternal::LoggerAdminLogger
131
+ {
132
+ public:
133
+
134
+ LoggerAdminLoggerI(const PropertiesPtr&, const LoggerPtr&);
135
+
136
+ virtual void print(const std::string&);
137
+ virtual void trace(const std::string&, const std::string&);
138
+ virtual void warning(const std::string&);
139
+ virtual void error(const std::string&);
140
+ virtual std::string getPrefix();
141
+ virtual LoggerPtr cloneWithPrefix(const std::string&);
142
+
143
+ virtual ObjectPtr getFacet() const;
144
+
145
+ virtual void destroy();
146
+
147
+ const LoggerPtr& getLocalLogger() const
148
+ {
149
+ return _localLogger;
150
+ }
151
+
152
+ void run();
153
+
154
+ private:
155
+
156
+ void log(const LogMessage&);
157
+
158
+ void logCompleted(const AsyncResultPtr&);
159
+
160
+ LoggerPtr _localLogger;
161
+ const LoggerAdminIPtr _loggerAdmin;
162
+
163
+ IceUtil::Monitor<IceUtil::Mutex> _monitor;
164
+
165
+ bool _destroyed;
166
+ IceUtil::ThreadPtr _sendLogThread;
167
+ std::deque<JobPtr> _jobQueue;
168
+ };
169
+ typedef IceUtil::Handle<LoggerAdminLoggerI> LoggerAdminLoggerIPtr;
170
+
171
+
172
+ class SendLogThread : public IceUtil::Thread
173
+ {
174
+ public:
175
+
176
+ SendLogThread(const LoggerAdminLoggerIPtr&);
177
+
178
+ virtual void run();
179
+
180
+ private:
181
+
182
+ LoggerAdminLoggerIPtr _logger;
183
+ };
184
+
185
+
186
+ //
187
+ // Helper functions
188
+ //
189
+
190
+ //
191
+ // Filter out messages from in/out logMessages list
192
+ //
193
+ void
194
+ filterLogMessages(LogMessageSeq& logMessages, const set<LogMessageType>& messageTypes,
195
+ const set<string>& traceCategories, Int messageMax)
196
+ {
197
+ assert(!logMessages.empty() && messageMax != 0);
198
+
199
+ //
200
+ // Filter only if one of the 3 filters is set; messageMax < 0 means "give me all"
201
+ // that match the other filters, if any.
202
+ //
203
+ if(!messageTypes.empty() || !traceCategories.empty() || messageMax > 0)
204
+ {
205
+ int count = 0;
206
+ LogMessageSeq::reverse_iterator p = logMessages.rbegin();
207
+ while(p != logMessages.rend())
208
+ {
209
+ bool keepIt = false;
210
+ if(messageTypes.empty() || messageTypes.count(p->type) != 0)
211
+ {
212
+ if(p->type != TraceMessage || traceCategories.empty() ||
213
+ traceCategories.count(p->traceCategory) != 0)
214
+ {
215
+ keepIt = true;
216
+ }
217
+ }
218
+
219
+ if(keepIt)
220
+ {
221
+ ++p;
222
+ ++count;
223
+ if(messageMax > 0 && count >= messageMax)
224
+ {
225
+ //
226
+ // p.base() points to p "+1"; note that this invalidates p.
227
+ //
228
+ logMessages.erase(logMessages.begin(), p.base());
229
+ break; // while
230
+ }
231
+ }
232
+ else
233
+ {
234
+ ++p;
235
+ //
236
+ // p.base() points to p "+1"; the erase invalidates p so we
237
+ // need to rebuild it
238
+ //
239
+ p = LogMessageSeq::reverse_iterator(logMessages.erase(p.base()));
240
+ }
241
+ }
242
+ }
243
+ // else, don't need any filtering
244
+ }
245
+
246
+ //
247
+ // Change this proxy's communicator, while keeping its invocation timeout
248
+ //
249
+ RemoteLoggerPrx
250
+ changeCommunicator(const RemoteLoggerPrx& prx, const CommunicatorPtr& communicator)
251
+ {
252
+ if(prx == 0)
253
+ {
254
+ return 0;
255
+ }
256
+
257
+ RemoteLoggerPrx result = RemoteLoggerPrx::uncheckedCast(communicator->stringToProxy(prx->ice_toString()));
258
+
259
+ return result->ice_invocationTimeout(prx->ice_getInvocationTimeout());
260
+ }
261
+
262
+ //
263
+ // Copies a set of properties
264
+ //
265
+ void
266
+ copyProperties(const string& prefix, const PropertiesPtr& from, const PropertiesPtr& to)
267
+ {
268
+ PropertyDict dict = from->getPropertiesForPrefix(prefix);
269
+ for(PropertyDict::const_iterator p = dict.begin(); p != dict.end(); ++p)
270
+ {
271
+ to->setProperty(p->first, p->second);
272
+ }
273
+ }
274
+
275
+ //
276
+ // Create communicator used to send logs
277
+ //
278
+ CommunicatorPtr
279
+ createSendLogCommunicator(const CommunicatorPtr& communicator, const LoggerPtr& logger)
280
+ {
281
+ InitializationData initData;
282
+ initData.logger = logger;
283
+ initData.properties = createProperties();
284
+
285
+ PropertiesPtr mainProps = communicator->getProperties();
286
+
287
+ copyProperties("Ice.Default.Locator", mainProps, initData.properties);
288
+ copyProperties("Ice.Plugin.IceSSL", mainProps, initData.properties);
289
+ copyProperties("IceSSL.", mainProps, initData.properties);
290
+
291
+ StringSeq extraProps = mainProps->getPropertyAsList("Ice.Admin.Logger.Properties");
292
+
293
+ if(!extraProps.empty())
294
+ {
295
+ for(vector<string>::iterator p = extraProps.begin(); p != extraProps.end(); ++p)
296
+ {
297
+ if(p->find("--") != 0)
298
+ {
299
+ *p = "--" + *p;
300
+ }
301
+ }
302
+ initData.properties->parseCommandLineOptions("", extraProps);
303
+ }
304
+ return initialize(initData);
305
+ }
306
+
307
+ //
308
+ // LoggerAdminI
309
+ //
310
+
311
+ LoggerAdminI::LoggerAdminI(const PropertiesPtr& props) :
312
+ _logCount(0),
313
+ _maxLogCount(props->getPropertyAsIntWithDefault("Ice.Admin.Logger.KeepLogs", 100)),
314
+ _traceCount(0),
315
+ _maxTraceCount(props->getPropertyAsIntWithDefault("Ice.Admin.Logger.KeepTraces", 100)),
316
+ _traceLevel(props->getPropertyAsInt("Ice.Trace.Admin.Logger")),
317
+ _destroyed(false)
318
+ {
319
+ _oldestLog = _queue.end();
320
+ _oldestTrace = _queue.end();
321
+ }
322
+
323
+ void
324
+ LoggerAdminI::attachRemoteLogger(const RemoteLoggerPrx& prx,
325
+ const LogMessageTypeSeq& messageTypes,
326
+ const StringSeq& categories,
327
+ Int messageMax,
328
+ const Current& current)
329
+ {
330
+ if(!prx)
331
+ {
332
+ return; // can't send this null RemoteLogger anything!
333
+ }
334
+
335
+ //
336
+ // In C++, LoggerAdminI does not keep a "logger" data member to avoid a hard-to-break circular
337
+ // reference, so we retrieve the logger from Current
338
+ //
339
+
340
+ LoggerAdminLoggerIPtr logger = LoggerAdminLoggerIPtr::dynamicCast(current.adapter->getCommunicator()->getLogger());
341
+ if(!logger)
342
+ {
343
+ // Our logger is not installed - must be a bug
344
+ assert(0);
345
+ return;
346
+ }
347
+
348
+ RemoteLoggerPrx remoteLogger = prx->ice_twoway();
349
+
350
+ Filters filters(messageTypes, categories);
351
+ LogMessageSeq initLogMessages;
352
+ {
353
+ IceUtil::Mutex::Lock lock(_mutex);
354
+
355
+ if(!_sendLogCommunicator)
356
+ {
357
+ if(_destroyed)
358
+ {
359
+ throw Ice::ObjectNotExistException(__FILE__, __LINE__);
360
+ }
361
+
362
+ _sendLogCommunicator =
363
+ createSendLogCommunicator(current.adapter->getCommunicator(), logger->getLocalLogger());
364
+ }
365
+
366
+ if(!_remoteLoggerMap.insert(make_pair(changeCommunicator(remoteLogger, _sendLogCommunicator), filters)).second)
367
+ {
368
+ if(_traceLevel > 0)
369
+ {
370
+ Trace trace(logger, traceCategory);
371
+ trace << "rejecting `" << remoteLogger << "' with RemoteLoggerAlreadyAttachedException";
372
+ }
373
+
374
+ throw RemoteLoggerAlreadyAttachedException();
375
+ }
376
+
377
+ if(messageMax != 0)
378
+ {
379
+ initLogMessages = _queue; // copy
380
+ }
381
+ }
382
+
383
+ if(_traceLevel > 0)
384
+ {
385
+ Trace trace(logger, traceCategory);
386
+ trace << "attached `" << remoteLogger << "'";
387
+ }
388
+
389
+ if(!initLogMessages.empty())
390
+ {
391
+ filterLogMessages(initLogMessages, filters.messageTypes, filters.traceCategories, messageMax);
392
+ }
393
+
394
+ CallbackPtr initCompletedCb = newCallback(this, &LoggerAdminI::initCompleted);
395
+
396
+ try
397
+ {
398
+ remoteLogger->begin_init(logger->getPrefix(), initLogMessages, initCompletedCb, logger);
399
+ }
400
+ catch(const LocalException& ex)
401
+ {
402
+ deadRemoteLogger(remoteLogger, logger, ex, "init");
403
+ throw;
404
+ }
405
+ }
406
+
407
+ bool
408
+ LoggerAdminI::detachRemoteLogger(const RemoteLoggerPrx& remoteLogger, const Current& current)
409
+ {
410
+ if(remoteLogger == 0)
411
+ {
412
+ return false;
413
+ }
414
+
415
+ //
416
+ // No need to convert the proxy as we only use its identity
417
+ //
418
+ bool found = removeRemoteLogger(remoteLogger);
419
+
420
+ if(_traceLevel > 0)
421
+ {
422
+ Trace trace(current.adapter->getCommunicator()->getLogger(), traceCategory);
423
+ if(found)
424
+ {
425
+ trace << "detached `" << remoteLogger << "'";
426
+ }
427
+ else
428
+ {
429
+ trace << "cannot detach `" << remoteLogger << "': not found";
430
+ }
431
+ }
432
+
433
+ return found;
434
+ }
435
+
436
+ LogMessageSeq
437
+ LoggerAdminI::getLog(const LogMessageTypeSeq& messageTypes, const StringSeq& categories,
438
+ Int messageMax, string& prefix, const Current& current)
439
+ {
440
+ LogMessageSeq logMessages;
441
+ {
442
+ IceUtil::Mutex::Lock lock(_mutex);
443
+
444
+ if(messageMax != 0)
445
+ {
446
+ logMessages = _queue;
447
+ }
448
+ }
449
+
450
+ LoggerPtr logger = current.adapter->getCommunicator()->getLogger();
451
+ prefix = logger->getPrefix();
452
+
453
+ if(!logMessages.empty())
454
+ {
455
+ Filters filters(messageTypes, categories);
456
+ filterLogMessages(logMessages, filters.messageTypes, filters.traceCategories, messageMax);
457
+ }
458
+
459
+ return logMessages;
460
+ }
461
+
462
+ void
463
+ LoggerAdminI::destroy()
464
+ {
465
+ CommunicatorPtr sendLogCommunicator;
466
+ {
467
+ IceUtil::Mutex::Lock lock(_mutex);
468
+ if(!_destroyed)
469
+ {
470
+ _destroyed = true;
471
+ sendLogCommunicator = _sendLogCommunicator;
472
+ _sendLogCommunicator = 0;
473
+ }
474
+ }
475
+
476
+ //
477
+ // Destroy outside lock to avoid deadlock when there are outstanding two-way log calls sent to
478
+ // remote logggers
479
+ //
480
+ if(sendLogCommunicator)
481
+ {
482
+ sendLogCommunicator->destroy();
483
+ }
484
+ }
485
+
486
+ vector<RemoteLoggerPrx>
487
+ LoggerAdminI::log(const LogMessage& logMessage)
488
+ {
489
+ vector<RemoteLoggerPrx> remoteLoggers;
490
+
491
+ IceUtil::Mutex::Lock lock(_mutex);
492
+
493
+ //
494
+ // Put message in _queue
495
+ //
496
+ if((logMessage.type != TraceMessage && _maxLogCount > 0) ||
497
+ (logMessage.type == TraceMessage && _maxTraceCount > 0))
498
+ {
499
+ list<LogMessage>::iterator p = _queue.insert(_queue.end(), logMessage);
500
+
501
+ if(logMessage.type != TraceMessage)
502
+ {
503
+ assert(_maxLogCount > 0);
504
+ if(_logCount == _maxLogCount)
505
+ {
506
+ //
507
+ // Need to remove the oldest log from the queue
508
+ //
509
+ assert(_oldestLog != _queue.end());
510
+ _oldestLog = _queue.erase(_oldestLog);
511
+ while(_oldestLog != _queue.end() && _oldestLog->type == TraceMessage)
512
+ {
513
+ _oldestLog++;
514
+ }
515
+ assert(_oldestLog != _queue.end());
516
+ }
517
+ else
518
+ {
519
+ assert(_logCount < _maxLogCount);
520
+ _logCount++;
521
+ if(_oldestLog == _queue.end())
522
+ {
523
+ _oldestLog = p;
524
+ }
525
+ }
526
+ }
527
+ else
528
+ {
529
+ assert(_maxTraceCount > 0);
530
+ if(_traceCount == _maxTraceCount)
531
+ {
532
+ //
533
+ // Need to remove the oldest trace from the queue
534
+ //
535
+ assert(_oldestTrace != _queue.end());
536
+ _oldestTrace = _queue.erase(_oldestTrace);
537
+ while(_oldestTrace != _queue.end() && _oldestTrace->type != TraceMessage)
538
+ {
539
+ _oldestTrace++;
540
+ }
541
+ assert(_oldestTrace != _queue.end());
542
+ }
543
+ else
544
+ {
545
+ assert(_traceCount < _maxTraceCount);
546
+ _traceCount++;
547
+ if(_oldestTrace == _queue.end())
548
+ {
549
+ _oldestTrace = p;
550
+ }
551
+ }
552
+ }
553
+
554
+ //
555
+ // Queue updated, now find which remote loggers want this message
556
+ //
557
+ for(RemoteLoggerMap::const_iterator p = _remoteLoggerMap.begin(); p != _remoteLoggerMap.end(); ++p)
558
+ {
559
+ const Filters& filters = p->second;
560
+
561
+ if(filters.messageTypes.empty() || filters.messageTypes.count(logMessage.type) != 0)
562
+ {
563
+ if(logMessage.type != TraceMessage || filters.traceCategories.empty() ||
564
+ filters.traceCategories.count(logMessage.traceCategory) != 0)
565
+ {
566
+ remoteLoggers.push_back(p->first);
567
+ }
568
+ }
569
+ }
570
+ }
571
+ return remoteLoggers;
572
+ }
573
+
574
+ void
575
+ LoggerAdminI::deadRemoteLogger(const RemoteLoggerPrx& remoteLogger,
576
+ const LoggerPtr& logger,
577
+ const LocalException& ex,
578
+ const string& operation)
579
+ {
580
+ //
581
+ // No need to convert remoteLogger as we only use its identity
582
+ //
583
+ if(removeRemoteLogger(remoteLogger))
584
+ {
585
+ if(_traceLevel > 0)
586
+ {
587
+ Trace trace(logger, traceCategory);
588
+ trace << "detached `" << remoteLogger << "' because " << operation << " raised:\n" << ex;
589
+ }
590
+ }
591
+ }
592
+
593
+ bool
594
+ LoggerAdminI::removeRemoteLogger(const RemoteLoggerPrx& remoteLogger)
595
+ {
596
+ IceUtil::Mutex::Lock lock(_mutex);
597
+ return _remoteLoggerMap.erase(remoteLogger) > 0;
598
+ }
599
+
600
+ void
601
+ LoggerAdminI::initCompleted(const AsyncResultPtr& r)
602
+ {
603
+ RemoteLoggerPrx remoteLogger = RemoteLoggerPrx::uncheckedCast(r->getProxy());
604
+
605
+ try
606
+ {
607
+ remoteLogger->end_init(r);
608
+
609
+ if(_traceLevel > 1)
610
+ {
611
+ LoggerPtr logger = LoggerPtr::dynamicCast(r->getCookie());
612
+ Trace trace(logger, traceCategory);
613
+ trace << r->getOperation() << " on `" << remoteLogger << "' completed successfully";
614
+ }
615
+ }
616
+ catch(const LocalException& ex)
617
+ {
618
+ deadRemoteLogger(remoteLogger, LoggerPtr::dynamicCast(r->getCookie()), ex, r->getOperation());
619
+ }
620
+ }
621
+
622
+ //
623
+ // LoggerAdminLoggerI
624
+ //
625
+
626
+ LoggerAdminLoggerI::LoggerAdminLoggerI(const PropertiesPtr& props,
627
+ const LoggerPtr& localLogger) :
628
+ _loggerAdmin(new LoggerAdminI(props)),
629
+ _destroyed(false)
630
+ {
631
+ //
632
+ // There is currently no way to have a null local logger
633
+ //
634
+ assert(localLogger != 0);
635
+
636
+ LoggerAdminLoggerI* wrapper = dynamic_cast<LoggerAdminLoggerI*>(localLogger.get());
637
+ if(wrapper)
638
+ {
639
+ // use the underlying local logger
640
+ _localLogger = wrapper->getLocalLogger();
641
+ }
642
+ else
643
+ {
644
+ _localLogger = localLogger;
645
+ }
646
+ }
647
+
648
+ void
649
+ LoggerAdminLoggerI::print(const string& message)
650
+ {
651
+ LogMessage logMessage = { PrintMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
652
+
653
+ _localLogger->print(message);
654
+ log(logMessage);
655
+ }
656
+
657
+ void
658
+ LoggerAdminLoggerI::trace(const string& category, const string& message)
659
+ {
660
+ LogMessage logMessage = { TraceMessage, IceUtil::Time::now().toMicroSeconds(), category, message };
661
+
662
+ _localLogger->trace(category, message);
663
+ log(logMessage);
664
+ }
665
+
666
+ void
667
+ LoggerAdminLoggerI::warning(const string& message)
668
+ {
669
+ LogMessage logMessage = { WarningMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
670
+
671
+ _localLogger->warning(message);
672
+ log(logMessage);
673
+ }
674
+
675
+ void
676
+ LoggerAdminLoggerI::error(const string& message)
677
+ {
678
+ LogMessage logMessage = { ErrorMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
679
+
680
+ _localLogger->error(message);
681
+ log(logMessage);
682
+ }
683
+
684
+ string
685
+ LoggerAdminLoggerI::getPrefix()
686
+ {
687
+ return _localLogger->getPrefix();
688
+ }
689
+
690
+ LoggerPtr
691
+ LoggerAdminLoggerI::cloneWithPrefix(const string& prefix)
692
+ {
693
+ return _localLogger->cloneWithPrefix(prefix);
694
+ }
695
+
696
+ ObjectPtr
697
+ LoggerAdminLoggerI::getFacet() const
698
+ {
699
+ return _loggerAdmin;
700
+ }
701
+
702
+ void
703
+ LoggerAdminLoggerI::log(const LogMessage& logMessage)
704
+ {
705
+ const vector<RemoteLoggerPrx> remoteLoggers = _loggerAdmin->log(logMessage);
706
+
707
+ if(!remoteLoggers.empty())
708
+ {
709
+ IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
710
+
711
+ if(!_sendLogThread)
712
+ {
713
+ _sendLogThread = new SendLogThread(this);
714
+ _sendLogThread->start();
715
+ }
716
+
717
+ _jobQueue.push_back(new Job(remoteLoggers, logMessage));
718
+ _monitor.notifyAll();
719
+ }
720
+ }
721
+
722
+ void
723
+ LoggerAdminLoggerI::destroy()
724
+ {
725
+ IceUtil::ThreadControl sendLogThreadControl;
726
+ bool joinThread = false;
727
+ {
728
+ IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
729
+
730
+ if(_sendLogThread)
731
+ {
732
+ joinThread = true;
733
+ sendLogThreadControl = _sendLogThread->getThreadControl();
734
+ _sendLogThread = 0;
735
+ _destroyed = true;
736
+ _monitor.notifyAll();
737
+ }
738
+ }
739
+
740
+ if(joinThread)
741
+ {
742
+ sendLogThreadControl.join();
743
+ }
744
+
745
+ // destroy sendLogCommunicator
746
+ _loggerAdmin->destroy();
747
+ }
748
+
749
+ void
750
+ LoggerAdminLoggerI::run()
751
+ {
752
+ if(_loggerAdmin->getTraceLevel() > 1)
753
+ {
754
+ Trace trace(_localLogger, traceCategory);
755
+ trace << "send log thread started";
756
+ }
757
+
758
+ CallbackPtr logCompletedCb = newCallback(this, &LoggerAdminLoggerI::logCompleted);
759
+
760
+ for(;;)
761
+ {
762
+ IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
763
+ while(!_destroyed && _jobQueue.empty())
764
+ {
765
+ _monitor.wait();
766
+ }
767
+ if(_destroyed)
768
+ {
769
+ break; // for(;;)
770
+ }
771
+
772
+ assert(!_jobQueue.empty());
773
+ JobPtr job = _jobQueue.front();
774
+ _jobQueue.pop_front();
775
+ lock.release();
776
+
777
+ for(vector<RemoteLoggerPrx>::const_iterator p = job->remoteLoggers.begin(); p != job->remoteLoggers.end(); ++p)
778
+ {
779
+ if(_loggerAdmin->getTraceLevel() > 1)
780
+ {
781
+ Trace trace(_localLogger, traceCategory);
782
+ trace << "sending log message to `" << *p << "'";
783
+ }
784
+
785
+ try
786
+ {
787
+ //
788
+ // *p is a proxy associated with the _sendLogCommunicator
789
+ //
790
+ (*p)->begin_log(job->logMessage, logCompletedCb);
791
+ }
792
+ catch(const LocalException& ex)
793
+ {
794
+ _loggerAdmin->deadRemoteLogger(*p, _localLogger, ex, "log");
795
+ }
796
+ }
797
+ }
798
+
799
+ if(_loggerAdmin->getTraceLevel() > 1)
800
+ {
801
+ Trace trace(_localLogger, traceCategory);
802
+ trace << "send log thread completed";
803
+ }
804
+ }
805
+
806
+ void
807
+ LoggerAdminLoggerI::logCompleted(const AsyncResultPtr& r)
808
+ {
809
+ RemoteLoggerPrx remoteLogger = RemoteLoggerPrx::uncheckedCast(r->getProxy());
810
+
811
+ try
812
+ {
813
+ remoteLogger->end_log(r);
814
+
815
+ if(_loggerAdmin->getTraceLevel() > 1)
816
+ {
817
+ Trace trace(_localLogger, traceCategory);
818
+ trace << r->getOperation() << " on `" << remoteLogger << "' completed successfully";
819
+ }
820
+ }
821
+ catch(const CommunicatorDestroyedException&)
822
+ {
823
+ // expected if there are outstanding calls during communicator destruction
824
+ }
825
+ catch(const LocalException& ex)
826
+ {
827
+ _loggerAdmin->deadRemoteLogger(remoteLogger, _localLogger, ex, r->getOperation());
828
+ }
829
+ }
830
+
831
+ //
832
+ // SendLogThread
833
+ //
834
+
835
+ SendLogThread::SendLogThread(const LoggerAdminLoggerIPtr& logger) :
836
+ IceUtil::Thread("Ice.SendLogThread"),
837
+ _logger(logger)
838
+ {
839
+ }
840
+
841
+ void
842
+ SendLogThread::run()
843
+ {
844
+ _logger->run();
845
+ }
846
+ }
847
+
848
+ //
849
+ // createLoggerAdminLogger
850
+ //
851
+
852
+ namespace IceInternal
853
+ {
854
+
855
+ LoggerAdminLoggerPtr
856
+ createLoggerAdminLogger(const PropertiesPtr& props,
857
+ const LoggerPtr& localLogger)
858
+ {
859
+ return new LoggerAdminLoggerI(props, localLogger);
860
+ }
861
+
862
+ }