zeroc-ice 3.7.0 → 3.7.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (691) hide show
  1. checksums.yaml +5 -5
  2. data/ICE_LICENSE +1 -1
  3. data/bin/slice2rb +1 -6
  4. data/ext/Communicator.cpp +78 -10
  5. data/ext/Communicator.h +1 -6
  6. data/ext/Config.h +35 -6
  7. data/ext/Connection.cpp +22 -11
  8. data/ext/Connection.h +4 -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 +90 -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 +92 -60
  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 +2 -7
  29. data/ext/ValueFactoryManager.h +2 -7
  30. data/ext/extconf.rb +5 -3
  31. data/ext/ice/cpp/include/Ice/Application.h +234 -81
  32. data/ext/ice/cpp/include/Ice/AsyncResult.h +77 -6
  33. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -6
  34. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +35 -7
  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 +43 -6
  38. data/ext/ice/cpp/include/Ice/Comparable.h +81 -6
  39. data/ext/ice/cpp/include/Ice/Config.h +12 -6
  40. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +97 -6
  41. data/ext/ice/cpp/include/Ice/ConnectionIF.h +3 -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 +17 -7
  45. data/ext/ice/cpp/include/Ice/Dispatcher.h +22 -7
  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 +57 -20
  49. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +11 -6
  50. data/ext/ice/cpp/include/Ice/FactoryTable.h +12 -7
  51. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +2 -7
  52. data/ext/ice/cpp/include/Ice/Format.h +13 -19
  53. data/ext/ice/cpp/include/Ice/Functional.h +6 -6
  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 +47 -18
  58. data/ext/ice/cpp/include/Ice/Incoming.h +27 -9
  59. data/ext/ice/cpp/include/Ice/IncomingAsync.h +47 -9
  60. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -6
  61. data/ext/ice/cpp/include/Ice/Initialize.h +775 -103
  62. data/ext/ice/cpp/include/Ice/InputStream.h +642 -122
  63. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -6
  64. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +17 -6
  65. data/ext/ice/cpp/include/Ice/LocalObject.h +5 -6
  66. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -6
  67. data/ext/ice/cpp/include/Ice/LoggerUtil.h +37 -11
  68. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +11 -7
  69. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +3 -6
  70. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +18 -7
  71. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +46 -28
  72. data/ext/ice/cpp/include/Ice/Object.h +338 -52
  73. data/ext/ice/cpp/include/Ice/ObjectF.h +5 -6
  74. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -6
  75. data/ext/ice/cpp/include/Ice/Optional.h +42 -12
  76. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +32 -8
  77. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -6
  78. data/ext/ice/cpp/include/Ice/OutputStream.h +441 -102
  79. data/ext/ice/cpp/include/Ice/Protocol.h +31 -6
  80. data/ext/ice/cpp/include/Ice/Proxy.h +2288 -207
  81. data/ext/ice/cpp/include/Ice/ProxyF.h +3 -6
  82. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -6
  83. data/ext/ice/cpp/include/Ice/ProxyHandle.h +10 -6
  84. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -6
  85. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +67 -14
  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 +267 -143
  91. data/ext/ice/cpp/include/Ice/SliceChecksums.h +5 -6
  92. data/ext/ice/cpp/include/Ice/SlicedData.h +80 -38
  93. data/ext/ice/cpp/include/Ice/SlicedDataF.h +4 -6
  94. data/ext/ice/cpp/include/Ice/StreamHelpers.h +325 -122
  95. data/ext/ice/cpp/include/Ice/StringConverter.h +32 -6
  96. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -6
  97. data/ext/ice/cpp/include/Ice/UUID.h +2 -6
  98. data/ext/ice/cpp/include/Ice/UniquePtr.h +2 -7
  99. data/ext/ice/cpp/include/Ice/UniqueRef.h +6 -7
  100. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +6 -6
  101. data/ext/ice/cpp/include/Ice/Value.h +41 -6
  102. data/ext/ice/cpp/include/Ice/ValueF.h +3 -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 +75 -58
  106. data/ext/ice/cpp/include/IceSSL/Plugin.h +323 -223
  107. data/ext/ice/cpp/include/IceSSL/SChannel.h +41 -35
  108. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +39 -33
  109. data/ext/ice/cpp/include/IceSSL/UWP.h +33 -29
  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 +35 -14
  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 +52 -36
  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 +3 -13
  127. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -6
  128. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -6
  129. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -6
  130. data/ext/ice/cpp/include/IceUtil/Optional.h +103 -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 +12 -9
  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 +107 -92
  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 +5 -6
  148. data/ext/ice/cpp/include/IceUtil/UUID.h +5 -6
  149. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -6
  150. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +81 -26
  151. data/ext/ice/cpp/include/generated/Ice/Communicator.h +928 -136
  152. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +14 -11
  153. data/ext/ice/cpp/include/generated/Ice/Connection.h +968 -180
  154. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +22 -15
  155. data/ext/ice/cpp/include/generated/Ice/Current.h +166 -9
  156. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +476 -115
  157. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +42 -23
  158. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +30 -9
  159. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +12 -11
  160. data/ext/ice/cpp/include/generated/Ice/Identity.h +56 -13
  161. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +151 -34
  162. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +14 -11
  163. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +630 -89
  164. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +20 -13
  165. data/ext/ice/cpp/include/generated/Ice/LocalException.h +5009 -770
  166. data/ext/ice/cpp/include/generated/Ice/Locator.h +2255 -441
  167. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +32 -19
  168. data/ext/ice/cpp/include/generated/Ice/Logger.h +105 -32
  169. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +14 -11
  170. data/ext/ice/cpp/include/generated/Ice/Metrics.h +2539 -471
  171. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +1005 -132
  172. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +14 -11
  173. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +73 -18
  174. data/ext/ice/cpp/include/generated/Ice/Plugin.h +143 -34
  175. data/ext/ice/cpp/include/generated/Ice/PluginF.h +18 -13
  176. data/ext/ice/cpp/include/generated/Ice/Process.h +514 -79
  177. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +21 -14
  178. data/ext/ice/cpp/include/generated/Ice/Properties.h +307 -64
  179. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +738 -127
  180. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +25 -16
  181. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1524 -284
  182. data/ext/ice/cpp/include/generated/Ice/Router.h +1007 -201
  183. data/ext/ice/cpp/include/generated/Ice/RouterF.h +21 -14
  184. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +175 -24
  185. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +14 -11
  186. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +14 -9
  187. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +178 -29
  188. data/ext/ice/cpp/include/generated/Ice/Version.h +32 -9
  189. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +72 -21
  190. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +14 -11
  191. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +40 -15
  192. data/ext/ice/cpp/src/Ice/ACM.cpp +21 -14
  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 +7 -10
  210. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +4 -9
  211. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +56 -22
  212. data/ext/ice/cpp/src/Ice/CommunicatorI.h +15 -16
  213. data/ext/ice/cpp/src/Ice/Cond.cpp +1 -6
  214. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +11 -11
  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 +28 -17
  218. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +4 -9
  219. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +167 -52
  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 +78 -60
  223. data/ext/ice/cpp/src/Ice/ConnectionI.h +10 -13
  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 +5 -12
  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 +25 -16
  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 +7 -18
  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 +2 -7
  245. data/ext/ice/cpp/src/Ice/EndpointI.h +5 -10
  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 +37 -59
  260. data/ext/ice/cpp/src/Ice/IPEndpointI.h +5 -10
  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 +7 -10
  265. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +4 -9
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +3 -20
  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 +15 -26
  272. data/ext/ice/cpp/src/Ice/InputStream.cpp +45 -77
  273. data/ext/ice/cpp/src/Ice/Instance.cpp +70 -46
  274. data/ext/ice/cpp/src/Ice/Instance.h +3 -6
  275. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +34 -19
  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 +280 -285
  280. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -6
  281. data/ext/ice/cpp/src/Ice/Locator.cpp +274 -166
  282. data/ext/ice/cpp/src/Ice/LocatorF.cpp +4 -9
  283. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +28 -30
  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 +7 -10
  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 +296 -113
  294. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +10 -15
  295. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -6
  296. data/ext/ice/cpp/src/Ice/Network.cpp +252 -271
  297. data/ext/ice/cpp/src/Ice/Network.h +6 -20
  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 +16 -17
  305. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +7 -10
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +4 -9
  307. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +53 -24
  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 +137 -156
  311. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +15 -16
  312. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +7 -10
  313. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -6
  314. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +29 -51
  315. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +2 -7
  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 +10 -11
  319. data/ext/ice/cpp/src/Ice/PluginF.cpp +4 -9
  320. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +15 -39
  321. data/ext/ice/cpp/src/Ice/PluginManagerI.h +3 -8
  322. data/ext/ice/cpp/src/Ice/Process.cpp +66 -42
  323. data/ext/ice/cpp/src/Ice/ProcessF.cpp +4 -9
  324. data/ext/ice/cpp/src/Ice/Properties.cpp +7 -10
  325. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +84 -54
  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 +25 -35
  330. data/ext/ice/cpp/src/Ice/PropertiesI.h +10 -15
  331. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +45 -8
  332. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -7
  333. data/ext/ice/cpp/src/Ice/Protocol.cpp +5 -18
  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 +54 -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 +116 -38
  344. data/ext/ice/cpp/src/Ice/Reference.h +13 -7
  345. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +52 -98
  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 +194 -113
  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 +160 -87
  362. data/ext/ice/cpp/src/Ice/RouterF.cpp +4 -9
  363. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +8 -35
  364. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -8
  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 +76 -49
  368. data/ext/ice/cpp/src/Ice/Selector.h +1 -6
  369. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +7 -10
  370. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +4 -9
  371. data/ext/ice/cpp/src/Ice/ServantManager.cpp +21 -42
  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 +46 -69
  378. data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -6
  379. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +10 -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 +13 -19
  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 +13 -16
  390. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +2 -7
  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 +79 -19
  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 +30 -33
  408. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -7
  409. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +49 -79
  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 +10 -11
  413. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +3 -12
  414. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +2 -7
  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 +4 -10
  422. data/ext/ice/cpp/src/Ice/WSEndpoint.h +2 -7
  423. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +25 -30
  424. data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -7
  425. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +86 -33
  426. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +1083 -129
  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 +71 -30
  434. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +640 -79
  435. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +1 -6
  436. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +122 -25
  437. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +2 -9
  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 +7 -10
  442. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +4 -9
  443. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +2 -9
  444. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -6
  445. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +9 -14
  446. data/ext/ice/cpp/src/IceSSL/EndpointI.h +3 -8
  447. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +7 -10
  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 +11 -19
  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 +190 -206
  457. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +2 -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 +1 -6
  461. data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -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 +71 -62
  470. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +7 -6
  471. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +26 -28
  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 +47 -27
  480. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +6 -7
  481. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +41 -34
  482. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +5 -6
  483. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +4 -10
  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 +6 -11
  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 -11
  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 +10 -17
  511. data/ext/ice/cpp/src/IceUtil/UUID.cpp +8 -13
  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 +178 -170
  516. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +8 -12
  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 +424 -438
  522. data/ext/ice/cpp/src/Slice/Grammar.h +7 -7
  523. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -7
  524. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +195 -122
  525. data/ext/ice/cpp/src/Slice/JavaUtil.h +12 -12
  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 +6 -6
  530. data/ext/ice/cpp/src/Slice/PHPUtil.h +1 -6
  531. data/ext/ice/cpp/src/Slice/Parser.cpp +535 -266
  532. data/ext/ice/cpp/src/Slice/Parser.h +72 -12
  533. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +26 -17
  534. data/ext/ice/cpp/src/Slice/Preprocessor.h +2 -7
  535. data/ext/ice/cpp/src/Slice/Python.cpp +28 -42
  536. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +137 -53
  537. data/ext/ice/cpp/src/Slice/PythonUtil.h +2 -7
  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 +296 -217
  542. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +2 -8
  543. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +109 -27
  544. data/ext/ice/cpp/src/Slice/Util.h +5 -9
  545. data/ext/ice/mcpp/Makefile +2 -5
  546. data/ice.gemspec +3 -5
  547. data/lib/Glacier2.rb +1 -6
  548. data/lib/Glacier2/Metrics.rb +3 -8
  549. data/lib/Glacier2/PermissionsVerifier.rb +3 -8
  550. data/lib/Glacier2/PermissionsVerifierF.rb +3 -8
  551. data/lib/Glacier2/Router.rb +3 -8
  552. data/lib/Glacier2/RouterF.rb +3 -8
  553. data/lib/Glacier2/SSLInfo.rb +3 -8
  554. data/lib/Glacier2/Session.rb +3 -8
  555. data/lib/Ice.rb +2 -7
  556. data/lib/Ice/BuiltinSequences.rb +3 -8
  557. data/lib/Ice/Communicator.rb +3 -8
  558. data/lib/Ice/CommunicatorF.rb +3 -8
  559. data/lib/Ice/Connection.rb +3 -8
  560. data/lib/Ice/ConnectionF.rb +3 -8
  561. data/lib/Ice/Current.rb +3 -8
  562. data/lib/Ice/Endpoint.rb +3 -8
  563. data/lib/Ice/EndpointF.rb +3 -8
  564. data/lib/Ice/EndpointTypes.rb +3 -8
  565. data/lib/Ice/FacetMap.rb +3 -8
  566. data/lib/Ice/Identity.rb +3 -8
  567. data/lib/Ice/ImplicitContext.rb +3 -8
  568. data/lib/Ice/ImplicitContextF.rb +3 -8
  569. data/lib/Ice/Instrumentation.rb +3 -8
  570. data/lib/Ice/InstrumentationF.rb +3 -8
  571. data/lib/Ice/LocalException.rb +3 -8
  572. data/lib/Ice/Locator.rb +3 -8
  573. data/lib/Ice/LocatorF.rb +3 -8
  574. data/lib/Ice/Logger.rb +3 -8
  575. data/lib/Ice/LoggerF.rb +3 -8
  576. data/lib/Ice/Metrics.rb +3 -8
  577. data/lib/Ice/ObjectAdapter.rb +3 -8
  578. data/lib/Ice/ObjectAdapterF.rb +3 -8
  579. data/lib/Ice/ObjectFactory.rb +3 -8
  580. data/lib/Ice/Plugin.rb +3 -8
  581. data/lib/Ice/PluginF.rb +3 -8
  582. data/lib/Ice/Process.rb +3 -8
  583. data/lib/Ice/ProcessF.rb +3 -8
  584. data/lib/Ice/Properties.rb +3 -8
  585. data/lib/Ice/PropertiesAdmin.rb +3 -8
  586. data/lib/Ice/PropertiesF.rb +3 -8
  587. data/lib/Ice/RemoteLogger.rb +3 -8
  588. data/lib/Ice/Router.rb +3 -8
  589. data/lib/Ice/RouterF.rb +3 -8
  590. data/lib/Ice/ServantLocator.rb +3 -8
  591. data/lib/Ice/ServantLocatorF.rb +3 -8
  592. data/lib/Ice/SliceChecksumDict.rb +3 -8
  593. data/lib/Ice/ValueFactory.rb +3 -8
  594. data/lib/Ice/Version.rb +3 -8
  595. data/lib/IceBox.rb +1 -6
  596. data/lib/IceBox/IceBox.rb +3 -8
  597. data/lib/IceGrid.rb +1 -6
  598. data/lib/IceGrid/Admin.rb +3 -8
  599. data/lib/IceGrid/Descriptor.rb +3 -8
  600. data/lib/IceGrid/Exception.rb +3 -8
  601. data/lib/IceGrid/FileParser.rb +3 -8
  602. data/lib/IceGrid/PluginFacade.rb +3 -8
  603. data/lib/IceGrid/Registry.rb +3 -8
  604. data/lib/IceGrid/Session.rb +3 -8
  605. data/lib/IceGrid/UserAccountMapper.rb +3 -8
  606. data/lib/IcePatch2.rb +1 -6
  607. data/lib/IcePatch2/FileInfo.rb +3 -8
  608. data/lib/IcePatch2/FileServer.rb +3 -8
  609. data/lib/IceStorm.rb +1 -6
  610. data/lib/IceStorm/IceStorm.rb +3 -8
  611. data/lib/IceStorm/Metrics.rb +3 -8
  612. data/slice/Glacier2/Metrics.ice +14 -8
  613. data/slice/Glacier2/PermissionsVerifier.ice +11 -7
  614. data/slice/Glacier2/PermissionsVerifierF.ice +11 -7
  615. data/slice/Glacier2/Router.ice +12 -8
  616. data/slice/Glacier2/RouterF.ice +11 -7
  617. data/slice/Glacier2/SSLInfo.ice +11 -7
  618. data/slice/Glacier2/Session.ice +11 -7
  619. data/slice/Ice/BuiltinSequences.ice +13 -7
  620. data/slice/Ice/Communicator.ice +143 -102
  621. data/slice/Ice/CommunicatorF.ice +13 -7
  622. data/slice/Ice/Connection.ice +65 -29
  623. data/slice/Ice/ConnectionF.ice +13 -7
  624. data/slice/Ice/Current.ice +31 -26
  625. data/slice/Ice/Endpoint.ice +24 -21
  626. data/slice/Ice/EndpointF.ice +14 -8
  627. data/slice/Ice/EndpointTypes.ice +15 -9
  628. data/slice/Ice/FacetMap.ice +14 -8
  629. data/slice/Ice/Identity.ice +13 -7
  630. data/slice/Ice/ImplicitContext.ice +31 -25
  631. data/slice/Ice/ImplicitContextF.ice +12 -7
  632. data/slice/Ice/Instrumentation.ice +19 -13
  633. data/slice/Ice/InstrumentationF.ice +13 -7
  634. data/slice/Ice/LocalException.ice +35 -29
  635. data/slice/Ice/Locator.ice +14 -8
  636. data/slice/Ice/LocatorF.ice +13 -7
  637. data/slice/Ice/Logger.ice +19 -13
  638. data/slice/Ice/LoggerF.ice +13 -7
  639. data/slice/Ice/Metrics.ice +26 -18
  640. data/slice/Ice/ObjectAdapter.ice +63 -45
  641. data/slice/Ice/ObjectAdapterF.ice +13 -7
  642. data/slice/Ice/ObjectFactory.ice +20 -12
  643. data/slice/Ice/Plugin.ice +19 -10
  644. data/slice/Ice/PluginF.ice +17 -7
  645. data/slice/Ice/Process.ice +13 -7
  646. data/slice/Ice/ProcessF.ice +13 -7
  647. data/slice/Ice/Properties.ice +35 -24
  648. data/slice/Ice/PropertiesAdmin.ice +13 -7
  649. data/slice/Ice/PropertiesF.ice +13 -7
  650. data/slice/Ice/RemoteLogger.ice +23 -28
  651. data/slice/Ice/Router.ice +14 -8
  652. data/slice/Ice/RouterF.ice +13 -7
  653. data/slice/Ice/ServantLocator.ice +31 -23
  654. data/slice/Ice/ServantLocatorF.ice +13 -7
  655. data/slice/Ice/SliceChecksumDict.ice +13 -7
  656. data/slice/Ice/ValueFactory.ice +31 -26
  657. data/slice/Ice/Version.ice +13 -7
  658. data/slice/IceBT/ConnectionInfo.ice +12 -7
  659. data/slice/IceBT/EndpointInfo.ice +13 -8
  660. data/slice/IceBT/Types.ice +12 -7
  661. data/slice/IceBox/IceBox.ice +30 -11
  662. data/slice/IceDiscovery/IceDiscovery.ice +68 -7
  663. data/slice/IceGrid/Admin.ice +41 -35
  664. data/slice/IceGrid/Descriptor.ice +15 -10
  665. data/slice/IceGrid/Exception.ice +15 -10
  666. data/slice/IceGrid/FileParser.ice +14 -8
  667. data/slice/IceGrid/PluginFacade.ice +17 -11
  668. data/slice/IceGrid/Registry.ice +13 -7
  669. data/slice/IceGrid/Session.ice +18 -12
  670. data/slice/IceGrid/UserAccountMapper.ice +16 -10
  671. data/slice/IceIAP/ConnectionInfo.ice +11 -8
  672. data/slice/IceIAP/EndpointInfo.ice +11 -8
  673. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +12 -7
  674. data/slice/IcePatch2/FileInfo.ice +12 -7
  675. data/slice/IcePatch2/FileServer.ice +13 -8
  676. data/slice/IceSSL/ConnectionInfo.ice +16 -9
  677. data/slice/IceSSL/ConnectionInfoF.ice +14 -8
  678. data/slice/IceSSL/EndpointInfo.ice +14 -8
  679. data/slice/IceStorm/IceStorm.ice +20 -15
  680. data/slice/IceStorm/Metrics.ice +12 -8
  681. metadata +7 -13
  682. data/BZIP2_LICENSE +0 -42
  683. data/ext/ice/bzip2/blocksort.c +0 -1094
  684. data/ext/ice/bzip2/bzlib.c +0 -1572
  685. data/ext/ice/bzip2/bzlib.h +0 -282
  686. data/ext/ice/bzip2/bzlib_private.h +0 -509
  687. data/ext/ice/bzip2/compress.c +0 -672
  688. data/ext/ice/bzip2/crctable.c +0 -104
  689. data/ext/ice/bzip2/decompress.c +0 -646
  690. data/ext/ice/bzip2/huffman.c +0 -205
  691. data/ext/ice/bzip2/randtable.c +0 -84
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2017 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_RUBY_UTIL_H
11
6
  #define SLICE_RUBY_UTIL_H
