zeroc-ice 3.7.1 → 3.7.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (683) hide show
  1. checksums.yaml +5 -5
  2. data/ICE_LICENSE +1 -1
  3. data/bin/slice2rb +1 -6
  4. data/ext/Communicator.cpp +7 -9
  5. data/ext/Communicator.h +1 -6
  6. data/ext/Config.h +28 -6
  7. data/ext/Connection.cpp +1 -10
  8. data/ext/Connection.h +1 -6
  9. data/ext/Endpoint.cpp +1 -10
  10. data/ext/Endpoint.h +1 -6
  11. data/ext/ImplicitContext.cpp +1 -6
  12. data/ext/ImplicitContext.h +1 -6
  13. data/ext/Init.cpp +1 -6
  14. data/ext/Logger.cpp +1 -6
  15. data/ext/Logger.h +1 -6
  16. data/ext/Operation.cpp +6 -11
  17. data/ext/Operation.h +1 -6
  18. data/ext/Properties.cpp +3 -8
  19. data/ext/Properties.h +1 -6
  20. data/ext/Proxy.cpp +21 -14
  21. data/ext/Proxy.h +1 -6
  22. data/ext/Slice.cpp +3 -18
  23. data/ext/Slice.h +1 -6
  24. data/ext/Types.cpp +74 -58
  25. data/ext/Types.h +1 -6
  26. data/ext/Util.cpp +61 -32
  27. data/ext/Util.h +108 -33
  28. data/ext/ValueFactoryManager.cpp +1 -6
  29. data/ext/ValueFactoryManager.h +1 -6
  30. data/ext/extconf.rb +5 -3
  31. data/ext/ice/cpp/include/Ice/Application.h +1 -6
  32. data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -6
  33. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -6
  34. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +1 -6
  35. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -6
  36. data/ext/ice/cpp/include/Ice/Buffer.h +1 -6
  37. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -6
  38. data/ext/ice/cpp/include/Ice/Comparable.h +1 -6
  39. data/ext/ice/cpp/include/Ice/Config.h +5 -6
  40. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -6
  41. data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -6
  42. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +1 -6
  43. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +1 -6
  44. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -6
  45. data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -6
  46. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -6
  47. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -6
  48. data/ext/ice/cpp/include/Ice/Exception.h +4 -9
  49. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +3 -16
  50. data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -6
  51. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +2 -7
  52. data/ext/ice/cpp/include/Ice/Format.h +1 -6
  53. data/ext/ice/cpp/include/Ice/Functional.h +2 -7
  54. data/ext/ice/cpp/include/Ice/GCObject.h +1 -6
  55. data/ext/ice/cpp/include/Ice/Handle.h +1 -6
  56. data/ext/ice/cpp/include/Ice/Ice.h +1 -6
  57. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +11 -17
  58. data/ext/ice/cpp/include/Ice/Incoming.h +13 -8
  59. data/ext/ice/cpp/include/Ice/IncomingAsync.h +11 -6
  60. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -6
  61. data/ext/ice/cpp/include/Ice/Initialize.h +13 -7
  62. data/ext/ice/cpp/include/Ice/InputStream.h +6 -11
  63. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -6
  64. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +1 -6
  65. data/ext/ice/cpp/include/Ice/LocalObject.h +1 -6
  66. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -6
  67. data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -6
  68. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +9 -7
  69. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -6
  70. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +16 -7
  71. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -6
  72. data/ext/ice/cpp/include/Ice/Object.h +6 -6
  73. data/ext/ice/cpp/include/Ice/ObjectF.h +1 -6
  74. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -6
  75. data/ext/ice/cpp/include/Ice/Optional.h +21 -7
  76. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +18 -8
  77. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -6
  78. data/ext/ice/cpp/include/Ice/OutputStream.h +6 -11
  79. data/ext/ice/cpp/include/Ice/Protocol.h +1 -6
  80. data/ext/ice/cpp/include/Ice/Proxy.h +50 -23
  81. data/ext/ice/cpp/include/Ice/ProxyF.h +1 -6
  82. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -6
  83. data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -6
  84. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -6
  85. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +1 -6
  86. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -6
  87. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -6
  88. data/ext/ice/cpp/include/Ice/SHA1.h +1 -6
  89. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -6
  90. data/ext/ice/cpp/include/Ice/Service.h +2 -7
  91. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -6
  92. data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
  93. data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -6
  94. data/ext/ice/cpp/include/Ice/StreamHelpers.h +2 -7
  95. data/ext/ice/cpp/include/Ice/StringConverter.h +1 -6
  96. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -6
  97. data/ext/ice/cpp/include/Ice/UUID.h +1 -6
  98. data/ext/ice/cpp/include/Ice/UniquePtr.h +1 -6
  99. data/ext/ice/cpp/include/Ice/UniqueRef.h +1 -6
  100. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -6
  101. data/ext/ice/cpp/include/Ice/Value.h +2 -7
  102. data/ext/ice/cpp/include/Ice/ValueF.h +1 -6
  103. data/ext/ice/cpp/include/IceSSL/Config.h +1 -6
  104. data/ext/ice/cpp/include/IceSSL/IceSSL.h +1 -6
  105. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +1 -6
  106. data/ext/ice/cpp/include/IceSSL/Plugin.h +59 -6
  107. data/ext/ice/cpp/include/IceSSL/SChannel.h +5 -6
  108. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +5 -6
  109. data/ext/ice/cpp/include/IceSSL/UWP.h +1 -6
  110. data/ext/ice/cpp/include/IceUtil/Atomic.h +2 -7
  111. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -6
  112. data/ext/ice/cpp/include/IceUtil/Config.h +34 -20
  113. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +5 -10
  114. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -6
  115. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +26 -38
  116. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +5 -11
  117. data/ext/ice/cpp/include/IceUtil/Exception.h +130 -11
  118. data/ext/ice/cpp/include/IceUtil/FileUtil.h +1 -6
  119. data/ext/ice/cpp/include/IceUtil/Functional.h +5 -6
  120. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -6
  121. data/ext/ice/cpp/include/IceUtil/IceUtil.h +1 -6
  122. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -6
  123. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -6
  124. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -6
  125. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -6
  126. data/ext/ice/cpp/include/IceUtil/Mutex.h +2 -9
  127. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -6
  128. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +5 -10
  129. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -6
  130. data/ext/ice/cpp/include/IceUtil/Optional.h +9 -6
  131. data/ext/ice/cpp/include/IceUtil/Options.h +1 -6
  132. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +18 -20
  133. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -6
  134. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +8 -6
  135. data/ext/ice/cpp/include/IceUtil/Random.h +37 -6
  136. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -6
  137. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +4 -9
  138. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +8 -7
  139. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -6
  140. data/ext/ice/cpp/include/IceUtil/Shared.h +1 -6
  141. data/ext/ice/cpp/include/IceUtil/StopWatch.h +1 -6
  142. data/ext/ice/cpp/include/IceUtil/StringConverter.h +2 -7
  143. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -6
  144. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -6
  145. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -6
  146. data/ext/ice/cpp/include/IceUtil/Time.h +1 -6
  147. data/ext/ice/cpp/include/IceUtil/Timer.h +1 -6
  148. data/ext/ice/cpp/include/IceUtil/UUID.h +1 -6
  149. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -6
  150. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +12 -17
  151. data/ext/ice/cpp/include/generated/Ice/Communicator.h +35 -34
  152. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +4 -9
  153. data/ext/ice/cpp/include/generated/Ice/Connection.h +92 -57
  154. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +4 -9
  155. data/ext/ice/cpp/include/generated/Ice/Current.h +51 -57
  156. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +73 -42
  157. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +5 -10
  158. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +8 -13
  159. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +5 -10
  160. data/ext/ice/cpp/include/generated/Ice/Identity.h +7 -13
  161. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +28 -27
  162. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +4 -9
  163. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +76 -21
  164. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +4 -9
  165. data/ext/ice/cpp/include/generated/Ice/LocalException.h +597 -272
  166. data/ext/ice/cpp/include/generated/Ice/Locator.h +135 -52
  167. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +8 -13
  168. data/ext/ice/cpp/include/generated/Ice/Logger.h +10 -9
  169. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +4 -9
  170. data/ext/ice/cpp/include/generated/Ice/Metrics.h +175 -134
  171. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +20 -19
  172. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +4 -9
  173. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +16 -15
  174. data/ext/ice/cpp/include/generated/Ice/Plugin.h +18 -11
  175. data/ext/ice/cpp/include/generated/Ice/PluginF.h +4 -9
  176. data/ext/ice/cpp/include/generated/Ice/Process.h +14 -13
  177. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +6 -11
  178. data/ext/ice/cpp/include/generated/Ice/Properties.h +22 -21
  179. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +20 -19
  180. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +6 -11
  181. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +39 -28
  182. data/ext/ice/cpp/include/generated/Ice/Router.h +43 -36
  183. data/ext/ice/cpp/include/generated/Ice/RouterF.h +6 -11
  184. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +38 -37
  185. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +4 -9
  186. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +4 -9
  187. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +22 -15
  188. data/ext/ice/cpp/include/generated/Ice/Version.h +16 -23
  189. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +12 -12
  190. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +4 -9
  191. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +10 -10
  192. data/ext/ice/cpp/src/Ice/ACM.cpp +14 -16
  193. data/ext/ice/cpp/src/Ice/ACM.h +1 -6
  194. data/ext/ice/cpp/src/Ice/ACMF.h +1 -6
  195. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -6
  196. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -6
  197. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -6
  198. data/ext/ice/cpp/src/Ice/ArgVector.cpp +8 -13
  199. data/ext/ice/cpp/src/Ice/ArgVector.h +1 -6
  200. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -7
  201. data/ext/ice/cpp/src/Ice/Base64.cpp +12 -18
  202. data/ext/ice/cpp/src/Ice/Base64.h +1 -6
  203. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +2 -7
  204. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +1 -6
  205. data/ext/ice/cpp/src/Ice/Buffer.cpp +3 -8
  206. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +4 -9
  207. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +2 -8
  208. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +1 -6
  209. data/ext/ice/cpp/src/Ice/Communicator.cpp +4 -9
  210. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +4 -9
  211. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +23 -10
  212. data/ext/ice/cpp/src/Ice/CommunicatorI.h +6 -7
  213. data/ext/ice/cpp/src/Ice/Cond.cpp +1 -6
  214. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +1 -6
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +5 -10
  216. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +1 -6
  217. data/ext/ice/cpp/src/Ice/Connection.cpp +4 -9
  218. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +4 -9
  219. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +146 -36
  220. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +4 -6
  221. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +1 -6
  222. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +34 -24
  223. data/ext/ice/cpp/src/Ice/ConnectionI.h +1 -6
  224. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +1 -6
  225. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +2 -7
  226. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -6
  227. data/ext/ice/cpp/src/Ice/Connector.h +1 -6
  228. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -6
  229. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +1 -6
  230. data/ext/ice/cpp/src/Ice/Current.cpp +4 -9
  231. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -6
  232. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -6
  233. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -6
  234. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +14 -6
  235. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +7 -11
  236. data/ext/ice/cpp/src/Ice/Endpoint.cpp +4 -9
  237. data/ext/ice/cpp/src/Ice/EndpointF.cpp +4 -9
  238. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +1 -6
  239. data/ext/ice/cpp/src/Ice/EndpointFactory.h +1 -6
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -6
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -6
  242. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -6
  243. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -6
  244. data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -6
  245. data/ext/ice/cpp/src/Ice/EndpointI.h +1 -6
  246. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -6
  247. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +4 -9
  248. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -6
  249. data/ext/ice/cpp/src/Ice/EventHandler.h +1 -6
  250. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -6
  251. data/ext/ice/cpp/src/Ice/Exception.cpp +8 -13
  252. data/ext/ice/cpp/src/Ice/FacetMap.cpp +4 -9
  253. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -6
  254. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +1 -6
  255. data/ext/ice/cpp/src/Ice/GCObject.cpp +2 -7
  256. data/ext/ice/cpp/src/Ice/HashUtil.h +2 -7
  257. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -6
  258. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -6
  259. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +14 -31
  260. data/ext/ice/cpp/src/Ice/IPEndpointI.h +1 -6
  261. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -6
  262. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +1 -6
  263. data/ext/ice/cpp/src/Ice/Identity.cpp +4 -9
  264. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +4 -9
  265. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +4 -9
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +2 -8
  267. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -6
  268. data/ext/ice/cpp/src/Ice/Incoming.cpp +11 -13
  269. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -6
  270. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -6
  271. data/ext/ice/cpp/src/Ice/Initialize.cpp +6 -11
  272. data/ext/ice/cpp/src/Ice/InputStream.cpp +55 -87
  273. data/ext/ice/cpp/src/Ice/Instance.cpp +58 -13
  274. data/ext/ice/cpp/src/Ice/Instance.h +3 -6
  275. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +4 -9
  276. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +4 -9
  277. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +2 -7
  278. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -6
  279. data/ext/ice/cpp/src/Ice/LocalException.cpp +400 -9
  280. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -6
  281. data/ext/ice/cpp/src/Ice/Locator.cpp +52 -27
  282. data/ext/ice/cpp/src/Ice/LocatorF.cpp +4 -9
  283. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +25 -22
  284. data/ext/ice/cpp/src/Ice/LocatorInfo.h +3 -8
  285. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -6
  286. data/ext/ice/cpp/src/Ice/Logger.cpp +4 -9
  287. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +8 -19
  288. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -6
  289. data/ext/ice/cpp/src/Ice/LoggerF.cpp +4 -9
  290. data/ext/ice/cpp/src/Ice/LoggerI.cpp +13 -12
  291. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -6
  292. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +1 -6
  293. data/ext/ice/cpp/src/Ice/Metrics.cpp +12 -11
  294. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +9 -9
  295. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -6
  296. data/ext/ice/cpp/src/Ice/Network.cpp +70 -52
  297. data/ext/ice/cpp/src/Ice/Network.h +4 -9
  298. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -6
  299. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +2 -8
  300. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -6
  301. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -6
  302. data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +57 -0
  303. data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +40 -0
  304. data/ext/ice/cpp/src/Ice/Object.cpp +10 -14
  305. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +4 -9
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +4 -9
  307. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +1 -6
  308. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +1 -6
  309. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +1 -6
  310. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +22 -7
  311. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +5 -6
  312. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +4 -9
  313. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -6
  314. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +5 -10
  315. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -6
  316. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +6 -9
  317. data/ext/ice/cpp/src/Ice/OutputStream.cpp +29 -61
  318. data/ext/ice/cpp/src/Ice/Plugin.cpp +4 -9
  319. data/ext/ice/cpp/src/Ice/PluginF.cpp +4 -9
  320. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +1 -6
  321. data/ext/ice/cpp/src/Ice/PluginManagerI.h +1 -6
  322. data/ext/ice/cpp/src/Ice/Process.cpp +8 -13
  323. data/ext/ice/cpp/src/Ice/ProcessF.cpp +4 -9
  324. data/ext/ice/cpp/src/Ice/Properties.cpp +4 -9
  325. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +11 -16
  326. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +3 -8
  327. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -6
  328. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +4 -9
  329. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +13 -17
  330. data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -6
  331. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +42 -8
  332. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -7
  333. data/ext/ice/cpp/src/Ice/Protocol.cpp +1 -6
  334. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +1 -6
  335. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +1 -6
  336. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -6
  337. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -6
  338. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -6
  339. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -6
  340. data/ext/ice/cpp/src/Ice/Proxy.cpp +9 -8
  341. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +11 -7
  342. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -6
  343. data/ext/ice/cpp/src/Ice/Reference.cpp +61 -33
  344. data/ext/ice/cpp/src/Ice/Reference.h +1 -6
  345. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +2 -9
  346. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -6
  347. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -6
  348. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +4 -8
  349. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -6
  350. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +20 -19
  351. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -6
  352. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -6
  353. data/ext/ice/cpp/src/Ice/RequestHandler.h +1 -6
  354. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +1 -6
  355. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +1 -6
  356. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -6
  357. data/ext/ice/cpp/src/Ice/ResponseHandler.h +1 -6
  358. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +7 -9
  359. data/ext/ice/cpp/src/Ice/RetryQueue.h +1 -6
  360. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -6
  361. data/ext/ice/cpp/src/Ice/Router.cpp +15 -20
  362. data/ext/ice/cpp/src/Ice/RouterF.cpp +4 -9
  363. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +3 -8
  364. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -6
  365. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -6
  366. data/ext/ice/cpp/src/Ice/SHA1.cpp +3 -8
  367. data/ext/ice/cpp/src/Ice/Selector.cpp +59 -25
  368. data/ext/ice/cpp/src/Ice/Selector.h +1 -6
  369. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +4 -9
  370. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +4 -9
  371. data/ext/ice/cpp/src/Ice/ServantManager.cpp +7 -12
  372. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -6
  373. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -6
  374. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +4 -9
  375. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -6
  376. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -6
  377. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +15 -18
  378. data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -6
  379. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -6
  380. data/ext/ice/cpp/src/Ice/StringUtil.h +1 -6
  381. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +3 -8
  382. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -6
  383. data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +66 -0
  384. data/ext/ice/cpp/src/Ice/SystemdJournalI.h +39 -0
  385. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +9 -7
  386. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -6
  387. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +6 -6
  388. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -6
  389. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +6 -6
  390. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +1 -6
  391. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +6 -6
  392. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +1 -6
  393. data/ext/ice/cpp/src/Ice/Thread.cpp +18 -14
  394. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +69 -9
  395. data/ext/ice/cpp/src/Ice/ThreadPool.h +11 -12
  396. data/ext/ice/cpp/src/Ice/Timer.cpp +11 -6
  397. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +1 -6
  398. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -6
  399. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -6
  400. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +1 -6
  401. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -6
  402. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -6
  403. data/ext/ice/cpp/src/Ice/Transceiver.h +1 -6
  404. data/ext/ice/cpp/src/Ice/TransceiverF.h +3 -8
  405. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +4 -6
  406. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -6
  407. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +12 -7
  408. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +1 -6
  409. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +33 -26
  410. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +1 -6
  411. data/ext/ice/cpp/src/Ice/Value.cpp +1 -6
  412. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +4 -9
  413. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +1 -7
  414. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +1 -6
  415. data/ext/ice/cpp/src/Ice/Version.cpp +4 -9
  416. data/ext/ice/cpp/src/Ice/VirtualShared.h +1 -6
  417. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -6
  418. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -6
  419. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -6
  420. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -6
  421. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +1 -6
  422. data/ext/ice/cpp/src/Ice/WSEndpoint.h +1 -6
  423. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +18 -22
  424. data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -7
  425. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +4 -9
  426. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +497 -17
  427. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +4 -7
  428. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -6
  429. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +5 -10
  430. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -6
  431. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +1 -6
  432. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -6
  433. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +4 -9
  434. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +22 -15
  435. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +1 -6
  436. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +52 -17
  437. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +1 -6
  438. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -6
  439. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +4 -9
  440. data/ext/ice/cpp/src/IceSSL/CertificateI.h +1 -6
  441. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +4 -9
  442. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +4 -9
  443. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -6
  444. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -6
  445. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +8 -13
  446. data/ext/ice/cpp/src/IceSSL/EndpointI.h +2 -7
  447. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +4 -9
  448. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
  449. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -6
  450. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -6
  451. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +15 -20
  452. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +100 -46
  453. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +3 -8
  454. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +1 -6
  455. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +1 -6
  456. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +271 -147
  457. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +3 -11
  458. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +1 -6
  459. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +1 -6
  460. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +115 -6
  461. data/ext/ice/cpp/src/IceSSL/PluginI.h +11 -6
  462. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -7
  463. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -6
  464. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +5 -10
  465. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +69 -36
  466. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +5 -8
  467. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +5 -6
  468. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +1 -6
  469. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +154 -38
  470. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +8 -6
  471. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +21 -14
  472. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +3 -6
  473. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -6
  474. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +37 -31
  475. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +44 -18
  476. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +5 -6
  477. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +4 -6
  478. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +1 -6
  479. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +160 -99
  480. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +7 -7
  481. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +35 -25
  482. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +5 -6
  483. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -6
  484. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -6
  485. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -6
  486. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +4 -9
  487. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +4 -9
  488. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +1 -6
  489. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +1 -6
  490. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +1 -6
  491. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +5 -10
  492. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +1 -6
  493. data/ext/ice/cpp/src/IceSSL/Util.cpp +12 -11
  494. data/ext/ice/cpp/src/IceSSL/Util.h +1 -6
  495. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +1 -6
  496. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -6
  497. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -6
  498. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +3 -6
  499. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +2 -7
  500. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -6
  501. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -6
  502. data/ext/ice/cpp/src/IceUtil/Options.cpp +25 -15
  503. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +41 -16
  504. data/ext/ice/cpp/src/IceUtil/Random.cpp +3 -8
  505. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +2 -7
  506. data/ext/ice/cpp/src/IceUtil/Shared.cpp +1 -6
  507. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +6 -11
  508. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +45 -12
  509. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -6
  510. data/ext/ice/cpp/src/IceUtil/Time.cpp +12 -19
  511. data/ext/ice/cpp/src/IceUtil/UUID.cpp +6 -11
  512. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -6
  513. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -6
  514. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +17 -16
  515. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +75 -73
  516. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +3 -8
  517. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -6
  518. data/ext/ice/cpp/src/Slice/Checksum.h +1 -6
  519. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -6
  520. data/ext/ice/cpp/src/Slice/FileTracker.h +1 -6
  521. data/ext/ice/cpp/src/Slice/Grammar.cpp +249 -245
  522. data/ext/ice/cpp/src/Slice/Grammar.h +5 -5
  523. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -7
  524. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +89 -92
  525. data/ext/ice/cpp/src/Slice/JavaUtil.h +5 -10
  526. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -6
  527. data/ext/ice/cpp/src/Slice/MD5.h +1 -6
  528. data/ext/ice/cpp/src/Slice/MD5I.cpp +8 -0
  529. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +10 -6
  530. data/ext/ice/cpp/src/Slice/PHPUtil.h +1 -6
  531. data/ext/ice/cpp/src/Slice/Parser.cpp +153 -166
  532. data/ext/ice/cpp/src/Slice/Parser.h +33 -10
  533. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +25 -17
  534. data/ext/ice/cpp/src/Slice/Preprocessor.h +2 -7
  535. data/ext/ice/cpp/src/Slice/Python.cpp +22 -28
  536. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +80 -49
  537. data/ext/ice/cpp/src/Slice/PythonUtil.h +1 -6
  538. data/ext/ice/cpp/src/Slice/Ruby.cpp +5 -10
  539. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +13 -15
  540. data/ext/ice/cpp/src/Slice/RubyUtil.h +1 -6
  541. data/ext/ice/cpp/src/Slice/Scanner.cpp +689 -437
  542. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +2 -8
  543. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +12 -12
  544. data/ext/ice/cpp/src/Slice/Util.h +1 -6
  545. data/ext/ice/mcpp/CMakeLists.txt +80 -0
  546. data/ext/ice/mcpp/Makefile +2 -5
  547. data/ext/ice/mcpp/expand.c +6 -6
  548. data/ice.gemspec +2 -4
  549. data/lib/Glacier2.rb +1 -6
  550. data/lib/Glacier2/Metrics.rb +3 -8
  551. data/lib/Glacier2/PermissionsVerifier.rb +3 -8
  552. data/lib/Glacier2/PermissionsVerifierF.rb +3 -8
  553. data/lib/Glacier2/Router.rb +3 -8
  554. data/lib/Glacier2/RouterF.rb +3 -8
  555. data/lib/Glacier2/SSLInfo.rb +3 -8
  556. data/lib/Glacier2/Session.rb +3 -8
  557. data/lib/Ice.rb +1 -6
  558. data/lib/Ice/BuiltinSequences.rb +3 -8
  559. data/lib/Ice/Communicator.rb +3 -8
  560. data/lib/Ice/CommunicatorF.rb +3 -8
  561. data/lib/Ice/Connection.rb +3 -8
  562. data/lib/Ice/ConnectionF.rb +3 -8
  563. data/lib/Ice/Current.rb +3 -8
  564. data/lib/Ice/Endpoint.rb +3 -8
  565. data/lib/Ice/EndpointF.rb +3 -8
  566. data/lib/Ice/EndpointTypes.rb +3 -8
  567. data/lib/Ice/FacetMap.rb +3 -8
  568. data/lib/Ice/Identity.rb +3 -8
  569. data/lib/Ice/ImplicitContext.rb +3 -8
  570. data/lib/Ice/ImplicitContextF.rb +3 -8
  571. data/lib/Ice/Instrumentation.rb +3 -8
  572. data/lib/Ice/InstrumentationF.rb +3 -8
  573. data/lib/Ice/LocalException.rb +3 -8
  574. data/lib/Ice/Locator.rb +3 -8
  575. data/lib/Ice/LocatorF.rb +3 -8
  576. data/lib/Ice/Logger.rb +3 -8
  577. data/lib/Ice/LoggerF.rb +3 -8
  578. data/lib/Ice/Metrics.rb +3 -8
  579. data/lib/Ice/ObjectAdapter.rb +3 -8
  580. data/lib/Ice/ObjectAdapterF.rb +3 -8
  581. data/lib/Ice/ObjectFactory.rb +3 -8
  582. data/lib/Ice/Plugin.rb +3 -8
  583. data/lib/Ice/PluginF.rb +3 -8
  584. data/lib/Ice/Process.rb +3 -8
  585. data/lib/Ice/ProcessF.rb +3 -8
  586. data/lib/Ice/Properties.rb +3 -8
  587. data/lib/Ice/PropertiesAdmin.rb +3 -8
  588. data/lib/Ice/PropertiesF.rb +3 -8
  589. data/lib/Ice/RemoteLogger.rb +3 -8
  590. data/lib/Ice/Router.rb +3 -8
  591. data/lib/Ice/RouterF.rb +3 -8
  592. data/lib/Ice/ServantLocator.rb +3 -8
  593. data/lib/Ice/ServantLocatorF.rb +3 -8
  594. data/lib/Ice/SliceChecksumDict.rb +3 -8
  595. data/lib/Ice/ValueFactory.rb +3 -8
  596. data/lib/Ice/Version.rb +3 -8
  597. data/lib/IceBox.rb +1 -6
  598. data/lib/IceBox/IceBox.rb +3 -8
  599. data/lib/IceGrid.rb +1 -6
  600. data/lib/IceGrid/Admin.rb +3 -8
  601. data/lib/IceGrid/Descriptor.rb +3 -8
  602. data/lib/IceGrid/Exception.rb +3 -8
  603. data/lib/IceGrid/FileParser.rb +3 -8
  604. data/lib/IceGrid/PluginFacade.rb +3 -8
  605. data/lib/IceGrid/Registry.rb +3 -8
  606. data/lib/IceGrid/Session.rb +3 -8
  607. data/lib/IceGrid/UserAccountMapper.rb +3 -8
  608. data/lib/IcePatch2.rb +1 -6
  609. data/lib/IcePatch2/FileInfo.rb +3 -8
  610. data/lib/IcePatch2/FileServer.rb +3 -8
  611. data/lib/IceStorm.rb +1 -6
  612. data/lib/IceStorm/IceStorm.rb +3 -8
  613. data/lib/IceStorm/Metrics.rb +3 -8
  614. data/slice/Glacier2/Metrics.ice +14 -8
  615. data/slice/Glacier2/PermissionsVerifier.ice +11 -7
  616. data/slice/Glacier2/PermissionsVerifierF.ice +11 -7
  617. data/slice/Glacier2/Router.ice +12 -8
  618. data/slice/Glacier2/RouterF.ice +11 -7
  619. data/slice/Glacier2/SSLInfo.ice +11 -7
  620. data/slice/Glacier2/Session.ice +11 -7
  621. data/slice/Ice/BuiltinSequences.ice +13 -7
  622. data/slice/Ice/Communicator.ice +92 -44
  623. data/slice/Ice/CommunicatorF.ice +13 -7
  624. data/slice/Ice/Connection.ice +35 -29
  625. data/slice/Ice/ConnectionF.ice +13 -7
  626. data/slice/Ice/Current.ice +29 -23
  627. data/slice/Ice/Endpoint.ice +22 -19
  628. data/slice/Ice/EndpointF.ice +14 -8
  629. data/slice/Ice/EndpointTypes.ice +15 -9
  630. data/slice/Ice/FacetMap.ice +14 -8
  631. data/slice/Ice/Identity.ice +13 -7
  632. data/slice/Ice/ImplicitContext.ice +28 -22
  633. data/slice/Ice/ImplicitContextF.ice +12 -7
  634. data/slice/Ice/Instrumentation.ice +19 -13
  635. data/slice/Ice/InstrumentationF.ice +13 -7
  636. data/slice/Ice/LocalException.ice +35 -29
  637. data/slice/Ice/Locator.ice +13 -7
  638. data/slice/Ice/LocatorF.ice +13 -7
  639. data/slice/Ice/Logger.ice +19 -13
  640. data/slice/Ice/LoggerF.ice +13 -7
  641. data/slice/Ice/Metrics.ice +26 -18
  642. data/slice/Ice/ObjectAdapter.ice +63 -45
  643. data/slice/Ice/ObjectAdapterF.ice +13 -7
  644. data/slice/Ice/ObjectFactory.ice +20 -12
  645. data/slice/Ice/Plugin.ice +19 -10
  646. data/slice/Ice/PluginF.ice +17 -7
  647. data/slice/Ice/Process.ice +13 -7
  648. data/slice/Ice/ProcessF.ice +13 -7
  649. data/slice/Ice/Properties.ice +35 -24
  650. data/slice/Ice/PropertiesAdmin.ice +13 -7
  651. data/slice/Ice/PropertiesF.ice +13 -7
  652. data/slice/Ice/RemoteLogger.ice +13 -7
  653. data/slice/Ice/Router.ice +14 -8
  654. data/slice/Ice/RouterF.ice +13 -7
  655. data/slice/Ice/ServantLocator.ice +31 -23
  656. data/slice/Ice/ServantLocatorF.ice +13 -7
  657. data/slice/Ice/SliceChecksumDict.ice +13 -7
  658. data/slice/Ice/ValueFactory.ice +22 -15
  659. data/slice/Ice/Version.ice +13 -7
  660. data/slice/IceBT/ConnectionInfo.ice +12 -7
  661. data/slice/IceBT/EndpointInfo.ice +13 -8
  662. data/slice/IceBT/Types.ice +12 -7
  663. data/slice/IceBox/IceBox.ice +29 -9
  664. data/slice/IceDiscovery/IceDiscovery.ice +68 -7
  665. data/slice/IceGrid/Admin.ice +41 -35
  666. data/slice/IceGrid/Descriptor.ice +15 -10
  667. data/slice/IceGrid/Exception.ice +15 -10
  668. data/slice/IceGrid/FileParser.ice +14 -8
  669. data/slice/IceGrid/PluginFacade.ice +17 -11
  670. data/slice/IceGrid/Registry.ice +13 -7
  671. data/slice/IceGrid/Session.ice +18 -12
  672. data/slice/IceGrid/UserAccountMapper.ice +16 -10
  673. data/slice/IceIAP/ConnectionInfo.ice +11 -8
  674. data/slice/IceIAP/EndpointInfo.ice +11 -8
  675. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +12 -7
  676. data/slice/IcePatch2/FileInfo.ice +12 -7
  677. data/slice/IcePatch2/FileServer.ice +13 -8
  678. data/slice/IceSSL/ConnectionInfo.ice +16 -9
  679. data/slice/IceSSL/ConnectionInfoF.ice +14 -8
  680. data/slice/IceSSL/EndpointInfo.ice +14 -8
  681. data/slice/IceStorm/IceStorm.ice +17 -11
  682. data/slice/IceStorm/Metrics.ice +12 -8
  683. metadata +8 -4
