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
@@ -1,3439 +0,0 @@
1
- //
2
- // Copyright (c) ZeroC, Inc. All rights reserved.
3
- //
4
-
5
- #include <Slice/PythonUtil.h>
6
- #include <Slice/Checksum.h>
7
- #include <Slice/Util.h>
8
- #include <IceUtil/IceUtil.h>
9
- #include <IceUtil/StringUtil.h>
10
- #include <climits>
11
- #include <iterator>
12
-
13
- using namespace std;
14
- using namespace Slice;
15
- using namespace IceUtil;
16
- using namespace IceUtilInternal;
17
-
18
- namespace
19
- {
20
-
21
- string
22
- getEscapedParamName(const OperationPtr& p, const string& name)
23
- {
24
- ParamDeclList params = p->parameters();
25
-
26
- for(ParamDeclList::const_iterator i = params.begin(); i != params.end(); ++i)
27
- {
28
- if((*i)->name() == name)
29
- {
30
- return name + "_";
31
- }
32
- }
33
- return name;
34
- }
35
-
36
- }
37
-
38
- namespace Slice
39
- {
40
- namespace Python
41
- {
42
-
43
- class MetaDataVisitor : public ParserVisitor
44
- {
45
- public:
46
-
47
- virtual bool visitUnitStart(const UnitPtr&);
48
- virtual bool visitModuleStart(const ModulePtr&);
49
- virtual void visitClassDecl(const ClassDeclPtr&);
50
- virtual bool visitClassDefStart(const ClassDefPtr&);
51
- virtual bool visitExceptionStart(const ExceptionPtr&);
52
- virtual bool visitStructStart(const StructPtr&);
53
- virtual void visitOperation(const OperationPtr&);
54
- virtual void visitDataMember(const DataMemberPtr&);
55
- virtual void visitSequence(const SequencePtr&);
56
- virtual void visitDictionary(const DictionaryPtr&);
57
- virtual void visitEnum(const EnumPtr&);
58
- virtual void visitConst(const ConstPtr&);
59
-
60
- private:
61
-
62
- //
63
- // Validates sequence metadata.
64
- //
65
- StringList validateSequence(const string&, const string&, const TypePtr&, const StringList&);
66
-
67
- //
68
- // Checks a definition that doesn't currently support Python metadata.
69
- //
70
- void reject(const ContainedPtr&);
71
-
72
- StringSet _history;
73
- };
74
-
75
- //
76
- // ModuleVisitor finds all of the Slice modules whose include level is greater
77
- // than 0 and emits a statement of the following form:
78
- //
79
- // _M_Foo = Ice.openModule('Foo')
80
- //
81
- // This statement allows the code generated for this translation unit to refer
82
- // to types residing in those included modules.
83
- //
84
- class ModuleVisitor : public ParserVisitor
85
- {
86
- public:
87
-
88
- ModuleVisitor(Output&, set<string>&);
89
-
90
- virtual bool visitModuleStart(const ModulePtr&);
91
-
92
- private:
93
-
94
- Output& _out;
95
- set<string>& _history;
96
- };
97
-
98
- //
99
- // CodeVisitor generates the Python mapping for a translation unit.
100
- //
101
- class CodeVisitor : public ParserVisitor
102
- {
103
- public:
104
-
105
- CodeVisitor(IceUtilInternal::Output&, set<string>&);
106
-
107
- virtual bool visitModuleStart(const ModulePtr&);
108
- virtual void visitModuleEnd(const ModulePtr&);
109
- virtual void visitClassDecl(const ClassDeclPtr&);
110
- virtual bool visitClassDefStart(const ClassDefPtr&);
111
- virtual bool visitExceptionStart(const ExceptionPtr&);
112
- virtual bool visitStructStart(const StructPtr&);
113
- virtual void visitSequence(const SequencePtr&);
114
- virtual void visitDictionary(const DictionaryPtr&);
115
- virtual void visitEnum(const EnumPtr&);
116
- virtual void visitConst(const ConstPtr&);
117
-
118
- private:
119
-
120
- //
121
- // Emit Python code for the class operations
122
- //
123
- void writeOperations(const ClassDefPtr&);
124
-
125
- //
126
- // Return a Python symbol for the given parser element.
127
- //
128
- string getSymbol(const ContainedPtr&, const string& = "", const string& = "");
129
-
130
- //
131
- // Emit Python code to assign the given symbol in the current module.
132
- //
133
- void registerName(const string&);
134
-
135
- //
136
- // Emit the tuple for a Slice type.
137
- //
138
- void writeType(const TypePtr&);
139
-
140
- //
141
- // Write an initializer value for a given type.
142
- //
143
- void writeInitializer(const DataMemberPtr&);
144
-
145
- //
146
- // Add a value to a hash code.
147
- //
148
- void writeHash(const string&, const TypePtr&, int&);
149
-
150
- //
151
- // Write Python metadata as a tuple.
152
- //
153
- void writeMetaData(const StringList&);
154
-
155
- //
156
- // Convert an operation mode into a string.
157
- //
158
- string getOperationMode(Slice::Operation::Mode);
159
-
160
- struct MemberInfo
161
- {
162
- string fixedName;
163
- bool inherited;
164
- DataMemberPtr dataMember;
165
- };
166
- typedef list<MemberInfo> MemberInfoList;
167
-
168
- //
169
- // Write a member assignment statement for a constructor.
170
- //
171
- void writeAssign(const MemberInfo&);
172
-
173
- //
174
- // Write a constant value.
175
- //
176
- void writeConstantValue(const TypePtr&, const SyntaxTreeBasePtr&, const string&);
177
-
178
- //
179
- // Write constructor parameters with default values.
180
- //
181
- void writeConstructorParams(const MemberInfoList&);
182
-
183
- void collectClassMembers(const ClassDefPtr&, MemberInfoList&, bool);
184
- void collectExceptionMembers(const ExceptionPtr&, MemberInfoList&, bool);
185
-
186
- typedef vector<string> StringVec;
187
-
188
- StringVec stripMarkup(const string&);
189
-
190
- void writeDocstring(const string&, const string& = "");
191
- void writeDocstring(const string&, const DataMemberList&);
192
- void writeDocstring(const string&, const EnumeratorList&);
193
-
194
- typedef map<string, string> StringMap;
195
- struct OpComment
196
- {
197
- StringVec description;
198
- StringMap params;
199
- string returns;
200
- StringMap exceptions;
201
- };
202
- bool parseOpComment(const string&, OpComment&);
203
-
204
- enum DocstringMode { DocSync, DocAsync, DocAsyncBegin, DocAsyncEnd, DocDispatch, DocAsyncDispatch };
205
-
206
- void writeDocstring(const OperationPtr&, DocstringMode, bool);
207
-
208
- Output& _out;
209
- set<string>& _moduleHistory;
210
- list<string> _moduleStack;
211
- set<string> _classHistory;
212
- };
213
-
214
- }
215
- }
216
-
217
- static string
218
- lookupKwd(const string& name)
219
- {
220
- //
221
- // Keyword list. *Must* be kept in alphabetical order.
222
- //
223
- static const string keywordList[] =
224
- {
225
- "False",
226
- "None",
227
- "True",
228
- "and",
229
- "as",
230
- "assert",
231
- "async",
232
- "await",
233
- "break",
234
- "case",
235
- "class",
236
- "continue",
237
- "def",
238
- "del",
239
- "elif",
240
- "else",
241
- "except",
242
- "exec",
243
- "finally",
244
- "for",
245
- "from",
246
- "global",
247
- "if",
248
- "import",
249
- "in",
250
- "is",
251
- "lambda",
252
- "match",
253
- "nonlocal",
254
- "not",
255
- "or",
256
- "pass",
257
- "print",
258
- "raise",
259
- "return",
260
- "try",
261
- "while",
262
- "with",
263
- "yield"
264
- };
265
- bool found = binary_search(&keywordList[0],
266
- &keywordList[sizeof(keywordList) / sizeof(*keywordList)],
267
- name);
268
- return found ? "_" + name : name;
269
- }
270
-
271
- //
272
- // Split a scoped name into its components and return the components as a list of (unscoped) identifiers.
273
- //
274
- static vector<string>
275
- splitScopedName(const string& scoped)
276
- {
277
- assert(scoped[0] == ':');
278
- vector<string> ids;
279
- string::size_type next = 0;
280
- string::size_type pos;
281
- while((pos = scoped.find("::", next)) != string::npos)
282
- {
283
- pos += 2;
284
- if(pos != scoped.size())
285
- {
286
- string::size_type endpos = scoped.find("::", pos);
287
- if(endpos != string::npos)
288
- {
289
- ids.push_back(scoped.substr(pos, endpos - pos));
290
- }
291
- }
292
- next = pos;
293
- }
294
- if(next != scoped.size())
295
- {
296
- ids.push_back(scoped.substr(next));
297
- }
298
- else
299
- {
300
- ids.push_back("");
301
- }
302
-
303
- return ids;
304
- }
305
-
306
- static string
307
- getDictLookup(const ContainedPtr& cont, const string& suffix = "", const string& prefix = "")
308
- {
309
- string scope = Slice::Python::scopedToName(cont->scope());
310
- assert(!scope.empty());
311
-
312
- string package = Slice::Python::getPackageMetadata(cont);
313
- if(!package.empty())
314
- {
315
- scope = package + "." + scope;
316
- }
317
-
318
- return "'" + suffix + Slice::Python::fixIdent(cont->name() + prefix) + "' not in _M_" + scope + "__dict__";
319
- }
320
-
321
- //
322
- // ModuleVisitor implementation.
323
- //
324
- Slice::Python::ModuleVisitor::ModuleVisitor(Output& out, set<string>& history) :
325
- _out(out), _history(history)
326
- {
327
- }
328
-
329
- bool
330
- Slice::Python::ModuleVisitor::visitModuleStart(const ModulePtr& p)
331
- {
332
- if(p->includeLevel() > 0)
333
- {
334
- string abs = getAbsolute(p);
335
- if(_history.count(abs) == 0)
336
- {
337
- //
338
- // If this is a top-level module, then we check if it has package metadata.
339
- // If so, we need to emit statements to open each of the modules in the
340
- // package before we can open this module.
341
- //
342
- if(UnitPtr::dynamicCast(p->container()))
343
- {
344
- string pkg = getPackageMetadata(p);
345
- if(!pkg.empty())
346
- {
347
- vector<string> v;
348
- splitString(pkg, ".", v);
349
- string mod;
350
- for(vector<string>::iterator q = v.begin(); q != v.end(); ++q)
351
- {
352
- mod = mod.empty() ? *q : mod + "." + *q;
353
- if(_history.count(mod) == 0)
354
- {
355
- _out << nl << "_M_" << mod << " = Ice.openModule('" << mod << "')";
356
- _history.insert(mod);
357
- }
358
- }
359
- }
360
- }
361
-
362
- _out << sp << nl << "# Included module " << abs;
363
- _out << nl << "_M_" << abs << " = Ice.openModule('" << abs << "')";
364
- _history.insert(abs);
365
- }
366
- }
367
-
368
- return true;
369
- }
370
-
371
- //
372
- // CodeVisitor implementation.
373
- //
374
- Slice::Python::CodeVisitor::CodeVisitor(Output& out, set<string>& moduleHistory) :
375
- _out(out),
376
- _moduleHistory(moduleHistory)
377
- {
378
- }
379
-
380
- bool
381
- Slice::Python::CodeVisitor::visitModuleStart(const ModulePtr& p)
382
- {
383
- //
384
- // As each module is opened, we emit the statement
385
- //
386
- // __name__ = 'Foo'
387
- //
388
- // This renames the current module to 'Foo' so that subsequent
389
- // type definitions have the proper fully-qualified name.
390
- //
391
- // We also emit the statement
392
- //
393
- // _M_Foo = Ice.openModule('Foo')
394
- //
395
- // This allows us to create types in the module Foo.
396
- //
397
- string abs = getAbsolute(p);
398
- _out << sp << nl << "# Start of module " << abs;
399
- if(_moduleHistory.count(abs) == 0) // Don't emit this more than once for each module.
400
- {
401
- //
402
- // If this is a top-level module, then we check if it has package metadata.
403
- // If so, we need to emit statements to open each of the modules in the
404
- // package before we can open this module.
405
- //
406
- if(UnitPtr::dynamicCast(p->container()))
407
- {
408
- string pkg = getPackageMetadata(p);
409
- if(!pkg.empty())
410
- {
411
- vector<string> v;
412
- splitString(pkg, ".", v);
413
- string mod;
414
- for(vector<string>::iterator q = v.begin(); q != v.end(); ++q)
415
- {
416
- mod = mod.empty() ? *q : mod + "." + *q;
417
- if(_moduleHistory.count(mod) == 0) // Don't emit this more than once for each module.
418
- {
419
- _out << nl << "_M_" << mod << " = Ice.openModule('" << mod << "')";
420
- _moduleHistory.insert(mod);
421
- }
422
- }
423
- }
424
- }
425
- _out << nl << "_M_" << abs << " = Ice.openModule('" << abs << "')";
426
- _moduleHistory.insert(abs);
427
- }
428
- _out << nl << "__name__ = '" << abs << "'";
429
-
430
- writeDocstring(p->comment(), "_M_" + abs + ".__doc__ = ");
431
-
432
- _moduleStack.push_front(abs);
433
- return true;
434
- }
435
-
436
- void
437
- Slice::Python::CodeVisitor::visitModuleEnd(const ModulePtr&)
438
- {
439
- assert(!_moduleStack.empty());
440
- _out << sp << nl << "# End of module " << _moduleStack.front();
441
- _moduleStack.pop_front();
442
-
443
- if(!_moduleStack.empty())
444
- {
445
- _out << sp << nl << "__name__ = '" << _moduleStack.front() << "'";
446
- }
447
- }
448
-
449
- void
450
- Slice::Python::CodeVisitor::visitClassDecl(const ClassDeclPtr& p)
451
- {
452
- //
453
- // Emit forward declarations.
454
- //
455
- string scoped = p->scoped();
456
- if(_classHistory.count(scoped) == 0)
457
- {
458
- _out << sp << nl << "if " << getDictLookup(p) << ':';
459
- _out.inc();
460
-
461
- if(!p->isInterface() || p->isLocal())
462
- {
463
- _out << nl << "_M_" << getAbsolute(p, "_t_") << " = IcePy.declareValue('" << scoped << "')";
464
- }
465
-
466
- ClassDefPtr def = p->definition();
467
- if(!p->isLocal() && (p->isInterface() || (def && def->allOperations().size())))
468
- {
469
- _out << nl << "_M_" << getAbsolute(p, "_t_", "Disp") << " = IcePy.declareClass('" << scoped << "')";
470
- _out << nl << "_M_" << getAbsolute(p, "_t_", "Prx") << " = IcePy.declareProxy('" << scoped << "')";
471
- }
472
- _out.dec();
473
- _classHistory.insert(scoped); // Avoid redundant declarations.
474
- }
475
- }
476
-
477
- void
478
- Slice::Python::CodeVisitor::writeOperations(const ClassDefPtr& p)
479
- {
480
- OperationList ops = p->operations();
481
- if(!ops.empty())
482
- {
483
- //
484
- // Emit a placeholder for each operation.
485
- //
486
- for(OperationList::iterator oli = ops.begin(); oli != ops.end(); ++oli)
487
- {
488
- string fixedOpName = fixIdent((*oli)->name());
489
- if(!p->isLocal())
490
- {
491
- if((*oli)->hasMarshaledResult())
492
- {
493
- string name = (*oli)->name();
494
- name[0] = static_cast<char>(toupper(static_cast<unsigned char>(name[0])));
495
- _out << sp;
496
- _out << nl << "\"\"\"";
497
- _out << nl << "Immediately marshals the result of an invocation of " << (*oli)->name()
498
- << nl << "and returns an object that the servant implementation must return"
499
- << nl << "as its result."
500
- << nl << "Arguments:"
501
- << nl << "result -- The result (or result tuple) of the invocation."
502
- << nl << "current -- The Current object passed to the invocation."
503
- << nl << "Returns: An object containing the marshaled result.";
504
- _out << nl << "\"\"\"";
505
- _out << nl << "@staticmethod";
506
- _out << nl << "def " << name << "MarshaledResult(result, current):";
507
- _out.inc();
508
- _out << nl << "return IcePy.MarshaledResult(result, _M_" << getAbsolute(p) << "._op_"
509
- << (*oli)->name() << ", current.adapter.getCommunicator().getImpl(), current.encoding)";
510
- _out.dec();
511
- }
512
-
513
- _out << sp << nl << "def " << fixedOpName << "(self";
514
-
515
- ParamDeclList params = (*oli)->parameters();
516
-
517
- for(ParamDeclList::iterator pli = params.begin(); pli != params.end(); ++pli)
518
- {
519
- if(!(*pli)->isOutParam())
520
- {
521
- _out << ", " << fixIdent((*pli)->name());
522
- }
523
- }
524
-
525
- if(!p->isLocal())
526
- {
527
- const string currentParamName = getEscapedParamName(*oli, "current");
528
- _out << ", " << currentParamName << "=None";
529
- }
530
- _out << "):";
531
- _out.inc();
532
-
533
- writeDocstring(*oli, DocAsyncDispatch, false);
534
-
535
- _out << nl << "raise NotImplementedError(\"servant method '" << fixedOpName << "' not implemented\")";
536
- _out.dec();
537
- }
538
- else
539
- {
540
- _out << sp << nl << "def " << fixedOpName << "(self";
541
-
542
- ParamDeclList params = (*oli)->parameters();
543
-
544
- for(ParamDeclList::iterator pli = params.begin(); pli != params.end(); ++pli)
545
- {
546
- if(!(*pli)->isOutParam())
547
- {
548
- _out << ", " << fixIdent((*pli)->name());
549
- }
550
- }
551
- if(!p->isLocal())
552
- {
553
- const string currentParamName = getEscapedParamName(*oli, "current");
554
- _out << ", " << currentParamName << "=None";
555
- }
556
- _out << "):";
557
- _out.inc();
558
- writeDocstring(*oli, DocDispatch, p->isLocal());
559
- _out << nl << "raise NotImplementedError(\"method '" << fixedOpName << "' not implemented\")";
560
- _out.dec();
561
- }
562
- }
563
- }
564
- }
565
-
566
- bool
567
- Slice::Python::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
568
- {
569
- bool isLocal = p->isLocal();
570
- bool isInterface = p->isInterface();
571
- bool isAbstract = isInterface || p->allOperations().size() > 0; // Don't use isAbstract() - see bug 3739
572
-
573
- string scoped = p->scoped();
574
- string type = getAbsolute(p, "_t_");
575
- string classType = getAbsolute(p, "_t_", "Disp");
576
- string abs = getAbsolute(p);
577
- string className = isLocal || isInterface ? fixIdent(p->name()) : isAbstract ? fixIdent(p->name() + "Disp") : "None";
578
- string classAbs = isInterface ? getAbsolute(p) : getAbsolute(p, "", "Disp");
579
- string valueName = (isInterface && !isLocal) ? "Ice.Value" : fixIdent(p->name());
580
- string prxAbs = getAbsolute(p, "", "Prx");
581
- string prxName = fixIdent(p->name() + "Prx");
582
- string prxType = getAbsolute(p, "_t_", "Prx");
583
- ClassList bases = p->bases();
584
- ClassDefPtr base;
585
-
586
- if(!bases.empty() && !bases.front()->isInterface())
587
- {
588
- base = bases.front();
589
- }
590
-
591
- //
592
- // Define a class type for Value types or local classes.
593
- //
594
- if(isLocal || !isInterface)
595
- {
596
- _out << sp << nl << "if " << getDictLookup(p) << ':';
597
- _out.inc();
598
- _out << nl << "_M_" << abs << " = Ice.createTempClass()";
599
- _out << nl << "class " << valueName << '(';
600
- if(isLocal)
601
- {
602
- if(bases.empty())
603
- {
604
- _out << "object";
605
- }
606
- else
607
- {
608
- for(ClassList::const_iterator q = bases.begin(); q != bases.end(); ++q)
609
- {
610
- if(q != bases.begin())
611
- {
612
- _out << ", ";
613
- }
614
- _out << getSymbol(*q);
615
- }
616
- }
617
- }
618
- else
619
- {
620
- if(bases.empty() || bases.front()->isInterface())
621
- {
622
- _out << "Ice.Value";
623
- }
624
- else
625
- {
626
- _out << getSymbol(bases.front());
627
- }
628
- }
629
- _out << "):";
630
-
631
- _out.inc();
632
-
633
- writeDocstring(p->comment(), p->dataMembers());
634
-
635
- //
636
- // __init__
637
- //
638
- _out << nl << "def __init__(self";
639
- MemberInfoList allMembers;
640
- collectClassMembers(p, allMembers, false);
641
- writeConstructorParams(allMembers);
642
- _out << "):";
643
- _out.inc();
644
- if(!base && !p->hasDataMembers() && (!isAbstract || !isLocal))
645
- {
646
- _out << nl << "pass";
647
- }
648
- else
649
- {
650
- if(isAbstract && isLocal)
651
- {
652
- _out << nl << "if Ice.getType(self) == _M_" << abs << ':';
653
- _out.inc();
654
- _out << nl << "raise RuntimeError('" << abs << " is an abstract class')";
655
- _out.dec();
656
- }
657
- if(base)
658
- {
659
- _out << nl << getSymbol(base) << ".__init__(self";
660
- for(MemberInfoList::iterator q = allMembers.begin(); q != allMembers.end(); ++q)
661
- {
662
- if(q->inherited)
663
- {
664
- _out << ", " << q->fixedName;
665
- }
666
- }
667
- _out << ')';
668
- }
669
- for(MemberInfoList::iterator q = allMembers.begin(); q != allMembers.end(); ++q)
670
- {
671
- if(!q->inherited)
672
- {
673
- writeAssign(*q);
674
- }
675
- }
676
- }
677
- _out.dec();
678
-
679
- if(!isLocal)
680
- {
681
- //
682
- // ice_id
683
- //
684
- _out << sp << nl << "def ice_id(self):";
685
- _out.inc();
686
- _out << nl << "return '" << scoped << "'";
687
- _out.dec();
688
-
689
- //
690
- // ice_staticId
691
- //
692
- _out << sp << nl << "@staticmethod";
693
- _out << nl << "def ice_staticId():";
694
- _out.inc();
695
- _out << nl << "return '" << scoped << "'";
696
- _out.dec();
697
- }
698
- else
699
- {
700
- writeOperations(p);
701
- }
702
-
703
- //
704
- // __str__
705
- //
706
- _out << sp << nl << "def __str__(self):";
707
- _out.inc();
708
- _out << nl << "return IcePy.stringify(self, _M_" << type << ")";
709
- _out.dec();
710
- _out << sp << nl << "__repr__ = __str__";
711
-
712
- _out.dec();
713
-
714
- if(_classHistory.count(scoped) == 0 && p->canBeCyclic())
715
- {
716
- //
717
- // Emit a forward declaration for the class in case a data member refers to this type.
718
- //
719
- _out << sp << nl << "_M_" << type << " = IcePy.declareValue('" << scoped << "')";
720
- }
721
- DataMemberList members = p->dataMembers();
722
- _out << sp << nl << "_M_" << type << " = IcePy.defineValue('" << scoped << "', " << valueName
723
- << ", " << p->compactId() << ", ";
724
- writeMetaData(p->getMetaData());
725
- const bool preserved = p->hasMetaData("preserve-slice") || p->inheritsMetaData("preserve-slice");
726
- _out << ", " << (preserved ? "True" : "False") << ", " << (isInterface ? "True" : "False") << ", ";
727
- if(!base)
728
- {
729
- _out << "None";
730
- }
731
- else
732
- {
733
- _out << "_M_" << getAbsolute(base, "_t_");
734
- }
735
- _out << ", (";
736
- //
737
- // Members
738
- //
739
- // Data members are represented as a tuple:
740
- //
741
- // ('MemberName', MemberMetaData, MemberType, Optional, Tag)
742
- //
743
- // where MemberType is either a primitive type constant (T_INT, etc.) or the id of a constructed type.
744
- //
745
- if(members.size() > 1)
746
- {
747
- _out.inc();
748
- _out << nl;
749
- }
750
- bool isProtected = p->hasMetaData("protected");
751
- for(DataMemberList::iterator r = members.begin(); r != members.end(); ++r)
752
- {
753
- if(r != members.begin())
754
- {
755
- _out << ',' << nl;
756
- }
757
- _out << "('";
758
- if(isProtected || (*r)->hasMetaData("protected"))
759
- {
760
- _out << '_';
761
- }
762
- _out << fixIdent((*r)->name()) << "', ";
763
- writeMetaData((*r)->getMetaData());
764
- _out << ", ";
765
- writeType((*r)->type());
766
- _out << ", " << ((*r)->optional() ? "True" : "False") << ", "
767
- << ((*r)->optional() ? (*r)->tag() : 0) << ')';
768
- }
769
- if(members.size() == 1)
770
- {
771
- _out << ',';
772
- }
773
- else if(members.size() > 1)
774
- {
775
- _out.dec();
776
- _out << nl;
777
- }
778
- _out << "))";
779
- _out << nl << valueName << "._ice_type = _M_" << type;
780
-
781
- registerName(valueName);
782
-
783
- _out.dec();
784
- }
785
- else if(!isLocal && isInterface)
786
- {
787
- _out << sp << nl << "_M_" << type << " = IcePy.defineValue('" << scoped << "', Ice.Value, -1, ";
788
- writeMetaData(p->getMetaData());
789
- _out << ", False, True, None, ())";
790
- }
791
-
792
- if(!isLocal && isAbstract)
793
- {
794
- _out << sp << nl << "if " << getDictLookup(p, "", "Prx") << ':';
795
- _out.inc();
796
-
797
- // Define the proxy class
798
- _out << nl << "_M_" << prxAbs << " = Ice.createTempClass()";
799
- _out << nl << "class " << prxName << '(';
800
-
801
- {
802
- vector<string> baseClasses;
803
- for(ClassList::const_iterator q = bases.begin(); q != bases.end(); ++q)
804
- {
805
- ClassDefPtr d = *q;
806
- if(d->isInterface() || d->allOperations().size() > 0)
807
- {
808
- baseClasses.push_back(getSymbol(*q, "", "Prx"));
809
- }
810
- }
811
-
812
- if(baseClasses.empty())
813
- {
814
- _out << "Ice.ObjectPrx";
815
- }
816
- else
817
- {
818
- vector<string>::const_iterator q = baseClasses.begin();
819
- while(q != baseClasses.end())
820
- {
821
- _out << *q;
822
-
823
- if(++q != baseClasses.end())
824
- {
825
- _out << ", ";
826
- }
827
- }
828
- }
829
- }
830
- _out << "):";
831
- _out.inc();
832
-
833
- OperationList ops = p->operations();
834
- for(OperationList::iterator oli = ops.begin(); oli != ops.end(); ++oli)
835
- {
836
- string fixedOpName = fixIdent((*oli)->name());
837
- if(fixedOpName == "checkedCast" || fixedOpName == "uncheckedCast")
838
- {
839
- fixedOpName.insert(0, "_");
840
- }
841
- TypePtr ret = (*oli)->returnType();
842
- ParamDeclList paramList = (*oli)->parameters();
843
- string inParams;
844
- string inParamsDecl;
845
-
846
- // Find the last required parameter, all optional parameters after the last required parameter will use
847
- // Ice.Unset as the default.
848
- ParamDeclPtr lastRequiredParameter;
849
- for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q)
850
- {
851
- if(!(*q)->isOutParam() && !(*q)->optional())
852
- {
853
- lastRequiredParameter = *q;
854
- }
855
- }
856
-
857
- bool afterLastRequiredParameter = lastRequiredParameter == ICE_NULLPTR;
858
- for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q)
859
- {
860
- if(!(*q)->isOutParam())
861
- {
862
- if(!inParams.empty())
863
- {
864
- inParams.append(", ");
865
- inParamsDecl.append(", ");
866
- }
867
- string param = fixIdent((*q)->name());
868
- inParams.append(param);
869
- if(afterLastRequiredParameter)
870
- {
871
- param += "=Ice.Unset";
872
- }
873
- inParamsDecl.append(param);
874
-
875
- if(*q == lastRequiredParameter)
876
- {
877
- afterLastRequiredParameter = true;
878
- }
879
- }
880
- }
881
-
882
- _out << sp;
883
- writeDocstring(*oli, DocSync, false);
884
- _out << nl << "def " << fixedOpName << "(self";
885
- if(!inParamsDecl.empty())
886
- {
887
- _out << ", " << inParamsDecl;
888
- }
889
- const string contextParamName = getEscapedParamName(*oli, "context");
890
- _out << ", " << contextParamName << "=None):";
891
- _out.inc();
892
- _out << nl << "return _M_" << classAbs << "._op_" << (*oli)->name() << ".invoke(self, ((" << inParams;
893
- if(!inParams.empty() && inParams.find(',') == string::npos)
894
- {
895
- _out << ", ";
896
- }
897
- _out << "), " << contextParamName << "))";
898
- _out.dec();
899
-
900
- //
901
- // Async operations.
902
- //
903
- _out << sp;
904
- writeDocstring(*oli, DocAsync, false);
905
- _out << nl << "def " << (*oli)->name() << "Async(self";
906
- if(!inParams.empty())
907
- {
908
- _out << ", " << inParams;
909
- }
910
- _out << ", " << contextParamName << "=None):";
911
- _out.inc();
912
- _out << nl << "return _M_" << classAbs << "._op_" << (*oli)->name() << ".invokeAsync(self, ((" << inParams;
913
- if(!inParams.empty() && inParams.find(',') == string::npos)
914
- {
915
- _out << ", ";
916
- }
917
- _out << "), " << contextParamName << "))";
918
- _out.dec();
919
-
920
- _out << sp;
921
- writeDocstring(*oli, DocAsyncBegin, false);
922
- _out << nl << "def begin_" << (*oli)->name() << "(self";
923
- if(!inParams.empty())
924
- {
925
- _out << ", " << inParams;
926
- }
927
- _out << ", _response=None, _ex=None, _sent=None, " << contextParamName << "=None):";
928
- _out.inc();
929
- _out << nl << "return _M_" << classAbs << "._op_" << (*oli)->name() << ".begin(self, ((" << inParams;
930
- if(!inParams.empty() && inParams.find(',') == string::npos)
931
- {
932
- _out << ", ";
933
- }
934
- _out << "), _response, _ex, _sent, " << contextParamName << "))";
935
- _out.dec();
936
-
937
- _out << sp;
938
- writeDocstring(*oli, DocAsyncEnd, false);
939
- _out << nl << "def end_" << (*oli)->name() << "(self, _r):";
940
- _out.inc();
941
- _out << nl << "return _M_" << classAbs << "._op_" << (*oli)->name() << ".end(self, _r)";
942
- _out.dec();
943
- }
944
-
945
- _out << sp << nl << "@staticmethod";
946
- _out << nl << "def checkedCast(proxy, facetOrContext=None, context=None):";
947
- _out.inc();
948
- _out << nl << "return _M_" << prxAbs << ".ice_checkedCast(proxy, '" << scoped << "', facetOrContext, context)";
949
- _out.dec();
950
-
951
- _out << sp << nl << "@staticmethod";
952
- _out << nl << "def uncheckedCast(proxy, facet=None):";
953
- _out.inc();
954
- _out << nl << "return _M_" << prxAbs << ".ice_uncheckedCast(proxy, facet)";
955
- _out.dec();
956
-
957
- //
958
- // ice_staticId
959
- //
960
- _out << sp << nl << "@staticmethod";
961
- _out << nl << "def ice_staticId():";
962
- _out.inc();
963
- _out << nl << "return '" << scoped << "'";
964
- _out.dec();
965
-
966
- _out.dec(); // end prx class
967
-
968
- _out << nl << "_M_" << prxType << " = IcePy.defineProxy('" << scoped << "', " << prxName << ")";
969
-
970
- registerName(prxName);
971
-
972
- // Define the servant class
973
- _out << sp << nl << "_M_" << classAbs << " = Ice.createTempClass()";
974
- _out << nl << "class " << className << '(';
975
- {
976
- vector<string> baseClasses;
977
- for(ClassList::const_iterator q = bases.begin(); q != bases.end(); ++q)
978
- {
979
- ClassDefPtr d = *q;
980
- if(d->isInterface() || d->allOperations().size() > 0)
981
- {
982
- baseClasses.push_back(getSymbol(*q, "", d->isInterface() ? "" : "Disp"));
983
- }
984
- }
985
-
986
- if(baseClasses.empty())
987
- {
988
- _out << "Ice.Object";
989
- }
990
- else
991
- {
992
- vector<string>::const_iterator q = baseClasses.begin();
993
- while(q != baseClasses.end())
994
- {
995
- _out << *q;
996
-
997
- if(++q != baseClasses.end())
998
- {
999
- _out << ", ";
1000
- }
1001
- }
1002
- }
1003
- }
1004
- _out << "):";
1005
-
1006
- _out.inc();
1007
-
1008
- //
1009
- // ice_ids
1010
- //
1011
- ClassList allBases = p->allBases();
1012
- StringList ids;
1013
- #ifdef ICE_CPP11_COMPILER
1014
- transform(allBases.begin(), allBases.end(), back_inserter(ids),
1015
- [](const ContainedPtr& it)
1016
- {
1017
- return it->scoped();
1018
- });
1019
- #else
1020
- transform(allBases.begin(), allBases.end(), back_inserter(ids), IceUtil::constMemFun(&Contained::scoped));
1021
- #endif
1022
- StringList other;
1023
- other.push_back(scoped);
1024
- other.push_back("::Ice::Object");
1025
- other.sort();
1026
- ids.merge(other);
1027
- ids.unique();
1028
- _out << sp << nl << "def ice_ids(self, current=None):";
1029
- _out.inc();
1030
- _out << nl << "return (";
1031
- for(StringList::iterator q = ids.begin(); q != ids.end(); ++q)
1032
- {
1033
- if(q != ids.begin())
1034
- {
1035
- _out << ", ";
1036
- }
1037
- _out << "'" << *q << "'";
1038
- }
1039
- _out << ')';
1040
- _out.dec();
1041
-
1042
- //
1043
- // ice_id
1044
- //
1045
- _out << sp << nl << "def ice_id(self, current=None):";
1046
- _out.inc();
1047
- _out << nl << "return '" << scoped << "'";
1048
- _out.dec();
1049
-
1050
- //
1051
- // ice_staticId
1052
- //
1053
- _out << sp << nl << "@staticmethod";
1054
- _out << nl << "def ice_staticId():";
1055
- _out.inc();
1056
- _out << nl << "return '" << scoped << "'";
1057
- _out.dec();
1058
-
1059
- writeOperations(p);
1060
-
1061
- //
1062
- // __str__
1063
- //
1064
- _out << sp << nl << "def __str__(self):";
1065
- _out.inc();
1066
- _out << nl << "return IcePy.stringify(self, _M_" << getAbsolute(p, "_t_", "Disp") << ")";
1067
- _out.dec();
1068
- _out << sp << nl << "__repr__ = __str__";
1069
-
1070
- _out.dec();
1071
-
1072
- _out << sp << nl << "_M_" << classType << " = IcePy.defineClass('" << scoped << "', " << className
1073
- << ", ";
1074
- writeMetaData(p->getMetaData());
1075
- _out << ", ";
1076
- if(!base || (!base->isInterface() && base->allOperations().size() == 0))
1077
- {
1078
- _out << "None";
1079
- }
1080
- else
1081
- {
1082
- _out << "_M_" << getAbsolute(base, "_t_", "Disp");
1083
- }
1084
- _out << ", (";
1085
- //
1086
- // Interfaces
1087
- //
1088
- int interfaceCount = 0;
1089
- for(ClassList::const_iterator q = bases.begin(); q != bases.end(); ++q)
1090
- {
1091
- if((*q)->isInterface())
1092
- {
1093
- if(interfaceCount > 0)
1094
- {
1095
- _out << ", ";
1096
- }
1097
- _out << "_M_" << getAbsolute(*q, "_t_", "Disp");
1098
- ++interfaceCount;
1099
- }
1100
- }
1101
- if(interfaceCount == 1)
1102
- {
1103
- _out << ',';
1104
- }
1105
- _out << "))";
1106
- _out << nl << className << "._ice_type = _M_" << classType;
1107
-
1108
- //
1109
- // Define each operation. The arguments to the IcePy.Operation constructor are:
1110
- //
1111
- // 'opName', Mode, SendMode, AMD, Format, MetaData, (InParams), (OutParams), ReturnParam, (Exceptions)
1112
- //
1113
- // where InParams and OutParams are tuples of type descriptions, and Exceptions
1114
- // is a tuple of exception type ids.
1115
- //
1116
- if(!ops.empty())
1117
- {
1118
- _out << sp;
1119
- }
1120
- for(OperationList::iterator s = ops.begin(); s != ops.end(); ++s)
1121
- {
1122
- ParamDeclList params = (*s)->parameters();
1123
- ParamDeclList::iterator t;
1124
- int count;
1125
- string format;
1126
- switch((*s)->format())
1127
- {
1128
- case DefaultFormat:
1129
- format = "None";
1130
- break;
1131
- case CompactFormat:
1132
- format = "Ice.FormatType.CompactFormat";
1133
- break;
1134
- case SlicedFormat:
1135
- format = "Ice.FormatType.SlicedFormat";
1136
- break;
1137
- }
1138
-
1139
- _out << nl << className << "._op_" << (*s)->name() << " = IcePy.Operation('" << (*s)->name() << "', "
1140
- << getOperationMode((*s)->mode()) << ", " << getOperationMode((*s)->sendMode()) << ", "
1141
- << ((p->hasMetaData("amd") || (*s)->hasMetaData("amd")) ? "True" : "False") << ", "
1142
- << format << ", ";
1143
- writeMetaData((*s)->getMetaData());
1144
- _out << ", (";
1145
- for(t = params.begin(), count = 0; t != params.end(); ++t)
1146
- {
1147
- if(!(*t)->isOutParam())
1148
- {
1149
- if(count > 0)
1150
- {
1151
- _out << ", ";
1152
- }
1153
- _out << '(';
1154
- writeMetaData((*t)->getMetaData());
1155
- _out << ", ";
1156
- writeType((*t)->type());
1157
- _out << ", " << ((*t)->optional() ? "True" : "False") << ", "
1158
- << ((*t)->optional() ? (*t)->tag() : 0) << ')';
1159
- ++count;
1160
- }
1161
- }
1162
- if(count == 1)
1163
- {
1164
- _out << ',';
1165
- }
1166
- _out << "), (";
1167
- for(t = params.begin(), count = 0; t != params.end(); ++t)
1168
- {
1169
- if((*t)->isOutParam())
1170
- {
1171
- if(count > 0)
1172
- {
1173
- _out << ", ";
1174
- }
1175
- _out << '(';
1176
- writeMetaData((*t)->getMetaData());
1177
- _out << ", ";
1178
- writeType((*t)->type());
1179
- _out << ", " << ((*t)->optional() ? "True" : "False") << ", "
1180
- << ((*t)->optional() ? (*t)->tag() : 0) << ')';
1181
- ++count;
1182
- }
1183
- }
1184
- if(count == 1)
1185
- {
1186
- _out << ',';
1187
- }
1188
- _out << "), ";
1189
- TypePtr returnType = (*s)->returnType();
1190
- if(returnType)
1191
- {
1192
- //
1193
- // The return type has the same format as an in/out parameter:
1194
- //
1195
- // MetaData, Type, Optional?, OptionalTag
1196
- //
1197
- _out << "((), ";
1198
- writeType(returnType);
1199
- _out << ", " << ((*s)->returnIsOptional() ? "True" : "False") << ", "
1200
- << ((*s)->returnIsOptional() ? (*s)->returnTag() : 0) << ')';
1201
- }
1202
- else
1203
- {
1204
- _out << "None";
1205
- }
1206
- _out << ", (";
1207
- ExceptionList exceptions = (*s)->throws();
1208
- for(ExceptionList::iterator u = exceptions.begin(); u != exceptions.end(); ++u)
1209
- {
1210
- if(u != exceptions.begin())
1211
- {
1212
- _out << ", ";
1213
- }
1214
- _out << "_M_" << getAbsolute(*u, "_t_");
1215
- }
1216
- if(exceptions.size() == 1)
1217
- {
1218
- _out << ',';
1219
- }
1220
- _out << "))";
1221
-
1222
- string deprecateMetadata;
1223
- if((*s)->findMetaData("deprecate", deprecateMetadata) || p->findMetaData("deprecate", deprecateMetadata))
1224
- {
1225
- string msg;
1226
- string::size_type pos = deprecateMetadata.find(':');
1227
- if(pos != string::npos && pos < deprecateMetadata.size() - 1)
1228
- {
1229
- msg = deprecateMetadata.substr(pos + 1);
1230
- }
1231
- _out << nl << className << "._op_" << (*s)->name() << ".deprecate(\"" << msg << "\")";
1232
- }
1233
- }
1234
-
1235
- registerName(className);
1236
- _out.dec();
1237
- }
1238
-
1239
- if(_classHistory.count(scoped) == 0)
1240
- {
1241
- _classHistory.insert(scoped); // Avoid redundant declarations.
1242
- }
1243
-
1244
- return false;
1245
- }
1246
-
1247
- bool
1248
- Slice::Python::CodeVisitor::visitExceptionStart(const ExceptionPtr& p)
1249
- {
1250
- string scoped = p->scoped();
1251
- string abs = getAbsolute(p);
1252
- string name = fixIdent(p->name());
1253
-
1254
- _out << sp << nl << "if " << getDictLookup(p) << ':';
1255
- _out.inc();
1256
- _out << nl << "_M_" << abs << " = Ice.createTempClass()";
1257
- _out << nl << "class " << name << '(';
1258
- ExceptionPtr base = p->base();
1259
- string baseName;
1260
- if(base)
1261
- {
1262
- baseName = getSymbol(base);
1263
- _out << baseName;
1264
- }
1265
- else if(p->isLocal())
1266
- {
1267
- _out << "Ice.LocalException";
1268
- }
1269
- else
1270
- {
1271
- _out << "Ice.UserException";
1272
- }
1273
- _out << "):";
1274
- _out.inc();
1275
-
1276
- DataMemberList members = p->dataMembers();
1277
-
1278
- writeDocstring(p->comment(), members);
1279
-
1280
- //
1281
- // __init__
1282
- //
1283
- _out << nl << "def __init__(self";
1284
- MemberInfoList allMembers;
1285
- collectExceptionMembers(p, allMembers, false);
1286
- writeConstructorParams(allMembers);
1287
- _out << "):";
1288
- _out.inc();
1289
- if(!base && members.empty())
1290
- {
1291
- _out << nl << "pass";
1292
- }
1293
- else
1294
- {
1295
- if(base)
1296
- {
1297
- _out << nl << baseName << ".__init__(self";
1298
- for(MemberInfoList::iterator q = allMembers.begin(); q != allMembers.end(); ++q)
1299
- {
1300
- if(q->inherited)
1301
- {
1302
- _out << ", " << q->fixedName;
1303
- }
1304
- }
1305
- _out << ')';
1306
- }
1307
- for(MemberInfoList::iterator q = allMembers.begin(); q != allMembers.end(); ++q)
1308
- {
1309
- if(!q->inherited)
1310
- {
1311
- writeAssign(*q);
1312
- }
1313
- }
1314
- }
1315
- _out.dec();
1316
-
1317
- //
1318
- // __str__
1319
- //
1320
- _out << sp << nl << "def __str__(self):";
1321
- _out.inc();
1322
- _out << nl << "return IcePy.stringifyException(self)";
1323
- _out.dec();
1324
- _out << sp << nl << "__repr__ = __str__";
1325
-
1326
- //
1327
- // _ice_id
1328
- //
1329
- _out << sp << nl << "_ice_id = '" << scoped << "'";
1330
-
1331
- _out.dec();
1332
-
1333
- //
1334
- // Emit the type information.
1335
- //
1336
- string type = getAbsolute(p, "_t_");
1337
- _out << sp << nl << "_M_" << type << " = IcePy.defineException('" << scoped << "', " << name << ", ";
1338
- writeMetaData(p->getMetaData());
1339
- const bool preserved = p->hasMetaData("preserve-slice") || p->inheritsMetaData("preserve-slice");
1340
- _out << ", " << (preserved ? "True" : "False") << ", ";
1341
- if(!base)
1342
- {
1343
- _out << "None";
1344
- }
1345
- else
1346
- {
1347
- _out << "_M_" << getAbsolute(base, "_t_");
1348
- }
1349
- _out << ", (";
1350
- if(members.size() > 1)
1351
- {
1352
- _out.inc();
1353
- _out << nl;
1354
- }
1355
- //
1356
- // Data members are represented as a tuple:
1357
- //
1358
- // ('MemberName', MemberMetaData, MemberType, Optional, Tag)
1359
- //
1360
- // where MemberType is either a primitive type constant (T_INT, etc.) or the id of a constructed type.
1361
- //
1362
- for(DataMemberList::iterator dmli = members.begin(); dmli != members.end(); ++dmli)
1363
- {
1364
- if(dmli != members.begin())
1365
- {
1366
- _out << ',' << nl;
1367
- }
1368
- _out << "('" << fixIdent((*dmli)->name()) << "', ";
1369
- writeMetaData((*dmli)->getMetaData());
1370
- _out << ", ";
1371
- writeType((*dmli)->type());
1372
- _out << ", " << ((*dmli)->optional() ? "True" : "False") << ", "
1373
- << ((*dmli)->optional() ? (*dmli)->tag() : 0) << ')';
1374
- }
1375
- if(members.size() == 1)
1376
- {
1377
- _out << ',';
1378
- }
1379
- else if(members.size() > 1)
1380
- {
1381
- _out.dec();
1382
- _out << nl;
1383
- }
1384
- _out << "))";
1385
- _out << nl << name << "._ice_type = _M_" << type;
1386
-
1387
- registerName(name);
1388
-
1389
- _out.dec();
1390
-
1391
- return false;
1392
- }
1393
-
1394
- bool
1395
- Slice::Python::CodeVisitor::visitStructStart(const StructPtr& p)
1396
- {
1397
- string scoped = p->scoped();
1398
- string abs = getAbsolute(p);
1399
- string name = fixIdent(p->name());
1400
- DataMemberList members = p->dataMembers();
1401
- MemberInfoList memberList;
1402
-
1403
- {
1404
- for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
1405
- {
1406
- memberList.push_back(MemberInfo());
1407
- memberList.back().fixedName = fixIdent((*q)->name());
1408
- memberList.back().inherited = false;
1409
- memberList.back().dataMember = *q;
1410
- }
1411
- }
1412
-
1413
- _out << sp << nl << "if " << getDictLookup(p) << ':';
1414
- _out.inc();
1415
- _out << nl << "_M_" << abs << " = Ice.createTempClass()";
1416
- _out << nl << "class " << name << "(object):";
1417
- _out.inc();
1418
-
1419
- writeDocstring(p->comment(), members);
1420
-
1421
- _out << nl << "def __init__(self";
1422
- writeConstructorParams(memberList);
1423
- _out << "):";
1424
- _out.inc();
1425
- for(MemberInfoList::iterator r = memberList.begin(); r != memberList.end(); ++r)
1426
- {
1427
- writeAssign(*r);
1428
- }
1429
- _out.dec();
1430
-
1431
- //
1432
- // Only generate __hash__ and the comparison operators if this structure type
1433
- // is a legal dictionary key type.
1434
- //
1435
- bool containsSequence = false;
1436
- if(Dictionary::legalKeyType(p, containsSequence))
1437
- {
1438
- _out << sp << nl << "def __hash__(self):";
1439
- _out.inc();
1440
- _out << nl << "_h = 0";
1441
- int iter = 0;
1442
- for(MemberInfoList::iterator r = memberList.begin(); r != memberList.end(); ++r)
1443
- {
1444
- string s = "self." + r->fixedName;
1445
- writeHash(s, r->dataMember->type(), iter);
1446
- }
1447
- _out << nl << "return _h % 0x7fffffff";
1448
- _out.dec();
1449
-
1450
- //
1451
- // Rich operators. __lt__, __le__, __eq__, __ne__, __gt__, __ge__
1452
- //
1453
-
1454
- _out << sp << nl << "def __compare(self, other):";
1455
- _out.inc();
1456
- _out << nl << "if other is None:";
1457
- _out.inc();
1458
- _out << nl << "return 1";
1459
- _out.dec();
1460
- _out << nl << "elif not isinstance(other, _M_" << abs << "):";
1461
- _out.inc();
1462
- _out << nl << "return NotImplemented";
1463
- _out.dec();
1464
- _out << nl << "else:";
1465
- _out.inc();
1466
- for(MemberInfoList::iterator r = memberList.begin(); r != memberList.end(); ++r)
1467
- {
1468
- //
1469
- // The None value is not orderable in Python 3.
1470
- //
1471
- _out << nl << "if self." << r->fixedName << " is None or other." << r->fixedName << " is None:";
1472
- _out.inc();
1473
- _out << nl << "if self." << r->fixedName << " != other." << r->fixedName << ':';
1474
- _out.inc();
1475
- _out << nl << "return (-1 if self." << r->fixedName << " is None else 1)";
1476
- _out.dec();
1477
- _out.dec();
1478
- _out << nl << "else:";
1479
- _out.inc();
1480
- _out << nl << "if self." << r->fixedName << " < other." << r->fixedName << ':';
1481
- _out.inc();
1482
- _out << nl << "return -1";
1483
- _out.dec();
1484
- _out << nl << "elif self." << r->fixedName << " > other." << r->fixedName << ':';
1485
- _out.inc();
1486
- _out << nl << "return 1";
1487
- _out.dec();
1488
- _out.dec();
1489
- }
1490
- _out << nl << "return 0";
1491
- _out.dec();
1492
- _out.dec();
1493
-
1494
- _out << sp << nl << "def __lt__(self, other):";
1495
- _out.inc();
1496
- _out << nl << "r = self.__compare(other)";
1497
- _out << nl << "if r is NotImplemented:";
1498
- _out.inc();
1499
- _out << nl << "return r";
1500
- _out.dec();
1501
- _out << nl << "else:";
1502
- _out.inc();
1503
- _out << nl << "return r < 0";
1504
- _out.dec();
1505
- _out.dec();
1506
-
1507
- _out << sp << nl << "def __le__(self, other):";
1508
- _out.inc();
1509
- _out << nl << "r = self.__compare(other)";
1510
- _out << nl << "if r is NotImplemented:";
1511
- _out.inc();
1512
- _out << nl << "return r";
1513
- _out.dec();
1514
- _out << nl << "else:";
1515
- _out.inc();
1516
- _out << nl << "return r <= 0";
1517
- _out.dec();
1518
- _out.dec();
1519
-
1520
- _out << sp << nl << "def __gt__(self, other):";
1521
- _out.inc();
1522
- _out << nl << "r = self.__compare(other)";
1523
- _out << nl << "if r is NotImplemented:";
1524
- _out.inc();
1525
- _out << nl << "return r";
1526
- _out.dec();
1527
- _out << nl << "else:";
1528
- _out.inc();
1529
- _out << nl << "return r > 0";
1530
- _out.dec();
1531
- _out.dec();
1532
-
1533
- _out << sp << nl << "def __ge__(self, other):";
1534
- _out.inc();
1535
- _out << nl << "r = self.__compare(other)";
1536
- _out << nl << "if r is NotImplemented:";
1537
- _out.inc();
1538
- _out << nl << "return r";
1539
- _out.dec();
1540
- _out << nl << "else:";
1541
- _out.inc();
1542
- _out << nl << "return r >= 0";
1543
- _out.dec();
1544
- _out.dec();
1545
-
1546
- _out << sp << nl << "def __eq__(self, other):";
1547
- _out.inc();
1548
- _out << nl << "r = self.__compare(other)";
1549
- _out << nl << "if r is NotImplemented:";
1550
- _out.inc();
1551
- _out << nl << "return r";
1552
- _out.dec();
1553
- _out << nl << "else:";
1554
- _out.inc();
1555
- _out << nl << "return r == 0";
1556
- _out.dec();
1557
- _out.dec();
1558
-
1559
- _out << sp << nl << "def __ne__(self, other):";
1560
- _out.inc();
1561
- _out << nl << "r = self.__compare(other)";
1562
- _out << nl << "if r is NotImplemented:";
1563
- _out.inc();
1564
- _out << nl << "return r";
1565
- _out.dec();
1566
- _out << nl << "else:";
1567
- _out.inc();
1568
- _out << nl << "return r != 0";
1569
- _out.dec();
1570
- _out.dec();
1571
- }
1572
- else
1573
- {
1574
- //
1575
- // Only generate the rich equality operators __eq__ and __ne__.
1576
- //
1577
-
1578
- _out << sp << nl << "def __eq__(self, other):";
1579
- _out.inc();
1580
- _out << nl << "if other is None:";
1581
- _out.inc();
1582
- _out << nl << "return False";
1583
- _out.dec();
1584
- _out << nl << "elif not isinstance(other, _M_" << abs << "):";
1585
- _out.inc();
1586
- _out << nl << "return NotImplemented";
1587
- _out.dec();
1588
- _out << nl << "else:";
1589
- _out.inc();
1590
- for(MemberInfoList::iterator r = memberList.begin(); r != memberList.end(); ++r)
1591
- {
1592
- //
1593
- // The None value is not orderable in Python 3.
1594
- //
1595
- _out << nl << "if self." << r->fixedName << " != other." << r->fixedName << ':';
1596
- _out.inc();
1597
- _out << nl << "return False";
1598
- _out.dec();
1599
- }
1600
- _out << nl << "return True";
1601
- _out.dec();
1602
- _out.dec();
1603
-
1604
- _out << sp << nl << "def __ne__(self, other):";
1605
- _out.inc();
1606
- _out << nl << "return not self.__eq__(other)";
1607
- _out.dec();
1608
- }
1609
-
1610
- //
1611
- // __str__
1612
- //
1613
- _out << sp << nl << "def __str__(self):";
1614
- _out.inc();
1615
- _out << nl << "return IcePy.stringify(self, _M_" << getAbsolute(p, "_t_") << ")";
1616
- _out.dec();
1617
- _out << sp << nl << "__repr__ = __str__";
1618
-
1619
- _out.dec();
1620
-
1621
- //
1622
- // Emit the type information.
1623
- //
1624
- _out << sp << nl << "_M_" << getAbsolute(p, "_t_") << " = IcePy.defineStruct('" << scoped << "', " << name << ", ";
1625
- writeMetaData(p->getMetaData());
1626
- _out << ", (";
1627
- //
1628
- // Data members are represented as a tuple:
1629
- //
1630
- // ('MemberName', MemberMetaData, MemberType)
1631
- //
1632
- // where MemberType is either a primitive type constant (T_INT, etc.) or the id of a constructed type.
1633
- //
1634
- if(memberList.size() > 1)
1635
- {
1636
- _out.inc();
1637
- _out << nl;
1638
- }
1639
- for(MemberInfoList::iterator r = memberList.begin(); r != memberList.end(); ++r)
1640
- {
1641
- if(r != memberList.begin())
1642
- {
1643
- _out << ',' << nl;
1644
- }
1645
- _out << "('" << r->fixedName << "', ";
1646
- writeMetaData(r->dataMember->getMetaData());
1647
- _out << ", ";
1648
- writeType(r->dataMember->type());
1649
- _out << ')';
1650
- }
1651
- if(memberList.size() == 1)
1652
- {
1653
- _out << ',';
1654
- }
1655
- else if(memberList.size() > 1)
1656
- {
1657
- _out.dec();
1658
- _out << nl;
1659
- }
1660
- _out << "))";
1661
-
1662
- registerName(name);
1663
-
1664
- _out.dec();
1665
-
1666
- return false;
1667
- }
1668
-
1669
- void
1670
- Slice::Python::CodeVisitor::visitSequence(const SequencePtr& p)
1671
- {
1672
- static const string protobuf = "python:protobuf:";
1673
- StringList metaData = p->getMetaData();
1674
- bool isCustom = false;
1675
- string customType;
1676
- for(StringList::const_iterator q = metaData.begin(); q != metaData.end(); ++q)
1677
- {
1678
- if(q->find(protobuf) == 0)
1679
- {
1680
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(p->type());
1681
- if(!builtin || builtin->kind() != Builtin::KindByte)
1682
- {
1683
- continue;
1684
- }
1685
- isCustom = true;
1686
- customType = q->substr(protobuf.size());
1687
- break;
1688
- }
1689
- }
1690
-
1691
- //
1692
- // Emit the type information.
1693
- //
1694
- string scoped = p->scoped();
1695
- _out << sp << nl << "if " << getDictLookup(p, "_t_") << ':';
1696
- _out.inc();
1697
- if(isCustom)
1698
- {
1699
- string package = customType.substr(0, customType.find('.'));
1700
- _out << nl << "import " << package;
1701
- _out << nl << "_M_" << getAbsolute(p, "_t_")
1702
- << " = IcePy.defineCustom('" << scoped << "', " << customType << ")";
1703
- }
1704
- else
1705
- {
1706
- _out << nl << "_M_" << getAbsolute(p, "_t_") << " = IcePy.defineSequence('" << scoped << "', ";
1707
- writeMetaData(metaData);
1708
- _out << ", ";
1709
- writeType(p->type());
1710
- _out << ")";
1711
- }
1712
- _out.dec();
1713
- }
1714
-
1715
- void
1716
- Slice::Python::CodeVisitor::visitDictionary(const DictionaryPtr& p)
1717
- {
1718
- //
1719
- // Emit the type information.
1720
- //
1721
- string scoped = p->scoped();
1722
- _out << sp << nl << "if " << getDictLookup(p, "_t_") << ':';
1723
- _out.inc();
1724
- _out << nl << "_M_" << getAbsolute(p, "_t_") << " = IcePy.defineDictionary('" << scoped << "', ";
1725
- writeMetaData(p->getMetaData());
1726
- _out << ", ";
1727
- writeType(p->keyType());
1728
- _out << ", ";
1729
- writeType(p->valueType());
1730
- _out << ")";
1731
- _out.dec();
1732
- }
1733
-
1734
- void
1735
- Slice::Python::CodeVisitor::visitEnum(const EnumPtr& p)
1736
- {
1737
- string scoped = p->scoped();
1738
- string abs = getAbsolute(p);
1739
- string name = fixIdent(p->name());
1740
- EnumeratorList enums = p->enumerators();
1741
- EnumeratorList::iterator q;
1742
-
1743
- _out << sp << nl << "if " << getDictLookup(p) << ':';
1744
- _out.inc();
1745
- _out << nl << "_M_" << abs << " = Ice.createTempClass()";
1746
- _out << nl << "class " << name << "(Ice.EnumBase):";
1747
- _out.inc();
1748
-
1749
- writeDocstring(p->comment(), enums);
1750
-
1751
- _out << sp << nl << "def __init__(self, _n, _v):";
1752
- _out.inc();
1753
- _out << nl << "Ice.EnumBase.__init__(self, _n, _v)";
1754
- _out.dec();
1755
-
1756
- _out << sp << nl << "def valueOf(self, _n):";
1757
- _out.inc();
1758
- _out << nl << "if _n in self._enumerators:";
1759
- _out.inc();
1760
- _out << nl << "return self._enumerators[_n]";
1761
- _out.dec();
1762
- _out << nl << "return None";
1763
- _out.dec();
1764
- _out << nl << "valueOf = classmethod(valueOf)";
1765
-
1766
- _out.dec();
1767
-
1768
- _out << sp;
1769
- for(q = enums.begin(); q != enums.end(); ++q)
1770
- {
1771
- string fixedEnum = fixIdent((*q)->name());
1772
- _out << nl << name << '.' << fixedEnum << " = " << name << "(\"" << (*q)->name() << "\", " << (*q)->value()
1773
- << ')';
1774
- }
1775
- _out << nl << name << "._enumerators = { ";
1776
- for(q = enums.begin(); q != enums.end(); ++q)
1777
- {
1778
- if(q != enums.begin())
1779
- {
1780
- _out << ", ";
1781
- }
1782
- string fixedEnum = fixIdent((*q)->name());
1783
- _out << (*q)->value() << ':' << name << '.' << fixedEnum;
1784
- }
1785
- _out << " }";
1786
-
1787
- //
1788
- // Emit the type information.
1789
- //
1790
- _out << sp << nl << "_M_" << getAbsolute(p, "_t_") << " = IcePy.defineEnum('" << scoped << "', " << name
1791
- << ", ";
1792
- writeMetaData(p->getMetaData());
1793
- _out << ", " << name << "._enumerators)";
1794
-
1795
- registerName(name);
1796
-
1797
- _out.dec();
1798
- }
1799
-
1800
- void
1801
- Slice::Python::CodeVisitor::visitConst(const ConstPtr& p)
1802
- {
1803
- Slice::TypePtr type = p->type();
1804
- string name = fixIdent(p->name());
1805
-
1806
- _out << sp << nl << "_M_" << getAbsolute(p) << " = ";
1807
- writeConstantValue(type, p->valueType(), p->value());
1808
- }
1809
-
1810
- string
1811
- Slice::Python::CodeVisitor::getSymbol(const ContainedPtr& p, const string& prefix, const string& suffix)
1812
- {
1813
- //
1814
- // An explicit reference to another type must always be prefixed with "_M_".
1815
- //
1816
- return "_M_" + getAbsolute(p, prefix, suffix);
1817
- }
1818
-
1819
- void
1820
- Slice::Python::CodeVisitor::registerName(const string& name)
1821
- {
1822
- assert(!_moduleStack.empty());
1823
- _out << sp << nl << "_M_" << _moduleStack.front() << '.' << name << " = " << name;
1824
- _out << nl << "del " << name;
1825
- }
1826
-
1827
- void
1828
- Slice::Python::CodeVisitor::writeType(const TypePtr& p)
1829
- {
1830
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(p);
1831
- if(builtin)
1832
- {
1833
- switch(builtin->kind())
1834
- {
1835
- case Builtin::KindBool:
1836
- {
1837
- _out << "IcePy._t_bool";
1838
- break;
1839
- }
1840
- case Builtin::KindByte:
1841
- {
1842
- _out << "IcePy._t_byte";
1843
- break;
1844
- }
1845
- case Builtin::KindShort:
1846
- {
1847
- _out << "IcePy._t_short";
1848
- break;
1849
- }
1850
- case Builtin::KindInt:
1851
- {
1852
- _out << "IcePy._t_int";
1853
- break;
1854
- }
1855
- case Builtin::KindLong:
1856
- {
1857
- _out << "IcePy._t_long";
1858
- break;
1859
- }
1860
- case Builtin::KindFloat:
1861
- {
1862
- _out << "IcePy._t_float";
1863
- break;
1864
- }
1865
- case Builtin::KindDouble:
1866
- {
1867
- _out << "IcePy._t_double";
1868
- break;
1869
- }
1870
- case Builtin::KindString:
1871
- {
1872
- _out << "IcePy._t_string";
1873
- break;
1874
- }
1875
- case Builtin::KindObject:
1876
- case Builtin::KindValue:
1877
- {
1878
- _out << "IcePy._t_Value";
1879
- break;
1880
- }
1881
- case Builtin::KindObjectProxy:
1882
- {
1883
- _out << "IcePy._t_ObjectPrx";
1884
- break;
1885
- }
1886
- case Builtin::KindLocalObject:
1887
- {
1888
- _out << "IcePy._t_LocalObject";
1889
- break;
1890
- }
1891
- }
1892
- return;
1893
- }
1894
-
1895
- ProxyPtr prx = ProxyPtr::dynamicCast(p);
1896
- if(prx)
1897
- {
1898
- ClassDefPtr def = prx->_class()->definition();
1899
- if(!def || def->isAbstract())
1900
- {
1901
- _out << "_M_" << getAbsolute(prx->_class(), "_t_", "Prx");
1902
- }
1903
- else
1904
- {
1905
- _out << "IcePy._t_ObjectPrx";
1906
- }
1907
- return;
1908
- }
1909
-
1910
- ContainedPtr cont = ContainedPtr::dynamicCast(p);
1911
- assert(cont);
1912
- _out << "_M_" << getAbsolute(cont, "_t_");
1913
- }
1914
-
1915
- void
1916
- Slice::Python::CodeVisitor::writeInitializer(const DataMemberPtr& m)
1917
- {
1918
- TypePtr p = m->type();
1919
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(p);
1920
- if(builtin)
1921
- {
1922
- switch(builtin->kind())
1923
- {
1924
- case Builtin::KindBool:
1925
- {
1926
- _out << "False";
1927
- break;
1928
- }
1929
- case Builtin::KindByte:
1930
- case Builtin::KindShort:
1931
- case Builtin::KindInt:
1932
- case Builtin::KindLong:
1933
- {
1934
- _out << "0";
1935
- break;
1936
- }
1937
- case Builtin::KindFloat:
1938
- case Builtin::KindDouble:
1939
- {
1940
- _out << "0.0";
1941
- break;
1942
- }
1943
- case Builtin::KindString:
1944
- {
1945
- _out << "''";
1946
- break;
1947
- }
1948
- case Builtin::KindValue:
1949
- case Builtin::KindObject:
1950
- case Builtin::KindObjectProxy:
1951
- case Builtin::KindLocalObject:
1952
- {
1953
- _out << "None";
1954
- break;
1955
- }
1956
- }
1957
- return;
1958
- }
1959
-
1960
- EnumPtr en = EnumPtr::dynamicCast(p);
1961
- if(en)
1962
- {
1963
- EnumeratorList enums = en->enumerators();
1964
- _out << getSymbol(en) << "." << fixIdent(enums.front()->name());
1965
- return;
1966
- }
1967
-
1968
- StructPtr st = StructPtr::dynamicCast(p);
1969
- if(st)
1970
- {
1971
- //
1972
- // We cannot emit a call to the struct's constructor here because Python
1973
- // only evaluates this expression once (see bug 3676). Instead, we emit
1974
- // a marker that allows us to determine whether the application has
1975
- // supplied a value.
1976
- //
1977
- _out << "Ice._struct_marker";
1978
- return;
1979
- }
1980
-
1981
- _out << "None";
1982
- }
1983
-
1984
- void
1985
- Slice::Python::CodeVisitor::writeHash(const string& name, const TypePtr& p, int& iter)
1986
- {
1987
- SequencePtr seq = SequencePtr::dynamicCast(p);
1988
- if(seq)
1989
- {
1990
- _out << nl << "if " << name << ':';
1991
- _out.inc();
1992
- _out << nl << "for _i" << iter << " in " << name << ':';
1993
- _out.inc();
1994
- ostringstream elem;
1995
- elem << "_i" << iter;
1996
- iter++;
1997
- writeHash(elem.str(), seq->type(), iter);
1998
- _out.dec();
1999
- _out.dec();
2000
- return;
2001
- }
2002
-
2003
- DictionaryPtr dict = DictionaryPtr::dynamicCast(p);
2004
- if(dict)
2005
- {
2006
- _out << nl << "if " << name << ':';
2007
- _out.inc();
2008
- _out << nl << "for _i" << iter << " in " << name << ':';
2009
- _out.inc();
2010
- ostringstream key;
2011
- key << "_i" << iter;
2012
- ostringstream value;
2013
- value << name << '[' << key.str() << ']';
2014
- iter++;
2015
- writeHash(key.str(), dict->keyType(), iter);
2016
- writeHash(value.str(), dict->valueType(), iter);
2017
- _out.dec();
2018
- _out.dec();
2019
- return;
2020
- }
2021
-
2022
- _out << nl << "_h = 5 * _h + Ice.getHash(" << name << ")";
2023
- }
2024
-
2025
- void
2026
- Slice::Python::CodeVisitor::writeMetaData(const StringList& meta)
2027
- {
2028
- int i = 0;
2029
- _out << '(';
2030
- for(StringList::const_iterator p = meta.begin(); p != meta.end(); ++p)
2031
- {
2032
- if(p->find("python:") == 0)
2033
- {
2034
- if(i > 0)
2035
- {
2036
- _out << ", ";
2037
- }
2038
- _out << "'" << *p << "'";
2039
- ++i;
2040
- }
2041
- }
2042
- if(i == 1)
2043
- {
2044
- _out << ',';
2045
- }
2046
- _out << ')';
2047
- }
2048
-
2049
- void
2050
- Slice::Python::CodeVisitor::writeAssign(const MemberInfo& info)
2051
- {
2052
- string paramName = info.fixedName;
2053
- string memberName = info.fixedName;
2054
-
2055
- //
2056
- // Structures are treated differently (see bug 3676).
2057
- //
2058
- StructPtr st = StructPtr::dynamicCast(info.dataMember->type());
2059
- if(st && !info.dataMember->optional())
2060
- {
2061
- _out << nl << "if " << paramName << " is Ice._struct_marker:";
2062
- _out.inc();
2063
- _out << nl << "self." << memberName << " = " << getSymbol(st) << "()";
2064
- _out.dec();
2065
- _out << nl << "else:";
2066
- _out.inc();
2067
- _out << nl << "self." << memberName << " = " << paramName;
2068
- _out.dec();
2069
- }
2070
- else
2071
- {
2072
- _out << nl << "self." << memberName << " = " << paramName;
2073
- }
2074
- }
2075
-
2076
- void
2077
- Slice::Python::CodeVisitor::writeConstantValue(const TypePtr& type, const SyntaxTreeBasePtr& valueType,
2078
- const string& value)
2079
- {
2080
- ConstPtr constant = ConstPtr::dynamicCast(valueType);
2081
- if(constant)
2082
- {
2083
- _out << "_M_" << getAbsolute(constant);
2084
- }
2085
- else
2086
- {
2087
- Slice::BuiltinPtr b = Slice::BuiltinPtr::dynamicCast(type);
2088
- Slice::EnumPtr en = Slice::EnumPtr::dynamicCast(type);
2089
- if(b)
2090
- {
2091
- switch(b->kind())
2092
- {
2093
- case Slice::Builtin::KindBool:
2094
- {
2095
- _out << (value == "true" ? "True" : "False");
2096
- break;
2097
- }
2098
- case Slice::Builtin::KindByte:
2099
- case Slice::Builtin::KindShort:
2100
- case Slice::Builtin::KindInt:
2101
- case Slice::Builtin::KindFloat:
2102
- case Slice::Builtin::KindDouble:
2103
- case Slice::Builtin::KindLong:
2104
- {
2105
- _out << value;
2106
- break;
2107
- }
2108
- case Slice::Builtin::KindString:
2109
- {
2110
- string sv2 = toStringLiteral(value, "\a\b\f\n\r\t\v", "", Octal, 0);
2111
- string sv3 = toStringLiteral(value, "\a\b\f\n\r\t\v", "", UCN, 0);
2112
-
2113
- _out << "\"" << sv2<< "\"";
2114
- if(sv2 != sv3)
2115
- {
2116
- _out << " if _version_info_[0] < 3 else \"" << sv3 << "\"";
2117
- }
2118
- break;
2119
- }
2120
- case Slice::Builtin::KindValue:
2121
- case Slice::Builtin::KindObject:
2122
- case Slice::Builtin::KindObjectProxy:
2123
- case Slice::Builtin::KindLocalObject:
2124
- assert(false);
2125
- }
2126
- }
2127
- else if(en)
2128
- {
2129
- EnumeratorPtr lte = EnumeratorPtr::dynamicCast(valueType);
2130
- assert(lte);
2131
- _out << getSymbol(lte);
2132
- }
2133
- else
2134
- {
2135
- assert(false); // Unknown const type.
2136
- }
2137
- }
2138
- }
2139
-
2140
- void
2141
- Slice::Python::CodeVisitor::writeConstructorParams(const MemberInfoList& members)
2142
- {
2143
- for(MemberInfoList::const_iterator p = members.begin(); p != members.end(); ++p)
2144
- {
2145
- _out << ", " << p->fixedName << "=";
2146
-
2147
- const DataMemberPtr member = p->dataMember;
2148
- if(member->defaultValueType())
2149
- {
2150
- writeConstantValue(member->type(), member->defaultValueType(), member->defaultValue());
2151
- }
2152
- else if(member->optional())
2153
- {
2154
- _out << "Ice.Unset";
2155
- }
2156
- else
2157
- {
2158
- writeInitializer(member);
2159
- }
2160
- }
2161
- }
2162
-
2163
- string
2164
- Slice::Python::CodeVisitor::getOperationMode(Slice::Operation::Mode mode)
2165
- {
2166
- string result;
2167
- switch(mode)
2168
- {
2169
- case Operation::Normal:
2170
- result = "Ice.OperationMode.Normal";
2171
- break;
2172
- case Operation::Nonmutating:
2173
- result = "Ice.OperationMode.Nonmutating";
2174
- break;
2175
- case Operation::Idempotent:
2176
- result = "Ice.OperationMode.Idempotent";
2177
- break;
2178
- }
2179
- return result;
2180
- }
2181
-
2182
- void
2183
- Slice::Python::CodeVisitor::collectClassMembers(const ClassDefPtr& p, MemberInfoList& allMembers, bool inherited)
2184
- {
2185
- ClassList bases = p->bases();
2186
- if(!bases.empty() && !bases.front()->isInterface())
2187
- {
2188
- collectClassMembers(bases.front(), allMembers, true);
2189
- }
2190
-
2191
- DataMemberList members = p->dataMembers();
2192
-
2193
- for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
2194
- {
2195
- MemberInfo m;
2196
- if(p->hasMetaData("protected") || (*q)->hasMetaData("protected"))
2197
- {
2198
- m.fixedName = "_" + fixIdent((*q)->name());
2199
- }
2200
- else
2201
- {
2202
- m.fixedName = fixIdent((*q)->name());
2203
- }
2204
- m.inherited = inherited;
2205
- m.dataMember = *q;
2206
- allMembers.push_back(m);
2207
- }
2208
- }
2209
-
2210
- void
2211
- Slice::Python::CodeVisitor::collectExceptionMembers(const ExceptionPtr& p, MemberInfoList& allMembers, bool inherited)
2212
- {
2213
- ExceptionPtr base = p->base();
2214
- if(base)
2215
- {
2216
- collectExceptionMembers(base, allMembers, true);
2217
- }
2218
-
2219
- DataMemberList members = p->dataMembers();
2220
-
2221
- for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
2222
- {
2223
- MemberInfo m;
2224
- m.fixedName = fixIdent((*q)->name());
2225
- m.inherited = inherited;
2226
- m.dataMember = *q;
2227
- allMembers.push_back(m);
2228
- }
2229
- }
2230
-
2231
- Slice::Python::CodeVisitor::StringVec
2232
- Slice::Python::CodeVisitor::stripMarkup(const string& comment)
2233
- {
2234
- //
2235
- // Strip HTML markup and javadoc links.
2236
- //
2237
- string text = comment;
2238
- string::size_type pos = 0;
2239
- do
2240
- {
2241
- pos = text.find('<', pos);
2242
- if(pos != string::npos)
2243
- {
2244
- string::size_type endpos = text.find('>', pos);
2245
- if(endpos == string::npos)
2246
- {
2247
- break;
2248
- }
2249
- text.erase(pos, endpos - pos + 1);
2250
- }
2251
- } while(pos != string::npos);
2252
-
2253
- const string link = "{@link";
2254
- pos = 0;
2255
- do
2256
- {
2257
- pos = text.find(link, pos);
2258
- if(pos != string::npos)
2259
- {
2260
- text.erase(pos, link.size());
2261
- string::size_type endpos = text.find('}', pos);
2262
- if(endpos != string::npos)
2263
- {
2264
- string::size_type identpos = text.find_first_not_of(" \t#", pos);
2265
- if(identpos != string::npos && identpos < endpos)
2266
- {
2267
- string ident = text.substr(identpos, endpos - identpos);
2268
- text.replace(pos, endpos - pos + 1, fixIdent(ident));
2269
- }
2270
- }
2271
- }
2272
- } while(pos != string::npos);
2273
-
2274
- //
2275
- // Strip @see sections.
2276
- //
2277
- static const string seeTag = "@see";
2278
- pos = 0;
2279
- do
2280
- {
2281
- //
2282
- // Look for the next @ and delete up to that, or
2283
- // to the end of the string, if not found.
2284
- //
2285
- pos = text.find(seeTag, pos);
2286
- if(pos != string::npos)
2287
- {
2288
- string::size_type next = text.find('@', pos + seeTag.size());
2289
- if(next != string::npos)
2290
- {
2291
- text.erase(pos, next - pos);
2292
- }
2293
- else
2294
- {
2295
- text.erase(pos, string::npos);
2296
- }
2297
- }
2298
- } while(pos != string::npos);
2299
-
2300
- //
2301
- // Escape triple quotes.
2302
- //
2303
- static const string singleQuotes = "'''";
2304
- pos = 0;
2305
- while((pos = text.find(singleQuotes, pos)) != string::npos)
2306
- {
2307
- text.insert(pos, "\\");
2308
- pos += singleQuotes.size() + 1;
2309
- }
2310
- static const string doubleQuotes = "\"\"\"";
2311
- pos = 0;
2312
- while((pos = text.find(doubleQuotes, pos)) != string::npos)
2313
- {
2314
- text.insert(pos, "\\");
2315
- pos += doubleQuotes.size() + 1;
2316
- }
2317
-
2318
- //
2319
- // Fold multiple empty lines.
2320
- //
2321
- pos = 0;
2322
- while(true)
2323
- {
2324
- pos = text.find('\n', pos);
2325
- if(pos == string::npos)
2326
- {
2327
- break;
2328
- }
2329
-
2330
- //
2331
- // Skip the next LF or CR/LF, if present.
2332
- //
2333
- if(pos < text.size() - 1 && text[pos + 1] == '\n')
2334
- {
2335
- pos += 2;
2336
- }
2337
- else if(pos < text.size() - 2 && text[pos + 1] == '\r' && text[pos + 2] == '\n')
2338
- {
2339
- pos += 3;
2340
- }
2341
- else
2342
- {
2343
- ++pos;
2344
- continue;
2345
- }
2346
-
2347
- //
2348
- // Erase any more CR/LF characters.
2349
- //
2350
- string::size_type next = text.find_first_not_of("\r\n", pos);
2351
- if(next != string::npos)
2352
- {
2353
- text.erase(pos, next - pos);
2354
- }
2355
- }
2356
-
2357
- //
2358
- // Remove trailing whitespace.
2359
- //
2360
- pos = text.find_last_not_of(" \t\r\n");
2361
- if(pos != string::npos)
2362
- {
2363
- text.erase(pos + 1, text.size() - pos - 1);
2364
- }
2365
-
2366
- //
2367
- // Split text into lines.
2368
- //
2369
- StringVec lines;
2370
- if(!text.empty())
2371
- {
2372
- string::size_type start = 0;
2373
- while(start != string::npos)
2374
- {
2375
- string::size_type newline = text.find_first_of("\r\n", start);
2376
- string line;
2377
- if(newline != string::npos)
2378
- {
2379
- line = text.substr(start, newline - start);
2380
- start = newline;
2381
- }
2382
- else
2383
- {
2384
- line = text.substr(start);
2385
- start = text.size();
2386
- }
2387
-
2388
- //
2389
- // Remove trailing whitespace
2390
- //
2391
- pos = line.find_last_not_of(" \t");
2392
- if(pos != string::npos)
2393
- {
2394
- line.erase(pos + 1, line.size() - pos - 1);
2395
- }
2396
-
2397
- lines.push_back(line);
2398
-
2399
- start = text.find_first_not_of("\r\n", start);
2400
- }
2401
- }
2402
-
2403
- return lines;
2404
- }
2405
-
2406
- void
2407
- Slice::Python::CodeVisitor::writeDocstring(const string& comment, const string& prefix)
2408
- {
2409
- StringVec lines = stripMarkup(comment);
2410
- if(lines.empty())
2411
- {
2412
- return;
2413
- }
2414
-
2415
- _out << nl << prefix << "\"\"\"";
2416
-
2417
- for(StringVec::const_iterator q = lines.begin(); q != lines.end(); ++q)
2418
- {
2419
- _out << nl << *q;
2420
- }
2421
-
2422
- _out << nl << "\"\"\"";
2423
- }
2424
-
2425
- void
2426
- Slice::Python::CodeVisitor::writeDocstring(const string& comment, const DataMemberList& members)
2427
- {
2428
- StringVec lines = stripMarkup(comment);
2429
- if(lines.empty())
2430
- {
2431
- return;
2432
- }
2433
-
2434
- _out << nl << "\"\"\"";
2435
-
2436
- for(StringVec::const_iterator q = lines.begin(); q != lines.end(); ++q)
2437
- {
2438
- _out << nl << *q;
2439
- }
2440
-
2441
- if(!members.empty())
2442
- {
2443
- //
2444
- // Collect docstrings (if any) for the members.
2445
- //
2446
- map<string, StringVec> docs;
2447
- for(DataMemberList::const_iterator m = members.begin(); m != members.end(); ++m)
2448
- {
2449
- StringVec doc = stripMarkup((*m)->comment());
2450
- if(!doc.empty())
2451
- {
2452
- docs[(*m)->name()] = doc;
2453
- }
2454
- }
2455
- //
2456
- // Only emit members if there's a docstring for at least one member.
2457
- //
2458
- if(!docs.empty())
2459
- {
2460
- _out << nl << "Members:";
2461
- for(DataMemberList::const_iterator m = members.begin(); m != members.end(); ++m)
2462
- {
2463
- _out << nl << fixIdent((*m)->name()) << " -- ";
2464
- map<string, StringVec>::iterator p = docs.find((*m)->name());
2465
- if(p != docs.end())
2466
- {
2467
- for(StringVec::const_iterator q = p->second.begin(); q != p->second.end(); ++q)
2468
- {
2469
- if(q != p->second.begin())
2470
- {
2471
- _out << nl;
2472
- }
2473
- _out << *q;
2474
- }
2475
- }
2476
- }
2477
- }
2478
- }
2479
-
2480
- _out << nl << "\"\"\"";
2481
- }
2482
-
2483
- void
2484
- Slice::Python::CodeVisitor::writeDocstring(const string& comment, const EnumeratorList& enums)
2485
- {
2486
- StringVec lines = stripMarkup(comment);
2487
- if(lines.empty())
2488
- {
2489
- return;
2490
- }
2491
-
2492
- _out << nl << "\"\"\"";
2493
-
2494
- for(StringVec::const_iterator q = lines.begin(); q != lines.end(); ++q)
2495
- {
2496
- _out << nl << *q;
2497
- }
2498
-
2499
- if(!enums.empty())
2500
- {
2501
- //
2502
- // Collect docstrings (if any) for the enumerators.
2503
- //
2504
- map<string, StringVec> docs;
2505
- for(EnumeratorList::const_iterator e = enums.begin(); e != enums.end(); ++e)
2506
- {
2507
- StringVec doc = stripMarkup((*e)->comment());
2508
- if(!doc.empty())
2509
- {
2510
- docs[(*e)->name()] = doc;
2511
- }
2512
- }
2513
- //
2514
- // Only emit enumerators if there's a docstring for at least one enumerator.
2515
- //
2516
- if(!docs.empty())
2517
- {
2518
- _out << nl << "Enumerators:";
2519
- for(EnumeratorList::const_iterator e = enums.begin(); e != enums.end(); ++e)
2520
- {
2521
- _out << nl << fixIdent((*e)->name()) << " -- ";
2522
- map<string, StringVec>::iterator p = docs.find((*e)->name());
2523
- if(p != docs.end())
2524
- {
2525
- for(StringVec::const_iterator q = p->second.begin(); q != p->second.end(); ++q)
2526
- {
2527
- if(q != p->second.begin())
2528
- {
2529
- _out << nl;
2530
- }
2531
- _out << *q;
2532
- }
2533
- }
2534
- }
2535
- }
2536
- }
2537
-
2538
- _out << nl << "\"\"\"";
2539
- }
2540
-
2541
- bool
2542
- Slice::Python::CodeVisitor::parseOpComment(const string& comment, OpComment& c)
2543
- {
2544
- //
2545
- // Remove most javadoc & HTML markup.
2546
- //
2547
- StringVec lines = stripMarkup(comment);
2548
- if(lines.empty())
2549
- {
2550
- return false;
2551
- }
2552
-
2553
- //
2554
- // Extract the descriptions of parameters, exceptions and return values.
2555
- //
2556
- string name;
2557
- bool inParam = false, inException = false, inReturn = false;
2558
- vector<string>::iterator i = lines.begin();
2559
- while(i != lines.end())
2560
- {
2561
- string l = *i;
2562
- string::size_type paramTag = l.find("@param");
2563
- string::size_type throwTag = l.find("@throw");
2564
- string::size_type returnTag = l.find("@return");
2565
-
2566
- if(paramTag != string::npos)
2567
- {
2568
- string::size_type pos = l.find_first_of(" \t", paramTag);
2569
- if(pos != string::npos)
2570
- {
2571
- pos = l.find_first_not_of(" \t", pos);
2572
- }
2573
- if(pos != string::npos)
2574
- {
2575
- string::size_type namePos = pos;
2576
- pos = l.find_first_of(" \t", pos);
2577
- inParam = true;
2578
- inException = false;
2579
- inReturn = false;
2580
- if(pos == string::npos)
2581
- {
2582
- //
2583
- // Doc assumed to have the format
2584
- //
2585
- // @param foo
2586
- // Description of foo...
2587
- //
2588
- name = l.substr(namePos);
2589
- c.params[name] = "";
2590
- }
2591
- else
2592
- {
2593
- name = l.substr(namePos, pos - namePos);
2594
- pos = l.find_first_not_of(" \t", pos);
2595
- if(pos != string::npos)
2596
- {
2597
- c.params[name] = l.substr(pos);
2598
- }
2599
- else
2600
- {
2601
- c.params[name] = "";
2602
- }
2603
- }
2604
- }
2605
- i = lines.erase(i);
2606
- continue;
2607
- }
2608
- else if(throwTag != string::npos)
2609
- {
2610
- string::size_type pos = l.find_first_of(" \t", throwTag);
2611
- if(pos != string::npos)
2612
- {
2613
- pos = l.find_first_not_of(" \t", pos);
2614
- }
2615
- if(pos != string::npos)
2616
- {
2617
- string::size_type namePos = pos;
2618
- pos = l.find_first_of(" \t", pos);
2619
- inException = true;
2620
- inParam = false;
2621
- inReturn = false;
2622
- if(pos == string::npos)
2623
- {
2624
- //
2625
- // Doc assumed to have the format
2626
- //
2627
- // @throw foo
2628
- // Description of foo...
2629
- //
2630
- name = l.substr(namePos);
2631
- c.exceptions[name] = "";
2632
- }
2633
- else
2634
- {
2635
- name = l.substr(namePos, pos - namePos);
2636
- pos = l.find_first_not_of(" \t", pos);
2637
- if(pos != string::npos)
2638
- {
2639
- c.exceptions[name] = l.substr(pos);
2640
- }
2641
- else
2642
- {
2643
- c.exceptions[name] = "";
2644
- }
2645
- }
2646
- }
2647
- i = lines.erase(i);
2648
- continue;
2649
- }
2650
- else if(returnTag != string::npos)
2651
- {
2652
- string::size_type pos = l.find_first_of(" \t", returnTag);
2653
- if(pos != string::npos)
2654
- {
2655
- pos = l.find_first_not_of(" \t", pos);
2656
- }
2657
- if(pos != string::npos)
2658
- {
2659
- inReturn = true;
2660
- inException = false;
2661
- inParam = false;
2662
- c.returns = l.substr(pos);
2663
- }
2664
- i = lines.erase(i);
2665
- continue;
2666
- }
2667
- else
2668
- {
2669
- //
2670
- // We didn't find a tag so we assume this line is a continuation of a
2671
- // previous description.
2672
- //
2673
- string::size_type pos = l.find_first_not_of(" \t");
2674
- if(pos != string::npos && l[pos] != '@')
2675
- {
2676
- if(inParam)
2677
- {
2678
- assert(!name.empty());
2679
- if(!c.params[name].empty())
2680
- {
2681
- c.params[name] += " ";
2682
- }
2683
- c.params[name] += l.substr(pos);
2684
- i = lines.erase(i);
2685
- continue;
2686
- }
2687
- else if(inException)
2688
- {
2689
- assert(!name.empty());
2690
- if(!c.exceptions[name].empty())
2691
- {
2692
- c.exceptions[name] += " ";
2693
- }
2694
- c.exceptions[name] += l.substr(pos);
2695
- i = lines.erase(i);
2696
- continue;
2697
- }
2698
- else if(inReturn)
2699
- {
2700
- if(!c.returns.empty())
2701
- {
2702
- c.returns += " ";
2703
- }
2704
- c.returns += l.substr(pos);
2705
- i = lines.erase(i);
2706
- continue;
2707
- }
2708
- }
2709
- }
2710
-
2711
- i++;
2712
- }
2713
-
2714
- //
2715
- // All remaining lines become the general description.
2716
- //
2717
- for(vector<string>::iterator p = lines.begin(); p != lines.end(); ++p)
2718
- {
2719
- if(p->find_first_not_of(" \t\n\r") != string::npos)
2720
- {
2721
- c.description.push_back(*p);
2722
- }
2723
- }
2724
-
2725
- return true;
2726
- }
2727
-
2728
- void
2729
- Slice::Python::CodeVisitor::writeDocstring(const OperationPtr& op, DocstringMode mode, bool local)
2730
- {
2731
- OpComment comment;
2732
- if(!parseOpComment(op->comment(), comment))
2733
- {
2734
- return;
2735
- }
2736
-
2737
- TypePtr ret = op->returnType();
2738
- ParamDeclList params = op->parameters();
2739
- vector<string> inParams, outParams;
2740
- for(ParamDeclList::iterator p = params.begin(); p != params.end(); ++p)
2741
- {
2742
- if((*p)->isOutParam())
2743
- {
2744
- outParams.push_back((*p)->name());
2745
- }
2746
- else
2747
- {
2748
- inParams.push_back((*p)->name());
2749
- }
2750
- }
2751
-
2752
- if(comment.description.empty())
2753
- {
2754
- if((mode == DocSync || mode == DocDispatch) && comment.params.empty() && comment.exceptions.empty() &&
2755
- comment.returns.empty())
2756
- {
2757
- return;
2758
- }
2759
- else if((mode == DocAsync || mode == DocAsyncBegin) && inParams.empty())
2760
- {
2761
- return;
2762
- }
2763
- else if(mode == DocAsyncEnd && outParams.empty() && comment.returns.empty())
2764
- {
2765
- return;
2766
- }
2767
- else if(mode == DocAsyncDispatch && inParams.empty() && comment.exceptions.empty())
2768
- {
2769
- return;
2770
- }
2771
- }
2772
-
2773
- //
2774
- // Emit the general description.
2775
- //
2776
- _out << nl << "\"\"\"";
2777
- if(!comment.description.empty())
2778
- {
2779
- for(StringVec::const_iterator q = comment.description.begin(); q != comment.description.end(); ++q)
2780
- {
2781
- _out << nl << *q;
2782
- }
2783
- }
2784
-
2785
- //
2786
- // Emit arguments.
2787
- //
2788
- bool needArgs = false;
2789
- switch(mode)
2790
- {
2791
- case DocSync:
2792
- case DocAsync:
2793
- case DocAsyncBegin:
2794
- case DocDispatch:
2795
- needArgs = !local || !inParams.empty();
2796
- break;
2797
- case DocAsyncEnd:
2798
- case DocAsyncDispatch:
2799
- needArgs = true;
2800
- break;
2801
- }
2802
-
2803
- if(needArgs)
2804
- {
2805
- _out << nl << "Arguments:";
2806
- for(vector<string>::iterator q = inParams.begin(); q != inParams.end(); ++q)
2807
- {
2808
- string fixed = fixIdent(*q);
2809
- _out << nl << fixed << " -- ";
2810
- StringMap::const_iterator r = comment.params.find(*q);
2811
- if(r == comment.params.end())
2812
- {
2813
- r = comment.params.find(fixed); // Just in case.
2814
- }
2815
- if(r != comment.params.end())
2816
- {
2817
- _out << r->second;
2818
- }
2819
- }
2820
- if(mode == DocAsyncBegin)
2821
- {
2822
- _out << nl << "_response -- The asynchronous response callback."
2823
- << nl << "_ex -- The asynchronous exception callback."
2824
- << nl << "_sent -- The asynchronous sent callback.";
2825
- }
2826
- if(!local && (mode == DocSync || mode == DocAsync || mode == DocAsyncBegin))
2827
- {
2828
- const string contextParamName = getEscapedParamName(op, "context");
2829
- _out << nl << contextParamName << " -- The request context for the invocation.";
2830
- }
2831
- if(!local && (mode == DocDispatch || mode == DocAsyncDispatch))
2832
- {
2833
- const string currentParamName = getEscapedParamName(op, "current");
2834
- _out << nl << currentParamName << " -- The Current object for the invocation.";
2835
- }
2836
- }
2837
- else if(mode == DocAsyncEnd)
2838
- {
2839
- _out << nl << "Arguments:"
2840
- << nl << "_r - The asynchronous result object for the invocation.";
2841
- }
2842
-
2843
- //
2844
- // Emit return value(s).
2845
- //
2846
- if(mode == DocAsync || mode == DocAsyncDispatch)
2847
- {
2848
- _out << nl << "Returns: A future object for the invocation.";
2849
- }
2850
- if(mode == DocAsyncBegin)
2851
- {
2852
- _out << nl << "Returns: An asynchronous result object for the invocation.";
2853
- }
2854
-
2855
- if((mode == DocSync || mode == DocAsyncEnd || mode == DocDispatch) && (ret || !outParams.empty()))
2856
- {
2857
- if((outParams.size() + (ret ? 1 : 0)) > 1)
2858
- {
2859
- _out << nl << "Returns a tuple containing the following:";
2860
- if(ret)
2861
- {
2862
- _out << nl << "_retval -- " << comment.returns;
2863
- }
2864
- for(vector<string>::iterator q = outParams.begin(); q != outParams.end(); ++q)
2865
- {
2866
- string fixed = fixIdent(*q);
2867
- _out << nl << fixed << " -- ";
2868
- StringMap::const_iterator r = comment.params.find(*q);
2869
- if(r == comment.params.end())
2870
- {
2871
- r = comment.params.find(fixed); // Just in case.
2872
- }
2873
- if(r != comment.params.end())
2874
- {
2875
- _out << r->second;
2876
- }
2877
- }
2878
- }
2879
- else if(ret && !comment.returns.empty())
2880
- {
2881
- _out << nl << "Returns: " << comment.returns;
2882
- }
2883
- else if(!outParams.empty())
2884
- {
2885
- assert(outParams.size() == 1);
2886
- _out << nl << "Returns:";
2887
- string fixed = fixIdent(outParams[0]);
2888
- _out << nl << fixed << " -- ";
2889
- StringMap::const_iterator r = comment.params.find(outParams[0]);
2890
- if(r == comment.params.end())
2891
- {
2892
- r = comment.params.find(fixed); // Just in case.
2893
- }
2894
- if(r != comment.params.end())
2895
- {
2896
- _out << r->second;
2897
- }
2898
- }
2899
- }
2900
-
2901
- //
2902
- // Emit exceptions.
2903
- //
2904
- if((mode == DocSync || mode == DocAsyncEnd || mode == DocDispatch || mode == DocAsyncDispatch) &&
2905
- !comment.exceptions.empty())
2906
- {
2907
- _out << nl << "Throws:";
2908
- for(StringMap::const_iterator r = comment.exceptions.begin(); r != comment.exceptions.end(); ++r)
2909
- {
2910
- _out << nl << r->first << " -- " << r->second;
2911
- }
2912
- }
2913
- _out << nl << "\"\"\"";
2914
- }
2915
-
2916
- string
2917
- Slice::Python::getPackageDirectory(const string& file, const UnitPtr& ut)
2918
- {
2919
- //
2920
- // file must be a fully-qualified path name.
2921
- //
2922
-
2923
- //
2924
- // Check if the file contains the python:pkgdir file metadata.
2925
- //
2926
- DefinitionContextPtr dc = ut->findDefinitionContext(file);
2927
- assert(dc);
2928
- const string prefix = "python:pkgdir:";
2929
- string pkgdir = dc->findMetaData(prefix);
2930
- if(!pkgdir.empty())
2931
- {
2932
- //
2933
- // The metadata is present, so the generated file was placed in the specified directory.
2934
- //
2935
- pkgdir = pkgdir.substr(prefix.size());
2936
- assert(!pkgdir.empty()); // This situation should have been caught by MetaDataVisitor.
2937
- }
2938
- return pkgdir;
2939
- }
2940
-
2941
- string
2942
- Slice::Python::getImportFileName(const string& file, const UnitPtr& ut, const vector<string>& includePaths)
2943
- {
2944
- //
2945
- // The file and includePaths arguments must be fully-qualified path names.
2946
- //
2947
-
2948
- //
2949
- // Check if the file contains the python:pkgdir file metadata.
2950
- //
2951
- string pkgdir = getPackageDirectory(file, ut);
2952
- if(!pkgdir.empty())
2953
- {
2954
- //
2955
- // The metadata is present, so the generated file was placed in the specified directory.
2956
- //
2957
- vector<string> names;
2958
- IceUtilInternal::splitString(pkgdir, "/", names);
2959
- assert(!names.empty());
2960
- pkgdir = "";
2961
- for(vector<string>::iterator p = names.begin(); p != names.end(); ++p)
2962
- {
2963
- if(p != names.begin())
2964
- {
2965
- pkgdir += ".";
2966
- }
2967
- pkgdir += fixIdent(*p);
2968
- }
2969
- string::size_type pos = file.rfind('/');
2970
- assert(pos != string::npos);
2971
- string name = file.substr(pos + 1); // Get the name of the file without the leading path.
2972
- assert(!name.empty());
2973
- replace(name.begin(), name.end(), '.', '_'); // Convert .ice to _ice
2974
- return pkgdir + "." + name;
2975
- }
2976
- else
2977
- {
2978
- //
2979
- // The metadata is not present, so we transform the file name using the include paths (-I)
2980
- // given to the compiler.
2981
- //
2982
- string name = changeInclude(file, includePaths);
2983
- replace(name.begin(), name.end(), '/', '_');
2984
- return name + "_ice";
2985
- }
2986
- }
2987
-
2988
- void
2989
- Slice::Python::generate(const UnitPtr& un, bool all, bool checksum, const vector<string>& includePaths,
2990
- Output& out)
2991
- {
2992
- Slice::Python::MetaDataVisitor visitor;
2993
- un->visit(&visitor, false);
2994
-
2995
- out << nl << "from sys import version_info as _version_info_";
2996
- out << nl << "import Ice, IcePy";
2997
-
2998
- if(!all)
2999
- {
3000
- vector<string> paths = includePaths;
3001
- for(vector<string>::iterator p = paths.begin(); p != paths.end(); ++p)
3002
- {
3003
- *p = fullPath(*p);
3004
- }
3005
-
3006
- StringList includes = un->includeFiles();
3007
- for(StringList::const_iterator q = includes.begin(); q != includes.end(); ++q)
3008
- {
3009
- out << nl << "import " << getImportFileName(*q, un, paths);
3010
- }
3011
- }
3012
-
3013
- set<string> moduleHistory;
3014
-
3015
- ModuleVisitor moduleVisitor(out, moduleHistory);
3016
- un->visit(&moduleVisitor, true);
3017
-
3018
- CodeVisitor codeVisitor(out, moduleHistory);
3019
- un->visit(&codeVisitor, false);
3020
-
3021
- if(checksum)
3022
- {
3023
- ChecksumMap checksums = createChecksums(un);
3024
- if(!checksums.empty())
3025
- {
3026
- out << sp;
3027
- for(ChecksumMap::const_iterator p = checksums.begin(); p != checksums.end(); ++p)
3028
- {
3029
- out << nl << "Ice.sliceChecksums[\"" << p->first << "\"] = \"";
3030
- ostringstream str;
3031
- str.flags(ios_base::hex);
3032
- str.fill('0');
3033
- for(vector<unsigned char>::const_iterator q = p->second.begin(); q != p->second.end(); ++q)
3034
- {
3035
- str << static_cast<int>(*q);
3036
- }
3037
- out << str.str() << "\"";
3038
- }
3039
- }
3040
- }
3041
-
3042
- out << nl; // Trailing newline.
3043
- }
3044
-
3045
- string
3046
- Slice::Python::scopedToName(const string& scoped)
3047
- {
3048
- string result = fixIdent(scoped);
3049
- if(result.find("::") == 0)
3050
- {
3051
- result.erase(0, 2);
3052
- }
3053
-
3054
- string::size_type pos;
3055
- while((pos = result.find("::")) != string::npos)
3056
- {
3057
- result.replace(pos, 2, ".");
3058
- }
3059
-
3060
- return result;
3061
- }
3062
-
3063
- string
3064
- Slice::Python::fixIdent(const string& ident)
3065
- {
3066
- if(ident[0] != ':')
3067
- {
3068
- return lookupKwd(ident);
3069
- }
3070
- vector<string> ids = splitScopedName(ident);
3071
- #ifdef ICE_CPP11_COMPILER
3072
- transform(ids.begin(), ids.end(), ids.begin(), [](const string& id) -> string { return lookupKwd(id); });
3073
- #else
3074
- transform(ids.begin(), ids.end(), ids.begin(), ptr_fun(lookupKwd));
3075
- #endif
3076
- stringstream result;
3077
- for(vector<string>::const_iterator i = ids.begin(); i != ids.end(); ++i)
3078
- {
3079
- result << "::" + *i;
3080
- }
3081
- return result.str();
3082
- }
3083
-
3084
- string
3085
- Slice::Python::getPackageMetadata(const ContainedPtr& cont)
3086
- {
3087
- //
3088
- // Traverse to the top-level module.
3089
- //
3090
- ModulePtr m;
3091
- ContainedPtr p = cont;
3092
- while(true)
3093
- {
3094
- if(ModulePtr::dynamicCast(p))
3095
- {
3096
- m = ModulePtr::dynamicCast(p);
3097
- }
3098
-
3099
- ContainerPtr c = p->container();
3100
- p = ContainedPtr::dynamicCast(c); // This cast fails for Unit.
3101
- if(!p)
3102
- {
3103
- break;
3104
- }
3105
- }
3106
-
3107
- assert(m);
3108
-
3109
- //
3110
- // The python:package metadata can be defined as file metadata or applied to a top-level module.
3111
- // We check for the metadata at the top-level module first and then fall back to the global scope.
3112
- //
3113
- static const string prefix = "python:package:";
3114
-
3115
- string q;
3116
- if(!m->findMetaData(prefix, q))
3117
- {
3118
- UnitPtr ut = cont->unit();
3119
- string file = cont->file();
3120
- assert(!file.empty());
3121
-
3122
- DefinitionContextPtr dc = ut->findDefinitionContext(file);
3123
- assert(dc);
3124
- q = dc->findMetaData(prefix);
3125
- }
3126
-
3127
- if(!q.empty())
3128
- {
3129
- q = q.substr(prefix.size());
3130
- }
3131
-
3132
- return q;
3133
- }
3134
-
3135
- string
3136
- Slice::Python::getAbsolute(const ContainedPtr& cont, const string& suffix, const string& nameSuffix)
3137
- {
3138
- string scope = scopedToName(cont->scope());
3139
-
3140
- string package = getPackageMetadata(cont);
3141
- if(!package.empty())
3142
- {
3143
- if(!scope.empty())
3144
- {
3145
- scope = package + "." + scope;
3146
- }
3147
- else
3148
- {
3149
- scope = package + ".";
3150
- }
3151
- }
3152
-
3153
- return scope + suffix + fixIdent(cont->name() + nameSuffix);
3154
- }
3155
-
3156
- void
3157
- Slice::Python::printHeader(IceUtilInternal::Output& out)
3158
- {
3159
- static const char* header =
3160
- "#\n"
3161
- "# Copyright (c) ZeroC, Inc. All rights reserved.\n"
3162
- "#\n"
3163
- ;
3164
-
3165
- out << header;
3166
- out << "#\n";
3167
- out << "# Ice version " << ICE_STRING_VERSION << "\n";
3168
- out << "#\n";
3169
- }
3170
-
3171
- bool
3172
- Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
3173
- {
3174
- static const string prefix = "python:";
3175
-
3176
- //
3177
- // Validate file metadata in the top-level file and all included files.
3178
- //
3179
- StringList files = p->allFiles();
3180
- for(StringList::iterator q = files.begin(); q != files.end(); ++q)
3181
- {
3182
- string file = *q;
3183
- DefinitionContextPtr dc = p->findDefinitionContext(file);
3184
- assert(dc);
3185
- StringList globalMetaData = dc->getMetaData();
3186
- for(StringList::const_iterator r = globalMetaData.begin(); r != globalMetaData.end();)
3187
- {
3188
- string s = *r++;
3189
- if(s.find(prefix) == 0)
3190
- {
3191
- static const string packagePrefix = "python:package:";
3192
- if(s.find(packagePrefix) == 0 && s.size() > packagePrefix.size())
3193
- {
3194
- continue;
3195
- }
3196
- static const string pkgdirPrefix = "python:pkgdir:";
3197
- if(s.find(pkgdirPrefix) == 0 && s.size() > pkgdirPrefix.size())
3198
- {
3199
- continue;
3200
- }
3201
-
3202
- dc->warning(InvalidMetaData, file, "", "ignoring invalid file metadata `" + s + "'");
3203
- globalMetaData.remove(s);
3204
- }
3205
- }
3206
- dc->setMetaData(globalMetaData);
3207
- }
3208
- return true;
3209
- }
3210
-
3211
- bool
3212
- Slice::Python::MetaDataVisitor::visitModuleStart(const ModulePtr& p)
3213
- {
3214
- static const string prefix = "python:package:";
3215
-
3216
- StringList metaData = p->getMetaData();
3217
- for(StringList::const_iterator r = metaData.begin(); r != metaData.end();)
3218
- {
3219
- string s = *r++;
3220
- if(s.find(prefix) == 0)
3221
- {
3222
- //
3223
- // Must be a top-level module.
3224
- //
3225
- if(UnitPtr::dynamicCast(p->container()))
3226
- {
3227
- continue;
3228
- }
3229
- }
3230
-
3231
- if(s.find("python:") == 0)
3232
- {
3233
- p->definitionContext()->warning(InvalidMetaData, p->file(), "", "ignoring invalid metadata `" + s + "'");
3234
- metaData.remove(s);
3235
- }
3236
- }
3237
-
3238
- p->setMetaData(metaData);
3239
- return true;
3240
- }
3241
-
3242
- void
3243
- Slice::Python::MetaDataVisitor::visitClassDecl(const ClassDeclPtr& p)
3244
- {
3245
- reject(p);
3246
- }
3247
-
3248
- bool
3249
- Slice::Python::MetaDataVisitor::visitClassDefStart(const ClassDefPtr& p)
3250
- {
3251
- reject(p);
3252
- return true;
3253
- }
3254
-
3255
- bool
3256
- Slice::Python::MetaDataVisitor::visitExceptionStart(const ExceptionPtr& p)
3257
- {
3258
- reject(p);
3259
- return true;
3260
- }
3261
-
3262
- bool
3263
- Slice::Python::MetaDataVisitor::visitStructStart(const StructPtr& p)
3264
- {
3265
- reject(p);
3266
- return true;
3267
- }
3268
-
3269
- void
3270
- Slice::Python::MetaDataVisitor::visitOperation(const OperationPtr& p)
3271
- {
3272
- TypePtr ret = p->returnType();
3273
- if(ret)
3274
- {
3275
- validateSequence(p->file(), p->line(), ret, p->getMetaData());
3276
- }
3277
-
3278
- ParamDeclList params = p->parameters();
3279
- for(ParamDeclList::iterator q = params.begin(); q != params.end(); ++q)
3280
- {
3281
- validateSequence(p->file(), (*q)->line(), (*q)->type(), (*q)->getMetaData());
3282
- }
3283
- }
3284
-
3285
- void
3286
- Slice::Python::MetaDataVisitor::visitDataMember(const DataMemberPtr& p)
3287
- {
3288
- validateSequence(p->file(), p->line(), p->type(), p->getMetaData());
3289
- }
3290
-
3291
- void
3292
- Slice::Python::MetaDataVisitor::visitSequence(const SequencePtr& p)
3293
- {
3294
- static const string protobuf = "python:protobuf:";
3295
- StringList metaData = p->getMetaData();
3296
- const string file = p->file();
3297
- const string line = p->line();
3298
- StringList protobufMetaData;
3299
- const UnitPtr ut = p->unit();
3300
- const DefinitionContextPtr dc = ut->findDefinitionContext(file);
3301
- assert(dc);
3302
-
3303
- for(StringList::const_iterator q = metaData.begin(); q != metaData.end(); )
3304
- {
3305
- string s = *q++;
3306
- if(s.find(protobuf) == 0)
3307
- {
3308
- //
3309
- // Remove from list so validateSequence does not try to handle as well.
3310
- //
3311
- metaData.remove(s);
3312
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(p->type());
3313
- if(!builtin || builtin->kind() != Builtin::KindByte)
3314
- {
3315
- dc->warning(InvalidMetaData, file, line, "ignoring invalid metadata `" + s + ": " +
3316
- "`protobuf' encoding must be a byte sequence");
3317
- }
3318
- else
3319
- {
3320
- protobufMetaData.push_back(s);
3321
- }
3322
- }
3323
- }
3324
-
3325
- metaData = validateSequence(file, line, p, metaData);
3326
- metaData.insert(metaData.end(), protobufMetaData.begin(), protobufMetaData.end());
3327
- p->setMetaData(metaData);
3328
- }
3329
-
3330
- void
3331
- Slice::Python::MetaDataVisitor::visitDictionary(const DictionaryPtr& p)
3332
- {
3333
- reject(p);
3334
- }
3335
-
3336
- void
3337
- Slice::Python::MetaDataVisitor::visitEnum(const EnumPtr& p)
3338
- {
3339
- reject(p);
3340
- }
3341
-
3342
- void
3343
- Slice::Python::MetaDataVisitor::visitConst(const ConstPtr& p)
3344
- {
3345
- reject(p);
3346
- }
3347
-
3348
- StringList
3349
- Slice::Python::MetaDataVisitor::validateSequence(const string& file, const string& line,
3350
- const TypePtr& type, const StringList& metaData)
3351
- {
3352
- const UnitPtr ut = type->unit();
3353
- const DefinitionContextPtr dc = ut->findDefinitionContext(file);
3354
- assert(dc);
3355
-
3356
- static const string prefix = "python:";
3357
- StringList newMetaData = metaData;
3358
- for(StringList::const_iterator p = newMetaData.begin(); p != newMetaData.end();)
3359
- {
3360
- string s = *p++;
3361
- if(s.find(prefix) == 0)
3362
- {
3363
- SequencePtr seq = SequencePtr::dynamicCast(type);
3364
- if(seq)
3365
- {
3366
- static const string seqPrefix = "python:seq:";
3367
- if(s.find(seqPrefix) == 0)
3368
- {
3369
- string arg = s.substr(seqPrefix.size());
3370
- if(arg == "tuple" || arg == "list" || arg == "default")
3371
- {
3372
- continue;
3373
- }
3374
- }
3375
- else if(s.size() > prefix.size())
3376
- {
3377
- string arg = s.substr(prefix.size());
3378
- if(arg == "tuple" || arg == "list" || arg == "default")
3379
- {
3380
- continue;
3381
- }
3382
- else if(arg == "array.array" || arg == "numpy.ndarray" || arg.find("memoryview:") == 0)
3383
- {
3384
- //
3385
- // The memoryview sequence metadata is only valid for integral builtin
3386
- // types excluding strings.
3387
- //
3388
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type());
3389
- if(builtin)
3390
- {
3391
- switch(builtin->kind())
3392
- {
3393
- case Builtin::KindBool:
3394
- case Builtin::KindByte:
3395
- case Builtin::KindShort:
3396
- case Builtin::KindInt:
3397
- case Builtin::KindLong:
3398
- case Builtin::KindFloat:
3399
- case Builtin::KindDouble:
3400
- {
3401
- continue;
3402
- }
3403
- default:
3404
- {
3405
- break;
3406
- }
3407
- }
3408
- }
3409
- }
3410
- }
3411
- }
3412
- dc->warning(InvalidMetaData, file, line, "ignoring invalid metadata `" + s + "'");
3413
- newMetaData.remove(s);
3414
- }
3415
- }
3416
- return newMetaData;
3417
- }
3418
-
3419
- void
3420
- Slice::Python::MetaDataVisitor::reject(const ContainedPtr& cont)
3421
- {
3422
- StringList localMetaData = cont->getMetaData();
3423
- static const string prefix = "python:";
3424
-
3425
- const UnitPtr ut = cont->unit();
3426
- const DefinitionContextPtr dc = ut->findDefinitionContext(cont->file());
3427
- assert(dc);
3428
-
3429
- for(StringList::const_iterator p = localMetaData.begin(); p != localMetaData.end();)
3430
- {
3431
- string s = *p++;
3432
- if(s.find(prefix) == 0)
3433
- {
3434
- dc->warning(InvalidMetaData, cont->file(), cont->line(), "ignoring invalid metadata `" + s + "'");
3435
- localMetaData.remove(s);
3436
- }
3437
- }
3438
- cont->setMetaData(localMetaData);
3439
- }