@@ -54,7 +54,7 @@
54
54
  #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
55
55
 
56
56
  /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
57
- * if you want the limit (max/min) macros for int types.
57
+ * if you want the limit (max/min) macros for int types.
58
58
  */
59
59
  #ifndef __STDC_LIMIT_MACROS
60
60
  #define __STDC_LIMIT_MACROS 1
@@ -71,7 +71,7 @@ typedef uint32_t flex_uint32_t;
71
71
  typedef signed char flex_int8_t;
72
72
  typedef short int flex_int16_t;
73
73
  typedef int flex_int32_t;
74
- typedef unsigned char flex_uint8_t;
74
+ typedef unsigned char flex_uint8_t;
75
75
  typedef unsigned short int flex_uint16_t;
76
76
  typedef unsigned int flex_uint32_t;
77
77
 
@@ -188,7 +188,7 @@ extern FILE *slice_in, *slice_out;
188
188
  #define EOB_ACT_LAST_MATCH 2
189
189
 
190
190
  #define YY_LESS_LINENO(n)
191
-
191
+
192
192
  /* Return all but the first "n" matched characters back to the input stream. */
193
193
  #define yyless(n) \
194
194
  do \
@@ -245,7 +245,7 @@ struct yy_buffer_state
245
245
 
246
246
  int yy_bs_lineno; /**< The line count. */
