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,117 @@
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_ACM_H
11
+ #define ICE_ACM_H
12
+
13
+ #include <IceUtil/Mutex.h>
14
+ #include <IceUtil/Monitor.h>
15
+ #include <IceUtil/Timer.h>
16
+ #include <Ice/ACMF.h>
17
+ #include <Ice/Connection.h>
18
+ #include <Ice/ConnectionIF.h>
19
+ #include <Ice/InstanceF.h>
20
+ #include <Ice/PropertiesF.h>
21
+ #include <Ice/LoggerF.h>
22
+ #include <set>
23
+
24
+ namespace IceInternal
25
+ {
26
+
27
+ class ACMConfig
28
+ {
29
+ public:
30
+
31
+ ACMConfig(bool = false);
32
+ ACMConfig(const Ice::PropertiesPtr&, const Ice::LoggerPtr&, const std::string&, const ACMConfig&);
33
+
34
+ IceUtil::Time timeout;
35
+ Ice::ACMHeartbeat heartbeat;
36
+ Ice::ACMClose close;
37
+ };
38
+
39
+ class ACMMonitor : public IceUtil::TimerTask
40
+ {
41
+ public:
42
+
43
+ virtual void add(const Ice::ConnectionIPtr&) = 0;
44
+ virtual void remove(const Ice::ConnectionIPtr&) = 0;
45
+ virtual void reap(const Ice::ConnectionIPtr&) = 0;
46
+
47
+ virtual ACMMonitorPtr acm(const IceUtil::Optional<int>&,
48
+ const IceUtil::Optional<Ice::ACMClose>&,
49
+ const IceUtil::Optional<Ice::ACMHeartbeat>&) = 0;
50
+ virtual Ice::ACM getACM() = 0;
51
+ };
52
+
53
+ class FactoryACMMonitor : public ACMMonitor, public ::IceUtil::Mutex
54
+ {
55
+ public:
56
+
57
+ FactoryACMMonitor(const InstancePtr&, const ACMConfig&);
58
+ virtual ~FactoryACMMonitor();
59
+
60
+ virtual void add(const Ice::ConnectionIPtr&);
61
+ virtual void remove(const Ice::ConnectionIPtr&);
62
+ virtual void reap(const Ice::ConnectionIPtr&);
63
+
64
+ virtual ACMMonitorPtr acm(const IceUtil::Optional<int>&,
65
+ const IceUtil::Optional<Ice::ACMClose>&,
66
+ const IceUtil::Optional<Ice::ACMHeartbeat>&);
67
+ virtual Ice::ACM getACM();
68
+
69
+ void destroy();
70
+ void swapReapedConnections(std::vector<Ice::ConnectionIPtr>&);
71
+
72
+ private:
73
+
74
+ friend class ConnectionACMMonitor;
75
+ void handleException(const std::exception&);
76
+ void handleException();
77
+
78
+ virtual void runTimerTask();
79
+
80
+ InstancePtr _instance;
81
+ const ACMConfig _config;
82
+
83
+ std::vector<std::pair<Ice::ConnectionIPtr, bool> > _changes;
84
+ std::set<Ice::ConnectionIPtr> _connections;
85
+ std::vector<Ice::ConnectionIPtr> _reapedConnections;
86
+ };
87
+
88
+ class ConnectionACMMonitor : public ACMMonitor, public ::IceUtil::Mutex
89
+ {
90
+ public:
91
+
92
+ ConnectionACMMonitor(const FactoryACMMonitorPtr&, const IceUtil::TimerPtr&, const ACMConfig&);
93
+ virtual ~ConnectionACMMonitor();
94
+
95
+ virtual void add(const Ice::ConnectionIPtr&);
96
+ virtual void remove(const Ice::ConnectionIPtr&);
97
+ virtual void reap(const Ice::ConnectionIPtr&);
98
+
99
+ virtual ACMMonitorPtr acm(const IceUtil::Optional<int>&,
100
+ const IceUtil::Optional<Ice::ACMClose>&,
101
+ const IceUtil::Optional<Ice::ACMHeartbeat>&);
102
+ virtual Ice::ACM getACM();
103
+
104
+ private:
105
+
106
+ virtual void runTimerTask();
107
+
108
+ const FactoryACMMonitorPtr _parent;
109
+ const IceUtil::TimerPtr _timer;
110
+ const ACMConfig _config;
111
+
112
+ Ice::ConnectionIPtr _connection;
113
+ };
114
+
115
+ }
116
+
117
+ #endif
@@ -0,0 +1,16 @@
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/Acceptor.h>
11
+
12
+ using namespace std;
13
+ using namespace Ice;
14
+ using namespace IceInternal;
15
+
16
+ IceUtil::Shared* IceInternal::upCast(Acceptor* p) { return p; }
@@ -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
+ #ifndef ICE_ACCEPTOR_H
11
+ #define ICE_ACCEPTOR_H
12
+
13
+ #include <IceUtil/Shared.h>
14
+ #include <Ice/AcceptorF.h>
15
+ #include <Ice/TransceiverF.h>
16
+ #include <Ice/EndpointIF.h>
17
+ #include <Ice/Network.h>
18
+
19
+ namespace IceInternal
20
+ {
21
+
22
+ class ICE_API Acceptor : virtual public ::IceUtil::Shared
23
+ {
24
+ public:
25
+
26
+ virtual NativeInfoPtr getNativeInfo() = 0;
27
+ virtual void close() = 0;
28
+ virtual EndpointIPtr listen() = 0;
29
+ #if defined(ICE_USE_IOCP) || defined(ICE_OS_WINRT)
30
+ virtual void startAccept() = 0;
31
+ virtual void finishAccept() = 0;
32
+ #endif
33
+ virtual TransceiverPtr accept() = 0;
34
+ virtual std::string protocol() const = 0;
35
+ virtual std::string toString() const = 0;
36
+ virtual std::string toDetailedString() const = 0;
37
+ };
38
+
39
+ }
40
+
41
+ #endif
@@ -0,0 +1,30 @@
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_ACCEPTOR_F_H
11
+ #define ICE_ACCEPTOR_F_H
12
+
13
+ #include <IceUtil/Shared.h>
14
+
15
+ #include <Ice/Handle.h>
16
+
17
+ namespace IceInternal
18
+ {
19
+
20
+ class Acceptor;
21
+ ICE_API IceUtil::Shared* upCast(Acceptor*);
22
+ typedef Handle<Acceptor> AcceptorPtr;
23
+
24
+ class TcpAcceptor;
25
+ ICE_API IceUtil::Shared* upCast(TcpAcceptor*);
26
+ typedef Handle<TcpAcceptor> TcpAcceptorPtr;
27
+
28
+ }
29
+
30
+ #endif
@@ -0,0 +1,760 @@
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/Application.h>
11
+ #include <Ice/LoggerI.h>
12
+ #include <IceUtil/Mutex.h>
13
+ #include <IceUtil/CtrlCHandler.h>
14
+ #include <IceUtil/Cond.h>
15
+ #include <IceUtil/ArgVector.h>
16
+ #include <IceUtil/UniquePtr.h>
17
+
18
+ using namespace std;
19
+ using namespace Ice;
20
+ using namespace IceUtil;
21
+ using namespace IceUtilInternal;
22
+
23
+ //
24
+ // static initializations.
25
+ //
26
+ Mutex* IceInternal::Application::mutex = 0;
27
+
28
+ bool IceInternal::Application::_callbackInProgress = false;
29
+ bool IceInternal::Application::_destroyed = false;
30
+ bool IceInternal::Application::_interrupted = false;
31
+
32
+ string IceInternal::Application::_appName;
33
+ CommunicatorPtr IceInternal::Application::_communicator;
34
+ SignalPolicy IceInternal::Application::_signalPolicy = HandleSignals;
35
+ Cond* IceInternal::Application::_condVar;
36
+ Application* IceInternal::Application::_application;
37
+ //
38
+ // _mutex and _condVar are used to synchronize the main thread and
39
+ // the CtrlCHandler thread
40
+ //
41
+
42
+ namespace
43
+ {
44
+
45
+ class Init
46
+ {
47
+ public:
48
+
49
+ Init()
50
+ {
51
+ IceInternal::Application::mutex = new IceUtil::Mutex;
52
+ IceInternal::Application::_condVar = new Cond();
53
+ }
54
+
55
+ ~Init()
56
+ {
57
+ delete IceInternal::Application::mutex;
58
+ IceInternal::Application::mutex = 0;
59
+ delete IceInternal::Application::_condVar;
60
+ IceInternal::Application::_condVar = 0;
61
+ }
62
+ };
63
+
64
+ Init init;
65
+
66
+
67
+
68
+ //
69
+ // Variables than can change while run() and communicator->destroy() are running!
70
+ //
71
+ bool _released = false;
72
+ CtrlCHandlerCallback _previousCallback = 0;
73
+
74
+ //
75
+ // Variables that are immutable during run() and until communicator->destroy() has returned;
76
+ // before and after run(), and once communicator->destroy() has returned, we assume that
77
+ // only the main thread and CtrlCHandler threads are running.
78
+ //
79
+ CtrlCHandler* _ctrlCHandler = 0;
80
+ bool _nohup = false;
81
+
82
+ }
83
+
84
+ #ifdef _WIN32
85
+ const DWORD SIGHUP = CTRL_LOGOFF_EVENT;
86
+ #else
87
+ # include <csignal>
88
+ #endif
89
+
90
+ //
91
+ // Compaq C++ defines signal() as a macro, causing problems with the _condVar->signal()
92
+ // statement, which the compiler for some reason replaces by the macro.
93
+ //
94
+ #if defined (__digital__) && defined (__unix__)
95
+ # undef signal
96
+ #endif
97
+
98
+ //
99
+ // CtrlCHandler callbacks.
100
+ //
101
+
102
+ static void
103
+ holdInterruptCallback(int signal)
104
+ {
105
+ CtrlCHandlerCallback callback = 0;
106
+ {
107
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
108
+ while(!_released)
109
+ {
110
+ IceInternal::Application::_condVar->wait(lock);
111
+ }
112
+
113
+ if(IceInternal::Application::_destroyed)
114
+ {
115
+ //
116
+ // Being destroyed by main thread
117
+ //
118
+ return;
119
+ }
120
+ assert(_ctrlCHandler != 0);
121
+ callback = _ctrlCHandler->getCallback();
122
+ }
123
+
124
+ if(callback != 0)
125
+ {
126
+ callback(signal);
127
+ }
128
+ }
129
+
130
+ static void
131
+ destroyOnInterruptCallback(int signal)
132
+ {
133
+ {
134
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
135
+ if(IceInternal::Application::_destroyed)
136
+ {
137
+ //
138
+ // Being destroyed by main thread
139
+ //
140
+ return;
141
+ }
142
+ if(_nohup && signal == static_cast<int>(SIGHUP))
143
+ {
144
+ return;
145
+ }
146
+
147
+ assert(!IceInternal::Application::_callbackInProgress);
148
+ IceInternal::Application::_callbackInProgress = true;
149
+ IceInternal::Application::_interrupted = true;
150
+ IceInternal::Application::_destroyed = true;
151
+ }
152
+
153
+ try
154
+ {
155
+ assert(IceInternal::Application::_communicator != 0);
156
+ IceInternal::Application::_communicator->destroy();
157
+ }
158
+ catch(const std::exception& ex)
159
+ {
160
+ Error out(getProcessLogger());
161
+ out << "(while destroying in response to signal " << signal << "): " << ex;
162
+ }
163
+ catch(const std::string& msg)
164
+ {
165
+ Error out(getProcessLogger());
166
+ out << "(while destroying in response to signal " << signal << "): " << msg;
167
+ }
168
+ catch(const char* msg)
169
+ {
170
+ Error out(getProcessLogger());
171
+ out << "(while destroying in response to signal " << signal << "): " << msg;
172
+ }
173
+ catch(...)
174
+ {
175
+ Error out(getProcessLogger());
176
+ out << "(while destroying in response to signal " << signal << "): unknown exception";
177
+ }
178
+
179
+ {
180
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
181
+ IceInternal::Application::_callbackInProgress = false;
182
+ }
183
+ IceInternal::Application::_condVar->signal();
184
+ }
185
+
186
+ static void
187
+ shutdownOnInterruptCallback(int signal)
188
+ {
189
+ {
190
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
191
+ if(IceInternal::Application::_destroyed)
192
+ {
193
+ //
194
+ // Being destroyed by main thread
195
+ //
196
+ return;
197
+ }
198
+ if(_nohup && signal == static_cast<int>(SIGHUP))
199
+ {
200
+ return;
201
+ }
202
+
203
+ assert(!IceInternal::Application::_callbackInProgress);
204
+ IceInternal::Application::_callbackInProgress = true;
205
+ IceInternal::Application::_interrupted = true;
206
+ }
207
+
208
+ try
209
+ {
210
+ assert(IceInternal::Application::_communicator != 0);
211
+ IceInternal::Application::_communicator->shutdown();
212
+ }
213
+ catch(const std::exception& ex)
214
+ {
215
+ Error out(getProcessLogger());
216
+ out << "(while shutting down in response to signal " << signal << "): std::exception: " << ex;
217
+ }
218
+ catch(const std::string& msg)
219
+ {
220
+ Error out(getProcessLogger());
221
+ out << "(while shutting down in response to signal " << signal << "): " << msg;
222
+ }
223
+ catch(const char* msg)
224
+ {
225
+ Error out(getProcessLogger());
226
+ out << "(while shutting down in response to signal " << signal << "): " << msg;
227
+ }
228
+ catch(...)
229
+ {
230
+ Error out(getProcessLogger());
231
+ out << "(while shutting down in response to signal " << signal << "): unknown exception";
232
+ }
233
+
234
+ {
235
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
236
+ IceInternal::Application::_callbackInProgress = false;
237
+ }
238
+ IceInternal::Application::_condVar->signal();
239
+ }
240
+
241
+ static void
242
+ callbackOnInterruptCallback(int signal)
243
+ {
244
+ {
245
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
246
+ if(IceInternal::Application::_destroyed)
247
+ {
248
+ //
249
+ // Being destroyed by main thread
250
+ //
251
+ return;
252
+ }
253
+ // For SIGHUP the user callback is always called. It can
254
+ // decide what to do.
255
+ assert(!IceInternal::Application::_callbackInProgress);
256
+ IceInternal::Application::_callbackInProgress = true;
257
+ IceInternal::Application::_interrupted = true;
258
+ }
259
+
260
+ try
261
+ {
262
+ assert(IceInternal::Application::_application != 0);
263
+ IceInternal::Application::_application->interruptCallback(signal);
264
+ }
265
+ catch(const std::exception& ex)
266
+ {
267
+ Error out(getProcessLogger());
268
+ out << "(while interrupting in response to signal " << signal << "): std::exception: " << ex;
269
+ }
270
+ catch(const std::string& msg)
271
+ {
272
+ Error out(getProcessLogger());
273
+ out << "(while interrupting in response to signal " << signal << "): " << msg;
274
+ }
275
+ catch(const char* msg)
276
+ {
277
+ Error out(getProcessLogger());
278
+ out << "(while interrupting in response to signal " << signal << "): " << msg;
279
+ }
280
+ catch(...)
281
+ {
282
+ Error out(getProcessLogger());
283
+ out << "(while interrupting in response to signal " << signal << "): unknown exception";
284
+ }
285
+
286
+ {
287
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
288
+ IceInternal::Application::_callbackInProgress = false;
289
+ }
290
+ IceInternal::Application::_condVar->signal();
291
+ }
292
+
293
+ Ice::Application::Application(SignalPolicy signalPolicy)
294
+ {
295
+ IceInternal::Application::_signalPolicy = signalPolicy;
296
+ }
297
+
298
+ Ice::Application::~Application()
299
+ {
300
+ }
301
+
302
+ int
303
+ Ice::Application::main(int argc, char* argv[], const char* configFile)
304
+ {
305
+ //
306
+ // We don't call the main below to avoid a deprecated warning
307
+ //
308
+
309
+ IceInternal::Application::_appName = "";
310
+ if(argc > 0)
311
+ {
312
+ IceInternal::Application::_appName = argv[0];
313
+ }
314
+
315
+ if(argc > 0 && argv[0] && LoggerIPtr::dynamicCast(getProcessLogger()))
316
+ {
317
+ setProcessLogger(new LoggerI(argv[0], "", true, IceUtil::getProcessStringConverter()));
318
+ }
319
+
320
+ InitializationData initData;
321
+ if(configFile)
322
+ {
323
+ try
324
+ {
325
+ initData.properties = createProperties();
326
+ initData.properties->load(configFile);
327
+ }
328
+ catch(const std::exception& ex)
329
+ {
330
+ Error out(getProcessLogger());
331
+ out << ex;
332
+ return EXIT_FAILURE;
333
+ }
334
+ catch(...)
335
+ {
336
+ Error out(getProcessLogger());
337
+ out << "unknown exception";
338
+ return EXIT_FAILURE;
339
+ }
340
+ }
341
+ return main(argc, argv, initData);
342
+ }
343
+
344
+ #ifdef _WIN32
345
+
346
+ int
347
+ Ice::Application::main(int argc, wchar_t* argv[], const char* config)
348
+ {
349
+ return main(argsToStringSeq(argc, argv), config);
350
+ }
351
+
352
+ int
353
+ Ice::Application::main(int argc, wchar_t* argv[], const Ice::InitializationData& initData)
354
+ {
355
+ //
356
+ // On Windows the given wchar_t* strings are UTF16 and therefore
357
+ // needs to be converted to native narow string encoding.
358
+ //
359
+ return main(argsToStringSeq(argc, argv), initData);
360
+ }
361
+
362
+ #endif
363
+
364
+ int
365
+ Ice::Application::main(int argc, char* argv[], const InitializationData& initializationData)
366
+ {
367
+ if(argc > 0 && argv[0] && LoggerIPtr::dynamicCast(getProcessLogger()))
368
+ {
369
+ const bool convert = initializationData.properties ?
370
+ initializationData.properties->getPropertyAsIntWithDefault("Ice.LogStdErr.Convert", 1) > 0 &&
371
+ initializationData.properties->getProperty("Ice.StdErr").empty() : true;
372
+ setProcessLogger(new LoggerI(argv[0], "", convert, IceUtil::getProcessStringConverter()));
373
+ }
374
+
375
+ if(IceInternal::Application::_communicator != 0)
376
+ {
377
+ Error out(getProcessLogger());
378
+ out << "only one instance of the Application class can be used";
379
+ return EXIT_FAILURE;
380
+ }
381
+ int status;
382
+
383
+ //
384
+ // We parse the properties here to extract Ice.ProgramName.
385
+ //
386
+ InitializationData initData = initializationData;
387
+ try
388
+ {
389
+ initData.properties = createProperties(argc, argv, initData.properties);
390
+ }
391
+ catch(const std::exception& ex)
392
+ {
393
+ Error out(getProcessLogger());
394
+ out << ex;
395
+ return EXIT_FAILURE;
396
+ }
397
+ catch(...)
398
+ {
399
+ Error out(getProcessLogger());
400
+ out << "unknown exception";
401
+ return EXIT_FAILURE;
402
+ }
403
+ IceInternal::Application::_appName = initData.properties->getPropertyWithDefault("Ice.ProgramName",
404
+ IceInternal::Application::_appName);
405
+
406
+ //
407
+ // Used by destroyOnInterruptCallback and shutdownOnInterruptCallback.
408
+ //
409
+ _nohup = initData.properties->getPropertyAsInt("Ice.Nohup") > 0;
410
+
411
+ IceInternal::Application::_application = this;
412
+
413
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
414
+ {
415
+ try
416
+ {
417
+ //
418
+ // The ctrlCHandler must be created before starting any thread, in particular
419
+ // before initializing the communicator.
420
+ //
421
+ CtrlCHandler ctrCHandler;
422
+ _ctrlCHandler = &ctrCHandler;
423
+
424
+ status = doMain(argc, argv, initData);
425
+
426
+ //
427
+ // Set _ctrlCHandler to 0 only once communicator->destroy() has completed.
428
+ //
429
+ _ctrlCHandler = 0;
430
+ }
431
+ catch(const CtrlCHandlerException&)
432
+ {
433
+ Error out(getProcessLogger());
434
+ out << "only one instance of the CtrlCHandler class can be used";
435
+ status = EXIT_FAILURE;
436
+ }
437
+ }
438
+ else
439
+ {
440
+ status = doMain(argc, argv, initData);
441
+ }
442
+
443
+ return status;
444
+ }
445
+
446
+ int
447
+ Ice::Application::main(int argc, char* const argv[], const char* configFile)
448
+ {
449
+ ArgVector av(argc, argv);
450
+ return main(av.argc, av.argv, configFile);
451
+ }
452
+
453
+ int
454
+ Ice::Application::main(int argc, char* const argv[], const Ice::InitializationData& initData)
455
+ {
456
+ ArgVector av(argc, argv);
457
+ return main(av.argc, av.argv, initData);
458
+ }
459
+
460
+ int
461
+ Ice::Application::main(const StringSeq& args, const char* configFile)
462
+ {
463
+ ArgVector av(args);
464
+ return main(av.argc, av.argv, configFile);
465
+ }
466
+
467
+ int
468
+ Ice::Application::main(const StringSeq& args, const InitializationData& initData)
469
+ {
470
+ ArgVector av(args);
471
+ return main(av.argc, av.argv, initData);
472
+ }
473
+
474
+ void
475
+ Ice::Application::interruptCallback(int)
476
+ {
477
+ }
478
+
479
+ const char*
480
+ Ice::Application::appName()
481
+ {
482
+ return IceInternal::Application::_appName.c_str();
483
+ }
484
+
485
+ CommunicatorPtr
486
+ Ice::Application::communicator()
487
+ {
488
+ return IceInternal::Application::_communicator;
489
+ }
490
+
491
+ void
492
+ Ice::Application::destroyOnInterrupt()
493
+ {
494
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
495
+ {
496
+ if(_ctrlCHandler != 0)
497
+ {
498
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
499
+ if(_ctrlCHandler->getCallback() == holdInterruptCallback)
500
+ {
501
+ _released = true;
502
+ IceInternal::Application::_condVar->signal();
503
+ }
504
+ _ctrlCHandler->setCallback(destroyOnInterruptCallback);
505
+ }
506
+ }
507
+ else
508
+ {
509
+ Warning out(getProcessLogger());
510
+ out << "interrupt method called on Application configured to not handle interrupts.";
511
+ }
512
+ }
513
+
514
+ void
515
+ Ice::Application::shutdownOnInterrupt()
516
+ {
517
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
518
+ {
519
+ if(_ctrlCHandler != 0)
520
+ {
521
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
522
+ if(_ctrlCHandler->getCallback() == holdInterruptCallback)
523
+ {
524
+ _released = true;
525
+ IceInternal::Application::_condVar->signal();
526
+ }
527
+ _ctrlCHandler->setCallback(shutdownOnInterruptCallback);
528
+ }
529
+ }
530
+ else
531
+ {
532
+ Warning out(getProcessLogger());
533
+ out << "interrupt method called on Application configured to not handle interrupts.";
534
+ }
535
+ }
536
+
537
+ void
538
+ Ice::Application::ignoreInterrupt()
539
+ {
540
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
541
+ {
542
+ if(_ctrlCHandler != 0)
543
+ {
544
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
545
+ if(_ctrlCHandler->getCallback() == holdInterruptCallback)
546
+ {
547
+ _released = true;
548
+ IceInternal::Application::_condVar->signal();
549
+ }
550
+ _ctrlCHandler->setCallback(0);
551
+ }
552
+ }
553
+ else
554
+ {
555
+ Warning out(getProcessLogger());
556
+ out << "interrupt method called on Application configured to not handle interrupts.";
557
+ }
558
+ }
559
+
560
+ void
561
+ Ice::Application::callbackOnInterrupt()
562
+ {
563
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
564
+ {
565
+ if(_ctrlCHandler != 0)
566
+ {
567
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
568
+ if(_ctrlCHandler->getCallback() == holdInterruptCallback)
569
+ {
570
+ _released = true;
571
+ IceInternal::Application::_condVar->signal();
572
+ }
573
+ _ctrlCHandler->setCallback(callbackOnInterruptCallback);
574
+ }
575
+ }
576
+ else
577
+ {
578
+ Warning out(getProcessLogger());
579
+ out << "interrupt method called on Application configured to not handle interrupts.";
580
+ }
581
+ }
582
+
583
+ void
584
+ Ice::Application::holdInterrupt()
585
+ {
586
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
587
+ {
588
+ if(_ctrlCHandler != 0)
589
+ {
590
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
591
+ if(_ctrlCHandler->getCallback() != holdInterruptCallback)
592
+ {
593
+ _previousCallback = _ctrlCHandler->getCallback();
594
+ _released = false;
595
+ _ctrlCHandler->setCallback(holdInterruptCallback);
596
+ }
597
+ // else, we were already holding signals
598
+ }
599
+ }
600
+ else
601
+ {
602
+ Warning out(getProcessLogger());
603
+ out << "interrupt method called on Application configured to not handle interrupts.";
604
+ }
605
+ }
606
+
607
+ void
608
+ Ice::Application::releaseInterrupt()
609
+ {
610
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
611
+ {
612
+ if(_ctrlCHandler != 0)
613
+ {
614
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
615
+ if(_ctrlCHandler->getCallback() == holdInterruptCallback)
616
+ {
617
+ //
618
+ // Note that it's very possible no signal is held;
619
+ // in this case the callback is just replaced and
620
+ // setting _released to true and signalling _condVar
621
+ // do no harm.
622
+ //
623
+
624
+ _released = true;
625
+ _ctrlCHandler->setCallback(_previousCallback);
626
+ IceInternal::Application::_condVar->signal();
627
+ }
628
+ // Else nothing to release.
629
+ }
630
+ }
631
+ else
632
+ {
633
+ Warning out(getProcessLogger());
634
+ out << "interrupt method called on Application configured to not handle interrupts.";
635
+ }
636
+ }
637
+
638
+ bool
639
+ Ice::Application::interrupted()
640
+ {
641
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
642
+ return IceInternal::Application::_interrupted;
643
+ }
644
+
645
+ int
646
+ Ice::Application::doMain(int argc, char* argv[], const InitializationData& initData)
647
+ {
648
+ int status;
649
+
650
+ try
651
+ {
652
+ IceInternal::Application::_interrupted = false;
653
+
654
+ //
655
+ // If the process logger is the default logger, we now replace it with a
656
+ // a logger which is using the program name for the prefix.
657
+ //
658
+ if(initData.properties->getProperty("Ice.ProgramName") != "" && LoggerIPtr::dynamicCast(getProcessLogger()))
659
+ {
660
+ const bool convert =
661
+ initData.properties->getPropertyAsIntWithDefault("Ice.LogStdErr.Convert", 1) > 0 &&
662
+ initData.properties->getProperty("Ice.StdErr").empty();
663
+
664
+ setProcessLogger(new LoggerI(initData.properties->getProperty("Ice.ProgramName"), "", convert,
665
+ IceUtil::getProcessStringConverter()));
666
+ }
667
+
668
+ IceInternal::Application::_communicator = initialize(argc, argv, initData);
669
+ IceInternal::Application::_destroyed = false;
670
+
671
+ //
672
+ // The default is to destroy when a signal is received.
673
+ //
674
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
675
+ {
676
+ destroyOnInterrupt();
677
+ }
678
+
679
+ status = run(argc, argv);
680
+ }
681
+ catch(const std::exception& ex)
682
+ {
683
+ Error out(getProcessLogger());
684
+ out << ex;
685
+ status = EXIT_FAILURE;
686
+ }
687
+ catch(const std::string& msg)
688
+ {
689
+ Error out(getProcessLogger());
690
+ out << msg;
691
+ status = EXIT_FAILURE;
692
+ }
693
+ catch(const char* msg)
694
+ {
695
+ Error out(getProcessLogger());
696
+ out << msg;
697
+ status = EXIT_FAILURE;
698
+ }
699
+ catch(...)
700
+ {
701
+ Error out(getProcessLogger());
702
+ out << "unknown exception";
703
+ status = EXIT_FAILURE;
704
+ }
705
+
706
+ //
707
+ // Don't want any new interrupt and at this point (post-run),
708
+ // it would not make sense to release a held signal to run
709
+ // shutdown or destroy.
710
+ //
711
+ if(IceInternal::Application::_signalPolicy == HandleSignals)
712
+ {
713
+ ignoreInterrupt();
714
+ }
715
+
716
+ {
717
+ IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
718
+ while(IceInternal::Application::_callbackInProgress)
719
+ {
720
+ IceInternal::Application::_condVar->wait(lock);
721
+ }
722
+ if(IceInternal::Application::_destroyed)
723
+ {
724
+ IceInternal::Application::_communicator = 0;
725
+ }
726
+ else
727
+ {
728
+ IceInternal::Application::_destroyed = true;
729
+ //
730
+ // And _communicator != 0, meaning will be destroyed
731
+ // next, _destroyed = true also ensures that any
732
+ // remaining callback won't do anything
733
+ //
734
+ }
735
+ IceInternal::Application::_application = 0;
736
+ }
737
+
738
+ if(IceInternal::Application::_communicator != 0)
739
+ {
740
+ try
741
+ {
742
+ IceInternal::Application::_communicator->destroy();
743
+ }
744
+ catch(const std::exception& ex)
745
+ {
746
+ Error out(getProcessLogger());
747
+ out << ex;
748
+ status = EXIT_FAILURE;
749
+ }
750
+ catch(...)
751
+ {
752
+ Error out(getProcessLogger());
753
+ out << "unknown exception";
754
+ status = EXIT_FAILURE;
755
+ }
756
+ IceInternal::Application::_communicator = 0;
757
+ }
758
+
759
+ return status;
760
+ }