@@ -1,17 +1,13 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef SLICE_PARSER_H
11
6
  #define SLICE_PARSER_H
12
7
 
13
8
  #include <IceUtil/Shared.h>
14
9
  #include <IceUtil/Handle.h>
10
+ #include <IceUtil/Exception.h>
15
11
  #include <string>
16
12
  #include <vector>
17
13
  #include <list>
@@ -23,6 +19,29 @@
23
19
  namespace Slice
24
20
  {
25
21
 
22
+ class CompilerException : public ::IceUtil::Exception
23
+ {
24
+ public:
25
+
26
+ CompilerException(const char*, int, const std::string&);
27
+ #ifndef ICE_CPP11_COMPILER
28
+ ~CompilerException() throw();
29
+ #endif
30
+ virtual std::string ice_id() const;
31
+ virtual void ice_print(std::ostream&) const;
32
+ #ifndef ICE_CPP11_MAPPING
33
+ virtual CompilerException* ice_clone() const;
34
+ #endif
35
+ virtual void ice_throw() const;
36
+
37
+ std::string reason() const;
38
+
39
+ private:
40
+
41
+ static const char* _name;
42
+ const std::string _reason;
43
+ };
44
+
26
45
  #if defined(_WIN32) && !defined(__MINGW32__)
27
46
 
28
47
  const IceUtil::Int64 Int32Max = 0x7fffffffi64;
@@ -246,6 +265,9 @@ public:
246
265
  void warning(WarningCategory, const std::string&, int, const std::string&) const;
247
266
  void warning(WarningCategory, const std::string&, const std::string&, const std::string&) const;
248
267
 
268
+ void error(const std::string&, int, const std::string&) const;
269
+ void error(const std::string&, const std::string&, const std::string&) const;
270
+
249
271
  private:
250
272
 
251
273
  bool suppressWarning(WarningCategory) const;
@@ -319,7 +341,7 @@ public:
319
341
 
320
342
  protected:
321
343
 
322
- SyntaxTreeBase(const UnitPtr&);
344
+ SyntaxTreeBase(const UnitPtr&, const DefinitionContextPtr& = 0);
323
345
 
324
346
  UnitPtr _unit;
325
347
  DefinitionContextPtr _definitionContext;
@@ -507,7 +529,8 @@ public:
507
529
  bool hasNonLocalInterfaceDefs() const;
508
530
  bool hasValueDefs() const;
509
531
  bool hasOnlyClassDecls() const;
510
- bool hasAbstractClassDefs() const;
532
+ bool hasOperations() const; // interfaces or classes with operations
533
+ bool hasNonLocalAbstractClassDefs() const; // interfaces or abstract classes
511
534
  bool hasNonLocalDataOnlyClasses() const;
512
535
  bool hasOtherConstructedOrExceptions() const; // Exceptions or constructed types other than classes.
513
536
  bool hasContentsWithMetaData(const std::string&) const;
@@ -1092,7 +1115,8 @@ public:
1092
1115
  ContainedList findUsedBy(const ContainedPtr&) const;
1093
1116
 
1094
1117
  void addTypeId(int, const std::string&);
1095
- std::string getTypeId(int);
1118
+ std::string getTypeId(int) const;
1119
+ bool hasCompactTypeId() const;
1096
1120
 
1097
1121
  bool usesNonLocals() const;
1098
1122
  bool usesConsts() const;
@@ -1121,7 +1145,6 @@ private:
1121
1145
 
1122
1146
  Unit(bool, bool, bool, bool, const StringList&);
1123
1147
  static void eraseWhiteSpace(::std::string&);
1124
- bool checkUndefinedTypes();
1125
1148
 
1126
1149
  bool _ignRedefs;
1127
1150
  bool _all;
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <Slice/Preprocessor.h>
11
6
  #include <Slice/Util.h>
@@ -309,7 +304,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
309
304
 
310
305
  bool
311
306
  Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, const vector<string>& includePaths,
312
- const vector<string>& extraArgs, const string& cppSourceExt,
307
+ const vector<string>& extraArgs, const string& /*cppSourceExt*/,
313
308
  const string& optValue)