247
247
  int yy_bs_column; /**< The column count. */
248
-
248
+
249
249
  /* Whether to try to fill the input buffer when we reach the
250
250
  * end of it.
251
251
  */
@@ -384,8 +384,8 @@ static void yy_fatal_error (yyconst char msg[] );
384
384
  *yy_cp = '\0'; \
385
385
  (yy_c_buf_p) = yy_cp;
386
386
 
387
- #define YY_NUM_RULES 20
388
- #define YY_END_OF_BUFFER 21
387
+ #define YY_NUM_RULES 19
388
+ #define YY_END_OF_BUFFER 20
389
389
  /* This struct is not used in this scanner,
390
390
  but its presence is necessary. */
391
391
  struct yy_trans_info
@@ -393,16 +393,16 @@ struct yy_trans_info
393
393
  flex_int32_t yy_verify;
394
394
  flex_int32_t yy_nxt;
395
395
  };
396
- static yyconst flex_int16_t yy_accept[73] =
396
+ static yyconst flex_int16_t yy_accept[76] =
397
397
  { 0,
398
- 0, 0, 0, 0, 0, 0, 21, 19, 17, 17,
399
- 14, 19, 19, 19, 15, 15, 19, 13, 8, 19,
400
- 9, 19, 19, 0, 15, 15, 16, 6, 5, 16,
401
- 15, 0, 0, 7, 0, 12, 13, 10, 13, 11,
402
- 0, 0, 0, 0, 0, 16, 0, 16, 15, 0,
403
- 1, 0, 18, 0, 16, 0, 0, 0, 0, 0,
404
- 0, 2, 0, 0, 0, 3, 0, 0, 0, 0,
405
- 4, 0
398
+ 0, 0, 0, 0, 0, 0, 20, 18, 16, 16,
399
+ 13, 18, 18, 18, 14, 14, 18, 12, 7, 18,
400
+ 8, 18, 18, 0, 14, 14, 15, 6, 5, 15,
401
+ 14, 0, 0, 0, 0, 11, 12, 0, 12, 0,
402
+ 9, 12, 10, 0, 0, 0, 0, 0, 15, 0,
403
+ 15, 14, 0, 1, 0, 17, 0, 15, 0, 0,
404
+ 0, 0, 0, 0, 2, 0, 0, 0, 3, 0,
405
+ 0, 0, 0, 4, 0
406
406
  } ;
407
407
 
408
408
  static yyconst flex_int32_t yy_ec[256] =
@@ -439,94 +439,94 @@ static yyconst flex_int32_t yy_ec[256] =
439
439
 
440
440
  static yyconst flex_int32_t yy_meta[32] =
441
441
  { 0,
442
- 1, 2, 3, 4, 1, 1, 4, 1, 5, 5,
443
- 1, 1, 6, 6, 6, 1, 7, 7, 7, 8,
444
- 1, 1, 1, 7, 8, 9, 8, 8, 1, 1,
442
+ 1, 2, 3, 1, 1, 1, 1, 1, 4, 4,
443
+ 1, 1, 5, 5, 5, 1, 6, 6, 6, 7,
444
+ 1, 1, 1, 6, 7, 8, 7, 7, 1, 1,
445
445
  1
446
446
  } ;
447
447
 
448
- static yyconst flex_int16_t yy_base[85] =
448
+ static yyconst flex_int16_t yy_base[87] =
449
449
  { 0,
450
- 0, 185, 0, 26, 0, 184, 189, 192, 192, 192,
451
- 192, 22, 25, 33, 47, 35, 153, 40, 147, 0,
452
- 121, 44, 114, 37, 0, 0, 63, 192, 192, 0,
453
- 107, 44, 0, 192, 65, 192, 81, 192, 0, 192,
454
- 53, 71, 109, 102, 80, 192, 78, 81, 0, 96,
455
- 192, 104, 192, 89, 92, 125, 97, 111, 83, 78,
456
- 63, 192, 95, 110, 112, 192, 59, 54, 53, 31,
457
- 192, 192, 116, 119, 127, 132, 133, 139, 141, 147,
458
- 156, 164, 170, 179
450
+ 0, 140, 0, 26, 0, 139, 137, 197, 197, 197,
451
+ 197, 22, 25, 33, 47, 35, 120, 74, 114, 0,
452
+ 111, 40, 104, 37, 0, 0, 90, 197, 197, 0,
453
+ 104, 34, 0, 97, 52, 197, 0, 99, 0, 0,
454
+ 197, 0, 197, 44, 65, 88, 77, 63, 197, 69,
455
+ 97, 0, 115, 197, 79, 197, 108, 111, 92, 71,
456
+ 81, 82, 72, 66, 197, 125, 77, 126, 197, 59,
457
+ 48, 44, 31, 197, 197, 135, 142, 147, 148, 153,
458
+ 155, 160, 168, 175, 180, 188
459
459
  } ;
