zeroc-ice 3.7.9.1 → 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 (1215) 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/slice/Glacier2/Metrics.ice +47 -0
  436. data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +55 -0
  437. data/dist/ice/slice/Glacier2/Router.ice +93 -0
  438. data/dist/ice/slice/Glacier2/SSLInfo.ice +42 -0
  439. data/dist/ice/slice/Glacier2/Session.ice +133 -0
  440. data/dist/ice/slice/Ice/BuiltinSequences.ice +54 -0
  441. data/dist/ice/slice/Ice/Context.ice +24 -0
  442. data/dist/ice/slice/Ice/EndpointTypes.ice +50 -0
  443. data/dist/ice/slice/Ice/Identity.ice +36 -0
  444. data/dist/ice/slice/Ice/Locator.ice +74 -0
  445. data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
  446. data/dist/ice/slice/Ice/Metrics.ice +201 -0
  447. data/dist/ice/slice/Ice/OperationMode.ice +38 -0
  448. data/dist/ice/slice/Ice/Process.ice +28 -0
  449. data/dist/ice/slice/Ice/PropertiesAdmin.ice +37 -0
  450. data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
  451. data/dist/ice/slice/Ice/RemoteLogger.ice +126 -0
  452. data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
  453. data/dist/ice/slice/Ice/Router.ice +54 -0
  454. data/dist/ice/slice/Ice/SliceChecksumDict.ice +18 -0
  455. data/dist/ice/slice/Ice/Version.ice +43 -0
  456. data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
  457. data/dist/ice/slice/IceGrid/Admin.ice +981 -0
  458. data/dist/ice/slice/IceGrid/Descriptor.ice +519 -0
  459. data/dist/ice/slice/IceGrid/Exception.ice +98 -0
  460. data/dist/ice/slice/IceGrid/FileParser.ice +36 -0
  461. data/dist/ice/slice/IceGrid/Registry.ice +130 -0
  462. data/dist/ice/slice/IceGrid/Session.ice +64 -0
  463. data/dist/ice/slice/IceGrid/UserAccountMapper.ice +34 -0
  464. data/dist/ice/slice/IceStorm/IceStorm.ice +186 -0
  465. data/dist/ice/slice/IceStorm/Metrics.ice +41 -0
  466. data/dist/lib/Glacier2/Metrics.rb +41 -0
  467. data/dist/lib/Glacier2/PermissionsVerifier.rb +61 -0
  468. data/dist/lib/Glacier2/Router.rb +73 -0
  469. data/dist/lib/Glacier2/SSLInfo.rb +64 -0
  470. data/dist/lib/Glacier2/Session.rb +187 -0
  471. data/dist/lib/Glacier2.rb +7 -0
  472. data/dist/lib/Ice/BuiltinSequences.rb +48 -0
  473. data/dist/lib/Ice/CompressBatch.rb +50 -0
  474. data/dist/lib/Ice/Context.rb +12 -0
  475. data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
  476. data/dist/lib/Ice/EndpointTypes.rb +28 -0
  477. data/dist/lib/Ice/Exception.rb +20 -0
  478. data/dist/lib/Ice/Identity.rb +47 -0
  479. data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
  480. data/dist/lib/Ice/InitializationData.rb +12 -0
  481. data/dist/lib/Ice/LocalExceptions.rb +168 -0
  482. data/dist/lib/Ice/Locator.rb +83 -0
  483. data/dist/lib/Ice/LocatorRegistry.rb +73 -0
  484. data/dist/lib/Ice/Metrics.rb +290 -0
  485. data/dist/lib/Ice/OperationMode.rb +58 -0
  486. data/dist/lib/Ice/Process.rb +34 -0
  487. data/dist/lib/Ice/PropertiesAdmin.rb +39 -0
  488. data/dist/lib/Ice/PropertyDict.rb +12 -0
  489. data/dist/lib/Ice/Proxy.rb +85 -0
  490. data/dist/lib/Ice/ProxyFunctions.rb +69 -0
  491. data/dist/lib/Ice/RemoteLogger.rb +176 -0
  492. data/dist/lib/Ice/ReplyStatus.rb +65 -0
  493. data/dist/lib/Ice/Router.rb +59 -0
  494. data/dist/lib/Ice/SliceChecksumDict.rb +12 -0
  495. data/dist/lib/Ice/SliceUtil.rb +41 -0
  496. data/dist/lib/Ice/Struct.rb +11 -0
  497. data/dist/lib/Ice/ToStringMode.rb +50 -0
  498. data/dist/lib/Ice/Value.rb +93 -0
  499. data/dist/lib/Ice/Version.rb +78 -0
  500. data/dist/lib/Ice.rb +37 -0
  501. data/dist/lib/IceBox/ServiceManager.rb +104 -0
  502. data/dist/lib/IceBox.rb +3 -0
  503. data/dist/lib/IceGrid/Admin.rb +1208 -0
  504. data/dist/lib/IceGrid/Descriptor.rb +989 -0
  505. data/dist/lib/IceGrid/Exception.rb +145 -0
  506. data/dist/lib/IceGrid/FileParser.rb +41 -0
  507. data/dist/lib/IceGrid/Registry.rb +168 -0
  508. data/dist/lib/IceGrid/Session.rb +56 -0
  509. data/dist/lib/IceGrid/UserAccountMapper.rb +38 -0
  510. data/dist/lib/IceGrid.rb +9 -0
  511. data/dist/lib/IceStorm/IceStorm.rb +251 -0
  512. data/dist/lib/IceStorm/Metrics.rb +55 -0
  513. data/dist/lib/IceStorm.rb +4 -0
  514. data/extconf.rb +89 -0
  515. data/ice.gemspec +22 -17
  516. data/scripts/slice2rb +10 -0
  517. metadata +536 -712
  518. data/ICE_LICENSE +0 -48
  519. data/LICENSE +0 -340
  520. data/MCPP_LICENSE +0 -29
  521. data/bin/slice2rb +0 -12
  522. data/ext/Communicator.cpp +0 -792
  523. data/ext/Communicator.h +0 -20
  524. data/ext/Config.h +0 -143
  525. data/ext/Connection.cpp +0 -532
  526. data/ext/Connection.h +0 -24
  527. data/ext/Endpoint.cpp +0 -340
  528. data/ext/Endpoint.h +0 -22
  529. data/ext/ImplicitContext.cpp +0 -144
  530. data/ext/ImplicitContext.h +0 -20
  531. data/ext/Init.cpp +0 -49
  532. data/ext/Logger.cpp +0 -147
  533. data/ext/Logger.h +0 -23
  534. data/ext/Operation.cpp +0 -661
  535. data/ext/Operation.h +0 -31
  536. data/ext/Properties.cpp +0 -365
  537. data/ext/Properties.h +0 -20
  538. data/ext/Proxy.cpp +0 -1396
  539. data/ext/Proxy.h +0 -22
  540. data/ext/Slice.cpp +0 -205
  541. data/ext/Slice.h +0 -17
  542. data/ext/Types.cpp +0 -3325
  543. data/ext/Types.h +0 -595
  544. data/ext/Util.cpp +0 -812
  545. data/ext/Util.h +0 -586
  546. data/ext/ValueFactoryManager.cpp +0 -441
  547. data/ext/ValueFactoryManager.h +0 -95
  548. data/ext/extconf.rb +0 -97
  549. data/ext/ice/cpp/include/Ice/Application.h +0 -326
  550. data/ext/ice/cpp/include/Ice/AsyncResult.h +0 -155
  551. data/ext/ice/cpp/include/Ice/AsyncResultF.h +0 -23
  552. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
  553. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +0 -20
  554. data/ext/ice/cpp/include/Ice/Buffer.h +0 -154
  555. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
  556. data/ext/ice/cpp/include/Ice/Comparable.h +0 -205
  557. data/ext/ice/cpp/include/Ice/Config.h +0 -78
  558. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
  559. data/ext/ice/cpp/include/Ice/ConnectionIF.h +0 -38
  560. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
  561. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
  562. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
  563. data/ext/ice/cpp/include/Ice/Dispatcher.h +0 -67
  564. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
  565. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
  566. data/ext/ice/cpp/include/Ice/Exception.h +0 -161
  567. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  568. data/ext/ice/cpp/include/Ice/FactoryTable.h +0 -73
  569. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
  570. data/ext/ice/cpp/include/Ice/Format.h +0 -38
  571. data/ext/ice/cpp/include/Ice/Functional.h +0 -140
  572. data/ext/ice/cpp/include/Ice/GCObject.h +0 -76
  573. data/ext/ice/cpp/include/Ice/Handle.h +0 -182
  574. data/ext/ice/cpp/include/Ice/Ice.h +0 -55
  575. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +0 -377
  576. data/ext/ice/cpp/include/Ice/Incoming.h +0 -225
  577. data/ext/ice/cpp/include/Ice/IncomingAsync.h +0 -186
  578. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
  579. data/ext/ice/cpp/include/Ice/Initialize.h +0 -957
  580. data/ext/ice/cpp/include/Ice/InputStream.h +0 -1514
  581. data/ext/ice/cpp/include/Ice/InstanceF.h +0 -20
  582. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
  583. data/ext/ice/cpp/include/Ice/LocalObject.h +0 -35
  584. data/ext/ice/cpp/include/Ice/LocalObjectF.h +0 -21
  585. data/ext/ice/cpp/include/Ice/LoggerUtil.h +0 -185
  586. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
  587. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
  588. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  589. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +0 -86
  590. data/ext/ice/cpp/include/Ice/Object.h +0 -507
  591. data/ext/ice/cpp/include/Ice/ObjectF.h +0 -30
  592. data/ext/ice/cpp/include/Ice/ObserverHelper.h +0 -182
  593. data/ext/ice/cpp/include/Ice/Optional.h +0 -1114
  594. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +0 -856
  595. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
  596. data/ext/ice/cpp/include/Ice/OutputStream.h +0 -1092
  597. data/ext/ice/cpp/include/Ice/Protocol.h +0 -274
  598. data/ext/ice/cpp/include/Ice/Proxy.h +0 -5154
  599. data/ext/ice/cpp/include/Ice/ProxyF.h +0 -53
  600. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
  601. data/ext/ice/cpp/include/Ice/ProxyHandle.h +0 -318
  602. data/ext/ice/cpp/include/Ice/ReferenceF.h +0 -29
  603. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
  604. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +0 -30
  605. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
  606. data/ext/ice/cpp/include/Ice/SHA1.h +0 -42
  607. data/ext/ice/cpp/include/Ice/ServantManagerF.h +0 -21
  608. data/ext/ice/cpp/include/Ice/Service.h +0 -379
  609. data/ext/ice/cpp/include/Ice/SliceChecksums.h +0 -33
  610. data/ext/ice/cpp/include/Ice/SlicedData.h +0 -172
  611. data/ext/ice/cpp/include/Ice/SlicedDataF.h +0 -40
  612. data/ext/ice/cpp/include/Ice/StreamHelpers.h +0 -1190
  613. data/ext/ice/cpp/include/Ice/StringConverter.h +0 -78
  614. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
  615. data/ext/ice/cpp/include/Ice/UUID.h +0 -19
  616. data/ext/ice/cpp/include/Ice/UniquePtr.h +0 -95
  617. data/ext/ice/cpp/include/Ice/UniqueRef.h +0 -97
  618. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +0 -88
  619. data/ext/ice/cpp/include/Ice/Value.h +0 -139
  620. data/ext/ice/cpp/include/Ice/ValueF.h +0 -21
  621. data/ext/ice/cpp/include/IceSSL/Config.h +0 -21
  622. data/ext/ice/cpp/include/IceSSL/IceSSL.h +0 -28
  623. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
  624. data/ext/ice/cpp/include/IceSSL/Plugin.h +0 -712
  625. data/ext/ice/cpp/include/IceSSL/SChannel.h +0 -72
  626. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
  627. data/ext/ice/cpp/include/IceSSL/UWP.h +0 -62
  628. data/ext/ice/cpp/include/IceUtil/Atomic.h +0 -179
  629. data/ext/ice/cpp/include/IceUtil/Cond.h +0 -317
  630. data/ext/ice/cpp/include/IceUtil/Config.h +0 -424
  631. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
  632. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
  633. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -92
  634. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
  635. data/ext/ice/cpp/include/IceUtil/Exception.h +0 -394
  636. data/ext/ice/cpp/include/IceUtil/FileUtil.h +0 -143
  637. data/ext/ice/cpp/include/IceUtil/Functional.h +0 -389
  638. data/ext/ice/cpp/include/IceUtil/Handle.h +0 -261
  639. data/ext/ice/cpp/include/IceUtil/IceUtil.h +0 -40
  640. data/ext/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  641. data/ext/ice/cpp/include/IceUtil/Iterator.h +0 -31
  642. data/ext/ice/cpp/include/IceUtil/Lock.h +0 -128
  643. data/ext/ice/cpp/include/IceUtil/Monitor.h +0 -243
  644. data/ext/ice/cpp/include/IceUtil/Mutex.h +0 -353
  645. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
  646. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
  647. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
  648. data/ext/ice/cpp/include/IceUtil/Optional.h +0 -433
  649. data/ext/ice/cpp/include/IceUtil/Options.h +0 -135
  650. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
  651. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +0 -14
  652. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
  653. data/ext/ice/cpp/include/IceUtil/Random.h +0 -55
  654. data/ext/ice/cpp/include/IceUtil/RecMutex.h +0 -107
  655. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +0 -53
  656. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
  657. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
  658. data/ext/ice/cpp/include/IceUtil/Shared.h +0 -127
  659. data/ext/ice/cpp/include/IceUtil/StopWatch.h +0 -49
  660. data/ext/ice/cpp/include/IceUtil/StringConverter.h +0 -195
  661. data/ext/ice/cpp/include/IceUtil/StringUtil.h +0 -97
  662. data/ext/ice/cpp/include/IceUtil/Thread.h +0 -174
  663. data/ext/ice/cpp/include/IceUtil/ThreadException.h +0 -94
  664. data/ext/ice/cpp/include/IceUtil/Time.h +0 -205
  665. data/ext/ice/cpp/include/IceUtil/Timer.h +0 -143
  666. data/ext/ice/cpp/include/IceUtil/UUID.h +0 -21
  667. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +0 -37
  668. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +0 -170
  669. data/ext/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  670. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  671. data/ext/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  672. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  673. data/ext/ice/cpp/include/generated/Ice/Current.h +0 -322
  674. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  675. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  676. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +0 -118
  677. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  678. data/ext/ice/cpp/include/generated/Ice/Identity.h +0 -264
  679. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  680. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  681. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  682. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  683. data/ext/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  684. data/ext/ice/cpp/include/generated/Ice/Locator.h +0 -3898
  685. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  686. data/ext/ice/cpp/include/generated/Ice/Logger.h +0 -237
  687. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  688. data/ext/ice/cpp/include/generated/Ice/Metrics.h +0 -4769
  689. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  690. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  691. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  692. data/ext/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  693. data/ext/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  694. data/ext/ice/cpp/include/generated/Ice/Process.h +0 -977
  695. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  696. data/ext/ice/cpp/include/generated/Ice/Properties.h +0 -452
  697. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +0 -1366
  698. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  699. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +0 -2707
  700. data/ext/ice/cpp/include/generated/Ice/Router.h +0 -1850
  701. data/ext/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  702. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  703. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  704. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +0 -84
  705. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  706. data/ext/ice/cpp/include/generated/Ice/Version.h +0 -357
  707. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  708. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  709. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  710. data/ext/ice/cpp/src/Ice/ACM.cpp +0 -380
  711. data/ext/ice/cpp/src/Ice/ACM.h +0 -119
  712. data/ext/ice/cpp/src/Ice/ACMF.h +0 -30
  713. data/ext/ice/cpp/src/Ice/Acceptor.cpp +0 -16
  714. data/ext/ice/cpp/src/Ice/Acceptor.h +0 -37
  715. data/ext/ice/cpp/src/Ice/AcceptorF.h +0 -25
  716. data/ext/ice/cpp/src/Ice/ArgVector.cpp +0 -59
  717. data/ext/ice/cpp/src/Ice/ArgVector.h +0 -36
  718. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
  719. data/ext/ice/cpp/src/Ice/Base64.cpp +0 -263
  720. data/ext/ice/cpp/src/Ice/Base64.h +0 -31
  721. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +0 -250
  722. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +0 -59
  723. data/ext/ice/cpp/src/Ice/Buffer.cpp +0 -155
  724. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +0 -49
  725. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +0 -407
  726. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +0 -87
  727. data/ext/ice/cpp/src/Ice/Communicator.cpp +0 -79
  728. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +0 -61
  729. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
  730. data/ext/ice/cpp/src/Ice/CommunicatorI.h +0 -167
  731. data/ext/ice/cpp/src/Ice/Cond.cpp +0 -381
  732. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +0 -348
  733. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +0 -72
  734. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +0 -24
  735. data/ext/ice/cpp/src/Ice/Connection.cpp +0 -155
  736. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +0 -61
  737. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +0 -1972
  738. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +0 -264
  739. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +0 -30
  740. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +0 -3670
  741. data/ext/ice/cpp/src/Ice/ConnectionI.h +0 -391
  742. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
  743. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
  744. data/ext/ice/cpp/src/Ice/Connector.cpp +0 -16
  745. data/ext/ice/cpp/src/Ice/Connector.h +0 -32
  746. data/ext/ice/cpp/src/Ice/ConnectorF.h +0 -21
  747. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +0 -179
  748. data/ext/ice/cpp/src/Ice/Current.cpp +0 -62
  749. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +0 -161
  750. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +0 -52
  751. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +0 -21
  752. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
  753. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +0 -291
  754. data/ext/ice/cpp/src/Ice/Endpoint.cpp +0 -147
  755. data/ext/ice/cpp/src/Ice/EndpointF.cpp +0 -61
  756. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +0 -189
  757. data/ext/ice/cpp/src/Ice/EndpointFactory.h +0 -117
  758. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +0 -21
  759. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +0 -213
  760. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +0 -47
  761. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +0 -21
  762. data/ext/ice/cpp/src/Ice/EndpointI.cpp +0 -98
  763. data/ext/ice/cpp/src/Ice/EndpointI.h +0 -218
  764. data/ext/ice/cpp/src/Ice/EndpointIF.h +0 -49
  765. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +0 -51
  766. data/ext/ice/cpp/src/Ice/EventHandler.cpp +0 -32
  767. data/ext/ice/cpp/src/Ice/EventHandler.h +0 -81
  768. data/ext/ice/cpp/src/Ice/EventHandlerF.h +0 -24
  769. data/ext/ice/cpp/src/Ice/Exception.cpp +0 -845
  770. data/ext/ice/cpp/src/Ice/FacetMap.cpp +0 -49
  771. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
  772. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
  773. data/ext/ice/cpp/src/Ice/GCObject.cpp +0 -442
  774. data/ext/ice/cpp/src/Ice/HashUtil.h +0 -53
  775. data/ext/ice/cpp/src/Ice/HttpParser.cpp +0 -684
  776. data/ext/ice/cpp/src/Ice/HttpParser.h +0 -117
  777. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +0 -756
  778. data/ext/ice/cpp/src/Ice/IPEndpointI.h +0 -162
  779. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +0 -28
  780. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
  781. data/ext/ice/cpp/src/Ice/Identity.cpp +0 -57
  782. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +0 -75
  783. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +0 -61
  784. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
  785. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
  786. data/ext/ice/cpp/src/Ice/Incoming.cpp +0 -795
  787. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
  788. data/ext/ice/cpp/src/Ice/IncomingRequest.h +0 -33
  789. data/ext/ice/cpp/src/Ice/Initialize.cpp +0 -654
  790. data/ext/ice/cpp/src/Ice/InputStream.cpp +0 -2741
  791. data/ext/ice/cpp/src/Ice/Instance.cpp +0 -1971
  792. data/ext/ice/cpp/src/Ice/Instance.h +0 -235
  793. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +0 -188
  794. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +0 -66
  795. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +0 -1094
  796. data/ext/ice/cpp/src/Ice/InstrumentationI.h +0 -256
  797. data/ext/ice/cpp/src/Ice/LocalException.cpp +0 -3262
  798. data/ext/ice/cpp/src/Ice/LocalObject.cpp +0 -23
  799. data/ext/ice/cpp/src/Ice/Locator.cpp +0 -2042
  800. data/ext/ice/cpp/src/Ice/LocatorF.cpp +0 -63
  801. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +0 -889
  802. data/ext/ice/cpp/src/Ice/LocatorInfo.h +0 -189
  803. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +0 -29
  804. data/ext/ice/cpp/src/Ice/Logger.cpp +0 -73
  805. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +0 -956
  806. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +0 -41
  807. data/ext/ice/cpp/src/Ice/LoggerF.cpp +0 -61
  808. data/ext/ice/cpp/src/Ice/LoggerI.cpp +0 -261
  809. data/ext/ice/cpp/src/Ice/LoggerI.h +0 -52
  810. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +0 -100
  811. data/ext/ice/cpp/src/Ice/Metrics.cpp +0 -2352
  812. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +0 -694
  813. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
  814. data/ext/ice/cpp/src/Ice/Network.cpp +0 -3075
  815. data/ext/ice/cpp/src/Ice/Network.h +0 -371
  816. data/ext/ice/cpp/src/Ice/NetworkF.h +0 -23
  817. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +0 -324
  818. data/ext/ice/cpp/src/Ice/NetworkProxy.h +0 -72
  819. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +0 -21
  820. data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +0 -57
  821. data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +0 -40
  822. data/ext/ice/cpp/src/Ice/Object.cpp +0 -435
  823. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +0 -79
  824. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +0 -61
  825. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +0 -291
  826. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +0 -53
  827. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +0 -25
  828. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +0 -1530
  829. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +0 -159
  830. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +0 -75
  831. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +0 -56
  832. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +0 -408
  833. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +0 -74
  834. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +0 -1322
  835. data/ext/ice/cpp/src/Ice/OutputStream.cpp +0 -1367
  836. data/ext/ice/cpp/src/Ice/Plugin.cpp +0 -87
  837. data/ext/ice/cpp/src/Ice/PluginF.cpp +0 -61
  838. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +0 -503
  839. data/ext/ice/cpp/src/Ice/PluginManagerI.h +0 -61
  840. data/ext/ice/cpp/src/Ice/Process.cpp +0 -471
  841. data/ext/ice/cpp/src/Ice/ProcessF.cpp +0 -63
  842. data/ext/ice/cpp/src/Ice/Properties.cpp +0 -78
  843. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +0 -603
  844. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
  845. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
  846. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +0 -63
  847. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +0 -747
  848. data/ext/ice/cpp/src/Ice/PropertiesI.h +0 -70
  849. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +0 -1429
  850. data/ext/ice/cpp/src/Ice/PropertyNames.h +0 -78
  851. data/ext/ice/cpp/src/Ice/Protocol.cpp +0 -124
  852. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +0 -131
  853. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +0 -93
  854. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +0 -21
  855. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +0 -51
  856. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +0 -64
  857. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
  858. data/ext/ice/cpp/src/Ice/Proxy.cpp +0 -1601
  859. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
  860. data/ext/ice/cpp/src/Ice/ProxyFactory.h +0 -57
  861. data/ext/ice/cpp/src/Ice/Reference.cpp +0 -2046
  862. data/ext/ice/cpp/src/Ice/Reference.h +0 -323
  863. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +0 -888
  864. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +0 -76
  865. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +0 -19
  866. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
  867. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
  868. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +0 -1171
  869. data/ext/ice/cpp/src/Ice/ReplyStatus.h +0 -24
  870. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +0 -37
  871. data/ext/ice/cpp/src/Ice/RequestHandler.h +0 -78
  872. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
  873. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
  874. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
  875. data/ext/ice/cpp/src/Ice/ResponseHandler.h +0 -43
  876. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +0 -157
  877. data/ext/ice/cpp/src/Ice/RetryQueue.h +0 -66
  878. data/ext/ice/cpp/src/Ice/RetryQueueF.h +0 -19
  879. data/ext/ice/cpp/src/Ice/Router.cpp +0 -977
  880. data/ext/ice/cpp/src/Ice/RouterF.cpp +0 -63
  881. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +0 -379
  882. data/ext/ice/cpp/src/Ice/RouterInfo.h +0 -152
  883. data/ext/ice/cpp/src/Ice/RouterInfoF.h +0 -25
  884. data/ext/ice/cpp/src/Ice/SHA1.cpp +0 -185
  885. data/ext/ice/cpp/src/Ice/Selector.cpp +0 -1537
  886. data/ext/ice/cpp/src/Ice/Selector.h +0 -308
  887. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +0 -75
  888. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +0 -61
  889. data/ext/ice/cpp/src/Ice/ServantManager.cpp +0 -480
  890. data/ext/ice/cpp/src/Ice/ServantManager.h +0 -69
  891. data/ext/ice/cpp/src/Ice/SharedContext.h +0 -46
  892. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +0 -49
  893. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
  894. data/ext/ice/cpp/src/Ice/SlicedData.cpp +0 -127
  895. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +0 -682
  896. data/ext/ice/cpp/src/Ice/StreamSocket.h +0 -92
  897. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
  898. data/ext/ice/cpp/src/Ice/StringUtil.h +0 -30
  899. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +0 -166
  900. data/ext/ice/cpp/src/Ice/SysLoggerI.h +0 -37
  901. data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +0 -66
  902. data/ext/ice/cpp/src/Ice/SystemdJournalI.h +0 -39
  903. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +0 -355
  904. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +0 -69
  905. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +0 -127
  906. data/ext/ice/cpp/src/Ice/TcpConnector.h +0 -45
  907. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +0 -385
  908. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +0 -90
  909. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +0 -135
  910. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +0 -58
  911. data/ext/ice/cpp/src/Ice/Thread.cpp +0 -811
  912. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +0 -1328
  913. data/ext/ice/cpp/src/Ice/ThreadPool.h +0 -393
  914. data/ext/ice/cpp/src/Ice/Timer.cpp +0 -263
  915. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +0 -38
  916. data/ext/ice/cpp/src/Ice/TraceLevels.h +0 -45
  917. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +0 -21
  918. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +0 -478
  919. data/ext/ice/cpp/src/Ice/TraceUtil.h +0 -30
  920. data/ext/ice/cpp/src/Ice/Transceiver.cpp +0 -18
  921. data/ext/ice/cpp/src/Ice/Transceiver.h +0 -49
  922. data/ext/ice/cpp/src/Ice/TransceiverF.h +0 -33
  923. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +0 -136
  924. data/ext/ice/cpp/src/Ice/UdpConnector.h +0 -45
  925. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +0 -515
  926. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +0 -95
  927. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -1153
  928. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +0 -117
  929. data/ext/ice/cpp/src/Ice/Value.cpp +0 -76
  930. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +0 -83
  931. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
  932. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
  933. data/ext/ice/cpp/src/Ice/Version.cpp +0 -57
  934. data/ext/ice/cpp/src/Ice/VirtualShared.h +0 -38
  935. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +0 -92
  936. data/ext/ice/cpp/src/Ice/WSAcceptor.h +0 -52
  937. data/ext/ice/cpp/src/Ice/WSConnector.cpp +0 -102
  938. data/ext/ice/cpp/src/Ice/WSConnector.h +0 -43
  939. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +0 -508
  940. data/ext/ice/cpp/src/Ice/WSEndpoint.h +0 -93
  941. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +0 -1747
  942. data/ext/ice/cpp/src/Ice/WSTransceiver.h +0 -141
  943. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +0 -915
  944. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +0 -1889
  945. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +0 -265
  946. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +0 -109
  947. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +0 -608
  948. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +0 -228
  949. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +0 -176
  950. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +0 -36
  951. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +0 -730
  952. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  953. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +0 -47
  954. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +0 -1048
  955. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
  956. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
  957. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
  958. data/ext/ice/cpp/src/IceSSL/CertificateI.h +0 -64
  959. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +0 -75
  960. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +0 -61
  961. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
  962. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
  963. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
  964. data/ext/ice/cpp/src/IceSSL/EndpointI.h +0 -100
  965. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +0 -75
  966. data/ext/ice/cpp/src/IceSSL/Instance.cpp +0 -28
  967. data/ext/ice/cpp/src/IceSSL/Instance.h +0 -37
  968. data/ext/ice/cpp/src/IceSSL/InstanceF.h +0 -33
  969. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
  970. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
  971. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
  972. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
  973. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
  974. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  975. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
  976. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
  977. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
  978. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  979. data/ext/ice/cpp/src/IceSSL/PluginI.h +0 -67
  980. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +0 -490
  981. data/ext/ice/cpp/src/IceSSL/RFC2253.h +0 -62
  982. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
  983. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
  984. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
  985. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
  986. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
  987. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
  988. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
  989. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
  990. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
  991. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
  992. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
  993. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
  994. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
  995. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
  996. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
  997. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  998. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
  999. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  1000. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
  1001. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
  1002. data/ext/ice/cpp/src/IceSSL/TrustManager.h +0 -46
  1003. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
  1004. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +0 -266
  1005. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +0 -338
  1006. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +0 -41
  1007. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +0 -26
  1008. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +0 -89
  1009. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +0 -383
  1010. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +0 -71
  1011. data/ext/ice/cpp/src/IceSSL/Util.cpp +0 -192
  1012. data/ext/ice/cpp/src/IceSSL/Util.h +0 -99
  1013. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +0 -157
  1014. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
  1015. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
  1016. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
  1017. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +0 -484
  1018. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
  1019. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
  1020. data/ext/ice/cpp/src/IceUtil/Options.cpp +0 -1051
  1021. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
  1022. data/ext/ice/cpp/src/IceUtil/Random.cpp +0 -180
  1023. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +0 -242
  1024. data/ext/ice/cpp/src/IceUtil/Shared.cpp +0 -71
  1025. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  1026. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1180
  1027. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
  1028. data/ext/ice/cpp/src/IceUtil/Time.cpp +0 -307
  1029. data/ext/ice/cpp/src/IceUtil/UUID.cpp +0 -169
  1030. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
  1031. data/ext/ice/cpp/src/IceUtil/Unicode.h +0 -43
  1032. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
  1033. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
  1034. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
  1035. data/ext/ice/cpp/src/Slice/Checksum.cpp +0 -447
  1036. data/ext/ice/cpp/src/Slice/Checksum.h +0 -21
  1037. data/ext/ice/cpp/src/Slice/FileTracker.cpp +0 -146
  1038. data/ext/ice/cpp/src/Slice/FileTracker.h +0 -66
  1039. data/ext/ice/cpp/src/Slice/Grammar.cpp +0 -4793
  1040. data/ext/ice/cpp/src/Slice/Grammar.h +0 -118
  1041. data/ext/ice/cpp/src/Slice/GrammarUtil.h +0 -228
  1042. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +0 -5154
  1043. data/ext/ice/cpp/src/Slice/JavaUtil.h +0 -398
  1044. data/ext/ice/cpp/src/Slice/MD5.cpp +0 -52
  1045. data/ext/ice/cpp/src/Slice/MD5.h +0 -39
  1046. data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -393
  1047. data/ext/ice/cpp/src/Slice/MD5I.h +0 -91
  1048. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
  1049. data/ext/ice/cpp/src/Slice/PHPUtil.h +0 -36
  1050. data/ext/ice/cpp/src/Slice/Parser.cpp +0 -7058
  1051. data/ext/ice/cpp/src/Slice/Parser.h +0 -1174
  1052. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +0 -797
  1053. data/ext/ice/cpp/src/Slice/Preprocessor.h +0 -60
  1054. data/ext/ice/cpp/src/Slice/Python.cpp +0 -830
  1055. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
  1056. data/ext/ice/cpp/src/Slice/PythonUtil.h +0 -70
  1057. data/ext/ice/cpp/src/Slice/Ruby.cpp +0 -350
  1058. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
  1059. data/ext/ice/cpp/src/Slice/RubyUtil.h +0 -49
  1060. data/ext/ice/cpp/src/Slice/Scanner.cpp +0 -2807
  1061. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +0 -424
  1062. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +0 -456
  1063. data/ext/ice/cpp/src/Slice/Util.h +0 -50
  1064. data/ext/ice/mcpp/CMakeLists.txt +0 -80
  1065. data/ext/ice/mcpp/LICENSE +0 -29
  1066. data/ext/ice/mcpp/Makefile +0 -63
  1067. data/ext/ice/mcpp/README.md +0 -32
  1068. data/ext/ice/mcpp/internal.H +0 -530
  1069. data/ext/ice/mcpp/mcpp.gyp +0 -88
  1070. data/lib/Glacier2/Metrics.rb +0 -56
  1071. data/lib/Glacier2/PermissionsVerifier.rb +0 -93
  1072. data/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  1073. data/lib/Glacier2/Router.rb +0 -95
  1074. data/lib/Glacier2/RouterF.rb +0 -25
  1075. data/lib/Glacier2/SSLInfo.rb +0 -72
  1076. data/lib/Glacier2/Session.rb +0 -247
  1077. data/lib/Glacier2.rb +0 -7
  1078. data/lib/Ice/BuiltinSequences.rb +0 -60
  1079. data/lib/Ice/Communicator.rb +0 -87
  1080. data/lib/Ice/CommunicatorF.rb +0 -24
  1081. data/lib/Ice/Connection.rb +0 -413
  1082. data/lib/Ice/ConnectionF.rb +0 -32
  1083. data/lib/Ice/Current.rb +0 -141
  1084. data/lib/Ice/Endpoint.rb +0 -187
  1085. data/lib/Ice/EndpointF.rb +0 -48
  1086. data/lib/Ice/EndpointTypes.rb +0 -69
  1087. data/lib/Ice/FacetMap.rb +0 -24
  1088. data/lib/Ice/Identity.rb +0 -63
  1089. data/lib/Ice/ImplicitContext.rb +0 -26
  1090. data/lib/Ice/ImplicitContextF.rb +0 -24
  1091. data/lib/Ice/Instrumentation.rb +0 -169
  1092. data/lib/Ice/InstrumentationF.rb +0 -31
  1093. data/lib/Ice/LocalException.rb +0 -1031
  1094. data/lib/Ice/Locator.rb +0 -196
  1095. data/lib/Ice/LocatorF.rb +0 -30
  1096. data/lib/Ice/Logger.rb +0 -24
  1097. data/lib/Ice/LoggerF.rb +0 -24
  1098. data/lib/Ice/Metrics.rb +0 -337
  1099. data/lib/Ice/ObjectAdapter.rb +0 -29
  1100. data/lib/Ice/ObjectAdapterF.rb +0 -24
  1101. data/lib/Ice/ObjectFactory.rb +0 -24
  1102. data/lib/Ice/Plugin.rb +0 -30
  1103. data/lib/Ice/PluginF.rb +0 -28
  1104. data/lib/Ice/Process.rb +0 -53
  1105. data/lib/Ice/ProcessF.rb +0 -25
  1106. data/lib/Ice/Properties.rb +0 -25
  1107. data/lib/Ice/PropertiesAdmin.rb +0 -63
  1108. data/lib/Ice/PropertiesF.rb +0 -29
  1109. data/lib/Ice/RemoteLogger.rb +0 -207
  1110. data/lib/Ice/Router.rb +0 -87
  1111. data/lib/Ice/RouterF.rb +0 -25
  1112. data/lib/Ice/ServantLocator.rb +0 -26
  1113. data/lib/Ice/ServantLocatorF.rb +0 -24
  1114. data/lib/Ice/SliceChecksumDict.rb +0 -24
  1115. data/lib/Ice/ValueFactory.rb +0 -28
  1116. data/lib/Ice/Version.rb +0 -90
  1117. data/lib/Ice.rb +0 -673
  1118. data/lib/IceBox/IceBox.rb +0 -164
  1119. data/lib/IceBox.rb +0 -5
  1120. data/lib/IceGrid/Admin.rb +0 -1196
  1121. data/lib/IceGrid/Descriptor.rb +0 -1034
  1122. data/lib/IceGrid/Exception.rb +0 -376
  1123. data/lib/IceGrid/FileParser.rb +0 -65
  1124. data/lib/IceGrid/PluginFacade.rb +0 -35
  1125. data/lib/IceGrid/Registry.rb +0 -209
  1126. data/lib/IceGrid/Session.rb +0 -71
  1127. data/lib/IceGrid/UserAccountMapper.rb +0 -61
  1128. data/lib/IceGrid.rb +0 -9
  1129. data/lib/IcePatch2/FileInfo.rb +0 -115
  1130. data/lib/IcePatch2/FileServer.rb +0 -123
  1131. data/lib/IcePatch2.rb +0 -5
  1132. data/lib/IceStorm/IceStorm.rb +0 -332
  1133. data/lib/IceStorm/Metrics.rb +0 -73
  1134. data/lib/IceStorm.rb +0 -6
  1135. data/slice/Glacier2/Metrics.ice +0 -88
  1136. data/slice/Glacier2/PermissionsVerifier.ice +0 -111
  1137. data/slice/Glacier2/PermissionsVerifierF.ice +0 -30
  1138. data/slice/Glacier2/Router.ice +0 -186
  1139. data/slice/Glacier2/RouterF.ice +0 -29
  1140. data/slice/Glacier2/SSLInfo.ice +0 -59
  1141. data/slice/Glacier2/Session.ice +0 -274
  1142. data/slice/Ice/BuiltinSequences.ice +0 -59
  1143. data/slice/Ice/Communicator.ice +0 -676
  1144. data/slice/Ice/CommunicatorF.ice +0 -31
  1145. data/slice/Ice/Connection.ice +0 -516
  1146. data/slice/Ice/ConnectionF.ice +0 -33
  1147. data/slice/Ice/Current.ice +0 -170
  1148. data/slice/Ice/Endpoint.ice +0 -291
  1149. data/slice/Ice/EndpointF.ice +0 -43
  1150. data/slice/Ice/EndpointTypes.ice +0 -48
  1151. data/slice/Ice/FacetMap.ice +0 -36
  1152. data/slice/Ice/Identity.ice +0 -75
  1153. data/slice/Ice/ImplicitContext.ice +0 -119
  1154. data/slice/Ice/ImplicitContextF.ice +0 -30
  1155. data/slice/Ice/Instrumentation.ice +0 -509
  1156. data/slice/Ice/InstrumentationF.ice +0 -38
  1157. data/slice/Ice/LocalException.ice +0 -1040
  1158. data/slice/Ice/Locator.ice +0 -239
  1159. data/slice/Ice/LocatorF.ice +0 -32
  1160. data/slice/Ice/Logger.ice +0 -99
  1161. data/slice/Ice/LoggerF.ice +0 -31
  1162. data/slice/Ice/Metrics.ice +0 -436
  1163. data/slice/Ice/ObjectAdapter.ice +0 -710
  1164. data/slice/Ice/ObjectAdapterF.ice +0 -31
  1165. data/slice/Ice/ObjectFactory.ice +0 -71
  1166. data/slice/Ice/Plugin.ice +0 -131
  1167. data/slice/Ice/PluginF.ice +0 -36
  1168. data/slice/Ice/Process.ice +0 -64
  1169. data/slice/Ice/ProcessF.ice +0 -31
  1170. data/slice/Ice/Properties.ice +0 -244
  1171. data/slice/Ice/PropertiesAdmin.ice +0 -87
  1172. data/slice/Ice/PropertiesF.ice +0 -32
  1173. data/slice/Ice/RemoteLogger.ice +0 -226
  1174. data/slice/Ice/Router.ice +0 -103
  1175. data/slice/Ice/RouterF.ice +0 -31
  1176. data/slice/Ice/ServantLocator.ice +0 -136
  1177. data/slice/Ice/ServantLocatorF.ice +0 -31
  1178. data/slice/Ice/SliceChecksumDict.ice +0 -36
  1179. data/slice/Ice/ValueFactory.ice +0 -133
  1180. data/slice/Ice/Version.ice +0 -51
  1181. data/slice/IceBT/ConnectionInfo.ice +0 -59
  1182. data/slice/IceBT/EndpointInfo.ice +0 -57
  1183. data/slice/IceBT/Types.ice +0 -45
  1184. data/slice/IceBox/IceBox.ice +0 -216
  1185. data/slice/IceDiscovery/IceDiscovery.ice +0 -98
  1186. data/slice/IceGrid/Admin.ice +0 -1957
  1187. data/slice/IceGrid/Descriptor.ice +0 -1094
  1188. data/slice/IceGrid/Exception.ice +0 -396
  1189. data/slice/IceGrid/FileParser.ice +0 -72
  1190. data/slice/IceGrid/PluginFacade.ice +0 -329
  1191. data/slice/IceGrid/Registry.ice +0 -269
  1192. data/slice/IceGrid/Session.ice +0 -128
  1193. data/slice/IceGrid/UserAccountMapper.ice +0 -69
  1194. data/slice/IceIAP/ConnectionInfo.ice +0 -74
  1195. data/slice/IceIAP/EndpointInfo.ice +0 -68
  1196. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +0 -83
  1197. data/slice/IcePatch2/FileInfo.ice +0 -85
  1198. data/slice/IcePatch2/FileServer.ice +0 -191
  1199. data/slice/IceSSL/ConnectionInfo.ice +0 -54
  1200. data/slice/IceSSL/ConnectionInfoF.ice +0 -31
  1201. data/slice/IceSSL/EndpointInfo.ice +0 -45
  1202. data/slice/IceStorm/IceStorm.ice +0 -414
  1203. data/slice/IceStorm/Metrics.ice +0 -83
  1204. /data/{ext → dist}/ice/mcpp/config.h +0 -0
  1205. /data/{ext → dist}/ice/mcpp/configed.H +0 -0
  1206. /data/{ext → dist}/ice/mcpp/directive.c +0 -0
  1207. /data/{ext → dist}/ice/mcpp/eval.c +0 -0
  1208. /data/{ext → dist}/ice/mcpp/expand.c +0 -0
  1209. /data/{ext → dist}/ice/mcpp/mbchar.c +0 -0
  1210. /data/{ext → dist}/ice/mcpp/mcpp_lib.h +0 -0
  1211. /data/{ext/ice/mcpp/main.c → dist/ice/mcpp/mcpp_main.c} +0 -0
  1212. /data/{ext → dist}/ice/mcpp/mcpp_out.h +0 -0
  1213. /data/{ext → dist}/ice/mcpp/support.c +0 -0
  1214. /data/{ext → dist}/ice/mcpp/system.H +0 -0
  1215. /data/{ext → dist}/ice/mcpp/system.c +0 -0