314
309
  {
315
310
  if(!checkInputFile())
@@ -474,7 +469,8 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
474
469
  {
475
470
  if(file.compare(0, p->length(), *p) == 0)
476
471
  {
477
- string s = includePaths[p - fullIncludePaths.begin()] + file.substr(p->length());
472
+ string s = includePaths[static_cast<size_t>(p - fullIncludePaths.begin())] +
473
+ file.substr(p->length());
478
474
  if(IceUtilInternal::isAbsolutePath(newFile) || s.size() < newFile.size())
479
475
  {
480
476
  newFile = s;
@@ -548,7 +544,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
548
544
  }
549
545
  }
550
546
 
551
- string::size_type pos = 0;
547
+ pos = 0;
552
548
  while((pos = result.find("\\", pos + 1)) != string::npos)
553
549
  {
554
550
  result.insert(pos, 1, '\\');
@@ -590,7 +586,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
590
586
  //
591
587
  // Change .o[bj] suffix to the h header extension suffix.
592
588
  //
593
- string::size_type pos = result.find(suffix);
589
+ pos = result.find(suffix);
594
590
  if(pos != string::npos)
595
591
  {
596
592
  string name = result.substr(0, pos);
@@ -621,7 +617,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
621
617
  //
622
618
  // Find end of next file.
623
619
  //
624
- string::size_type pos = 0;
620
+ pos = 0;
625
621
  while((pos = result.find_first_of(" :\t\r\n\\", pos + 1)) != string::npos)
626
622
  {
627
623
  if(result[pos] == ':')
@@ -654,7 +650,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
654
650
  //
655
651
  // Change .o[bj] suffix to .cs suffix.
656
652
  //
657
- string::size_type pos;
653
+ pos = 0;
658
654
  if((pos = result.find(suffix)) != string::npos)
659
655
  {
660
656
  result.replace(pos, suffix.size() - 1, ".cs");
@@ -668,7 +664,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
668
664
  //
669
665
  // Change .o[bj] suffix to .js suffix.
670
666
  //
671
- string::size_type pos;
667
+ pos = 0;
672
668
  if((pos = result.find(suffix)) != string::npos)
673
669
  {
674
670
  result.replace(pos, suffix.size() - 1, ".js");
@@ -684,7 +680,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
684
680
  {
685
681
  result = pyPrefix + result;
686
682
  }
687
- string::size_type pos;
683
+ pos = 0;
688
684
  if((pos = result.find(suffix)) != string::npos)
689
685
  {
690
686
  result.replace(pos, suffix.size() - 1, "_ice.py");
@@ -696,7 +692,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
696
692
  //
697
693
  // Change .o[bj] suffix to .rb suffix.
698
694
  //
699
- string::size_type pos;
695
+ pos = 0;
700
696
  if((pos = result.find(suffix)) != string::npos)
701
697
  {
702
698
  result.replace(pos, suffix.size() - 1, ".rb");
@@ -708,7 +704,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
708
704
  //
709
705
  // Change .o[bj] suffix to .php suffix.
710
706
  //
711
- string::size_type pos;
707
+ pos = 0;
712
708
  if((pos = result.find(suffix)) != string::npos)
713
709
  {
714
710
  result.replace(pos, suffix.size() - 1, ".php");
@@ -717,7 +713,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
717
713
  }
718
714
  case ObjC:
719
715
  {
720
- string::size_type pos = result.find(suffix);
716
+ pos = result.find(suffix);
721
717
  if(pos != string::npos)
722
718
  {
723
719
  string name = result.substr(0, pos);
@@ -725,6 +721,18 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
725
721
  }
726
722
  break;
727
723
  }
724
+ case Swift:
725
+ {
726
+ //
727
+ // Change .o[bj] suffix to .swift suffix.
728
+ //
729
+ pos = 0;
730
+ if ((pos = result.find(suffix)) != string::npos)
731
+ {
732
+ result.replace(pos, suffix.size() - 1, ".swift");
733
+ }
734
+ break;
735
+ }
728
736
  default:
729
737
  {
730
738
  assert(false);
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef PREPROCESSOR_H
11
6
  #define PREPROCESSOR_H
@@ -32,7 +27,7 @@ public:
32
27
  FILE* preprocess(bool, const std::vector<std::string>&);
33
28
  bool close();
34
29
 
35
- enum Language { CPlusPlus, Java, CSharp, Python, Ruby, PHP, JavaScript, JavaScriptJSON, ObjC, SliceXML, MATLAB };
30
+ enum Language { CPlusPlus, Java, CSharp, Python, Ruby, PHP, JavaScript, JavaScriptJSON, ObjC, SliceXML, MATLAB, Swift };
36
31
 
37
32
  bool printMakefileDependencies(std::ostream&, Language, const std::vector<std::string>&, const std::string& = "",
38
33
  const std::string& = "cpp", const std::string& = "");
@@ -1,13 +1,7 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
- #include <IceUtil/DisableWarnings.h>
11
5
  #include <IceUtil/IceUtil.h>
12
6
  #include <IceUtil/Options.h>
13
7
  #include <IceUtil/StringUtil.h>
@@ -92,7 +86,7 @@ createDirectory(const string& dir)
92
86
  if(IceUtilInternal::mkdir(dir, 0777) != 0)
93
87
  {
94
88
  ostringstream os;
95
- os << "cannot create directory '" << dir << "': " << strerror(errno);
89
+ os << "cannot create directory '" << dir << "': " << IceUtilInternal::errorToString(errno);
96
90
  throw FileException(__FILE__, __LINE__, os.str());
97
91
  }
98
92
  }
@@ -132,7 +126,7 @@ createPackageDirectory(const string& output, const string& pkgdir)
132
126
  if(IceUtilInternal::mkdir(path, 0777) != 0)
133
127
  {
134
128
  ostringstream os;
135
- os << "cannot create directory '" << path << "': " << strerror(errno);
129
+ os << "cannot create directory '" << path << "': " << IceUtilInternal::errorToString(errno);
136
130
  throw FileException(__FILE__, __LINE__, os.str());
137
131
  }
138
132
  FileTracker::instance()->addDirectory(path);
@@ -149,21 +143,21 @@ createPackageDirectory(const string& output, const string& pkgdir)
149
143
  // PackageVisitor. We need every intermediate subdirectory to have an __init__.py file, which
150
144
  // can be empty.
151
145
  //
152
- const string init = path + "/__init__.py";
153
- if(!IceUtilInternal::fileExists(init))
146
+ const string initFile = path + "/__init__.py";
147
+ if(!IceUtilInternal::fileExists(initFile))
154
148
  {
155
149
  //
156
150
  // Create an empty file.
157
151
  //
158
152
  IceUtilInternal::Output out;
159
- out.open(init.c_str());
153
+ out.open(initFile.c_str());
160
154
  if(!out)
161
155
  {
162
156
  ostringstream os;
163
- os << "cannot open '" << init << "': " << strerror(errno);
157
+ os << "cannot open '" << initFile << "': " << IceUtilInternal::errorToString(errno);
164
158
  throw FileException(__FILE__, __LINE__, os.str());
165
159
  }
166
- FileTracker::instance()->addFile(init);
160
+ FileTracker::instance()->addFile(initFile);
167
161
  }
168
162
  }
169
163
  }
@@ -226,24 +220,24 @@ PackageVisitor::PackageVisitor(StringList& modules) :
226
220
  }
227
221
 
228
222
  void
229
- PackageVisitor::createModules(const UnitPtr& unit, const string& module, const string& dir)
223
+ PackageVisitor::createModules(const UnitPtr& unt, const string& module, const string& dir)
230
224
  {
231
225
  StringList modules;
232
226
  PackageVisitor v(modules);
233
- unit->visit(&v, false);
227
+ unt->visit(&v, false);
234
228
 
235
229
  for(StringList::iterator p = modules.begin(); p != modules.end(); ++p)
236
230
  {
237
- vector<string> v;
238
- if(!IceUtilInternal::splitString(*p, ".", v))
231
+ vector<string> vs;
232
+ if(!IceUtilInternal::splitString(*p, ".", vs))
239
233
  {
240
234
  assert(false);
241
235
  }
242
236
  string currentModule;
243
237
  string path = dir.empty() ? "." : dir;
244
- for(vector<string>::iterator q = v.begin(); q != v.end(); ++q)
238
+ for(vector<string>::iterator q = vs.begin(); q != vs.end(); ++q)
245
239
  {
246
- if(q != v.begin())
240
+ if(q != vs.begin())
247
241
  {
248
242
  addSubmodule(path, currentModule, *q);
249
243
  currentModule += ".";
@@ -322,7 +316,7 @@ PackageVisitor::readInit(const string& dir, StringList& modules, StringList& sub
322
316
  if(!in)
323
317
  {
324
318
  ostringstream os;
325
- os << "cannot open file '" << initPath << "': " << strerror(errno);
319
+ os << "cannot open file '" << initPath << "': " << IceUtilInternal::errorToString(errno);
326
320
  throw FileException(__FILE__, __LINE__, os.str());
327
321
  }
328
322
 
@@ -414,9 +408,9 @@ PackageVisitor::writeInit(const string& dir, const string& name, const StringLis
414
408
  ofstream os(IceUtilInternal::streamFilename(initPath).c_str());
415
409
  if(!os)
416
410
  {
417
- ostringstream os;
418
- os << "cannot open file '" << initPath << "': " << strerror(errno);
419
- throw FileException(__FILE__, __LINE__, os.str());
411
+ ostringstream oss;
412
+ oss << "cannot open file '" << initPath << "': " << IceUtilInternal::errorToString(errno);
413
+ throw FileException(__FILE__, __LINE__, oss.str());
420
414
  }
421
415
  FileTracker::instance()->addFile(initPath);
422
416
 
@@ -691,7 +685,7 @@ Slice::Python::compile(const vector<string>& argv)
691
685
  }
692
686
 
693
687
  //
694
- // Check if the file contains the python:pkgdir global metadata.
688
+ // Check if the file contains the python:pkgdir file metadata.
695
689
  //
696
690
  const string pkgdir = getPackageDirectory(icecpp->getFileName(), u);
697
691
 
@@ -750,9 +744,9 @@ Slice::Python::compile(const vector<string>& argv)
750
744
  out.open(path.c_str());
751
745
  if(!out)
752
746
  {
753
- ostringstream os;
754
- os << "cannot open '" << path << "': " << strerror(errno);
755
- throw FileException(__FILE__, __LINE__, os.str());
747
+ ostringstream oss;
748
+ oss << "cannot open '" << path << "': " << IceUtilInternal::errorToString(errno);
749
+ throw FileException(__FILE__, __LINE__, oss.str());
756
750
  }
757
751
  FileTracker::instance()->addFile(path);
758
752
 
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <Slice/PythonUtil.h>
11
6
  #include <Slice/Checksum.h>
@@ -432,7 +427,8 @@ Slice::Python::CodeVisitor::visitClassDecl(const ClassDeclPtr& p)
432
427
  _out << nl << "_M_" << getAbsolute(p, "_t_") << " = IcePy.declareValue('" << scoped << "')";
433
428
  }
434
429
 
435
- if(!p->isLocal() && (p->isInterface() || p->definition()->allOperations().size()))
430
+ ClassDefPtr def = p->definition();
431
+ if(!p->isLocal() && (p->isInterface() || (def && def->allOperations().size())))
436
432
  {
437
433
  _out << nl << "_M_" << getAbsolute(p, "_t_", "Disp") << " = IcePy.declareClass('" << scoped << "')";
438
434
  _out << nl << "_M_" << getAbsolute(p, "_t_", "Prx") << " = IcePy.declareProxy('" << scoped << "')";
@@ -459,7 +455,7 @@ Slice::Python::CodeVisitor::writeOperations(const ClassDefPtr& p)
459
455
  if((*oli)->hasMarshaledResult())
460
456
  {
461
457
  string name = (*oli)->name();
462
- name[0] = toupper(static_cast<unsigned char>(name[0]));
458
+ name[0] = static_cast<char>(toupper(static_cast<unsigned char>(name[0])));
463
459
  _out << sp;
464
460
  _out << nl << "\"\"\"";
465
461
  _out << nl << "Immediately marshals the result of an invocation of " << (*oli)->name()
@@ -1831,7 +1827,7 @@ Slice::Python::CodeVisitor::writeType(const TypePtr& p)
1831
1827
  if(prx)
1832
1828
  {
1833
1829
  ClassDefPtr def = prx->_class()->definition();
1834
- if(def->isInterface() || def->allOperations().size() > 0)
1830
+ if(!def || def->isAbstract())
1835
1831
  {
1836
1832
  _out << "_M_" << getAbsolute(prx->_class(), "_t_", "Prx");
1837
1833
  }
@@ -2307,12 +2303,12 @@ Slice::Python::CodeVisitor::stripMarkup(const string& comment)
2307
2303
  string::size_type start = 0;
2308
2304
  while(start != string::npos)
2309
2305
  {
2310
- string::size_type nl = text.find_first_of("\r\n", start);
2306
+ string::size_type newline = text.find_first_of("\r\n", start);
2311
2307
  string line;
2312
- if(nl != string::npos)
2308
+ if(newline != string::npos)
2313
2309
  {
2314
- line = text.substr(start, nl - start);
2315
- start = nl;
2310
+ line = text.substr(start, newline - start);
2311
+ start = newline;
2316
2312
  }
2317
2313
  else
2318
2314
  {
@@ -2490,10 +2486,10 @@ Slice::Python::CodeVisitor::parseOpComment(const string& comment, OpComment& c)
2490
2486
  //
2491
2487
  string name;
2492
2488
  bool inParam = false, inException = false, inReturn = false;
2493
- vector<string>::size_type i = 0;
2494
- while(i < lines.size())
2489
+ vector<string>::iterator i = lines.begin();
2490
+ while(i != lines.end())
2495
2491
  {
2496
- string l = lines[i];
2492
+ string l = *i;
2497
2493
  string::size_type paramTag = l.find("@param");
2498
2494
  string::size_type throwTag = l.find("@throw");
2499
2495
  string::size_type returnTag = l.find("@return");
@@ -2537,7 +2533,7 @@ Slice::Python::CodeVisitor::parseOpComment(const string& comment, OpComment& c)
2537
2533
  }
2538
2534
  }
2539
2535
  }
2540
- lines.erase(lines.begin() + i);
2536
+ i = lines.erase(i);
2541
2537
  continue;
2542
2538
  }
2543
2539
  else if(throwTag != string::npos)
@@ -2579,7 +2575,7 @@ Slice::Python::CodeVisitor::parseOpComment(const string& comment, OpComment& c)
2579
2575
  }
2580
2576
  }
2581
2577
  }
2582
- lines.erase(lines.begin() + i);
2578
+ i = lines.erase(i);
2583
2579
  continue;
2584
2580
  }
2585
2581
  else if(returnTag != string::npos)
@@ -2596,7 +2592,7 @@ Slice::Python::CodeVisitor::parseOpComment(const string& comment, OpComment& c)
2596
2592
  inParam = false;
2597
2593
  c.returns = l.substr(pos);
2598
2594
  }
2599
- lines.erase(lines.begin() + i);
2595
+ i = lines.erase(i);
2600
2596
  continue;
2601
2597
  }
2602
2598
  else
@@ -2616,7 +2612,7 @@ Slice::Python::CodeVisitor::parseOpComment(const string& comment, OpComment& c)
2616
2612
  c.params[name] += " ";
2617
2613
  }
2618
2614
  c.params[name] += l.substr(pos);
2619
- lines.erase(lines.begin() + i);
2615
+ i = lines.erase(i);
2620
2616
  continue;
2621
2617
  }
2622
2618
  else if(inException)
@@ -2627,7 +2623,7 @@ Slice::Python::CodeVisitor::parseOpComment(const string& comment, OpComment& c)
2627
2623
  c.exceptions[name] += " ";
2628
2624
  }
2629
2625
  c.exceptions[name] += l.substr(pos);
2630
- lines.erase(lines.begin() + i);
2626
+ i = lines.erase(i);
2631
2627
  continue;
2632
2628
  }
2633
2629
  else if(inReturn)
@@ -2637,7 +2633,7 @@ Slice::Python::CodeVisitor::parseOpComment(const string& comment, OpComment& c)
2637
2633
  c.returns += " ";
2638
2634
  }
2639
2635
  c.returns += l.substr(pos);
2640
- lines.erase(lines.begin() + i);
2636
+ i = lines.erase(i);
2641
2637
  continue;
2642
2638
  }