460
460
 
461
- static yyconst flex_int16_t yy_def[85] =
461
+ static yyconst flex_int16_t yy_def[87] =
462
462
  { 0,
463
- 72, 1, 1, 1, 1, 1, 72, 72, 72, 72,
464
- 72, 72, 72, 72, 72, 15, 72, 73, 72, 74,
465
- 72, 75, 72, 72, 15, 16, 72, 72, 72, 27,
466
- 15, 76, 77, 72, 72, 72, 73, 72, 37, 72,
467
- 75, 78, 72, 72, 79, 72, 72, 72, 77, 72,
468
- 72, 72, 72, 72, 72, 80, 72, 80, 81, 72,
469
- 81, 72, 72, 82, 72, 72, 83, 83, 84, 84,
470
- 72, 0, 72, 72, 72, 72, 72, 72, 72, 72,
471
- 72, 72, 72, 72
463
+ 75, 1, 1, 1, 1, 1, 75, 75, 75, 75,
464
+ 75, 75, 75, 75, 75, 15, 75, 75, 75, 76,
465
+ 75, 77, 75, 75, 15, 16, 75, 75, 75, 27,
466
+ 15, 78, 79, 76, 75, 75, 18, 75, 18, 76,
467
+ 75, 18, 75, 77, 80, 75, 75, 81, 75, 75,
468
+ 75, 79, 75, 75, 75, 75, 75, 75, 82, 75,
469
+ 82, 83, 75, 83, 75, 75, 84, 75, 75, 85,
470
+ 85, 86, 86, 75, 0, 75, 75, 75, 75, 75,
471
+ 75, 75, 75, 75, 75, 75
472
472
  } ;
473
473
 
474
- static yyconst flex_int16_t yy_nxt[224] =
474
+ static yyconst flex_int16_t yy_nxt[229] =
475
475
  { 0,
476
476
  8, 9, 10, 9, 11, 8, 8, 8, 12, 12,
477
477
  13, 14, 15, 16, 16, 17, 18, 18, 18, 18,
478
478
  19, 20, 21, 18, 18, 18, 18, 18, 8, 8,
479
- 8, 22, 24, 71, 25, 26, 26, 27, 27, 27,
480
- 28, 35, 35, 35, 29, 41, 36, 26, 26, 27,
481
- 27, 27, 47, 47, 41, 71, 23, 30, 69, 31,
482
- 31, 26, 72, 69, 32, 62, 35, 35, 35, 43,
483
- 32, 36, 50, 51, 33, 27, 27, 27, 43, 63,
484
- 45, 46, 35, 35, 35, 62, 45, 36, 54, 54,
485
- 48, 48, 48, 48, 48, 48, 63, 50, 51, 46,
486
-
487
- 56, 55, 55, 55, 55, 55, 55, 64, 64, 64,
488
- 46, 65, 66, 65, 66, 59, 67, 37, 37, 37,
489
- 60, 37, 37, 37, 37, 39, 39, 39, 42, 59,
490
- 57, 53, 42, 52, 72, 42, 48, 48, 49, 49,
491
- 42, 42, 44, 40, 42, 55, 55, 58, 58, 58,
492
- 58, 58, 58, 58, 58, 58, 61, 61, 61, 61,
493
- 61, 61, 61, 61, 61, 64, 64, 38, 34, 64,
494
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 70,
495
- 70, 70, 70, 70, 70, 70, 70, 70, 72, 22,
496
- 22, 7, 72, 72, 72, 72, 72, 72, 72, 72,
497
-
498
- 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
499
- 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
500
- 72, 72, 72
479
+ 8, 22, 24, 74, 25, 26, 26, 27, 27, 27,
480
+ 28, 44, 50, 50, 29, 44, 74, 26, 26, 27,
481
+ 27, 27, 72, 35, 35, 35, 23, 30, 36, 31,
482
+ 31, 26, 75, 72, 32, 46, 53, 54, 65, 46,
483
+ 32, 57, 57, 66, 33, 35, 35, 35, 68, 69,
484
+ 36, 51, 51, 51, 65, 62, 37, 37, 37, 38,
485
+ 39, 39, 39, 39, 63, 40, 62, 39, 39, 39,
486
+
487
+ 39, 39, 27, 27, 27, 60, 56, 48, 49, 51,
488
+ 51, 51, 55, 48, 34, 49, 53, 54, 40, 59,
489
+ 58, 58, 58, 58, 58, 58, 66, 68, 69, 49,
490
+ 70, 75, 47, 43, 41, 34, 75, 67, 67, 67,
491
+ 42, 42, 42, 45, 22, 22, 45, 75, 75, 45,
492
+ 51, 51, 52, 52, 45, 45, 75, 45, 58, 58,
493
+ 61, 61, 61, 61, 61, 61, 61, 61, 64, 64,
494
+ 64, 64, 64, 64, 64, 64, 67, 67, 75, 67,
495
+ 71, 71, 71, 71, 71, 71, 71, 71, 73, 73,
496
+ 73, 73, 73, 73, 73, 73, 7, 75, 75, 75,
497
+
498
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
499
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
500
+ 75, 75, 75, 75, 75, 75, 75, 75
501
501
  } ;
502
502
 
503
- static yyconst flex_int16_t yy_chk[224] =
503
+ static yyconst flex_int16_t yy_chk[229] =
504
504
  { 0,
505
505
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
506
506
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
507
507
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
508
- 1, 4, 12, 70, 12, 12, 12, 13, 13, 13,
509
- 14, 18, 18, 18, 14, 22, 18, 16, 16, 24,
510
- 24, 24, 32, 32, 41, 69, 4, 15, 68, 15,
511
- 15, 15, 16, 67, 15, 61, 35, 35, 35, 22,
512
- 15, 35, 42, 42, 15, 27, 27, 27, 41, 60,
513
- 27, 27, 37, 37, 37, 59, 27, 37, 45, 45,
514
- 47, 47, 47, 48, 48, 48, 63, 50, 50, 48,
515
-
516
- 50, 54, 54, 54, 55, 55, 55, 63, 63, 63,
517
- 55, 64, 64, 65, 65, 58, 65, 73, 73, 73,
518
- 57, 73, 73, 73, 73, 74, 74, 74, 75, 56,
519
- 52, 44, 75, 43, 31, 75, 76, 76, 77, 77,
520
- 78, 78, 23, 21, 78, 79, 79, 80, 80, 80,
521
- 80, 80, 80, 80, 80, 80, 81, 81, 81, 81,
522
- 81, 81, 81, 81, 81, 82, 82, 19, 17, 82,
523
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 84,
524
- 84, 84, 84, 84, 84, 84, 84, 84, 7, 6,
525
- 2, 72, 72, 72, 72, 72, 72, 72, 72, 72,
526
-
527
- 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
528
- 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
529
- 72, 72, 72
508
+ 1, 4, 12, 73, 12, 12, 12, 13, 13, 13,
509
+ 14, 22, 32, 32, 14, 44, 72, 16, 16, 24,
510
+ 24, 24, 71, 35, 35, 35, 4, 15, 35, 15,
511
+ 15, 15, 16, 70, 15, 22, 45, 45, 64, 44,
512
+ 15, 48, 48, 63, 15, 18, 18, 18, 67, 67,
513
+ 18, 50, 50, 50, 62, 61, 18, 18, 18, 18,
514
+ 18, 18, 18, 18, 60, 18, 59, 18, 18, 18,
515
+
516
+ 18, 18, 27, 27, 27, 55, 47, 27, 27, 51,
517
+ 51, 51, 46, 27, 38, 51, 53, 53, 34, 53,
518
+ 57, 57, 57, 58, 58, 58, 66, 68, 68, 58,
519
+ 68, 31, 23, 21, 19, 17, 7, 66, 66, 66,
520
+ 76, 76, 76, 77, 6, 2, 77, 0, 0, 77,
521
+ 78, 78, 79, 79, 80, 80, 0, 80, 81, 81,
522
+ 82, 82, 82, 82, 82, 82, 82, 82, 83, 83,
523
+ 83, 83, 83, 83, 83, 83, 84, 84, 0, 84,
524
+ 85, 85, 85, 85, 85, 85, 85, 85, 86, 86,
525
+ 86, 86, 86, 86, 86, 86, 75, 75, 75, 75,
526
+
527
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
528
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
529
+ 75, 75, 75, 75, 75, 75, 75, 75
530
530
  } ;
531
531
 
532
532
  static yy_state_type yy_last_accepting_state;
@@ -546,14 +546,9 @@ char *slice_text;
546
546
  #line 1 "src/Slice/Scanner.l"
547
547
  #line 2 "src/Slice/Scanner.l"
548
548
 
549
- // **********************************************************************
550
- //
551
- // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
552
549
  //
553
- // This copy of Ice is licensed to you under the terms described in the
554
- // ICE_LICENSE file included in this distribution.
550
+ // Copyright (c) ZeroC, Inc. All rights reserved.
555
551
  //
556
- // **********************************************************************
557
552
 
558
553
  #include <Slice/GrammarUtil.h> // Before Grammer.h, so that YYSTYPE is defined
