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,157 @@
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_IP_ENDPOINT_I_H
11
+ #define ICE_IP_ENDPOINT_I_H
12
+
13
+ #include <IceUtil/Config.h>
14
+ #include <IceUtil/Shared.h>
15
+ #include <IceUtil/Thread.h>
16
+ #include <IceUtil/Monitor.h>
17
+ #include <Ice/IPEndpointIF.h>
18
+ #include <Ice/EndpointI.h>
19
+ #include <Ice/Network.h>
20
+ #include <Ice/ProtocolInstanceF.h>
21
+ #include <Ice/ObserverHelper.h>
22
+
23
+ #ifndef ICE_OS_WINRT
24
+ # include <deque>
25
+ #endif
26
+
27
+ namespace IceInternal
28
+ {
29
+
30
+ class ICE_API IPEndpointInfoI : public Ice::IPEndpointInfo
31
+ {
32
+ public:
33
+
34
+ IPEndpointInfoI(const EndpointIPtr&);
35
+ virtual ~IPEndpointInfoI();
36
+
37
+ virtual Ice::Short type() const;
38
+ virtual bool datagram() const;
39
+ virtual bool secure() const;
40
+
41
+ private:
42
+
43
+ const EndpointIPtr _endpoint;
44
+ };
45
+
46
+ class ICE_API IPEndpointI : public EndpointI
47
+ {
48
+ public:
49
+
50
+ virtual Ice::EndpointInfoPtr getInfo() const;
51
+ virtual Ice::Short type() const;
52
+ virtual const std::string& protocol() const;
53
+ virtual void streamWrite(BasicStream*) const;
54
+
55
+ virtual const std::string& connectionId() const;
56
+ virtual EndpointIPtr connectionId(const ::std::string&) const;
57
+
58
+ virtual void connectors_async(Ice::EndpointSelectionType, const EndpointI_connectorsPtr&) const;
59
+ virtual std::vector<EndpointIPtr> expand() const;
60
+ virtual bool equivalent(const EndpointIPtr&) const;
61
+ virtual ::Ice::Int hash() const;
62
+ virtual std::string options() const;
63
+
64
+ virtual bool operator==(const Ice::LocalObject&) const;
65
+ virtual bool operator<(const Ice::LocalObject&) const;
66
+
67
+ virtual std::vector<ConnectorPtr> connectors(const std::vector<Address>&, const NetworkProxyPtr&) const;
68
+ const std::string& host() const;
69
+ int port() const;
70
+
71
+ virtual void streamWriteImpl(BasicStream*) const;
72
+ virtual void hashInit(Ice::Int&) const;
73
+ virtual void fillEndpointInfo(Ice::IPEndpointInfo*) const;
74
+
75
+ using EndpointI::connectionId;
76
+
77
+ virtual void initWithOptions(std::vector<std::string>&, bool);
78
+
79
+ protected:
80
+
81
+ friend class EndpointHostResolver;
82
+
83
+ virtual bool checkOption(const std::string&, const std::string&, const std::string&);
84
+
85
+ virtual ConnectorPtr createConnector(const Address& address, const NetworkProxyPtr&) const = 0;
86
+ virtual IPEndpointIPtr createEndpoint(const std::string&, int, const std::string&) const = 0;
87
+
88
+ IPEndpointI(const ProtocolInstancePtr&, const std::string&, int, const Address&, const std::string&);
89
+ IPEndpointI(const ProtocolInstancePtr&);
90
+ IPEndpointI(const ProtocolInstancePtr&, BasicStream*);
91
+
92
+ const ProtocolInstancePtr _instance;
93
+ const std::string _host;
94
+ const int _port;
95
+ const Address _sourceAddr;
96
+ const std::string _connectionId;
97
+
98
+ private:
99
+
100
+ mutable bool _hashInitialized;
101
+ mutable Ice::Int _hashValue;
102
+ };
103
+
104
+ #ifndef ICE_OS_WINRT
105
+ class ICE_API EndpointHostResolver : public IceUtil::Thread, public IceUtil::Monitor<IceUtil::Mutex>
106
+ #else
107
+ class ICE_API EndpointHostResolver : public IceUtil::Shared
108
+ #endif
109
+ {
110
+ public:
111
+
112
+ EndpointHostResolver(const InstancePtr&);
113
+
114
+ void resolve(const std::string&, int, Ice::EndpointSelectionType, const IPEndpointIPtr&,
115
+ const EndpointI_connectorsPtr&);
116
+ void destroy();
117
+
118
+ virtual void run();
119
+ void updateObserver();
120
+
121
+ private:
122
+
123
+ #ifndef ICE_OS_WINRT
124
+ struct ResolveEntry
125
+ {
126
+ std::string host;
127
+ int port;
128
+ Ice::EndpointSelectionType selType;
129
+ IPEndpointIPtr endpoint;
130
+ EndpointI_connectorsPtr callback;
131
+ Ice::Instrumentation::ObserverPtr observer;
132
+ };
133
+
134
+ const InstancePtr _instance;
135
+ const IceInternal::ProtocolSupport _protocol;
136
+ const bool _preferIPv6;
137
+ bool _destroyed;
138
+ std::deque<ResolveEntry> _queue;
139
+ ObserverHelperT<Ice::Instrumentation::ThreadObserver> _observer;
140
+ #else
141
+ const InstancePtr _instance;
142
+ #endif
143
+ };
144
+
145
+ inline bool operator==(const IPEndpointI& l, const IPEndpointI& r)
146
+ {
147
+ return static_cast<const ::Ice::LocalObject&>(l) == static_cast<const ::Ice::LocalObject&>(r);
148
+ }
149
+
150
+ inline bool operator<(const IPEndpointI& l, const IPEndpointI& r)
151
+ {
152
+ return static_cast<const ::Ice::LocalObject&>(l) < static_cast<const ::Ice::LocalObject&>(r);
153
+ }
154
+
155
+ }
156
+
157
+ #endif
@@ -0,0 +1,29 @@
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_IP_ENDPOINT_I_F_H
11
+ #define ICE_IP_ENDPOINT_I_F_H
12
+
13
+ #include <IceUtil/Shared.h>
14
+ #include <Ice/Handle.h>
15
+
16
+ namespace IceInternal
17
+ {
18
+
19
+ class IPEndpointI;
20
+ ICE_API IceUtil::Shared* upCast(IPEndpointI*);
21
+ typedef Handle<IPEndpointI> IPEndpointIPtr;
22
+
23
+ class EndpointHostResolver;
24
+ ICE_API IceUtil::Shared* upCast(EndpointHostResolver*);
25
+ typedef Handle<EndpointHostResolver> EndpointHostResolverPtr;
26
+
27
+ }
28
+
29
+ #endif
@@ -0,0 +1,42 @@
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 `Identity.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/Identity.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 Ice
37
+ {
38
+ #ifdef ICE_HAS_DECLSPEC_IMPORT_EXPORT
39
+ template struct ICE_API StreamWriter< ::Ice::Identity, ::IceInternal::BasicStream>;
40
+ template struct ICE_API StreamReader< ::Ice::Identity, ::IceInternal::BasicStream>;
41
+ #endif
42
+ }
@@ -0,0 +1,41 @@
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 `ImplicitContext.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/ImplicitContext.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
+ }
40
+
41
+ ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::upCast(::Ice::ImplicitContext* p) { return p; }
@@ -0,0 +1,38 @@
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 `ImplicitContextF.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/ImplicitContextF.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
+ }
@@ -0,0 +1,639 @@
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/ImplicitContextI.h>
11
+ #include <Ice/BasicStream.h>
12
+ #include <Ice/Object.h>
13
+ #include <IceUtil/Mutex.h>
14
+ #include <IceUtil/MutexPtrLock.h>
15
+
16
+ using namespace std;
17
+ using namespace Ice;
18
+
19
+ namespace
20
+ {
21
+
22
+ class SharedImplicitContext : public ImplicitContextI
23
+ {
24
+ public:
25
+
26
+ virtual Context getContext() const;
27
+ virtual void setContext(const Context&);
28
+
29
+ virtual bool containsKey(const string&) const;
30
+ virtual string get(const string&) const;
31
+ virtual string put(const string&, const string&);
32
+ virtual string remove(const string&);
33
+
34
+ virtual void write(const Context&, ::IceInternal::BasicStream*) const;
35
+ virtual void combine(const Context&, Context&) const;
36
+
37
+ private:
38
+ Context _context;
39
+ IceUtil::Mutex _mutex;
40
+ };
41
+
42
+ #ifndef ICE_OS_WINRT
43
+ class PerThreadImplicitContext : public ImplicitContextI
44
+ {
45
+ public:
46
+
47
+ PerThreadImplicitContext();
48
+ virtual ~PerThreadImplicitContext();
49
+
50
+ virtual Context getContext() const;
51
+ virtual void setContext(const Context&);
52
+
53
+ virtual bool containsKey(const string&) const;
54
+ virtual string get(const string&) const;
55
+ virtual string put(const string&, const string&);
56
+ virtual string remove(const string&);
57
+
58
+ virtual void write(const Context&, ::IceInternal::BasicStream*) const;
59
+ virtual void combine(const Context&, Context&) const;
60
+
61
+ struct Slot
62
+ {
63
+ Slot() :
64
+ context(0),
65
+ owner(-1) // just to avoid UMR; a random value would work as well
66
+ {
67
+ }
68
+
69
+ Context* context;
70
+ long owner;
71
+ };
72
+
73
+
74
+ //
75
+ // Each thread maintains a SlotVector. Each PerThreadImplicitContext instance
76
+ // is assigned a slot in this vector.
77
+ //
78
+ typedef std::vector<Slot> SlotVector;
79
+
80
+ //
81
+ // We remember which slot-indices are in use (to be able to reuse indices)
82
+ //
83
+ typedef std::vector<bool> IndexInUse;
84
+ static IndexInUse* _indexInUse;
85
+ static IceUtil::Mutex* _mutex;
86
+
87
+ static long _nextId;
88
+
89
+ #ifdef _WIN32
90
+ static DWORD _key;
91
+ #else
92
+ static pthread_key_t _key;
93
+ #endif
94
+
95
+ private:
96
+
97
+ Context* getThreadContext(bool) const;
98
+ void clearThreadContext() const;
99
+
100
+ size_t _index; // index in all SlotVector
101
+ long _id; // corresponds to owner in the Slot
102
+ };
103
+ #endif
104
+ }
105
+
106
+ extern "C" void iceImplicitContextThreadDestructor(void*);
107
+
108
+
109
+
110
+ /*static*/ ImplicitContextI*
111
+ ImplicitContextI::create(const std::string& kind)
112
+ {
113
+ if(kind == "None" || kind == "")
114
+ {
115
+ return 0;
116
+ }
117
+ else if(kind == "Shared")
118
+ {
119
+ return new SharedImplicitContext;
120
+ }
121
+ else if(kind == "PerThread")
122
+ {
123
+ #ifndef ICE_OS_WINRT
124
+ return new PerThreadImplicitContext;
125
+ #else
126
+ throw InitializationException(__FILE__, __LINE__,
127
+ "'PerThread' Ice.ImplicitContext isn't supported for WinRT.");
128
+ return 0; // Keep the compiler happy.
129
+ #endif
130
+ }
131
+ else
132
+ {
133
+ throw Ice::InitializationException(
134
+ __FILE__, __LINE__,
135
+ "'" + kind + "' is not a valid value for Ice.ImplicitContext");
136
+ return 0; // Keep the compiler happy.
137
+ }
138
+ }
139
+
140
+ #if defined(_WIN32) && !defined(ICE_OS_WINRT)
141
+ void
142
+ ImplicitContextI::cleanupThread()
143
+ {
144
+ if(PerThreadImplicitContext::_nextId > 0)
145
+ {
146
+ iceImplicitContextThreadDestructor(TlsGetValue(PerThreadImplicitContext::_key));
147
+ }
148
+ }
149
+ #endif
150
+
151
+
152
+ //
153
+ // SharedImplicitContext implementation
154
+ //
155
+
156
+ Context
157
+ SharedImplicitContext::getContext() const
158
+ {
159
+ IceUtil::Mutex::Lock lock(_mutex);
160
+ return _context;
161
+ }
162
+
163
+ void
164
+ SharedImplicitContext::setContext(const Context& newContext)
165
+ {
166
+ IceUtil::Mutex::Lock lock(_mutex);
167
+ _context = newContext;
168
+ }
169
+
170
+ bool
171
+ SharedImplicitContext::containsKey(const string& k) const
172
+ {
173
+ IceUtil::Mutex::Lock lock(_mutex);
174
+ Context::const_iterator p = _context.find(k);
175
+ return p != _context.end();
176
+ }
177
+
178
+ string
179
+ SharedImplicitContext::get(const string& k) const
180
+ {
181
+ IceUtil::Mutex::Lock lock(_mutex);
182
+ Context::const_iterator p = _context.find(k);
183
+ if(p == _context.end())
184
+ {
185
+ return "";
186
+ }
187
+ return p->second;
188
+ }
189
+
190
+
191
+ string
192
+ SharedImplicitContext::put(const string& k, const string& v)
193
+ {
194
+ IceUtil::Mutex::Lock lock(_mutex);
195
+ string& val = _context[k];
196
+
197
+ string oldVal = val;
198
+ val = v;
199
+ return oldVal;
200
+ }
201
+
202
+ string
203
+ SharedImplicitContext::remove(const string& k)
204
+ {
205
+ IceUtil::Mutex::Lock lock(_mutex);
206
+ Context::iterator p = _context.find(k);
207
+ if(p == _context.end())
208
+ {
209
+ return "";
210
+ }
211
+ else
212
+ {
213
+ string oldVal = p->second;
214
+ _context.erase(p);
215
+ return oldVal;
216
+ }
217
+ }
218
+
219
+ void
220
+ SharedImplicitContext::write(const Context& proxyCtx, ::IceInternal::BasicStream* s) const
221
+ {
222
+ IceUtil::Mutex::Lock lock(_mutex);
223
+ if(proxyCtx.size() == 0)
224
+ {
225
+ s->write(_context);
226
+ }
227
+ else if(_context.size() == 0)
228
+ {
229
+ lock.release();
230
+ s->write(proxyCtx);
231
+ }
232
+ else
233
+ {
234
+ Context combined = proxyCtx;
235
+ combined.insert(_context.begin(), _context.end());
236
+ lock.release();
237
+ s->write(combined);
238
+ }
239
+ }
240
+
241
+ void
242
+ SharedImplicitContext::combine(const Context& proxyCtx, Context& ctx) const
243
+ {
244
+ IceUtil::Mutex::Lock lock(_mutex);
245
+ if(proxyCtx.size() == 0)
246
+ {
247
+ ctx = _context;
248
+ }
249
+ else if(_context.size() == 0)
250
+ {
251
+ ctx = proxyCtx;
252
+ }
253
+ else
254
+ {
255
+ ctx = proxyCtx;
256
+ ctx.insert(_context.begin(), _context.end());
257
+ }
258
+ }
259
+
260
+ //
261
+ // PerThreadImplicitContext implementation
262
+ //
263
+ #ifndef ICE_OS_WINRT
264
+ long PerThreadImplicitContext::_nextId;
265
+ PerThreadImplicitContext::IndexInUse* PerThreadImplicitContext::_indexInUse;
266
+ IceUtil::Mutex* PerThreadImplicitContext::_mutex = 0;
267
+
268
+ namespace
269
+ {
270
+
271
+ class Init
272
+ {
273
+ public:
274
+
275
+ Init()
276
+ {
277
+ PerThreadImplicitContext::_mutex = new IceUtil::Mutex;
278
+ }
279
+
280
+ ~Init()
281
+ {
282
+ delete PerThreadImplicitContext::_mutex;
283
+ PerThreadImplicitContext::_mutex = 0;
284
+ }
285
+ };
286
+
287
+ Init init;
288
+
289
+ }
290
+
291
+ # ifdef _WIN32
292
+ DWORD PerThreadImplicitContext::_key;
293
+ # else
294
+ pthread_key_t PerThreadImplicitContext::_key;
295
+ # endif
296
+
297
+ PerThreadImplicitContext::PerThreadImplicitContext()
298
+ {
299
+ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(_mutex);
300
+ _id = _nextId++;
301
+ if(_id == 0)
302
+ {
303
+ //
304
+ // Initialize; note that we never dealloc this key (it would be
305
+ // complex, and since it's a static variable, it's not really a leak)
306
+ //
307
+ # ifdef _WIN32
308
+ _key = TlsAlloc();
309
+ if(_key == TLS_OUT_OF_INDEXES)
310
+ {
311
+ throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
312
+ }
313
+ # else
314
+ int err = pthread_key_create(&_key, &iceImplicitContextThreadDestructor);
315
+ if(err != 0)
316
+ {
317
+ throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err);
318
+ }
319
+ # endif
320
+ }
321
+
322
+ //
323
+ // Now grabs an index
324
+ //
325
+ if(_indexInUse == 0)
326
+ {
327
+ _indexInUse = new IndexInUse(1);
328
+ }
329
+ size_t i = 0;
330
+ while(i < _indexInUse->size() && (*_indexInUse)[i])
331
+ {
332
+ i++;
333
+ }
334
+
335
+ if(i == _indexInUse->size())
336
+ {
337
+ _indexInUse->resize(i + 1);
338
+ }
339
+ (*_indexInUse)[i] = true;
340
+ _index = i;
341
+ }
342
+
343
+ PerThreadImplicitContext::~PerThreadImplicitContext()
344
+ {
345
+ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(_mutex);
346
+ (*_indexInUse)[_index] = false;
347
+
348
+ if(find(_indexInUse->begin(), _indexInUse->end(), true) == _indexInUse->end())
349
+ {
350
+ delete _indexInUse;
351
+ _indexInUse = 0;
352
+ }
353
+ }
354
+
355
+ Context*
356
+ PerThreadImplicitContext::getThreadContext(bool allocate) const
357
+ {
358
+ # ifdef _WIN32
359
+ SlotVector* sv = static_cast<SlotVector*>(TlsGetValue(_key));
360
+ # else
361
+ SlotVector* sv = static_cast<SlotVector*>(pthread_getspecific(_key));
362
+ # endif
363
+ if(sv == 0)
364
+ {
365
+ if(!allocate)
366
+ {
367
+ return 0;
368
+ }
369
+
370
+ sv = new SlotVector(_index + 1);
371
+ # ifdef _WIN32
372
+
373
+ if(TlsSetValue(_key, sv) == 0)
374
+ {
375
+ throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
376
+ }
377
+ # else
378
+ if(int err = pthread_setspecific(_key, sv))
379
+ {
380
+ throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err);
381
+ }
382
+ # endif
383
+ }
384
+ else
385
+ {
386
+ if(sv->size() <= _index)
387
+ {
388
+ if(!allocate)
389
+ {
390
+ return 0;
391
+ }
392
+ else
393
+ {
394
+ sv->resize(_index + 1);
395
+ }
396
+ }
397
+ }
398
+
399
+ Slot& slot = (*sv)[_index];
400
+ if(slot.context != 0)
401
+ {
402
+ if(slot.owner != _id)
403
+ {
404
+ //
405
+ // Reuse the slot from another (dead) communicator
406
+ //
407
+ slot.context->clear();
408
+ slot.owner = _id;
409
+ }
410
+ //
411
+ // else keep this slot.context
412
+ //
413
+ }
414
+ else
415
+ {
416
+ if(allocate)
417
+ {
418
+ slot.context = new Context;
419
+ slot.owner = _id;
420
+ }
421
+ //
422
+ // else keep null slot.context
423
+ //
424
+ }
425
+ return slot.context;
426
+ }
427
+
428
+ void
429
+ PerThreadImplicitContext::clearThreadContext() const
430
+ {
431
+ # ifdef _WIN32
432
+ SlotVector* sv = static_cast<SlotVector*>(TlsGetValue(_key));
433
+ # else
434
+ SlotVector* sv = static_cast<SlotVector*>(pthread_getspecific(_key));
435
+ # endif
436
+ if(sv != 0 && _index < sv->size())
437
+ {
438
+ delete (*sv)[_index].context;
439
+ (*sv)[_index].context = 0;
440
+
441
+ //
442
+ // Trim tailing empty contexts.
443
+ //
444
+ size_t i = sv->size();
445
+
446
+ bool clear = true;
447
+ while(i != 0)
448
+ {
449
+ i--;
450
+ if((*sv)[i].context != 0)
451
+ {
452
+ clear = false;
453
+ break;
454
+ }
455
+ }
456
+
457
+ //
458
+ // If we did not find any contexts, delete the SlotVector.
459
+ //
460
+ if(clear)
461
+ {
462
+ delete sv;
463
+ # ifdef _WIN32
464
+ if(TlsSetValue(_key, 0) == 0)
465
+ {
466
+ IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
467
+ }
468
+ # else
469
+ if(int err = pthread_setspecific(_key, 0))
470
+ {
471
+ throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err);
472
+ }
473
+ # endif
474
+ }
475
+ else
476
+ {
477
+ sv->resize(i + 1);
478
+ }
479
+ }
480
+ }
481
+
482
+
483
+ Context
484
+ PerThreadImplicitContext::getContext() const
485
+ {
486
+ Context* ctx = getThreadContext(false);
487
+ if(ctx == 0)
488
+ {
489
+ return Context();
490
+ }
491
+ else
492
+ {
493
+ return *ctx;
494
+ }
495
+ }
496
+
497
+ void
498
+ PerThreadImplicitContext::setContext(const Context& newContext)
499
+ {
500
+ if(newContext.size() == 0)
501
+ {
502
+ clearThreadContext();
503
+ }
504
+ else
505
+ {
506
+ Context* ctx = getThreadContext(true);
507
+ assert(ctx != 0);
508
+ *ctx = newContext;
509
+ }
510
+ }
511
+
512
+ bool
513
+ PerThreadImplicitContext::containsKey(const string& k) const
514
+ {
515
+ const Context* ctx = getThreadContext(false);
516
+ if(ctx == 0)
517
+ {
518
+ return false;
519
+ }
520
+ Context::const_iterator p = ctx->find(k);
521
+ return p != ctx->end();
522
+ }
523
+
524
+ string
525
+ PerThreadImplicitContext::get(const string& k) const
526
+ {
527
+ const Context* ctx = getThreadContext(false);
528
+ if(ctx == 0)
529
+ {
530
+ return "";
531
+ }
532
+ Context::const_iterator p = ctx->find(k);
533
+ if(p == ctx->end())
534
+ {
535
+ return "";
536
+ }
537
+ return p->second;
538
+ }
539
+
540
+ string
541
+ PerThreadImplicitContext::put(const string& k, const string& v)
542
+ {
543
+ Context* ctx = getThreadContext(true);
544
+
545
+ string& val = (*ctx)[k];
546
+
547
+ string oldVal = val;
548
+ val = v;
549
+ return oldVal;
550
+ }
551
+
552
+ string
553
+ PerThreadImplicitContext::remove(const string& k)
554
+ {
555
+ Context* ctx = getThreadContext(false);
556
+ if(ctx == 0)
557
+ {
558
+ return "";
559
+ }
560
+
561
+ Context::iterator p = ctx->find(k);
562
+ if(p == ctx->end())
563
+ {
564
+ return "";
565
+ }
566
+ else
567
+ {
568
+ string oldVal = p->second;
569
+ ctx->erase(p);
570
+
571
+ if(ctx->size() == 0)
572
+ {
573
+ clearThreadContext();
574
+ }
575
+ return oldVal;
576
+ }
577
+ }
578
+
579
+ void
580
+ PerThreadImplicitContext::write(const Context& proxyCtx, ::IceInternal::BasicStream* s) const
581
+ {
582
+ const Context* threadCtx = getThreadContext(false);
583
+
584
+ if(threadCtx == 0 || threadCtx->size() == 0)
585
+ {
586
+ s->write(proxyCtx);
587
+ }
588
+ else if(proxyCtx.size() == 0)
589
+ {
590
+ s->write(*threadCtx);
591
+ }
592
+ else
593
+ {
594
+ Context combined = proxyCtx;
595
+ combined.insert(threadCtx->begin(), threadCtx->end());
596
+ s->write(combined);
597
+ }
598
+ }
599
+
600
+ void
601
+ PerThreadImplicitContext::combine(const Context& proxyCtx, Context& ctx) const
602
+ {
603
+ const Context* threadCtx = getThreadContext(false);
604
+
605
+ if(threadCtx == 0 || threadCtx->size() == 0)
606
+ {
607
+ ctx = proxyCtx;
608
+ }
609
+ else if(proxyCtx.size() == 0)
610
+ {
611
+ ctx = *threadCtx;
612
+ }
613
+ else
614
+ {
615
+ ctx = proxyCtx;
616
+ ctx.insert(threadCtx->begin(), threadCtx->end());
617
+ }
618
+ }
619
+
620
+ extern "C" void iceImplicitContextThreadDestructor(void* v)
621
+ {
622
+ PerThreadImplicitContext::SlotVector* sv = static_cast<PerThreadImplicitContext::SlotVector*>(v);
623
+ if(sv != 0)
624
+ {
625
+ //
626
+ // Cleanup each slot
627
+ //
628
+ for(PerThreadImplicitContext::SlotVector::iterator p = sv->begin(); p != sv->end(); ++p)
629
+ {
630
+ delete p->context;
631
+ }
632
+ //
633
+ // Then the vector
634
+ //
635
+ delete sv;
636
+ }
637
+ }
638
+
639
+ #endif