zeroc-ice 3.6.5 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (752) hide show
  1. checksums.yaml +4 -4
  2. data/BZIP2_LICENSE +42 -0
  3. data/ICE_LICENSE +17 -17
  4. data/LICENSE +12 -12
  5. data/bin/slice2rb +1 -1
  6. data/ext/Communicator.cpp +150 -53
  7. data/ext/Communicator.h +1 -1
  8. data/ext/Config.h +2 -12
  9. data/ext/Connection.cpp +89 -68
  10. data/ext/Connection.h +1 -1
  11. data/ext/Endpoint.cpp +16 -45
  12. data/ext/Endpoint.h +1 -1
  13. data/ext/ImplicitContext.cpp +1 -5
  14. data/ext/ImplicitContext.h +1 -1
  15. data/ext/Init.cpp +4 -1
  16. data/ext/Logger.cpp +1 -1
  17. data/ext/Logger.h +1 -1
  18. data/ext/Operation.cpp +33 -44
  19. data/ext/Operation.h +1 -1
  20. data/ext/Properties.cpp +1 -1
  21. data/ext/Properties.h +1 -1
  22. data/ext/Proxy.cpp +22 -57
  23. data/ext/Proxy.h +1 -1
  24. data/ext/Slice.cpp +5 -5
  25. data/ext/Slice.h +1 -1
  26. data/ext/Types.cpp +244 -171
  27. data/ext/Types.h +118 -66
  28. data/ext/Util.cpp +13 -9
  29. data/ext/Util.h +10 -10
  30. data/ext/ValueFactoryManager.cpp +445 -0
  31. data/ext/ValueFactoryManager.h +100 -0
  32. data/ext/extconf.rb +47 -45
  33. data/ext/ice/bzip2/blocksort.c +1094 -0
  34. data/ext/ice/bzip2/bzlib.c +1572 -0
  35. data/ext/ice/bzip2/bzlib.h +282 -0
  36. data/ext/ice/bzip2/bzlib_private.h +509 -0
  37. data/ext/ice/bzip2/compress.c +672 -0
  38. data/ext/ice/bzip2/crctable.c +104 -0
  39. data/ext/ice/bzip2/decompress.c +646 -0
  40. data/ext/ice/bzip2/huffman.c +205 -0
  41. data/ext/ice/bzip2/randtable.c +84 -0
  42. data/ext/ice/cpp/include/Ice/Application.h +77 -60
  43. data/ext/ice/cpp/include/Ice/AsyncResult.h +34 -318
  44. data/ext/ice/cpp/include/Ice/AsyncResultF.h +4 -2
  45. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +5 -10
  46. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
  47. data/ext/ice/cpp/include/Ice/Buffer.h +10 -10
  48. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +14 -12
  49. data/ext/ice/cpp/include/Ice/Comparable.h +130 -0
  50. data/ext/ice/cpp/include/Ice/Config.h +7 -36
  51. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +107 -11
  52. data/ext/ice/cpp/include/Ice/ConnectionIF.h +5 -1
  53. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +28 -0
  54. data/ext/ice/cpp/include/Ice/{DefaultObjectFactory.h → DefaultValueFactory.h} +28 -14
  55. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +4 -6
  56. data/ext/ice/cpp/include/Ice/Dispatcher.h +14 -13
  57. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +7 -5
  58. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  59. data/ext/ice/cpp/include/Ice/Exception.h +66 -56
  60. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +69 -0
  61. data/ext/ice/cpp/include/Ice/FactoryTable.h +11 -12
  62. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +27 -25
  63. data/ext/ice/cpp/include/Ice/Format.h +6 -1
  64. data/ext/ice/cpp/include/Ice/Functional.h +33 -33
  65. data/ext/ice/cpp/include/Ice/GCObject.h +9 -5
  66. data/ext/ice/cpp/include/Ice/Handle.h +6 -11
  67. data/ext/ice/cpp/include/Ice/Ice.h +9 -5
  68. data/ext/ice/cpp/include/{IceUtil → Ice}/IconvStringConverter.h +108 -62
  69. data/ext/ice/cpp/include/Ice/Incoming.h +109 -33
  70. data/ext/ice/cpp/include/Ice/IncomingAsync.h +63 -23
  71. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +7 -1
  72. data/ext/ice/cpp/include/Ice/Initialize.h +178 -38
  73. data/ext/ice/cpp/include/Ice/InputStream.h +994 -0
  74. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -2
  75. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +46 -0
  76. data/ext/ice/cpp/include/Ice/LocalObject.h +9 -9
  77. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  78. data/ext/ice/cpp/include/Ice/LoggerUtil.h +20 -14
  79. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +114 -65
  80. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +23 -5
  81. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +99 -26
  82. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +17 -4
  83. data/ext/ice/cpp/include/Ice/Object.h +105 -56
  84. data/ext/ice/cpp/include/Ice/ObjectF.h +8 -3
  85. data/ext/ice/cpp/include/Ice/ObserverHelper.h +18 -8
  86. data/ext/ice/cpp/include/Ice/Optional.h +1084 -0
  87. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +655 -84
  88. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +12 -6
  89. data/ext/ice/cpp/include/Ice/OutputStream.h +753 -0
  90. data/ext/ice/cpp/include/Ice/Protocol.h +19 -12
  91. data/ext/ice/cpp/include/Ice/Proxy.h +1329 -717
  92. data/ext/ice/cpp/include/Ice/ProxyF.h +11 -33
  93. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  94. data/ext/ice/cpp/include/Ice/ProxyHandle.h +34 -50
  95. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  96. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +22 -3
  97. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +10 -4
  98. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +6 -1
  99. data/ext/ice/cpp/include/{IceUtil → Ice}/SHA1.h +16 -16
  100. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  101. data/ext/ice/cpp/include/Ice/Service.h +13 -18
  102. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
  103. data/ext/ice/cpp/include/Ice/SlicedData.h +46 -20
  104. data/ext/ice/cpp/include/Ice/SlicedDataF.h +14 -6
  105. data/ext/ice/cpp/include/Ice/StreamHelpers.h +159 -49
  106. data/ext/ice/cpp/include/Ice/StringConverter.h +52 -0
  107. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  108. data/{slice/Ice/ObjectFactoryF.ice → ext/ice/cpp/include/Ice/UUID.h} +9 -7
  109. data/ext/ice/cpp/include/{IceUtil → Ice}/UniquePtr.h +21 -22
  110. data/ext/ice/cpp/include/Ice/UniqueRef.h +98 -0
  111. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +40 -8
  112. data/ext/ice/cpp/include/Ice/Value.h +104 -0
  113. data/{slice/Freeze/ConnectionF.ice → ext/ice/cpp/include/Ice/ValueF.h} +11 -7
  114. data/ext/ice/cpp/include/IceSSL/Config.h +8 -23
  115. data/ext/ice/cpp/include/IceSSL/IceSSL.h +17 -6
  116. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +130 -0
  117. data/ext/ice/cpp/include/IceSSL/Plugin.h +172 -259
  118. data/ext/ice/cpp/include/IceSSL/SChannel.h +66 -0
  119. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +66 -0
  120. data/ext/ice/cpp/include/IceSSL/UWP.h +58 -0
  121. data/ext/ice/cpp/include/IceUtil/Atomic.h +8 -10
  122. data/ext/ice/cpp/include/IceUtil/Cond.h +17 -18
  123. data/ext/ice/cpp/include/IceUtil/Config.h +138 -39
  124. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +97 -0
  125. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +5 -5
  126. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +23 -17
  127. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -3
  128. data/ext/ice/cpp/include/IceUtil/Exception.h +157 -67
  129. data/ext/ice/cpp/include/IceUtil/FileUtil.h +148 -0
  130. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -2
  131. data/ext/ice/cpp/include/IceUtil/Handle.h +11 -11
  132. data/ext/ice/cpp/include/IceUtil/IceUtil.h +4 -10
  133. data/ext/ice/cpp/include/IceUtil/InputUtil.h +3 -3
  134. data/ext/ice/cpp/include/IceUtil/Iterator.h +2 -2
  135. data/ext/ice/cpp/include/IceUtil/Lock.h +8 -10
  136. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -2
  137. data/ext/ice/cpp/include/IceUtil/Mutex.h +17 -11
  138. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +2 -2
  139. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
  140. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +4 -4
  141. data/ext/ice/cpp/include/IceUtil/Optional.h +32 -18
  142. data/ext/ice/cpp/include/IceUtil/Options.h +17 -18
  143. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +55 -29
  144. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +6 -6
  145. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +11 -10
  146. data/ext/ice/cpp/include/IceUtil/Random.h +3 -3
  147. data/ext/ice/cpp/include/IceUtil/RecMutex.h +7 -8
  148. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +58 -0
  149. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -9
  150. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +8 -2
  151. data/ext/ice/cpp/include/IceUtil/Shared.h +5 -7
  152. data/ext/ice/cpp/{src → include}/IceUtil/StopWatch.h +2 -2
  153. data/ext/ice/cpp/include/IceUtil/StringConverter.h +77 -72
  154. data/ext/ice/cpp/include/IceUtil/StringUtil.h +32 -21
  155. data/ext/ice/cpp/include/IceUtil/Thread.h +10 -12
  156. data/ext/ice/cpp/include/IceUtil/ThreadException.h +33 -42
  157. data/ext/ice/cpp/include/IceUtil/Time.h +3 -3
  158. data/ext/ice/cpp/include/IceUtil/Timer.h +14 -13
  159. data/ext/ice/cpp/include/IceUtil/UUID.h +2 -2
  160. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  161. data/ext/ice/cpp/include/{Ice → generated/Ice}/BuiltinSequences.h +41 -8
  162. data/ext/ice/cpp/include/generated/Ice/Communicator.h +364 -0
  163. data/ext/ice/cpp/include/{Ice → generated/Ice}/CommunicatorF.h +40 -8
  164. data/ext/ice/cpp/include/generated/Ice/Connection.h +872 -0
  165. data/ext/ice/cpp/include/{Ice → generated/Ice}/ConnectionF.h +46 -8
  166. data/ext/ice/cpp/include/{Ice → generated/Ice}/Current.h +71 -8
  167. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +582 -0
  168. data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointF.h +62 -8
  169. data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointTypes.h +31 -16
  170. data/ext/ice/cpp/include/{Ice → generated/Ice}/FacetMap.h +23 -8
  171. data/ext/ice/cpp/include/generated/Ice/Identity.h +221 -0
  172. data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContext.h +72 -13
  173. data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContextF.h +40 -8
  174. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +602 -0
  175. data/ext/ice/cpp/include/{Ice → generated/Ice}/InstrumentationF.h +54 -8
  176. data/ext/ice/cpp/include/generated/Ice/LocalException.h +2802 -0
  177. data/ext/ice/cpp/include/generated/Ice/Locator.h +2036 -0
  178. data/ext/ice/cpp/include/{Ice → generated/Ice}/LocatorF.h +53 -12
  179. data/ext/ice/cpp/include/{Ice → generated/Ice}/Logger.h +71 -13
  180. data/ext/ice/cpp/include/{Ice → generated/Ice}/LoggerF.h +40 -8
  181. data/ext/ice/cpp/include/generated/Ice/Metrics.h +2649 -0
  182. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +302 -0
  183. data/ext/ice/cpp/include/{Ice → generated/Ice}/ObjectAdapterF.h +40 -8
  184. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +142 -0
  185. data/ext/ice/cpp/include/generated/Ice/Plugin.h +197 -0
  186. data/ext/ice/cpp/include/{Ice → generated/Ice}/PluginF.h +43 -8
  187. data/ext/ice/cpp/include/generated/Ice/Process.h +536 -0
  188. data/ext/ice/cpp/include/{Ice → generated/Ice}/ProcessF.h +45 -10
  189. data/ext/ice/cpp/include/{Ice → generated/Ice}/Properties.h +88 -21
  190. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +749 -0
  191. data/ext/ice/cpp/include/{Ice → generated/Ice}/PropertiesF.h +48 -10
  192. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1449 -0
  193. data/ext/ice/cpp/include/generated/Ice/Router.h +1032 -0
  194. data/ext/ice/cpp/include/{Ice → generated/Ice}/RouterF.h +45 -10
  195. data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocator.h +65 -13
  196. data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocatorF.h +40 -8
  197. data/ext/ice/cpp/include/{Ice → generated/Ice}/SliceChecksumDict.h +23 -8
  198. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +169 -0
  199. data/ext/ice/cpp/include/generated/Ice/Version.h +334 -0
  200. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +172 -0
  201. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +98 -0
  202. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +156 -0
  203. data/ext/ice/cpp/src/Ice/ACM.cpp +18 -14
  204. data/ext/ice/cpp/src/Ice/ACM.h +9 -2
  205. data/ext/ice/cpp/{include → src}/Ice/ACMF.h +10 -5
  206. data/ext/ice/cpp/src/Ice/Acceptor.cpp +6 -1
  207. data/ext/ice/cpp/src/Ice/Acceptor.h +4 -3
  208. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  209. data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.cpp +9 -9
  210. data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.h +7 -7
  211. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +15 -538
  212. data/ext/ice/cpp/src/Ice/Base64.cpp +11 -11
  213. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  214. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +40 -12
  215. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +15 -10
  216. data/ext/ice/cpp/src/Ice/Buffer.cpp +74 -12
  217. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +20 -6
  218. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +85 -190
  219. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +17 -18
  220. data/ext/ice/cpp/src/Ice/Communicator.cpp +39 -8
  221. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +27 -5
  222. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +271 -104
  223. data/ext/ice/cpp/src/Ice/CommunicatorI.h +84 -28
  224. data/ext/ice/cpp/src/{IceUtil → Ice}/Cond.cpp +3 -3
  225. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +58 -125
  226. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +11 -22
  227. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +6 -2
  228. data/ext/ice/cpp/src/Ice/Connection.cpp +88 -8
  229. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +27 -5
  230. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +158 -80
  231. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +41 -23
  232. data/ext/ice/cpp/{include → src}/Ice/ConnectionFactoryF.h +8 -3
  233. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +707 -653
  234. data/ext/ice/cpp/src/Ice/ConnectionI.h +97 -69
  235. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +2 -15
  236. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +4 -3
  237. data/ext/ice/cpp/src/Ice/Connector.cpp +6 -1
  238. data/ext/ice/cpp/src/Ice/Connector.h +4 -3
  239. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  240. data/ext/ice/cpp/src/{IceUtil → Ice}/CountDownLatch.cpp +4 -4
  241. data/ext/ice/cpp/src/Ice/Current.cpp +29 -6
  242. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +6 -5
  243. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  244. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  245. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +5 -25
  246. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +29 -19
  247. data/ext/ice/cpp/src/Ice/Endpoint.cpp +85 -6
  248. data/ext/ice/cpp/src/Ice/EndpointF.cpp +27 -5
  249. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +152 -1
  250. data/ext/ice/cpp/src/Ice/EndpointFactory.h +72 -6
  251. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  252. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +35 -19
  253. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +10 -4
  254. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  255. data/ext/ice/cpp/src/Ice/EndpointI.cpp +17 -1
  256. data/ext/ice/cpp/src/Ice/EndpointI.h +35 -9
  257. data/ext/ice/cpp/src/Ice/EndpointIF.h +18 -5
  258. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +18 -6
  259. data/ext/ice/cpp/src/Ice/EventHandler.cpp +6 -4
  260. data/ext/ice/cpp/src/Ice/EventHandler.h +13 -8
  261. data/ext/ice/cpp/src/Ice/EventHandlerF.h +5 -2
  262. data/ext/ice/cpp/src/Ice/Exception.cpp +95 -86
  263. data/ext/ice/cpp/src/Ice/FacetMap.cpp +20 -6
  264. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +37 -28
  265. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -4
  266. data/ext/ice/cpp/src/Ice/GCObject.cpp +28 -25
  267. data/ext/ice/cpp/src/Ice/HashUtil.h +2 -3
  268. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -2
  269. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
  270. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +92 -53
  271. data/ext/ice/cpp/src/Ice/IPEndpointI.h +19 -10
  272. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +6 -2
  273. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +56 -0
  274. data/ext/ice/cpp/src/Ice/Identity.cpp +24 -10
  275. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +37 -6
  276. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +27 -5
  277. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +14 -14
  278. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +7 -5
  279. data/ext/ice/cpp/src/Ice/Incoming.cpp +276 -245
  280. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +104 -209
  281. data/ext/ice/cpp/src/Ice/IncomingRequest.h +5 -4
  282. data/ext/ice/cpp/src/Ice/Initialize.cpp +299 -172
  283. data/ext/ice/cpp/src/Ice/InputStream.cpp +2773 -0
  284. data/ext/ice/cpp/src/Ice/Instance.cpp +191 -231
  285. data/ext/ice/cpp/src/Ice/Instance.h +30 -18
  286. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +106 -7
  287. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +27 -5
  288. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +117 -99
  289. data/ext/ice/cpp/src/Ice/InstrumentationI.h +30 -31
  290. data/ext/ice/cpp/src/Ice/LocalException.cpp +1190 -416
  291. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -2
  292. data/ext/ice/cpp/src/Ice/Locator.cpp +1167 -1215
  293. data/ext/ice/cpp/src/Ice/LocatorF.cpp +29 -6
  294. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +129 -163
  295. data/ext/ice/cpp/src/Ice/LocatorInfo.h +29 -29
  296. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  297. data/ext/ice/cpp/src/Ice/Logger.cpp +35 -5
  298. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +178 -73
  299. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +4 -4
  300. data/ext/ice/cpp/src/Ice/LoggerF.cpp +27 -5
  301. data/ext/ice/cpp/src/Ice/LoggerI.cpp +14 -44
  302. data/ext/ice/cpp/src/Ice/LoggerI.h +7 -13
  303. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +10 -12
  304. data/ext/ice/cpp/src/Ice/Metrics.cpp +1059 -1069
  305. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +49 -19
  306. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -2
  307. data/ext/ice/cpp/src/Ice/Network.cpp +534 -170
  308. data/ext/ice/cpp/src/Ice/Network.h +100 -23
  309. data/ext/ice/cpp/src/Ice/NetworkF.h +2 -2
  310. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +21 -14
  311. data/ext/ice/cpp/src/Ice/NetworkProxy.h +5 -2
  312. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  313. data/ext/ice/cpp/src/Ice/Object.cpp +217 -221
  314. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -6
  315. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +27 -5
  316. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +35 -14
  317. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +13 -7
  318. data/ext/ice/cpp/{include → src}/Ice/ObjectAdapterFactoryF.h +5 -1
  319. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +184 -58
  320. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +32 -26
  321. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +37 -6
  322. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +9 -32
  323. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +40 -18
  324. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +14 -5
  325. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +803 -365
  326. data/ext/ice/cpp/src/Ice/OutputStream.cpp +1399 -0
  327. data/ext/ice/cpp/src/Ice/Plugin.cpp +45 -6
  328. data/ext/ice/cpp/src/Ice/PluginF.cpp +27 -5
  329. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +13 -13
  330. data/ext/ice/cpp/src/Ice/PluginManagerI.h +5 -6
  331. data/ext/ice/cpp/src/Ice/Process.cpp +256 -114
  332. data/ext/ice/cpp/src/Ice/ProcessF.cpp +29 -6
  333. data/ext/ice/cpp/src/Ice/Properties.cpp +38 -8
  334. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +340 -328
  335. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +81 -17
  336. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +29 -5
  337. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +29 -6
  338. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +25 -26
  339. data/ext/ice/cpp/src/Ice/PropertiesI.h +8 -11
  340. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +107 -50
  341. data/ext/ice/cpp/src/Ice/PropertyNames.h +4 -2
  342. data/ext/ice/cpp/src/Ice/Protocol.cpp +2 -2
  343. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +37 -2
  344. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +9 -20
  345. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  346. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +6 -1
  347. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +3 -1
  348. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  349. data/ext/ice/cpp/src/Ice/Proxy.cpp +690 -964
  350. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +23 -32
  351. data/ext/ice/cpp/src/Ice/ProxyFactory.h +16 -11
  352. data/ext/ice/cpp/src/Ice/Reference.cpp +75 -69
  353. data/ext/ice/cpp/src/Ice/Reference.h +27 -22
  354. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +18 -21
  355. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +12 -12
  356. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  357. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +18 -4
  358. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
  359. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +672 -552
  360. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  361. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +5 -3
  362. data/ext/ice/cpp/src/Ice/RequestHandler.h +10 -13
  363. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +10 -6
  364. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +2 -2
  365. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +3 -6
  366. data/ext/ice/cpp/src/Ice/ResponseHandler.h +16 -7
  367. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +6 -12
  368. data/ext/ice/cpp/src/Ice/RetryQueue.h +7 -6
  369. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  370. data/ext/ice/cpp/src/Ice/Router.cpp +523 -474
  371. data/ext/ice/cpp/src/Ice/RouterF.cpp +29 -6
  372. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +91 -70
  373. data/ext/ice/cpp/src/Ice/RouterInfo.h +43 -32
  374. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  375. data/ext/ice/cpp/src/{IceUtil → Ice}/SHA1.cpp +21 -21
  376. data/ext/ice/cpp/src/Ice/Selector.cpp +989 -923
  377. data/ext/ice/cpp/src/Ice/Selector.h +100 -147
  378. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +37 -6
  379. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +27 -5
  380. data/ext/ice/cpp/src/Ice/ServantManager.cpp +9 -9
  381. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  382. data/ext/ice/cpp/src/Ice/SharedContext.h +2 -2
  383. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +20 -6
  384. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +2 -2
  385. data/ext/ice/cpp/src/Ice/SlicedData.cpp +72 -20
  386. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +173 -18
  387. data/ext/ice/cpp/src/Ice/StreamSocket.h +13 -4
  388. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +48 -17
  389. data/ext/ice/cpp/src/Ice/StringUtil.h +35 -0
  390. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +8 -4
  391. data/ext/ice/cpp/src/Ice/SysLoggerI.h +2 -3
  392. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +158 -32
  393. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +12 -5
  394. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -7
  395. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -2
  396. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +40 -32
  397. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +11 -8
  398. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +12 -27
  399. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -10
  400. data/ext/ice/cpp/src/{IceUtil → Ice}/Thread.cpp +24 -41
  401. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +175 -267
  402. data/ext/ice/cpp/src/Ice/ThreadPool.h +38 -43
  403. data/ext/ice/cpp/src/{IceUtil → Ice}/Timer.cpp +28 -21
  404. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
  405. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  406. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +2 -2
  407. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +53 -31
  408. data/ext/ice/cpp/src/Ice/TraceUtil.h +13 -6
  409. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -2
  410. data/ext/ice/cpp/src/Ice/Transceiver.h +8 -7
  411. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  412. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +2 -8
  413. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -2
  414. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +92 -31
  415. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +12 -4
  416. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +150 -179
  417. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +15 -17
  418. data/ext/ice/cpp/src/Ice/Value.cpp +81 -0
  419. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +84 -0
  420. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +70 -0
  421. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +42 -0
  422. data/ext/ice/cpp/src/Ice/Version.cpp +24 -14
  423. data/ext/ice/cpp/src/Ice/VirtualShared.h +43 -0
  424. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +3 -9
  425. data/ext/ice/cpp/src/Ice/WSAcceptor.h +3 -7
  426. data/ext/ice/cpp/src/Ice/WSConnector.cpp +5 -11
  427. data/ext/ice/cpp/src/Ice/WSConnector.h +3 -6
  428. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +185 -80
  429. data/ext/ice/cpp/src/Ice/WSEndpoint.h +21 -31
  430. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +41 -37
  431. data/ext/ice/cpp/src/Ice/WSTransceiver.h +7 -21
  432. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +526 -264
  433. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +341 -455
  434. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +86 -26
  435. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +59 -23
  436. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +315 -61
  437. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +83 -36
  438. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +57 -59
  439. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +3 -3
  440. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +396 -159
  441. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +251 -355
  442. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +52 -0
  443. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +526 -131
  444. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +19 -165
  445. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +8 -17
  446. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +284 -0
  447. data/ext/ice/cpp/src/IceSSL/CertificateI.h +69 -0
  448. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +39 -11
  449. data/ext/ice/cpp/src/{Ice/ObjectFactoryF.cpp → IceSSL/ConnectionInfoF.cpp} +31 -9
  450. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +14 -56
  451. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +6 -13
  452. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +205 -197
  453. data/ext/ice/cpp/src/IceSSL/EndpointI.h +41 -33
  454. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +39 -10
  455. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
  456. data/ext/ice/cpp/src/IceSSL/Instance.h +7 -7
  457. data/ext/ice/cpp/src/IceSSL/InstanceF.h +11 -7
  458. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +588 -0
  459. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +117 -152
  460. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +64 -0
  461. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +32 -0
  462. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +132 -0
  463. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +400 -89
  464. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +36 -21
  465. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +291 -0
  466. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +63 -0
  467. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +71 -41
  468. data/ext/ice/cpp/src/IceSSL/PluginI.h +13 -18
  469. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +9 -54
  470. data/ext/ice/cpp/src/IceSSL/RFC2253.h +7 -7
  471. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +585 -0
  472. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +491 -75
  473. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +126 -0
  474. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +32 -0
  475. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +78 -0
  476. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +126 -169
  477. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +19 -22
  478. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +79 -74
  479. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +24 -187
  480. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +4 -19
  481. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +862 -0
  482. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +56 -214
  483. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +60 -0
  484. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +31 -0
  485. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +80 -0
  486. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +137 -144
  487. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +25 -28
  488. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +857 -0
  489. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +46 -0
  490. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +9 -13
  491. data/ext/ice/cpp/src/IceSSL/TrustManager.h +4 -4
  492. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +3 -3
  493. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +271 -0
  494. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +343 -0
  495. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +46 -0
  496. data/ext/ice/cpp/{include/Ice/ObjectFactoryManagerF.h → src/IceSSL/UWPEngineF.h} +13 -8
  497. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +94 -0
  498. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +388 -0
  499. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +76 -0
  500. data/ext/ice/cpp/src/IceSSL/Util.cpp +66 -1256
  501. data/ext/ice/cpp/src/IceSSL/Util.h +48 -137
  502. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +162 -0
  503. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +22 -22
  504. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +34 -26
  505. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +20 -31
  506. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +25 -116
  507. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  508. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  509. data/ext/ice/cpp/src/IceUtil/Options.cpp +23 -46
  510. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +7 -6
  511. data/ext/ice/cpp/src/IceUtil/Random.cpp +13 -13
  512. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +3 -9
  513. data/ext/ice/cpp/src/IceUtil/Shared.cpp +8 -3
  514. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +501 -264
  515. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +540 -235
  516. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +37 -74
  517. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  518. data/ext/ice/cpp/src/IceUtil/UUID.cpp +10 -10
  519. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +98 -97
  520. data/ext/ice/cpp/src/IceUtil/Unicode.h +21 -35
  521. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +838 -0
  522. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +815 -163
  523. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +76 -0
  524. data/ext/ice/cpp/src/Slice/Checksum.cpp +2 -2
  525. data/ext/ice/cpp/{include → src}/Slice/Checksum.h +2 -2
  526. data/ext/ice/cpp/src/Slice/FileTracker.cpp +25 -78
  527. data/ext/ice/cpp/{include → src}/Slice/FileTracker.h +9 -9
  528. data/ext/ice/cpp/src/Slice/Grammar.cpp +1994 -1943
  529. data/ext/ice/cpp/src/Slice/Grammar.h +44 -24
  530. data/ext/ice/cpp/src/Slice/GrammarUtil.h +14 -14
  531. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +2658 -1927
  532. data/ext/ice/cpp/{include → src}/Slice/JavaUtil.h +178 -59
  533. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  534. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  535. data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -1
  536. data/ext/ice/cpp/src/Slice/MD5I.h +1 -1
  537. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +12 -15
  538. data/ext/ice/cpp/{include → src}/Slice/PHPUtil.h +6 -15
  539. data/ext/ice/cpp/src/Slice/Parser.cpp +802 -307
  540. data/ext/ice/cpp/{include → src}/Slice/Parser.h +76 -84
  541. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +43 -21
  542. data/ext/ice/cpp/{include → src}/Slice/Preprocessor.h +7 -12
  543. data/ext/ice/cpp/src/Slice/Python.cpp +207 -86
  544. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +683 -679
  545. data/ext/ice/cpp/{include → src}/Slice/PythonUtil.h +19 -8
  546. data/ext/ice/cpp/src/Slice/Ruby.cpp +38 -34
  547. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +177 -445
  548. data/ext/ice/cpp/{include → src}/Slice/RubyUtil.h +6 -6
  549. data/ext/ice/cpp/src/Slice/Scanner.cpp +218 -306
  550. data/ext/ice/cpp/src/Slice/{Util.cpp → SliceUtil.cpp} +37 -64
  551. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +374 -0
  552. data/ext/ice/cpp/src/Slice/Util.h +54 -0
  553. data/ext/ice/mcpp/Makefile +5 -2
  554. data/ice.gemspec +2 -7
  555. data/lib/Glacier2.rb +1 -1
  556. data/lib/Glacier2/Metrics.rb +7 -46
  557. data/lib/Glacier2/PermissionsVerifier.rb +24 -95
  558. data/lib/Glacier2/PermissionsVerifierF.rb +3 -3
  559. data/lib/Glacier2/Router.rb +32 -74
  560. data/lib/Glacier2/RouterF.rb +3 -3
  561. data/lib/Glacier2/SSLInfo.rb +4 -7
  562. data/lib/Glacier2/Session.rb +88 -307
  563. data/lib/Ice.rb +83 -52
  564. data/lib/Ice/BuiltinSequences.rb +4 -4
  565. data/lib/Ice/Communicator.rb +56 -58
  566. data/lib/Ice/CommunicatorF.rb +3 -3
  567. data/lib/Ice/Connection.rb +153 -162
  568. data/lib/Ice/ConnectionF.rb +3 -3
  569. data/lib/Ice/Current.rb +4 -11
  570. data/lib/Ice/Endpoint.rb +57 -133
  571. data/lib/Ice/EndpointF.rb +3 -3
  572. data/lib/Ice/EndpointTypes.rb +3 -7
  573. data/lib/Ice/FacetMap.rb +4 -4
  574. data/lib/Ice/Identity.rb +5 -8
  575. data/lib/Ice/ImplicitContext.rb +5 -34
  576. data/lib/Ice/ImplicitContextF.rb +3 -3
  577. data/lib/Ice/Instrumentation.rb +23 -275
  578. data/lib/Ice/InstrumentationF.rb +3 -3
  579. data/lib/Ice/LocalException.rb +95 -141
  580. data/lib/Ice/Locator.rb +51 -165
  581. data/lib/Ice/LocatorF.rb +3 -3
  582. data/lib/Ice/Logger.rb +5 -34
  583. data/lib/Ice/LoggerF.rb +3 -3
  584. data/lib/Ice/Metrics.rb +61 -416
  585. data/lib/Ice/ObjectAdapter.rb +34 -0
  586. data/lib/Ice/ObjectAdapterF.rb +3 -3
  587. data/lib/Ice/ObjectFactory.rb +5 -30
  588. data/lib/Ice/Plugin.rb +7 -60
  589. data/lib/Ice/PluginF.rb +3 -3
  590. data/lib/Ice/Process.rb +16 -52
  591. data/lib/Ice/ProcessF.rb +3 -3
  592. data/lib/Ice/Properties.rb +5 -41
  593. data/lib/Ice/PropertiesAdmin.rb +19 -56
  594. data/lib/Ice/PropertiesF.rb +3 -3
  595. data/lib/Ice/RemoteLogger.rb +34 -115
  596. data/lib/Ice/Router.rb +29 -101
  597. data/lib/Ice/RouterF.rb +3 -3
  598. data/lib/Ice/ServantLocator.rb +31 -0
  599. data/lib/Ice/{ObjectFactoryF.rb → ServantLocatorF.rb} +6 -6
  600. data/lib/Ice/SliceChecksumDict.rb +3 -3
  601. data/lib/Ice/ValueFactory.rb +33 -0
  602. data/lib/Ice/Version.rb +5 -11
  603. data/lib/IceBox.rb +1 -1
  604. data/lib/IceBox/IceBox.rb +44 -148
  605. data/lib/IceGrid.rb +1 -4
  606. data/lib/IceGrid/Admin.rb +551 -427
  607. data/lib/IceGrid/Descriptor.rb +62 -529
  608. data/lib/IceGrid/Exception.rb +24 -45
  609. data/lib/IceGrid/FileParser.rb +14 -50
  610. data/lib/IceGrid/PluginFacade.rb +40 -0
  611. data/lib/IceGrid/Registry.rb +151 -58
  612. data/lib/IceGrid/Session.rb +25 -64
  613. data/lib/IceGrid/UserAccountMapper.rb +14 -50
  614. data/lib/IcePatch2.rb +1 -1
  615. data/lib/IcePatch2/FileInfo.rb +5 -11
  616. data/lib/IcePatch2/FileServer.rb +33 -76
  617. data/lib/IceStorm.rb +1 -1
  618. data/lib/IceStorm/IceStorm.rb +79 -206
  619. data/lib/IceStorm/Metrics.rb +11 -89
  620. data/slice/Glacier2/Metrics.ice +8 -4
  621. data/slice/Glacier2/PermissionsVerifier.ice +10 -7
  622. data/slice/Glacier2/PermissionsVerifierF.ice +7 -4
  623. data/slice/Glacier2/Router.ice +10 -8
  624. data/slice/Glacier2/RouterF.ice +7 -4
  625. data/slice/Glacier2/SSLInfo.ice +8 -5
  626. data/slice/Glacier2/Session.ice +15 -13
  627. data/slice/Ice/BuiltinSequences.ice +7 -4
  628. data/slice/Ice/Communicator.ice +141 -66
  629. data/slice/Ice/CommunicatorF.ice +7 -4
  630. data/slice/Ice/Connection.ice +183 -86
  631. data/slice/Ice/ConnectionF.ice +7 -4
  632. data/slice/Ice/Current.ice +13 -9
  633. data/slice/Ice/Endpoint.ice +63 -14
  634. data/slice/Ice/EndpointF.ice +7 -4
  635. data/slice/Ice/EndpointTypes.ice +8 -6
  636. data/slice/Ice/FacetMap.ice +7 -4
  637. data/slice/Ice/Identity.ice +13 -5
  638. data/slice/Ice/ImplicitContext.ice +20 -18
  639. data/slice/Ice/ImplicitContextF.ice +7 -4
  640. data/slice/Ice/Instrumentation.ice +20 -19
  641. data/slice/Ice/InstrumentationF.ice +8 -5
  642. data/slice/Ice/LocalException.ice +87 -87
  643. data/slice/Ice/Locator.ice +19 -18
  644. data/slice/Ice/LocatorF.ice +7 -4
  645. data/slice/Ice/Logger.ice +9 -7
  646. data/slice/Ice/LoggerF.ice +7 -4
  647. data/slice/Ice/Metrics.ice +18 -14
  648. data/slice/Ice/ObjectAdapter.ice +30 -13
  649. data/slice/Ice/ObjectAdapterF.ice +7 -4
  650. data/slice/Ice/ObjectFactory.ice +15 -12
  651. data/slice/Ice/Plugin.ice +9 -6
  652. data/slice/Ice/PluginF.ice +8 -5
  653. data/slice/Ice/Process.ice +9 -6
  654. data/slice/Ice/ProcessF.ice +7 -4
  655. data/slice/Ice/Properties.ice +15 -12
  656. data/slice/Ice/PropertiesAdmin.ice +9 -5
  657. data/slice/Ice/PropertiesF.ice +7 -4
  658. data/slice/Ice/RemoteLogger.ice +33 -24
  659. data/slice/Ice/Router.ice +16 -7
  660. data/slice/Ice/RouterF.ice +7 -4
  661. data/slice/Ice/ServantLocator.ice +13 -10
  662. data/slice/Ice/ServantLocatorF.ice +7 -4
  663. data/slice/Ice/SliceChecksumDict.ice +7 -4
  664. data/slice/Ice/ValueFactory.ice +127 -0
  665. data/slice/Ice/Version.ice +9 -5
  666. data/slice/IceBT/ConnectionInfo.ice +53 -0
  667. data/slice/IceBT/EndpointInfo.ice +51 -0
  668. data/slice/IceBT/Types.ice +39 -0
  669. data/slice/IceBox/IceBox.ice +20 -21
  670. data/slice/IceDiscovery/IceDiscovery.ice +9 -5
  671. data/slice/IceGrid/Admin.ice +390 -30
  672. data/slice/IceGrid/Descriptor.ice +37 -29
  673. data/slice/IceGrid/Exception.ice +33 -27
  674. data/slice/IceGrid/FileParser.ice +9 -6
  675. data/slice/IceGrid/PluginFacade.ice +11 -9
  676. data/slice/IceGrid/Registry.ice +139 -16
  677. data/slice/IceGrid/Session.ice +10 -8
  678. data/slice/IceGrid/UserAccountMapper.ice +9 -6
  679. data/slice/IceIAP/ConnectionInfo.ice +70 -0
  680. data/slice/IceIAP/EndpointInfo.ice +64 -0
  681. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +9 -7
  682. data/slice/IcePatch2/FileInfo.ice +9 -8
  683. data/slice/IcePatch2/FileServer.ice +17 -13
  684. data/slice/IceSSL/ConnectionInfo.ice +14 -17
  685. data/slice/IceSSL/ConnectionInfoF.ice +24 -0
  686. data/slice/IceSSL/EndpointInfo.ice +9 -30
  687. data/slice/IceStorm/IceStorm.ice +22 -18
  688. data/slice/IceStorm/Metrics.ice +9 -5
  689. metadata +154 -120
  690. data/ext/ObjectFactory.cpp +0 -140
  691. data/ext/ObjectFactory.h +0 -50
  692. data/ext/ice/cpp/include/Ice/BasicStream.h +0 -1335
  693. data/ext/ice/cpp/include/Ice/Communicator.h +0 -200
  694. data/ext/ice/cpp/include/Ice/Connection.h +0 -497
  695. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +0 -62
  696. data/ext/ice/cpp/include/Ice/Endpoint.h +0 -341
  697. data/ext/ice/cpp/include/Ice/Identity.h +0 -168
  698. data/ext/ice/cpp/include/Ice/Instrumentation.h +0 -365
  699. data/ext/ice/cpp/include/Ice/LocalException.h +0 -1030
  700. data/ext/ice/cpp/include/Ice/Locator.h +0 -2193
  701. data/ext/ice/cpp/include/Ice/Metrics.h +0 -2974
  702. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +0 -168
  703. data/ext/ice/cpp/include/Ice/ObjectFactory.h +0 -92
  704. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +0 -66
  705. data/ext/ice/cpp/include/Ice/Outgoing.h +0 -225
  706. data/ext/ice/cpp/include/Ice/Plugin.h +0 -125
  707. data/ext/ice/cpp/include/Ice/Process.h +0 -574
  708. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +0 -830
  709. data/ext/ice/cpp/include/Ice/RemoteLogger.h +0 -1500
  710. data/ext/ice/cpp/include/Ice/Router.h +0 -1159
  711. data/ext/ice/cpp/include/Ice/Stream.h +0 -447
  712. data/ext/ice/cpp/include/Ice/StreamF.h +0 -30
  713. data/ext/ice/cpp/include/Ice/Version.h +0 -262
  714. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +0 -158
  715. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +0 -142
  716. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +0 -119
  717. data/ext/ice/cpp/include/IceUtil/Cache.h +0 -362
  718. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +0 -65
  719. data/ext/ice/cpp/include/Slice/CsUtil.h +0 -92
  720. data/ext/ice/cpp/include/Slice/DotNetNames.h +0 -34
  721. data/ext/ice/cpp/include/Slice/ObjCUtil.h +0 -127
  722. data/ext/ice/cpp/include/Slice/Util.h +0 -56
  723. data/ext/ice/cpp/src/Ice/BasicStream.cpp +0 -3428
  724. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +0 -62
  725. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +0 -139
  726. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +0 -43
  727. data/ext/ice/cpp/src/Ice/Outgoing.cpp +0 -694
  728. data/ext/ice/cpp/src/Ice/Stream.cpp +0 -53
  729. data/ext/ice/cpp/src/Ice/StreamI.cpp +0 -832
  730. data/ext/ice/cpp/src/Ice/StreamI.h +0 -198
  731. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +0 -1336
  732. data/ext/ice/cpp/src/IceUtil/Exception.cpp +0 -792
  733. data/ext/ice/cpp/src/IceUtil/FileUtil.h +0 -185
  734. data/ext/ice/cpp/src/Slice/CsUtil.cpp +0 -2660
  735. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +0 -146
  736. data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +0 -1310
  737. data/lib/IceGrid/Locator.rb +0 -106
  738. data/lib/IceGrid/Observer.rb +0 -572
  739. data/lib/IceGrid/Query.rb +0 -169
  740. data/slice/Freeze/BackgroundSaveEvictor.ice +0 -111
  741. data/slice/Freeze/CatalogData.ice +0 -49
  742. data/slice/Freeze/Connection.ice +0 -121
  743. data/slice/Freeze/DB.ice +0 -37
  744. data/slice/Freeze/Evictor.ice +0 -346
  745. data/slice/Freeze/EvictorF.ice +0 -22
  746. data/slice/Freeze/EvictorStorage.ice +0 -72
  747. data/slice/Freeze/Exception.ice +0 -100
  748. data/slice/Freeze/Transaction.ice +0 -58
  749. data/slice/Freeze/TransactionalEvictor.ice +0 -50
  750. data/slice/IceGrid/Locator.ice +0 -57
  751. data/slice/IceGrid/Observer.ice +0 -395
  752. data/slice/IceGrid/Query.ice +0 -131