559
554
  #include <Slice/Grammar.h>
@@ -564,30 +559,33 @@ char *slice_text;
564
559
  #include <stdlib.h>
565
560
  #include <math.h>
566
561
 
567
- #if defined(_MSC_VER) && defined(ICE_64)
568
- //
569
- // '=' : conversion from 'size_t' to 'int', possible loss of data
570
- // The result of fread() is a size_t and gets inserted into an int
571
- //
572
- # pragma warning( 4 : 4267 )
573
- //
562
+ #if defined(_MSC_VER)
563
+ // '<' : signed/unsigned mismatch
564
+ # pragma warning(disable:4018)
574
565
  // 'initializing' : conversion from '__int64' to 'int', possible loss of data
575
- // Puts a pointer-difference into an int
576
- //
577
- # pragma warning( 4 : 4244 )
578
- #endif
566
+ # pragma warning(disable:4244)
579
567
 
580
- #if defined(_MSC_VER) && defined(ICE_32)
568
+ # if defined(ICE_64)
581
569
  //
582
- // '<' : signed/unsigned mismatch
570
+ // '=' : conversion from 'size_t' to 'int', possible loss of data
571
+ // The result of fread() is a size_t and gets inserted into an int
583
572
  //
584
- # pragma warning( 4 : 4018 )
573
+ # pragma warning(disable:4267)
574
+ # endif
585
575
  #endif
586
576
 
587
577
  #if defined(__GNUC__)
588
578
  # pragma GCC diagnostic ignored "-Wsign-compare"
589
579
  #endif
590
580
 
581
+ //
582
+ // Avoid clang conversion warnings
583
+ //
584
+ #if defined(__clang__)
585
+ # pragma clang diagnostic ignored "-Wconversion"
586
+ # pragma clang diagnostic ignored "-Wsign-conversion"
587
+ #endif
588
+
591
589
  #ifdef _MSC_VER
592
590
  # ifdef slice_wrap
593
591
  # undef slice_wrap
@@ -620,6 +618,7 @@ static StringTokenMap keywordMap;
620
618
 
621
619
  void initScanner();
622
620
  int checkKeyword(string&);
621
+ int checkIdentifier(string&);
623
622
 
624
623
  }
625
624
 
@@ -627,7 +626,7 @@ int checkKeyword(string&);
627
626
 
628
627
 
629
628
 
630
- #line 630 "src/Slice/Scanner.cpp"
629
+ #line 626 "src/Slice/Scanner.cpp"
631
630
 
632
631
  #define INITIAL 0
633
632
  #define BOMSCAN 1
@@ -689,7 +688,7 @@ extern int slice_wrap (void );
689
688
  #endif
690
689
 
691
690
  static void yyunput (int c,char *buf_ptr );
692
-
691
+
693
692
  #ifndef yytext_ptr
694
693
  static void yy_flex_strncpy (char *,yyconst char *,int );
695
694
  #endif
@@ -813,11 +812,11 @@ YY_DECL
813
812
  register yy_state_type yy_current_state;
814
813
  register char *yy_cp, *yy_bp;
815
814
  register int yy_act;
816
-
817
- #line 97 "src/Slice/Scanner.l"
815
+
816
+ #line 93 "src/Slice/Scanner.l"
818
817
 
819
818
 
820
- #line 820 "src/Slice/Scanner.cpp"
819
+ #line 816 "src/Slice/Scanner.cpp"
821
820
 
822
821
  if ( !(yy_init) )
823
822
  {
@@ -871,13 +870,13 @@ yy_match:
871
870
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
872
871
  {
873
872
  yy_current_state = (int) yy_def[yy_current_state];
874
- if ( yy_current_state >= 73 )
873
+ if ( yy_current_state >= 76 )
875
874
  yy_c = yy_meta[(unsigned int) yy_c];
876
875
  }
877
876
  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
878
877
  ++yy_cp;
879
878
  }
880
- while ( yy_current_state != 72 );
879
+ while ( yy_current_state != 75 );
881
880
  yy_cp = (yy_last_accepting_cpos);
882
881
  yy_current_state = (yy_last_accepting_state);
883
882
 
@@ -902,7 +901,7 @@ case 1:
902
901
  (yy_c_buf_p) = yy_cp -= 1;
903
902
  YY_DO_BEFORE_ACTION; /* set up slice_text again */
904
903
  YY_RULE_SETUP
