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,1715 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #include "WSTransceiver.h"
4
+ #include "Base64.h"
5
+ #include "Endian.h"
6
+ #include "HttpParser.h"
7
+ #include "Ice/Buffer.h"
8
+ #include "Ice/Connection.h"
9
+ #include "Ice/LocalExceptions.h"
10
+ #include "Ice/LoggerUtil.h"
11
+ #include "Ice/StringUtil.h"
12
+ #include "ProtocolInstance.h"
13
+ #include "Random.h"
14
+ #include "SHA1.h"
15
+
16
+ #include <climits>
17
+ #include <cstdint>
18
+
19
+ using namespace std;
20
+ using namespace Ice;
21
+ using namespace IceInternal;
22
+
23
+ //
24
+ // WebSocket opcodes
25
+ //
26
+ #define OP_CONT 0x0 // Continuation frame
27
+ #define OP_TEXT 0x1 // Text frame
28
+ #define OP_DATA 0x2 // Data frame
29
+ #define OP_RES_0x3 0x3 // Reserved
30
+ #define OP_RES_0x4 0x4 // Reserved
31
+ #define OP_RES_0x5 0x5 // Reserved
32
+ #define OP_RES_0x6 0x6 // Reserved
33
+ #define OP_RES_0x7 0x7 // Reserved
34
+ #define OP_CLOSE 0x8 // Connection close
35
+ #define OP_PING 0x9 // Ping
36
+ #define OP_PONG 0xA // Pong
37
+ #define OP_RES_0xB 0xB // Reserved
38
+ #define OP_RES_0xC 0xC // Reserved
39
+ #define OP_RES_0xD 0xD // Reserved
40
+ #define OP_RES_0xE 0xE // Reserved
41
+ #define OP_RES_0xF 0xF // Reserved
42
+ #define FLAG_FINAL 0x80 // Last frame
43
+ #define FLAG_MASKED 0x80 // Payload is masked
44
+
45
+ #define CLOSURE_NORMAL 1000
46
+ #define CLOSURE_SHUTDOWN 1001
47
+ #define CLOSURE_PROTOCOL_ERROR 1002
48
+
49
+ namespace
50
+ {
51
+ const string _iceProtocol = "ice.zeroc.com"; // NOLINT(cert-err58-cpp)
52
+ const string _wsUUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; // NOLINT(cert-err58-cpp)
53
+
54
+ //
55
+ // Rename to avoid conflict with OS 10.10 htonll
56
+ //
57
+ void ice_htonll(int64_t v, byte* dest)
58
+ {
59
+ //
60
+ // Transfer a 64-bit integer in network (big-endian) order.
61
+ //
62
+ if constexpr (endian::native == endian::big)
63
+ {
64
+ const byte* src = reinterpret_cast<const byte*>(&v);
65
+ *dest++ = *src++;
66
+ *dest++ = *src++;
67
+ *dest++ = *src++;
68
+ *dest++ = *src++;
69
+ *dest++ = *src++;
70
+ *dest++ = *src++;
71
+ *dest++ = *src++;
72
+ *dest = *src;
73
+ }
74
+ else
75
+ {
76
+ const byte* src = reinterpret_cast<const byte*>(&v) + sizeof(int64_t) - 1;
77
+ *dest++ = *src--;
78
+ *dest++ = *src--;
79
+ *dest++ = *src--;
80
+ *dest++ = *src--;
81
+ *dest++ = *src--;
82
+ *dest++ = *src--;
83
+ *dest++ = *src--;
84
+ *dest = *src;
85
+ }
86
+ }
87
+
88
+ //
89
+ // Rename to avoid conflict with OS 10.10 nlltoh
90
+ //
91
+ int64_t ice_nlltoh(const byte* src)
92
+ {
93
+ int64_t v;
94
+
95
+ //
96
+ // Extract a 64-bit integer in network (big-endian) order.
97
+ //
98
+ if constexpr (endian::native == endian::big)
99
+ {
100
+ byte* dest = reinterpret_cast<byte*>(&v);
101
+ *dest++ = *src++;
102
+ *dest++ = *src++;
103
+ *dest++ = *src++;
104
+ *dest++ = *src++;
105
+ *dest++ = *src++;
106
+ *dest++ = *src++;
107
+ *dest++ = *src++;
108
+ *dest = *src;
109
+ }
110
+ else
111
+ {
112
+ byte* dest = reinterpret_cast<byte*>(&v) + sizeof(int64_t) - 1;
113
+ *dest-- = *src++;
114
+ *dest-- = *src++;
115
+ *dest-- = *src++;
116
+ *dest-- = *src++;
117
+ *dest-- = *src++;
118
+ *dest-- = *src++;
119
+ *dest-- = *src++;
120
+ *dest = *src;
121
+ }
122
+
123
+ return v;
124
+ }
125
+ }
126
+
127
+ NativeInfoPtr
128
+ IceInternal::WSTransceiver::getNativeInfo()
129
+ {
130
+ return _delegate->getNativeInfo();
131
+ }
132
+
133
+ #if defined(ICE_USE_IOCP)
134
+ AsyncInfo*
135
+ IceInternal::WSTransceiver::getAsyncInfo(SocketOperation status)
136
+ {
137
+ return _delegate->getNativeInfo()->getAsyncInfo(status);
138
+ }
139
+ #endif
140
+
141
+ SocketOperation
142
+ IceInternal::WSTransceiver::initialize(Buffer& readBuffer, Buffer& writeBuffer)
143
+ {
144
+ //
145
+ // Delegate logs exceptions that occur during initialize(), so there's no need to trap them here.
146
+ //
147
+ if (_state == StateInitializeDelegate)
148
+ {
149
+ SocketOperation op = _delegate->initialize(readBuffer, writeBuffer);
150
+ if (op != SocketOperationNone)
151
+ {
152
+ return op;
153
+ }
154
+ _state = StateConnected;
155
+ }
156
+
157
+ try
158
+ {
159
+ if (_state == StateConnected)
160
+ {
161
+ //
162
+ // We don't know how much we'll need to read.
163
+ //
164
+ _readBuffer.b.resize(_readBufferSize);
165
+ _readI = _readBuffer.i = _readBuffer.b.begin();
166
+
167
+ //
168
+ // The server waits for the client's upgrade request, the
169
+ // client sends the upgrade request.
170
+ //
171
+ _state = StateUpgradeRequestPending;
172
+ if (!_incoming)
173
+ {
174
+ //
175
+ // Compose the upgrade request.
176
+ //
177
+ ostringstream out;
178
+ out << "GET " << _resource << " HTTP/1.1\r\n"
179
+ << "Host: " << _host << "\r\n"
180
+ << "Upgrade: websocket\r\n"
181
+ << "Connection: Upgrade\r\n"
182
+ << "Sec-WebSocket-Protocol: " << _iceProtocol << "\r\n"
183
+ << "Sec-WebSocket-Version: 13\r\n"
184
+ << "Sec-WebSocket-Key: ";
185
+
186
+ //
187
+ // The value for Sec-WebSocket-Key is a 16-byte random number,
188
+ // encoded with Base64.
189
+ //
190
+ vector<byte> key(16);
191
+ IceInternal::generateRandom(reinterpret_cast<char*>(&key[0]), key.size());
192
+ _key = IceInternal::Base64::encode(key);
193
+ out << _key << "\r\n\r\n"; // EOM
194
+
195
+ string str = out.str();
196
+ _writeBuffer.b.resize(str.size());
197
+ memcpy(&_writeBuffer.b[0], str.c_str(), str.size());
198
+ _writeBuffer.i = _writeBuffer.b.begin();
199
+ }
200
+ }
201
+
202
+ //
203
+ // Try to write the client's upgrade request.
204
+ //
205
+ if (_state == StateUpgradeRequestPending && !_incoming)
206
+ {
207
+ if (_writeBuffer.i < _writeBuffer.b.end())
208
+ {
209
+ SocketOperation s = _delegate->write(_writeBuffer);
210
+ if (s)
211
+ {
212
+ return s;
213
+ }
214
+ }
215
+ assert(_writeBuffer.i == _writeBuffer.b.end());
216
+ _state = StateUpgradeResponsePending;
217
+
218
+ if (_instance->traceLevel() >= 1)
219
+ {
220
+ Trace out(_instance->logger(), _instance->traceCategory());
221
+ out << "sent " << protocol() << " connection HTTP upgrade request\n" << toString();
222
+ }
223
+ }
224
+
225
+ while (true)
226
+ {
227
+ if (_readBuffer.i < _readBuffer.b.end())
228
+ {
229
+ SocketOperation s = _delegate->read(_readBuffer);
230
+ if (s == SocketOperationWrite || _readBuffer.i == _readBuffer.b.begin())
231
+ {
232
+ return s;
233
+ }
234
+ }
235
+
236
+ //
237
+ // Try to read the client's upgrade request or the server's response.
238
+ //
239
+ if ((_state == StateUpgradeRequestPending && _incoming) ||
240
+ (_state == StateUpgradeResponsePending && !_incoming))
241
+ {
242
+ //
243
+ // Check if we have enough data for a complete message.
244
+ //
245
+ const byte* p = _parser->isCompleteMessage(&_readBuffer.b[0], _readBuffer.i);
246
+ if (!p)
247
+ {
248
+ if (_readBuffer.i < _readBuffer.b.end())
249
+ {
250
+ return SocketOperationRead;
251
+ }
252
+
253
+ //
254
+ // Enlarge the buffer and try to read more.
255
+ //
256
+ const auto oldSize = static_cast<size_t>(_readBuffer.i - _readBuffer.b.begin());
257
+ if (oldSize + 1024 > static_cast<size_t>(_instance->messageSizeMax()))
258
+ {
259
+ Ex::throwMemoryLimitException(__FILE__, __LINE__, oldSize + 1024, _instance->messageSizeMax());
260
+ }
261
+ _readBuffer.b.resize(oldSize + 1024);
262
+ _readBuffer.i = _readBuffer.b.begin() + oldSize;
263
+ continue; // Try again to read the response/request
264
+ }
265
+
266
+ //
267
+ // Set _readI at the end of the response/request message.
268
+ //
269
+ _readI = _readBuffer.b.begin() + (p - &_readBuffer.b[0]);
270
+ }
271
+
272
+ //
273
+ // We're done, the client's upgrade request or server's response is read.
274
+ //
275
+ break;
276
+ }
277
+
278
+ try
279
+ {
280
+ //
281
+ // Parse the client's upgrade request.
282
+ //
283
+ if (_state == StateUpgradeRequestPending && _incoming)
284
+ {
285
+ if (_parser->parse(&_readBuffer.b[0], _readI))
286
+ {
287
+ handleRequest(_writeBuffer);
288
+ _state = StateUpgradeResponsePending;
289
+ }
290
+ else
291
+ {
292
+ throw ProtocolException(__FILE__, __LINE__, "incomplete request message");
293
+ }
294
+ }
295
+
296
+ if (_state == StateUpgradeResponsePending)
297
+ {
298
+ if (_incoming)
299
+ {
300
+ if (_writeBuffer.i < _writeBuffer.b.end())
301
+ {
302
+ SocketOperation s = _delegate->write(_writeBuffer);
303
+ if (s)
304
+ {
305
+ return s;
306
+ }
307
+ }
308
+ }
309
+ else
310
+ {
311
+ //
312
+ // Parse the server's response
313
+ //
314
+ if (_parser->parse(&_readBuffer.b[0], _readI))
315
+ {
316
+ handleResponse();
317
+ }
318
+ else
319
+ {
320
+ throw ProtocolException(__FILE__, __LINE__, "incomplete response message");
321
+ }
322
+ }
323
+ }
324
+ }
325
+ catch (const WebSocketException& ex)
326
+ {
327
+ throw ProtocolException(__FILE__, __LINE__, ex.reason);
328
+ }
329
+
330
+ _state = StateOpened;
331
+ _nextState = StateOpened;
332
+
333
+ if (_readI < _readBuffer.i)
334
+ {
335
+ _delegate->getNativeInfo()->ready(SocketOperationRead, true);
336
+ }
337
+ }
338
+ catch (const Ice::LocalException& ex)
339
+ {
340
+ if (_instance->traceLevel() >= 2)
341
+ {
342
+ Trace out(_instance->logger(), _instance->traceCategory());
343
+ out << protocol() << " connection HTTP upgrade request failed\n" << toString() << "\n" << ex;
344
+ }
345
+ throw;
346
+ }
347
+
348
+ if (_instance->traceLevel() >= 1)
349
+ {
350
+ Trace out(_instance->logger(), _instance->traceCategory());
351
+ if (_incoming)
352
+ {
353
+ out << "accepted " << protocol() << " connection HTTP upgrade request\n" << toString();
354
+ }
355
+ else
356
+ {
357
+ out << protocol() << " connection HTTP upgrade request accepted\n" << toString();
358
+ }
359
+ }
360
+
361
+ return SocketOperationNone;
362
+ }
363
+
364
+ SocketOperation
365
+ IceInternal::WSTransceiver::closing(bool initiator, exception_ptr reason)
366
+ {
367
+ if (_instance->traceLevel() >= 1)
368
+ {
369
+ Trace out(_instance->logger(), _instance->traceCategory());
370
+ out << "gracefully closing " << protocol() << " connection\n" << toString();
371
+ }
372
+
373
+ State s = _nextState == StateOpened ? _state : _nextState;
374
+
375
+ if (s == StateClosingRequestPending && _closingInitiator)
376
+ {
377
+ //
378
+ // If we initiated a close connection but also received a
379
+ // close connection, we assume we didn't initiated the
380
+ // connection and we send the close frame now. This is to
381
+ // ensure that if both peers close the connection at the same
382
+ // time we don't hang having both peer waiting for the close
383
+ // frame of the other.
384
+ //
385
+ assert(!initiator);
386
+ _closingInitiator = false;
387
+ return SocketOperationWrite;
388
+ }
389
+ else if (s >= StateClosingRequestPending)
390
+ {
391
+ return SocketOperationNone;
392
+ }
393
+
394
+ _closingInitiator = initiator;
395
+
396
+ try
397
+ {
398
+ rethrow_exception(reason);
399
+ }
400
+ catch (const Ice::CloseConnectionException&)
401
+ {
402
+ _closingReason = CLOSURE_NORMAL;
403
+ }
404
+ catch (const Ice::ObjectAdapterDeactivatedException&)
405
+ {
406
+ _closingReason = CLOSURE_SHUTDOWN;
407
+ }
408
+ catch (const Ice::ObjectAdapterDestroyedException&)
409
+ {
410
+ _closingReason = CLOSURE_SHUTDOWN;
411
+ }
412
+ catch (const Ice::CommunicatorDestroyedException&)
413
+ {
414
+ _closingReason = CLOSURE_SHUTDOWN;
415
+ }
416
+ catch (const Ice::ProtocolException&)
417
+ {
418
+ _closingReason = CLOSURE_PROTOCOL_ERROR;
419
+ }
420
+ catch (...)
421
+ {
422
+ // no closing reason
423
+ }
424
+
425
+ if (_state == StateOpened)
426
+ {
427
+ _state = StateClosingRequestPending;
428
+ return initiator ? SocketOperationRead : SocketOperationWrite;
429
+ }
430
+ else
431
+ {
432
+ _nextState = StateClosingRequestPending;
433
+ return SocketOperationNone;
434
+ }
435
+ }
436
+
437
+ void
438
+ IceInternal::WSTransceiver::close()
439
+ {
440
+ _delegate->close();
441
+ _state = StateClosed;
442
+
443
+ //
444
+ // Clear the buffers now instead of waiting for destruction.
445
+ //
446
+ if (!_writePending)
447
+ {
448
+ _writeBuffer.b.clear();
449
+ }
450
+ if (!_readPending)
451
+ {
452
+ _readBuffer.b.clear();
453
+ }
454
+ }
455
+
456
+ SocketOperation
457
+ IceInternal::WSTransceiver::write(Buffer& buf)
458
+ {
459
+ if (_writePending)
460
+ {
461
+ return SocketOperationWrite;
462
+ }
463
+
464
+ if (_state < StateOpened)
465
+ {
466
+ if (_state < StateConnected)
467
+ {
468
+ return _delegate->write(buf);
469
+ }
470
+ else
471
+ {
472
+ return _delegate->write(_writeBuffer);
473
+ }
474
+ }
475
+
476
+ do
477
+ {
478
+ if (preWrite(buf))
479
+ {
480
+ if (_writeBuffer.i < _writeBuffer.b.end())
481
+ {
482
+ SocketOperation s = _delegate->write(_writeBuffer);
483
+ if (s)
484
+ {
485
+ return s;
486
+ }
487
+ }
488
+ else if (_incoming && !buf.b.empty() && _writeState == WriteStatePayload)
489
+ {
490
+ SocketOperation s = _delegate->write(buf);
491
+ if (s)
492
+ {
493
+ return s;
494
+ }
495
+ }
496
+ }
497
+ } while (postWrite(buf));
498
+
499
+ if (_state == StateClosingResponsePending && !_closingInitiator)
500
+ {
501
+ return SocketOperationRead;
502
+ }
503
+ return SocketOperationNone;
504
+ }
505
+
506
+ SocketOperation
507
+ IceInternal::WSTransceiver::read(Buffer& buf)
508
+ {
509
+ if (_readPending)
510
+ {
511
+ return SocketOperationRead;
512
+ }
513
+
514
+ if (_state < StateOpened)
515
+ {
516
+ if (_state < StateConnected)
517
+ {
518
+ return _delegate->read(buf);
519
+ }
520
+ else
521
+ {
522
+ if (_delegate->read(_readBuffer) == SocketOperationWrite)
523
+ {
524
+ return SocketOperationWrite;
525
+ }
526
+ else
527
+ {
528
+ return SocketOperationNone;
529
+ }
530
+ }
531
+ }
532
+
533
+ //
534
+ // If we read the full Ice message, handle it before trying
535
+ // reading anymore data from the WS connection.
536
+ //
537
+ if (buf.i == buf.b.end())
538
+ {
539
+ if (_readI < _readBuffer.i)
540
+ {
541
+ _delegate->getNativeInfo()->ready(SocketOperationRead, true);
542
+ }
543
+ return SocketOperationNone;
544
+ }
545
+
546
+ SocketOperation s = SocketOperationNone;
547
+ do
548
+ {
549
+ if (preRead(buf))
550
+ {
551
+ if (_readState == ReadStatePayload)
552
+ {
553
+ //
554
+ // If the payload length is smaller than what remains to be read, we read
555
+ // no more than the payload length. The remaining of the buffer will be
556
+ // sent over in another frame.
557
+ //
558
+ size_t readSz = _readPayloadLength - static_cast<size_t>(buf.i - _readStart); // Already read
559
+ if (static_cast<size_t>(buf.b.end() - buf.i) > readSz)
560
+ {
561
+ size_t size = buf.b.size();
562
+ buf.b.resize(static_cast<size_t>(buf.i - buf.b.begin()) + readSz);
563
+ s = _delegate->read(buf);
564
+ buf.b.resize(size);
565
+ }
566
+ else
567
+ {
568
+ s = _delegate->read(buf);
569
+ }
570
+ }
571
+ else
572
+ {
573
+ s = _delegate->read(_readBuffer);
574
+ }
575
+
576
+ if (s == SocketOperationWrite)
577
+ {
578
+ postRead(buf);
579
+ return s;
580
+ }
581
+ }
582
+ } while (postRead(buf));
583
+
584
+ if (buf.i == buf.b.end())
585
+ {
586
+ if (_readI < _readBuffer.i)
587
+ {
588
+ _delegate->getNativeInfo()->ready(SocketOperationRead, true);
589
+ }
590
+ s = SocketOperationNone;
591
+ }
592
+ else
593
+ {
594
+ _delegate->getNativeInfo()->ready(SocketOperationRead, false);
595
+ s = SocketOperationRead;
596
+ }
597
+
598
+ if (((_state == StateClosingRequestPending && !_closingInitiator) ||
599
+ (_state == StateClosingResponsePending && _closingInitiator) || _state == StatePingPending ||
600
+ _state == StatePongPending) &&
601
+ _writeState == WriteStateHeader)
602
+ {
603
+ // We have things to write, ask to be notified when writes are ready.
604
+ s = static_cast<SocketOperation>(s | SocketOperationWrite);
605
+ }
606
+ return s;
607
+ }
608
+
609
+ #if defined(ICE_USE_IOCP)
610
+ bool
611
+ IceInternal::WSTransceiver::startWrite(Buffer& buf)
612
+ {
613
+ _writePending = true;
614
+ if (_state < StateOpened)
615
+ {
616
+ if (_state < StateConnected)
617
+ {
618
+ return _delegate->startWrite(buf);
619
+ }
620
+ else
621
+ {
622
+ return _delegate->startWrite(_writeBuffer);
623
+ }
624
+ }
625
+
626
+ if (preWrite(buf))
627
+ {
628
+ if (_writeBuffer.i < _writeBuffer.b.end())
629
+ {
630
+ if (_delegate->startWrite(_writeBuffer))
631
+ {
632
+ return buf.b.size() == _writePayloadLength; // Return true only if we've written the whole buffer.
633
+ }
634
+ return false;
635
+ }
636
+ else
637
+ {
638
+ assert(_incoming);
639
+ return _delegate->startWrite(buf);
640
+ }
641
+ }
642
+ else
643
+ {
644
+ _delegate->getNativeInfo()->completed(IceInternal::SocketOperationWrite);
645
+ return false;
646
+ }
647
+ }
648
+
649
+ void
650
+ IceInternal::WSTransceiver::finishWrite(Buffer& buf)
651
+ {
652
+ _writePending = false;
653
+
654
+ if (_state < StateOpened)
655
+ {
656
+ if (_state < StateConnected)
657
+ {
658
+ _delegate->finishWrite(buf);
659
+ }
660
+ else
661
+ {
662
+ _delegate->finishWrite(_writeBuffer);
663
+ }
664
+ return;
665
+ }
666
+
667
+ if (_writeBuffer.i < _writeBuffer.b.end())
668
+ {
669
+ _delegate->finishWrite(_writeBuffer);
670
+ }
671
+ else if (!buf.b.empty() && buf.i != buf.b.end())
672
+ {
673
+ assert(_incoming);
674
+ _delegate->finishWrite(buf);
675
+ }
676
+
677
+ if (_state == StateClosed)
678
+ {
679
+ _writeBuffer.b.clear();
680
+ return;
681
+ }
682
+
683
+ postWrite(buf);
684
+ }
685
+
686
+ void
687
+ IceInternal::WSTransceiver::startRead(Buffer& buf)
688
+ {
689
+ _readPending = true;
690
+ if (_state < StateOpened)
691
+ {
692
+ if (_state < StateConnected)
693
+ {
694
+ _delegate->startRead(buf);
695
+ }
696
+ else
697
+ {
698
+ _delegate->startRead(_readBuffer);
699
+ }
700
+ return;
701
+ }
702
+
703
+ if (preRead(buf))
704
+ {
705
+ if (_readState == ReadStatePayload)
706
+ {
707
+ //
708
+ // If the payload length is smaller than what remains to be read, we read
709
+ // no more than the payload length. The remaining of the buffer will be
710
+ // sent over in another frame.
711
+ //
712
+ size_t readSz = _readPayloadLength - (buf.i - _readStart);
713
+ if (static_cast<size_t>(buf.b.end() - buf.i) > readSz)
714
+ {
715
+ size_t size = buf.b.size();
716
+ buf.b.resize(buf.i - buf.b.begin() + readSz);
717
+ _delegate->startRead(buf);
718
+ buf.b.resize(size);
719
+ }
720
+ else
721
+ {
722
+ _delegate->startRead(buf);
723
+ }
724
+ }
725
+ else
726
+ {
727
+ _delegate->startRead(_readBuffer);
728
+ }
729
+ }
730
+ else
731
+ {
732
+ _delegate->getNativeInfo()->completed(IceInternal::SocketOperationRead);
733
+ }
734
+ }
735
+
736
+ void
737
+ IceInternal::WSTransceiver::finishRead(Buffer& buf)
738
+ {
739
+ _readPending = false;
740
+ if (_state < StateOpened)
741
+ {
742
+ if (_state < StateConnected)
743
+ {
744
+ _delegate->finishRead(buf);
745
+ }
746
+ else
747
+ {
748
+ _delegate->finishRead(_readBuffer);
749
+ }
750
+ return;
751
+ }
752
+
753
+ if (buf.b.empty() || buf.i == buf.b.end())
754
+ {
755
+ // Nothing to do.
756
+ }
757
+ else if (_readState == ReadStatePayload)
758
+ {
759
+ _delegate->finishRead(buf);
760
+ }
761
+ else
762
+ {
763
+ _delegate->finishRead(_readBuffer);
764
+ }
765
+
766
+ if (_state == StateClosed)
767
+ {
768
+ _readBuffer.b.clear();
769
+ return;
770
+ }
771
+
772
+ postRead(buf);
773
+ }
774
+ #endif
775
+
776
+ string
777
+ IceInternal::WSTransceiver::protocol() const
778
+ {
779
+ return _instance->protocol();
780
+ }
781
+
782
+ string
783
+ IceInternal::WSTransceiver::toString() const
784
+ {
785
+ return _delegate->toString();
786
+ }
787
+
788
+ string
789
+ IceInternal::WSTransceiver::toDetailedString() const
790
+ {
791
+ return _delegate->toDetailedString();
792
+ }
793
+
794
+ Ice::ConnectionInfoPtr
795
+ IceInternal::WSTransceiver::getInfo(bool incoming, string adapterName, string connectionId) const
796
+ {
797
+ return make_shared<WSConnectionInfo>(
798
+ _delegate->getInfo(incoming, std::move(adapterName), std::move(connectionId)),
799
+ _parser->getHeaders());
800
+ }
801
+
802
+ void
803
+ IceInternal::WSTransceiver::checkSendSize(const Buffer& buf)
804
+ {
805
+ _delegate->checkSendSize(buf);
806
+ }
807
+
808
+ void
809
+ IceInternal::WSTransceiver::setBufferSize(int rcvSize, int sndSize)
810
+ {
811
+ _delegate->setBufferSize(rcvSize, sndSize);
812
+ }
813
+
814
+ IceInternal::WSTransceiver::WSTransceiver(
815
+ ProtocolInstancePtr instance,
816
+ TransceiverPtr del,
817
+ string host,
818
+ string resource)
819
+ : _instance(std::move(instance)),
820
+ _delegate(std::move(del)),
821
+ _host(std::move(host)),
822
+ _resource(std::move(resource)),
823
+ _incoming(false),
824
+ _state(StateInitializeDelegate),
825
+ _parser(make_shared<HttpParser>()),
826
+ _readState(ReadStateOpcode),
827
+ _readBufferSize(1024),
828
+ _readLastFrame(true),
829
+ _readOpCode(0),
830
+ _readHeaderLength(0),
831
+ _readPayloadLength(0),
832
+ _writeState(WriteStateHeader),
833
+ _writeBufferSize(16 * 1024),
834
+ _readPending(false),
835
+ _writePending(false),
836
+ _closingInitiator(false),
837
+ _closingReason(CLOSURE_NORMAL)
838
+ {
839
+ //
840
+ // Use 1KB read and 16KB write buffer sizes. We use 16KB for the
841
+ // write buffer size because all the data needs to be copied to
842
+ // the write buffer for the purpose of masking. A 16KB buffer
843
+ // appears to be a good compromise to reduce the number of socket
844
+ // write calls and not consume too much memory.
845
+ //
846
+ }
847
+
848
+ IceInternal::WSTransceiver::WSTransceiver(ProtocolInstancePtr instance, TransceiverPtr del)
849
+ : _instance(std::move(instance)),
850
+ _delegate(std::move(del)),
851
+ _incoming(true),
852
+ _state(StateInitializeDelegate),
853
+ _parser(make_shared<HttpParser>()),
854
+ _readState(ReadStateOpcode),
855
+ _readBufferSize(1024),
856
+ _readLastFrame(true),
857
+ _readOpCode(0),
858
+ _readHeaderLength(0),
859
+ _readPayloadLength(0),
860
+ _writeState(WriteStateHeader),
861
+ _writeBufferSize(1024),
862
+ _readPending(false),
863
+ _writePending(false),
864
+ _closingInitiator(false),
865
+ _closingReason(CLOSURE_NORMAL)
866
+ {
867
+ //
868
+ // Use 1KB read and write buffer sizes.
869
+ //
870
+ }
871
+
872
+ IceInternal::WSTransceiver::~WSTransceiver() = default;
873
+
874
+ void
875
+ IceInternal::WSTransceiver::handleRequest(Buffer& responseBuffer)
876
+ {
877
+ string val;
878
+
879
+ //
880
+ // HTTP/1.1
881
+ //
882
+ if (_parser->versionMajor() != 1 || _parser->versionMinor() != 1)
883
+ {
884
+ throw WebSocketException("unsupported HTTP version");
885
+ }
886
+
887
+ //
888
+ // "An |Upgrade| header field containing the value 'websocket',
889
+ // treated as an ASCII case-insensitive value."
890
+ //
891
+ if (!_parser->getHeader("Upgrade", val, true))
892
+ {
893
+ throw WebSocketException("missing value for Upgrade field");
894
+ }
895
+ else if (val != "websocket")
896
+ {
897
+ throw WebSocketException("invalid value '" + val + "' for Upgrade field");
898
+ }
899
+
900
+ //
901
+ // "A |Connection| header field that includes the token 'Upgrade',
902
+ // treated as an ASCII case-insensitive value.
903
+ //
904
+ if (!_parser->getHeader("Connection", val, true))
905
+ {
906
+ throw WebSocketException("missing value for Connection field");
907
+ }
908
+ else if (val.find("upgrade") == string::npos)
909
+ {
910
+ throw WebSocketException("invalid value '" + val + "' for Connection field");
911
+ }
912
+
913
+ //
914
+ // "A |Sec-WebSocket-Version| header field, with a value of 13."
915
+ //
916
+ if (!_parser->getHeader("Sec-WebSocket-Version", val, false))
917
+ {
918
+ throw WebSocketException("missing value for WebSocket version");
919
+ }
920
+ else if (val != "13")
921
+ {
922
+ throw WebSocketException("unsupported WebSocket version '" + val + "'");
923
+ }
924
+
925
+ //
926
+ // "Optionally, a |Sec-WebSocket-Protocol| header field, with a list
927
+ // of values indicating which protocols the client would like to
928
+ // speak, ordered by preference."
929
+ //
930
+ bool addProtocol = false;
931
+ if (_parser->getHeader("Sec-WebSocket-Protocol", val, true))
932
+ {
933
+ vector<string> protocols;
934
+ if (!IceInternal::splitString(val, ",", protocols))
935
+ {
936
+ throw WebSocketException("invalid value '" + val + "' for WebSocket protocol");
937
+ }
938
+ for (const auto& protocol : protocols)
939
+ {
940
+ if (IceInternal::trim(protocol) != _iceProtocol)
941
+ {
942
+ throw WebSocketException("unknown value '" + protocol + "' for WebSocket protocol");
943
+ }
944
+ addProtocol = true;
945
+ }
946
+ }
947
+
948
+ //
949
+ // "A |Sec-WebSocket-Key| header field with a base64-encoded
950
+ // value that, when decoded, is 16 bytes in length."
951
+ //
952
+ string key;
953
+ if (!_parser->getHeader("Sec-WebSocket-Key", key, false))
954
+ {
955
+ throw WebSocketException("missing value for WebSocket key");
956
+ }
957
+
958
+ vector<byte> decodedKey = Base64::decode(key);
959
+ if (decodedKey.size() != 16)
960
+ {
961
+ throw WebSocketException("invalid value '" + key + "' for WebSocket key");
962
+ }
963
+
964
+ //
965
+ // Retain the target resource.
966
+ //
967
+ const_cast<string&>(_resource) = _parser->uri();
968
+
969
+ //
970
+ // Compose the response.
971
+ //
972
+ ostringstream out;
973
+ out << "HTTP/1.1 101 Switching Protocols\r\n"
974
+ << "Upgrade: websocket\r\n"
975
+ << "Connection: Upgrade\r\n";
976
+ if (addProtocol)
977
+ {
978
+ out << "Sec-WebSocket-Protocol: " << _iceProtocol << "\r\n";
979
+ }
980
+
981
+ //
982
+ // The response includes:
983
+ //
984
+ // "A |Sec-WebSocket-Accept| header field. The value of this
985
+ // header field is constructed by concatenating /key/, defined
986
+ // above in step 4 in Section 4.2.2, with the string "258EAFA5-
987
+ // E914-47DA-95CA-C5AB0DC85B11", taking the SHA-1 hash of this
988
+ // concatenated value to obtain a 20-byte value and base64-
989
+ // encoding (see Section 4 of [RFC4648]) this 20-byte hash.
990
+ //
991
+ out << "Sec-WebSocket-Accept: ";
992
+ string input = key + _wsUUID;
993
+ vector<byte> hash;
994
+ sha1(reinterpret_cast<const byte*>(&input[0]), input.size(), hash);
995
+ out << IceInternal::Base64::encode(hash) << "\r\n"
996
+ << "\r\n"; // EOM
997
+
998
+ string str = out.str();
999
+ responseBuffer.b.resize(str.size());
1000
+ memcpy(&responseBuffer.b[0], str.c_str(), str.size());
1001
+ responseBuffer.i = responseBuffer.b.begin();
1002
+ }
1003
+
1004
+ void
1005
+ IceInternal::WSTransceiver::handleResponse()
1006
+ {
1007
+ string val;
1008
+
1009
+ //
1010
+ // HTTP/1.1
1011
+ //
1012
+ if (_parser->versionMajor() != 1 || _parser->versionMinor() != 1)
1013
+ {
1014
+ throw WebSocketException("unsupported HTTP version");
1015
+ }
1016
+
1017
+ //
1018
+ // "If the status code received from the server is not 101, the
1019
+ // client handles the response per HTTP [RFC2616] procedures. In
1020
+ // particular, the client might perform authentication if it
1021
+ // receives a 401 status code; the server might redirect the client
1022
+ // using a 3xx status code (but clients are not required to follow
1023
+ // them), etc."
1024
+ //
1025
+ if (_parser->status() != 101)
1026
+ {
1027
+ ostringstream out;
1028
+ out << "unexpected status value " << _parser->status();
1029
+ if (!_parser->reason().empty())
1030
+ {
1031
+ out << ":" << endl << _parser->reason();
1032
+ }
1033
+ throw WebSocketException(out.str());
1034
+ }
1035
+
1036
+ //
1037
+ // "If the response lacks an |Upgrade| header field or the |Upgrade|
1038
+ // header field contains a value that is not an ASCII case-
1039
+ // insensitive match for the value "websocket", the client MUST
1040
+ // _Fail the WebSocket Connection_."
1041
+ //
1042
+ if (!_parser->getHeader("Upgrade", val, true))
1043
+ {
1044
+ throw WebSocketException("missing value for Upgrade field");
1045
+ }
1046
+ else if (val != "websocket")
1047
+ {
1048
+ throw WebSocketException("invalid value '" + val + "' for Upgrade field");
1049
+ }
1050
+
1051
+ //
1052
+ // "If the response lacks a |Connection| header field or the
1053
+ // |Connection| header field doesn't contain a token that is an
1054
+ // ASCII case-insensitive match for the value "Upgrade", the client
1055
+ // MUST _Fail the WebSocket Connection_."
1056
+ //
1057
+ if (!_parser->getHeader("Connection", val, true))
1058
+ {
1059
+ throw WebSocketException("missing value for Connection field");
1060
+ }
1061
+ else if (val.find("upgrade") == string::npos)
1062
+ {
1063
+ throw WebSocketException("invalid value '" + val + "' for Connection field");
1064
+ }
1065
+
1066
+ //
1067
+ // "If the response includes a |Sec-WebSocket-Protocol| header field
1068
+ // and this header field indicates the use of a subprotocol that was
1069
+ // not present in the client's handshake (the server has indicated a
1070
+ // subprotocol not requested by the client), the client MUST _Fail
1071
+ // the WebSocket Connection_."
1072
+ //
1073
+ if (_parser->getHeader("Sec-WebSocket-Protocol", val, true) && val != _iceProtocol)
1074
+ {
1075
+ throw WebSocketException("invalid value '" + val + "' for WebSocket protocol");
1076
+ }
1077
+
1078
+ //
1079
+ // "If the response lacks a |Sec-WebSocket-Accept| header field or
1080
+ // the |Sec-WebSocket-Accept| contains a value other than the
1081
+ // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-
1082
+ // Key| (as a string, not base64-decoded) with the string "258EAFA5-
1083
+ // E914-47DA-95CA-C5AB0DC85B11" but ignoring any leading and
1084
+ // trailing whitespace, the client MUST _Fail the WebSocket
1085
+ // Connection_."
1086
+ //
1087
+ if (!_parser->getHeader("Sec-WebSocket-Accept", val, false))
1088
+ {
1089
+ throw WebSocketException("missing value for Sec-WebSocket-Accept");
1090
+ }
1091
+ string input = _key + _wsUUID;
1092
+ vector<byte> hash;
1093
+ sha1(reinterpret_cast<const byte*>(&input[0]), input.size(), hash);
1094
+ if (val != IceInternal::Base64::encode(hash))
1095
+ {
1096
+ throw WebSocketException("invalid value '" + val + "' for Sec-WebSocket-Accept");
1097
+ }
1098
+ }
1099
+
1100
+ bool
1101
+ IceInternal::WSTransceiver::preRead(Buffer& buf)
1102
+ {
1103
+ while (true)
1104
+ {
1105
+ if (_readState == ReadStateOpcode)
1106
+ {
1107
+ //
1108
+ // Is there enough data available to read the opcode?
1109
+ //
1110
+ if (!readBuffered(2))
1111
+ {
1112
+ return true;
1113
+ }
1114
+
1115
+ //
1116
+ // Most-significant bit indicates whether this is the
1117
+ // last frame. Least-significant four bits hold the
1118
+ // opcode.
1119
+ //
1120
+ byte ch = *_readI++;
1121
+ _readOpCode = static_cast<int>(ch & byte{0xf});
1122
+
1123
+ //
1124
+ // Remember if last frame if we're going to read a data or
1125
+ // continuation frame, this is only for protocol
1126
+ // correctness checking purpose.
1127
+ //
1128
+ if (_readOpCode == OP_DATA)
1129
+ {
1130
+ if (!_readLastFrame)
1131
+ {
1132
+ throw ProtocolException(__FILE__, __LINE__, "invalid data frame, no FIN on previous frame");
1133
+ }
1134
+ _readLastFrame = (ch & byte{FLAG_FINAL}) == byte{FLAG_FINAL};
1135
+ }
1136
+ else if (_readOpCode == OP_CONT)
1137
+ {
1138
+ if (_readLastFrame)
1139
+ {
1140
+ throw ProtocolException(__FILE__, __LINE__, "invalid continuation frame, previous frame FIN set");
1141
+ }
1142
+ _readLastFrame = (ch & byte{FLAG_FINAL}) == byte{FLAG_FINAL};
1143
+ }
1144
+
1145
+ ch = *_readI++;
1146
+
1147
+ //
1148
+ // Check the MASK bit. Messages sent by a client must be masked;
1149
+ // messages sent by a server must not be masked.
1150
+ //
1151
+ const bool masked = (ch & byte{FLAG_MASKED}) == byte{FLAG_MASKED};
1152
+ if (masked != _incoming)
1153
+ {
1154
+ throw ProtocolException(__FILE__, __LINE__, "invalid masking");
1155
+ }
1156
+
1157
+ //
1158
+ // Extract the payload length, which can have the following values:
1159
+ //
1160
+ // 0-125: The payload length
1161
+ // 126: The subsequent two bytes contain the payload length
1162
+ // 127: The subsequent eight bytes contain the payload length
1163
+ //
1164
+ _readPayloadLength = static_cast<size_t>((ch & byte{0x7f}));
1165
+ if (_readPayloadLength < 126)
1166
+ {
1167
+ _readHeaderLength = 0;
1168
+ }
1169
+ else if (_readPayloadLength == 126)
1170
+ {
1171
+ _readHeaderLength = 2; // Need to read a 16-bit payload length.
1172
+ }
1173
+ else
1174
+ {
1175
+ _readHeaderLength = 8; // Need to read a 64-bit payload length.
1176
+ }
1177
+ if (masked)
1178
+ {
1179
+ _readHeaderLength += 4; // Need to read a 32-bit mask.
1180
+ }
1181
+
1182
+ _readState = ReadStateHeader;
1183
+ }
1184
+
1185
+ if (_readState == ReadStateHeader)
1186
+ {
1187
+ //
1188
+ // Is there enough data available to read the header?
1189
+ //
1190
+ if (_readHeaderLength > 0 && !readBuffered(_readHeaderLength))
1191
+ {
1192
+ return true;
1193
+ }
1194
+
1195
+ if (_readPayloadLength == 126)
1196
+ {
1197
+ _readPayloadLength = static_cast<size_t>(ntohs(*reinterpret_cast<uint16_t*>(_readI)));
1198
+ _readI += 2;
1199
+ }
1200
+ else if (_readPayloadLength == 127)
1201
+ {
1202
+ assert(_readPayloadLength == 127);
1203
+ int64_t l = ice_nlltoh(_readI);
1204
+ _readI += 8;
1205
+ if (l < 0 || l > INT_MAX)
1206
+ {
1207
+ ostringstream ostr;
1208
+ ostr << "invalid WebSocket payload length: " << l;
1209
+ throw ProtocolException(__FILE__, __LINE__, ostr.str());
1210
+ }
1211
+ _readPayloadLength = static_cast<size_t>(l);
1212
+ }
1213
+
1214
+ //
1215
+ // Read the mask if this is an incoming connection.
1216
+ //
1217
+ if (_incoming)
1218
+ {
1219
+ assert(_readBuffer.i - _readI >= 4); // We must have needed to read the mask.
1220
+ memcpy(_readMask, _readI, 4); // Copy the mask.
1221
+ _readI += 4;
1222
+ }
1223
+
1224
+ switch (_readOpCode)
1225
+ {
1226
+ case OP_TEXT: // Text frame
1227
+ {
1228
+ throw ProtocolException(__FILE__, __LINE__, "text frames not supported");
1229
+ }
1230
+ case OP_DATA: // Data frame
1231
+ case OP_CONT: // Continuation frame
1232
+ {
1233
+ if (_instance->traceLevel() >= 2)
1234
+ {
1235
+ Trace out(_instance->logger(), _instance->traceCategory());
1236
+ out << "received " << protocol() << (_readOpCode == OP_DATA ? " data" : " continuation");
1237
+ out << " frame with payload length of " << _readPayloadLength;
1238
+ out << " bytes\n" << toString();
1239
+ }
1240
+
1241
+ if (_readPayloadLength <= 0)
1242
+ {
1243
+ throw ProtocolException(__FILE__, __LINE__, "payload length is 0");
1244
+ }
1245
+ _readState = ReadStatePayload;
1246
+ assert(buf.i != buf.b.end());
1247
+ _readFrameStart = buf.i;
1248
+ break;
1249
+ }
1250
+ case OP_CLOSE: // Connection close
1251
+ {
1252
+ if (_instance->traceLevel() >= 2)
1253
+ {
1254
+ Trace out(_instance->logger(), _instance->traceCategory());
1255
+ out << "received " << protocol() << " connection close frame\n" << toString();
1256
+ }
1257
+
1258
+ State s = _nextState == StateOpened ? _state : _nextState;
1259
+ if (s == StateClosingRequestPending)
1260
+ {
1261
+ //
1262
+ // If we receive a close frame while we were actually
1263
+ // waiting to send one, change the role and send a
1264
+ // close frame response.
1265
+ //
1266
+ if (!_closingInitiator)
1267
+ {
1268
+ _closingInitiator = true;
1269
+ }
1270
+ if (_state == StateClosingRequestPending)
1271
+ {
1272
+ _state = StateClosingResponsePending;
1273
+ }
1274
+ else
1275
+ {
1276
+ _nextState = StateClosingResponsePending;
1277
+ }
1278
+ return false; // No longer interested in reading
1279
+ }
1280
+ else
1281
+ {
1282
+ throw ConnectionLostException(__FILE__, __LINE__);
1283
+ }
1284
+ }
1285
+ case OP_PING:
1286
+ {
1287
+ if (_instance->traceLevel() >= 2)
1288
+ {
1289
+ Trace out(_instance->logger(), _instance->traceCategory());
1290
+ out << "received " << protocol() << " connection ping frame\n" << toString();
1291
+ }
1292
+ _readState = ReadStateControlFrame;
1293
+ break;
1294
+ }
1295
+ case OP_PONG: // Pong
1296
+ {
1297
+ if (_instance->traceLevel() >= 2)
1298
+ {
1299
+ Trace out(_instance->logger(), _instance->traceCategory());
1300
+ out << "received " << protocol() << " connection pong frame\n" << toString();
1301
+ }
1302
+ _readState = ReadStateControlFrame;
1303
+ break;
1304
+ }
1305
+ default:
1306
+ {
1307
+ ostringstream ostr;
1308
+ ostr << "unsupported opcode: " << _readOpCode;
1309
+ throw ProtocolException(__FILE__, __LINE__, ostr.str());
1310
+ }
1311
+ }
1312
+ }
1313
+
1314
+ if (_readState == ReadStateControlFrame)
1315
+ {
1316
+ if (_readPayloadLength > 0 && !readBuffered(_readPayloadLength))
1317
+ {
1318
+ return true;
1319
+ }
1320
+
1321
+ if (_readPayloadLength > 0 && _readOpCode == OP_PING)
1322
+ {
1323
+ _pingPayload.clear();
1324
+ _pingPayload.resize(_readPayloadLength);
1325
+ memcpy(&_pingPayload[0], _readI, _pingPayload.size());
1326
+ }
1327
+
1328
+ _readI += _readPayloadLength;
1329
+ _readPayloadLength = 0;
1330
+
1331
+ if (_readOpCode == OP_PING)
1332
+ {
1333
+ if (_state == StateOpened)
1334
+ {
1335
+ _state = StatePongPending; // Send pong frame now
1336
+ }
1337
+ else if (_nextState < StatePongPending)
1338
+ {
1339
+ _nextState = StatePongPending; // Send pong frame next
1340
+ }
1341
+ }
1342
+
1343
+ //
1344
+ // We've read the payload of the PING/PONG frame, we're ready
1345
+ // to read a new frame.
1346
+ //
1347
+ _readState = ReadStateOpcode;
1348
+ }
1349
+
1350
+ if (_readState == ReadStatePayload)
1351
+ {
1352
+ //
1353
+ // This must be assigned before the check for the buffer. If the buffer is empty
1354
+ // or already read, postRead will return false.
1355
+ //
1356
+ _readStart = buf.i;
1357
+
1358
+ if (buf.b.empty() || buf.i == buf.b.end())
1359
+ {
1360
+ return false;
1361
+ }
1362
+
1363
+ size_t n = min(static_cast<size_t>(_readBuffer.i - _readI), static_cast<size_t>(buf.b.end() - buf.i));
1364
+
1365
+ if (n > _readPayloadLength)
1366
+ {
1367
+ n = _readPayloadLength;
1368
+ }
1369
+ if (n > 0)
1370
+ {
1371
+ memcpy(buf.i, _readI, n);
1372
+ buf.i += n;
1373
+ _readI += n;
1374
+ }
1375
+ //
1376
+ // Continue reading if we didn't read the full message, otherwise give back
1377
+ // the control to the connection
1378
+ //
1379
+ return buf.i < buf.b.end() && n < _readPayloadLength;
1380
+ }
1381
+ }
1382
+ }
1383
+
1384
+ bool
1385
+ IceInternal::WSTransceiver::postRead(Buffer& buf)
1386
+ {
1387
+ if (_readState != ReadStatePayload)
1388
+ {
1389
+ return _readStart < _readBuffer.i; // Returns true if data was read.
1390
+ }
1391
+
1392
+ if (_readStart == buf.i)
1393
+ {
1394
+ return false; // Nothing was read or nothing to read.
1395
+ }
1396
+ assert(_readStart < buf.i);
1397
+
1398
+ if (_incoming)
1399
+ {
1400
+ //
1401
+ // Unmask the data we just read.
1402
+ //
1403
+ IceInternal::Buffer::Container::iterator p = _readStart;
1404
+ for (auto n = static_cast<size_t>(_readStart - _readFrameStart); p < buf.i; ++p, ++n)
1405
+ {
1406
+ *p ^= _readMask[n % 4];
1407
+ }
1408
+ }
1409
+
1410
+ _readPayloadLength -= static_cast<size_t>(buf.i - _readStart);
1411
+ _readStart = buf.i;
1412
+ if (_readPayloadLength == 0)
1413
+ {
1414
+ //
1415
+ // We've read the complete payload, we're ready to read a new frame.
1416
+ //
1417
+ _readState = ReadStateOpcode;
1418
+ }
1419
+ return buf.i != buf.b.end();
1420
+ }
1421
+
1422
+ bool
1423
+ IceInternal::WSTransceiver::preWrite(Buffer& buf)
1424
+ {
1425
+ if (_writeState == WriteStateHeader)
1426
+ {
1427
+ if (_state == StateOpened)
1428
+ {
1429
+ if (buf.b.empty() || buf.i == buf.b.end())
1430
+ {
1431
+ return false;
1432
+ }
1433
+
1434
+ assert(buf.i == buf.b.begin());
1435
+ prepareWriteHeader(OP_DATA, buf.b.size());
1436
+
1437
+ _writeState = WriteStatePayload;
1438
+ }
1439
+ else if (_state == StatePingPending)
1440
+ {
1441
+ prepareWriteHeader(OP_PING, 0); // Don't send any payload
1442
+
1443
+ _writeBuffer.b.resize(static_cast<size_t>(_writeBuffer.i - _writeBuffer.b.begin()));
1444
+ _writeState = WriteStateControlFrame;
1445
+ _writeBuffer.i = _writeBuffer.b.begin();
1446
+ }
1447
+ else if (_state == StatePongPending)
1448
+ {
1449
+ prepareWriteHeader(OP_PONG, _pingPayload.size());
1450
+ if (_pingPayload.size() > static_cast<size_t>(_writeBuffer.b.end() - _writeBuffer.i))
1451
+ {
1452
+ auto pos = static_cast<size_t>(_writeBuffer.i - _writeBuffer.b.begin());
1453
+ _writeBuffer.b.resize(pos + _pingPayload.size());
1454
+ _writeBuffer.i = _writeBuffer.b.begin() + pos;
1455
+ }
1456
+ memcpy(_writeBuffer.i, &_pingPayload[0], _pingPayload.size());
1457
+ _writeBuffer.i += _pingPayload.size();
1458
+ _pingPayload.clear();
1459
+
1460
+ _writeBuffer.b.resize(static_cast<size_t>(_writeBuffer.i - _writeBuffer.b.begin()));
1461
+ _writeState = WriteStateControlFrame;
1462
+ _writeBuffer.i = _writeBuffer.b.begin();
1463
+ }
1464
+ else if (
1465
+ (_state == StateClosingRequestPending && !_closingInitiator) ||
1466
+ (_state == StateClosingResponsePending && _closingInitiator))
1467
+ {
1468
+ prepareWriteHeader(OP_CLOSE, 2);
1469
+
1470
+ // Write closing reason
1471
+ *reinterpret_cast<uint16_t*>(_writeBuffer.i) = htons(static_cast<uint16_t>(_closingReason));
1472
+ if (!_incoming)
1473
+ {
1474
+ *_writeBuffer.i++ ^= _writeMask[0];
1475
+ *_writeBuffer.i++ ^= _writeMask[1];
1476
+ }
1477
+ else
1478
+ {
1479
+ _writeBuffer.i += 2;
1480
+ }
1481
+
1482
+ _writeState = WriteStateControlFrame;
1483
+ _writeBuffer.b.resize(static_cast<size_t>(_writeBuffer.i - _writeBuffer.b.begin()));
1484
+ _writeBuffer.i = _writeBuffer.b.begin();
1485
+ }
1486
+ else
1487
+ {
1488
+ assert(_state != StateClosed);
1489
+ return false; // Nothing to write in this state
1490
+ }
1491
+
1492
+ _writePayloadLength = 0;
1493
+ }
1494
+
1495
+ if (_writeState == WriteStatePayload)
1496
+ {
1497
+ //
1498
+ // For an outgoing connection, each message must be masked with a random
1499
+ // 32-bit value, so we copy the entire message into the internal buffer
1500
+ // for writing. For incoming connections, we just copy the start of the
1501
+ // message in the internal buffer after the header. If the message is
1502
+ // larger, the reminder is sent directly from the message buffer to avoid
1503
+ // copying.
1504
+ //
1505
+
1506
+ if (!_incoming && (_writePayloadLength == 0 || _writeBuffer.i == _writeBuffer.b.end()))
1507
+ {
1508
+ if (_writeBuffer.i == _writeBuffer.b.end())
1509
+ {
1510
+ _writeBuffer.i = _writeBuffer.b.begin();
1511
+ }
1512
+
1513
+ auto n = static_cast<size_t>(buf.i - buf.b.begin());
1514
+ for (; n < buf.b.size() && _writeBuffer.i < _writeBuffer.b.end(); ++_writeBuffer.i, ++n)
1515
+ {
1516
+ *_writeBuffer.i = buf.b[n] ^ _writeMask[n % 4];
1517
+ }
1518
+ _writePayloadLength = n;
1519
+ if (_writeBuffer.i < _writeBuffer.b.end())
1520
+ {
1521
+ _writeBuffer.b.resize(static_cast<size_t>(_writeBuffer.i - _writeBuffer.b.begin()));
1522
+ }
1523
+ _writeBuffer.i = _writeBuffer.b.begin();
1524
+ }
1525
+ else if (_writePayloadLength == 0)
1526
+ {
1527
+ size_t n =
1528
+ min(static_cast<size_t>(_writeBuffer.b.end() - _writeBuffer.i),
1529
+ static_cast<size_t>(buf.b.end() - buf.i));
1530
+ memcpy(_writeBuffer.i, buf.i, n);
1531
+ _writeBuffer.i += n;
1532
+ buf.i += n;
1533
+ _writePayloadLength = n;
1534
+ if (_writeBuffer.i < _writeBuffer.b.end())
1535
+ {
1536
+ _writeBuffer.b.resize(static_cast<size_t>(_writeBuffer.i - _writeBuffer.b.begin()));
1537
+ }
1538
+ _writeBuffer.i = _writeBuffer.b.begin();
1539
+ }
1540
+ return true;
1541
+ }
1542
+ else
1543
+ {
1544
+ return _writeBuffer.i < _writeBuffer.b.end();
1545
+ }
1546
+ }
1547
+
1548
+ bool
1549
+ IceInternal::WSTransceiver::postWrite(Buffer& buf)
1550
+ {
1551
+ if (_state > StateOpened && _writeState == WriteStateControlFrame)
1552
+ {
1553
+ if (_writeBuffer.i == _writeBuffer.b.end())
1554
+ {
1555
+ if (_state == StatePingPending)
1556
+ {
1557
+ if (_instance->traceLevel() >= 2)
1558
+ {
1559
+ Trace out(_instance->logger(), _instance->traceCategory());
1560
+ out << "sent " << protocol() << " connection ping frame\n" << toString();
1561
+ }
1562
+ }
1563
+ else if (_state == StatePongPending)
1564
+ {
1565
+ if (_instance->traceLevel() >= 2)
1566
+ {
1567
+ Trace out(_instance->logger(), _instance->traceCategory());
1568
+ out << "sent " << protocol() << " connection pong frame\n" << toString();
1569
+ }
1570
+ }
1571
+ else if (
1572
+ (_state == StateClosingRequestPending && !_closingInitiator) ||
1573
+ (_state == StateClosingResponsePending && _closingInitiator))
1574
+ {
1575
+ if (_instance->traceLevel() >= 2)
1576
+ {
1577
+ Trace out(_instance->logger(), _instance->traceCategory());
1578
+ out << "sent " << protocol() << " connection close frame\n" << toString();
1579
+ }
1580
+
1581
+ if (_state == StateClosingRequestPending && !_closingInitiator)
1582
+ {
1583
+ _writeState = WriteStateHeader;
1584
+ _state = StateClosingResponsePending;
1585
+ return false;
1586
+ }
1587
+ else
1588
+ {
1589
+ throw ConnectionLostException(__FILE__, __LINE__);
1590
+ }
1591
+ }
1592
+ else if (_state == StateClosed)
1593
+ {
1594
+ return false;
1595
+ }
1596
+
1597
+ _state = _nextState;
1598
+ _nextState = StateOpened;
1599
+ _writeState = WriteStateHeader;
1600
+ }
1601
+ else
1602
+ {
1603
+ return true;
1604
+ }
1605
+ }
1606
+
1607
+ if ((!_incoming || buf.i == buf.b.begin()) && _writePayloadLength > 0)
1608
+ {
1609
+ if (_writeBuffer.i == _writeBuffer.b.end())
1610
+ {
1611
+ buf.i = buf.b.begin() + _writePayloadLength;
1612
+ }
1613
+ }
1614
+
1615
+ if (buf.b.empty() || buf.i == buf.b.end())
1616
+ {
1617
+ _writeState = WriteStateHeader;
1618
+ if (_state == StatePingPending || _state == StatePongPending ||
1619
+ (_state == StateClosingRequestPending && !_closingInitiator) ||
1620
+ (_state == StateClosingResponsePending && _closingInitiator))
1621
+ {
1622
+ return true;
1623
+ }
1624
+ }
1625
+ else if (_state == StateOpened)
1626
+ {
1627
+ return true;
1628
+ }
1629
+ return false;
1630
+ }
1631
+
1632
+ bool
1633
+ IceInternal::WSTransceiver::readBuffered(IceInternal::Buffer::Container::size_type sz)
1634
+ {
1635
+ if (_readI == _readBuffer.i)
1636
+ {
1637
+ _readBuffer.b.resize(_readBufferSize);
1638
+ _readI = _readBuffer.i = _readBuffer.b.begin();
1639
+ }
1640
+ else
1641
+ {
1642
+ auto available = static_cast<size_t>(_readBuffer.i - _readI);
1643
+ if (available < sz)
1644
+ {
1645
+ if (_readI != &_readBuffer.b[0])
1646
+ {
1647
+ memmove(&_readBuffer.b[0], _readI, available);
1648
+ }
1649
+ _readBuffer.b.resize(max(_readBufferSize, sz));
1650
+ _readI = _readBuffer.b.begin();
1651
+ _readBuffer.i = _readI + available;
1652
+ }
1653
+ }
1654
+
1655
+ _readStart = _readBuffer.i;
1656
+ if (_readI + sz > _readBuffer.i)
1657
+ {
1658
+ return false; // Not enough read.
1659
+ }
1660
+ assert(_readBuffer.i > _readI);
1661
+ return true;
1662
+ }
1663
+
1664
+ void
1665
+ IceInternal::WSTransceiver::prepareWriteHeader(uint8_t opCode, IceInternal::Buffer::Container::size_type payloadLength)
1666
+ {
1667
+ //
1668
+ // We need to prepare the frame header.
1669
+ //
1670
+ _writeBuffer.b.resize(_writeBufferSize);
1671
+ _writeBuffer.i = _writeBuffer.b.begin();
1672
+
1673
+ //
1674
+ // Set the opcode - this is the one and only data frame.
1675
+ //
1676
+ *_writeBuffer.i++ = static_cast<byte>(opCode | FLAG_FINAL);
1677
+
1678
+ //
1679
+ // Set the payload length.
1680
+ //
1681
+ if (payloadLength <= 125)
1682
+ {
1683
+ *_writeBuffer.i++ = static_cast<byte>(payloadLength);
1684
+ }
1685
+ else if (payloadLength > 125 && payloadLength <= USHRT_MAX)
1686
+ {
1687
+ //
1688
+ // Use an extra 16 bits to encode the payload length.
1689
+ //
1690
+ *_writeBuffer.i++ = byte{126};
1691
+ *reinterpret_cast<uint16_t*>(_writeBuffer.i) = htons(static_cast<uint16_t>(payloadLength));
1692
+ _writeBuffer.i += 2;
1693
+ }
1694
+ else if (payloadLength > USHRT_MAX)
1695
+ {
1696
+ //
1697
+ // Use an extra 64 bits to encode the payload length.
1698
+ //
1699
+ *_writeBuffer.i++ = byte{127};
1700
+ ice_htonll(static_cast<int64_t>(payloadLength), _writeBuffer.i);
1701
+ _writeBuffer.i += 8;
1702
+ }
1703
+
1704
+ if (!_incoming)
1705
+ {
1706
+ //
1707
+ // Add a random 32-bit mask to every outgoing frame, copy the payload data,
1708
+ // and apply the mask.
1709
+ //
1710
+ _writeBuffer.b[1] |= byte{FLAG_MASKED};
1711
+ IceInternal::generateRandom(reinterpret_cast<char*>(_writeMask), sizeof(_writeMask));
1712
+ memcpy(_writeBuffer.i, _writeMask, sizeof(_writeMask));
1713
+ _writeBuffer.i += sizeof(_writeMask);
1714
+ }
1715
+ }