2643
2639
  }
@@ -2849,16 +2845,16 @@ Slice::Python::CodeVisitor::writeDocstring(const OperationPtr& op, DocstringMode
2849
2845
  }
2850
2846
 
2851
2847
  string
2852
- Slice::Python::getPackageDirectory(const string& file, const UnitPtr& unit)
2848
+ Slice::Python::getPackageDirectory(const string& file, const UnitPtr& ut)
2853
2849
  {
2854
2850
  //
2855
2851
  // file must be a fully-qualified path name.
2856
2852
  //
2857
2853
 
2858
2854
  //
2859
- // Check if the file contains the python:pkgdir global metadata.
2855
+ // Check if the file contains the python:pkgdir file metadata.
2860
2856
  //
2861
- DefinitionContextPtr dc = unit->findDefinitionContext(file);
2857
+ DefinitionContextPtr dc = ut->findDefinitionContext(file);
2862
2858
  assert(dc);
2863
2859
  const string prefix = "python:pkgdir:";
2864
2860
  string pkgdir = dc->findMetaData(prefix);
@@ -2874,16 +2870,16 @@ Slice::Python::getPackageDirectory(const string& file, const UnitPtr& unit)
2874
2870
  }
2875
2871
 
2876
2872
  string
2877
- Slice::Python::getImportFileName(const string& file, const UnitPtr& unit, const vector<string>& includePaths)
2873
+ Slice::Python::getImportFileName(const string& file, const UnitPtr& ut, const vector<string>& includePaths)
2878
2874
  {
2879
2875
  //
2880
2876
  // The file and includePaths arguments must be fully-qualified path names.
2881
2877
  //
2882
2878
 
2883
2879
  //
2884
- // Check if the file contains the python:pkgdir global metadata.
2880
+ // Check if the file contains the python:pkgdir file metadata.
2885
2881
  //
2886
- string pkgdir = getPackageDirectory(file, unit);
2882
+ string pkgdir = getPackageDirectory(file, ut);
2887
2883
  if(!pkgdir.empty())
2888
2884
  {
2889
2885
  //
@@ -3003,7 +2999,11 @@ Slice::Python::fixIdent(const string& ident)
3003
2999
  return lookupKwd(ident);
3004
3000
  }
3005
3001
  vector<string> ids = splitScopedName(ident);
3002
+ #ifdef ICE_CPP11_COMPILER
3003
+ transform(ids.begin(), ids.end(), ids.begin(), [](const string& id) -> string { return lookupKwd(id); });
3004
+ #else
3006
3005
  transform(ids.begin(), ids.end(), ids.begin(), ptr_fun(lookupKwd));
3006
+ #endif
3007
3007
  stringstream result;
3008
3008
  for(vector<string>::const_iterator i = ids.begin(); i != ids.end(); ++i)
3009
3009
  {
@@ -3038,7 +3038,7 @@ Slice::Python::getPackageMetadata(const ContainedPtr& cont)
3038
3038
  assert(m);
3039
3039
 
3040
3040
  //
3041
- // The python:package metadata can be defined as global metadata or applied to a top-level module.
3041
+ // The python:package metadata can be defined as file metadata or applied to a top-level module.
3042
3042
  // We check for the metadata at the top-level module first and then fall back to the global scope.
3043
3043
  //
3044
3044
  static const string prefix = "python:package:";
@@ -3046,11 +3046,11 @@ Slice::Python::getPackageMetadata(const ContainedPtr& cont)
3046
3046
  string q;
3047
3047
  if(!m->findMetaData(prefix, q))
3048
3048
  {
3049
- UnitPtr unit = cont->unit();
3049
+ UnitPtr ut = cont->unit();
3050
3050
  string file = cont->file();
3051
3051
  assert(!file.empty());
3052
3052
 
3053
- DefinitionContextPtr dc = unit->findDefinitionContext(file);
3053
+ DefinitionContextPtr dc = ut->findDefinitionContext(file);
3054
3054
  assert(dc);
3055
3055
  q = dc->findMetaData(prefix);
3056
3056
  }
@@ -3088,14 +3088,9 @@ void
3088
3088
  Slice::Python::printHeader(IceUtilInternal::Output& out)
3089
3089
  {
3090
3090
  static const char* header =
3091
- "# **********************************************************************\n"
3092
- "#\n"
3093
- "# Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.\n"
3094
3091
  "#\n"
3095
- "# This copy of Ice is licensed to you under the terms described in the\n"
3096
- "# ICE_LICENSE file included in this distribution.\n"
3092
+ "# Copyright (c) ZeroC, Inc. All rights reserved.\n"
3097
3093
  "#\n"
3098
- "# **********************************************************************\n"
3099
3094
  ;
3100
3095
 
3101
3096
  out << header;
@@ -3110,7 +3105,7 @@ Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
3110
3105
  static const string prefix = "python:";
3111
3106
 
3112
3107
  //
3113
- // Validate global metadata in the top-level file and all included files.
3108
+ // Validate file metadata in the top-level file and all included files.
3114
3109
  //
3115
3110
  StringList files = p->allFiles();
3116
3111
  for(StringList::iterator q = files.begin(); q != files.end(); ++q)
@@ -3135,7 +3130,7 @@ Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
3135
3130
  continue;
3136
3131
  }
3137
3132
 
3138
- dc->warning(InvalidMetaData, file, "", "ignoring invalid global metadata `" + s + "'");
3133
+ dc->warning(InvalidMetaData, file, "", "ignoring invalid file metadata `" + s + "'");
3139
3134
  globalMetaData.remove(s);
3140
3135
  }
3141
3136
  }