@@ -1,6 +1,6 @@
1
1
  // **********************************************************************
2
2
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
3
+ // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
4
4
  //
5
5
  // This copy of Ice is licensed to you under the terms described in the
6
6
  // ICE_LICENSE file included in this distribution.
@@ -21,7 +21,7 @@ namespace Ruby
21
21
  //
22
22
  // Generate Ruby code for a translation unit.
23
23
  //
24
- SLICE_API void generate(const Slice::UnitPtr&, bool, bool, const std::vector<std::string>&, IceUtilInternal::Output&);
24
+ void generate(const Slice::UnitPtr&, bool, bool, const std::vector<std::string>&, IceUtilInternal::Output&);
25
25
 
26
26
  //
27
27
  // Check the given identifier against Ruby's list of reserved words. If it matches
@@ -33,20 +33,20 @@ enum IdentStyle
33
33
  IdentToUpper, // Mapped identifier must begin with an upper-case letter.
34
34
  IdentToLower // Mapped identifier must begin with a lower-case letter.
35
35
  };
36
- SLICE_API std::string fixIdent(const std::string&, IdentStyle);
36
+ std::string fixIdent(const std::string&, IdentStyle);
37
37
 
38
38
  //
39
39
  // Get the fully-qualified name of the given definition. If a prefix is provided,