905
- #line 99 "src/Slice/Scanner.l"
904
+ #line 95 "src/Slice/Scanner.l"
906
905
  {
907
906
  if(unit->scanPosition(slice_text))
908
907
  {
@@ -916,7 +915,7 @@ case 2:
916
915
  (yy_c_buf_p) = yy_cp -= 1;
917
916
  YY_DO_BEFORE_ACTION; /* set up slice_text again */
918
917
  YY_RULE_SETUP
919
- #line 106 "src/Slice/Scanner.l"
918
+ #line 102 "src/Slice/Scanner.l"
920
919
  {
921
920
  if(unit->scanPosition(slice_text))
922
921
  {
@@ -929,7 +928,7 @@ case 3:
929
928
  (yy_c_buf_p) = yy_cp -= 1;
930
929
  YY_DO_BEFORE_ACTION; /* set up slice_text again */
931
930
  YY_RULE_SETUP
932
- #line 113 "src/Slice/Scanner.l"
931
+ #line 109 "src/Slice/Scanner.l"
933
932
  {
934
933
  if(unit->scanPosition(slice_text))
935
934
  {
@@ -943,7 +942,7 @@ case 4:
943
942
  (yy_c_buf_p) = yy_cp -= 1;
944
943
  YY_DO_BEFORE_ACTION; /* set up slice_text again */
945
944
  YY_RULE_SETUP
946
- #line 120 "src/Slice/Scanner.l"
945
+ #line 116 "src/Slice/Scanner.l"
947
946
  {
948
947
  if(unit->scanPosition(slice_text))
949
948
  {
@@ -953,7 +952,7 @@ YY_RULE_SETUP
953
952
  YY_BREAK
954
953
  case 5:
955
954
  YY_RULE_SETUP
956
- #line 127 "src/Slice/Scanner.l"
955
+ #line 123 "src/Slice/Scanner.l"
957
956
  {
958
957
  // C++-style comment
959
958
  BEGIN(MAINSCAN);
@@ -971,7 +970,7 @@ YY_RULE_SETUP
971
970
  YY_BREAK
972
971
  case 6:
973
972
  YY_RULE_SETUP
974
- #line 142 "src/Slice/Scanner.l"
973
+ #line 138 "src/Slice/Scanner.l"
975
974
  {
976
975
  // C-style comment
977
976
  BEGIN(MAINSCAN);
@@ -1015,48 +1014,40 @@ YY_RULE_SETUP
1015
1014
  YY_BREAK
1016
1015
  case 7:
1017
1016
  YY_RULE_SETUP
1018
- #line 183 "src/Slice/Scanner.l"
1019
- {
1020
- BEGIN(MAINSCAN);
1021
- return ICE_SCOPE_DELIMITER;
1022
- }
1023
- YY_BREAK
1024
- case 8:
1025
- YY_RULE_SETUP
1026
- #line 188 "src/Slice/Scanner.l"
1017
+ #line 179 "src/Slice/Scanner.l"
1027
1018
  {
1028
1019
  BEGIN(MAINSCAN);
1029
1020
  return ICE_METADATA_OPEN;
1030
1021
  }
1031
1022
  YY_BREAK
1032
- case 9:
1023
+ case 8:
1033
1024
  YY_RULE_SETUP
1034
- #line 193 "src/Slice/Scanner.l"
1025
+ #line 184 "src/Slice/Scanner.l"
1035
1026
  {
1036
1027
  BEGIN(MAINSCAN);
1037
1028
  return ICE_METADATA_CLOSE;
1038
1029
  }
1039
1030
  YY_BREAK
1040
- case 10:
1031
+ case 9:
1041
1032
  YY_RULE_SETUP
1042
- #line 198 "src/Slice/Scanner.l"
1033
+ #line 189 "src/Slice/Scanner.l"
1043
1034
  {
1044
1035
  BEGIN(MAINSCAN);
1045
1036
  return ICE_GLOBAL_METADATA_OPEN;
1046
1037
  }
1047
1038
  YY_BREAK
1048
- case 11:
1039
+ case 10:
1049
1040
  YY_RULE_SETUP
1050
- #line 203 "src/Slice/Scanner.l"
1041
+ #line 194 "src/Slice/Scanner.l"
1051
1042
  {
1052
1043
  BEGIN(MAINSCAN);
1053
1044
  return ICE_GLOBAL_METADATA_CLOSE;
1054
1045
  }
1055
1046
  YY_BREAK
1056
- case 12:
1057
- /* rule 12 can match eol */
1047
+ case 11:
1048
+ /* rule 11 can match eol */
1058
1049
  YY_RULE_SETUP
1059
- #line 208 "src/Slice/Scanner.l"
1050
+ #line 199 "src/Slice/Scanner.l"
1060
1051
  {
1061
1052
  BEGIN(MAINSCAN);
1062
1053
  StringTokPtr ident = new StringTok;
@@ -1065,6 +1056,10 @@ YY_RULE_SETUP
1065
1056
  *yylvalp = ident;
1066
1057
  if(*slice_text == '\\')
1067
1058
  {
1059
+ if(checkIdentifier(ident->v) == ICE_SCOPED_IDENTIFIER)
1060
+ {
1061
+ unit->error("Operation identifiers cannot be scoped: `" + (ident->v) + "'");
1062
+ }
1068
1063
  return ICE_IDENT_OP;
1069
1064
  }
1070
1065
  int st = checkKeyword(ident->v);
@@ -1072,6 +1067,11 @@ YY_RULE_SETUP
1072
1067
  {
1073
1068
  return ICE_IDENT_OP;
1074
1069
  }
1070
+ else if(st == ICE_SCOPED_IDENTIFIER)
1071
+ {
1072
+ unit->error("Operation identifiers cannot be scoped: `" + (ident->v) + "'");
1073
+ return ICE_IDENT_OP;
1074
+ }
1075
1075
  else if(st == ICE_OPTIONAL)
1076
1076
  {
1077
1077
  return ICE_OPTIONAL_OP;
@@ -1082,7 +1082,7 @@ YY_RULE_SETUP
1082
1082
  }
1083
1083
  }
1084
1084
  YY_BREAK
1085
- case 13:
1085
+ case 12:
1086
1086
  YY_RULE_SETUP
1087
1087
  #line 233 "src/Slice/Scanner.l"
1088
1088
  {
@@ -1090,20 +1090,20 @@ YY_RULE_SETUP
1090
1090
  StringTokPtr ident = new StringTok;
1091
1091
  ident->v = *slice_text == '\\' ? slice_text + 1 : slice_text;
1092
1092
  *yylvalp = ident;
1093
- return *slice_text == '\\' ? ICE_IDENTIFIER : checkKeyword(ident->v);
1093
+ return *slice_text == '\\' ? checkIdentifier(ident->v) : checkKeyword(ident->v);
1094
1094
  }
1095
1095
  YY_BREAK
1096
- case 14:
1096
+ case 13:
1097
1097
  YY_RULE_SETUP
1098
1098
  #line 241 "src/Slice/Scanner.l"
1099
1099
  {
1100
1100
  BEGIN(MAINSCAN);
1101
1101
  StringTokPtr str = new StringTok;
1102
1102
  str->literal = "\"";
1103
- while(true)
1103
+ while(true)
1104
1104
  {
1105
- char c = static_cast<char>(yyinput());
1106
- str->literal += c;
1105
+ int c = yyinput();
1106
+ str->literal += static_cast<char>(c);
1107
1107
  if(c == '"')
1108
1108
  {
1109
1109
  break;
@@ -1113,15 +1113,15 @@ YY_RULE_SETUP
1113
1113
  unit->error("EOF in string");
1114
1114
  break;
1115
1115
  }
1116
- else if(static_cast<unsigned char>(c) < 32 || c == 127)
1116
+ else if(c < 32 || c == 127)
1117
1117
  {
1118
1118
  unit->error("a string literal can only contain printable ASCII characters and non-ASCII characters");
1119
1119
  break;
1120
1120
  }
1121
1121
  else if(c == '\\')
1122
1122
  {
1123
- char next = static_cast<char>(yyinput());
1124
- str->literal += next;
1123
+ int next = yyinput();
1124
+ str->literal += static_cast<char>(next);
1125
1125
  switch(next)
1126
1126
  {
1127
1127
  case '\\':
@@ -1137,7 +1137,7 @@ YY_RULE_SETUP
1137
1137
  case '\'':
1138
1138
  case '?':
1139
1139
  {
1140
- str->v += next;
1140
+ str->v += static_cast<char>(next);
1141
1141
  break;
1142
1142
  }
1143
1143
  case 'a':
@@ -1191,16 +1191,16 @@ YY_RULE_SETUP
1191
1191
  {
1192
1192
  static string octalDigits = "01234567";
1193
1193
  string escape;
1194
- escape += next;
1194
+ escape += static_cast<char>(next);
1195
1195
  for(int i = 0; i < 2; ++i)
1196
1196
  {
1197
- next = static_cast<char>(yyinput());
1198
- if(octalDigits.find_first_of(next) == string::npos)
1197
+ next = yyinput();
1198
+ if(octalDigits.find_first_of(static_cast<char>(next)) == string::npos)
1199
1199
  {
1200
1200
  unput(next);
1201
1201
  break;
1202
1202
  }
1203
- escape += next;
1203
+ escape += static_cast<char>(next);
1204
1204
  }
1205
1205
  str->literal += escape;
1206
1206
  IceUtil::Int64 value = IceUtilInternal::strToInt64(escape.c_str(), 0, 8);
@@ -1215,15 +1215,15 @@ YY_RULE_SETUP
1215
1215
  case 'x':
1216
1216
  {
1217
1217
  string escape = "";
1218
- next = static_cast<char>(yyinput());
1218
+ next = yyinput();
1219
1219
 
1220
1220
  //
1221
1221
  // Unlike C++, we limit hex escape sequences to 2 hex digits
1222
1222
  //
1223
- while(isxdigit(next) && escape.length() < 2)
1223
+ while(isxdigit(static_cast<char>(next)) && escape.length() < 2)
1224
1224
  {
1225
- escape += next;
1226
- next = static_cast<char>(yyinput());
1225
+ escape += static_cast<char>(next);
1226
+ next = yyinput();
1227
1227
  }
1228
1228
  unput(next);
1229
1229
 
@@ -1247,18 +1247,19 @@ YY_RULE_SETUP
1247
1247
  case 'U':
1248
1248
  {
1249
1249
  string escape = "";
1250
- char c = next;
1250
+ c = next;
1251
1251
  int size = (c == 'u') ? 4 : 8;
1252
1252
  while(size > 0)
1253
1253
  {
1254
- next = static_cast<char>(yyinput());
1255
- if(!isxdigit(static_cast<unsigned char>(next)))
1254
+ next = yyinput();
1255
+ if(!isxdigit(next))
1256
1256
  {
1257
- unit->error(string("unknown escape sequence in string literal: `\\") + c + escape + next + "'");
1257
+ unit->error(string("unknown escape sequence in string literal: `\\") +
1258
+ static_cast<char>(c) + escape + static_cast<char>(next) + "'");
1258
1259
  unput(next);
1259
1260
  break;
1260
1261
  }
1261
- escape += next;
1262
+ escape += static_cast<char>(next);
1262
1263
  --size;
1263
1264
  }
1264
1265
 
@@ -1268,19 +1269,20 @@ YY_RULE_SETUP
1268
1269
  IceUtil::Int64 codePoint = IceUtilInternal::strToInt64(escape.c_str(), 0, 16);
1269
1270
  if(codePoint >= 0xd800 && codePoint <= 0xdfff)
1270
1271
  {
1271
- unit->error(string("a universal character name cannot designate a surrogate: `\\") + c + escape + "'");
1272
+ unit->error(string("a universal character name cannot designate a surrogate: `\\") +
1273
+ static_cast<char>(c) + escape + "'");
1272
1274
  }
1273
1275
  }
1274
1276
 
1275
1277
  str->literal += escape;
1276
- str->v += string("\\") + c + escape;
1278
+ str->v += string("\\") + static_cast<char>(c) + escape;
1277
1279
  break;
1278
1280
  }
1279
1281
 
1280
1282
  default:
1281
1283
  {
1282
1284
  ostringstream os;
1283
- os << "unknown escape sequence `\\" << next << "'";
1285
+ os << "unknown escape sequence `\\" << static_cast<char>(next) << "'";
1284
1286
  unit->warning(All, os.str());
1285
1287
 
1286
1288
  // Escape the \ in this unknown escape sequence
@@ -1292,16 +1294,16 @@ YY_RULE_SETUP
1292
1294
  }
1293
1295
  else
1294
1296
  {
1295
- str->v += c;
1297
+ str->v += static_cast<char>(c);
1296
1298
  }
1297
1299
  }
1298
1300
  *yylvalp = str;
1299
1301
  return ICE_STRING_LITERAL;
1300
1302
  }
1301
1303
  YY_BREAK
1302
- case 15:
1304
+ case 14:
1303
1305
  YY_RULE_SETUP
1304
- #line 444 "src/Slice/Scanner.l"
1306
+ #line 446 "src/Slice/Scanner.l"
1305
1307
  {
1306
1308
  BEGIN(MAINSCAN);
1307
1309
  IntegerTokPtr itp = new IntegerTok;
@@ -1318,9 +1320,9 @@ YY_RULE_SETUP
1318
1320
  return ICE_INTEGER_LITERAL;
1319
1321
  }
1320
1322
  YY_BREAK
1321
- case 16:
1323
+ case 15:
1322
1324
  YY_RULE_SETUP
1323
- #line 460 "src/Slice/Scanner.l"
1325
+ #line 462 "src/Slice/Scanner.l"
1324
1326
  {
1325
1327
  BEGIN(MAINSCAN);
1326
1328
  errno = 0;
@@ -1351,10 +1353,10 @@ YY_RULE_SETUP
1351
1353
  return ICE_FLOATING_POINT_LITERAL;
1352
1354
  }
1353
1355
  YY_BREAK
1354
- case 17:
1355
- /* rule 17 can match eol */
1356
+ case 16:
1357
+ /* rule 16 can match eol */
1356
1358
  YY_RULE_SETUP
1357
- #line 490 "src/Slice/Scanner.l"
1359
+ #line 492 "src/Slice/Scanner.l"
1358
1360
  {
1359
1361
  // Ignore white-space
1360
1362
 
@@ -1368,18 +1370,18 @@ YY_RULE_SETUP
1368
1370
  }
1369
1371
  }
1370
1372
  YY_BREAK
1371
- case 18:
1373
+ case 17:
1372
1374
  YY_RULE_SETUP
1373
- #line 503 "src/Slice/Scanner.l"
1375
+ #line 505 "src/Slice/Scanner.l"
1374
1376
  {
1375
1377
  // Ignore UTF-8 BOM, rule only active when parsing start of file.
1376
1378
 
1377
1379
  BEGIN(MAINSCAN);
1378
1380
  }
1379
1381
  YY_BREAK
1380
- case 19:
1382
+ case 18:
1381
1383
  YY_RULE_SETUP
1382
- #line 509 "src/Slice/Scanner.l"
1384
+ #line 511 "src/Slice/Scanner.l"
1383
1385
  {
1384
1386
  BEGIN(MAINSCAN);
1385
1387
  if(slice_text[0] < 32 || slice_text[0] > 126)
@@ -1396,12 +1398,12 @@ YY_RULE_SETUP
1396
1398
  return slice_text[0];
1397
1399
  }
1398
1400
  YY_BREAK
1399
- case 20:
1401
+ case 19:
1400
1402
  YY_RULE_SETUP
1401
- #line 525 "src/Slice/Scanner.l"
1403
+ #line 527 "src/Slice/Scanner.l"
1402
1404
  ECHO;
1403
1405
  YY_BREAK
1404
- #line 1404 "src/Slice/Scanner.cpp"
1406
+ #line 1403 "src/Slice/Scanner.cpp"
1405
1407
  case YY_STATE_EOF(INITIAL):
1406
1408
  case YY_STATE_EOF(BOMSCAN):
1407
1409
  case YY_STATE_EOF(MAINSCAN):
@@ -1682,7 +1684,7 @@ static int yy_get_next_buffer (void)
1682
1684
  {
1683
1685
  register yy_state_type yy_current_state;
1684
1686
  register char *yy_cp;
1685
-
1687
+
1686
1688
  yy_current_state = (yy_start);
1687
1689
  yy_current_state += YY_AT_BOL();
1688
1690
 
@@ -1697,7 +1699,7 @@ static int yy_get_next_buffer (void)
1697
1699
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1698
1700
  {
1699
1701
  yy_current_state = (int) yy_def[yy_current_state];
1700
- if ( yy_current_state >= 73 )
1702
+ if ( yy_current_state >= 76 )
1701
1703
  yy_c = yy_meta[(unsigned int) yy_c];
1702
1704
  }
1703
1705
  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1725,11 +1727,11 @@ static int yy_get_next_buffer (void)
1725
1727
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1726
1728
  {
1727
1729
  yy_current_state = (int) yy_def[yy_current_state];
1728
- if ( yy_current_state >= 73 )
1730
+ if ( yy_current_state >= 76 )
1729
1731
  yy_c = yy_meta[(unsigned int) yy_c];
1730
1732
  }
1731
1733
  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1732
- yy_is_jam = (yy_current_state == 72);
1734
+ yy_is_jam = (yy_current_state == 75);
1733
1735
 
1734
1736
  return yy_is_jam ? 0 : yy_current_state;
1735
1737
  }
@@ -1737,7 +1739,7 @@ static int yy_get_next_buffer (void)
1737
1739
  static void yyunput (int c, register char * yy_bp )
1738
1740
  {
1739
1741
  register char *yy_cp;
1740
-
1742
+
1741
1743
  yy_cp = (yy_c_buf_p);
1742
1744
 
1743
1745
  /* undo effects of setting up slice_text */
@@ -1780,7 +1782,7 @@ static int yy_get_next_buffer (void)
1780
1782
 
1781
1783
  {
1782
1784
  int c;
1783
-
1785
+
1784
1786
  *(yy_c_buf_p) = (yy_hold_char);
1785
1787
 
1786
1788
  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
@@ -1849,12 +1851,12 @@ static int yy_get_next_buffer (void)
1849
1851
 
1850
1852
  /** Immediately switch to a different input stream.
1851
1853
  * @param input_file A readable stream.
1852
- *
1854
+ *
1853
1855
  * @note This function does not reset the start condition to @c INITIAL .
1854
1856
  */
1855
1857
  void slice_restart (FILE * input_file )
1856
1858
  {
1857
-
1859
+
1858
1860
  if ( ! YY_CURRENT_BUFFER ){
1859
1861
  slice_ensure_buffer_stack ();
1860
1862
  YY_CURRENT_BUFFER_LVALUE =
@@ -1867,11 +1869,11 @@ static int yy_get_next_buffer (void)
1867
1869
 
1868
1870
  /** Switch to a different input buffer.
1869
1871
  * @param new_buffer The new input buffer.
1870
- *
1872
+ *
1871
1873
  */
1872
1874
  void slice__switch_to_buffer (YY_BUFFER_STATE new_buffer )
1873
1875
  {
1874
-
1876
+
1875
1877
  /* TODO. We should be able to replace this entire function body
1876
1878
  * with
1877
1879
  * slice_pop_buffer_state();
@@ -1911,13 +1913,13 @@ static void slice__load_buffer_state (void)
1911
1913
  /** Allocate and initialize an input buffer state.
1912
1914
  * @param file A readable stream.
1913
1915
  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1914
- *
1916
+ *
1915
1917
  * @return the allocated buffer state.
1916
1918
  */
1917
1919
  YY_BUFFER_STATE slice__create_buffer (FILE * file, int size )
1918
1920
  {
1919
1921
  YY_BUFFER_STATE b;
1920
-
1922
+
1921
1923
  b = (YY_BUFFER_STATE) slice_alloc(sizeof( struct yy_buffer_state ) );
1922
1924
  if ( ! b )
1923
1925
  YY_FATAL_ERROR( "out of dynamic memory in slice__create_buffer()" );
@@ -1940,11 +1942,11 @@ static void slice__load_buffer_state (void)
1940
1942
 
1941
1943
  /** Destroy the buffer.
1942
1944
  * @param b a buffer created with slice__create_buffer()
1943
- *
1945
+ *
1944
1946
  */
1945
1947
  void slice__delete_buffer (YY_BUFFER_STATE b )
1946
1948
  {
1947
-
1949
+
1948
1950
  if ( ! b )
1949
1951
  return;
1950
1952
 
@@ -1965,7 +1967,7 @@ static void slice__load_buffer_state (void)
1965
1967
 
1966
1968
  {
1967
1969
  int oerrno = errno;
1968
-
1970
+
1969
1971
  slice__flush_buffer(b );
1970
1972
 
1971
1973
  b->yy_input_file = file;
@@ -1981,13 +1983,13 @@ static void slice__load_buffer_state (void)
1981
1983
  }
1982
1984
 
1983
1985
  b->yy_is_interactive = 0;
1984
-
1986
+
1985
1987
  errno = oerrno;
1986
1988
  }
1987
1989
 
1988
1990
  /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1989
1991
  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1990
- *
1992
+ *
1991
1993
  */
1992
1994
  void slice__flush_buffer (YY_BUFFER_STATE b )
1993
1995
  {
@@ -2016,7 +2018,7 @@ static void slice__load_buffer_state (void)
2016
2018
  * the current state. This function will allocate the stack
2017
2019
  * if necessary.
2018
2020
  * @param new_buffer The new state.
2019
- *
2021
+ *
2020
2022
  */
2021
2023
  void slice_push_buffer_state (YY_BUFFER_STATE new_buffer )
2022
2024
  {
@@ -2046,7 +2048,7 @@ void slice_push_buffer_state (YY_BUFFER_STATE new_buffer )
2046
2048
 
2047
2049
  /** Removes and deletes the top of the stack, if present.
2048
2050
  * The next element becomes the new top.
2049
- *
2051
+ *
2050
2052
  */
2051
2053
  void slice_pop_buffer_state (void)
2052
2054
  {
@@ -2070,7 +2072,7 @@ void slice_pop_buffer_state (void)
2070
2072
  static void slice_ensure_buffer_stack (void)
2071
2073
  {
2072
2074
  yy_size_t num_to_alloc;
2073
-
2075
+
2074
2076
  if (!(yy_buffer_stack)) {
2075
2077
 
2076
2078
  /* First allocation is just for 2 elements, since we don't know if this
@@ -2083,9 +2085,9 @@ static void slice_ensure_buffer_stack (void)
2083
2085
  );
2084
2086
  if ( ! (yy_buffer_stack) )
2085
2087
  YY_FATAL_ERROR( "out of dynamic memory in slice_ensure_buffer_stack()" );
2086
-
2088
+
2087
2089
  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2088
-
2090
+
2089
2091
  (yy_buffer_stack_max) = num_to_alloc;
2090
2092
  (yy_buffer_stack_top) = 0;
2091
2093
  return;
@@ -2113,13 +2115,13 @@ static void slice_ensure_buffer_stack (void)
2113
2115
  /** Setup the input buffer state to scan directly from a user-specified character buffer.
2114
2116
  * @param base the character buffer
2115
2117
  * @param size the size in bytes of the character buffer
2116
- *
2117
- * @return the newly allocated buffer state object.
2118
+ *
2119
+ * @return the newly allocated buffer state object.
2118
2120
  */
2119
2121
  YY_BUFFER_STATE slice__scan_buffer (char * base, yy_size_t size )
2120
2122
  {
2121
2123
  YY_BUFFER_STATE b;
2122
-
2124
+
2123
2125
  if ( size < 2 ||
2124
2126
  base[size-2] != YY_END_OF_BUFFER_CHAR ||
2125
2127
  base[size-1] != YY_END_OF_BUFFER_CHAR )
@@ -2148,14 +2150,14 @@ YY_BUFFER_STATE slice__scan_buffer (char * base, yy_size_t size )
2148
2150
  /** Setup the input buffer state to scan a string. The next call to slice_lex() will
2149
2151
  * scan from a @e copy of @a str.
2150
2152
  * @param yystr a NUL-terminated string to scan
2151
- *
2153
+ *
2152
2154
  * @return the newly allocated buffer state object.
2153
2155
  * @note If you want to scan bytes that may contain NUL values, then use
2154
2156
  * slice__scan_bytes() instead.
2155
2157
  */
2156
2158
  YY_BUFFER_STATE slice__scan_string (yyconst char * yystr )
2157
2159
  {
2158
-
2160
+
2159
2161
  return slice__scan_bytes(yystr,strlen(yystr) );
2160
2162
  }
2161
2163
 
@@ -2163,7 +2165,7 @@ YY_BUFFER_STATE slice__scan_string (yyconst char * yystr )
2163
2165
  * scan from a @e copy of @a bytes.
2164
2166
  * @param yybytes the byte buffer to scan
2165
2167
  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2166
- *
2168
+ *
2167
2169
  * @return the newly allocated buffer state object.
2168
2170
  */
2169
2171
  YY_BUFFER_STATE slice__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
@@ -2172,7 +2174,7 @@ YY_BUFFER_STATE slice__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_
2172
2174
  char *buf;
2173
2175
  yy_size_t n;
2174
2176
  int i;
2175
-
2177
+
2176
2178
  /* Get memory for full buffer, including space for trailing EOB's. */
2177
2179
  n = _yybytes_len + 2;
2178
2180
  buf = (char *) slice_alloc(n );
@@ -2226,16 +2228,16 @@ static void yy_fatal_error (yyconst char* msg )
2226
2228
  /* Accessor methods (get/set functions) to struct members. */
2227
2229
 
2228
2230
  /** Get the current line number.
2229
- *
2231
+ *
2230
2232
  */
2231
2233
  int slice_get_lineno (void)
2232
2234
  {
2233
-
2235
+
2234
2236
  return slice_lineno;
2235
2237
  }
2236
2238
 
2237
2239
  /** Get the input stream.
2238
- *
2240
+ *
2239
2241
  */
2240
2242
  FILE *slice_get_in (void)
2241
2243
  {
@@ -2243,7 +2245,7 @@ FILE *slice_get_in (void)
2243
2245
  }
2244
2246
 
2245
2247
  /** Get the output stream.
2246
- *
2248
+ *
2247
2249
  */
2248
2250
  FILE *slice_get_out (void)
2249
2251
  {
@@ -2251,7 +2253,7 @@ FILE *slice_get_out (void)
2251
2253
  }
2252
2254
 
2253
2255
  /** Get the length of the current token.
2254
- *
2256
+ *
2255
2257
  */
2256
2258
  yy_size_t slice_get_leng (void)
2257
2259
  {
@@ -2259,7 +2261,7 @@ yy_size_t slice_get_leng (void)
2259
2261
  }
2260
2262
 
2261
2263
  /** Get the current token.
2262
- *
2264
+ *
2263
2265
  */
2264
2266
 
2265
2267
  char *slice_get_text (void)
@@ -2269,18 +2271,18 @@ char *slice_get_text (void)
2269
2271
 
2270
2272
  /** Set the current line number.
2271
2273
  * @param line_number
2272
- *
2274
+ *
2273
2275
  */
2274
2276
  void slice_set_lineno (int line_number )
2275
2277
  {
2276
-
2278
+
2277
2279
  slice_lineno = line_number;
2278
2280
  }
2279
2281
 
2280
2282
  /** Set the input stream. This does not discard the current
2281
2283
  * input buffer.
2282
2284
  * @param in_str A readable stream.
2283
- *
2285
+ *
2284
2286
  * @see slice__switch_to_buffer
2285
2287
  */
2286
2288
  void slice_set_in (FILE * in_str )
@@ -2334,7 +2336,7 @@ static int yy_init_globals (void)
2334
2336
  /* slice_lex_destroy is for both reentrant and non-reentrant scanners. */
2335
2337
  int slice_lex_destroy (void)
2336
2338
  {
2337
-
2339
+
2338
2340
  /* Pop the buffer stack, destroying each element. */
2339
2341
  while(YY_CURRENT_BUFFER){
2340
2342
  slice__delete_buffer(YY_CURRENT_BUFFER );
@@ -2401,7 +2403,7 @@ void slice_free (void * ptr )
2401
2403
 
2402
2404
  #define YYTABLES_NAME "yytables"
2403
2405
 
2404
- #line 525 "src/Slice/Scanner.l"
2406
+ #line 527 "src/Slice/Scanner.l"
2405
2407
 
2406
2408
 
2407
2409
 
@@ -2469,7 +2471,84 @@ checkKeyword(string& id)
2469
2471
  }
2470
2472
  return pos->second;
2471
2473
  }
2472
- return ICE_IDENTIFIER;
2474
+ return checkIdentifier(id);
2475
+ }
2476
+
2477
+ //
2478
+ // Checks an identifier for any illegal syntax and
2479
+ // determines whether it's scoped. If it is, this
2480
+ // returns a scoped identifier token; otherwise this
2481
+ // returns a normal identifier token.
2482
+ //
2483
+
2484
+ int checkIdentifier(string& id)
2485
+ {
2486
+ // check whether the identifier is scoped
2487
+ size_t scopeIndex = id.rfind("::");
2488
+ bool isScoped = scopeIndex != string::npos;
2489
+ string name;
2490
+ if(isScoped)
2491
+ {
2492
+ name = id.substr(scopeIndex + 2); // Only check the unscoped identifier for syntax
2493
+ }
2494
+ else
2495
+ {
2496
+ name = id;
2497
+ }
2498
+
2499
+ // check the identifier for reserved suffixes
2500
+ static const string suffixBlacklist[] = { "Helper", "Holder", "Prx", "Ptr" };
2501
+ for(size_t i = 0; i < sizeof(suffixBlacklist) / sizeof(*suffixBlacklist); ++i)
2502
+ {
2503
+ if(name.find(suffixBlacklist[i], name.size() - suffixBlacklist[i].size()) != string::npos)
2504
+ {
2505
+ unit->error("illegal identifier `" + name + "': `" + suffixBlacklist[i] + "' suffix is reserved");
2506
+ }
2507
+ }
2508
+
2509
+ // check the identifier for illegal underscores
2510
+ size_t index = name.find('_');
2511
+ if(index == 0)
2512
+ {
2513
+ unit->error("illegal leading underscore in identifier `" + name + "'");
2514
+ }
2515
+ else if(name.rfind('_') == (name.size() - 1))
2516
+ {
2517
+ unit->error("illegal trailing underscore in identifier `" + name + "'");
2518
+ }
2519
+ else if(name.find("__") != string::npos)
2520
+ {
2521
+ unit->error("illegal double underscore in identifier `" + name + "'");
2522
+ }
2523
+ else if(index != string::npos && unit->currentIncludeLevel() == 0 && !unit->allowUnderscore())
2524
+ {
2525
+ DefinitionContextPtr dc = unit->currentDefinitionContext();
2526
+ assert(dc);
2527
+ if(dc->findMetaData("underscore") != "underscore") // no 'underscore' file metadata
2528
+ {
2529
+ unit->error("illegal underscore in identifier `" + name + "'");
2530
+ }
2531
+ }
2532
+
2533
+ // Check the identifier for illegal ice prefixes
2534
+ if(unit->currentIncludeLevel() == 0 && !unit->allowIcePrefix() && name.size() > 2)
2535
+ {
2536
+ DefinitionContextPtr dc = unit->currentDefinitionContext();
2537
+ assert(dc);
2538
+ if(dc->findMetaData("ice-prefix") != "ice-prefix") // no 'ice-prefix' metadata
2539
+ {
2540
+ string prefix3;
2541
+ prefix3 += ::tolower(static_cast<unsigned char>(name[0]));
2542
+ prefix3 += ::tolower(static_cast<unsigned char>(name[1]));
2543
+ prefix3 += ::tolower(static_cast<unsigned char>(name[2]));
2544
+ if(prefix3 == "ice")
2545
+ {
2546
+ unit->error("illegal identifier `" + name + "': `" + name.substr(0, 3) + "' prefix is reserved");
2547
+ }
2548
+ }
2549
+ }
2550
+
2551
+ return isScoped ? ICE_SCOPED_IDENTIFIER : ICE_IDENTIFIER;
2473
2552
  }
2474
2553
 
2475
2554
  }