@@ -3232,8 +3227,8 @@ Slice::Python::MetaDataVisitor::visitSequence(const SequencePtr& p)
3232
3227
  const string file = p->file();
3233
3228
  const string line = p->line();
3234
3229
  StringList protobufMetaData;
3235
- const UnitPtr unit = p->unit();
3236
- const DefinitionContextPtr dc = unit->findDefinitionContext(file);
3230
+ const UnitPtr ut = p->unit();
3231
+ const DefinitionContextPtr dc = ut->findDefinitionContext(file);
3237
3232
  assert(dc);
3238
3233
 
3239
3234
  for(StringList::const_iterator q = metaData.begin(); q != metaData.end(); )
@@ -3285,8 +3280,8 @@ StringList
3285
3280
  Slice::Python::MetaDataVisitor::validateSequence(const string& file, const string& line,
3286
3281
  const TypePtr& type, const StringList& metaData)
3287
3282
  {
3288
- const UnitPtr unit = type->unit();
3289
- const DefinitionContextPtr dc = unit->findDefinitionContext(file);
3283
+ const UnitPtr ut = type->unit();
3284
+ const DefinitionContextPtr dc = ut->findDefinitionContext(file);
3290
3285
  assert(dc);
3291
3286
 
3292
3287
  static const string prefix = "python:";
@@ -3296,17 +3291,53 @@ Slice::Python::MetaDataVisitor::validateSequence(const string& file, const strin
3296
3291
  string s = *p++;
3297
3292
  if(s.find(prefix) == 0)
3298
3293
  {
3299
- string::size_type pos = s.find(':', prefix.size());
3300
- if(pos != string::npos && s.substr(prefix.size(), pos - prefix.size()) == "seq")
3294
+ SequencePtr seq = SequencePtr::dynamicCast(type);
3295
+ if(seq)
3301
3296
  {
3302
3297
  static const string seqPrefix = "python:seq:";
3303
- string arg = s.substr(seqPrefix.size(), pos - seqPrefix.size());
3304
- if(SequencePtr::dynamicCast(type))
3298
+ if(s.find(seqPrefix) == 0)
3299
+ {
3300
+ string arg = s.substr(seqPrefix.size());
3301
+ if(arg == "tuple" || arg == "list" || arg == "default")
3302
+ {
3303
+ continue;
3304
+ }
3305
+ }
3306
+ else if(s.size() > prefix.size())
3305
3307
  {
3308
+ string arg = s.substr(prefix.size());
3306
3309
  if(arg == "tuple" || arg == "list" || arg == "default")
3307
3310
  {
3308
3311
  continue;
3309
3312
  }
3313
+ else if(arg == "array.array" || arg == "numpy.ndarray" || arg.find("memoryview:") == 0)
3314
+ {
3315
+ //
3316
+ // The memoryview sequence metadata is only valid for integral builtin
3317
+ // types excluding strings.
3318
+ //
3319
+ BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type());
3320
+ if(builtin)
3321
+ {
3322
+ switch(builtin->kind())
3323
+ {
3324
+ case Builtin::KindBool:
3325
+ case Builtin::KindByte:
3326
+ case Builtin::KindShort:
3327
+ case Builtin::KindInt:
3328
+ case Builtin::KindLong:
3329
+ case Builtin::KindFloat:
3330
+ case Builtin::KindDouble:
3331
+ {
3332
+ continue;
3333
+ }
3334
+ default:
3335
+ {
3336
+ break;
3337
+ }
3338
+ }
3339
+ }
3340
+ }
3310
3341
  }
3311
3342
  }
3312
3343
  dc->warning(InvalidMetaData, file, line, "ignoring invalid metadata `" + s + "'");
@@ -3322,8 +3353,8 @@ Slice::Python::MetaDataVisitor::reject(const ContainedPtr& cont)
3322
3353
  StringList localMetaData = cont->getMetaData();
3323
3354
  static const string prefix = "python:";
3324
3355
 
3325
- const UnitPtr unit = cont->unit();
3326
- const DefinitionContextPtr dc = unit->findDefinitionContext(cont->file());
3356
+ const UnitPtr ut = cont->unit();
3357
+ const DefinitionContextPtr dc = ut->findDefinitionContext(cont->file());
3327
3358
  assert(dc);
3328
3359
 
3329
3360
  for(StringList::const_iterator p = localMetaData.begin(); p != localMetaData.end();)