zeroc-ice 3.7.10 → 3.8.0

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 (1216) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Communicator.cpp +575 -0
  3. data/dist/IceRuby/Communicator.h +19 -0
  4. data/dist/IceRuby/Config.h +77 -0
  5. data/dist/IceRuby/Connection.cpp +428 -0
  6. data/dist/IceRuby/Connection.h +20 -0
  7. data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
  8. data/dist/IceRuby/DefaultSliceLoader.h +25 -0
  9. data/dist/IceRuby/Endpoint.cpp +342 -0
  10. data/dist/IceRuby/Endpoint.h +18 -0
  11. data/dist/IceRuby/ImplicitContext.cpp +143 -0
  12. data/dist/IceRuby/ImplicitContext.h +16 -0
  13. data/dist/IceRuby/Init.cpp +36 -0
  14. data/dist/IceRuby/Logger.cpp +146 -0
  15. data/dist/IceRuby/Logger.h +19 -0
  16. data/dist/IceRuby/Operation.cpp +623 -0
  17. data/dist/IceRuby/Operation.h +28 -0
  18. data/dist/IceRuby/Properties.cpp +413 -0
  19. data/dist/IceRuby/Properties.h +16 -0
  20. data/dist/IceRuby/Proxy.cpp +926 -0
  21. data/dist/IceRuby/Proxy.h +21 -0
  22. data/dist/IceRuby/RubySliceLoader.cpp +39 -0
  23. data/dist/IceRuby/RubySliceLoader.h +27 -0
  24. data/dist/IceRuby/Slice.cpp +199 -0
  25. data/dist/IceRuby/Slice.h +13 -0
  26. data/dist/IceRuby/Types.cpp +3133 -0
  27. data/dist/IceRuby/Types.h +533 -0
  28. data/dist/IceRuby/Util.cpp +553 -0
  29. data/dist/IceRuby/Util.h +485 -0
  30. data/dist/ice/cpp/include/Ice/AsyncResponseHandler.h +85 -0
  31. data/dist/ice/cpp/include/Ice/BatchRequest.h +39 -0
  32. data/dist/ice/cpp/include/Ice/BatchRequestQueueF.h +14 -0
  33. data/dist/ice/cpp/include/Ice/Buffer.h +159 -0
  34. data/dist/ice/cpp/include/Ice/Communicator.h +411 -0
  35. data/dist/ice/cpp/include/Ice/CommunicatorF.h +16 -0
  36. data/dist/ice/cpp/include/Ice/Config.h +60 -0
  37. data/dist/ice/cpp/include/Ice/Connection.h +410 -0
  38. data/dist/ice/cpp/include/Ice/ConnectionF.h +36 -0
  39. data/dist/ice/cpp/include/Ice/ConnectionIF.h +16 -0
  40. data/dist/ice/cpp/include/Ice/CtrlCHandler.h +56 -0
  41. data/dist/ice/cpp/include/Ice/Current.h +60 -0
  42. data/dist/ice/cpp/include/Ice/DefaultSliceLoader.h +160 -0
  43. data/dist/ice/cpp/include/Ice/Demangle.h +17 -0
  44. data/dist/ice/cpp/include/Ice/Endpoint.h +298 -0
  45. data/dist/ice/cpp/include/Ice/EndpointF.h +44 -0
  46. data/dist/ice/cpp/include/Ice/EndpointSelectionType.h +21 -0
  47. data/dist/ice/cpp/include/Ice/Exception.h +56 -0
  48. data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
  49. data/dist/ice/cpp/include/Ice/Format.h +22 -0
  50. data/dist/ice/cpp/include/Ice/Ice.h +60 -0
  51. data/dist/ice/cpp/include/Ice/IconvStringConverter.h +216 -0
  52. data/dist/ice/cpp/include/Ice/ImplicitContext.h +76 -0
  53. data/dist/ice/cpp/include/Ice/IncomingRequest.h +75 -0
  54. data/dist/ice/cpp/include/Ice/Initialize.h +143 -0
  55. data/dist/ice/cpp/include/Ice/InputStream.h +942 -0
  56. data/dist/ice/cpp/include/Ice/InstanceF.h +14 -0
  57. data/dist/ice/cpp/include/Ice/Instrumentation.h +319 -0
  58. data/dist/ice/cpp/include/Ice/LocalException.h +58 -0
  59. data/dist/ice/cpp/include/Ice/LocalExceptions.h +870 -0
  60. data/dist/ice/cpp/include/Ice/Logger.h +62 -0
  61. data/dist/ice/cpp/include/Ice/LoggerUtil.h +162 -0
  62. data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
  63. data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +54 -0
  64. data/dist/ice/cpp/include/Ice/Object.h +168 -0
  65. data/dist/ice/cpp/include/Ice/ObjectAdapter.h +324 -0
  66. data/dist/ice/cpp/include/Ice/ObjectAdapterF.h +16 -0
  67. data/dist/ice/cpp/include/Ice/ObjectF.h +16 -0
  68. data/dist/ice/cpp/include/Ice/ObserverHelper.h +164 -0
  69. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +512 -0
  70. data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
  71. data/dist/ice/cpp/include/Ice/OutputStream.h +872 -0
  72. data/dist/ice/cpp/include/Ice/Plugin.h +73 -0
  73. data/dist/ice/cpp/include/Ice/PluginFactory.h +77 -0
  74. data/dist/ice/cpp/include/Ice/PopDisableWarnings.h +16 -0
  75. data/dist/ice/cpp/include/Ice/Properties.h +307 -0
  76. data/dist/ice/cpp/include/Ice/PropertiesF.h +19 -0
  77. data/dist/ice/cpp/include/Ice/Proxy.h +742 -0
  78. data/dist/ice/cpp/include/Ice/ProxyF.h +11 -0
  79. data/dist/ice/cpp/include/Ice/ProxyFunctions.h +209 -0
  80. data/dist/ice/cpp/include/Ice/PushDisableWarnings.h +29 -0
  81. data/dist/ice/cpp/include/Ice/ReferenceF.h +14 -0
  82. data/dist/ice/cpp/include/Ice/RequestHandlerF.h +20 -0
  83. data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +268 -0
  84. data/dist/ice/cpp/include/Ice/SSL/Config.h +54 -0
  85. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfo.h +107 -0
  86. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfoF.h +39 -0
  87. data/dist/ice/cpp/include/Ice/SSL/EndpointInfo.h +40 -0
  88. data/dist/ice/cpp/include/Ice/SSL/SSLException.h +32 -0
  89. data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +278 -0
  90. data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
  91. data/dist/ice/cpp/include/Ice/Service.h +219 -0
  92. data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
  93. data/dist/ice/cpp/include/Ice/SlicedData.h +125 -0
  94. data/dist/ice/cpp/include/Ice/SlicedDataF.h +30 -0
  95. data/dist/ice/cpp/include/Ice/StreamHelpers.h +652 -0
  96. data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
  97. data/dist/ice/cpp/include/Ice/StringConverter.h +167 -0
  98. data/dist/ice/cpp/include/Ice/StringUtil.h +114 -0
  99. data/dist/ice/cpp/include/Ice/TimerTask.h +24 -0
  100. data/dist/ice/cpp/include/Ice/TupleCompare.h +103 -0
  101. data/dist/ice/cpp/include/Ice/UUID.h +16 -0
  102. data/dist/ice/cpp/include/Ice/UserException.h +46 -0
  103. data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +15 -0
  104. data/dist/ice/cpp/include/Ice/Value.h +127 -0
  105. data/dist/ice/cpp/include/Ice/ValueF.h +16 -0
  106. data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +28 -0
  107. data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +28 -0
  108. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +70 -0
  109. data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
  110. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +74 -0
  111. data/dist/ice/cpp/include/generated/Ice/Identity.h +108 -0
  112. data/dist/ice/cpp/include/generated/Ice/Locator.h +542 -0
  113. data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
  114. data/dist/ice/cpp/include/generated/Ice/Metrics.h +1103 -0
  115. data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
  116. data/dist/ice/cpp/include/generated/Ice/Process.h +245 -0
  117. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +314 -0
  118. data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
  119. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +724 -0
  120. data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
  121. data/dist/ice/cpp/include/generated/Ice/Router.h +496 -0
  122. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +37 -0
  123. data/dist/ice/cpp/include/generated/Ice/Version.h +112 -0
  124. data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +498 -0
  125. data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +387 -0
  126. data/dist/ice/cpp/src/Ice/Acceptor.h +41 -0
  127. data/dist/ice/cpp/src/Ice/AcceptorF.h +17 -0
  128. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories.h +16 -0
  129. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_all.cpp +43 -0
  130. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_min.cpp +17 -0
  131. data/dist/ice/cpp/src/Ice/ArgVector.cpp +58 -0
  132. data/dist/ice/cpp/src/Ice/ArgVector.h +30 -0
  133. data/dist/ice/cpp/src/Ice/Base64.cpp +263 -0
  134. data/dist/ice/cpp/src/Ice/Base64.h +26 -0
  135. data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +199 -0
  136. data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +49 -0
  137. data/dist/ice/cpp/src/Ice/Buffer.cpp +187 -0
  138. data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
  139. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +373 -0
  140. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +65 -0
  141. data/dist/ice/cpp/src/Ice/Communicator.cpp +399 -0
  142. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.cpp +140 -0
  143. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.h +39 -0
  144. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.cpp +227 -0
  145. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +51 -0
  146. data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +14 -0
  147. data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
  148. data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +1758 -0
  149. data/dist/ice/cpp/src/Ice/ConnectionFactory.h +264 -0
  150. data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +17 -0
  151. data/dist/ice/cpp/src/Ice/ConnectionI.cpp +3563 -0
  152. data/dist/ice/cpp/src/Ice/ConnectionI.h +429 -0
  153. data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
  154. data/dist/ice/cpp/src/Ice/Connector.h +38 -0
  155. data/dist/ice/cpp/src/Ice/ConnectorF.h +14 -0
  156. data/dist/ice/cpp/src/Ice/ConsoleUtil.cpp +136 -0
  157. data/dist/ice/cpp/src/Ice/ConsoleUtil.h +79 -0
  158. data/dist/ice/cpp/src/Ice/CtrlCHandler.cpp +189 -0
  159. data/dist/ice/cpp/src/Ice/Current.cpp +29 -0
  160. data/dist/ice/cpp/src/Ice/DLLMain.cpp +40 -0
  161. data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
  162. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +81 -0
  163. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +38 -0
  164. data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +14 -0
  165. data/dist/ice/cpp/src/Ice/Demangle.cpp +25 -0
  166. data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
  167. data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +216 -0
  168. data/dist/ice/cpp/src/Ice/DynamicLibrary.h +91 -0
  169. data/dist/ice/cpp/src/Ice/Endian.h +40 -0
  170. data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +165 -0
  171. data/dist/ice/cpp/src/Ice/EndpointFactory.h +96 -0
  172. data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +14 -0
  173. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +180 -0
  174. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +42 -0
  175. data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +14 -0
  176. data/dist/ice/cpp/src/Ice/EndpointI.cpp +128 -0
  177. data/dist/ice/cpp/src/Ice/EndpointI.h +150 -0
  178. data/dist/ice/cpp/src/Ice/EndpointIF.h +21 -0
  179. data/dist/ice/cpp/src/Ice/EventHandler.cpp +9 -0
  180. data/dist/ice/cpp/src/Ice/EventHandler.h +71 -0
  181. data/dist/ice/cpp/src/Ice/EventHandlerF.h +14 -0
  182. data/dist/ice/cpp/src/Ice/Exception.cpp +5 -0
  183. data/dist/ice/cpp/src/Ice/FileUtil.cpp +476 -0
  184. data/dist/ice/cpp/src/Ice/FileUtil.h +152 -0
  185. data/dist/ice/cpp/src/Ice/FixedRequestHandler.cpp +34 -0
  186. data/dist/ice/cpp/src/Ice/FixedRequestHandler.h +29 -0
  187. data/dist/ice/cpp/src/Ice/HashUtil.h +67 -0
  188. data/dist/ice/cpp/src/Ice/HttpParser.cpp +684 -0
  189. data/dist/ice/cpp/src/Ice/HttpParser.h +112 -0
  190. data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +593 -0
  191. data/dist/ice/cpp/src/Ice/IPEndpointI.h +106 -0
  192. data/dist/ice/cpp/src/Ice/IPEndpointIF.h +17 -0
  193. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.cpp +172 -0
  194. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.h +89 -0
  195. data/dist/ice/cpp/src/Ice/ImplicitContext.cpp +109 -0
  196. data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +66 -0
  197. data/dist/ice/cpp/src/Ice/Initialize.cpp +160 -0
  198. data/dist/ice/cpp/src/Ice/InputStream.cpp +2206 -0
  199. data/dist/ice/cpp/src/Ice/Instance.cpp +1956 -0
  200. data/dist/ice/cpp/src/Ice/Instance.h +225 -0
  201. data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +959 -0
  202. data/dist/ice/cpp/src/Ice/InstrumentationI.h +235 -0
  203. data/dist/ice/cpp/src/Ice/LocalException.cpp +518 -0
  204. data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +577 -0
  205. data/dist/ice/cpp/src/Ice/LocatorInfo.cpp +851 -0
  206. data/dist/ice/cpp/src/Ice/LocatorInfo.h +176 -0
  207. data/dist/ice/cpp/src/Ice/LocatorInfoF.h +20 -0
  208. data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +774 -0
  209. data/dist/ice/cpp/src/Ice/LoggerAdminI.h +31 -0
  210. data/dist/ice/cpp/src/Ice/LoggerI.cpp +234 -0
  211. data/dist/ice/cpp/src/Ice/LoggerI.h +47 -0
  212. data/dist/ice/cpp/src/Ice/LoggerMiddleware.cpp +176 -0
  213. data/dist/ice/cpp/src/Ice/LoggerMiddleware.h +42 -0
  214. data/dist/ice/cpp/src/Ice/LoggerUtil.cpp +76 -0
  215. data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
  216. data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +608 -0
  217. data/dist/ice/cpp/src/Ice/MetricsAdminI.h +600 -0
  218. data/dist/ice/cpp/src/Ice/MetricsFunctional.h +92 -0
  219. data/dist/ice/cpp/src/Ice/MetricsObserverI.h +587 -0
  220. data/dist/ice/cpp/src/Ice/NativePropertiesAdmin.cpp +185 -0
  221. data/dist/ice/cpp/src/Ice/Network.cpp +1927 -0
  222. data/dist/ice/cpp/src/Ice/Network.h +265 -0
  223. data/dist/ice/cpp/src/Ice/NetworkF.h +11 -0
  224. data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +306 -0
  225. data/dist/ice/cpp/src/Ice/NetworkProxy.h +67 -0
  226. data/dist/ice/cpp/src/Ice/NetworkProxyF.h +14 -0
  227. data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +55 -0
  228. data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +35 -0
  229. data/dist/ice/cpp/src/Ice/Object.cpp +249 -0
  230. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +348 -0
  231. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +53 -0
  232. data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +14 -0
  233. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +1383 -0
  234. data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +163 -0
  235. data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +75 -0
  236. data/dist/ice/cpp/src/Ice/ObserverMiddleware.cpp +96 -0
  237. data/dist/ice/cpp/src/Ice/ObserverMiddleware.h +25 -0
  238. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.cpp +368 -0
  239. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +66 -0
  240. data/dist/ice/cpp/src/Ice/Options.cpp +980 -0
  241. data/dist/ice/cpp/src/Ice/Options.h +119 -0
  242. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +1106 -0
  243. data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
  244. data/dist/ice/cpp/src/Ice/OutputStream.cpp +1454 -0
  245. data/dist/ice/cpp/src/Ice/OutputUtil.cpp +344 -0
  246. data/dist/ice/cpp/src/Ice/OutputUtil.h +173 -0
  247. data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +344 -0
  248. data/dist/ice/cpp/src/Ice/PluginManagerI.h +54 -0
  249. data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
  250. data/dist/ice/cpp/src/Ice/PropertyNames.cpp +606 -0
  251. data/dist/ice/cpp/src/Ice/PropertyNames.h +63 -0
  252. data/dist/ice/cpp/src/Ice/PropertyUtil.cpp +103 -0
  253. data/dist/ice/cpp/src/Ice/PropertyUtil.h +31 -0
  254. data/dist/ice/cpp/src/Ice/Protocol.cpp +159 -0
  255. data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
  256. data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +186 -0
  257. data/dist/ice/cpp/src/Ice/ProtocolInstance.h +74 -0
  258. data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +14 -0
  259. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +29 -0
  260. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +35 -0
  261. data/dist/ice/cpp/src/Ice/Proxy.cpp +541 -0
  262. data/dist/ice/cpp/src/Ice/ProxyAsync.cpp +684 -0
  263. data/dist/ice/cpp/src/Ice/ProxyFunctions.cpp +90 -0
  264. data/dist/ice/cpp/src/Ice/PushDisableDeprecatedWarnings.h +15 -0
  265. data/dist/ice/cpp/src/Ice/Random.cpp +29 -0
  266. data/dist/ice/cpp/src/Ice/Random.h +23 -0
  267. data/dist/ice/cpp/src/Ice/Reference.cpp +1584 -0
  268. data/dist/ice/cpp/src/Ice/Reference.h +339 -0
  269. data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +830 -0
  270. data/dist/ice/cpp/src/Ice/ReferenceFactory.h +58 -0
  271. data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +14 -0
  272. data/dist/ice/cpp/src/Ice/RequestHandler.cpp +28 -0
  273. data/dist/ice/cpp/src/Ice/RequestHandler.h +53 -0
  274. data/dist/ice/cpp/src/Ice/RequestHandlerCache.cpp +76 -0
  275. data/dist/ice/cpp/src/Ice/RequestHandlerCache.h +33 -0
  276. data/dist/ice/cpp/src/Ice/ResourceConfig.h +27 -0
  277. data/dist/ice/cpp/src/Ice/RetryQueue.cpp +151 -0
  278. data/dist/ice/cpp/src/Ice/RetryQueue.h +59 -0
  279. data/dist/ice/cpp/src/Ice/RetryQueueF.h +14 -0
  280. data/dist/ice/cpp/src/Ice/RouterInfo.cpp +275 -0
  281. data/dist/ice/cpp/src/Ice/RouterInfo.h +95 -0
  282. data/dist/ice/cpp/src/Ice/RouterInfoF.h +17 -0
  283. data/dist/ice/cpp/src/Ice/SHA1.cpp +195 -0
  284. data/dist/ice/cpp/src/Ice/SHA1.h +35 -0
  285. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.cpp +89 -0
  286. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.h +87 -0
  287. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +513 -0
  288. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.h +40 -0
  289. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngineF.h +13 -0
  290. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +635 -0
  291. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
  292. data/dist/ice/cpp/src/Ice/SSL/RFC2253.cpp +487 -0
  293. data/dist/ice/cpp/src/Ice/SSL/RFC2253.h +58 -0
  294. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.cpp +124 -0
  295. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.h +52 -0
  296. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.cpp +92 -0
  297. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.h +38 -0
  298. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.cpp +377 -0
  299. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.h +84 -0
  300. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.cpp +115 -0
  301. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.h +72 -0
  302. data/dist/ice/cpp/src/Ice/SSL/SSLEngineF.h +14 -0
  303. data/dist/ice/cpp/src/Ice/SSL/SSLException.cpp +18 -0
  304. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.cpp +27 -0
  305. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.h +26 -0
  306. data/dist/ice/cpp/src/Ice/SSL/SSLInstanceF.h +19 -0
  307. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +654 -0
  308. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +104 -0
  309. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1437 -0
  310. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.h +58 -0
  311. data/dist/ice/cpp/src/Ice/SSL/SchannelEngineF.h +18 -0
  312. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +1085 -0
  313. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
  314. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +822 -0
  315. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.h +44 -0
  316. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngineF.h +18 -0
  317. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.cpp +621 -0
  318. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.h +91 -0
  319. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +1061 -0
  320. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
  321. data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +222 -0
  322. data/dist/ice/cpp/src/Ice/SSL/TrustManager.h +42 -0
  323. data/dist/ice/cpp/src/Ice/SSL/TrustManagerF.h +14 -0
  324. data/dist/ice/cpp/src/Ice/ScannerConfig.h +35 -0
  325. data/dist/ice/cpp/src/Ice/Selector.cpp +1270 -0
  326. data/dist/ice/cpp/src/Ice/Selector.h +235 -0
  327. data/dist/ice/cpp/src/Ice/ServantManager.cpp +547 -0
  328. data/dist/ice/cpp/src/Ice/ServantManager.h +66 -0
  329. data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
  330. data/dist/ice/cpp/src/Ice/Service.cpp +1790 -0
  331. data/dist/ice/cpp/src/Ice/SharedContext.h +33 -0
  332. data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
  333. data/dist/ice/cpp/src/Ice/SlicedData.cpp +48 -0
  334. data/dist/ice/cpp/src/Ice/StreamSocket.cpp +472 -0
  335. data/dist/ice/cpp/src/Ice/StreamSocket.h +73 -0
  336. data/dist/ice/cpp/src/Ice/StringConverter.cpp +582 -0
  337. data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
  338. data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +160 -0
  339. data/dist/ice/cpp/src/Ice/SysLoggerI.h +34 -0
  340. data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +65 -0
  341. data/dist/ice/cpp/src/Ice/SystemdJournalI.h +33 -0
  342. data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
  343. data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +213 -0
  344. data/dist/ice/cpp/src/Ice/TcpAcceptor.h +55 -0
  345. data/dist/ice/cpp/src/Ice/TcpConnector.cpp +128 -0
  346. data/dist/ice/cpp/src/Ice/TcpConnector.h +36 -0
  347. data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +411 -0
  348. data/dist/ice/cpp/src/Ice/TcpEndpointI.h +86 -0
  349. data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +147 -0
  350. data/dist/ice/cpp/src/Ice/TcpTransceiver.h +53 -0
  351. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +1110 -0
  352. data/dist/ice/cpp/src/Ice/ThreadPool.h +305 -0
  353. data/dist/ice/cpp/src/Ice/ThreadPoolF.h +14 -0
  354. data/dist/ice/cpp/src/Ice/TimeUtil.cpp +47 -0
  355. data/dist/ice/cpp/src/Ice/TimeUtil.h +21 -0
  356. data/dist/ice/cpp/src/Ice/Timer.cpp +169 -0
  357. data/dist/ice/cpp/src/Ice/Timer.h +212 -0
  358. data/dist/ice/cpp/src/Ice/TraceLevels.cpp +20 -0
  359. data/dist/ice/cpp/src/Ice/TraceLevels.h +39 -0
  360. data/dist/ice/cpp/src/Ice/TraceLevelsF.h +14 -0
  361. data/dist/ice/cpp/src/Ice/TraceUtil.cpp +399 -0
  362. data/dist/ice/cpp/src/Ice/TraceUtil.h +41 -0
  363. data/dist/ice/cpp/src/Ice/Transceiver.cpp +14 -0
  364. data/dist/ice/cpp/src/Ice/Transceiver.h +52 -0
  365. data/dist/ice/cpp/src/Ice/TransceiverF.h +23 -0
  366. data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
  367. data/dist/ice/cpp/src/Ice/UdpConnector.cpp +131 -0
  368. data/dist/ice/cpp/src/Ice/UdpConnector.h +36 -0
  369. data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +480 -0
  370. data/dist/ice/cpp/src/Ice/UdpEndpointI.h +92 -0
  371. data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +786 -0
  372. data/dist/ice/cpp/src/Ice/UdpTransceiver.h +90 -0
  373. data/dist/ice/cpp/src/Ice/UndefSysMacros.h +37 -0
  374. data/dist/ice/cpp/src/Ice/UniqueRef.h +77 -0
  375. data/dist/ice/cpp/src/Ice/UserException.cpp +58 -0
  376. data/dist/ice/cpp/src/Ice/Value.cpp +145 -0
  377. data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +87 -0
  378. data/dist/ice/cpp/src/Ice/WSAcceptor.h +46 -0
  379. data/dist/ice/cpp/src/Ice/WSConnector.cpp +87 -0
  380. data/dist/ice/cpp/src/Ice/WSConnector.h +36 -0
  381. data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +455 -0
  382. data/dist/ice/cpp/src/Ice/WSEndpoint.h +82 -0
  383. data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +1715 -0
  384. data/dist/ice/cpp/src/Ice/WSTransceiver.h +135 -0
  385. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +40 -0
  386. data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
  387. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +40 -0
  388. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +47 -0
  389. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +752 -0
  390. data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
  391. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +1205 -0
  392. data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
  393. data/dist/ice/cpp/src/Ice/generated/Process.cpp +330 -0
  394. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +443 -0
  395. data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
  396. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +851 -0
  397. data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
  398. data/dist/ice/cpp/src/Ice/generated/Router.cpp +660 -0
  399. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +39 -0
  400. data/dist/ice/cpp/src/Ice/generated/Version.cpp +54 -0
  401. data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +202 -0
  402. data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +68 -0
  403. data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +494 -0
  404. data/dist/ice/cpp/src/IceDiscovery/LookupI.h +168 -0
  405. data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +155 -0
  406. data/dist/ice/cpp/src/IceDiscovery/PluginI.h +31 -0
  407. data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
  408. data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +24 -0
  409. data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +822 -0
  410. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +468 -0
  411. data/dist/ice/cpp/src/Slice/DeprecationReporter.cpp +172 -0
  412. data/dist/ice/cpp/src/Slice/DeprecationReporter.h +14 -0
  413. data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +736 -0
  414. data/dist/ice/cpp/src/Slice/DocCommentParser.h +61 -0
  415. data/dist/ice/cpp/src/Slice/FileTracker.cpp +96 -0
  416. data/dist/ice/cpp/src/Slice/FileTracker.h +44 -0
  417. data/dist/ice/cpp/src/Slice/Grammar.cpp +4125 -0
  418. data/dist/ice/cpp/src/Slice/Grammar.h +138 -0
  419. data/dist/ice/cpp/src/Slice/GrammarUtil.h +128 -0
  420. data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +473 -0
  421. data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
  422. data/dist/ice/cpp/src/Slice/Parser.cpp +4906 -0
  423. data/dist/ice/cpp/src/Slice/Parser.h +1175 -0
  424. data/dist/ice/cpp/src/Slice/Preprocessor.cpp +295 -0
  425. data/dist/ice/cpp/src/Slice/Preprocessor.h +44 -0
  426. data/dist/ice/cpp/src/Slice/Scanner.cpp +3445 -0
  427. data/dist/ice/cpp/src/Slice/SliceUtil.cpp +790 -0
  428. data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +448 -0
  429. data/dist/ice/cpp/src/Slice/Util.h +134 -0
  430. data/dist/ice/cpp/src/slice2rb/Main.cpp +33 -0
  431. data/dist/ice/cpp/src/slice2rb/Ruby.cpp +250 -0
  432. data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +1197 -0
  433. data/dist/ice/cpp/src/slice2rb/RubyUtil.h +56 -0
  434. data/dist/ice/mcpp/internal.H +530 -0
  435. data/dist/ice/mcpp/system.c +2741 -0
  436. data/dist/ice/slice/Glacier2/Metrics.ice +47 -0
  437. data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +55 -0
  438. data/dist/ice/slice/Glacier2/Router.ice +93 -0
  439. data/dist/ice/slice/Glacier2/SSLInfo.ice +42 -0
  440. data/dist/ice/slice/Glacier2/Session.ice +133 -0
  441. data/dist/ice/slice/Ice/BuiltinSequences.ice +54 -0
  442. data/dist/ice/slice/Ice/Context.ice +24 -0
  443. data/dist/ice/slice/Ice/EndpointTypes.ice +50 -0
  444. data/dist/ice/slice/Ice/Identity.ice +36 -0
  445. data/dist/ice/slice/Ice/Locator.ice +74 -0
  446. data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
  447. data/dist/ice/slice/Ice/Metrics.ice +201 -0
  448. data/dist/ice/slice/Ice/OperationMode.ice +38 -0
  449. data/dist/ice/slice/Ice/Process.ice +28 -0
  450. data/dist/ice/slice/Ice/PropertiesAdmin.ice +37 -0
  451. data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
  452. data/dist/ice/slice/Ice/RemoteLogger.ice +126 -0
  453. data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
  454. data/dist/ice/slice/Ice/Router.ice +54 -0
  455. data/dist/ice/slice/Ice/SliceChecksumDict.ice +18 -0
  456. data/dist/ice/slice/Ice/Version.ice +43 -0
  457. data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
  458. data/dist/ice/slice/IceGrid/Admin.ice +981 -0
  459. data/dist/ice/slice/IceGrid/Descriptor.ice +519 -0
  460. data/dist/ice/slice/IceGrid/Exception.ice +98 -0
  461. data/dist/ice/slice/IceGrid/FileParser.ice +36 -0
  462. data/dist/ice/slice/IceGrid/Registry.ice +130 -0
  463. data/dist/ice/slice/IceGrid/Session.ice +64 -0
  464. data/dist/ice/slice/IceGrid/UserAccountMapper.ice +34 -0
  465. data/dist/ice/slice/IceStorm/IceStorm.ice +186 -0
  466. data/dist/ice/slice/IceStorm/Metrics.ice +41 -0
  467. data/dist/lib/Glacier2/Metrics.rb +41 -0
  468. data/dist/lib/Glacier2/PermissionsVerifier.rb +61 -0
  469. data/dist/lib/Glacier2/Router.rb +73 -0
  470. data/dist/lib/Glacier2/SSLInfo.rb +64 -0
  471. data/dist/lib/Glacier2/Session.rb +187 -0
  472. data/dist/lib/Glacier2.rb +7 -0
  473. data/dist/lib/Ice/BuiltinSequences.rb +48 -0
  474. data/dist/lib/Ice/CompressBatch.rb +50 -0
  475. data/dist/lib/Ice/Context.rb +12 -0
  476. data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
  477. data/dist/lib/Ice/EndpointTypes.rb +28 -0
  478. data/dist/lib/Ice/Exception.rb +20 -0
  479. data/dist/lib/Ice/Identity.rb +47 -0
  480. data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
  481. data/dist/lib/Ice/InitializationData.rb +12 -0
  482. data/dist/lib/Ice/LocalExceptions.rb +168 -0
  483. data/dist/lib/Ice/Locator.rb +83 -0
  484. data/dist/lib/Ice/LocatorRegistry.rb +73 -0
  485. data/dist/lib/Ice/Metrics.rb +290 -0
  486. data/dist/lib/Ice/OperationMode.rb +58 -0
  487. data/dist/lib/Ice/Process.rb +34 -0
  488. data/dist/lib/Ice/PropertiesAdmin.rb +39 -0
  489. data/dist/lib/Ice/PropertyDict.rb +12 -0
  490. data/dist/lib/Ice/Proxy.rb +85 -0
  491. data/dist/lib/Ice/ProxyFunctions.rb +69 -0
  492. data/dist/lib/Ice/RemoteLogger.rb +176 -0
  493. data/dist/lib/Ice/ReplyStatus.rb +65 -0
  494. data/dist/lib/Ice/Router.rb +59 -0
  495. data/dist/lib/Ice/SliceChecksumDict.rb +12 -0
  496. data/dist/lib/Ice/SliceUtil.rb +41 -0
  497. data/dist/lib/Ice/Struct.rb +11 -0
  498. data/dist/lib/Ice/ToStringMode.rb +50 -0
  499. data/dist/lib/Ice/Value.rb +93 -0
  500. data/dist/lib/Ice/Version.rb +78 -0
  501. data/dist/lib/Ice.rb +37 -0
  502. data/dist/lib/IceBox/ServiceManager.rb +104 -0
  503. data/dist/lib/IceBox.rb +3 -0
  504. data/dist/lib/IceGrid/Admin.rb +1208 -0
  505. data/dist/lib/IceGrid/Descriptor.rb +989 -0
  506. data/dist/lib/IceGrid/Exception.rb +145 -0
  507. data/dist/lib/IceGrid/FileParser.rb +41 -0
  508. data/dist/lib/IceGrid/Registry.rb +168 -0
  509. data/dist/lib/IceGrid/Session.rb +56 -0
  510. data/dist/lib/IceGrid/UserAccountMapper.rb +38 -0
  511. data/dist/lib/IceGrid.rb +9 -0
  512. data/dist/lib/IceStorm/IceStorm.rb +251 -0
  513. data/dist/lib/IceStorm/Metrics.rb +55 -0
  514. data/dist/lib/IceStorm.rb +4 -0
  515. data/extconf.rb +89 -0
  516. data/ice.gemspec +22 -17
  517. data/scripts/slice2rb +10 -0
  518. metadata +536 -712
  519. data/ICE_LICENSE +0 -48
  520. data/LICENSE +0 -340
  521. data/MCPP_LICENSE +0 -29
  522. data/bin/slice2rb +0 -12
  523. data/ext/Communicator.cpp +0 -792
  524. data/ext/Communicator.h +0 -20
  525. data/ext/Config.h +0 -143
  526. data/ext/Connection.cpp +0 -532
  527. data/ext/Connection.h +0 -24
  528. data/ext/Endpoint.cpp +0 -340
  529. data/ext/Endpoint.h +0 -22
  530. data/ext/ImplicitContext.cpp +0 -144
  531. data/ext/ImplicitContext.h +0 -20
  532. data/ext/Init.cpp +0 -49
  533. data/ext/Logger.cpp +0 -147
  534. data/ext/Logger.h +0 -23
  535. data/ext/Operation.cpp +0 -661
  536. data/ext/Operation.h +0 -31
  537. data/ext/Properties.cpp +0 -365
  538. data/ext/Properties.h +0 -20
  539. data/ext/Proxy.cpp +0 -1396
  540. data/ext/Proxy.h +0 -22
  541. data/ext/Slice.cpp +0 -205
  542. data/ext/Slice.h +0 -17
  543. data/ext/Types.cpp +0 -3325
  544. data/ext/Types.h +0 -595
  545. data/ext/Util.cpp +0 -812
  546. data/ext/Util.h +0 -586
  547. data/ext/ValueFactoryManager.cpp +0 -441
  548. data/ext/ValueFactoryManager.h +0 -95
  549. data/ext/extconf.rb +0 -97
  550. data/ext/ice/cpp/include/Ice/Application.h +0 -326
  551. data/ext/ice/cpp/include/Ice/AsyncResult.h +0 -155
  552. data/ext/ice/cpp/include/Ice/AsyncResultF.h +0 -23
  553. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
  554. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +0 -20
  555. data/ext/ice/cpp/include/Ice/Buffer.h +0 -154
  556. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
  557. data/ext/ice/cpp/include/Ice/Comparable.h +0 -205
  558. data/ext/ice/cpp/include/Ice/Config.h +0 -76
  559. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
  560. data/ext/ice/cpp/include/Ice/ConnectionIF.h +0 -38
  561. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
  562. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
  563. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
  564. data/ext/ice/cpp/include/Ice/Dispatcher.h +0 -67
  565. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
  566. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
  567. data/ext/ice/cpp/include/Ice/Exception.h +0 -161
  568. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  569. data/ext/ice/cpp/include/Ice/FactoryTable.h +0 -73
  570. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
  571. data/ext/ice/cpp/include/Ice/Format.h +0 -38
  572. data/ext/ice/cpp/include/Ice/Functional.h +0 -140
  573. data/ext/ice/cpp/include/Ice/GCObject.h +0 -76
  574. data/ext/ice/cpp/include/Ice/Handle.h +0 -182
  575. data/ext/ice/cpp/include/Ice/Ice.h +0 -55
  576. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +0 -377
  577. data/ext/ice/cpp/include/Ice/Incoming.h +0 -225
  578. data/ext/ice/cpp/include/Ice/IncomingAsync.h +0 -186
  579. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
  580. data/ext/ice/cpp/include/Ice/Initialize.h +0 -957
  581. data/ext/ice/cpp/include/Ice/InputStream.h +0 -1514
  582. data/ext/ice/cpp/include/Ice/InstanceF.h +0 -20
  583. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
  584. data/ext/ice/cpp/include/Ice/LocalObject.h +0 -35
  585. data/ext/ice/cpp/include/Ice/LocalObjectF.h +0 -21
  586. data/ext/ice/cpp/include/Ice/LoggerUtil.h +0 -185
  587. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
  588. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
  589. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  590. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +0 -86
  591. data/ext/ice/cpp/include/Ice/Object.h +0 -507
  592. data/ext/ice/cpp/include/Ice/ObjectF.h +0 -30
  593. data/ext/ice/cpp/include/Ice/ObserverHelper.h +0 -182
  594. data/ext/ice/cpp/include/Ice/Optional.h +0 -1114
  595. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +0 -856
  596. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
  597. data/ext/ice/cpp/include/Ice/OutputStream.h +0 -1092
  598. data/ext/ice/cpp/include/Ice/Protocol.h +0 -274
  599. data/ext/ice/cpp/include/Ice/Proxy.h +0 -5154
  600. data/ext/ice/cpp/include/Ice/ProxyF.h +0 -53
  601. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
  602. data/ext/ice/cpp/include/Ice/ProxyHandle.h +0 -318
  603. data/ext/ice/cpp/include/Ice/ReferenceF.h +0 -29
  604. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
  605. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +0 -30
  606. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
  607. data/ext/ice/cpp/include/Ice/SHA1.h +0 -40
  608. data/ext/ice/cpp/include/Ice/ServantManagerF.h +0 -21
  609. data/ext/ice/cpp/include/Ice/Service.h +0 -379
  610. data/ext/ice/cpp/include/Ice/SliceChecksums.h +0 -33
  611. data/ext/ice/cpp/include/Ice/SlicedData.h +0 -172
  612. data/ext/ice/cpp/include/Ice/SlicedDataF.h +0 -40
  613. data/ext/ice/cpp/include/Ice/StreamHelpers.h +0 -1190
  614. data/ext/ice/cpp/include/Ice/StringConverter.h +0 -78
  615. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
  616. data/ext/ice/cpp/include/Ice/UUID.h +0 -19
  617. data/ext/ice/cpp/include/Ice/UniquePtr.h +0 -95
  618. data/ext/ice/cpp/include/Ice/UniqueRef.h +0 -97
  619. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +0 -88
  620. data/ext/ice/cpp/include/Ice/Value.h +0 -139
  621. data/ext/ice/cpp/include/Ice/ValueF.h +0 -21
  622. data/ext/ice/cpp/include/IceSSL/Config.h +0 -21
  623. data/ext/ice/cpp/include/IceSSL/IceSSL.h +0 -24
  624. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
  625. data/ext/ice/cpp/include/IceSSL/Plugin.h +0 -712
  626. data/ext/ice/cpp/include/IceSSL/SChannel.h +0 -72
  627. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
  628. data/ext/ice/cpp/include/IceSSL/UWP.h +0 -62
  629. data/ext/ice/cpp/include/IceUtil/Atomic.h +0 -179
  630. data/ext/ice/cpp/include/IceUtil/Cond.h +0 -317
  631. data/ext/ice/cpp/include/IceUtil/Config.h +0 -392
  632. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
  633. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
  634. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -92
  635. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
  636. data/ext/ice/cpp/include/IceUtil/Exception.h +0 -394
  637. data/ext/ice/cpp/include/IceUtil/FileUtil.h +0 -140
  638. data/ext/ice/cpp/include/IceUtil/Functional.h +0 -389
  639. data/ext/ice/cpp/include/IceUtil/Handle.h +0 -261
  640. data/ext/ice/cpp/include/IceUtil/IceUtil.h +0 -40
  641. data/ext/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  642. data/ext/ice/cpp/include/IceUtil/Iterator.h +0 -31
  643. data/ext/ice/cpp/include/IceUtil/Lock.h +0 -128
  644. data/ext/ice/cpp/include/IceUtil/Monitor.h +0 -243
  645. data/ext/ice/cpp/include/IceUtil/Mutex.h +0 -349
  646. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
  647. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
  648. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
  649. data/ext/ice/cpp/include/IceUtil/Optional.h +0 -433
  650. data/ext/ice/cpp/include/IceUtil/Options.h +0 -135
  651. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
  652. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +0 -14
  653. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
  654. data/ext/ice/cpp/include/IceUtil/Random.h +0 -55
  655. data/ext/ice/cpp/include/IceUtil/RecMutex.h +0 -107
  656. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
  657. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
  658. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
  659. data/ext/ice/cpp/include/IceUtil/Shared.h +0 -127
  660. data/ext/ice/cpp/include/IceUtil/StopWatch.h +0 -49
  661. data/ext/ice/cpp/include/IceUtil/StringConverter.h +0 -195
  662. data/ext/ice/cpp/include/IceUtil/StringUtil.h +0 -97
  663. data/ext/ice/cpp/include/IceUtil/Thread.h +0 -160
  664. data/ext/ice/cpp/include/IceUtil/ThreadException.h +0 -94
  665. data/ext/ice/cpp/include/IceUtil/Time.h +0 -205
  666. data/ext/ice/cpp/include/IceUtil/Timer.h +0 -144
  667. data/ext/ice/cpp/include/IceUtil/UUID.h +0 -21
  668. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +0 -37
  669. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +0 -170
  670. data/ext/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  671. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  672. data/ext/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  673. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  674. data/ext/ice/cpp/include/generated/Ice/Current.h +0 -322
  675. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  676. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  677. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +0 -118
  678. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  679. data/ext/ice/cpp/include/generated/Ice/Identity.h +0 -264
  680. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  681. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  682. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  683. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  684. data/ext/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  685. data/ext/ice/cpp/include/generated/Ice/Locator.h +0 -3898
  686. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  687. data/ext/ice/cpp/include/generated/Ice/Logger.h +0 -237
  688. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  689. data/ext/ice/cpp/include/generated/Ice/Metrics.h +0 -4769
  690. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  691. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  692. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  693. data/ext/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  694. data/ext/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  695. data/ext/ice/cpp/include/generated/Ice/Process.h +0 -977
  696. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  697. data/ext/ice/cpp/include/generated/Ice/Properties.h +0 -452
  698. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +0 -1366
  699. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  700. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +0 -2707
  701. data/ext/ice/cpp/include/generated/Ice/Router.h +0 -1850
  702. data/ext/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  703. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  704. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  705. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +0 -84
  706. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  707. data/ext/ice/cpp/include/generated/Ice/Version.h +0 -357
  708. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  709. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  710. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  711. data/ext/ice/cpp/src/Ice/ACM.cpp +0 -380
  712. data/ext/ice/cpp/src/Ice/ACM.h +0 -119
  713. data/ext/ice/cpp/src/Ice/ACMF.h +0 -30
  714. data/ext/ice/cpp/src/Ice/Acceptor.cpp +0 -16
  715. data/ext/ice/cpp/src/Ice/Acceptor.h +0 -37
  716. data/ext/ice/cpp/src/Ice/AcceptorF.h +0 -25
  717. data/ext/ice/cpp/src/Ice/ArgVector.cpp +0 -59
  718. data/ext/ice/cpp/src/Ice/ArgVector.h +0 -36
  719. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
  720. data/ext/ice/cpp/src/Ice/Base64.cpp +0 -263
  721. data/ext/ice/cpp/src/Ice/Base64.h +0 -31
  722. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +0 -250
  723. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +0 -59
  724. data/ext/ice/cpp/src/Ice/Buffer.cpp +0 -155
  725. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +0 -49
  726. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +0 -407
  727. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +0 -87
  728. data/ext/ice/cpp/src/Ice/Communicator.cpp +0 -79
  729. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +0 -61
  730. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
  731. data/ext/ice/cpp/src/Ice/CommunicatorI.h +0 -167
  732. data/ext/ice/cpp/src/Ice/Cond.cpp +0 -381
  733. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +0 -348
  734. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +0 -72
  735. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +0 -24
  736. data/ext/ice/cpp/src/Ice/Connection.cpp +0 -155
  737. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +0 -61
  738. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +0 -1972
  739. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +0 -264
  740. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +0 -30
  741. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +0 -3670
  742. data/ext/ice/cpp/src/Ice/ConnectionI.h +0 -389
  743. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
  744. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
  745. data/ext/ice/cpp/src/Ice/Connector.cpp +0 -16
  746. data/ext/ice/cpp/src/Ice/Connector.h +0 -32
  747. data/ext/ice/cpp/src/Ice/ConnectorF.h +0 -21
  748. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
  749. data/ext/ice/cpp/src/Ice/Current.cpp +0 -62
  750. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +0 -159
  751. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +0 -52
  752. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +0 -21
  753. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
  754. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +0 -284
  755. data/ext/ice/cpp/src/Ice/Endpoint.cpp +0 -147
  756. data/ext/ice/cpp/src/Ice/EndpointF.cpp +0 -61
  757. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +0 -189
  758. data/ext/ice/cpp/src/Ice/EndpointFactory.h +0 -117
  759. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +0 -21
  760. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +0 -213
  761. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +0 -47
  762. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +0 -21
  763. data/ext/ice/cpp/src/Ice/EndpointI.cpp +0 -98
  764. data/ext/ice/cpp/src/Ice/EndpointI.h +0 -218
  765. data/ext/ice/cpp/src/Ice/EndpointIF.h +0 -49
  766. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +0 -51
  767. data/ext/ice/cpp/src/Ice/EventHandler.cpp +0 -32
  768. data/ext/ice/cpp/src/Ice/EventHandler.h +0 -81
  769. data/ext/ice/cpp/src/Ice/EventHandlerF.h +0 -24
  770. data/ext/ice/cpp/src/Ice/Exception.cpp +0 -818
  771. data/ext/ice/cpp/src/Ice/FacetMap.cpp +0 -49
  772. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
  773. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
  774. data/ext/ice/cpp/src/Ice/GCObject.cpp +0 -442
  775. data/ext/ice/cpp/src/Ice/HashUtil.h +0 -53
  776. data/ext/ice/cpp/src/Ice/HttpParser.cpp +0 -684
  777. data/ext/ice/cpp/src/Ice/HttpParser.h +0 -117
  778. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +0 -710
  779. data/ext/ice/cpp/src/Ice/IPEndpointI.h +0 -152
  780. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +0 -28
  781. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
  782. data/ext/ice/cpp/src/Ice/Identity.cpp +0 -57
  783. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +0 -75
  784. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +0 -61
  785. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
  786. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
  787. data/ext/ice/cpp/src/Ice/Incoming.cpp +0 -795
  788. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
  789. data/ext/ice/cpp/src/Ice/IncomingRequest.h +0 -33
  790. data/ext/ice/cpp/src/Ice/Initialize.cpp +0 -654
  791. data/ext/ice/cpp/src/Ice/InputStream.cpp +0 -2741
  792. data/ext/ice/cpp/src/Ice/Instance.cpp +0 -1967
  793. data/ext/ice/cpp/src/Ice/Instance.h +0 -235
  794. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +0 -188
  795. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +0 -66
  796. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +0 -1094
  797. data/ext/ice/cpp/src/Ice/InstrumentationI.h +0 -256
  798. data/ext/ice/cpp/src/Ice/LocalException.cpp +0 -3262
  799. data/ext/ice/cpp/src/Ice/LocalObject.cpp +0 -23
  800. data/ext/ice/cpp/src/Ice/Locator.cpp +0 -2042
  801. data/ext/ice/cpp/src/Ice/LocatorF.cpp +0 -63
  802. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +0 -889
  803. data/ext/ice/cpp/src/Ice/LocatorInfo.h +0 -189
  804. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +0 -29
  805. data/ext/ice/cpp/src/Ice/Logger.cpp +0 -73
  806. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +0 -956
  807. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +0 -41
  808. data/ext/ice/cpp/src/Ice/LoggerF.cpp +0 -61
  809. data/ext/ice/cpp/src/Ice/LoggerI.cpp +0 -259
  810. data/ext/ice/cpp/src/Ice/LoggerI.h +0 -52
  811. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +0 -100
  812. data/ext/ice/cpp/src/Ice/Metrics.cpp +0 -2352
  813. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +0 -694
  814. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
  815. data/ext/ice/cpp/src/Ice/Network.cpp +0 -2249
  816. data/ext/ice/cpp/src/Ice/Network.h +0 -289
  817. data/ext/ice/cpp/src/Ice/NetworkF.h +0 -19
  818. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +0 -311
  819. data/ext/ice/cpp/src/Ice/NetworkProxy.h +0 -72
  820. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +0 -21
  821. data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +0 -57
  822. data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +0 -40
  823. data/ext/ice/cpp/src/Ice/Object.cpp +0 -435
  824. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +0 -79
  825. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +0 -61
  826. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +0 -291
  827. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +0 -53
  828. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +0 -25
  829. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +0 -1530
  830. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +0 -159
  831. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +0 -75
  832. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +0 -56
  833. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +0 -408
  834. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +0 -74
  835. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +0 -1322
  836. data/ext/ice/cpp/src/Ice/OutputStream.cpp +0 -1367
  837. data/ext/ice/cpp/src/Ice/Plugin.cpp +0 -87
  838. data/ext/ice/cpp/src/Ice/PluginF.cpp +0 -61
  839. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +0 -503
  840. data/ext/ice/cpp/src/Ice/PluginManagerI.h +0 -61
  841. data/ext/ice/cpp/src/Ice/Process.cpp +0 -471
  842. data/ext/ice/cpp/src/Ice/ProcessF.cpp +0 -63
  843. data/ext/ice/cpp/src/Ice/Properties.cpp +0 -78
  844. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +0 -603
  845. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
  846. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
  847. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +0 -63
  848. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +0 -739
  849. data/ext/ice/cpp/src/Ice/PropertiesI.h +0 -70
  850. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +0 -1429
  851. data/ext/ice/cpp/src/Ice/PropertyNames.h +0 -78
  852. data/ext/ice/cpp/src/Ice/Protocol.cpp +0 -124
  853. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +0 -131
  854. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +0 -93
  855. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +0 -21
  856. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +0 -51
  857. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +0 -64
  858. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
  859. data/ext/ice/cpp/src/Ice/Proxy.cpp +0 -1601
  860. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
  861. data/ext/ice/cpp/src/Ice/ProxyFactory.h +0 -57
  862. data/ext/ice/cpp/src/Ice/Reference.cpp +0 -2046
  863. data/ext/ice/cpp/src/Ice/Reference.h +0 -323
  864. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +0 -888
  865. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +0 -76
  866. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +0 -19
  867. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
  868. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
  869. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +0 -1171
  870. data/ext/ice/cpp/src/Ice/ReplyStatus.h +0 -24
  871. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +0 -37
  872. data/ext/ice/cpp/src/Ice/RequestHandler.h +0 -78
  873. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
  874. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
  875. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
  876. data/ext/ice/cpp/src/Ice/ResponseHandler.h +0 -43
  877. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +0 -157
  878. data/ext/ice/cpp/src/Ice/RetryQueue.h +0 -66
  879. data/ext/ice/cpp/src/Ice/RetryQueueF.h +0 -19
  880. data/ext/ice/cpp/src/Ice/Router.cpp +0 -977
  881. data/ext/ice/cpp/src/Ice/RouterF.cpp +0 -63
  882. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +0 -379
  883. data/ext/ice/cpp/src/Ice/RouterInfo.h +0 -152
  884. data/ext/ice/cpp/src/Ice/RouterInfoF.h +0 -25
  885. data/ext/ice/cpp/src/Ice/SHA1.cpp +0 -169
  886. data/ext/ice/cpp/src/Ice/Selector.cpp +0 -1525
  887. data/ext/ice/cpp/src/Ice/Selector.h +0 -292
  888. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +0 -75
  889. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +0 -61
  890. data/ext/ice/cpp/src/Ice/ServantManager.cpp +0 -480
  891. data/ext/ice/cpp/src/Ice/ServantManager.h +0 -69
  892. data/ext/ice/cpp/src/Ice/SharedContext.h +0 -46
  893. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +0 -49
  894. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
  895. data/ext/ice/cpp/src/Ice/SlicedData.cpp +0 -127
  896. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +0 -519
  897. data/ext/ice/cpp/src/Ice/StreamSocket.h +0 -85
  898. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
  899. data/ext/ice/cpp/src/Ice/StringUtil.h +0 -30
  900. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +0 -166
  901. data/ext/ice/cpp/src/Ice/SysLoggerI.h +0 -37
  902. data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +0 -66
  903. data/ext/ice/cpp/src/Ice/SystemdJournalI.h +0 -39
  904. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +0 -234
  905. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +0 -61
  906. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +0 -127
  907. data/ext/ice/cpp/src/Ice/TcpConnector.h +0 -45
  908. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +0 -385
  909. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +0 -90
  910. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +0 -135
  911. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +0 -58
  912. data/ext/ice/cpp/src/Ice/Thread.cpp +0 -569
  913. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +0 -1292
  914. data/ext/ice/cpp/src/Ice/ThreadPool.h +0 -393
  915. data/ext/ice/cpp/src/Ice/Timer.cpp +0 -263
  916. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +0 -38
  917. data/ext/ice/cpp/src/Ice/TraceLevels.h +0 -45
  918. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +0 -21
  919. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +0 -478
  920. data/ext/ice/cpp/src/Ice/TraceUtil.h +0 -30
  921. data/ext/ice/cpp/src/Ice/Transceiver.cpp +0 -18
  922. data/ext/ice/cpp/src/Ice/Transceiver.h +0 -49
  923. data/ext/ice/cpp/src/Ice/TransceiverF.h +0 -33
  924. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +0 -131
  925. data/ext/ice/cpp/src/Ice/UdpConnector.h +0 -45
  926. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +0 -515
  927. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +0 -95
  928. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -806
  929. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +0 -96
  930. data/ext/ice/cpp/src/Ice/Value.cpp +0 -76
  931. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +0 -83
  932. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
  933. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
  934. data/ext/ice/cpp/src/Ice/Version.cpp +0 -57
  935. data/ext/ice/cpp/src/Ice/VirtualShared.h +0 -38
  936. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +0 -92
  937. data/ext/ice/cpp/src/Ice/WSAcceptor.h +0 -52
  938. data/ext/ice/cpp/src/Ice/WSConnector.cpp +0 -102
  939. data/ext/ice/cpp/src/Ice/WSConnector.h +0 -43
  940. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +0 -508
  941. data/ext/ice/cpp/src/Ice/WSEndpoint.h +0 -93
  942. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +0 -1704
  943. data/ext/ice/cpp/src/Ice/WSTransceiver.h +0 -141
  944. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +0 -915
  945. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +0 -1889
  946. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +0 -265
  947. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +0 -109
  948. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +0 -608
  949. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +0 -228
  950. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +0 -176
  951. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +0 -36
  952. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +0 -730
  953. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  954. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +0 -47
  955. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +0 -1048
  956. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
  957. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
  958. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
  959. data/ext/ice/cpp/src/IceSSL/CertificateI.h +0 -64
  960. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +0 -75
  961. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +0 -61
  962. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
  963. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
  964. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
  965. data/ext/ice/cpp/src/IceSSL/EndpointI.h +0 -100
  966. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +0 -75
  967. data/ext/ice/cpp/src/IceSSL/Instance.cpp +0 -28
  968. data/ext/ice/cpp/src/IceSSL/Instance.h +0 -37
  969. data/ext/ice/cpp/src/IceSSL/InstanceF.h +0 -33
  970. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
  971. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
  972. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
  973. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
  974. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
  975. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  976. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
  977. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
  978. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
  979. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  980. data/ext/ice/cpp/src/IceSSL/PluginI.h +0 -67
  981. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +0 -490
  982. data/ext/ice/cpp/src/IceSSL/RFC2253.h +0 -62
  983. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
  984. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
  985. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
  986. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
  987. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
  988. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
  989. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
  990. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
  991. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
  992. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
  993. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
  994. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
  995. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
  996. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
  997. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
  998. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  999. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
  1000. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  1001. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
  1002. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
  1003. data/ext/ice/cpp/src/IceSSL/TrustManager.h +0 -46
  1004. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
  1005. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +0 -266
  1006. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +0 -338
  1007. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +0 -41
  1008. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +0 -26
  1009. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +0 -89
  1010. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +0 -383
  1011. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +0 -71
  1012. data/ext/ice/cpp/src/IceSSL/Util.cpp +0 -192
  1013. data/ext/ice/cpp/src/IceSSL/Util.h +0 -99
  1014. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +0 -157
  1015. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
  1016. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
  1017. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
  1018. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +0 -471
  1019. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
  1020. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
  1021. data/ext/ice/cpp/src/IceUtil/Options.cpp +0 -1051
  1022. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
  1023. data/ext/ice/cpp/src/IceUtil/Random.cpp +0 -180
  1024. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +0 -238
  1025. data/ext/ice/cpp/src/IceUtil/Shared.cpp +0 -71
  1026. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  1027. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1135
  1028. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
  1029. data/ext/ice/cpp/src/IceUtil/Time.cpp +0 -307
  1030. data/ext/ice/cpp/src/IceUtil/UUID.cpp +0 -165
  1031. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
  1032. data/ext/ice/cpp/src/IceUtil/Unicode.h +0 -43
  1033. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
  1034. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
  1035. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
  1036. data/ext/ice/cpp/src/Slice/Checksum.cpp +0 -447
  1037. data/ext/ice/cpp/src/Slice/Checksum.h +0 -21
  1038. data/ext/ice/cpp/src/Slice/FileTracker.cpp +0 -146
  1039. data/ext/ice/cpp/src/Slice/FileTracker.h +0 -66
  1040. data/ext/ice/cpp/src/Slice/Grammar.cpp +0 -4793
  1041. data/ext/ice/cpp/src/Slice/Grammar.h +0 -118
  1042. data/ext/ice/cpp/src/Slice/GrammarUtil.h +0 -228
  1043. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +0 -5176
  1044. data/ext/ice/cpp/src/Slice/JavaUtil.h +0 -407
  1045. data/ext/ice/cpp/src/Slice/MD5.cpp +0 -52
  1046. data/ext/ice/cpp/src/Slice/MD5.h +0 -39
  1047. data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -393
  1048. data/ext/ice/cpp/src/Slice/MD5I.h +0 -91
  1049. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
  1050. data/ext/ice/cpp/src/Slice/PHPUtil.h +0 -36
  1051. data/ext/ice/cpp/src/Slice/Parser.cpp +0 -7058
  1052. data/ext/ice/cpp/src/Slice/Parser.h +0 -1174
  1053. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +0 -797
  1054. data/ext/ice/cpp/src/Slice/Preprocessor.h +0 -60
  1055. data/ext/ice/cpp/src/Slice/Python.cpp +0 -830
  1056. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
  1057. data/ext/ice/cpp/src/Slice/PythonUtil.h +0 -70
  1058. data/ext/ice/cpp/src/Slice/Ruby.cpp +0 -350
  1059. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
  1060. data/ext/ice/cpp/src/Slice/RubyUtil.h +0 -49
  1061. data/ext/ice/cpp/src/Slice/Scanner.cpp +0 -2807
  1062. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +0 -424
  1063. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +0 -456
  1064. data/ext/ice/cpp/src/Slice/Util.h +0 -50
  1065. data/ext/ice/mcpp/CMakeLists.txt +0 -80
  1066. data/ext/ice/mcpp/LICENSE +0 -29
  1067. data/ext/ice/mcpp/Makefile +0 -63
  1068. data/ext/ice/mcpp/README.md +0 -32
  1069. data/ext/ice/mcpp/internal.H +0 -530
  1070. data/ext/ice/mcpp/mcpp.gyp +0 -88
  1071. data/ext/ice/mcpp/system.c +0 -2737
  1072. data/lib/Glacier2/Metrics.rb +0 -56
  1073. data/lib/Glacier2/PermissionsVerifier.rb +0 -93
  1074. data/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  1075. data/lib/Glacier2/Router.rb +0 -95
  1076. data/lib/Glacier2/RouterF.rb +0 -25
  1077. data/lib/Glacier2/SSLInfo.rb +0 -72
  1078. data/lib/Glacier2/Session.rb +0 -247
  1079. data/lib/Glacier2.rb +0 -7
  1080. data/lib/Ice/BuiltinSequences.rb +0 -60
  1081. data/lib/Ice/Communicator.rb +0 -87
  1082. data/lib/Ice/CommunicatorF.rb +0 -24
  1083. data/lib/Ice/Connection.rb +0 -413
  1084. data/lib/Ice/ConnectionF.rb +0 -32
  1085. data/lib/Ice/Current.rb +0 -141
  1086. data/lib/Ice/Endpoint.rb +0 -187
  1087. data/lib/Ice/EndpointF.rb +0 -48
  1088. data/lib/Ice/EndpointTypes.rb +0 -69
  1089. data/lib/Ice/FacetMap.rb +0 -24
  1090. data/lib/Ice/Identity.rb +0 -63
  1091. data/lib/Ice/ImplicitContext.rb +0 -26
  1092. data/lib/Ice/ImplicitContextF.rb +0 -24
  1093. data/lib/Ice/Instrumentation.rb +0 -169
  1094. data/lib/Ice/InstrumentationF.rb +0 -31
  1095. data/lib/Ice/LocalException.rb +0 -1031
  1096. data/lib/Ice/Locator.rb +0 -196
  1097. data/lib/Ice/LocatorF.rb +0 -30
  1098. data/lib/Ice/Logger.rb +0 -24
  1099. data/lib/Ice/LoggerF.rb +0 -24
  1100. data/lib/Ice/Metrics.rb +0 -337
  1101. data/lib/Ice/ObjectAdapter.rb +0 -29
  1102. data/lib/Ice/ObjectAdapterF.rb +0 -24
  1103. data/lib/Ice/ObjectFactory.rb +0 -24
  1104. data/lib/Ice/Plugin.rb +0 -30
  1105. data/lib/Ice/PluginF.rb +0 -28
  1106. data/lib/Ice/Process.rb +0 -53
  1107. data/lib/Ice/ProcessF.rb +0 -25
  1108. data/lib/Ice/Properties.rb +0 -25
  1109. data/lib/Ice/PropertiesAdmin.rb +0 -63
  1110. data/lib/Ice/PropertiesF.rb +0 -29
  1111. data/lib/Ice/RemoteLogger.rb +0 -207
  1112. data/lib/Ice/Router.rb +0 -87
  1113. data/lib/Ice/RouterF.rb +0 -25
  1114. data/lib/Ice/ServantLocator.rb +0 -26
  1115. data/lib/Ice/ServantLocatorF.rb +0 -24
  1116. data/lib/Ice/SliceChecksumDict.rb +0 -24
  1117. data/lib/Ice/ValueFactory.rb +0 -28
  1118. data/lib/Ice/Version.rb +0 -90
  1119. data/lib/Ice.rb +0 -673
  1120. data/lib/IceBox/IceBox.rb +0 -164
  1121. data/lib/IceBox.rb +0 -5
  1122. data/lib/IceGrid/Admin.rb +0 -1196
  1123. data/lib/IceGrid/Descriptor.rb +0 -1034
  1124. data/lib/IceGrid/Exception.rb +0 -376
  1125. data/lib/IceGrid/FileParser.rb +0 -65
  1126. data/lib/IceGrid/PluginFacade.rb +0 -35
  1127. data/lib/IceGrid/Registry.rb +0 -209
  1128. data/lib/IceGrid/Session.rb +0 -71
  1129. data/lib/IceGrid/UserAccountMapper.rb +0 -61
  1130. data/lib/IceGrid.rb +0 -9
  1131. data/lib/IcePatch2/FileInfo.rb +0 -115
  1132. data/lib/IcePatch2/FileServer.rb +0 -123
  1133. data/lib/IcePatch2.rb +0 -5
  1134. data/lib/IceStorm/IceStorm.rb +0 -332
  1135. data/lib/IceStorm/Metrics.rb +0 -73
  1136. data/lib/IceStorm.rb +0 -6
  1137. data/slice/Glacier2/Metrics.ice +0 -88
  1138. data/slice/Glacier2/PermissionsVerifier.ice +0 -111
  1139. data/slice/Glacier2/PermissionsVerifierF.ice +0 -30
  1140. data/slice/Glacier2/Router.ice +0 -186
  1141. data/slice/Glacier2/RouterF.ice +0 -29
  1142. data/slice/Glacier2/SSLInfo.ice +0 -59
  1143. data/slice/Glacier2/Session.ice +0 -274
  1144. data/slice/Ice/BuiltinSequences.ice +0 -59
  1145. data/slice/Ice/Communicator.ice +0 -676
  1146. data/slice/Ice/CommunicatorF.ice +0 -31
  1147. data/slice/Ice/Connection.ice +0 -516
  1148. data/slice/Ice/ConnectionF.ice +0 -33
  1149. data/slice/Ice/Current.ice +0 -170
  1150. data/slice/Ice/Endpoint.ice +0 -291
  1151. data/slice/Ice/EndpointF.ice +0 -43
  1152. data/slice/Ice/EndpointTypes.ice +0 -48
  1153. data/slice/Ice/FacetMap.ice +0 -36
  1154. data/slice/Ice/Identity.ice +0 -75
  1155. data/slice/Ice/ImplicitContext.ice +0 -119
  1156. data/slice/Ice/ImplicitContextF.ice +0 -30
  1157. data/slice/Ice/Instrumentation.ice +0 -509
  1158. data/slice/Ice/InstrumentationF.ice +0 -38
  1159. data/slice/Ice/LocalException.ice +0 -1040
  1160. data/slice/Ice/Locator.ice +0 -239
  1161. data/slice/Ice/LocatorF.ice +0 -32
  1162. data/slice/Ice/Logger.ice +0 -99
  1163. data/slice/Ice/LoggerF.ice +0 -31
  1164. data/slice/Ice/Metrics.ice +0 -436
  1165. data/slice/Ice/ObjectAdapter.ice +0 -710
  1166. data/slice/Ice/ObjectAdapterF.ice +0 -31
  1167. data/slice/Ice/ObjectFactory.ice +0 -71
  1168. data/slice/Ice/Plugin.ice +0 -131
  1169. data/slice/Ice/PluginF.ice +0 -36
  1170. data/slice/Ice/Process.ice +0 -64
  1171. data/slice/Ice/ProcessF.ice +0 -31
  1172. data/slice/Ice/Properties.ice +0 -244
  1173. data/slice/Ice/PropertiesAdmin.ice +0 -87
  1174. data/slice/Ice/PropertiesF.ice +0 -32
  1175. data/slice/Ice/RemoteLogger.ice +0 -226
  1176. data/slice/Ice/Router.ice +0 -103
  1177. data/slice/Ice/RouterF.ice +0 -31
  1178. data/slice/Ice/ServantLocator.ice +0 -136
  1179. data/slice/Ice/ServantLocatorF.ice +0 -31
  1180. data/slice/Ice/SliceChecksumDict.ice +0 -36
  1181. data/slice/Ice/ValueFactory.ice +0 -133
  1182. data/slice/Ice/Version.ice +0 -51
  1183. data/slice/IceBT/ConnectionInfo.ice +0 -59
  1184. data/slice/IceBT/EndpointInfo.ice +0 -57
  1185. data/slice/IceBT/Types.ice +0 -45
  1186. data/slice/IceBox/IceBox.ice +0 -216
  1187. data/slice/IceDiscovery/IceDiscovery.ice +0 -98
  1188. data/slice/IceGrid/Admin.ice +0 -1957
  1189. data/slice/IceGrid/Descriptor.ice +0 -1094
  1190. data/slice/IceGrid/Exception.ice +0 -396
  1191. data/slice/IceGrid/FileParser.ice +0 -72
  1192. data/slice/IceGrid/PluginFacade.ice +0 -329
  1193. data/slice/IceGrid/Registry.ice +0 -269
  1194. data/slice/IceGrid/Session.ice +0 -128
  1195. data/slice/IceGrid/UserAccountMapper.ice +0 -69
  1196. data/slice/IceIAP/ConnectionInfo.ice +0 -74
  1197. data/slice/IceIAP/EndpointInfo.ice +0 -68
  1198. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +0 -83
  1199. data/slice/IcePatch2/FileInfo.ice +0 -85
  1200. data/slice/IcePatch2/FileServer.ice +0 -191
  1201. data/slice/IceSSL/ConnectionInfo.ice +0 -54
  1202. data/slice/IceSSL/ConnectionInfoF.ice +0 -31
  1203. data/slice/IceSSL/EndpointInfo.ice +0 -45
  1204. data/slice/IceStorm/IceStorm.ice +0 -414
  1205. data/slice/IceStorm/Metrics.ice +0 -83
  1206. /data/{ext → dist}/ice/mcpp/config.h +0 -0
  1207. /data/{ext → dist}/ice/mcpp/configed.H +0 -0
  1208. /data/{ext → dist}/ice/mcpp/directive.c +0 -0
  1209. /data/{ext → dist}/ice/mcpp/eval.c +0 -0
  1210. /data/{ext → dist}/ice/mcpp/expand.c +0 -0
  1211. /data/{ext → dist}/ice/mcpp/mbchar.c +0 -0
  1212. /data/{ext → dist}/ice/mcpp/mcpp_lib.h +0 -0
  1213. /data/{ext/ice/mcpp/main.c → dist/ice/mcpp/mcpp_main.c} +0 -0
  1214. /data/{ext → dist}/ice/mcpp/mcpp_out.h +0 -0
  1215. /data/{ext → dist}/ice/mcpp/support.c +0 -0
  1216. /data/{ext → dist}/ice/mcpp/system.H +0 -0