40
40
  // it is prepended to the definition's unqualified name.
41
41
  //
42
- SLICE_API std::string getAbsolute(const Slice::ContainedPtr&, IdentStyle, const std::string& = std::string());
42
+ std::string getAbsolute(const Slice::ContainedPtr&, IdentStyle, const std::string& = std::string());
43
43
 
44
44
  //
45
45
  // Emit a comment header.
46
46
  //
47
- SLICE_API void printHeader(IceUtilInternal::Output&);
47
+ void printHeader(IceUtilInternal::Output&);
48
48
 
49
- SLICE_API int compile(const std::vector<std::string>&);
49
+ int compile(const std::vector<std::string>&);
50
50
 
51
51
  }
52
52
  }
@@ -1,7 +1,7 @@
1
1
  #include <IceUtil/ScannerConfig.h>
2
- #line 2 "lex.yy.c"
2
+ #line 2 "src/Slice/Scanner.cpp"
3
3
 
4
- #line 4 "lex.yy.c"
4
+ #line 4 "src/Slice/Scanner.cpp"
5
5
 
6
6
  #define YY_INT_ALIGNED short int
7
7
 
@@ -29,7 +29,7 @@
29
29
  #define FLEX_SCANNER
30
30
  #define YY_FLEX_MAJOR_VERSION 2