data/ext/Types.cpp DELETED
@@ -1,3325 +0,0 @@
1
- //
2
- // Copyright (c) ZeroC, Inc. All rights reserved.
3
- //
4
-
5
- #include <Types.h>
6
- #include <Proxy.h>
7
- #include <Util.h>
8
- #include <IceUtil/InputUtil.h>
9
- #include <IceUtil/OutputUtil.h>
10
- #include <IceUtil/ScopedArray.h>
11
- #include <Ice/InputStream.h>
12
- #include <Ice/LocalException.h>
13
- #include <Ice/OutputStream.h>
14
- #include <Ice/SlicedData.h>
15
- #include <list>
16
- #include <limits>
17
- #include <math.h>
18
-
19
- //
20
- // Required for RHASH_SIZE to work properly with Ruby 1.8.x.
21
- // T_ZOMBIE is only defined in Ruby 1.9.
22
- //
23
- #ifndef T_ZOMBIE
24
- # include "st.h"
25
- #endif
26
-
27
- #ifndef RHASH_SIZE
28
- # define RHASH_SIZE(v) RHASH(v)->tbl->num_entries
29
- #endif
30
-
31
- using namespace std;
32
- using namespace IceRuby;
33
- using namespace IceUtil;
34
- using namespace IceUtilInternal;
35
-
36
- static VALUE _typeInfoClass, _exceptionInfoClass, _unsetTypeClass;
37
-
38
- typedef map<string, ClassInfoPtr> ClassInfoMap;
39
- static ClassInfoMap _classInfoMap;
40
-
41
- typedef map<Ice::Int, ClassInfoPtr> CompactIdMap;
42
- static CompactIdMap _compactIdMap;
43
-
44
- typedef map<string, ProxyInfoPtr> ProxyInfoMap;
45
- static ProxyInfoMap _proxyInfoMap;
46
-
47
- typedef map<string, ExceptionInfoPtr> ExceptionInfoMap;
48
- static ExceptionInfoMap _exceptionInfoMap;
49
-
50
- namespace IceRuby
51
- {
52
-
53
- VALUE Unset;
54
-
55
- class InfoMapDestroyer
56
- {
57
- public:
58
-
59
- ~InfoMapDestroyer();
60
- };
61
- static InfoMapDestroyer infoMapDestroyer;
62
-
63
- string
64
- escapeString(const string& str)
65
- {
66
- static const string basicSourceChars = "abcdefghijklmnopqrstuvwxyz"
67
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
68
- "0123456789"
69
- "_{}[]#()<>%:;.?*+-/^&|~!=,\\\"' ";
70
- static const set<char> charSet(basicSourceChars.begin(), basicSourceChars.end());
71
-
72
- ostringstream out;
73
-
74
- for(string::const_iterator c = str.begin(); c != str.end(); ++c)
75
- {
76
- if(charSet.find(*c) == charSet.end())
77
- {
78
- unsigned char uc = static_cast<unsigned char>(*c); // char may be signed, so make it positive
79
- ostringstream s;
80
- s << "\\"; // Print as octal if not in basic source character set
81
- s.width(3);
82
- s.fill('0');
83
- s << oct;
84
- s << static_cast<unsigned>(uc);
85
- out << s.str();
86
- }
87
- else
88
- {
89
- out << *c; // Print normally if in basic source character set
90
- }
91
- }
92
-
93
- return out.str();
94
- }
95
-
96
- }
97
-
98
- //
99
- // addClassInfo()
100
- //
101
- static void
102
- addClassInfo(const string& id, const ClassInfoPtr& info)
103
- {
104
- //
105
- // Do not assert. An application may load statically-
106
- // translated definitions and then dynamically load
107
- // duplicate definitions.
108
- //
109
- // assert(_classInfoMap.find(id) == _classInfoMap.end());
110
- ClassInfoMap::iterator p = _classInfoMap.find(id);
111
- if(p != _classInfoMap.end())
112
- {
113
- _classInfoMap.erase(p);
114
- }
115
- _classInfoMap.insert(ClassInfoMap::value_type(id, info));
116
- }
117
-
118
- //
119
- // addProxyInfo()
120
- //
121
- static void
122
- addProxyInfo(const string& id, const ProxyInfoPtr& info)
123
- {
124
- //
125
- // Do not assert. An application may load statically-
126
- // translated definitions and then dynamically load
127
- // duplicate definitions.
128
- //
129
- // assert(_proxyInfoMap.find(id) == _proxyInfoMap.end());
130
- ProxyInfoMap::iterator p = _proxyInfoMap.find(id);
131
- if(p != _proxyInfoMap.end())
132
- {
133
- _proxyInfoMap.erase(p);
134
- }
135
- _proxyInfoMap.insert(ProxyInfoMap::value_type(id, info));
136
- }
137
-
138
- //
139
- // lookupProxyInfo()
140
- //
141
- static IceRuby::ProxyInfoPtr
142
- lookupProxyInfo(const string& id)
143
- {
144
- ProxyInfoMap::iterator p = _proxyInfoMap.find(id);
145
- if(p != _proxyInfoMap.end())
146
- {
147
- return p->second;
148
- }
149
- return 0;
150
- }
151
-
152
- //
153
- // addExceptionInfo()
154
- //
155
- static void
156
- addExceptionInfo(const string& id, const ExceptionInfoPtr& info)
157
- {
158
- //
159
- // Do not assert. An application may load statically-
160
- // translated definitions and then dynamically load
161
- // duplicate definitions.
162
- //
163
- // assert(_exceptionInfoMap.find(id) == _exceptionInfoMap.end());
164
- _exceptionInfoMap.insert(ExceptionInfoMap::value_type(id, info));
165
- }
166
-
167
- //
168
- // StreamUtil implementation
169
- //
170
- VALUE IceRuby::StreamUtil::_slicedDataType = Qnil;
171
- VALUE IceRuby::StreamUtil::_sliceInfoType = Qnil;
172
-
173
- IceRuby::StreamUtil::StreamUtil()
174
- {
175
- }
176
-
177
- IceRuby::StreamUtil::~StreamUtil()
178
- {
179
- //
180
- // Make sure we break any cycles among the ObjectReaders in preserved slices.
181
- //
182
- for(set<ObjectReaderPtr>::iterator p = _readers.begin(); p != _readers.end(); ++p)
183
- {
184
- Ice::SlicedDataPtr slicedData = (*p)->getSlicedData();
185
- for(Ice::SliceInfoSeq::const_iterator q = slicedData->slices.begin(); q != slicedData->slices.end(); ++q)
186
- {
187
- //
188
- // Don't just call (*q)->instances.clear(), as releasing references
189
- // to the instances could have unexpected side effects. We exchange
190
- // the vector into a temporary and then let the temporary fall out
191
- // of scope.
192
- //
193
- vector<Ice::ObjectPtr> tmp;
194
- tmp.swap((*q)->instances);
195
- }
196
- }
197
- }
198
-
199
- void
200
- IceRuby::StreamUtil::add(const ReadObjectCallbackPtr& callback)
201
- {
202
- _callbacks.push_back(callback);
203
- }
204
-
205
- void
206
- IceRuby::StreamUtil::add(const ObjectReaderPtr& reader)
207
- {
208
- assert(reader->getSlicedData());
209
- _readers.insert(reader);
210
- }
211
-
212
- void
213
- IceRuby::StreamUtil::updateSlicedData()
214
- {
215
- for(set<ObjectReaderPtr>::iterator p = _readers.begin(); p != _readers.end(); ++p)
216
- {
217
- setSlicedDataMember((*p)->getObject(), (*p)->getSlicedData());
218
- }
219
- }
220
-
221
- void
222
- IceRuby::StreamUtil::setSlicedDataMember(VALUE obj, const Ice::SlicedDataPtr& slicedData)
223
- {
224
- //
225
- // Create a Ruby equivalent of the SlicedData object.
226
- //
227
-
228
- assert(slicedData);
229
-
230
- if(_slicedDataType == Qnil)
231
- {
232
- _slicedDataType = callRuby(rb_path2class, "Ice::SlicedData");
233
- assert(!NIL_P(_slicedDataType));
234
- }
235
- if(_sliceInfoType == Qnil)
236
- {
237
- _sliceInfoType = callRuby(rb_path2class, "Ice::SliceInfo");
238
- assert(!NIL_P(_sliceInfoType));
239
- }
240
-
241
- volatile VALUE sd = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), _slicedDataType);
242
-
243
- volatile VALUE slices = createArray(static_cast<long>(slicedData->slices.size()));
244
-
245
- callRuby(rb_iv_set, sd, "@slices", slices);
246
-
247
- //
248
- // Translate each SliceInfo object into its Ruby equivalent.
249
- //
250
- int i = 0;
251
- for(vector<Ice::SliceInfoPtr>::const_iterator p = slicedData->slices.begin(); p != slicedData->slices.end(); ++p)
252
- {
253
- volatile VALUE slice = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), _sliceInfoType);
254
-
255
- RARRAY_ASET(slices, i, slice);
256
- i++;
257
-
258
- //
259
- // typeId
260
- //
261
- volatile VALUE typeId = createString((*p)->typeId);
262
- callRuby(rb_iv_set, slice, "@typeId", typeId);
263
-
264
- //
265
- // compactId
266
- //
267
- volatile VALUE compactId = INT2FIX((*p)->compactId);
268
- callRuby(rb_iv_set, slice, "@compactId", compactId);
269
-
270
- //
271
- // bytes
272
- //
273
- volatile VALUE bytes = callRuby(rb_str_new,
274
- (*p)->bytes.empty() ? 0 : reinterpret_cast<const char*>(&(*p)->bytes[0]),
275
- static_cast<long>((*p)->bytes.size()));
276
- callRuby(rb_iv_set, slice, "@bytes", bytes);
277
-
278
- //
279
- // instances
280
- //
281
- volatile VALUE instances = createArray(static_cast<long>((*p)->instances.size()));
282
- callRuby(rb_iv_set, slice, "@instances", instances);
283
-
284
- int j = 0;
285
- for(vector<Ice::ObjectPtr>::iterator q = (*p)->instances.begin(); q != (*p)->instances.end(); ++q)
286
- {
287
- //
288
- // Each element in the instances list is an instance of ObjectReader that wraps a Ruby object.
289
- //
290
- assert(*q);
291
- ObjectReaderPtr r = ObjectReaderPtr::dynamicCast(*q);
292
- assert(r);
293
- VALUE o = r->getObject();
294
- assert(o != Qnil); // Should be non-nil.
295
- RARRAY_ASET(instances, j, o);
296
- j++;
297
- }
298
-
299
- //
300
- // hasOptionalMembers
301
- //
302
- callRuby(rb_iv_set, slice, "@hasOptionalMembers", (*p)->hasOptionalMembers ? Qtrue : Qfalse);
303
-
304
- //
305
- // isLastSlice
306
- //
307
- callRuby(rb_iv_set, slice, "@isLastSlice", (*p)->isLastSlice ? Qtrue : Qfalse);
308
- }
309
-
310
- callRuby(rb_iv_set, obj, "@_ice_slicedData", sd);
311
- }
312
-
313
- //
314
- // Instances of preserved class and exception types may have a data member
315
- // named _ice_slicedData which is an instance of the Ruby class Ice::SlicedData.
316
- //
317
- Ice::SlicedDataPtr
318
- IceRuby::StreamUtil::getSlicedDataMember(VALUE obj, ObjectMap* objectMap)
319
- {
320
- Ice::SlicedDataPtr slicedData;
321
-
322
- if(callRuby(rb_ivar_defined, obj, rb_intern("@_ice_slicedData")) == Qtrue)
323
- {
324
- volatile VALUE sd = callRuby(rb_iv_get, obj, "@_ice_slicedData");
325
-
326
- if(sd != Qnil)
327
- {
328
- //
329
- // The "slices" member is an array of Ice::SliceInfo objects.
330
- //
331
- volatile VALUE sl = callRuby(rb_iv_get, sd, "@slices");
332
- assert(TYPE(sl) == T_ARRAY);
333
-
334
- Ice::SliceInfoSeq slices;
335
-
336
- long sz = RARRAY_LEN(sl);
337
- for(long i = 0; i < sz; ++i)
338
- {
339
- volatile VALUE s = RARRAY_AREF(sl, i);
340
-
341
- Ice::SliceInfoPtr info = new Ice::SliceInfo;
342
-
343
- volatile VALUE typeId = callRuby(rb_iv_get, s, "@typeId");
344
- info->typeId = getString(typeId);
345
-
346
- volatile VALUE compactId = callRuby(rb_iv_get, s, "@compactId");
347
- info->compactId = static_cast<Ice::Int>(getInteger(compactId));
348
-
349
- volatile VALUE bytes = callRuby(rb_iv_get, s, "@bytes");
350
- assert(TYPE(bytes) == T_STRING);
351
- const char* str = RSTRING_PTR(bytes);
352
- const long len = RSTRING_LEN(bytes);
353
- if(str != 0 && len != 0)
354
- {
355
- vector<Ice::Byte> vtmp(reinterpret_cast<const Ice::Byte*>(str),
356
- reinterpret_cast<const Ice::Byte*>(str + len));
357
- info->bytes.swap(vtmp);
358
- }
359
-
360
- volatile VALUE instances = callRuby(rb_iv_get, s, "@instances");
361
- assert(TYPE(instances) == T_ARRAY);
362
- long osz = RARRAY_LEN(instances);
363
- for(long j = 0; j < osz; ++j)
364
- {
365
- VALUE o = RARRAY_AREF(instances, j);
366
-
367
- Ice::ObjectPtr writer;
368
-
369
- ObjectMap::iterator k = objectMap->find(o);
370
- if(k == objectMap->end())
371
- {
372
- writer = new ObjectWriter(o, objectMap, 0);
373
- objectMap->insert(ObjectMap::value_type(o, writer));
374
- }
375
- else
376
- {
377
- writer = k->second;
378
- }
379
-
380
- info->instances.push_back(writer);
381
- }
382
-
383
- volatile VALUE hasOptionalMembers = callRuby(rb_iv_get, s, "@hasOptionalMembers");
384
- info->hasOptionalMembers = hasOptionalMembers == Qtrue;
385
-
386
- volatile VALUE isLastSlice = callRuby(rb_iv_get, s, "@isLastSlice");
387
- info->isLastSlice = isLastSlice == Qtrue;
388
-
389
- slices.push_back(info);
390
- }
391
-
392
- slicedData = new Ice::SlicedData(slices);
393
- }
394
- }
395
-
396
- return slicedData;
397
- }
398
-
399
- //
400
- // UnmarshalCallback implementation.
401
- //
402
- IceRuby::UnmarshalCallback::~UnmarshalCallback()
403
- {
404
- }
405
-
406
- //
407
- // TypeInfo implementation.
408
- //
409
- IceRuby::TypeInfo::TypeInfo()
410
- {
411
- }
412
-
413
- bool
414
- IceRuby::TypeInfo::usesClasses() const
415
- {
416
- return false;
417
- }
418
-
419
- void
420
- IceRuby::TypeInfo::unmarshaled(VALUE, VALUE, void*)
421
- {
422
- assert(false);
423
- }
424
-
425
- void
426
- IceRuby::TypeInfo::destroy()
427
- {
428
- }
429
-
430
- //
431
- // PrimitiveInfo implementation.
432
- //
433
- IceRuby::PrimitiveInfo::PrimitiveInfo()
434
- {
435
- }
436
-
437
- IceRuby::PrimitiveInfo::PrimitiveInfo(Kind k) : kind(k)
438
- {
439
- }
440
-
441
- string
442
- IceRuby::PrimitiveInfo::getId() const
443
- {
444
- switch(kind)
445
- {
446
- case KindBool:
447
- return "bool";
448
- case KindByte:
449
- return "byte";
450
- case KindShort:
451
- return "short";
452
- case KindInt:
453
- return "int";
454
- case KindLong:
455
- return "long";
456
- case KindFloat:
457
- return "float";
458
- case KindDouble:
459
- return "double";
460
- case KindString:
461
- return "string";
462
- }
463
- assert(false);
464
- return string();
465
- }
466
-
467
- bool
468
- IceRuby::PrimitiveInfo::validate(VALUE)
469
- {
470
- //
471
- // Ruby supports type coercion, such that it's technically possible for any
472
- // value to be coerced to a primitive type. It would be expensive to perform
473
- // this coercion twice, once to validate and again to marshal, so we skip
474
- // the validation here.
475
- //
476
- return true;
477
- }
478
-
479
- bool
480
- IceRuby::PrimitiveInfo::variableLength() const
481
- {
482
- return kind == KindString;
483
- }
484
-
485
- int
486
- IceRuby::PrimitiveInfo::wireSize() const
487
- {
488
- switch(kind)
489
- {
490
- case KindBool:
491
- case KindByte:
492
- return 1;
493
- case KindShort:
494
- return 2;
495
- case KindInt:
496
- return 4;
497
- case KindLong:
498
- return 8;
499
- case KindFloat:
500
- return 4;
501
- case KindDouble:
502
- return 8;
503
- case KindString:
504
- return 1;
505
- }
506
- assert(false);
507
- return 0;
508
- }
509
-
510
- Ice::OptionalFormat
511
- IceRuby::PrimitiveInfo::optionalFormat() const
512
- {
513
- switch(kind)
514
- {
515
- case KindBool:
516
- case KindByte:
517
- return Ice::OptionalFormatF1;
518
- case KindShort:
519
- return Ice::OptionalFormatF2;
520
- case KindInt:
521
- return Ice::OptionalFormatF4;
522
- case KindLong:
523
- return Ice::OptionalFormatF8;
524
- case KindFloat:
525
- return Ice::OptionalFormatF4;
526
- case KindDouble:
527
- return Ice::OptionalFormatF8;
528
- case KindString:
529
- return Ice::OptionalFormatVSize;
530
- }
531
-
532
- assert(false);
533
- return Ice::OptionalFormatF1;
534
- }
535
-
536
- void
537
- IceRuby::PrimitiveInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap*, bool)
538
- {
539
- switch(kind)
540
- {
541
- case PrimitiveInfo::KindBool:
542
- {
543
- os->write(static_cast<bool>(RTEST(p)));
544
- break;
545
- }
546
- case PrimitiveInfo::KindByte:
547
- {
548
- long i = getInteger(p);
549
- if(i >= 0 && i <= 255)
550
- {
551
- os->write(static_cast<Ice::Byte>(i));
552
- break;
553
- }
554
- throw RubyException(rb_eTypeError, "value is out of range for a byte");
555
- }
556
- case PrimitiveInfo::KindShort:
557
- {
558
- long i = getInteger(p);
559
- if(i >= SHRT_MIN && i <= SHRT_MAX)
560
- {
561
- os->write(static_cast<Ice::Short>(i));
562
- break;
563
- }
564
- throw RubyException(rb_eTypeError, "value is out of range for a short");
565
- }
566
- case PrimitiveInfo::KindInt:
567
- {
568
- long i = getInteger(p);
569
- if(i >= INT_MIN && i <= INT_MAX)
570
- {
571
- os->write(static_cast<Ice::Int>(i));
572
- break;
573
- }
574
- throw RubyException(rb_eTypeError, "value is out of range for an int");
575
- }
576
- case PrimitiveInfo::KindLong:
577
- {
578
- os->write(getLong(p));
579
- break;
580
- }
581
- case PrimitiveInfo::KindFloat:
582
- {
583
- volatile VALUE val = callRuby(rb_Float, p);
584
- if(NIL_P(val))
585
- {
586
- throw RubyException(rb_eTypeError, "unable to convert value to a float");
587
- }
588
- assert(TYPE(val) == T_FLOAT);
589
- double d = static_cast<double>(RFLOAT_VALUE(val));
590
- if(
591
- #if defined(_MSC_VER) && (_MSC_VER <= 1700)
592
- _finite(val) &&
593
- #else
594
- isfinite(d) &&
595
- #endif
596
- (d > numeric_limits<float>::max() || d < -numeric_limits<float>::max()))
597
- {
598
- throw RubyException(rb_eTypeError, "value is out of range for a float");
599
- }
600
- os->write(static_cast<float>(d));
601
- break;
602
- }
603
- case PrimitiveInfo::KindDouble:
604
- {
605
- volatile VALUE val = callRuby(rb_Float, p);
606
- if(NIL_P(val))
607
- {
608
- throw RubyException(rb_eTypeError, "unable to convert value to a double");
609
- }
610
- assert(TYPE(val) == T_FLOAT);
611
- os->write(static_cast<double>(RFLOAT_VALUE(val)));
612
- break;
613
- }
614
- case PrimitiveInfo::KindString:
615
- {
616
- string val = getString(p);
617
- #ifdef HAVE_RUBY_ENCODING_H
618
- os->write(val, false); // Bypass string conversion.
619
- #else
620
- os->write(val, true);
621
- #endif
622
- break;
623
- }
624
- }
625
- }
626
-
627
- void
628
- IceRuby::PrimitiveInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
629
- void* closure, bool)
630
- {
631
- volatile VALUE val = Qnil;
632
- switch(kind)
633
- {
634
- case PrimitiveInfo::KindBool:
635
- {
636
- bool b;
637
- is->read(b);
638
- val = b ? Qtrue : Qfalse;
639
- break;
640
- }
641
- case PrimitiveInfo::KindByte:
642
- {
643
- Ice::Byte b;
644
- is->read(b);
645
- val = callRuby(rb_int2inum, b);
646
- break;
647
- }
648
- case PrimitiveInfo::KindShort:
649
- {
650
- Ice::Short sh;
651
- is->read(sh);
652
- val = callRuby(rb_int2inum, sh);
653
- break;
654
- }
655
- case PrimitiveInfo::KindInt:
656
- {
657
- Ice::Int i;
658
- is->read(i);
659
- val = callRuby(rb_int2inum, i);
660
- break;
661
- }
662
- case PrimitiveInfo::KindLong:
663
- {
664
- Ice::Long l;
665
- is->read(l);
666
- val = callRuby(rb_ll2inum, l);
667
- break;
668
- }
669
- case PrimitiveInfo::KindFloat:
670
- {
671
- Ice::Float f;
672
- is->read(f);
673
- val = callRuby(rb_float_new, f);
674
- break;
675
- }
676
- case PrimitiveInfo::KindDouble:
677
- {
678
- Ice::Double d;
679
- is->read(d);
680
- val = callRuby(rb_float_new, d);
681
- break;
682
- }
683
- case PrimitiveInfo::KindString:
684
- {
685
- string str;
686
- #ifdef HAVE_RUBY_ENCODING_H
687
- is->read(str, false); // Bypass string conversion.
688
- #else
689
- is->read(str, true);
690
- #endif
691
- val = createString(str);
692
- break;
693
- }
694
- }
695
- cb->unmarshaled(val, target, closure);
696
- }
697
-
698
- void
699
- IceRuby::PrimitiveInfo::print(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory*)
700
- {
701
- switch(kind)
702
- {
703
- case PrimitiveInfo::KindBool:
704
- {
705
- out << (RTEST(value) ? "true" : "false");
706
- break;
707
- }
708
- case PrimitiveInfo::KindByte:
709
- case PrimitiveInfo::KindShort:
710
- case PrimitiveInfo::KindInt:
711
- {
712
- out << getInteger(value);
713
- break;
714
- }
715
- case PrimitiveInfo::KindLong:
716
- {
717
- Ice::Long l = getLong(value);
718
- out << IceUtilInternal::int64ToString(l);
719
- break;
720
- }
721
- case PrimitiveInfo::KindFloat:
722
- case PrimitiveInfo::KindDouble:
723
- {
724
- double d = toDouble(value);
725
- out << d;
726
- break;
727
- }
728
- case PrimitiveInfo::KindString:
729
- {
730
- out << "'" << getString(value) << "'";
731
- break;
732
- }
733
- }
734
- }
735
-
736
- double
737
- IceRuby::PrimitiveInfo::toDouble(VALUE v)
738
- {
739
- volatile VALUE val = callRuby(rb_Float, v);
740
- if(NIL_P(val))
741
- {
742
- throw RubyException(rb_eTypeError, "unable to convert value to a double");
743
- }
744
- assert(TYPE(val) == T_FLOAT);
745
- return RFLOAT_VALUE(val);
746
- }
747
-
748
- //
749
- // EnumInfo implementation.
750
- //
751
-
752
- namespace
753
- {
754
- struct EnumDefinitionIterator : public IceRuby::HashIterator
755
- {
756
- EnumDefinitionIterator() :
757
- maxValue(0)
758
- {
759
- }
760
-
761
- virtual void element(VALUE key, VALUE value)
762
- {
763
- const Ice::Int v = static_cast<Ice::Int>(getInteger(key));
764
- assert(enumerators.find(v) == enumerators.end());
765
- enumerators[v] = value;
766
-
767
- if(v > maxValue)
768
- {
769
- maxValue = v;
770
- }
771
- }
772
-
773
- Ice::Int maxValue;
774
- IceRuby::EnumeratorMap enumerators;
775
- };
776
- }
777
-
778
- IceRuby::EnumInfo::EnumInfo(VALUE ident, VALUE t, VALUE e) :
779
- rubyClass(t), maxValue(0)
780
- {
781
- const_cast<string&>(id) = getString(ident);
782
-
783
- EnumDefinitionIterator iter;
784
- hashIterate(e, iter);
785
-
786
- const_cast<Ice::Int&>(maxValue) = iter.maxValue;
787
- const_cast<EnumeratorMap&>(enumerators) = iter.enumerators;
788
- }
789
-
790
- string
791
- IceRuby::EnumInfo::getId() const
792
- {
793
- return id;
794
- }
795
-
796
- bool
797
- IceRuby::EnumInfo::validate(VALUE val)
798
- {
799
- return callRuby(rb_obj_is_instance_of, val, rubyClass) == Qtrue;
800
- }
801
-
802
- bool
803
- IceRuby::EnumInfo::variableLength() const
804
- {
805
- return true;
806
- }
807
-
808
- int
809
- IceRuby::EnumInfo::wireSize() const
810
- {
811
- return 1;
812
- }
813
-
814
- Ice::OptionalFormat
815
- IceRuby::EnumInfo::optionalFormat() const
816
- {
817
- return Ice::OptionalFormatSize;
818
- }
819
-
820
- void
821
- IceRuby::EnumInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap*, bool)
822
- {
823
- assert(callRuby(rb_obj_is_instance_of, p, rubyClass) == Qtrue); // validate() should have caught this.
824
-
825
- //
826
- // Validate value.
827
- //
828
- volatile VALUE val = callRuby(rb_iv_get, p, "@value");
829
- const Ice::Int ival = static_cast<Ice::Int>(getInteger(val));
830
- if(enumerators.find(ival) == enumerators.end())
831
- {
832
- throw RubyException(rb_eRangeError, "invalid enumerator %ld for enum %s", ival, id.c_str());
833
- }
834
-
835
- os->writeEnum(ival, maxValue);
836
- }
837
-
838
- void
839
- IceRuby::EnumInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target, void* closure,
840
- bool)
841
- {
842
- Ice::Int val = is->readEnum(maxValue);
843
-
844
- EnumeratorMap::const_iterator p = enumerators.find(val);
845
- if(p == enumerators.end())
846
- {
847
- ostringstream ostr;
848
- ostr << "invalid enumerator " << val << " for enum " << id;
849
- throw Ice::MarshalException(__FILE__, __LINE__, ostr.str());
850
- }
851
-
852
- cb->unmarshaled(p->second, target, closure);
853
- }
854
-
855
- void
856
- IceRuby::EnumInfo::print(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory*)
857
- {
858
- if(!validate(value))
859
- {
860
- out << "<invalid value - expected " << id << ">";
861
- return;
862
- }
863
- volatile VALUE str = callRuby(rb_funcall, value, rb_intern("inspect"), 0);
864
- out << getString(str);
865
- }
866
-
867
- //
868
- // DataMember implementation.
869
- //
870
- void
871
- IceRuby::DataMember::unmarshaled(VALUE val, VALUE target, void*)
872
- {
873
- callRuby(rb_ivar_set, target, rubyID, val);
874
- }
875
-
876
- static void
877
- convertDataMembers(VALUE members, DataMemberList& reqMembers, DataMemberList& optMembers, bool allowOptional)
878
- {
879
- list<DataMemberPtr> optList;
880
-
881
- volatile VALUE arr = callRuby(rb_check_array_type, members);
882
- assert(!NIL_P(arr));
883
- for(long i = 0; i < RARRAY_LEN(arr); ++i)
884
- {
885
- volatile VALUE m = callRuby(rb_check_array_type, RARRAY_AREF(arr, i));
886
- assert(!NIL_P(m));
887
- assert(RARRAY_LEN(m) == (allowOptional ? 4 : 2));
888
-
889
- DataMemberPtr member = new DataMember;
890
-
891
- member->name = getString(RARRAY_AREF(m, 0));
892
- member->type = getType(RARRAY_AREF(m, 1));
893
- string s = "@" + member->name;
894
- member->rubyID = rb_intern(s.c_str());
895
-
896
- if(allowOptional)
897
- {
898
- member->optional = RTEST(RARRAY_AREF(m, 2));
899
- member->tag = static_cast<int>(getInteger(RARRAY_AREF(m, 3)));
900
- }
901
- else
902
- {
903
- member->optional = false;
904
- member->tag = 0;
905
- }
906
-
907
- if(member->optional)
908
- {
909
- optList.push_back(member);
910
- }
911
- else
912
- {
913
- reqMembers.push_back(member);
914
- }
915
- }
916
-
917
- if(allowOptional)
918
- {
919
- class SortFn
920
- {
921
- public:
922
- static bool compare(const DataMemberPtr& lhs, const DataMemberPtr& rhs)
923
- {
924
- return lhs->tag < rhs->tag;
925
- }
926
- };
927
-
928
- optList.sort(SortFn::compare);
929
- copy(optList.begin(), optList.end(), back_inserter(optMembers));
930
- }
931
- }
932
-
933
- //
934
- // StructInfo implementation.
935
- //
936
- IceRuby::StructInfo::StructInfo(VALUE ident, VALUE t, VALUE m) :
937
- rubyClass(t), _nullMarshalValue(Qnil)
938
- {
939
- const_cast<string&>(id) = getString(ident);
940
-
941
- DataMemberList opt;
942
- convertDataMembers(m, const_cast<DataMemberList&>(members), opt, false);
943
- assert(opt.empty());
944
-
945
- _variableLength = false;
946
- _wireSize = 0;
947
- for(DataMemberList::const_iterator p = members.begin(); p != members.end(); ++p)
948
- {
949
- if(!_variableLength && (*p)->type->variableLength())
950
- {
951
- _variableLength = true;
952
- }
953
- _wireSize += (*p)->type->wireSize();
954
- }
955
- }
956
-
957
- string
958
- IceRuby::StructInfo::getId() const
959
- {
960
- return id;
961
- }
962
-
963
- bool
964
- IceRuby::StructInfo::validate(VALUE val)
965
- {
966
- return NIL_P(val) || callRuby(rb_obj_is_kind_of, val, rubyClass) == Qtrue;
967
- }
968
-
969
- bool
970
- IceRuby::StructInfo::variableLength() const
971
- {
972
- return _variableLength;
973
- }
974
-
975
- int
976
- IceRuby::StructInfo::wireSize() const
977
- {
978
- return _wireSize;
979
- }
980
-
981
- Ice::OptionalFormat
982
- IceRuby::StructInfo::optionalFormat() const
983
- {
984
- return _variableLength ? Ice::OptionalFormatFSize : Ice::OptionalFormatVSize;
985
- }
986
-
987
- bool
988
- IceRuby::StructInfo::usesClasses() const
989
- {
990
- for(DataMemberList::const_iterator p = members.begin(); p != members.end(); ++p)
991
- {
992
- if((*p)->type->usesClasses())
993
- {
994
- return true;
995
- }
996
- }
997
-
998
- return false;
999
- }
1000
-
1001
- void
1002
- IceRuby::StructInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMap, bool optional)
1003
- {
1004
- assert(NIL_P(p) || callRuby(rb_obj_is_kind_of, p, rubyClass) == Qtrue); // validate() should have caught this.
1005
-
1006
- if(NIL_P(p))
1007
- {
1008
- if(NIL_P(_nullMarshalValue))
1009
- {
1010
- _nullMarshalValue = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), rubyClass);
1011
- rb_gc_register_address(&_nullMarshalValue); // Prevent garbage collection
1012
- }
1013
- p = _nullMarshalValue;
1014
- }
1015
-
1016
- Ice::OutputStream::size_type sizePos = 0;
1017
- if(optional)
1018
- {
1019
- if(_variableLength)
1020
- {
1021
- sizePos = os->startSize();
1022
- }
1023
- else
1024
- {
1025
- os->writeSize(_wireSize);
1026
- }
1027
- }
1028
-
1029
- for(DataMemberList::const_iterator q = members.begin(); q != members.end(); ++q)
1030
- {
1031
- DataMemberPtr member = *q;
1032
- volatile VALUE val = callRuby(rb_ivar_get, p, member->rubyID);
1033
- if(!member->type->validate(val))
1034
- {
1035
- throw RubyException(rb_eTypeError, "invalid value for %s member `%s'", const_cast<char*>(id.c_str()),
1036
- member->name.c_str());
1037
- }
1038
- member->type->marshal(val, os, objectMap, false);
1039
- }
1040
-
1041
- if(optional && _variableLength)
1042
- {
1043
- os->endSize(sizePos);
1044
- }
1045
- }
1046
-
1047
- void
1048
- IceRuby::StructInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
1049
- void* closure, bool optional)
1050
- {
1051
- volatile VALUE obj = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), rubyClass);
1052
-
1053
- if(optional)
1054
- {
1055
- if(_variableLength)
1056
- {
1057
- is->skip(4);
1058
- }
1059
- else
1060
- {
1061
- is->skipSize();
1062
- }
1063
- }
1064
-
1065
- for(DataMemberList::const_iterator q = members.begin(); q != members.end(); ++q)
1066
- {
1067
- DataMemberPtr member = *q;
1068
- member->type->unmarshal(is, member, obj, 0, false);
1069
- }
1070
-
1071
- cb->unmarshaled(obj, target, closure);
1072
- }
1073
-
1074
- void
1075
- IceRuby::StructInfo::print(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory* history)
1076
- {
1077
- if(!validate(value))
1078
- {
1079
- out << "<invalid value - expected " << id << ">";
1080
- return;
1081
- }
1082
-
1083
- if(NIL_P(value))
1084
- {
1085
- out << "<nil>";
1086
- }
1087
- else
1088
- {
1089
- out.sb();
1090
- for(DataMemberList::const_iterator q = members.begin(); q != members.end(); ++q)
1091
- {
1092
- DataMemberPtr member = *q;
1093
- out << nl << member->name << " = ";
1094
- if(callRuby(rb_ivar_defined, value, member->rubyID) == Qfalse)
1095
- {
1096
- out << "<not defined>";
1097
- }
1098
- else
1099
- {
1100
- volatile VALUE val = callRuby(rb_ivar_get, value, member->rubyID);
1101
- member->type->print(val, out, history);
1102
- }
1103
- }
1104
- out.eb();
1105
- }
1106
- }
1107
-
1108
- void
1109
- IceRuby::StructInfo::destroy()
1110
- {
1111
- for(DataMemberList::const_iterator p = members.begin(); p != members.end(); ++p)
1112
- {
1113
- (*p)->type->destroy();
1114
- }
1115
- const_cast<DataMemberList&>(members).clear();
1116
- if(!NIL_P(_nullMarshalValue))
1117
- {
1118
- rb_gc_unregister_address(&_nullMarshalValue); // Prevent garbage collection
1119
- _nullMarshalValue = Qnil;
1120
- }
1121
- }
1122
-
1123
- //
1124
- // SequenceInfo implementation.
1125
- //
1126
- IceRuby::SequenceInfo::SequenceInfo(VALUE ident, VALUE t)
1127
- {
1128
- const_cast<string&>(id) = getString(ident);
1129
- const_cast<TypeInfoPtr&>(elementType) = getType(t);
1130
- }
1131
-
1132
- string
1133
- IceRuby::SequenceInfo::getId() const
1134
- {
1135
- return id;
1136
- }
1137
-
1138
- bool
1139
- IceRuby::SequenceInfo::validate(VALUE val)
1140
- {
1141
- //
1142
- // Accept nil, an array, a string (for sequence<byte>), or any object that responds to to_ary.
1143
- //
1144
- if(NIL_P(val) || TYPE(val) == T_ARRAY)
1145
- {
1146
- return true;
1147
- }
1148
- if(TYPE(val) == T_STRING)
1149
- {
1150
- PrimitiveInfoPtr pi = PrimitiveInfoPtr::dynamicCast(elementType);
1151
- if(pi && pi->kind == PrimitiveInfo::KindByte)
1152
- {
1153
- return true;
1154
- }
1155
- }
1156
- ID rbid = rb_intern("to_ary");
1157
- return callRuby(rb_respond_to, val, rbid) != 0;
1158
- }
1159
-
1160
- bool
1161
- IceRuby::SequenceInfo::variableLength() const
1162
- {
1163
- return true;
1164
- }
1165
-
1166
- int
1167
- IceRuby::SequenceInfo::wireSize() const
1168
- {
1169
- return 1;
1170
- }
1171
-
1172
- Ice::OptionalFormat
1173
- IceRuby::SequenceInfo::optionalFormat() const
1174
- {
1175
- return elementType->variableLength() ? Ice::OptionalFormatFSize : Ice::OptionalFormatVSize;
1176
- }
1177
-
1178
- bool
1179
- IceRuby::SequenceInfo::usesClasses() const
1180
- {
1181
- return elementType->usesClasses();
1182
- }
1183
-
1184
- void
1185
- IceRuby::SequenceInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMap, bool optional)
1186
- {
1187
- PrimitiveInfoPtr pi = PrimitiveInfoPtr::dynamicCast(elementType);
1188
-
1189
- volatile VALUE arr = Qnil;
1190
-
1191
- Ice::OutputStream::size_type sizePos = 0;
1192
- if(optional)
1193
- {
1194
- if(elementType->variableLength())
1195
- {
1196
- sizePos = os->startSize();
1197
- }
1198
- else if(elementType->wireSize() > 1)
1199
- {
1200
- //
1201
- // Determine the sequence size.
1202
- //
1203
- int sz = 0;
1204
- if(!NIL_P(p))
1205
- {
1206
- if(TYPE(p) == T_ARRAY)
1207
- {
1208
- sz = static_cast<int>(RARRAY_LEN(p));
1209
- }
1210
- else
1211
- {
1212
- arr = callRuby(rb_Array, p);
1213
- if(NIL_P(arr))
1214
- {
1215
- throw RubyException(rb_eTypeError, "unable to convert value to an array");
1216
- }
1217
- sz = static_cast<int>(RARRAY_LEN(arr));
1218
- }
1219
- }
1220
- os->writeSize(sz == 0 ? 1 : sz * elementType->wireSize() + (sz > 254 ? 5 : 1));
1221
- }
1222
- }
1223
-
1224
- if(NIL_P(p))
1225
- {
1226
- os->writeSize(0);
1227
- }
1228
- else if(pi)
1229
- {
1230
- marshalPrimitiveSequence(pi, p, os);
1231
- }
1232
- else
1233
- {
1234
- if(NIL_P(arr))
1235
- {
1236
- arr = callRuby(rb_Array, p);
1237
- if(NIL_P(arr))
1238
- {
1239
- throw RubyException(rb_eTypeError, "unable to convert value to an array");
1240
- }
1241
- }
1242
-
1243
- long sz = RARRAY_LEN(arr);
1244
- os->writeSize(static_cast<Ice::Int>(sz));
1245
- for(long i = 0; i < sz; ++i)
1246
- {
1247
- if(!elementType->validate(RARRAY_AREF(arr, i)))
1248
- {
1249
- throw RubyException(rb_eTypeError, "invalid value for element %ld of `%s'", i,
1250
- const_cast<char*>(id.c_str()));
1251
- }
1252
- elementType->marshal(RARRAY_AREF(arr, i), os, objectMap, false);
1253
- }
1254
- }
1255
-
1256
- if(optional && elementType->variableLength())
1257
- {
1258
- os->endSize(sizePos);
1259
- }
1260
- }
1261
-
1262
- void
1263
- IceRuby::SequenceInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
1264
- void* closure, bool optional)
1265
- {
1266
- if(optional)
1267
- {
1268
- if(elementType->variableLength())
1269
- {
1270
- is->skip(4);
1271
- }
1272
- else if(elementType->wireSize() > 1)
1273
- {
1274
- is->skipSize();
1275
- }
1276
- }
1277
-
1278
- PrimitiveInfoPtr pi = PrimitiveInfoPtr::dynamicCast(elementType);
1279
- if(pi)
1280
- {
1281
- unmarshalPrimitiveSequence(pi, is, cb, target, closure);
1282
- return;
1283
- }
1284
-
1285
- Ice::Int sz = is->readSize();
1286
- volatile VALUE arr = createArray(sz);
1287
-
1288
- for(Ice::Int i = 0; i < sz; ++i)
1289
- {
1290
- void* cl = reinterpret_cast<void*>(i);
1291
- elementType->unmarshal(is, this, arr, cl, false);
1292
- }
1293
-
1294
- cb->unmarshaled(arr, target, closure);
1295
- }
1296
-
1297
- void
1298
- IceRuby::SequenceInfo::unmarshaled(VALUE val, VALUE target, void* closure)
1299
- {
1300
- #ifdef ICE_64
1301
- long i = static_cast<long>(reinterpret_cast<long long>(closure));
1302
- #else
1303
- long i = reinterpret_cast<long>(closure);
1304
- #endif
1305
- RARRAY_ASET(target, i, val);
1306
- }
1307
-
1308
- void
1309
- IceRuby::SequenceInfo::print(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory* history)
1310
- {
1311
- if(!validate(value))
1312
- {
1313
- out << "<invalid value - expected " << id << ">";
1314
- return;
1315
- }
1316
-
1317
- if(NIL_P(value))
1318
- {
1319
- out << "{}";
1320
- }
1321
- else
1322
- {
1323
- if(TYPE(value) == T_STRING)
1324
- {
1325
- PrimitiveInfoPtr pi = PrimitiveInfoPtr::dynamicCast(elementType);
1326
- if(pi && pi->kind == PrimitiveInfo::KindByte)
1327
- {
1328
- out << "'" << escapeString(getString(value)) << "'";
1329
- return;
1330
- }
1331
- }
1332
-
1333
- volatile VALUE arr = callRuby(rb_Array, value);
1334
- if(NIL_P(arr))
1335
- {
1336
- throw RubyException(rb_eTypeError, "unable to convert value to an array");
1337
- }
1338
-
1339
- long sz = RARRAY_LEN(arr);
1340
-
1341
- out.sb();
1342
- for(long i = 0; i < sz; ++i)
1343
- {
1344
- out << nl << '[' << i << "] = ";
1345
- elementType->print(RARRAY_AREF(arr, i), out, history);
1346
- }
1347
- out.eb();
1348
- }
1349
- }
1350
-
1351
- void
1352
- IceRuby::SequenceInfo::destroy()
1353
- {
1354
- if(elementType)
1355
- {
1356
- elementType->destroy();
1357
- const_cast<TypeInfoPtr&>(elementType) = 0;
1358
- }
1359
- }
1360
-
1361
- void
1362
- IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALUE p, Ice::OutputStream* os)
1363
- {
1364
- volatile VALUE arr = Qnil;
1365
- volatile VALUE str = Qnil;
1366
-
1367
- //
1368
- // Accept a string or an array for sequence<byte>.
1369
- //
1370
- if(pi->kind == PrimitiveInfo::KindByte)
1371
- {
1372
- if(TYPE(p) == T_STRING)
1373
- {
1374
- str = p;
1375
- }
1376
- else
1377
- {
1378
- arr = callRuby(rb_Array, p);
1379
- if(NIL_P(arr))
1380
- {
1381
- throw RubyException(rb_eTypeError, "argument is not a string or an array");
1382
- }
1383
- }
1384
- }
1385
- else
1386
- {
1387
- arr = callRuby(rb_Array, p);
1388
- if(NIL_P(arr))
1389
- {
1390
- throw RubyException(rb_eTypeError, "unable to convert value to an array");
1391
- }
1392
- }
1393
-
1394
- switch(pi->kind)
1395
- {
1396
- case PrimitiveInfo::KindBool:
1397
- {
1398
- long sz = RARRAY_LEN(arr);
1399
- Ice::BoolSeq seq(static_cast<size_t>(sz));
1400
- for(long i = 0; i < sz; ++i)
1401
- {
1402
- seq[static_cast<size_t>(i)] = RTEST(RARRAY_AREF(arr, i));
1403
- }
1404
- os->write(seq);
1405
- break;
1406
- }
1407
- case PrimitiveInfo::KindByte:
1408
- {
1409
- if(!NIL_P(str))
1410
- {
1411
- const char* s = RSTRING_PTR(str);
1412
- const long len = RSTRING_LEN(str);
1413
- if(s == 0 || len == 0)
1414
- {
1415
- os->write(Ice::Int(0));
1416
- }
1417
- else
1418
- {
1419
- os->write(reinterpret_cast<const Ice::Byte*>(s), reinterpret_cast<const Ice::Byte*>(s + len));
1420
- }
1421
- }
1422
- else
1423
- {
1424
- long sz = RARRAY_LEN(arr);
1425
- Ice::ByteSeq seq(static_cast<size_t>(sz));
1426
- for(long i = 0; i < sz; ++i)
1427
- {
1428
- long val = getInteger(RARRAY_AREF(arr, i));
1429
- if(val < 0 || val > 255)
1430
- {
1431
- throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<byte>", i);
1432
- }
1433
- seq[static_cast<size_t>(i)] = static_cast<Ice::Byte>(val);
1434
- }
1435
- os->write(seq);
1436
- }
1437
- break;
1438
- }
1439
- case PrimitiveInfo::KindShort:
1440
- {
1441
- long sz = RARRAY_LEN(arr);
1442
- Ice::ShortSeq seq(static_cast<size_t>(sz));
1443
- for(long i = 0; i < sz; ++i)
1444
- {
1445
- long val = getInteger(RARRAY_AREF(arr, i));
1446
- if(val < SHRT_MIN || val > SHRT_MAX)
1447
- {
1448
- throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<short>", i);
1449
- }
1450
- seq[static_cast<size_t>(i)] = static_cast<Ice::Short>(val);
1451
- }
1452
- os->write(seq);
1453
- break;
1454
- }
1455
- case PrimitiveInfo::KindInt:
1456
- {
1457
- long sz = RARRAY_LEN(arr);
1458
- Ice::IntSeq seq(static_cast<size_t>(sz));
1459
- for(long i = 0; i < sz; ++i)
1460
- {
1461
- long val = getInteger(RARRAY_AREF(arr, i));
1462
- if(val < INT_MIN || val > INT_MAX)
1463
- {
1464
- throw RubyException(rb_eTypeError, "invalid value for element %ld of sequence<int>", i);
1465
- }
1466
- seq[static_cast<size_t>(i)] = static_cast<Ice::Int>(val);
1467
- }
1468
- os->write(seq);
1469
- break;
1470
- }
1471
- case PrimitiveInfo::KindLong:
1472
- {
1473
- long sz = RARRAY_LEN(arr);
1474
- Ice::LongSeq seq(static_cast<size_t>(sz));
1475
- for(long i = 0; i < sz; ++i)
1476
- {
1477
- seq[static_cast<size_t>(i)] = getLong(RARRAY_AREF(arr, i));
1478
- }
1479
- os->write(seq);
1480
- break;
1481
- }
1482
- case PrimitiveInfo::KindFloat:
1483
- {
1484
- long sz = RARRAY_LEN(arr);
1485
- Ice::FloatSeq seq(static_cast<size_t>(sz));
1486
- for(long i = 0; i < sz; ++i)
1487
- {
1488
- volatile VALUE v = callRuby(rb_Float, RARRAY_AREF(arr, i));
1489
- if(NIL_P(v))
1490
- {
1491
- throw RubyException(rb_eTypeError, "unable to convert array element %ld to a float", i);
1492
- }
1493
- assert(TYPE(v) == T_FLOAT);
1494
- seq[static_cast<size_t>(i)] = static_cast<Ice::Float>(RFLOAT_VALUE(v));
1495
- }
1496
- os->write(seq);
1497
- break;
1498
- }
1499
- case PrimitiveInfo::KindDouble:
1500
- {
1501
- long sz = RARRAY_LEN(arr);
1502
- Ice::DoubleSeq seq(static_cast<size_t>(sz));
1503
- for(long i = 0; i < sz; ++i)
1504
- {
1505
- volatile VALUE v = callRuby(rb_Float, RARRAY_AREF(arr, i));
1506
- if(NIL_P(v))
1507
- {
1508
- throw RubyException(rb_eTypeError, "unable to convert array element %ld to a double", i);
1509
- }
1510
- assert(TYPE(v) == T_FLOAT);
1511
- seq[static_cast<size_t>(i)] = RFLOAT_VALUE(v);
1512
- }
1513
- os->write(seq);
1514
- break;
1515
- }
1516
- case PrimitiveInfo::KindString:
1517
- {
1518
- long sz = RARRAY_LEN(arr);
1519
- Ice::StringSeq seq(static_cast<size_t>(sz));
1520
- for(long i = 0; i < sz; ++i)
1521
- {
1522
- seq[static_cast<size_t>(i)] = getString(RARRAY_AREF(arr, i));
1523
- }
1524
- if(seq.empty())
1525
- {
1526
- os->write(seq);
1527
- }
1528
- else
1529
- {
1530
- #ifdef HAVE_RUBY_ENCODING_H
1531
- os->write(&seq[0], &seq[0] + seq.size(), false); // Bypass string conversion.
1532
- #else
1533
- os->write(&seq[0], &seq[0] + seq.size(), true);
1534
- #endif
1535
- }
1536
- break;
1537
- }
1538
- }
1539
- }
1540
-
1541
- void
1542
- IceRuby::SequenceInfo::unmarshalPrimitiveSequence(const PrimitiveInfoPtr& pi, Ice::InputStream* is,
1543
- const UnmarshalCallbackPtr& cb, VALUE target, void* closure)
1544
- {
1545
- volatile VALUE result = Qnil;
1546
-
1547
- switch(pi->kind)
1548
- {
1549
- case PrimitiveInfo::KindBool:
1550
- {
1551
- pair<const bool*, const bool*> p;
1552
- IceUtil::ScopedArray<bool> sa;
1553
- is->read(p, sa);
1554
- long sz = static_cast<long>(p.second - p.first);
1555
- result = createArray(sz);
1556
-
1557
- if(sz > 0)
1558
- {
1559
- for(long i = 0; i < sz; ++i)
1560
- {
1561
- RARRAY_ASET(result, i, p.first[i] ? Qtrue : Qfalse);
1562
- }
1563
- }
1564
- break;
1565
- }
1566
- case PrimitiveInfo::KindByte:
1567
- {
1568
- pair<const Ice::Byte*, const Ice::Byte*> p;
1569
- is->read(p);
1570
- result = callRuby(rb_str_new, reinterpret_cast<const char*>(p.first), static_cast<long>(p.second - p.first));
1571
- break;
1572
- }
1573
- case PrimitiveInfo::KindShort:
1574
- {
1575
- pair<const Ice::Short*, const Ice::Short*> p;
1576
- IceUtil::ScopedArray<Ice::Short> sa;
1577
- is->read(p, sa);
1578
- long sz = static_cast<long>(p.second - p.first);
1579
- result = createArray(sz);
1580
-
1581
- if(sz > 0)
1582
- {
1583
- for(long i = 0; i < sz; ++i)
1584
- {
1585
- RARRAY_ASET(result, i, INT2FIX(p.first[i]));
1586
- }
1587
- }
1588
- break;
1589
- }
1590
- case PrimitiveInfo::KindInt:
1591
- {
1592
- pair<const Ice::Int*, const Ice::Int*> p;
1593
- IceUtil::ScopedArray<Ice::Int> sa;
1594
- is->read(p, sa);
1595
- long sz = static_cast<long>(p.second - p.first);
1596
- result = createArray(sz);
1597
-
1598
- if(sz > 0)
1599
- {
1600
- for(long i = 0; i < sz; ++i)
1601
- {
1602
- RARRAY_ASET(result, i, INT2FIX(p.first[i]));
1603
- }
1604
- }
1605
- break;
1606
- }
1607
- case PrimitiveInfo::KindLong:
1608
- {
1609
- pair<const Ice::Long*, const Ice::Long*> p;
1610
- IceUtil::ScopedArray<Ice::Long> sa;
1611
- is->read(p, sa);
1612
- long sz = static_cast<long>(p.second - p.first);
1613
- result = createArray(sz);
1614
-
1615
- if(sz > 0)
1616
- {
1617
- for(long i = 0; i < sz; ++i)
1618
- {
1619
- RARRAY_ASET(result, i, callRuby(rb_ll2inum, p.first[i]));
1620
- }
1621
- }
1622
- break;
1623
- }
1624
- case PrimitiveInfo::KindFloat:
1625
- {
1626
- pair<const Ice::Float*, const Ice::Float*> p;
1627
- IceUtil::ScopedArray<Ice::Float> sa;
1628
- is->read(p, sa);
1629
- long sz = static_cast<long>(p.second - p.first);
1630
- result = createArray(sz);
1631
-
1632
- if(sz > 0)
1633
- {
1634
- for(long i = 0; i < sz; ++i)
1635
- {
1636
- RARRAY_ASET(result, i, callRuby(rb_float_new, p.first[i]));
1637
- }
1638
- }
1639
- break;
1640
- }
1641
- case PrimitiveInfo::KindDouble:
1642
- {
1643
- pair<const Ice::Double*, const Ice::Double*> p;
1644
- IceUtil::ScopedArray<Ice::Double> sa;
1645
- is->read(p, sa);
1646
- long sz = static_cast<long>(p.second - p.first);
1647
- result = createArray(sz);
1648
-
1649
- if(sz > 0)
1650
- {
1651
- for(long i = 0; i < sz; ++i)
1652
- {
1653
- RARRAY_ASET(result, i, callRuby(rb_float_new, p.first[i]));
1654
- }
1655
- }
1656
- break;
1657
- }
1658
- case PrimitiveInfo::KindString:
1659
- {
1660
- Ice::StringSeq seq;
1661
- #ifdef HAVE_RUBY_ENCODING_H
1662
- is->read(seq, false); // Bypass string conversion.
1663
- #else
1664
- is->read(seq, true);
1665
- #endif
1666
- long sz = static_cast<long>(seq.size());
1667
- result = createArray(sz);
1668
-
1669
- for(long i = 0; i < sz; ++i)
1670
- {
1671
- RARRAY_ASET(result, i, createString(seq[static_cast<size_t>(i)]));
1672
- }
1673
- break;
1674
- }
1675
- }
1676
- cb->unmarshaled(result, target, closure);
1677
- }
1678
-
1679
- //
1680
- // DictionaryInfo implementation.
1681
- //
1682
- IceRuby::DictionaryInfo::DictionaryInfo(VALUE ident, VALUE kt, VALUE vt)
1683
- {
1684
- const_cast<string&>(id) = getString(ident);
1685
- const_cast<TypeInfoPtr&>(keyType) = getType(kt);
1686
- const_cast<TypeInfoPtr&>(valueType) = getType(vt);
1687
-
1688
- _variableLength = keyType->variableLength() || valueType->variableLength();
1689
- _wireSize = keyType->wireSize() + valueType->wireSize();
1690
- }
1691
-
1692
- string
1693
- IceRuby::DictionaryInfo::getId() const
1694
- {
1695
- return id;
1696
- }
1697
-
1698
- bool
1699
- IceRuby::DictionaryInfo::validate(VALUE val)
1700
- {
1701
- //
1702
- // Accept nil, a hash, or any object that responds to to_hash.
1703
- //
1704
- if(NIL_P(val) || TYPE(val) == T_HASH)
1705
- {
1706
- return true;
1707
- }
1708
- ID rbid = rb_intern("to_hash");
1709
- return callRuby(rb_respond_to, val, rbid) != 0;
1710
- }
1711
-
1712
- bool
1713
- IceRuby::DictionaryInfo::variableLength() const
1714
- {
1715
- return true;
1716
- }
1717
-
1718
- int
1719
- IceRuby::DictionaryInfo::wireSize() const
1720
- {
1721
- return 1;
1722
- }
1723
-
1724
- Ice::OptionalFormat
1725
- IceRuby::DictionaryInfo::optionalFormat() const
1726
- {
1727
- return _variableLength ? Ice::OptionalFormatFSize : Ice::OptionalFormatVSize;
1728
- }
1729
-
1730
- bool
1731
- IceRuby::DictionaryInfo::usesClasses() const
1732
- {
1733
- return valueType->usesClasses();
1734
- }
1735
-
1736
- namespace
1737
- {
1738
- struct DictionaryMarshalIterator : public IceRuby::HashIterator
1739
- {
1740
- DictionaryMarshalIterator(const IceRuby::DictionaryInfoPtr& d, Ice::OutputStream* o, IceRuby::ObjectMap* m)
1741
- : dict(d), os(o), objectMap(m)
1742
- {
1743
- }
1744
-
1745
- virtual void element(VALUE key, VALUE value)
1746
- {
1747
- dict->marshalElement(key, value, os, objectMap);
1748
- }
1749
-
1750
- IceRuby::DictionaryInfoPtr dict;
1751
- Ice::OutputStream* os;
1752
- IceRuby::ObjectMap* objectMap;
1753
- };
1754
- }
1755
-
1756
- void
1757
- IceRuby::DictionaryInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMap, bool optional)
1758
- {
1759
- volatile VALUE hash = Qnil;
1760
-
1761
- if(!NIL_P(p))
1762
- {
1763
- hash = callRuby(rb_convert_type, p, T_HASH, "Hash", "to_hash");
1764
- if(NIL_P(hash))
1765
- {
1766
- throw RubyException(rb_eTypeError, "unable to convert value to a hash");
1767
- }
1768
- }
1769
-
1770
- Ice::Int sz = 0;
1771
- if(!NIL_P(hash))
1772
- {
1773
- sz = static_cast<Ice::Int>(RHASH_SIZE(hash));
1774
- }
1775
-
1776
- Ice::OutputStream::size_type sizePos = 0;
1777
- if(optional)
1778
- {
1779
- if(_variableLength)
1780
- {
1781
- sizePos = os->startSize();
1782
- }
1783
- else
1784
- {
1785
- os->writeSize(sz == 0 ? 1 : sz * _wireSize + (sz > 254 ? 5 : 1));
1786
- }
1787
- }
1788
-
1789
- if(NIL_P(hash))
1790
- {
1791
- os->writeSize(0);
1792
- }
1793
- else
1794
- {
1795
- os->writeSize(sz);
1796
- if(sz > 0)
1797
- {
1798
- DictionaryMarshalIterator iter(this, os, objectMap);
1799
- hashIterate(hash, iter);
1800
- }
1801
- }
1802
-
1803
- if(optional && _variableLength)
1804
- {
1805
- os->endSize(sizePos);
1806
- }
1807
- }
1808
-
1809
- void
1810
- IceRuby::DictionaryInfo::marshalElement(VALUE key, VALUE value, Ice::OutputStream* os, ObjectMap* objectMap)
1811
- {
1812
- if(!keyType->validate(key))
1813
- {
1814
- throw RubyException(rb_eTypeError, "invalid key in `%s' element", const_cast<char*>(id.c_str()));
1815
- }
1816
-
1817
- if(!valueType->validate(value))
1818
- {
1819
- throw RubyException(rb_eTypeError, "invalid value in `%s' element", const_cast<char*>(id.c_str()));
1820
- }
1821
-
1822
- keyType->marshal(key, os, objectMap, false);
1823
- valueType->marshal(value, os, objectMap, false);
1824
- }
1825
-
1826
- void
1827
- IceRuby::DictionaryInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
1828
- void* closure, bool optional)
1829
- {
1830
- if(optional)
1831
- {
1832
- if(_variableLength)
1833
- {
1834
- is->skip(4);
1835
- }
1836
- else
1837
- {
1838
- is->skipSize();
1839
- }
1840
- }
1841
-
1842
- volatile VALUE hash = callRuby(rb_hash_new);
1843
-
1844
- KeyCallbackPtr keyCB = new KeyCallback;
1845
- keyCB->key = Qnil;
1846
-
1847
- Ice::Int sz = is->readSize();
1848
- for(Ice::Int i = 0; i < sz; ++i)
1849
- {
1850
- //
1851
- // A dictionary key cannot be a class (or contain one), so the key must be
1852
- // available immediately.
1853
- //
1854
- keyType->unmarshal(is, keyCB, Qnil, 0, false);
1855
- assert(!NIL_P(keyCB->key));
1856
- if (valueType->usesClasses())
1857
- {
1858
- // Temporarily set the entry with a Qnil value to ensure the key is not GC
1859
- // while unmarshaling a value class
1860
- if (RB_TYPE_P(keyCB->key, T_STRING))
1861
- {
1862
- // For string keys create a frozen string to ensure that the key used
1863
- // in the map matches the one keep in the closure
1864
- keyCB->key = rb_str_new_frozen(keyCB->key);
1865
- }
1866
- callRuby(rb_hash_aset, hash, keyCB->key, Qnil);
1867
- }
1868
- //
1869
- // The callback will set the dictionary entry with the unmarshaled value,
1870
- // so we pass it the key.
1871
- //
1872
- void* cl = reinterpret_cast<void*>(keyCB->key);
1873
- valueType->unmarshal(is, this, hash, cl, false);
1874
- }
1875
-
1876
- cb->unmarshaled(hash, target, closure);
1877
- }
1878
-
1879
- void
1880
- IceRuby::DictionaryInfo::unmarshaled(VALUE val, VALUE target, void* closure)
1881
- {
1882
- volatile VALUE key = reinterpret_cast<VALUE>(closure);
1883
- callRuby(rb_hash_aset, target, key, val);
1884
- }
1885
-
1886
- namespace
1887
- {
1888
- struct DictionaryPrintIterator : public IceRuby::HashIterator
1889
- {
1890
- DictionaryPrintIterator(const DictionaryInfoPtr& d, IceUtilInternal::Output& o, PrintObjectHistory* h) :
1891
- dict(d), out(o), history(h)
1892
- {
1893
- }
1894
-
1895
- virtual void element(VALUE key, VALUE value)
1896
- {
1897
- dict->printElement(key, value, out, history);
1898
- }
1899
-
1900
- IceRuby::DictionaryInfoPtr dict;
1901
- IceUtilInternal::Output& out;
1902
- IceRuby::PrintObjectHistory* history;
1903
- };
1904
- }
1905
-
1906
- void
1907
- IceRuby::DictionaryInfo::print(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory* history)
1908
- {
1909
- if(!validate(value))
1910
- {
1911
- out << "<invalid value - expected " << id << ">";
1912
- return;
1913
- }
1914
-
1915
- if(NIL_P(value))
1916
- {
1917
- out << "{}";
1918
- }
1919
- else
1920
- {
1921
- volatile VALUE hash = callRuby(rb_convert_type, value, T_HASH, "Hash", "to_hash");
1922
- if(NIL_P(hash))
1923
- {
1924
- throw RubyException(rb_eTypeError, "unable to convert value to a hash");
1925
- }
1926
-
1927
- if(RHASH_SIZE(hash) == 0)
1928
- {
1929
- out << "{}";
1930
- return;
1931
- }
1932
-
1933
- out.sb();
1934
- DictionaryPrintIterator iter(this, out, history);
1935
- hashIterate(hash, iter);
1936
- out.eb();
1937
- }
1938
- }
1939
-
1940
- void
1941
- IceRuby::DictionaryInfo::printElement(VALUE key, VALUE value, IceUtilInternal::Output& out, PrintObjectHistory* history)
1942
- {
1943
- out << nl << "key = ";
1944
- keyType->print(key, out, history);
1945
- out << nl << "value = ";
1946
- valueType->print(value, out, history);
1947
- }
1948
-
1949
- void
1950
- IceRuby::DictionaryInfo::KeyCallback::unmarshaled(VALUE val, VALUE, void*)
1951
- {
1952
- key = val;
1953
- }
1954
-
1955
- void
1956
- IceRuby::DictionaryInfo::destroy()
1957
- {
1958
- if(keyType)
1959
- {
1960
- keyType->destroy();
1961
- const_cast<TypeInfoPtr&>(keyType) = 0;
1962
- }
1963
- if(valueType)
1964
- {
1965
- valueType->destroy();
1966
- const_cast<TypeInfoPtr&>(valueType) = 0;
1967
- }
1968
- }
1969
-
1970
- //
1971
- // ClassInfo implementation.
1972
- //
1973
- IceRuby::ClassInfo::ClassInfo(VALUE ident, bool loc) :
1974
- compactId(-1), isBase(false), isLocal(loc), preserve(false), interface(false), rubyClass(Qnil), typeObj(Qnil),
1975
- defined(false)
1976
- {
1977
- const_cast<string&>(id) = getString(ident);
1978
- if(isLocal)
1979
- {
1980
- const_cast<bool&>(isBase) = id == "::Ice::LocalObject";
1981
- }
1982
- else
1983
- {
1984
- const_cast<bool&>(isBase) = id == Ice::Object::ice_staticId();
1985
- }
1986
- const_cast<VALUE&>(typeObj) = createType(this);
1987
- }
1988
-
1989
- void
1990
- IceRuby::ClassInfo::define(VALUE t, VALUE compact, VALUE pres, VALUE intf, VALUE b, VALUE m)
1991
- {
1992
- if(!NIL_P(b))
1993
- {
1994
- const_cast<ClassInfoPtr&>(base) = ClassInfoPtr::dynamicCast(getType(b));
1995
- assert(base);
1996
- }
1997
-
1998
- const_cast<Ice::Int&>(compactId) = static_cast<Ice::Int>(getInteger(compact));
1999
- const_cast<bool&>(preserve) = RTEST(pres);
2000
- const_cast<bool&>(interface) = RTEST(intf);
2001
- convertDataMembers(m, const_cast<DataMemberList&>(members), const_cast<DataMemberList&>(optionalMembers), true);
2002
- const_cast<VALUE&>(rubyClass) = t;
2003
- const_cast<bool&>(defined) = true;
2004
- }
2005
-
2006
- string
2007
- IceRuby::ClassInfo::getId() const
2008
- {
2009
- return id;
2010
- }
2011
-
2012
- bool
2013
- IceRuby::ClassInfo::validate(VALUE val)
2014
- {
2015
- if(NIL_P(val))
2016
- {
2017
- return true;
2018
- }
2019
-
2020
- //
2021
- // We consider an object to be an instance of this class if its class contains
2022
- // an ICE_TYPE constant that refers to this class, or a subclass of this class.
2023
- //
2024
- volatile VALUE cls = CLASS_OF(val);
2025
- volatile VALUE type = Qnil;
2026
- try
2027
- {
2028
- type = callRuby(rb_const_get, cls, rb_intern("ICE_TYPE"));
2029
- }
2030
- catch(const RubyException& ex)
2031
- {
2032
- if(callRuby(rb_obj_is_instance_of, ex.ex, rb_eNameError) == Qtrue)
2033
- {
2034
- //
2035
- // The ICE_TYPE constant will be missing from an instance of LocalObject
2036
- // if it does not implement a user-defined type. This means the user
2037
- // could potentially pass any kind of object; there isn't much we can do
2038
- // since LocalObject maps to the base object type.
2039
- //
2040
- return id == "::Ice::LocalObject";
2041
- }
2042
- else
2043
- {
2044
- throw;
2045
- }
2046
- }
2047
- assert(!NIL_P(type));
2048
- ClassInfoPtr info = ClassInfoPtr::dynamicCast(getType(type));
2049
- assert(info);
2050
- return this->interface || info->isA(this);
2051
- }
2052
-
2053
- bool
2054
- IceRuby::ClassInfo::variableLength() const
2055
- {
2056
- return true;
2057
- }
2058
-
2059
- int
2060
- IceRuby::ClassInfo::wireSize() const
2061
- {
2062
- return 1;
2063
- }
2064
-
2065
- Ice::OptionalFormat
2066
- IceRuby::ClassInfo::optionalFormat() const
2067
- {
2068
- return Ice::OptionalFormatClass;
2069
- }
2070
-
2071
- bool
2072
- IceRuby::ClassInfo::usesClasses() const
2073
- {
2074
- return true;
2075
- }
2076
-
2077
- void
2078
- IceRuby::ClassInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMap, bool)
2079
- {
2080
- if(!defined)
2081
- {
2082
- throw RubyException(rb_eRuntimeError, "class %s is declared but not defined", id.c_str());
2083
- }
2084
-
2085
- if(NIL_P(p))
2086
- {
2087
- Ice::ObjectPtr nil;
2088
- os->write(nil);
2089
- return;
2090
- }
2091
-
2092
- //
2093
- // Ice::ObjectWriter is a subclass of Ice::Object that wraps a Ruby object for marshaling.
2094
- // It is possible that this Ruby object has already been marshaled, therefore we first must
2095
- // check the object map to see if this object is present. If so, we use the existing ObjectWriter,
2096
- // otherwise we create a new one.
2097
- //
2098
- Ice::ObjectPtr writer;
2099
- assert(objectMap);
2100
- ObjectMap::iterator q = objectMap->find(p);
2101
- if(q == objectMap->end())
2102
- {
2103
- writer = new ObjectWriter(p, objectMap, this);
2104
- objectMap->insert(ObjectMap::value_type(p, writer));
2105
- }
2106
- else
2107
- {
2108
- writer = q->second;
2109
- }
2110
-
2111
- //
2112
- // Give the writer to the stream. The stream will eventually call write() on it.
2113
- //
2114
- os->write(writer);
2115
- }
2116
-
2117
- namespace
2118
- {
2119
-
2120
- void
2121
- patchObject(void* addr, const Ice::ObjectPtr& v)
2122
- {
2123
- ReadObjectCallback* cb = static_cast<ReadObjectCallback*>(addr);
2124
- assert(cb);
2125
- cb->invoke(v);
2126
- }
2127
-
2128
- }
2129
-
2130
- void
2131
- IceRuby::ClassInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target, void* closure, bool)
2132
- {
2133
- if(!defined)
2134
- {
2135
- throw RubyException(rb_eRuntimeError, "class %s is declared but not defined", id.c_str());
2136
- }
2137
-
2138
- //
2139
- // This callback is notified when the Slice value is actually read. The StreamUtil object
2140
- // attached to the stream keeps a reference to the callback object to ensure it lives
2141
- // long enough.
2142
- //
2143
- ReadObjectCallbackPtr rocb = new ReadObjectCallback(this, cb, target, closure);
2144
- StreamUtil* util = reinterpret_cast<StreamUtil*>(is->getClosure());
2145
- assert(util);
2146
- util->add(rocb);
2147
- is->read(patchObject, rocb.get());
2148
- }
2149
-
2150
- void
2151
- IceRuby::ClassInfo::print(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory* history)
2152
- {
2153
- if(!validate(value))
2154
- {
2155
- out << "<invalid value - expected " << id << ">";
2156
- return;
2157
- }
2158
-
2159
- if(NIL_P(value))
2160
- {
2161
- out << "<nil>";
2162
- }
2163
- else
2164
- {
2165
- map<VALUE, int>::iterator q = history->objects.find(value);
2166
- if(q != history->objects.end())
2167
- {
2168
- out << "<object #" << q->second << ">";
2169
- }
2170
- else
2171
- {
2172
- volatile VALUE cls = CLASS_OF(value);
2173
- volatile VALUE type = Qnil;
2174
- ClassInfoPtr info;
2175
- try
2176
- {
2177
- type = callRuby(rb_const_get, cls, rb_intern("ICE_TYPE"));
2178
- info = ClassInfoPtr::dynamicCast(getType(type));
2179
- }
2180
- catch(const RubyException& ex)
2181
- {
2182
- if(callRuby(rb_obj_is_instance_of, ex.ex, rb_eNameError) == Qtrue)
2183
- {
2184
- //
2185
- // The ICE_TYPE constant will be missing from an instance of LocalObject
2186
- // if it does not implement a user-defined type. This means the user
2187
- // could potentially pass any kind of object; there isn't much we can do
2188
- // since LocalObject maps to the base object type.
2189
- //
2190
- if(id == "::Ice::LocalObject")
2191
- {
2192
- info = this;
2193
- }
2194
- else
2195
- {
2196
- out << "<invalid value - expected " << id << ">";
2197
- return;
2198
- }
2199
- }
2200
- else
2201
- {
2202
- throw;
2203
- }
2204
- }
2205
- assert(info);
2206
- out << "object #" << history->index << " (" << info->id << ')';
2207
- history->objects.insert(map<VALUE, int>::value_type(value, history->index));
2208
- ++history->index;
2209
- out.sb();
2210
- info->printMembers(value, out, history);
2211
- out.eb();
2212
- }
2213
- }
2214
- }
2215
-
2216
- void
2217
- IceRuby::ClassInfo::destroy()
2218
- {
2219
- const_cast<ClassInfoPtr&>(base) = 0;
2220
- if(!members.empty())
2221
- {
2222
- DataMemberList ml = members;
2223
- const_cast<DataMemberList&>(members).clear();
2224
- for(DataMemberList::iterator p = ml.begin(); p != ml.end(); ++p)
2225
- {
2226
- (*p)->type->destroy();
2227
- }
2228
- }
2229
- }
2230
-
2231
- void
2232
- IceRuby::ClassInfo::printMembers(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory* history)
2233
- {
2234
- if(base)
2235
- {
2236
- base->printMembers(value, out, history);
2237
- }
2238
-
2239
- DataMemberList::const_iterator q;
2240
-
2241
- for(q = members.begin(); q != members.end(); ++q)
2242
- {
2243
- DataMemberPtr member = *q;
2244
- out << nl << member->name << " = ";
2245
- if(callRuby(rb_ivar_defined, value, member->rubyID) == Qfalse)
2246
- {
2247
- out << "<not defined>";
2248
- }
2249
- else
2250
- {
2251
- volatile VALUE val = callRuby(rb_ivar_get, value, member->rubyID);
2252
- member->type->print(val, out, history);
2253
- }
2254
- }
2255
-
2256
- for(q = optionalMembers.begin(); q != optionalMembers.end(); ++q)
2257
- {
2258
- DataMemberPtr member = *q;
2259
- out << nl << member->name << " = ";
2260
- if(callRuby(rb_ivar_defined, value, member->rubyID) == Qfalse)
2261
- {
2262
- out << "<not defined>";
2263
- }
2264
- else
2265
- {
2266
- volatile VALUE val = callRuby(rb_ivar_get, value, member->rubyID);
2267
- if(val == Unset)
2268
- {
2269
- out << "<unset>";
2270
- }
2271
- else
2272
- {
2273
- member->type->print(val, out, history);
2274
- }
2275
- }
2276
- }
2277
- }
2278
-
2279
- bool
2280
- IceRuby::ClassInfo::isA(const ClassInfoPtr& info)
2281
- {
2282
- //
2283
- // Return true if this class has an is-a relationship with info.
2284
- //
2285
- if(info->isBase && isLocal == info->isLocal)
2286
- {
2287
- return true;
2288
- }
2289
- else if(this == info.get())
2290
- {
2291
- return true;
2292
- }
2293
-
2294
- return base && base->isA(info);
2295
- }
2296
-
2297
- //
2298
- // ProxyInfo implementation.
2299
- //
2300
- IceRuby::ProxyInfo::ProxyInfo(VALUE ident) :
2301
- isBase(false), rubyClass(Qnil), typeObj(Qnil)
2302
- {
2303
- const_cast<string&>(id) = getString(ident);
2304
- const_cast<bool&>(isBase) = id == "::Ice::Object";
2305
- const_cast<VALUE&>(typeObj) = createType(this);
2306
- }
2307
-
2308
- void
2309
- IceRuby::ProxyInfo::define(VALUE t, VALUE b, VALUE i)
2310
- {
2311
- if(!NIL_P(b))
2312
- {
2313
- const_cast<ProxyInfoPtr&>(base) = ProxyInfoPtr::dynamicCast(getType(b));
2314
- assert(base);
2315
- }
2316
-
2317
- volatile VALUE arr = callRuby(rb_check_array_type, i);
2318
- assert(!NIL_P(arr));
2319
- for(int n = 0; n < RARRAY_LEN(arr); ++n)
2320
- {
2321
- ProxyInfoPtr iface = ProxyInfoPtr::dynamicCast(getType(RARRAY_AREF(arr, n)));
2322
- assert(iface);
2323
- const_cast<ProxyInfoList&>(interfaces).push_back(iface);
2324
- }
2325
-
2326
- const_cast<VALUE&>(rubyClass) = t;
2327
- }
2328
-
2329
- string
2330
- IceRuby::ProxyInfo::getId() const
2331
- {
2332
- return id;
2333
- }
2334
-
2335
- bool
2336
- IceRuby::ProxyInfo::validate(VALUE val)
2337
- {
2338
- if(!NIL_P(val))
2339
- {
2340
- if(!checkProxy(val))
2341
- {
2342
- return false;
2343
- }
2344
- volatile VALUE cls = CLASS_OF(val);
2345
- volatile VALUE type = callRuby(rb_const_get, cls, rb_intern("ICE_TYPE"));
2346
- assert(!NIL_P(type));
2347
- ProxyInfoPtr info = ProxyInfoPtr::dynamicCast(getType(type));
2348
- assert(info);
2349
- return info->isA(this);
2350
- }
2351
- return true;
2352
- }
2353
-
2354
- bool
2355
- IceRuby::ProxyInfo::variableLength() const
2356
- {
2357
- return true;
2358
- }
2359
-
2360
- int
2361
- IceRuby::ProxyInfo::wireSize() const
2362
- {
2363
- return 1;
2364
- }
2365
-
2366
- Ice::OptionalFormat
2367
- IceRuby::ProxyInfo::optionalFormat() const
2368
- {
2369
- return Ice::OptionalFormatFSize;
2370
- }
2371
-
2372
- void
2373
- IceRuby::ProxyInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap*, bool optional)
2374
- {
2375
- Ice::OutputStream::size_type sizePos = 0;
2376
- if(optional)
2377
- {
2378
- sizePos = os->startSize();
2379
- }
2380
-
2381
- if(NIL_P(p))
2382
- {
2383
- os->write(Ice::ObjectPrx());
2384
- }
2385
- else
2386
- {
2387
- assert(checkProxy(p)); // validate() should have caught this.
2388
- os->write(getProxy(p));
2389
- }
2390
-
2391
- if(optional)
2392
- {
2393
- os->endSize(sizePos);
2394
- }
2395
- }
2396
-
2397
- void
2398
- IceRuby::ProxyInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
2399
- void* closure, bool optional)
2400
- {
2401
- if(optional)
2402
- {
2403
- is->skip(4);
2404
- }
2405
-
2406
- Ice::ObjectPrx proxy;
2407
- is->read(proxy);
2408
-
2409
- if(!proxy)
2410
- {
2411
- cb->unmarshaled(Qnil, target, closure);
2412
- return;
2413
- }
2414
-
2415
- if(NIL_P(rubyClass))
2416
- {
2417
- throw RubyException(rb_eRuntimeError, "class %s is declared but not defined", id.c_str());
2418
- }
2419
-
2420
- volatile VALUE p = createProxy(proxy, rubyClass);
2421
- cb->unmarshaled(p, target, closure);
2422
- }
2423
-
2424
- void
2425
- IceRuby::ProxyInfo::print(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory*)
2426
- {
2427
- if(!validate(value))
2428
- {
2429
- out << "<invalid value - expected " << getId() << ">";
2430
- return;
2431
- }
2432
-
2433
- if(NIL_P(value))
2434
- {
2435
- out << "<nil>";
2436
- }
2437
- else
2438
- {
2439
- out << getString(value);
2440
- }
2441
- }
2442
-
2443
- bool
2444
- IceRuby::ProxyInfo::isA(const ProxyInfoPtr& info)
2445
- {
2446
- //
2447
- // Return true if this class has an is-a relationship with info.
2448
- //
2449
- if(info->isBase)
2450
- {
2451
- return true;
2452
- }
2453
- else if(this == info.get())
2454
- {
2455
- return true;
2456
- }
2457
- else if(base && base->isA(info))
2458
- {
2459
- return true;
2460
- }
2461
- else if(!interfaces.empty())
2462
- {
2463
- for(ProxyInfoList::const_iterator p = interfaces.begin(); p != interfaces.end(); ++p)
2464
- {
2465
- if((*p)->isA(info))
2466
- {
2467
- return true;
2468
- }
2469
- }
2470
- }
2471
-
2472
- return false;
2473
- }
2474
-
2475
- void
2476
- IceRuby::ProxyInfo::destroy()
2477
- {
2478
- const_cast<ProxyInfoPtr&>(base) = 0;
2479
- const_cast<ProxyInfoList&>(interfaces).clear();
2480
- }
2481
-
2482
- //
2483
- // ObjectWriter implementation.
2484
- //
2485
- IceRuby::ObjectWriter::ObjectWriter(VALUE object, ObjectMap* objectMap, const ClassInfoPtr& formal) :
2486
- _object(object), _map(objectMap), _formal(formal)
2487
- {
2488
- //
2489
- // Mark the object as in use for the lifetime of this wrapper.
2490
- //
2491
- rb_gc_register_address(&_object);
2492
- if(!_formal || !_formal->interface)
2493
- {
2494
- volatile VALUE cls = CLASS_OF(object);
2495
- volatile VALUE type = callRuby(rb_const_get, cls, rb_intern("ICE_TYPE"));
2496
- assert(!NIL_P(type));
2497
- _info = ClassInfoPtr::dynamicCast(getType(type));
2498
- assert(_info);
2499
- }
2500
- }
2501
-
2502
- IceRuby::ObjectWriter::~ObjectWriter()
2503
- {
2504
- rb_gc_unregister_address(&_object);
2505
- }
2506
-
2507
- void
2508
- IceRuby::ObjectWriter::ice_preMarshal()
2509
- {
2510
- ID id = rb_intern("ice_preMarshal");
2511
- if(callRuby(rb_respond_to, _object, id))
2512
- {
2513
- callRuby(rb_funcall, _object, id, 0);
2514
- }
2515
- }
2516
-
2517
- void
2518
- IceRuby::ObjectWriter::_iceWrite(Ice::OutputStream* os) const
2519
- {
2520
- Ice::SlicedDataPtr slicedData;
2521
-
2522
- if(_info && _info->preserve)
2523
- {
2524
- //
2525
- // Retrieve the SlicedData object that we stored as a hidden member of the Ruby object.
2526
- //
2527
- slicedData = StreamUtil::getSlicedDataMember(_object, const_cast<ObjectMap*>(_map));
2528
- }
2529
-
2530
- os->startValue(slicedData);
2531
- if(_formal && _formal->interface)
2532
- {
2533
- ID op = rb_intern("ice_id");
2534
- string id = getString(callRuby(rb_funcall, _object, op, 0));
2535
- os->startSlice(id, -1, true);
2536
- os->endSlice();
2537
- }
2538
- else
2539
- {
2540
- if(_info->id != "::Ice::UnknownSlicedValue")
2541
- {
2542
- ClassInfoPtr info = _info;
2543
- while(info)
2544
- {
2545
- os->startSlice(info->id, info->compactId, !info->base);
2546
-
2547
- writeMembers(os, info->members);
2548
- writeMembers(os, info->optionalMembers); // The optional members have already been sorted by tag.
2549
-
2550
- os->endSlice();
2551
-
2552
- info = info->base;
2553
- }
2554
- }
2555
- }
2556
- os->endValue();
2557
- }
2558
-
2559
- void
2560
- IceRuby::ObjectWriter::_iceRead(Ice::InputStream*)
2561
- {
2562
- assert(false);
2563
- }
2564
-
2565
- void
2566
- IceRuby::ObjectWriter::writeMembers(Ice::OutputStream* os, const DataMemberList& members) const
2567
- {
2568
- for(DataMemberList::const_iterator q = members.begin(); q != members.end(); ++q)
2569
- {
2570
- DataMemberPtr member = *q;
2571
-
2572
- volatile VALUE val = callRuby(rb_ivar_get, _object, member->rubyID);
2573
-
2574
- if(member->optional && (val == Unset || !os->writeOptional(member->tag, member->type->optionalFormat())))
2575
- {
2576
- continue;
2577
- }
2578
-
2579
- if(!member->type->validate(val))
2580
- {
2581
- throw RubyException(rb_eTypeError, "invalid value for %s member `%s'", _info->id.c_str(),
2582
- member->name.c_str());
2583
- }
2584
-
2585
- member->type->marshal(val, os, _map, member->optional);
2586
- }
2587
- }
2588
-
2589
- //
2590
- // ObjectReader implementation.
2591
- //
2592
- IceRuby::ObjectReader::ObjectReader(VALUE object, const ClassInfoPtr& info) :
2593
- _object(object), _info(info)
2594
- {
2595
- //
2596
- // Mark the object as in use for the lifetime of this wrapper.
2597
- //
2598
- rb_gc_register_address(&_object);
2599
- }
2600
-
2601
- IceRuby::ObjectReader::~ObjectReader()
2602
- {
2603
- rb_gc_unregister_address(&_object);
2604
- }
2605
-
2606
- void
2607
- IceRuby::ObjectReader::ice_postUnmarshal()
2608
- {
2609
- ID id = rb_intern("ice_postUnmarshal");
2610
- if(callRuby(rb_respond_to, _object, id))
2611
- {
2612
- callRuby(rb_funcall, _object, id, 0);
2613
- }
2614
- }
2615
-
2616
- void
2617
- IceRuby::ObjectReader::_iceWrite(Ice::OutputStream*) const
2618
- {
2619
- assert(false);
2620
- }
2621
-
2622
- void
2623
- IceRuby::ObjectReader::_iceRead(Ice::InputStream* is)
2624
- {
2625
- is->startValue();
2626
-
2627
- const bool unknown = _info->id == "::Ice::UnknownSlicedValue";
2628
-
2629
- //
2630
- // Unmarshal the slices of a user-defined class.
2631
- //
2632
- if(!unknown && _info->id != Ice::Object::ice_staticId())
2633
- {
2634
- ClassInfoPtr info = _info;
2635
- while(info)
2636
- {
2637
- is->startSlice();
2638
-
2639
- DataMemberList::const_iterator p;
2640
-
2641
- for(p = info->members.begin(); p != info->members.end(); ++p)
2642
- {
2643
- DataMemberPtr member = *p;
2644
- member->type->unmarshal(is, member, _object, 0, false);
2645
- }
2646
-
2647
- //
2648
- // The optional members have already been sorted by tag.
2649
- //
2650
- for(p = info->optionalMembers.begin(); p != info->optionalMembers.end(); ++p)
2651
- {
2652
- DataMemberPtr member = *p;
2653
- if(is->readOptional(member->tag, member->type->optionalFormat()))
2654
- {
2655
- member->type->unmarshal(is, member, _object, 0, true);
2656
- }
2657
- else
2658
- {
2659
- callRuby(rb_ivar_set, _object, member->rubyID, Unset);
2660
- }
2661
- }
2662
-
2663
- is->endSlice();
2664
-
2665
- info = info->base;
2666
- }
2667
- }
2668
-
2669
- _slicedData = is->endValue(_info->preserve);
2670
-
2671
- if(_slicedData)
2672
- {
2673
- StreamUtil* util = reinterpret_cast<StreamUtil*>(is->getClosure());
2674
- assert(util);
2675
- util->add(this);
2676
-
2677
- //
2678
- // Define the "unknownTypeId" member for an instance of UnknownSlicedValue.
2679
- //
2680
- if(unknown)
2681
- {
2682
- assert(!_slicedData->slices.empty());
2683
-
2684
- volatile VALUE typeId = createString(_slicedData->slices[0]->typeId);
2685
- callRuby(rb_iv_set, _object, "@unknownTypeId", typeId);
2686
- }
2687
- }
2688
- }
2689
-
2690
- ClassInfoPtr
2691
- IceRuby::ObjectReader::getInfo() const
2692
- {
2693
- return _info;
2694
- }
2695
-
2696
- VALUE
2697
- IceRuby::ObjectReader::getObject() const
2698
- {
2699
- return _object;
2700
- }
2701
-
2702
- Ice::SlicedDataPtr
2703
- IceRuby::ObjectReader::getSlicedData() const
2704
- {
2705
- return _slicedData;
2706
- }
2707
-
2708
- //
2709
- // InfoMapDestroyer implementation.
2710
- //
2711
- IceRuby::InfoMapDestroyer::~InfoMapDestroyer()
2712
- {
2713
- {
2714
- for(ProxyInfoMap::iterator p = _proxyInfoMap.begin(); p != _proxyInfoMap.end(); ++p)
2715
- {
2716
- p->second->destroy();
2717
- }
2718
- }
2719
- {
2720
- for(ClassInfoMap::iterator p = _classInfoMap.begin(); p != _classInfoMap.end(); ++p)
2721
- {
2722
- p->second->destroy();
2723
- }
2724
- }
2725
- _compactIdMap.clear();
2726
- _exceptionInfoMap.clear();
2727
- }
2728
-
2729
- //
2730
- // ReadObjectCallback implementation.
2731
- //
2732
- IceRuby::ReadObjectCallback::ReadObjectCallback(const ClassInfoPtr& info, const UnmarshalCallbackPtr& cb,
2733
- VALUE target, void* closure) :
2734
- _info(info), _cb(cb), _target(target), _closure(closure)
2735
- {
2736
- }
2737
-
2738
- void
2739
- IceRuby::ReadObjectCallback::invoke(const Ice::ObjectPtr& p)
2740
- {
2741
- if(p)
2742
- {
2743
- ObjectReaderPtr reader = ObjectReaderPtr::dynamicCast(p);
2744
- assert(reader);
2745
-
2746
- //
2747
- // Verify that the unmarshaled object is compatible with the formal type.
2748
- //
2749
- volatile VALUE obj = reader->getObject();
2750
- if(!_info->interface && !_info->validate(obj))
2751
- {
2752
- Ice::UnexpectedObjectException ex(__FILE__, __LINE__);
2753
- ex.reason = "unmarshaled object is not an instance of " + _info->id;
2754
- ex.type = reader->getInfo()->getId();
2755
- ex.expectedType = _info->id;
2756
- throw ex;
2757
- }
2758
- #ifndef NDEBUG
2759
- // With debug builds we force a GC to ensure that all data members are correctly keep alive.
2760
- rb_gc();
2761
- #endif
2762
- _cb->unmarshaled(obj, _target, _closure);
2763
- }
2764
- else
2765
- {
2766
- _cb->unmarshaled(Qnil, _target, _closure);
2767
- }
2768
- }
2769
-
2770
- //
2771
- // ExceptionInfo implementation.
2772
- //
2773
- VALUE
2774
- IceRuby::ExceptionInfo::unmarshal(Ice::InputStream* is)
2775
- {
2776
- volatile VALUE obj = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), rubyClass);
2777
-
2778
- ExceptionInfoPtr info = this;
2779
- while(info)
2780
- {
2781
- is->startSlice();
2782
-
2783
- DataMemberList::iterator q;
2784
-
2785
- for(q = info->members.begin(); q != info->members.end(); ++q)
2786
- {
2787
- DataMemberPtr member = *q;
2788
- member->type->unmarshal(is, member, obj, 0, false);
2789
- }
2790
-
2791
- //
2792
- // The optional members have already been sorted by tag.
2793
- //
2794
- for(q = info->optionalMembers.begin(); q != info->optionalMembers.end(); ++q)
2795
- {
2796
- DataMemberPtr member = *q;
2797
- if(is->readOptional(member->tag, member->type->optionalFormat()))
2798
- {
2799
- member->type->unmarshal(is, member, obj, 0, true);
2800
- }
2801
- else
2802
- {
2803
- callRuby(rb_ivar_set, obj, member->rubyID, Unset);
2804
- }
2805
- }
2806
-
2807
- is->endSlice();
2808
-
2809
- info = info->base;
2810
- }
2811
-
2812
- return obj;
2813
- }
2814
-
2815
- void
2816
- IceRuby::ExceptionInfo::print(VALUE value, IceUtilInternal::Output& out)
2817
- {
2818
- if(callRuby(rb_obj_is_kind_of, value, rubyClass) == Qfalse)
2819
- {
2820
- out << "<invalid value - expected " << id << ">";
2821
- return;
2822
- }
2823
-
2824
- PrintObjectHistory history;
2825
- history.index = 0;
2826
-
2827
- out << "exception " << id;
2828
- out.sb();
2829
- printMembers(value, out, &history);
2830
- out.eb();
2831
- }
2832
-
2833
- void
2834
- IceRuby::ExceptionInfo::printMembers(VALUE value, IceUtilInternal::Output& out, PrintObjectHistory* history)
2835
- {
2836
- if(base)
2837
- {
2838
- base->printMembers(value, out, history);
2839
- }
2840
-
2841
- DataMemberList::const_iterator q;
2842
-
2843
- for(q = members.begin(); q != members.end(); ++q)
2844
- {
2845
- DataMemberPtr member = *q;
2846
- out << nl << member->name << " = ";
2847
- if(callRuby(rb_ivar_defined, value, member->rubyID) == Qfalse)
2848
- {
2849
- out << "<not defined>";
2850
- }
2851
- else
2852
- {
2853
- volatile VALUE val = callRuby(rb_ivar_get, value, member->rubyID);
2854
- member->type->print(val, out, history);
2855
- }
2856
- }
2857
-
2858
- for(q = optionalMembers.begin(); q != optionalMembers.end(); ++q)
2859
- {
2860
- DataMemberPtr member = *q;
2861
- out << nl << member->name << " = ";
2862
- if(callRuby(rb_ivar_defined, value, member->rubyID) == Qfalse)
2863
- {
2864
- out << "<not defined>";
2865
- }
2866
- else
2867
- {
2868
- volatile VALUE val = callRuby(rb_ivar_get, value, member->rubyID);
2869
- if(val == Unset)
2870
- {
2871
- out << "<unset>";
2872
- }
2873
- else
2874
- {
2875
- member->type->print(val, out, history);
2876
- }
2877
- }
2878
- }
2879
- }
2880
-
2881
- //
2882
- // ExceptionReader implementation.
2883
- //
2884
- IceRuby::ExceptionReader::ExceptionReader(const ExceptionInfoPtr& info) :
2885
- _info(info)
2886
- {
2887
- }
2888
-
2889
- IceRuby::ExceptionReader::~ExceptionReader()
2890
- throw()
2891
- {
2892
- rb_gc_unregister_address(&_ex);
2893
- }
2894
-
2895
- string
2896
- IceRuby::ExceptionReader::ice_id() const
2897
- {
2898
- return _info->id;
2899
- }
2900
-
2901
- #ifndef ICE_CPP11_MAPPING
2902
- Ice::UserException*
2903
- IceRuby::ExceptionReader::ice_clone() const
2904
- {
2905
- assert(false);
2906
- return 0;
2907
- }
2908
- #endif
2909
-
2910
- void
2911
- IceRuby::ExceptionReader::ice_throw() const
2912
- {
2913
- throw *this;
2914
- }
2915
-
2916
- void
2917
- IceRuby::ExceptionReader::_write(Ice::OutputStream*) const
2918
- {
2919
- assert(false);
2920
- }
2921
-
2922
- void
2923
- IceRuby::ExceptionReader::_read(Ice::InputStream* is)
2924
- {
2925
- is->startException();
2926
-
2927
- const_cast<VALUE&>(_ex) = _info->unmarshal(is);
2928
- rb_gc_register_address(&_ex);
2929
-
2930
- const_cast<Ice::SlicedDataPtr&>(_slicedData) = is->endException(_info->preserve);
2931
- }
2932
-
2933
- bool
2934
- IceRuby::ExceptionReader::_usesClasses() const
2935
- {
2936
- return _info->usesClasses;
2937
- }
2938
-
2939
- VALUE
2940
- IceRuby::ExceptionReader::getException() const
2941
- {
2942
- return _ex;
2943
- }
2944
-
2945
- Ice::SlicedDataPtr
2946
- IceRuby::ExceptionReader::getSlicedData() const
2947
- {
2948
- return _slicedData;
2949
- }
2950
-
2951
- //
2952
- // IdResolver
2953
- //
2954
- string
2955
- IceRuby::IdResolver::resolve(Ice::Int id) const
2956
- {
2957
- CompactIdMap::iterator p = _compactIdMap.find(id);
2958
- if(p != _compactIdMap.end())
2959
- {
2960
- return p->second->id;
2961
- }
2962
- return string();
2963
- }
2964
-
2965
- extern "C"
2966
- VALUE
2967
- IceRuby_defineEnum(VALUE /*self*/, VALUE id, VALUE type, VALUE enumerators)
2968
- {
2969
- ICE_RUBY_TRY
2970
- {
2971
- EnumInfoPtr info = new EnumInfo(id, type, enumerators);
2972
- return createType(info);
2973
- }
2974
- ICE_RUBY_CATCH
2975
- return Qnil;
2976
- }
2977
-
2978
- extern "C"
2979
- VALUE
2980
- IceRuby_defineStruct(VALUE /*self*/, VALUE id, VALUE type, VALUE members)
2981
- {
2982
- ICE_RUBY_TRY
2983
- {
2984
- StructInfoPtr info = new StructInfo(id, type, members);
2985
- return createType(info);
2986
- }
2987
- ICE_RUBY_CATCH
2988
- return Qnil;
2989
- }
2990
-
2991
- extern "C"
2992
- VALUE
2993
- IceRuby_defineSequence(VALUE /*self*/, VALUE id, VALUE elementType)
2994
- {
2995
- ICE_RUBY_TRY
2996
- {
2997
- SequenceInfoPtr info = new SequenceInfo(id, elementType);
2998
- return createType(info);
2999
- }
3000
- ICE_RUBY_CATCH
3001
- return Qnil;
3002
- }
3003
-
3004
- extern "C"
3005
- VALUE
3006
- IceRuby_defineDictionary(VALUE /*self*/, VALUE id, VALUE keyType, VALUE valueType)
3007
- {
3008
- ICE_RUBY_TRY
3009
- {
3010
- DictionaryInfoPtr info = new DictionaryInfo(id, keyType, valueType);
3011
- return createType(info);
3012
- }
3013
- ICE_RUBY_CATCH
3014
- return Qnil;
3015
- }
3016
-
3017
- extern "C"
3018
- VALUE
3019
- IceRuby_declareProxy(VALUE /*self*/, VALUE id)
3020
- {
3021
- ICE_RUBY_TRY
3022
- {
3023
- string proxyId = getString(id);
3024
- proxyId += "Prx";
3025
-
3026
- ProxyInfoPtr info = lookupProxyInfo(proxyId);
3027
- if(!info)
3028
- {
3029
- info = new ProxyInfo(id);
3030
- addProxyInfo(proxyId, info);
3031
- }
3032
-
3033
- return info->typeObj;
3034
- }
3035
- ICE_RUBY_CATCH
3036
- return Qnil;
3037
- }
3038
-
3039
- extern "C"
3040
- VALUE
3041
- IceRuby_declareClass(VALUE /*self*/, VALUE id)
3042
- {
3043
- ICE_RUBY_TRY
3044
- {
3045
- string idstr = getString(id);
3046
- ClassInfoPtr info = lookupClassInfo(idstr);
3047
- if(!info)
3048
- {
3049
- info = new ClassInfo(id, false);
3050
- addClassInfo(idstr, info);
3051
- }
3052
-
3053
- return info->typeObj;
3054
- }
3055
- ICE_RUBY_CATCH
3056
- return Qnil;
3057
- }
3058
-
3059
- extern "C"
3060
- VALUE
3061
- IceRuby_declareLocalClass(VALUE /*self*/, VALUE id)
3062
- {
3063
- ICE_RUBY_TRY
3064
- {
3065
- string idstr = getString(id);
3066
- ClassInfoPtr info = lookupClassInfo(idstr);
3067
- if(!info)
3068
- {
3069
- info = new ClassInfo(id, true);
3070
- addClassInfo(idstr, info);
3071
- }
3072
-
3073
- return info->typeObj;
3074
- }
3075
- ICE_RUBY_CATCH
3076
- return Qnil;
3077
- }
3078
-
3079
- extern "C"
3080
- VALUE
3081
- IceRuby_defineException(VALUE /*self*/, VALUE id, VALUE type, VALUE preserve, VALUE base, VALUE members)
3082
- {
3083
- ICE_RUBY_TRY
3084
- {
3085
- ExceptionInfoPtr info = new ExceptionInfo;
3086
- info->id = getString(id);
3087
-
3088
- info->preserve = preserve == Qtrue;
3089
-
3090
- if(!NIL_P(base))
3091
- {
3092
- info->base = ExceptionInfoPtr::dynamicCast(getException(base));
3093
- assert(info->base);
3094
- }
3095
-
3096
- convertDataMembers(members, info->members, info->optionalMembers, true);
3097
-
3098
- info->usesClasses = false;
3099
-
3100
- //
3101
- // Only examine the required members to see if any use classes.
3102
- //
3103
- for(DataMemberList::iterator p = info->members.begin(); p != info->members.end(); ++p)
3104
- {
3105
- if(!info->usesClasses)
3106
- {
3107
- info->usesClasses = (*p)->type->usesClasses();
3108
- }
3109
- }
3110
-
3111
- info->rubyClass = type;
3112
-
3113
- addExceptionInfo(info->id, info);
3114
-
3115
- return createException(info);
3116
- }
3117
- ICE_RUBY_CATCH
3118
- return Qnil;
3119
- }
3120
-
3121
- extern "C"
3122
- VALUE
3123
- IceRuby_TypeInfo_defineProxy(VALUE self, VALUE type, VALUE base, VALUE interfaces)
3124
- {
3125
- ICE_RUBY_TRY
3126
- {
3127
- ProxyInfoPtr info = ProxyInfoPtr::dynamicCast(getType(self));
3128
- assert(info);
3129
-
3130
- info->define(type, base, interfaces);
3131
- rb_define_const(type, "ICE_TYPE", self);
3132
- rb_define_const(type, "ICE_ID", createString(info->id));
3133
- }
3134
- ICE_RUBY_CATCH
3135
- return Qnil;
3136
- }
3137
-
3138
- extern "C"
3139
- VALUE
3140
- IceRuby_TypeInfo_defineClass(VALUE self, VALUE type, VALUE compactId, VALUE preserve, VALUE interface, VALUE base,
3141
- VALUE members)
3142
- {
3143
- ICE_RUBY_TRY
3144
- {
3145
- ClassInfoPtr info = ClassInfoPtr::dynamicCast(getType(self));
3146
- assert(info);
3147
-
3148
- info->define(type, compactId, preserve, interface, base, members);
3149
-
3150
- if(info->compactId != -1)
3151
- {
3152
- CompactIdMap::iterator q = _compactIdMap.find(info->compactId);
3153
- if(q != _compactIdMap.end())
3154
- {
3155
- _compactIdMap.erase(q);
3156
- }
3157
- _compactIdMap.insert(CompactIdMap::value_type(info->compactId, info));
3158
- }
3159
-
3160
- if(type != Qnil && !info->interface)
3161
- {
3162
- rb_define_const(type, "ICE_TYPE", self);
3163
- rb_define_const(type, "ICE_ID", createString(info->id));
3164
- }
3165
- }
3166
- ICE_RUBY_CATCH
3167
- return Qnil;
3168
- }
3169
-
3170
- extern "C"
3171
- VALUE
3172
- IceRuby_stringify(VALUE /*self*/, VALUE obj, VALUE type)
3173
- {
3174
- ICE_RUBY_TRY
3175
- {
3176
- TypeInfoPtr info = getType(type);
3177
-
3178
- ostringstream ostr;
3179
- IceUtilInternal::Output out(ostr);
3180
- PrintObjectHistory history;
3181
- history.index = 0;
3182
- info->print(obj, out, &history);
3183
-
3184
- string str = ostr.str();
3185
- return createString(str);
3186
- }
3187
- ICE_RUBY_CATCH
3188
- return Qnil;
3189
- }
3190
-
3191
- extern "C"
3192
- VALUE
3193
- IceRuby_stringifyException(VALUE /*self*/, VALUE exc)
3194
- {
3195
- ICE_RUBY_TRY
3196
- {
3197
- volatile VALUE cls = CLASS_OF(exc);
3198
- volatile VALUE type = callRuby(rb_const_get, cls, rb_intern("ICE_TYPE"));
3199
- ExceptionInfoPtr info = getException(type);
3200
-
3201
- ostringstream ostr;
3202
- IceUtilInternal::Output out(ostr);
3203
- info->print(exc, out);
3204
-
3205
- string str = ostr.str();
3206
- return createString(str);
3207
- }
3208
- ICE_RUBY_CATCH
3209
- return Qnil;
3210
- }
3211
-
3212
- //
3213
- // lookupClassInfo()
3214
- //
3215
- IceRuby::ClassInfoPtr
3216
- IceRuby::lookupClassInfo(const string& id)
3217
- {
3218
- ClassInfoMap::iterator p = _classInfoMap.find(id);
3219
- if(p != _classInfoMap.end())
3220
- {
3221
- return p->second;
3222
- }
3223
- return 0;
3224
- }
3225
-
3226
- //
3227
- // lookupExceptionInfo()
3228
- //
3229
- IceRuby::ExceptionInfoPtr
3230
- IceRuby::lookupExceptionInfo(const string& id)
3231
- {
3232
- ExceptionInfoMap::iterator p = _exceptionInfoMap.find(id);
3233
- if(p != _exceptionInfoMap.end())
3234
- {
3235
- return p->second;
3236
- }
3237
- return 0;
3238
- }
3239
-
3240
- bool
3241
- IceRuby::initTypes(VALUE iceModule)
3242
- {
3243
- //
3244
- // Define a class to represent TypeInfo, and another to represent ExceptionInfo.
3245
- //
3246
- _typeInfoClass = rb_define_class_under(iceModule, "Internal_TypeInfo", rb_cObject);
3247
- rb_undef_alloc_func(_typeInfoClass);
3248
- _exceptionInfoClass = rb_define_class_under(iceModule, "Internal_ExceptionInfo", rb_cObject);
3249
- rb_undef_alloc_func(_exceptionInfoClass);
3250
-
3251
- rb_define_const(iceModule, "T_bool", createType(new PrimitiveInfo(PrimitiveInfo::KindBool)));
3252
- rb_define_const(iceModule, "T_byte", createType(new PrimitiveInfo(PrimitiveInfo::KindByte)));
3253
- rb_define_const(iceModule, "T_short", createType(new PrimitiveInfo(PrimitiveInfo::KindShort)));
3254
- rb_define_const(iceModule, "T_int", createType(new PrimitiveInfo(PrimitiveInfo::KindInt)));
3255
- rb_define_const(iceModule, "T_long", createType(new PrimitiveInfo(PrimitiveInfo::KindLong)));
3256
- rb_define_const(iceModule, "T_float", createType(new PrimitiveInfo(PrimitiveInfo::KindFloat)));
3257
- rb_define_const(iceModule, "T_double", createType(new PrimitiveInfo(PrimitiveInfo::KindDouble)));
3258
- rb_define_const(iceModule, "T_string", createType(new PrimitiveInfo(PrimitiveInfo::KindString)));
3259
-
3260
- rb_define_module_function(iceModule, "__defineEnum", CAST_METHOD(IceRuby_defineEnum), 3);
3261
- rb_define_module_function(iceModule, "__defineStruct", CAST_METHOD(IceRuby_defineStruct), 3);
3262
- rb_define_module_function(iceModule, "__defineSequence", CAST_METHOD(IceRuby_defineSequence), 2);
3263
- rb_define_module_function(iceModule, "__defineDictionary", CAST_METHOD(IceRuby_defineDictionary), 3);
3264
- rb_define_module_function(iceModule, "__declareProxy", CAST_METHOD(IceRuby_declareProxy), 1);
3265
- rb_define_module_function(iceModule, "__declareClass", CAST_METHOD(IceRuby_declareClass), 1);
3266
- rb_define_module_function(iceModule, "__declareLocalClass", CAST_METHOD(IceRuby_declareLocalClass), 1);
3267
- rb_define_module_function(iceModule, "__defineException", CAST_METHOD(IceRuby_defineException), 5);
3268
-
3269
- rb_define_method(_typeInfoClass, "defineClass", CAST_METHOD(IceRuby_TypeInfo_defineClass), 6);
3270
- rb_define_method(_typeInfoClass, "defineProxy", CAST_METHOD(IceRuby_TypeInfo_defineProxy), 3);
3271
-
3272
- rb_define_module_function(iceModule, "__stringify", CAST_METHOD(IceRuby_stringify), 2);
3273
- rb_define_module_function(iceModule, "__stringifyException", CAST_METHOD(IceRuby_stringifyException), 1);
3274
-
3275
- _unsetTypeClass = rb_define_class_under(iceModule, "Internal_UnsetType", rb_cObject);
3276
- Unset = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), _unsetTypeClass);
3277
- rb_undef_alloc_func(_unsetTypeClass);
3278
- rb_define_const(iceModule, "Unset", Unset);
3279
-
3280
- return true;
3281
- }
3282
-
3283
- IceRuby::TypeInfoPtr
3284
- IceRuby::getType(VALUE obj)
3285
- {
3286
- assert(TYPE(obj) == T_DATA);
3287
- assert(rb_obj_is_instance_of(obj, _typeInfoClass) == Qtrue);
3288
- TypeInfoPtr* p = reinterpret_cast<TypeInfoPtr*>(DATA_PTR(obj));
3289
- return *p;
3290
- }
3291
-
3292
- extern "C"
3293
- void
3294
- IceRuby_TypeInfo_free(TypeInfoPtr* p)
3295
- {
3296
- delete p;
3297
- }
3298
-
3299
- VALUE
3300
- IceRuby::createType(const TypeInfoPtr& info)
3301
- {
3302
- return Data_Wrap_Struct(_typeInfoClass, 0, IceRuby_TypeInfo_free, new TypeInfoPtr(info));
3303
- }
3304
-
3305
- IceRuby::ExceptionInfoPtr
3306
- IceRuby::getException(VALUE obj)
3307
- {
3308
- assert(TYPE(obj) == T_DATA);
3309
- assert(rb_obj_is_instance_of(obj, _exceptionInfoClass) == Qtrue);
3310
- ExceptionInfoPtr* p = reinterpret_cast<ExceptionInfoPtr*>(DATA_PTR(obj));
3311
- return *p;
3312
- }
3313
-
3314
- extern "C"
3315
- void
3316
- IceRuby_ExceptionInfo_free(ExceptionInfoPtr* p)
3317
- {
3318
- delete p;
3319
- }
3320
-
3321
- VALUE
3322
- IceRuby::createException(const ExceptionInfoPtr& info)
3323
- {
3324
- return Data_Wrap_Struct(_exceptionInfoClass, 0, IceRuby_ExceptionInfo_free, new ExceptionInfoPtr(info));
3325
- }