@@ -0,0 +1,1790 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #include "Ice/Service.h"
4
+ #include "ArgVector.h"
5
+ #include "ConsoleUtil.h"
6
+ #include "Ice/StringUtil.h"
7
+ #include "LoggerI.h"
8
+
9
+ #ifdef _WIN32
10
+ # include "Ice/EventLoggerMsg.h"
11
+ # include <winsock2.h>
12
+ #else
13
+ # include "Network.h"
14
+ # include <csignal>
15
+ # include <sys/stat.h>
16
+ # include <sys/types.h>
17
+ # ifdef ICE_USE_SYSTEMD
18
+ # include <systemd/sd-daemon.h>
19
+ # endif
20
+ #endif
21
+
22
+ using namespace std;
23
+ using namespace Ice;
24
+ using namespace IceInternal;
25
+
26
+ Ice::Service* Ice::Service::_instance = nullptr;
27
+
28
+ namespace
29
+ {
30
+ CtrlCHandler* ctrlCHandler = nullptr;
31
+ }
32
+
33
+ //
34
+ // Callback for CtrlCHandler.
35
+ //
36
+ static void
37
+ ctrlCHandlerCallback(int sig)
38
+ {
39
+ Ice::Service* service = Ice::Service::instance();
40
+ assert(service != nullptr);
41
+ service->handleInterrupt(sig);
42
+ }
43
+
44
+ #ifdef _WIN32
45
+
46
+ //
47
+ // Main function for Win32 service.
48
+ //
49
+ void WINAPI
50
+ Ice_Service_ServiceMain(DWORD argc, LPWSTR* argv)
51
+ {
52
+ Ice::Service* service = Ice::Service::instance();
53
+ assert(service != 0);
54
+ service->serviceMain(argc, argv);
55
+ }
56
+
57
+ //
58
+ // Win32 service control handler.
59
+ //
60
+ void WINAPI
61
+ Ice_Service_CtrlHandler(DWORD ctrl)
62
+ {
63
+ Ice::Service* service = Ice::Service::instance();
64
+ assert(service != 0);
65
+ service->control(ctrl);
66
+ }
67
+
68
+ namespace
69
+ {
70
+ class ServiceStatusManager
71
+ {
72
+ public:
73
+ ServiceStatusManager(SERVICE_STATUS_HANDLE);
74
+
75
+ //
76
+ // Start a thread to provide regular status updates to the SCM.
77
+ //
78
+ void startUpdate(DWORD);
79
+
80
+ //
81
+ // Stop the update thread.
82
+ //
83
+ void stopUpdate();
84
+
85
+ //
86
+ // Change the service status and report it (once).
87
+ //
88
+ void changeStatus(DWORD, DWORD);
89
+
90
+ //
91
+ // Report the current status.
92
+ //
93
+ void reportStatus();
94
+
95
+ private:
96
+ void run();
97
+
98
+ SERVICE_STATUS_HANDLE _handle;
99
+ SERVICE_STATUS _status;
100
+ std::thread _thread;
101
+ bool _stopped;
102
+ std::mutex _mutex;
103
+ std::condition_variable _conditionVariable;
104
+ };
105
+
106
+ static ServiceStatusManager* serviceStatusManager;
107
+
108
+ //
109
+ // Interface implemented by SMEventLoggerI and called from
110
+ // SMEventLoggerIWrapper.
111
+ //
112
+ class SMEventLogger
113
+ {
114
+ public:
115
+ virtual void print(const string&, const string&) = 0;
116
+ virtual void trace(const string&, const string&, const string&) = 0;
117
+ virtual void warning(const string&, const string&) = 0;
118
+ virtual void error(const string&, const string&) = 0;
119
+ };
120
+ using SMEventLoggerPtr = std::shared_ptr<SMEventLogger>;
121
+
122
+ class SMEventLoggerIWrapper final : public Ice::Logger
123
+ {
124
+ public:
125
+ SMEventLoggerIWrapper(const SMEventLoggerPtr& logger, string prefix)
126
+ : _logger(logger),
127
+ _prefix(std::move(prefix))
128
+ {
129
+ assert(_logger);
130
+ }
131
+
132
+ void print(const string& message) final { _logger->print(_prefix, message); }
133
+
134
+ void trace(const string& category, const string& message) final { _logger->trace(_prefix, category, message); }
135
+
136
+ void warning(const string& message) final { _logger->warning(_prefix, message); }
137
+
138
+ void error(const string& message) final { _logger->error(_prefix, message); }
139
+
140
+ string getPrefix() final { return _prefix; }
141
+
142
+ Ice::LoggerPtr cloneWithPrefix(string prefix) final
143
+ {
144
+ return make_shared<SMEventLoggerIWrapper>(_logger, std::move(prefix));
145
+ }
146
+
147
+ private:
148
+ SMEventLoggerPtr _logger;
149
+ const string _prefix;
150
+ };
151
+
152
+ class SMEventLoggerI : public SMEventLogger
153
+ {
154
+ public:
155
+ SMEventLoggerI(const string& source, const StringConverterPtr& stringConverter)
156
+ : _stringConverter(stringConverter)
157
+ {
158
+ //
159
+ // Don't need to use a wide string converter as the wide string is passed
160
+ // to Windows API.
161
+ //
162
+ _source = RegisterEventSourceW(0, stringToWstring(mangleSource(source), _stringConverter).c_str());
163
+ if (_source == 0)
164
+ {
165
+ throw SyscallException{__FILE__, __LINE__, "RegisterEventSourceW failed", GetLastError()};
166
+ }
167
+ }
168
+
169
+ ~SMEventLoggerI()
170
+ {
171
+ assert(_source != 0);
172
+ DeregisterEventSource(_source);
173
+ }
174
+
175
+ static void addKeys(const string& source, const StringConverterPtr& stringConverter)
176
+ {
177
+ HKEY hKey;
178
+ DWORD d;
179
+ //
180
+ // Don't need to use a wide string converter as the wide string is passed
181
+ // to Windows API.
182
+ //
183
+ LSTATUS err = RegCreateKeyExW(
184
+ HKEY_LOCAL_MACHINE,
185
+ stringToWstring(createKey(source), stringConverter).c_str(),
186
+ 0,
187
+ const_cast<wchar_t*>(L"REG_SZ"),
188
+ REG_OPTION_NON_VOLATILE,
189
+ KEY_ALL_ACCESS,
190
+ 0,
191
+ &hKey,
192
+ &d);
193
+
194
+ if (err != ERROR_SUCCESS)
195
+ {
196
+ throw SyscallException{__FILE__, __LINE__, "RegCreateKeyExW failed", static_cast<DWORD>(err)};
197
+ }
198
+
199
+ //
200
+ // Get the filename of this DLL.
201
+ //
202
+ wchar_t path[_MAX_PATH];
203
+ assert(_module != 0);
204
+ if (!GetModuleFileNameW(_module, path, _MAX_PATH))
205
+ {
206
+ DWORD error = GetLastError();
207
+ RegCloseKey(hKey);
208
+ throw SyscallException{__FILE__, __LINE__, "GetModuleFileNameW failed", error};
209
+ }
210
+
211
+ //
212
+ // The event resources are bundled into this DLL, therefore
213
+ // the "EventMessageFile" key should contain the path to this
214
+ // DLL.
215
+ //
216
+ err = RegSetValueExW(
217
+ hKey,
218
+ L"EventMessageFile",
219
+ 0,
220
+ REG_EXPAND_SZ,
221
+ reinterpret_cast<unsigned char*>(path),
222
+ static_cast<DWORD>((wcslen(path) * sizeof(wchar_t)) + 1));
223
+
224
+ if (err == ERROR_SUCCESS)
225
+ {
226
+ //
227
+ // The "TypesSupported" key indicates the supported event
228
+ // types.
229
+ //
230
+ DWORD typesSupported = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | EVENTLOG_INFORMATION_TYPE;
231
+ err = RegSetValueExW(
232
+ hKey,
233
+ L"TypesSupported",
234
+ 0,
235
+ REG_DWORD,
236
+ reinterpret_cast<unsigned char*>(&typesSupported),
237
+ sizeof(typesSupported));
238
+ }
239
+ if (err != ERROR_SUCCESS)
240
+ {
241
+ RegCloseKey(hKey);
242
+ throw SyscallException{__FILE__, __LINE__, "RegSetValueExW failed", static_cast<DWORD>(err)};
243
+ }
244
+
245
+ RegCloseKey(hKey);
246
+ }
247
+
248
+ static void removeKeys(const string& source, const StringConverterPtr& stringConverter)
249
+ {
250
+ //
251
+ // Don't need to use a wide string converter as the wide string is passed
252
+ // to Windows API.
253
+ //
254
+ LSTATUS err =
255
+ RegDeleteKeyW(HKEY_LOCAL_MACHINE, stringToWstring(createKey(source), stringConverter).c_str());
256
+ if (err != ERROR_SUCCESS)
257
+ {
258
+ throw SyscallException{__FILE__, __LINE__, "RegDeleteKeyW failed", static_cast<DWORD>(err)};
259
+ }
260
+ }
261
+
262
+ virtual void print(const string& prefix, const string& message)
263
+ {
264
+ string s;
265
+ if (!prefix.empty())
266
+ {
267
+ s = prefix;
268
+ s.append(": ");
269
+ }
270
+ s.append(message);
271
+ print(s);
272
+ }
273
+
274
+ void print(const string& message)
275
+ {
276
+ //
277
+ // Don't need to use a wide string converter as the wide string is passed
278
+ // to Windows API.
279
+ //
280
+ const wstring msg = stringToWstring(message, _stringConverter);
281
+ const wchar_t* messages[1];
282
+ messages[0] = msg.c_str();
283
+ //
284
+ // We ignore any failures from ReportEvent since there isn't
285
+ // anything we can do about it.
286
+ //
287
+ ReportEventW(_source, EVENTLOG_INFORMATION_TYPE, 0, EVENT_LOGGER_MSG, 0, 1, 0, messages, 0);
288
+ }
289
+
290
+ virtual void trace(const string& prefix, const string& category, const string& message)
291
+ {
292
+ string s;
293
+ if (!category.empty())
294
+ {
295
+ s = category;
296
+ s.append(": ");
297
+ }
298
+ s.append(message);
299
+ trace(prefix, s);
300
+ }
301
+
302
+ void trace(const string& category, const string& message)
303
+ {
304
+ string s;
305
+ if (!category.empty())
306
+ {
307
+ s = category;
308
+ s.append(": ");
309
+ }
310
+ s.append(message);
311
+
312
+ //
313
+ // Don't need to use a wide string converter as the wide string is passed
314
+ // to Windows API.
315
+ //
316
+ wstring msg = stringToWstring(s, _stringConverter);
317
+ const wchar_t* messages[1];
318
+ messages[0] = msg.c_str();
319
+ //
320
+ // We ignore any failures from ReportEvent since there isn't
321
+ // anything we can do about it.
322
+ //
323
+ ReportEventW(_source, EVENTLOG_INFORMATION_TYPE, 0, EVENT_LOGGER_MSG, 0, 1, 0, messages, 0);
324
+ }
325
+
326
+ virtual void warning(const string& prefix, const string& message)
327
+ {
328
+ string s;
329
+ if (!prefix.empty())
330
+ {
331
+ s = prefix;
332
+ s.append(": ");
333
+ }
334
+ s.append(message);
335
+ warning(s);
336
+ }
337
+
338
+ void warning(const string& message)
339
+ {
340
+ //
341
+ // Don't need to use a wide string converter as the wide string is passed
342
+ // to Windows API.
343
+ //
344
+ wstring msg = stringToWstring(message, _stringConverter);
345
+ const wchar_t* messages[1];
346
+ messages[0] = msg.c_str();
347
+ //
348
+ // We ignore any failures from ReportEvent since there isn't
349
+ // anything we can do about it.
350
+ //
351
+ ReportEventW(_source, EVENTLOG_WARNING_TYPE, 0, EVENT_LOGGER_MSG, 0, 1, 0, messages, 0);
352
+ }
353
+
354
+ virtual void error(const string& prefix, const string& message)
355
+ {
356
+ string s;
357
+ if (!prefix.empty())
358
+ {
359
+ s = prefix;
360
+ s.append(": ");
361
+ }
362
+ s.append(message);
363
+ error(s);
364
+ }
365
+
366
+ void error(const string& message)
367
+ {
368
+ //
369
+ // Don't need to use a wide string converter as the wide string is passed
370
+ // to Windows API.
371
+ //
372
+ wstring msg = stringToWstring(message, _stringConverter);
373
+ const wchar_t* messages[1];
374
+ messages[0] = msg.c_str();
375
+ //
376
+ // We ignore any failures from ReportEvent since there isn't
377
+ // anything we can do about it.
378
+ //
379
+ ReportEventW(_source, EVENTLOG_ERROR_TYPE, 0, EVENT_LOGGER_MSG, 0, 1, 0, messages, 0);
380
+ }
381
+
382
+ static void setModuleHandle(HMODULE module) { _module = module; }
383
+
384
+ private:
385
+ static string mangleSource(string name)
386
+ {
387
+ //
388
+ // The source name cannot contain backslashes.
389
+ //
390
+ string::size_type pos = 0;
391
+ while ((pos = name.find('\\', pos)) != string::npos)
392
+ {
393
+ name[pos] = '/';
394
+ }
395
+ return name;
396
+ }
397
+
398
+ static string createKey(string name)
399
+ {
400
+ //
401
+ // The registry key is:
402
+ //
403
+ // HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application.
404
+ //
405
+ return "SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\" + mangleSource(name);
406
+ }
407
+
408
+ StringConverterPtr _stringConverter;
409
+ HANDLE _source;
410
+ static HMODULE _module;
411
+ };
412
+
413
+ HMODULE SMEventLoggerI::_module = 0;
414
+ }
415
+
416
+ #endif
417
+
418
+ Ice::Service::Service()
419
+ {
420
+ assert(_instance == nullptr);
421
+ _instance = this;
422
+ }
423
+
424
+ Ice::Service::~Service()
425
+ {
426
+ _instance = nullptr;
427
+ delete ctrlCHandler;
428
+ }
429
+
430
+ bool
431
+ Ice::Service::shutdown()
432
+ {
433
+ if (_communicator)
434
+ {
435
+ try
436
+ {
437
+ _communicator->shutdown();
438
+ }
439
+ catch (const CommunicatorDestroyedException&)
440
+ {
441
+ //
442
+ // Expected if the service communicator is being destroyed.
443
+ //
444
+ }
445
+ catch (const Ice::Exception& ex)
446
+ {
447
+ ServiceWarning warn(this);
448
+ warn << "exception during shutdown:\n" << ex;
449
+ }
450
+ catch (const std::exception& ex)
451
+ {
452
+ ServiceWarning warn(this);
453
+ warn << "exception during shutdown:\n" << ex;
454
+ }
455
+ catch (...)
456
+ {
457
+ warning("unknown exception during shutdown");
458
+ }
459
+ }
460
+ return true;
461
+ }
462
+
463
+ void
464
+ Ice::Service::interrupt()
465
+ {
466
+ shutdown();
467
+ }
468
+
469
+ int
470
+ Ice::Service::main(int argc, const char* const argv[], InitializationData initData)
471
+ {
472
+ _name = "";
473
+ if (argc > 0)
474
+ {
475
+ _name = argv[0];
476
+ }
477
+
478
+ IceInternal::ArgVector av(argc, argv); // copy args
479
+
480
+ //
481
+ // We parse the properties here to extract Ice.ProgramName and
482
+ // Ice.EventLog.Source on Windows.
483
+ //
484
+ try
485
+ {
486
+ initData.properties = createProperties(av.argc, av.argv, initData.properties);
487
+ }
488
+ catch (const Ice::Exception& ex)
489
+ {
490
+ ServiceError err(this);
491
+ err << "createProperties failed: " << ex;
492
+ return EXIT_FAILURE;
493
+ }
494
+
495
+ #ifdef _WIN32
496
+
497
+ //
498
+ // First check for the --service option.
499
+ //
500
+ string name;
501
+ int idx = 1;
502
+ const StringConverterPtr stringConverter = getProcessStringConverter();
503
+ while (idx < av.argc)
504
+ {
505
+ if (strcmp(av.argv[idx], "--service") == 0)
506
+ {
507
+ if (idx + 1 >= av.argc)
508
+ {
509
+ error("service name argument expected for '" + string(av.argv[idx]) + "'");
510
+ return EXIT_FAILURE;
511
+ }
512
+
513
+ name = av.argv[idx + 1];
514
+
515
+ //
516
+ // If the process logger is the default logger then we use
517
+ // our own logger.
518
+ //
519
+ _logger = getProcessLogger();
520
+ if (dynamic_pointer_cast<LoggerI>(_logger))
521
+ {
522
+ string eventLogSource = initData.properties->getIceProperty("Ice.EventLog.Source");
523
+ if (eventLogSource.empty())
524
+ {
525
+ eventLogSource = name;
526
+ }
527
+ _logger = make_shared<SMEventLoggerIWrapper>(
528
+ make_shared<SMEventLoggerI>(eventLogSource, stringConverter),
529
+ "");
530
+ setProcessLogger(_logger);
531
+ }
532
+
533
+ for (int i = idx; i + 2 < av.argc; ++i)
534
+ {
535
+ av.argv[i] = av.argv[i + 2];
536
+ }
537
+ av.argc -= 2;
538
+ }
539
+ else
540
+ {
541
+ ++idx;
542
+ }
543
+ }
544
+
545
+ if (!name.empty())
546
+ {
547
+ configureService(name);
548
+ }
549
+ #else
550
+ //
551
+ // Check for --daemon, --noclose, --nochdir and --pidfile.
552
+ //
553
+
554
+ bool daemonize = false;
555
+ bool closeFiles = true;
556
+ bool changeDirectory = true;
557
+ string pidFile;
558
+ int idx = 1;
559
+ while (idx < av.argc)
560
+ {
561
+ if (strcmp(av.argv[idx], "--daemon") == 0)
562
+ {
563
+ for (int i = idx; i + 1 < av.argc; ++i)
564
+ {
565
+ av.argv[i] = av.argv[i + 1];
566
+ }
567
+ av.argc -= 1;
568
+
569
+ daemonize = true;
570
+ }
571
+ else if (strcmp(av.argv[idx], "--noclose") == 0)
572
+ {
573
+ for (int i = idx; i + 1 < av.argc; ++i)
574
+ {
575
+ av.argv[i] = av.argv[i + 1];
576
+ }
577
+ av.argc -= 1;
578
+
579
+ closeFiles = false;
580
+ }
581
+ else if (strcmp(av.argv[idx], "--nochdir") == 0)
582
+ {
583
+ for (int i = idx; i + 1 < av.argc; ++i)
584
+ {
585
+ av.argv[i] = av.argv[i + 1];
586
+ }
587
+ av.argc -= 1;
588
+
589
+ changeDirectory = false;
590
+ }
591
+ else if (strcmp(av.argv[idx], "--pidfile") == 0)
592
+ {
593
+ if (idx + 1 < av.argc)
594
+ {
595
+ pidFile = av.argv[idx + 1];
596
+ }
597
+ else
598
+ {
599
+ if (av.argv[0])
600
+ {
601
+ consoleErr << av.argv[0] << ": ";
602
+ }
603
+ consoleErr << "--pidfile must be followed by an argument" << endl;
604
+ return EXIT_FAILURE;
605
+ }
606
+
607
+ for (int i = idx; i + 2 < av.argc; ++i)
608
+ {
609
+ av.argv[i] = av.argv[i + 2];
610
+ }
611
+ av.argc -= 2;
612
+ }
613
+ else
614
+ {
615
+ ++idx;
616
+ }
617
+ }
618
+
619
+ if (!closeFiles && !daemonize)
620
+ {
621
+ if (av.argv[0])
622
+ {
623
+ consoleErr << av.argv[0] << ": ";
624
+ }
625
+ consoleErr << "--noclose must be used with --daemon" << endl;
626
+ return EXIT_FAILURE;
627
+ }
628
+
629
+ if (pidFile.size() > 0 && !daemonize)
630
+ {
631
+ if (av.argv[0])
632
+ {
633
+ consoleErr << av.argv[0] << ": ";
634
+ }
635
+ consoleErr << "--pidfile <file> must be used with --daemon" << endl;
636
+ return EXIT_FAILURE;
637
+ }
638
+
639
+ if (daemonize)
640
+ {
641
+ configureDaemon(changeDirectory, closeFiles, pidFile);
642
+ }
643
+ #endif
644
+
645
+ //
646
+ // If no logger has been set yet, we set it to the process logger. If the
647
+ // process logger is the default logger, we change it to a logger which is
648
+ // using the program name for the prefix.
649
+ //
650
+ if (!_logger)
651
+ {
652
+ _logger = getProcessLogger();
653
+ if (dynamic_pointer_cast<LoggerI>(_logger))
654
+ {
655
+ const bool convert = initData.properties->getIcePropertyAsInt("Ice.LogStdErr.Convert") > 0 &&
656
+ initData.properties->getIceProperty("Ice.StdErr").empty();
657
+
658
+ _logger = make_shared<LoggerI>(initData.properties->getIceProperty("Ice.ProgramName"), "", convert);
659
+ setProcessLogger(_logger);
660
+ }
661
+ }
662
+
663
+ return run(av.argc, av.argv, std::move(initData));
664
+ }
665
+
666
+ #ifdef _WIN32
667
+ int
668
+ Ice::Service::main(int argc, const wchar_t* const argv[], InitializationData initData)
669
+ {
670
+ return main(Ice::argsToStringSeq(argc, argv), std::move(initData));
671
+ }
672
+ #endif
673
+
674
+ int
675
+ Ice::Service::main(const StringSeq& args, InitializationData initData)
676
+ {
677
+ IceInternal::ArgVector av(args);
678
+ return main(av.argc, av.argv, std::move(initData));
679
+ }
680
+
681
+ Ice::CommunicatorPtr
682
+ Ice::Service::communicator() const
683
+ {
684
+ return _communicator;
685
+ }
686
+
687
+ Ice::Service*
688
+ Ice::Service::instance()
689
+ {
690
+ return _instance;
691
+ }
692
+
693
+ bool
694
+ Ice::Service::service() const
695
+ {
696
+ return _service;
697
+ }
698
+
699
+ string
700
+ Ice::Service::name() const
701
+ {
702
+ return _name;
703
+ }
704
+
705
+ int
706
+ Ice::Service::run(int argc, const char* const argv[], InitializationData initData)
707
+ {
708
+ IceInternal::ArgVector av(argc, argv); // copy args
709
+
710
+ if (_service)
711
+ {
712
+ #ifdef _WIN32
713
+ return runService(av.argc, av.argv, std::move(initData));
714
+ #else
715
+ return runDaemon(av.argc, av.argv, std::move(initData));
716
+ #endif
717
+ }
718
+
719
+ //
720
+ // Run as a foreground process.
721
+ //
722
+ int status = EXIT_FAILURE;
723
+ try
724
+ {
725
+ //
726
+ // Create the CtrlCHandler after any potential forking so that signals
727
+ // are initialized properly. We do this before initializing the
728
+ // communicator because we need to ensure that this is done before any
729
+ // additional threads are created.
730
+ //
731
+ ctrlCHandler = new CtrlCHandler;
732
+
733
+ //
734
+ // Initialize the communicator.
735
+ //
736
+ _communicator = initializeCommunicator(av.argc, av.argv, std::move(initData));
737
+
738
+ //
739
+ // Use the configured logger.
740
+ //
741
+ _logger = _communicator->getLogger();
742
+
743
+ //
744
+ // Determines whether we ignore SIGHUP/CTRL_LOGOFF_EVENT.
745
+ //
746
+ _nohup = _communicator->getProperties()->getIcePropertyAsInt("Ice.Nohup") > 0;
747
+
748
+ //
749
+ // Start the service.
750
+ //
751
+ if (start(av.argc, av.argv, status))
752
+ {
753
+ #ifdef ICE_USE_SYSTEMD
754
+ sd_notify(0, "READY=1");
755
+ #endif
756
+ //
757
+ // Wait for service shutdown.
758
+ //
759
+ waitForShutdown();
760
+
761
+ #ifdef ICE_USE_SYSTEMD
762
+ //
763
+ // Inform the service manager that the service is beginning its shutdown.
764
+ //
765
+ sd_notify(0, "STOPPING=1");
766
+ #endif
767
+ //
768
+ // Stop the service.
769
+ //
770
+ if (stop())
771
+ {
772
+ status = EXIT_SUCCESS;
773
+ }
774
+ }
775
+ }
776
+ catch (const Ice::Exception& ex)
777
+ {
778
+ ServiceError err(this);
779
+ err << "service terminating after catching exception:\n" << ex;
780
+ #ifdef ICE_USE_SYSTEMD
781
+ const string msg = err.str();
782
+ sd_notifyf(0, "STATUS=Failed service terminating after catching exception: %s", msg.c_str());
783
+ #endif
784
+ }
785
+ catch (const std::exception& ex)
786
+ {
787
+ ServiceError err(this);
788
+ err << "service terminating after catching exception:\n" << ex;
789
+ #ifdef ICE_USE_SYSTEMD
790
+ const string msg = err.str();
791
+ sd_notifyf(0, "STATUS=Failed service terminating after catching exception: %s", msg.c_str());
792
+ #endif
793
+ }
794
+ catch (...)
795
+ {
796
+ error("service terminating after catching unknown exception");
797
+ #ifdef ICE_USE_SYSTEMD
798
+ sd_notify(0, "STATUS=Failed service terminating after catching unknown exception");
799
+ #endif
800
+ }
801
+
802
+ if (_communicator)
803
+ {
804
+ _communicator->destroy();
805
+ }
806
+
807
+ return status;
808
+ }
809
+
810
+ #ifdef _WIN32
811
+
812
+ void
813
+ Ice::Service::configureService(const string& name)
814
+ {
815
+ _service = true;
816
+ _name = name;
817
+ }
818
+
819
+ void
820
+ Ice::Service::setModuleHandle(HMODULE module)
821
+ {
822
+ SMEventLoggerI::setModuleHandle(module);
823
+ }
824
+
825
+ #else
826
+
827
+ void
828
+ Ice::Service::configureDaemon(bool changeDirectory, bool closeFiles, const string& pidFile)
829
+ {
830
+ _service = true;
831
+ _changeDirectory = changeDirectory;
832
+ _closeFiles = closeFiles;
833
+ _pidFile = pidFile;
834
+ }
835
+
836
+ #endif
837
+
838
+ void
839
+ Ice::Service::handleInterrupt(int sig)
840
+ {
841
+ #ifdef _WIN32
842
+ if (_nohup && sig == CTRL_LOGOFF_EVENT)
843
+ {
844
+ return;
845
+ }
846
+ #else
847
+ if (_nohup && sig == SIGHUP)
848
+ {
849
+ return;
850
+ }
851
+ #endif
852
+
853
+ interrupt();
854
+ }
855
+
856
+ void
857
+ Ice::Service::waitForShutdown()
858
+ {
859
+ if (_communicator)
860
+ {
861
+ enableInterrupt();
862
+ _communicator->waitForShutdown();
863
+ disableInterrupt();
864
+ }
865
+ }
866
+
867
+ bool
868
+ Ice::Service::stop()
869
+ {
870
+ return true;
871
+ }
872
+
873
+ Ice::CommunicatorPtr
874
+ Ice::Service::initializeCommunicator(int& argc, char* argv[], InitializationData initData)
875
+ {
876
+ initData.properties = createProperties(argc, argv, initData.properties);
877
+ return Ice::initialize(std::move(initData));
878
+ }
879
+
880
+ void
881
+ Ice::Service::syserror(const string& msg)
882
+ {
883
+ string errmsg = IceInternal::lastErrorToString();
884
+ if (_logger)
885
+ {
886
+ ostringstream ostr;
887
+ if (!msg.empty())
888
+ {
889
+ ostr << msg << endl;
890
+ }
891
+ if (!errmsg.empty())
892
+ {
893
+ ostr << errmsg;
894
+ }
895
+ _logger->error(ostr.str());
896
+ }
897
+ else
898
+ {
899
+ if (!_name.empty())
900
+ {
901
+ consoleErr << _name << ": ";
902
+ }
903
+ if (!msg.empty())
904
+ {
905
+ consoleErr << msg << endl;
906
+ }
907
+ if (!errmsg.empty())
908
+ {
909
+ consoleErr << errmsg;
910
+ }
911
+ }
912
+ }
913
+
914
+ void
915
+ Ice::Service::error(const string& msg)
916
+ {
917
+ if (_logger)
918
+ {
919
+ _logger->error(msg);
920
+ }
921
+ else
922
+ {
923
+ if (!_name.empty())
924
+ {
925
+ consoleErr << _name << ": ";
926
+ }
927
+ consoleErr << "error: " << msg << endl;
928
+ }
929
+ }
930
+
931
+ void
932
+ Ice::Service::warning(const string& msg)
933
+ {
934
+ if (_logger)
935
+ {
936
+ _logger->warning(msg);
937
+ }
938
+ else
939
+ {
940
+ if (!_name.empty())
941
+ {
942
+ consoleErr << _name << ": ";
943
+ }
944
+ consoleErr << "warning: " << msg << endl;
945
+ }
946
+ }
947
+
948
+ void
949
+ Ice::Service::trace(const string& msg)
950
+ {
951
+ if (_logger)
952
+ {
953
+ _logger->trace("", msg);
954
+ }
955
+ else
956
+ {
957
+ consoleErr << msg << endl;
958
+ }
959
+ }
960
+
961
+ void
962
+ Ice::Service::print(const string& msg)
963
+ {
964
+ if (_logger)
965
+ {
966
+ _logger->print(msg);
967
+ }
968
+ else
969
+ {
970
+ consoleErr << msg << endl;
971
+ }
972
+ }
973
+
974
+ void
975
+ Ice::Service::enableInterrupt()
976
+ {
977
+ ctrlCHandler->setCallback(ctrlCHandlerCallback);
978
+ }
979
+
980
+ void
981
+ Ice::Service::disableInterrupt()
982
+ {
983
+ ctrlCHandler->setCallback(nullptr);
984
+ }
985
+
986
+ #ifdef _WIN32
987
+
988
+ int
989
+ Ice::Service::runService(int argc, const char* const argv[], InitializationData initData)
990
+ {
991
+ assert(_service);
992
+
993
+ if (_name.empty())
994
+ {
995
+ error("invalid name for Win32 service");
996
+ return EXIT_FAILURE;
997
+ }
998
+
999
+ //
1000
+ // Arguments passed to the executable are not passed to the service's main function,
1001
+ // so save them now and serviceMain will merge them later.
1002
+ //
1003
+ for (int idx = 1; idx < argc; ++idx)
1004
+ {
1005
+ _serviceArgs.push_back(argv[idx]);
1006
+ }
1007
+
1008
+ _initData = std::move(initData);
1009
+
1010
+ //
1011
+ // Don't need to use a wide string converter as the wide string is passed
1012
+ // to Windows API.
1013
+ //
1014
+ const wstring serviceName = stringToWstring(_name, getProcessStringConverter());
1015
+ SERVICE_TABLE_ENTRYW ste[] = {
1016
+ {const_cast<wchar_t*>(serviceName.c_str()), Ice_Service_ServiceMain},
1017
+ {0, 0},
1018
+ };
1019
+
1020
+ //
1021
+ // Start the service.
1022
+ //
1023
+ if (!StartServiceCtrlDispatcherW(ste))
1024
+ {
1025
+ syserror("unable to start service control dispatcher");
1026
+ return EXIT_FAILURE;
1027
+ }
1028
+
1029
+ return EXIT_SUCCESS;
1030
+ }
1031
+
1032
+ void
1033
+ Ice::Service::terminateService(DWORD exitCode)
1034
+ {
1035
+ serviceStatusManager->stopUpdate();
1036
+ delete serviceStatusManager;
1037
+ serviceStatusManager = 0;
1038
+
1039
+ SERVICE_STATUS status;
1040
+
1041
+ status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
1042
+ status.dwCurrentState = SERVICE_STOPPED;
1043
+ status.dwControlsAccepted = 0;
1044
+ if (exitCode != 0)
1045
+ {
1046
+ status.dwWin32ExitCode = ERROR_SERVICE_SPECIFIC_ERROR;
1047
+ }
1048
+ else
1049
+ {
1050
+ status.dwWin32ExitCode = 0;
1051
+ }
1052
+ status.dwServiceSpecificExitCode = exitCode;
1053
+ status.dwCheckPoint = 0;
1054
+ status.dwWaitHint = 0;
1055
+
1056
+ SetServiceStatus(_statusHandle, &status);
1057
+ }
1058
+
1059
+ bool
1060
+ Ice::Service::waitForServiceState(SC_HANDLE hService, DWORD pendingState, SERVICE_STATUS& status)
1061
+ {
1062
+ if (!QueryServiceStatus(hService, &status))
1063
+ {
1064
+ return false;
1065
+ }
1066
+
1067
+ //
1068
+ // Save the tick count and initial checkpoint.
1069
+ //
1070
+ DWORD startTickCount = GetTickCount();
1071
+ DWORD oldCheckPoint = status.dwCheckPoint;
1072
+
1073
+ //
1074
+ // Loop while the service is in the pending state.
1075
+ //
1076
+ while (status.dwCurrentState == pendingState)
1077
+ {
1078
+ //
1079
+ // Do not wait longer than the wait hint. A good interval is
1080
+ // one tenth the wait hint, but no less than 1 second and no
1081
+ // more than 10 seconds.
1082
+ //
1083
+
1084
+ DWORD waitTime = status.dwWaitHint / 10;
1085
+
1086
+ if (waitTime < 1000)
1087
+ {
1088
+ waitTime = 1000;
1089
+ }
1090
+ else if (waitTime > 10000)
1091
+ {
1092
+ waitTime = 10000;
1093
+ }
1094
+
1095
+ Sleep(waitTime);
1096
+
1097
+ //
1098
+ // Check the status again.
1099
+ //
1100
+ if (!QueryServiceStatus(hService, &status))
1101
+ {
1102
+ return false;
1103
+ }
1104
+
1105
+ if (status.dwCheckPoint > oldCheckPoint)
1106
+ {
1107
+ //
1108
+ // The service is making progress.
1109
+ //
1110
+ startTickCount = GetTickCount();
1111
+ oldCheckPoint = status.dwCheckPoint;
1112
+ }
1113
+ else
1114
+ {
1115
+ if (GetTickCount() - startTickCount > status.dwWaitHint)
1116
+ {
1117
+ //
1118
+ // No progress made within the wait hint.
1119
+ //
1120
+ break;
1121
+ }
1122
+ }
1123
+ }
1124
+
1125
+ return true;
1126
+ }
1127
+
1128
+ void
1129
+ Ice::Service::showServiceStatus(const string& msg, SERVICE_STATUS& status)
1130
+ {
1131
+ string state;
1132
+ switch (status.dwCurrentState)
1133
+ {
1134
+ case SERVICE_STOPPED:
1135
+ state = "STOPPED";
1136
+ break;
1137
+ case SERVICE_START_PENDING:
1138
+ state = "START PENDING";
1139
+ break;
1140
+ case SERVICE_STOP_PENDING:
1141
+ state = "STOP PENDING";
1142
+ break;
1143
+ case SERVICE_RUNNING:
1144
+ state = "RUNNING";
1145
+ break;
1146
+ case SERVICE_CONTINUE_PENDING:
1147
+ state = "CONTINUE PENDING";
1148
+ break;
1149
+ case SERVICE_PAUSE_PENDING:
1150
+ state = "PAUSE PENDING";
1151
+ break;
1152
+ case SERVICE_PAUSED:
1153
+ state = "PAUSED";
1154
+ break;
1155
+ default:
1156
+ state = "UNKNOWN";
1157
+ break;
1158
+ }
1159
+
1160
+ ServiceTrace tr(this);
1161
+ tr << msg << "\n Current state: " << state << "\n Exit code: " << status.dwWin32ExitCode
1162
+ << "\n Service specific exit code: " << status.dwServiceSpecificExitCode
1163
+ << "\n Check point: " << status.dwCheckPoint << "\n Wait hint: " << status.dwWaitHint;
1164
+ }
1165
+
1166
+ void
1167
+ Ice::Service::serviceMain(int argc, const wchar_t* const argv[])
1168
+ {
1169
+ ctrlCHandler = new CtrlCHandler;
1170
+
1171
+ //
1172
+ // Register the control handler function.
1173
+ //
1174
+ _statusHandle = RegisterServiceCtrlHandlerW(argv[0], Ice_Service_CtrlHandler);
1175
+ if (_statusHandle == 0)
1176
+ {
1177
+ syserror("unable to register service control handler");
1178
+ return;
1179
+ }
1180
+
1181
+ //
1182
+ // Create the service status manager and start a thread to periodically
1183
+ // update the service's status with the service control manager (SCM).
1184
+ // The SCM must receive periodic updates otherwise it assumes that
1185
+ // initialization failed and terminates the service.
1186
+ //
1187
+ serviceStatusManager = new ServiceStatusManager(_statusHandle);
1188
+ serviceStatusManager->startUpdate(SERVICE_START_PENDING);
1189
+
1190
+ //
1191
+ // Don't need to pass a wide string converter in the argv conversions
1192
+ // as argv come from Windows API.
1193
+ //
1194
+ const Ice::StringConverterPtr converter = Ice::getProcessStringConverter();
1195
+
1196
+ //
1197
+ // Merge the executable's arguments with the service's arguments.
1198
+ //
1199
+ char** args = new char*[_serviceArgs.size() + argc];
1200
+
1201
+ //
1202
+ // First argument is argv[0] the serviceName
1203
+ //
1204
+ const string serviceName = wstringToString(argv[0], converter);
1205
+ args[0] = const_cast<char*>(serviceName.c_str());
1206
+
1207
+ int i = 1;
1208
+ for (vector<string>::iterator p = _serviceArgs.begin(); p != _serviceArgs.end(); ++p)
1209
+ {
1210
+ args[i++] = const_cast<char*>(p->c_str());
1211
+ }
1212
+
1213
+ //
1214
+ // Convert wide string wchar_t** argv to a sequence of narrow strings and merge
1215
+ // the converted sequence into the args array.
1216
+ //
1217
+ vector<string> executableArgs;
1218
+ for (int j = 1; j < argc; ++j)
1219
+ {
1220
+ executableArgs.push_back(Ice::wstringToString(argv[j], converter));
1221
+ }
1222
+ for (vector<string>::iterator p = executableArgs.begin(); p != executableArgs.end(); ++p)
1223
+ {
1224
+ args[i++] = const_cast<char*>(p->c_str());
1225
+ }
1226
+ argc += static_cast<int>(_serviceArgs.size());
1227
+
1228
+ //
1229
+ // If we can't initialize a communicator, then stop immediately.
1230
+ //
1231
+ try
1232
+ {
1233
+ _communicator = initializeCommunicator(argc, args, _initData);
1234
+ }
1235
+ catch (const Ice::Exception& ex)
1236
+ {
1237
+ delete[] args;
1238
+ {
1239
+ ServiceError err(this);
1240
+ err << "exception occurred while initializing a communicator:\n" << ex;
1241
+ }
1242
+ terminateService(EXIT_FAILURE);
1243
+ return;
1244
+ }
1245
+ catch (...)
1246
+ {
1247
+ delete[] args;
1248
+ error("unknown exception occurred while initializing a communicator");
1249
+ terminateService(EXIT_FAILURE);
1250
+ return;
1251
+ }
1252
+
1253
+ //
1254
+ // Use the configured logger.
1255
+ //
1256
+ _logger = _communicator->getLogger();
1257
+
1258
+ //
1259
+ // Determines whether we ignore SIGHUP/CTRL_LOGOFF_EVENT.
1260
+ //
1261
+ _nohup = _communicator->getProperties()->getIcePropertyAsInt("Ice.Nohup") > 0;
1262
+
1263
+ DWORD status = EXIT_FAILURE;
1264
+ try
1265
+ {
1266
+ int tmpStatus = EXIT_FAILURE;
1267
+ if (start(argc, args, tmpStatus))
1268
+ {
1269
+ trace("Service started successfully.");
1270
+
1271
+ //
1272
+ // Change the current status from START_PENDING to RUNNING.
1273
+ //
1274
+ serviceStatusManager->stopUpdate();
1275
+ serviceStatusManager->changeStatus(SERVICE_RUNNING, SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN);
1276
+
1277
+ //
1278
+ // Wait for the service to be shut down.
1279
+ //
1280
+ waitForShutdown();
1281
+
1282
+ //
1283
+ // Give the service a chance to clean up.
1284
+ //
1285
+ if (stop())
1286
+ {
1287
+ status = EXIT_SUCCESS;
1288
+ }
1289
+ }
1290
+ else
1291
+ {
1292
+ status = tmpStatus;
1293
+ }
1294
+ }
1295
+ catch (const Ice::Exception& ex)
1296
+ {
1297
+ ServiceError err(this);
1298
+ err << "service terminating after catching exception:\n" << ex;
1299
+ }
1300
+ catch (const std::exception& ex)
1301
+ {
1302
+ ServiceError err(this);
1303
+ err << "service terminating after catching exception:\n" << ex;
1304
+ }
1305
+ catch (...)
1306
+ {
1307
+ error("service terminating after catching unknown exception");
1308
+ }
1309
+
1310
+ delete[] args;
1311
+
1312
+ assert(_communicator);
1313
+ _communicator->destroy();
1314
+
1315
+ terminateService(status);
1316
+ }
1317
+
1318
+ void
1319
+ Ice::Service::control(int ctrl)
1320
+ {
1321
+ assert(serviceStatusManager);
1322
+
1323
+ switch (ctrl)
1324
+ {
1325
+ case SERVICE_CONTROL_SHUTDOWN:
1326
+ case SERVICE_CONTROL_STOP:
1327
+ {
1328
+ serviceStatusManager->startUpdate(SERVICE_STOP_PENDING);
1329
+ shutdown();
1330
+ break;
1331
+ }
1332
+ default:
1333
+ {
1334
+ if (ctrl != SERVICE_CONTROL_INTERROGATE)
1335
+ {
1336
+ ServiceError err(this);
1337
+ err << "unrecognized service control code " << ctrl;
1338
+ }
1339
+
1340
+ serviceStatusManager->reportStatus();
1341
+ break;
1342
+ }
1343
+ }
1344
+ }
1345
+
1346
+ ServiceStatusManager::ServiceStatusManager(SERVICE_STATUS_HANDLE handle) : _handle(handle), _stopped(false)
1347
+ {
1348
+ _status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
1349
+ _status.dwControlsAccepted = 0;
1350
+ _status.dwWin32ExitCode = 0;
1351
+ _status.dwServiceSpecificExitCode = 0;
1352
+ _status.dwCheckPoint = 0;
1353
+ _status.dwWaitHint = 0;
1354
+ }
1355
+
1356
+ void
1357
+ ServiceStatusManager::startUpdate(DWORD state)
1358
+ {
1359
+ lock_guard lock(_mutex);
1360
+
1361
+ assert(state == SERVICE_START_PENDING || state == SERVICE_STOP_PENDING);
1362
+ assert(!_thread.joinable());
1363
+
1364
+ _status.dwCurrentState = state;
1365
+ _status.dwControlsAccepted = 0; // Don't accept any other control messages while pending.
1366
+
1367
+ _stopped = false;
1368
+
1369
+ _thread = std::thread(&ServiceStatusManager::run, this);
1370
+ }
1371
+
1372
+ void
1373
+ ServiceStatusManager::stopUpdate()
1374
+ {
1375
+ std::thread thread;
1376
+
1377
+ {
1378
+ lock_guard lock(_mutex);
1379
+
1380
+ if (_thread.joinable())
1381
+ {
1382
+ _stopped = true;
1383
+ _conditionVariable.notify_one();
1384
+ thread = std::move(_thread);
1385
+ }
1386
+ }
1387
+
1388
+ thread.join();
1389
+ }
1390
+
1391
+ void
1392
+ ServiceStatusManager::changeStatus(DWORD state, DWORD controlsAccepted)
1393
+ {
1394
+ lock_guard lock(_mutex);
1395
+
1396
+ _status.dwCurrentState = state;
1397
+ _status.dwControlsAccepted = controlsAccepted;
1398
+
1399
+ SetServiceStatus(_handle, &_status);
1400
+ }
1401
+
1402
+ void
1403
+ ServiceStatusManager::reportStatus()
1404
+ {
1405
+ lock_guard lock(_mutex);
1406
+
1407
+ SetServiceStatus(_handle, &_status);
1408
+ }
1409
+
1410
+ void
1411
+ ServiceStatusManager::run()
1412
+ {
1413
+ unique_lock lock(_mutex);
1414
+
1415
+ auto delay = chrono::milliseconds(1000);
1416
+ _status.dwWaitHint = 2000;
1417
+ _status.dwCheckPoint = 0;
1418
+
1419
+ while (!_stopped)
1420
+ {
1421
+ _status.dwCheckPoint++;
1422
+ SetServiceStatus(_handle, &_status);
1423
+ _conditionVariable.wait_for(lock, delay);
1424
+ }
1425
+ }
1426
+
1427
+ #else
1428
+
1429
+ int
1430
+ Ice::Service::runDaemon(int argc, char* argv[], InitializationData initData)
1431
+ {
1432
+ assert(_service);
1433
+
1434
+ //
1435
+ // Create a pipe that is used to notify the parent when the child is ready.
1436
+ //
1437
+ SOCKET fds[2];
1438
+ IceInternal::createPipe(fds);
1439
+
1440
+ //
1441
+ // Fork the child.
1442
+ //
1443
+ pid_t pid = fork();
1444
+ if (pid < 0)
1445
+ {
1446
+ if (argv[0])
1447
+ {
1448
+ consoleErr << argv[0] << ": ";
1449
+ }
1450
+ consoleErr << IceInternal::errorToString(errno) << endl;
1451
+ return EXIT_FAILURE;
1452
+ }
1453
+
1454
+ if (pid != 0)
1455
+ {
1456
+ //
1457
+ // Parent process.
1458
+ //
1459
+
1460
+ //
1461
+ // Close an unused end of the pipe.
1462
+ //
1463
+ close(fds[1]);
1464
+
1465
+ //
1466
+ // Wait for the child to write a byte to the pipe to indicate that it
1467
+ // is ready to receive requests, or that an error occurred.
1468
+ //
1469
+ char c = 0;
1470
+ while (true)
1471
+ {
1472
+ if (read(fds[0], &c, 1) == -1)
1473
+ {
1474
+ if (IceInternal::interrupted())
1475
+ {
1476
+ continue;
1477
+ }
1478
+
1479
+ if (argv[0])
1480
+ {
1481
+ consoleErr << argv[0] << ": ";
1482
+ }
1483
+ consoleErr << IceInternal::errorToString(errno) << endl;
1484
+ _exit(EXIT_FAILURE);
1485
+ }
1486
+ break;
1487
+ }
1488
+
1489
+ if (c != 0)
1490
+ {
1491
+ //
1492
+ // Read an error message.
1493
+ //
1494
+ ssize_t rs;
1495
+ char s[16];
1496
+ string message;
1497
+ while ((rs = read(fds[0], &s, 16)) > 0)
1498
+ {
1499
+ message.append(s, static_cast<size_t>(rs));
1500
+ }
1501
+
1502
+ if (argv[0])
1503
+ {
1504
+ consoleErr << argv[0] << ": ";
1505
+ }
1506
+
1507
+ if (rs == -1)
1508
+ {
1509
+ consoleErr << "I/O error while reading error message from child:\n"
1510
+ << IceInternal::errorToString(errno);
1511
+ }
1512
+ else
1513
+ {
1514
+ consoleErr << "failure occurred in daemon";
1515
+ if (!message.empty())
1516
+ {
1517
+ consoleErr << ":\n" << message;
1518
+ }
1519
+ }
1520
+ consoleErr << endl;
1521
+ _exit(EXIT_FAILURE);
1522
+ }
1523
+
1524
+ _exit(EXIT_SUCCESS);
1525
+ }
1526
+
1527
+ //
1528
+ // Child process.
1529
+ //
1530
+
1531
+ string errMsg;
1532
+ int status = EXIT_FAILURE;
1533
+ try
1534
+ {
1535
+ //
1536
+ // Become a session and process group leader.
1537
+ //
1538
+ if (setsid() == -1)
1539
+ {
1540
+ throw SyscallException{__FILE__, __LINE__, "setsid failed", errno};
1541
+ }
1542
+
1543
+ //
1544
+ // Ignore SIGHUP so that the grandchild process is not sent SIGHUP when this
1545
+ // process exits.
1546
+ //
1547
+ signal(SIGHUP, SIG_IGN); // NOLINT(cert-err33-c)
1548
+
1549
+ //
1550
+ // Fork again to eliminate the possibility of acquiring a controlling terminal.
1551
+ //
1552
+ pid = fork();
1553
+ if (pid < 0)
1554
+ {
1555
+ throw SyscallException{__FILE__, __LINE__, "fork failed", errno};
1556
+ }
1557
+ if (pid != 0)
1558
+ {
1559
+ exit(0);
1560
+ }
1561
+
1562
+ if (_changeDirectory)
1563
+ {
1564
+ //
1565
+ // Change the working directory.
1566
+ //
1567
+ if (chdir("/") != 0)
1568
+ {
1569
+ throw SyscallException{__FILE__, __LINE__, "chdir failed", errno};
1570
+ }
1571
+ }
1572
+
1573
+ vector<int> fdsToClose;
1574
+ if (_closeFiles)
1575
+ {
1576
+ //
1577
+ // Take a snapshot of the open file descriptors. We don't actually close these
1578
+ // descriptors until after the communicator is initialized, so that plug-ins
1579
+ // have an opportunity to use stdin/stdout/stderr if necessary. This also
1580
+ // conveniently allows the Ice.PrintProcessId property to work as expected.
1581
+ //
1582
+ int fdMax = static_cast<int>(sysconf(_SC_OPEN_MAX));
1583
+ if (fdMax <= 0)
1584
+ {
1585
+ throw SyscallException{__FILE__, __LINE__, "sysconf failed", errno};
1586
+ }
1587
+
1588
+ for (int i = 0; i < fdMax; ++i)
1589
+ {
1590
+ if (fcntl(i, F_GETFL) != -1)
1591
+ {
1592
+ //
1593
+ // Don't close the write end of the pipe.
1594
+ //
1595
+ if (i != fds[1])
1596
+ {
1597
+ fdsToClose.push_back(i);
1598
+ }
1599
+ }
1600
+ }
1601
+ }
1602
+
1603
+ //
1604
+ // Create the CtrlCHandler after forking the child so that signals are initialized
1605
+ // properly. We do this before initializing the communicator because we need to
1606
+ // ensure that signals are initialized before additional threads are created. The
1607
+ // communicator thread pools currently use lazy initialization, but a thread can
1608
+ // be created to monitor connections.
1609
+ //
1610
+ ctrlCHandler = new CtrlCHandler;
1611
+
1612
+ //
1613
+ // Initialize the communicator.
1614
+ //
1615
+ _communicator = initializeCommunicator(argc, argv, std::move(initData));
1616
+
1617
+ if (_closeFiles)
1618
+ {
1619
+ //
1620
+ // Close unnecessary file descriptors.
1621
+ //
1622
+ PropertiesPtr properties = _communicator->getProperties();
1623
+ string stdOut = properties->getIceProperty("Ice.StdOut");
1624
+ string stdErr = properties->getIceProperty("Ice.StdErr");
1625
+
1626
+ for (int& p : fdsToClose)
1627
+ {
1628
+ //
1629
+ // NOTE: Do not close stdout if Ice.StdOut is defined. Likewise for Ice.StdErr.
1630
+ //
1631
+ if ((p == 1 && !stdOut.empty()) || (p == 2 && !stdErr.empty()))
1632
+ {
1633
+ continue;
1634
+ }
1635
+ close(p);
1636
+ }
1637
+
1638
+ //
1639
+ // Associate stdin, stdout and stderr with /dev/null.
1640
+ //
1641
+ int fd = open("/dev/null", O_RDWR);
1642
+ assert(fd == 0);
1643
+ if (fd != 0)
1644
+ {
1645
+ throw SyscallException{__FILE__, __LINE__, "open /dev/null failed", errno};
1646
+ }
1647
+ if (stdOut.empty())
1648
+ {
1649
+ fd = dup2(0, 1);
1650
+ assert(fd == 1);
1651
+ if (fd != 1)
1652
+ {
1653
+ throw SyscallException{__FILE__, __LINE__, "dup2(0, 1) failed", errno};
1654
+ }
1655
+ }
1656
+ if (stdErr.empty())
1657
+ {
1658
+ fd = dup2(1, 2);
1659
+ assert(fd == 2);
1660
+ if (fd != 2)
1661
+ {
1662
+ throw SyscallException{__FILE__, __LINE__, "dup2(1, 2) failed", errno};
1663
+ }
1664
+ }
1665
+ }
1666
+
1667
+ //
1668
+ // Write PID
1669
+ //
1670
+ if (_pidFile.size() > 0)
1671
+ {
1672
+ ofstream of(_pidFile.c_str());
1673
+ of << getpid() << endl;
1674
+
1675
+ if (!of)
1676
+ {
1677
+ warning("Could not write PID file " + _pidFile);
1678
+ }
1679
+ }
1680
+
1681
+ //
1682
+ // Use the configured logger.
1683
+ //
1684
+ _logger = _communicator->getLogger();
1685
+
1686
+ //
1687
+ // Start the service.
1688
+ //
1689
+ if (start(argc, argv, status))
1690
+ {
1691
+ //
1692
+ // Notify the parent that the child is ready.
1693
+ //
1694
+ char c = 0;
1695
+ while (true)
1696
+ {
1697
+ if (write(fds[1], &c, 1) == -1)
1698
+ {
1699
+ if (IceInternal::interrupted())
1700
+ {
1701
+ continue;
1702
+ }
1703
+ }
1704
+ break;
1705
+ }
1706
+ close(fds[1]);
1707
+ fds[1] = -1;
1708
+
1709
+ //
1710
+ // Wait for service shutdown.
1711
+ //
1712
+ waitForShutdown();
1713
+
1714
+ //
1715
+ // Stop the service.
1716
+ //
1717
+ if (stop())
1718
+ {
1719
+ status = EXIT_SUCCESS;
1720
+ }
1721
+ }
1722
+ }
1723
+ catch (const Ice::Exception& ex)
1724
+ {
1725
+ ServiceError err(this);
1726
+ err << "service terminating after catching exception:\n" << ex;
1727
+ errMsg = err.str();
1728
+ }
1729
+ catch (const std::exception& ex)
1730
+ {
1731
+ ServiceError err(this);
1732
+ err << "service terminating after catching exception:\n" << ex;
1733
+ errMsg = err.str();
1734
+ }
1735
+ catch (...)
1736
+ {
1737
+ errMsg = "service terminating after catching unknown exception";
1738
+ error(errMsg);
1739
+ }
1740
+
1741
+ //
1742
+ // If the service failed and the pipe to the parent is still open,
1743
+ // then send an error notification to the parent.
1744
+ //
1745
+ if (status != EXIT_SUCCESS && fds[1] != -1)
1746
+ {
1747
+ char c = 1;
1748
+ while (true)
1749
+ {
1750
+ if (write(fds[1], &c, 1) == -1)
1751
+ {
1752
+ if (IceInternal::interrupted())
1753
+ {
1754
+ continue;
1755
+ }
1756
+ }
1757
+ break;
1758
+ }
1759
+ const char* msg = errMsg.c_str();
1760
+ size_t len = strlen(msg) + 1; // Include null byte
1761
+ size_t pos = 0;
1762
+ while (len > 0)
1763
+ {
1764
+ ssize_t n = write(fds[1], &msg[pos], len);
1765
+ if (n == -1)
1766
+ {
1767
+ if (IceInternal::interrupted())
1768
+ {
1769
+ continue;
1770
+ }
1771
+ else
1772
+ {
1773
+ break;
1774
+ }
1775
+ }
1776
+ len -= static_cast<size_t>(n);
1777
+ pos += static_cast<size_t>(n);
1778
+ }
1779
+ close(fds[1]);
1780
+ }
1781
+
1782
+ if (_communicator)
1783
+ {
1784
+ _communicator->destroy();
1785
+ }
1786
+
1787
+ return status;
1788
+ }
1789
+
1790
+ #endif