31
31
  #define YY_FLEX_MINOR_VERSION 5
32
- #define YY_FLEX_SUBMINOR_VERSION 39
32
+ #define YY_FLEX_SUBMINOR_VERSION 37
33
33
  #if YY_FLEX_SUBMINOR_VERSION > 0
34
34
  #define FLEX_BETA
35
35
  #endif
@@ -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
 
@@ -162,15 +162,7 @@ typedef unsigned int flex_uint32_t;
162
162
 
163
163
  /* Size of default input buffer. */
164
164
  #ifndef YY_BUF_SIZE
165
- #ifdef __ia64__
166
- /* On IA-64, the buffer size is 16k, not 8k.
167
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
168
- * Ditto for the __ia64__ case accordingly.
169
- */
170
- #define YY_BUF_SIZE 32768
171
- #else
172
165
  #define YY_BUF_SIZE 16384
173
- #endif /* __ia64__ */
174
166
  #endif
175
167
 
176
168
  /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -196,8 +188,7 @@ extern FILE *slice_in, *slice_out;
196
188
  #define EOB_ACT_LAST_MATCH 2
197
189
 
198
190
  #define YY_LESS_LINENO(n)
199
- #define YY_LINENO_REWIND_TO(ptr)
200
-
191
+
201
192
  /* Return all but the first "n" matched characters back to the input stream. */
