zeroc-ice 3.6.5 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
  }