202
193
  #define yyless(n) \
203
194
  do \
@@ -254,7 +245,7 @@ struct yy_buffer_state
254
245
 
255
246
  int yy_bs_lineno; /**< The line count. */
256
247
  int yy_bs_column; /**< The column count. */
257
-
248
+
258
249
  /* Whether to try to fill the input buffer when we reach the
259
250
  * end of it.
260
251
  */
@@ -552,19 +543,19 @@ int slice__flex_debug = 0;
552
543
  #define YY_MORE_ADJ 0
553
544
  #define YY_RESTORE_YY_MORE_OFFSET
554
545
  char *slice_text;
555
- #line 1 "Scanner.l"
556
- #line 2 "Scanner.l"
546
+ #line 1 "src/Slice/Scanner.l"
547
+ #line 2 "src/Slice/Scanner.l"
557
548
 
558
549
  // **********************************************************************
559
550
  //
560
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
551
+ // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
561
552
  //
562
553
  // This copy of Ice is licensed to you under the terms described in the
563
554
  // ICE_LICENSE file included in this distribution.
564
555
  //
565
556
  // **********************************************************************
566
557
 
567
- #include <Slice/GrammarUtil.h> // Before Grammer.h, so that YYSTYPE is defined
558
+ #include <Slice/GrammarUtil.h> // Before Grammer.h, so that YYSTYPE is defined
568
559
  #include <Slice/Grammar.h>
569
560
  #include <IceUtil/InputUtil.h>
570
561
 
@@ -593,6 +584,10 @@ char *slice_text;
593
584
  # pragma warning( 4 : 4018 )
594
585
  #endif
595
586
 
587
+ #if defined(__GNUC__)
588
+ # pragma GCC diagnostic ignored "-Wsign-compare"
589
+ #endif
590
+
596
591
  #ifdef _MSC_VER
597
592
  # ifdef slice_wrap
598
593
  # undef slice_wrap
@@ -607,7 +602,7 @@ char *slice_text;
607
602
  # define slice_wrap() 1
608
603
  # endif
609
604
  # ifdef ICE_64
610
- # pragma error_messages(off,truncwarn)
605
+ # pragma error_messages(off,truncwarn)
611
606
  # endif
612
607
  #endif
613
608
 
@@ -620,7 +615,7 @@ namespace Slice
620
615
  //
621
616
  // Definitions for the case-insensitive keyword-token map.
622
617
  //
623
- typedef std::map<std::string, int, Slice::CICompare> StringTokenMap;
618
+ typedef std::map<std::string, int> StringTokenMap;
624
619
  static StringTokenMap keywordMap;
625
620
 
626
621
  void initScanner();
@@ -628,11 +623,11 @@ int checkKeyword(string&);
628
623
 
629
624
  }
630
625
 
631
- #define YY_USER_INIT initScanner();
626
+ #define YY_USER_INIT initScanner();
632
627
 
633
628
 
634
629
 
635
- #line 635 "lex.yy.c"
630
+ #line 630 "src/Slice/Scanner.cpp"
636
631
 
637
632
  #define INITIAL 0
638
633
  #define BOMSCAN 1
@@ -694,7 +689,7 @@ extern int slice_wrap (void );
694
689
  #endif
695
690
 
696
691
  static void yyunput (int c,char *buf_ptr );
697
-
692
+
698
693
  #ifndef yytext_ptr
699
694
  static void yy_flex_strncpy (char *,yyconst char *,int );
700
695
  #endif
@@ -715,12 +710,7 @@ static int input (void );
715
710
 
716
711
  /* Amount of stuff to slurp up with each read. */
717
712
  #ifndef YY_READ_BUF_SIZE
718
- #ifdef __ia64__
719
- /* On IA-64, the buffer size is 16k, not 8k */
720
- #define YY_READ_BUF_SIZE 16384
721
- #else
722
713
  #define YY_READ_BUF_SIZE 8192
723
- #endif /* __ia64__ */
724
714
  #endif
725
715
 
726
716
  /* Copy whatever the last rule matched to the standard output. */
@@ -823,7 +813,12 @@ YY_DECL
823
813
  register yy_state_type yy_current_state;
824
814
  register char *yy_cp, *yy_bp;
825
815
  register int yy_act;
826
-
816
+
817
+ #line 97 "src/Slice/Scanner.l"
818
+
819
+
820
+ #line 820 "src/Slice/Scanner.cpp"
821
+
827
822
  if ( !(yy_init) )
828
823
  {
829
824
  (yy_init) = 1;
@@ -850,12 +845,6 @@ YY_DECL
850
845
  slice__load_buffer_state( );
851
846
  }
852
847
 
853
- {
854
- #line 94 "Scanner.l"
855
-
856
-
857
- #line 857 "lex.yy.c"
858
-
859
848
  while ( 1 ) /* loops until end-of-file is reached */
860
849
  {
861
850
  yy_cp = (yy_c_buf_p);
@@ -873,7 +862,7 @@ YY_DECL
873
862
  yy_match:
874
863
  do
875
864
  {
876
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
865
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
877
866
  if ( yy_accept[yy_current_state] )
878
867
  {
879
868
  (yy_last_accepting_state) = yy_current_state;
@@ -913,7 +902,7 @@ case 1:
913
902
  (yy_c_buf_p) = yy_cp -= 1;
914
903
  YY_DO_BEFORE_ACTION; /* set up slice_text again */
915
904
  YY_RULE_SETUP
916
- #line 96 "Scanner.l"
905
+ #line 99 "src/Slice/Scanner.l"
917
906
  {
918
907
  if(unit->scanPosition(slice_text))
919
908
  {
@@ -924,11 +913,10 @@ YY_RULE_SETUP
924
913
  case 2:
925
914
  /* rule 2 can match eol */
926
915
  *yy_cp = (yy_hold_char); /* undo effects of setting up slice_text */
927
- YY_LINENO_REWIND_TO(yy_cp - 1);
928
916
  (yy_c_buf_p) = yy_cp -= 1;
929
917
  YY_DO_BEFORE_ACTION; /* set up slice_text again */
930
918
  YY_RULE_SETUP
931
- #line 103 "Scanner.l"
919
+ #line 106 "src/Slice/Scanner.l"
932
920
  {
933
921
  if(unit->scanPosition(slice_text))
934
922
  {
@@ -941,7 +929,7 @@ case 3:
941
929
  (yy_c_buf_p) = yy_cp -= 1;
942
930
  YY_DO_BEFORE_ACTION; /* set up slice_text again */
943
931
  YY_RULE_SETUP
944
- #line 110 "Scanner.l"
932
+ #line 113 "src/Slice/Scanner.l"
945
933
  {
946
934
  if(unit->scanPosition(slice_text))
947
935
  {
@@ -952,11 +940,10 @@ YY_RULE_SETUP
952
940
  case 4:
953
941
  /* rule 4 can match eol */
954
942
  *yy_cp = (yy_hold_char); /* undo effects of setting up slice_text */
955
- YY_LINENO_REWIND_TO(yy_cp - 1);
956
943
  (yy_c_buf_p) = yy_cp -= 1;
957
944
  YY_DO_BEFORE_ACTION; /* set up slice_text again */
958
945
  YY_RULE_SETUP
959
- #line 117 "Scanner.l"
946
+ #line 120 "src/Slice/Scanner.l"
960
947
  {
961
948
  if(unit->scanPosition(slice_text))
962
949
  {
@@ -966,69 +953,69 @@ YY_RULE_SETUP
966
953
  YY_BREAK
967
954
  case 5:
968
955
  YY_RULE_SETUP
969
- #line 124 "Scanner.l"
956
+ #line 127 "src/Slice/Scanner.l"
970
957
  {
971
958
  // C++-style comment
972
959
  BEGIN(MAINSCAN);
973
960
  int c;
974
961
  do
975
962
  {
976
- c = yyinput();
977
- if(c == '\n')
978
- {
979
- unit->nextLine();
980
- }
963
+ c = yyinput();
964
+ if(c == '\n')
965
+ {
966
+ unit->nextLine();
967
+ }
981
968
  }
982
969
  while(c != '\n' && c != EOF);
983
970
  }
984
971
  YY_BREAK
985
972
  case 6:
986
973
  YY_RULE_SETUP
987
- #line 139 "Scanner.l"
974
+ #line 142 "src/Slice/Scanner.l"
988
975
  {
989
976
  // C-style comment
990
977
  BEGIN(MAINSCAN);
991
978
  string comment = slice_text + 2;
992
979
  while(true)
993
980
  {
994
- int c = yyinput();
995
- if(c == '\n')
996
- {
997
- comment += static_cast<char>(c);
998
- unit->nextLine();
999
- }
1000
- else if(c == '*')
1001
- {
1002
- int next = yyinput();
1003
- if(next == '/')
1004
- {
1005
- break;
1006
- }
1007
- else
1008
- {
1009
- comment += static_cast<char>(c);
1010
- unput(next);
1011
- }
1012
- }
1013
- else if(c == EOF)
1014
- {
1015
- unit->warning("EOF in comment");
1016
- break;
1017
- }
1018
- else
1019
- {
1020
- comment += static_cast<char>(c);
1021
- }
981
+ int c = yyinput();
982
+ if(c == '\n')
983
+ {
984
+ comment += static_cast<char>(c);
985
+ unit->nextLine();
986
+ }
987
+ else if(c == '*')
988
+ {
989
+ int next = yyinput();
990
+ if(next == '/')
991
+ {
992
+ break;
993
+ }
994
+ else
995
+ {
996
+ comment += static_cast<char>(c);
997
+ unput(next);
998
+ }
999
+ }
1000
+ else if(c == EOF)
1001
+ {
1002
+ unit->warning(All, "EOF in comment");
1003
+ break;
1004
+ }
1005
+ else
1006
+ {
1007
+ comment += static_cast<char>(c);
1008
+ }
1022
1009
  }
1023
1010
  if(!comment.empty() && comment[0] == '*')
1024
1011
  {
1025
- unit->setComment(comment);
1012
+ unit->setComment(comment);
1026
1013
  }
1027
1014
  }
1028
1015
  YY_BREAK
1029
1016
  case 7:
1030
1017
  YY_RULE_SETUP
1031
- #line 180 "Scanner.l"
1018
+ #line 183 "src/Slice/Scanner.l"
1032
1019
  {
1033
1020
  BEGIN(MAINSCAN);
1034
1021
  return ICE_SCOPE_DELIMITER;
@@ -1036,7 +1023,7 @@ YY_RULE_SETUP
1036
1023
  YY_BREAK
1037
1024
  case 8:
1038
1025
  YY_RULE_SETUP
1039
- #line 185 "Scanner.l"
1026
+ #line 188 "src/Slice/Scanner.l"
1040
1027
  {
1041
1028
  BEGIN(MAINSCAN);
1042
1029
  return ICE_METADATA_OPEN;
@@ -1044,7 +1031,7 @@ YY_RULE_SETUP
1044
1031
  YY_BREAK
1045
1032
  case 9:
1046
1033
  YY_RULE_SETUP
1047
- #line 190 "Scanner.l"
1034
+ #line 193 "src/Slice/Scanner.l"
1048
1035
  {
1049
1036
  BEGIN(MAINSCAN);
1050
1037
  return ICE_METADATA_CLOSE;
@@ -1052,7 +1039,7 @@ YY_RULE_SETUP
1052
1039
  YY_BREAK
1053
1040
  case 10:
1054
1041
  YY_RULE_SETUP
1055
- #line 195 "Scanner.l"
1042
+ #line 198 "src/Slice/Scanner.l"
1056
1043
  {
1057
1044
  BEGIN(MAINSCAN);
1058
1045
  return ICE_GLOBAL_METADATA_OPEN;
@@ -1060,7 +1047,7 @@ YY_RULE_SETUP
1060
1047
  YY_BREAK
1061
1048
  case 11:
1062
1049
  YY_RULE_SETUP
1063
- #line 200 "Scanner.l"
1050
+ #line 203 "src/Slice/Scanner.l"
1064
1051
  {
1065
1052
  BEGIN(MAINSCAN);
1066
1053
  return ICE_GLOBAL_METADATA_CLOSE;
@@ -1069,7 +1056,7 @@ YY_RULE_SETUP
1069
1056
  case 12:
1070
1057
  /* rule 12 can match eol */
1071
1058
  YY_RULE_SETUP
1072
- #line 205 "Scanner.l"
1059
+ #line 208 "src/Slice/Scanner.l"
1073
1060
  {
1074
1061
  BEGIN(MAINSCAN);
1075
1062
  StringTokPtr ident = new StringTok;
@@ -1097,7 +1084,7 @@ YY_RULE_SETUP
1097
1084
  YY_BREAK
1098
1085
  case 13:
1099
1086
  YY_RULE_SETUP
1100
- #line 230 "Scanner.l"
1087
+ #line 233 "src/Slice/Scanner.l"
1101
1088
  {
1102
1089
  BEGIN(MAINSCAN);
1103
1090
  StringTokPtr ident = new StringTok;
@@ -1108,12 +1095,12 @@ YY_RULE_SETUP
1108
1095
  YY_BREAK
1109
1096
  case 14:
1110
1097
  YY_RULE_SETUP
1111
- #line 238 "Scanner.l"
1098
+ #line 241 "src/Slice/Scanner.l"
1112
1099
  {
1113
1100
  BEGIN(MAINSCAN);
1114
1101
  StringTokPtr str = new StringTok;
1115
1102
  str->literal = "\"";
1116
- while(true)
1103
+ while(true)
1117
1104
  {
1118
1105
  char c = static_cast<char>(yyinput());
1119
1106
  str->literal += c;
@@ -1126,9 +1113,10 @@ YY_RULE_SETUP
1126
1113
  unit->error("EOF in string");
1127
1114
  break;
1128
1115
  }
1129
- else if(c == '\n')
1116
+ else if(static_cast<unsigned char>(c) < 32 || c == 127)
1130
1117
  {
1131
- unit->error("newline in string");
1118
+ unit->error("a string literal can only contain printable ASCII characters and non-ASCII characters");
1119
+ break;
1132
1120
  }
1133
1121
  else if(c == '\\')
1134
1122
  {
@@ -1138,67 +1126,58 @@ YY_RULE_SETUP
1138
1126
  {
1139
1127
  case '\\':
1140
1128
  {
1129
+ //
1130
+ // add extra escape to our internal string
1131
+ //
1141
1132
  str->v += '\\';
1142
1133
  str->v += '\\';
1143
1134
  break;
1144
1135
  }
1145
1136
  case '"':
1146
1137
  case '\'':
1138
+ case '?':
1147
1139
  {
1148
1140
  str->v += next;
1149
1141
  break;
1150
1142
  }
1151
-
1152
- case 'n':
1153
- {
1154
- str->v += '\n';
1155
- break;
1156
- }
1157
-
1158
- case 'r':
1143
+ case 'a':
1159
1144
  {
1160
- str->v += '\r';
1145
+ str->v += '\a';
1161
1146
  break;
1162
1147
  }
1163
-
1164
- case 't':
1148
+ case 'b':
1165
1149
  {
1166
- str->v += '\t';
1150
+ str->v += '\b';
1167
1151
  break;
1168
1152
  }
1169
-
1170
- case 'v':
1153
+ case 'f':
1171
1154
  {
1172
- str->v += '\v';
1155
+ str->v += '\f';
1173
1156
  break;
1174
1157
  }
1175
-
1176
- case 'f':
1158
+ case 'n':
1177
1159
  {
1178
- str->v += '\f';
1160
+ str->v += '\n';
1179
1161
  break;
1180
1162
  }
1181
-
1182
- case 'a':
1163
+ case 'r':
1183
1164
  {
1184
- str->v += '\a';
1165
+ str->v += '\r';
1185
1166
  break;
1186
1167
  }
1187
-
1188
- case 'b':
1168
+ case 't':
1189
1169
  {
1190
- str->v += '\b';
1170
+ str->v += '\t';
1191
1171
  break;
1192
1172
  }
1193
-
1194
- case '?':
1173
+ case 'v':
1195
1174
  {
1196
- str->v += '\?';
1175
+ str->v += '\v';
1197
1176
  break;
1198
1177
  }
1199
1178
 
1200
1179
  //
1201
- // Octal value \nnn limited to three octal digits but terminate at the first character
1180
+ // Octal value \nnn limited to three octal digits but terminate at the first character
1202
1181
  // that is not a valid octal digit if encountered sooner.
1203
1182
  //
1204
1183
  case '0':
@@ -1211,7 +1190,6 @@ YY_RULE_SETUP
1211
1190
  case '7':
1212
1191
  {
1213
1192
  static string octalDigits = "01234567";
1214
- IceUtil::Int64 value = 0;
1215
1193
  string escape;
1216
1194
  escape += next;
1217
1195
  for(int i = 0; i < 2; ++i)
@@ -1222,158 +1200,92 @@ YY_RULE_SETUP
1222
1200
  unput(next);
1223
1201
  break;
1224
1202
  }
1225
- escape += next;
1203
+ escape += next;
1226
1204
  }
1227
1205
  str->literal += escape;
1228
- value = IceUtilInternal::strToInt64(escape.c_str(), 0, 8);
1229
-
1230
- if(value == 0)
1231
- {
1232
- unit->error("illegal NUL character in string constant");
1233
- }
1234
- else if(value > 255)
1206
+ IceUtil::Int64 value = IceUtilInternal::strToInt64(escape.c_str(), 0, 8);
1207
+ if(value > 255)
1235
1208
  {
1236
- ostringstream os;
1237
- os << "octal escape sequence out of range: '\\" << oct << value << "'";
1238
- unit->warning(os.str());
1209
+ unit->error(string("octal escape sequence out of range: `\\") + escape + "'");
1239
1210
  }
1240
1211
  str->v += static_cast<char>(value);
1241
1212
  break;
1242
1213
  }
1214
+
1243
1215
  case 'x':
1244
1216
  {
1245
- IceUtil::Int64 value = 0;
1246
1217
  string escape = "";
1247
- while(isxdigit(static_cast<unsigned char>(next = static_cast<char>(yyinput()))))
1218
+ next = static_cast<char>(yyinput());
1219
+
1220
+ //
1221
+ // Unlike C++, we limit hex escape sequences to 2 hex digits
1222
+ //
1223
+ while(isxdigit(next) && escape.length() < 2)
1248
1224
  {
1249
1225
  escape += next;
1226
+ next = static_cast<char>(yyinput());
1250
1227
  }
1251
1228
  unput(next);
1252
-
1253
- str->literal += escape;
1254
- value = IceUtilInternal::strToInt64(escape.c_str(), 0, 16);
1255
1229
 
1256
- if(value == 0)
1230
+ if(escape.length() == 0)
1257
1231
  {
1258
- unit->error("illegal NUL character in string constant");
1259
- }
1260
- else if(value > 255)
1261
- {
1262
- ostringstream os;
1263
- os << "hex escape sequence out of range: '\\x" << hex << value << "'";
1264
- unit->warning(os.str());
1232
+ unit->error("no hex digit in hex escape sequence");
1265
1233
  }
1234
+
1235
+ str->literal += escape;
1236
+ IceUtil::Int64 value = IceUtilInternal::strToInt64(escape.c_str(), 0, 16);
1237
+
1238
+ assert(value >= 0 && value <= 255);
1266
1239
  str->v += static_cast<char>(value);
1267
1240
  break;
1268
1241
  }
1269
-
1242
+
1270
1243
  //
1271
- // Universal character name \unnnn code point U+nnnn
1244
+ // Universal character name
1272
1245
  //
1273
1246
  case 'u':
1247
+ case 'U':
1274
1248
  {
1275
- IceUtil::Int64 value = 0;
1276
1249
  string escape = "";
1277
-
1278
- for(int i = 0; i < 4; ++i)
1250
+ char c = next;
1251
+ int size = (c == 'u') ? 4 : 8;
1252
+ while(size > 0)
1279
1253
  {
1280
1254
  next = static_cast<char>(yyinput());
1281
- str->literal += next;
1282
1255
  if(!isxdigit(static_cast<unsigned char>(next)))
1283
1256
  {
1284
- unit->error("unknown escape sequence in string constant: " + str->literal);
1257
+ unit->error(string("unknown escape sequence in string literal: `\\") + c + escape + next + "'");
1258
+ unput(next);
1285
1259
  break;
1286
1260
  }
1287
1261
  escape += next;
1288
- }
1289
-
1290
- value = escape.size() == 4 ? IceUtilInternal::strToInt64(escape.c_str(), 0, 16) : -1;
1291
-
1292
- ostringstream os;
1293
- os << '\\' << 'u';
1294
- os.fill('0');
1295
- os.width(4);
1296
- os << hex << value;
1297
-
1298
- if(value == 0)
1299
- {
1300
- unit->error("illegal NUL character in string constant");
1301
- }
1302
-
1303
-
1304
- //
1305
- // Determine if a character is a surrogate:
1306
- //
1307
- // * High surrogate code point, ranging from 0xd800 to 0xdbff, inclusive
1308
- // * Low surrogate code point, ranging from 0xdc00 to 0xdfff, inclusive.
1309
- //
1310
- else if((value >= 0xd800 && value <= 0xdbff) || (value >= 0xdc00 && value <= 0xdfff))
1311
- {
1312
- unit->error("unknown escape sequence in string constant: '" + os.str() + "'");
1262
+ --size;
1313
1263
  }
1314
1264
 
1315
- str->v += os.str();
1316
-
1317
- break;
1318
- }
1319
-
1320
- case 'U':
1321
- {
1322
- IceUtil::Int64 value = 0;
1323
- string escape = "";
1324
-
1325
- for(int i = 0; i < 8; ++i)
1265
+ if(size == 0)
1326
1266
  {
1327
- next = static_cast<char>(yyinput());
1328
- str->literal += next;
1329
- if(!isxdigit(static_cast<unsigned char>(next)))
1267
+ // All digits read, check value
1268
+ IceUtil::Int64 codePoint = IceUtilInternal::strToInt64(escape.c_str(), 0, 16);
1269
+ if(codePoint >= 0xd800 && codePoint <= 0xdfff)
1330
1270
  {
1331
-
1332
- unit->error("unknown escape sequence in string constant: " + str->literal);
1333
- break;
1271
+ unit->error(string("a universal character name cannot designate a surrogate: `\\") + c + escape + "'");
1334
1272
  }
1335
- escape += next;
1336
1273
  }
1337
-
1338
- value = escape.size() == 8 ? IceUtilInternal::strToInt64(escape.c_str(), 0, 16) : -1;
1339
1274
 
1340
- ostringstream os;
1341
- os << '\\' << 'U';
1342
- os.fill('0');
1343
- os.width(8);
1344
- os << hex << value;
1345
-
1346
- if(value == 0)
1347
- {
1348
- unit->error("illegal NUL character in string constant");
1349
- }
1350
-
1351
- //
1352
- // Determine if a character is a surrogate:
1353
- //
1354
- // * High surrogate code point, ranging from 0xd800 to 0xdbff, inclusive
1355
- // * Low surrogate code point, ranging from 0xdc00 to 0xdfff, inclusive.
1356
- //
1357
- else if((value >= 0xd800 && value <= 0xdbff) || (value >= 0xdc00 && value <= 0xdfff))
1358
- {
1359
- unit->error("unknown escape sequence in string constant: '" + os.str() + "'");
1360
- }
1361
-
1362
- str->v += os.str();
1275
+ str->literal += escape;
1276
+ str->v += string("\\") + c + escape;
1363
1277
  break;
1364
1278
  }
1365
1279
 
1366
1280
  default:
1367
1281
  {
1368
1282
  ostringstream os;
1369
- os << "unknown escape sequence '\\" << next << "'";
1370
- unit->warning(os.str());
1371
- //
1372
- // We escape the backslack in a unknown escape sequence
1373
- // to keep compativility with 3.6"
1374
- //
1283
+ os << "unknown escape sequence `\\" << next << "'";
1284
+ unit->warning(All, os.str());
1285
+
1286
+ // Escape the \ in this unknown escape sequence
1287
+ str->v += '\\';
1375
1288
  str->v += '\\';
1376
- str->v += c;
1377
1289
  unput(next);
1378
1290
  }
1379
1291
  }
@@ -1389,7 +1301,7 @@ YY_RULE_SETUP
1389
1301
  YY_BREAK
1390
1302
  case 15:
1391
1303
  YY_RULE_SETUP
1392
- #line 515 "Scanner.l"
1304
+ #line 444 "src/Slice/Scanner.l"
1393
1305
  {
1394
1306
  BEGIN(MAINSCAN);
1395
1307
  IntegerTokPtr itp = new IntegerTok;
@@ -1397,18 +1309,18 @@ YY_RULE_SETUP
1397
1309
  *yylvalp = itp;
1398
1310
  if(!IceUtilInternal::stringToInt64(string(slice_text), itp->v))
1399
1311
  {
1400
- assert(itp->v != 0);
1401
- string msg = "integer constant `";
1402
- msg += slice_text;
1403
- msg += "' out of range";
1404
- unit->error(msg);
1312
+ assert(itp->v != 0);
1313
+ string msg = "integer constant `";
1314
+ msg += slice_text;
1315
+ msg += "' out of range";
1316
+ unit->error(msg);
1405
1317
  }
1406
1318
  return ICE_INTEGER_LITERAL;
1407
1319
  }
1408
1320
  YY_BREAK
1409
1321
  case 16:
1410
1322
  YY_RULE_SETUP
1411
- #line 531 "Scanner.l"
1323
+ #line 460 "src/Slice/Scanner.l"
1412
1324
  {
1413
1325
  BEGIN(MAINSCAN);
1414
1326
  errno = 0;
@@ -1419,22 +1331,22 @@ YY_RULE_SETUP
1419
1331
  char lastChar = literal[literal.size() - 1];
1420
1332
  if(lastChar == 'f' || lastChar == 'F')
1421
1333
  {
1422
- literal = literal.substr(0, literal.size() - 1); // Clobber trailing 'f' or 'F' suffix
1334
+ literal = literal.substr(0, literal.size() - 1); // Clobber trailing 'f' or 'F' suffix
1423
1335
  }
1424
1336
  ftp->v = strtod(literal.c_str(), 0);
1425
1337
  if((ftp->v == HUGE_VAL || ftp->v == -HUGE_VAL) && errno == ERANGE)
1426
1338
  {
1427
- string msg = "floating-point constant `";
1428
- msg += slice_text;
1429
- msg += "' too large (overflow)";
1430
- unit->error(msg);
1339
+ string msg = "floating-point constant `";
1340
+ msg += slice_text;
1341
+ msg += "' too large (overflow)";
1342
+ unit->error(msg);
1431
1343
  }
1432
1344
  else if(ftp->v == 0 && errno == ERANGE)
1433
1345
  {
1434
- string msg = "floating-point constant `";
1435
- msg += slice_text;
1436
- msg += "' too small (underflow)";
1437
- unit->error(msg);
1346
+ string msg = "floating-point constant `";
1347
+ msg += slice_text;
1348
+ msg += "' too small (underflow)";
1349
+ unit->error(msg);
1438
1350
  }
1439
1351
  return ICE_FLOATING_POINT_LITERAL;
1440
1352
  }
@@ -1442,54 +1354,54 @@ YY_RULE_SETUP
1442
1354
  case 17:
1443
1355
  /* rule 17 can match eol */
1444
1356
  YY_RULE_SETUP
1445
- #line 561 "Scanner.l"
1357
+ #line 490 "src/Slice/Scanner.l"
1446
1358
  {
1447
1359
  // Ignore white-space
1448
-
1360
+
1449
1361
  if(unit->currentLine() != 0)
1450
1362
  {
1451
1363
  BEGIN(MAINSCAN);
1452
1364
  }
1453
1365
  if(slice_text[0] == '\n')
1454
1366
  {
1455
- unit->nextLine();
1367
+ unit->nextLine();
1456
1368
  }
1457
1369
  }
1458
1370
  YY_BREAK
1459
1371
  case 18:
1460
1372
  YY_RULE_SETUP
1461
- #line 574 "Scanner.l"
1373
+ #line 503 "src/Slice/Scanner.l"
1462
1374
  {
1463
1375
  // Ignore UTF-8 BOM, rule only active when parsing start of file.
1464
-
1376
+
1465
1377
  BEGIN(MAINSCAN);
1466
1378
  }
1467
1379
  YY_BREAK
1468
1380
  case 19:
1469
1381
  YY_RULE_SETUP
1470
- #line 580 "Scanner.l"
1382
+ #line 509 "src/Slice/Scanner.l"
1471
1383
  {
1472
1384
  BEGIN(MAINSCAN);
1473
1385
  if(slice_text[0] < 32 || slice_text[0] > 126)
1474
1386
  {
1475
- stringstream s;
1476
- s << "illegal input character: '\\";
1477
- s.width(3);
1478
- s.fill('0');
1479
- s << oct << static_cast<int>(static_cast<unsigned char>(slice_text[0]));
1480
- s << "'";
1481
- unit->error(s.str());
1482
- return BAD_CHAR;
1387
+ stringstream s;
1388
+ s << "illegal input character: '\\";
1389
+ s.width(3);
1390
+ s.fill('0');
1391
+ s << oct << static_cast<int>(static_cast<unsigned char>(slice_text[0]));
1392
+ s << "'";
1393
+ unit->error(s.str());
1394
+ return BAD_CHAR;
1483
1395
  }
1484
1396
  return slice_text[0];
1485
1397
  }
1486
1398
  YY_BREAK
1487
1399
  case 20:
1488
1400
  YY_RULE_SETUP
1489
- #line 596 "Scanner.l"
1401
+ #line 525 "src/Slice/Scanner.l"
1490
1402
  ECHO;
1491
1403
  YY_BREAK
1492
- #line 1491 "lex.yy.c"
1404
+ #line 1404 "src/Slice/Scanner.cpp"
1493
1405
  case YY_STATE_EOF(INITIAL):
1494
1406
  case YY_STATE_EOF(BOMSCAN):
1495
1407
  case YY_STATE_EOF(MAINSCAN):
@@ -1623,7 +1535,6 @@ case YY_STATE_EOF(MAINSCAN):
1623
1535
  "fatal flex scanner internal error--no action found" );
1624
1536
  } /* end of action switch */
1625
1537
  } /* end of scanning one token */
1626
- } /* end of user's declarations */
1627
1538
  } /* end of slice_lex */
1628
1539
 
1629
1540
  /* yy_get_next_buffer - try to read in a new buffer
@@ -1771,7 +1682,7 @@ static int yy_get_next_buffer (void)
1771
1682
  {
1772
1683
  register yy_state_type yy_current_state;
1773
1684
  register char *yy_cp;
1774
-
1685
+
1775
1686
  yy_current_state = (yy_start);
1776
1687
  yy_current_state += YY_AT_BOL();
1777
1688
 
@@ -1826,7 +1737,7 @@ static int yy_get_next_buffer (void)
1826
1737
  static void yyunput (int c, register char * yy_bp )
1827
1738
  {
1828
1739
  register char *yy_cp;
1829
-
1740
+
1830
1741
  yy_cp = (yy_c_buf_p);
1831
1742
 
1832
1743
  /* undo effects of setting up slice_text */
@@ -1869,7 +1780,7 @@ static int yy_get_next_buffer (void)
1869
1780
 
1870
1781
  {
1871
1782
  int c;
1872
-
1783
+
1873
1784
  *(yy_c_buf_p) = (yy_hold_char);
1874
1785
 
1875
1786
  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
@@ -1938,12 +1849,12 @@ static int yy_get_next_buffer (void)
1938
1849
 
1939
1850
  /** Immediately switch to a different input stream.
1940
1851
  * @param input_file A readable stream.
1941
- *
1852
+ *
1942
1853
  * @note This function does not reset the start condition to @c INITIAL .
1943
1854
  */
1944
1855
  void slice_restart (FILE * input_file )
1945
1856
  {
1946
-
1857
+
1947
1858
  if ( ! YY_CURRENT_BUFFER ){
1948
1859
  slice_ensure_buffer_stack ();
1949
1860
  YY_CURRENT_BUFFER_LVALUE =
@@ -1956,11 +1867,11 @@ static int yy_get_next_buffer (void)
1956
1867
 
1957
1868
  /** Switch to a different input buffer.
1958
1869
  * @param new_buffer The new input buffer.
1959
- *
1870
+ *
1960
1871
  */
1961
1872
  void slice__switch_to_buffer (YY_BUFFER_STATE new_buffer )
1962
1873
  {
1963
-
1874
+
1964
1875
  /* TODO. We should be able to replace this entire function body
1965
1876
  * with
1966
1877
  * slice_pop_buffer_state();
@@ -2000,13 +1911,13 @@ static void slice__load_buffer_state (void)
2000
1911
  /** Allocate and initialize an input buffer state.
2001
1912
  * @param file A readable stream.
2002
1913
  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2003
- *
1914
+ *
2004
1915
  * @return the allocated buffer state.
2005
1916
  */
2006
1917
  YY_BUFFER_STATE slice__create_buffer (FILE * file, int size )
2007
1918
  {
2008
1919
  YY_BUFFER_STATE b;
2009
-
1920
+
2010
1921
  b = (YY_BUFFER_STATE) slice_alloc(sizeof( struct yy_buffer_state ) );
2011
1922
  if ( ! b )
2012
1923
  YY_FATAL_ERROR( "out of dynamic memory in slice__create_buffer()" );
@@ -2029,11 +1940,11 @@ static void slice__load_buffer_state (void)
2029
1940
 
2030
1941
  /** Destroy the buffer.
2031
1942
  * @param b a buffer created with slice__create_buffer()
2032
- *
1943
+ *
2033
1944
  */
2034
1945
  void slice__delete_buffer (YY_BUFFER_STATE b )
2035
1946
  {
2036
-
1947
+
2037
1948
  if ( ! b )
2038
1949
  return;
2039
1950
 
@@ -2054,7 +1965,7 @@ static void slice__load_buffer_state (void)
2054
1965
 
2055
1966
  {
2056
1967
  int oerrno = errno;
2057
-
1968
+
2058
1969
  slice__flush_buffer(b );
2059
1970
 
2060
1971
  b->yy_input_file = file;
@@ -2070,13 +1981,13 @@ static void slice__load_buffer_state (void)
2070
1981
  }
2071
1982
 
2072
1983
  b->yy_is_interactive = 0;
2073
-
1984
+
2074
1985
  errno = oerrno;
2075
1986
  }
2076
1987
 
2077
1988
  /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2078
1989
  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2079
- *
1990
+ *
2080
1991
  */
2081
1992
  void slice__flush_buffer (YY_BUFFER_STATE b )
2082
1993
  {
@@ -2105,7 +2016,7 @@ static void slice__load_buffer_state (void)
2105
2016
  * the current state. This function will allocate the stack
2106
2017
  * if necessary.
2107
2018
  * @param new_buffer The new state.
2108
- *
2019
+ *
2109
2020
  */
2110
2021
  void slice_push_buffer_state (YY_BUFFER_STATE new_buffer )
2111
2022
  {
@@ -2135,7 +2046,7 @@ void slice_push_buffer_state (YY_BUFFER_STATE new_buffer )
2135
2046
 
2136
2047
  /** Removes and deletes the top of the stack, if present.
2137
2048
  * The next element becomes the new top.
2138
- *
2049
+ *
2139
2050
  */
2140
2051
  void slice_pop_buffer_state (void)
2141
2052
  {
@@ -2159,7 +2070,7 @@ void slice_pop_buffer_state (void)
2159
2070
  static void slice_ensure_buffer_stack (void)
2160
2071
  {
2161
2072
  yy_size_t num_to_alloc;
2162
-
2073
+
2163
2074
  if (!(yy_buffer_stack)) {
2164
2075
 
2165
2076
  /* First allocation is just for 2 elements, since we don't know if this
@@ -2172,9 +2083,9 @@ static void slice_ensure_buffer_stack (void)
2172
2083
  );
2173
2084
  if ( ! (yy_buffer_stack) )
2174
2085
  YY_FATAL_ERROR( "out of dynamic memory in slice_ensure_buffer_stack()" );
2175
-
2086
+
2176
2087
  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2177
-
2088
+
2178
2089
  (yy_buffer_stack_max) = num_to_alloc;
2179
2090
  (yy_buffer_stack_top) = 0;
2180
2091
  return;
@@ -2202,13 +2113,13 @@ static void slice_ensure_buffer_stack (void)
2202
2113
  /** Setup the input buffer state to scan directly from a user-specified character buffer.
2203
2114
  * @param base the character buffer
2204
2115
  * @param size the size in bytes of the character buffer
2205
- *
2206
- * @return the newly allocated buffer state object.
2116
+ *
2117
+ * @return the newly allocated buffer state object.
2207
2118
  */
2208
2119
  YY_BUFFER_STATE slice__scan_buffer (char * base, yy_size_t size )
2209
2120
  {
2210
2121
  YY_BUFFER_STATE b;
2211
-
2122
+
2212
2123
  if ( size < 2 ||
2213
2124
  base[size-2] != YY_END_OF_BUFFER_CHAR ||
2214
2125
  base[size-1] != YY_END_OF_BUFFER_CHAR )
@@ -2237,14 +2148,14 @@ YY_BUFFER_STATE slice__scan_buffer (char * base, yy_size_t size )
2237
2148
  /** Setup the input buffer state to scan a string. The next call to slice_lex() will
2238
2149
  * scan from a @e copy of @a str.
2239
2150
  * @param yystr a NUL-terminated string to scan
2240
- *
2151
+ *
2241
2152
  * @return the newly allocated buffer state object.
2242
2153
  * @note If you want to scan bytes that may contain NUL values, then use
2243
2154
  * slice__scan_bytes() instead.
2244
2155
  */
2245
2156
  YY_BUFFER_STATE slice__scan_string (yyconst char * yystr )
2246
2157
  {
2247
-
2158
+
2248
2159
  return slice__scan_bytes(yystr,strlen(yystr) );
2249
2160
  }
2250
2161
 
@@ -2252,7 +2163,7 @@ YY_BUFFER_STATE slice__scan_string (yyconst char * yystr )
2252
2163
  * scan from a @e copy of @a bytes.
2253
2164
  * @param yybytes the byte buffer to scan
2254
2165
  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2255
- *
2166
+ *
2256
2167
  * @return the newly allocated buffer state object.
2257
2168
  */
2258
2169
  YY_BUFFER_STATE slice__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
@@ -2260,8 +2171,8 @@ YY_BUFFER_STATE slice__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_
2260
2171
  YY_BUFFER_STATE b;
2261
2172
  char *buf;
2262
2173
  yy_size_t n;
2263
- yy_size_t i;
2264
-
2174
+ int i;
2175
+
2265
2176
  /* Get memory for full buffer, including space for trailing EOB's. */
2266
2177
  n = _yybytes_len + 2;
2267
2178
  buf = (char *) slice_alloc(n );
@@ -2315,16 +2226,16 @@ static void yy_fatal_error (yyconst char* msg )
2315
2226
  /* Accessor methods (get/set functions) to struct members. */
2316
2227
 
2317
2228
  /** Get the current line number.
2318
- *
2229
+ *
2319
2230
  */
2320
2231
  int slice_get_lineno (void)
2321
2232
  {
2322
-
2233
+
2323
2234
  return slice_lineno;
2324
2235
  }
2325
2236
 
2326
2237
  /** Get the input stream.
2327
- *
2238
+ *
2328
2239
  */
2329
2240
  FILE *slice_get_in (void)
2330
2241
  {
@@ -2332,7 +2243,7 @@ FILE *slice_get_in (void)
2332
2243
  }
2333
2244
 
2334
2245
  /** Get the output stream.
2335
- *
2246
+ *
2336
2247
  */
2337
2248
  FILE *slice_get_out (void)
2338
2249
  {
@@ -2340,7 +2251,7 @@ FILE *slice_get_out (void)
2340
2251
  }
2341
2252
 
2342
2253
  /** Get the length of the current token.
2343
- *
2254
+ *
2344
2255
  */
2345
2256
  yy_size_t slice_get_leng (void)
2346
2257
  {
@@ -2348,7 +2259,7 @@ yy_size_t slice_get_leng (void)
2348
2259
  }
2349
2260
 
2350
2261
  /** Get the current token.
2351
- *
2262
+ *
2352
2263
  */
2353
2264
 
2354
2265
  char *slice_get_text (void)
@@ -2358,18 +2269,18 @@ char *slice_get_text (void)
2358
2269
 
2359
2270
  /** Set the current line number.
2360
2271
  * @param line_number
2361
- *
2272
+ *
2362
2273
  */
2363
2274
  void slice_set_lineno (int line_number )
2364
2275
  {
2365
-
2276
+
2366
2277
  slice_lineno = line_number;
2367
2278
  }
2368
2279
 
2369
2280
  /** Set the input stream. This does not discard the current
2370
2281
  * input buffer.
2371
2282
  * @param in_str A readable stream.
2372
- *
2283
+ *
2373
2284
  * @see slice__switch_to_buffer
2374
2285
  */
2375
2286
  void slice_set_in (FILE * in_str )
@@ -2423,7 +2334,7 @@ static int yy_init_globals (void)
2423
2334
  /* slice_lex_destroy is for both reentrant and non-reentrant scanners. */
2424
2335
  int slice_lex_destroy (void)
2425
2336
  {
2426
-
2337
+
2427
2338
  /* Pop the buffer stack, destroying each element. */
2428
2339
  while(YY_CURRENT_BUFFER){
2429
2340
  slice__delete_buffer(YY_CURRENT_BUFFER );
@@ -2490,7 +2401,7 @@ void slice_free (void * ptr )
2490
2401
 
2491
2402
  #define YYTABLES_NAME "yytables"
2492
2403
 
2493
- #line 595 "Scanner.l"
2404
+ #line 525 "src/Slice/Scanner.l"
2494
2405
 
2495
2406
 
2496
2407
 
@@ -2532,6 +2443,7 @@ initScanner()
2532
2443
  keywordMap["true"] = ICE_TRUE;
2533
2444
  keywordMap["idempotent"] = ICE_IDEMPOTENT;
2534
2445
  keywordMap["optional"] = ICE_OPTIONAL;
2446
+ keywordMap["Value"] = ICE_VALUE;
2535
2447
  }
2536
2448
 
2537
2449
  //
@@ -2547,15 +2459,15 @@ checkKeyword(string& id)
2547
2459
  StringTokenMap::const_iterator pos = keywordMap.find(id);
2548
2460
  if(pos != keywordMap.end())
2549
2461
  {
2550
- if(pos->first != id)
2551
- {
2552
- string msg;
2553
- msg = "illegal identifier: `" + id + "' differs from keyword `";
2554
- msg += pos->first + "' only in capitalization";
2555
- unit->error(msg);
2556
- id = pos->first;
2557
- }
2558
- return pos->second;
2462
+ if(pos->first != id)
2463
+ {
2464
+ string msg;
2465
+ msg = "illegal identifier: `" + id + "' differs from keyword `";
2466
+ msg += pos->first + "' only in capitalization";
2467
+ unit->error(msg);
2468
+ id = pos->first;
2469
+ }
2470
+ return pos->second;
2559
2471
  }
2560
2472
  return ICE_IDENTIFIER;
2561
2473
  }