zeroc-ice 3.6b1 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (679) hide show
  1. checksums.yaml +4 -4
  2. data/{ext/ice/BZIP_LICENSE → BZIP2_LICENSE} +0 -0
  3. data/ICE_LICENSE +8 -14
  4. data/LICENSE +2 -1
  5. data/{ext/ice/MCPP_LICENSE → MCPP_LICENSE} +2 -9
  6. data/bin/slice2rb +1 -1
  7. data/ext/Communicator.cpp +1 -1
  8. data/ext/Communicator.h +1 -1
  9. data/ext/Config.h +1 -22
  10. data/ext/Connection.cpp +125 -13
  11. data/ext/Connection.h +1 -1
  12. data/ext/Endpoint.cpp +62 -3
  13. data/ext/Endpoint.h +1 -1
  14. data/ext/ImplicitContext.cpp +1 -1
  15. data/ext/ImplicitContext.h +1 -1
  16. data/ext/Init.cpp +8 -1
  17. data/ext/Logger.cpp +1 -1
  18. data/ext/Logger.h +1 -1
  19. data/ext/ObjectFactory.cpp +1 -1
  20. data/ext/ObjectFactory.h +1 -1
  21. data/ext/Operation.cpp +1 -1
  22. data/ext/Operation.h +1 -1
  23. data/ext/Properties.cpp +1 -1
  24. data/ext/Properties.h +1 -1
  25. data/ext/Proxy.cpp +1 -1
  26. data/ext/Proxy.h +1 -1
  27. data/ext/Slice.cpp +1 -1
  28. data/ext/Slice.h +1 -1
  29. data/ext/Types.cpp +65 -17
  30. data/ext/Types.h +4 -1
  31. data/ext/Util.cpp +49 -58
  32. data/ext/Util.h +1 -1
  33. data/ext/extconf.rb +17 -15
  34. data/ext/ice/cpp/include/Ice/ACMF.h +1 -1
  35. data/ext/ice/cpp/include/Ice/Application.h +1 -1
  36. data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -1
  37. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -1
  38. data/ext/ice/cpp/include/Ice/BasicStream.h +1 -1
  39. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +52 -0
  40. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +25 -0
  41. data/ext/ice/cpp/include/Ice/Buffer.h +1 -1
  42. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +12 -4
  43. data/ext/ice/cpp/include/Ice/Communicator.h +12 -4
  44. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -1
  45. data/ext/ice/cpp/include/Ice/CommunicatorF.h +12 -4
  46. data/ext/ice/cpp/include/Ice/Config.h +13 -8
  47. data/ext/ice/cpp/include/Ice/Connection.h +41 -16
  48. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -1
  49. data/ext/ice/cpp/include/Ice/ConnectionF.h +12 -4
  50. data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +1 -1
  51. data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -1
  52. data/ext/ice/cpp/include/Ice/Current.h +12 -4
  53. data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +1 -1
  54. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +1 -1
  55. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -1
  56. data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -1
  57. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -1
  58. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  59. data/ext/ice/cpp/include/Ice/Endpoint.h +16 -6
  60. data/ext/ice/cpp/include/Ice/EndpointF.h +12 -4
  61. data/ext/ice/cpp/include/Ice/EndpointTypes.h +12 -4
  62. data/ext/ice/cpp/include/Ice/Exception.h +3 -3
  63. data/ext/ice/cpp/include/Ice/FacetMap.h +12 -4
  64. data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -1
  65. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
  66. data/ext/ice/cpp/include/Ice/Format.h +1 -1
  67. data/ext/ice/cpp/include/Ice/Functional.h +1 -1
  68. data/ext/ice/cpp/include/Ice/GCObject.h +5 -1
  69. data/ext/ice/cpp/include/Ice/Handle.h +1 -1
  70. data/ext/ice/cpp/include/Ice/Ice.h +4 -3
  71. data/ext/ice/cpp/include/Ice/Identity.h +13 -5
  72. data/ext/ice/cpp/include/Ice/ImplicitContext.h +12 -4
  73. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +12 -4
  74. data/ext/ice/cpp/include/Ice/Incoming.h +1 -1
  75. data/ext/ice/cpp/include/Ice/IncomingAsync.h +1 -1
  76. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -1
  77. data/ext/ice/cpp/include/Ice/Initialize.h +4 -2
  78. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -1
  79. data/ext/ice/cpp/include/Ice/Instrumentation.h +12 -4
  80. data/ext/ice/cpp/include/Ice/InstrumentationF.h +12 -4
  81. data/ext/ice/cpp/include/Ice/LocalException.h +12 -4
  82. data/ext/ice/cpp/include/Ice/LocalObject.h +1 -1
  83. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  84. data/ext/ice/cpp/include/Ice/Locator.h +137 -129
  85. data/ext/ice/cpp/include/Ice/LocatorF.h +12 -4
  86. data/ext/ice/cpp/include/Ice/Logger.h +12 -4
  87. data/ext/ice/cpp/include/Ice/LoggerF.h +12 -4
  88. data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -1
  89. data/ext/ice/cpp/include/Ice/Metrics.h +144 -136
  90. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +1 -1
  91. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -1
  92. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +35 -26
  93. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -1
  94. data/ext/ice/cpp/include/Ice/Object.h +1 -1
  95. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +12 -4
  96. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +12 -4
  97. data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +1 -1
  98. data/ext/ice/cpp/include/Ice/ObjectF.h +1 -1
  99. data/ext/ice/cpp/include/Ice/ObjectFactory.h +12 -4
  100. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +12 -4
  101. data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +1 -1
  102. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -1
  103. data/ext/ice/cpp/include/Ice/Outgoing.h +67 -39
  104. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +31 -34
  105. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +4 -4
  106. data/ext/ice/cpp/include/Ice/Plugin.h +12 -4
  107. data/ext/ice/cpp/include/Ice/PluginF.h +12 -4
  108. data/ext/ice/cpp/include/Ice/Process.h +36 -28
  109. data/ext/ice/cpp/include/Ice/ProcessF.h +12 -4
  110. data/ext/ice/cpp/include/Ice/Properties.h +12 -4
  111. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +86 -78
  112. data/ext/ice/cpp/include/Ice/PropertiesF.h +12 -4
  113. data/ext/ice/cpp/include/Ice/Protocol.h +1 -1
  114. data/ext/ice/cpp/include/Ice/Proxy.h +6 -2
  115. data/ext/ice/cpp/include/Ice/ProxyF.h +1 -1
  116. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  117. data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -1
  118. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  119. data/ext/ice/cpp/include/Ice/RemoteLogger.h +137 -129
  120. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -1
  121. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -1
  122. data/ext/ice/cpp/include/Ice/Router.h +37 -29
  123. data/ext/ice/cpp/include/Ice/RouterF.h +12 -4
  124. data/ext/ice/cpp/include/Ice/ServantLocator.h +12 -4
  125. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +12 -4
  126. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  127. data/ext/ice/cpp/include/Ice/Service.h +1 -1
  128. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +12 -4
  129. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
  130. data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
  131. data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -1
  132. data/ext/ice/cpp/include/Ice/Stream.h +3 -5
  133. data/ext/ice/cpp/include/Ice/StreamF.h +1 -1
  134. data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -1
  135. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  136. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -1
  137. data/ext/ice/cpp/include/Ice/Version.h +14 -6
  138. data/ext/ice/cpp/include/IceSSL/Config.h +19 -1
  139. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +61 -7
  140. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +52 -5
  141. data/ext/ice/cpp/include/IceSSL/IceSSL.h +2 -2
  142. data/ext/ice/cpp/include/IceSSL/Plugin.h +32 -26
  143. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +1 -1
  144. data/ext/ice/cpp/include/IceUtil/Atomic.h +186 -0
  145. data/ext/ice/cpp/include/IceUtil/Cache.h +1 -1
  146. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -1
  147. data/ext/ice/cpp/include/IceUtil/Config.h +31 -20
  148. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -1
  149. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +1 -1
  150. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +9 -2
  151. data/ext/ice/cpp/include/IceUtil/Exception.h +4 -3
  152. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -1
  153. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -1
  154. data/ext/ice/cpp/include/IceUtil/IceUtil.h +2 -2
  155. data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +1 -1
  156. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -1
  157. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -1
  158. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -1
  159. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -1
  160. data/ext/ice/cpp/include/IceUtil/Mutex.h +1 -1
  161. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -1
  162. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -1
  163. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -1
  164. data/ext/ice/cpp/include/IceUtil/Optional.h +1 -1
  165. data/ext/ice/cpp/include/IceUtil/Options.h +1 -1
  166. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +8 -11
  167. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -1
  168. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +5 -1
  169. data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
  170. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -1
  171. data/ext/ice/cpp/include/IceUtil/SHA1.h +8 -26
  172. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +5 -5
  173. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -1
  174. data/ext/ice/cpp/include/IceUtil/Shared.h +3 -37
  175. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -1
  176. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -1
  177. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -1
  178. data/ext/ice/cpp/include/IceUtil/Time.h +1 -1
  179. data/ext/ice/cpp/include/IceUtil/Timer.h +1 -1
  180. data/ext/ice/cpp/include/IceUtil/UUID.h +1 -1
  181. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  182. data/ext/ice/cpp/include/IceUtil/UniquePtr.h +1 -1
  183. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +7 -6
  184. data/ext/ice/cpp/include/Slice/Checksum.h +1 -1
  185. data/ext/ice/cpp/include/Slice/CsUtil.h +1 -1
  186. data/ext/ice/cpp/include/Slice/DotNetNames.h +1 -1
  187. data/ext/ice/cpp/include/Slice/FileTracker.h +1 -1
  188. data/ext/ice/cpp/include/Slice/JavaUtil.h +3 -1
  189. data/ext/ice/cpp/include/Slice/ObjCUtil.h +127 -0
  190. data/ext/ice/cpp/include/Slice/PHPUtil.h +1 -1
  191. data/ext/ice/cpp/include/Slice/Parser.h +18 -12
  192. data/ext/ice/cpp/include/Slice/Preprocessor.h +6 -4
  193. data/ext/ice/cpp/include/Slice/PythonUtil.h +1 -1
  194. data/ext/ice/cpp/include/Slice/RubyUtil.h +1 -1
  195. data/ext/ice/cpp/include/Slice/Util.h +20 -2
  196. data/ext/ice/cpp/src/Ice/ACM.cpp +1 -1
  197. data/ext/ice/cpp/src/Ice/ACM.h +1 -1
  198. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -1
  199. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -1
  200. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  201. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -1
  202. data/ext/ice/cpp/src/Ice/Base64.cpp +1 -1
  203. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  204. data/ext/ice/cpp/src/Ice/BasicStream.cpp +7 -5
  205. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +227 -0
  206. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +59 -0
  207. data/ext/ice/cpp/src/Ice/Buffer.cpp +3 -3
  208. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +10 -4
  209. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +82 -282
  210. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +8 -21
  211. data/ext/ice/cpp/src/Ice/Communicator.cpp +11 -5
  212. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +10 -4
  213. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +6 -6
  214. data/ext/ice/cpp/src/Ice/CommunicatorI.h +1 -1
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +42 -180
  216. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +10 -19
  217. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +25 -0
  218. data/ext/ice/cpp/src/Ice/Connection.cpp +17 -11
  219. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +10 -4
  220. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +137 -51
  221. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +18 -8
  222. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +105 -391
  223. data/ext/ice/cpp/src/Ice/ConnectionI.h +25 -23
  224. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +5 -29
  225. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +3 -8
  226. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -1
  227. data/ext/ice/cpp/src/Ice/Connector.h +1 -1
  228. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  229. data/ext/ice/cpp/src/Ice/Current.cpp +10 -4
  230. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -1
  231. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  232. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  233. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +1 -1
  234. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -1
  235. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +1 -1
  236. data/ext/ice/cpp/src/Ice/Endpoint.cpp +17 -11
  237. data/ext/ice/cpp/src/Ice/EndpointF.cpp +10 -4
  238. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +19 -1
  239. data/ext/ice/cpp/src/Ice/EndpointFactory.h +13 -1
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -1
  242. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -1
  243. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  244. data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -1
  245. data/ext/ice/cpp/src/Ice/EndpointI.h +33 -1
  246. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -1
  247. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +10 -4
  248. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -1
  249. data/ext/ice/cpp/src/Ice/EventHandler.h +4 -1
  250. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -1
  251. data/ext/ice/cpp/src/Ice/Exception.cpp +20 -11
  252. data/ext/ice/cpp/src/Ice/FacetMap.cpp +10 -4
  253. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -1
  254. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -2
  255. data/ext/ice/cpp/src/Ice/GCObject.cpp +1 -1
  256. data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
  257. data/ext/ice/cpp/src/Ice/HttpParser.cpp +27 -15
  258. data/ext/ice/cpp/src/Ice/HttpParser.h +4 -6
  259. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +7 -1
  260. data/ext/ice/cpp/src/Ice/IPEndpointI.h +2 -1
  261. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -1
  262. data/ext/ice/cpp/src/Ice/Identity.cpp +11 -5
  263. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +11 -5
  264. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +10 -4
  265. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +1 -1
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -1
  267. data/ext/ice/cpp/src/Ice/Incoming.cpp +22 -20
  268. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -1
  269. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -1
  270. data/ext/ice/cpp/src/Ice/Initialize.cpp +31 -5
  271. data/ext/ice/cpp/src/Ice/Instance.cpp +102 -59
  272. data/ext/ice/cpp/src/Ice/Instance.h +28 -2
  273. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +20 -14
  274. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +10 -4
  275. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -1
  276. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -1
  277. data/ext/ice/cpp/src/Ice/LocalException.cpp +10 -4
  278. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -1
  279. data/ext/ice/cpp/src/Ice/Locator.cpp +83 -77
  280. data/ext/ice/cpp/src/Ice/LocatorF.cpp +10 -4
  281. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +77 -69
  282. data/ext/ice/cpp/src/Ice/LocatorInfo.h +1 -1
  283. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  284. data/ext/ice/cpp/src/Ice/Logger.cpp +11 -5
  285. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -1
  286. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -1
  287. data/ext/ice/cpp/src/Ice/LoggerF.cpp +10 -4
  288. data/ext/ice/cpp/src/Ice/LoggerI.cpp +10 -8
  289. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -1
  290. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +2 -2
  291. data/ext/ice/cpp/src/Ice/Metrics.cpp +122 -116
  292. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +1 -1
  293. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -1
  294. data/ext/ice/cpp/src/Ice/Network.cpp +63 -19
  295. data/ext/ice/cpp/src/Ice/Network.h +10 -3
  296. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -1
  297. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +1 -1
  298. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -1
  299. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  300. data/ext/ice/cpp/src/Ice/Object.cpp +1 -1
  301. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +11 -5
  302. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +10 -4
  303. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +9 -9
  304. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +2 -2
  305. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +3 -3
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +5 -5
  307. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +11 -5
  308. data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +10 -4
  309. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +9 -10
  310. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +1 -1
  311. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -1
  312. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +6 -5
  313. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -1
  314. data/ext/ice/cpp/src/Ice/Outgoing.cpp +209 -254
  315. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +120 -106
  316. data/ext/ice/cpp/src/Ice/Plugin.cpp +12 -6
  317. data/ext/ice/cpp/src/Ice/PluginF.cpp +10 -4
  318. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +21 -2
  319. data/ext/ice/cpp/src/Ice/Process.cpp +25 -19
  320. data/ext/ice/cpp/src/Ice/ProcessF.cpp +10 -4
  321. data/ext/ice/cpp/src/Ice/Properties.cpp +11 -5
  322. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +39 -33
  323. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +1 -1
  324. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -1
  325. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +10 -4
  326. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +1 -1
  327. data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -1
  328. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +12 -8
  329. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -2
  330. data/ext/ice/cpp/src/Ice/Protocol.cpp +7 -7
  331. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +9 -6
  332. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +25 -7
  333. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  334. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -1
  335. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -1
  336. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  337. data/ext/ice/cpp/src/Ice/Proxy.cpp +32 -13
  338. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
  339. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -1
  340. data/ext/ice/cpp/src/Ice/Reference.cpp +101 -86
  341. data/ext/ice/cpp/src/Ice/Reference.h +16 -9
  342. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -1
  343. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -1
  344. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  345. data/ext/ice/cpp/src/Ice/RegisterPlugins.cpp +28 -0
  346. data/ext/ice/cpp/src/Ice/RegisterPlugins.h +25 -0
  347. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +92 -86
  348. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  349. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -1
  350. data/ext/ice/cpp/src/Ice/RequestHandler.h +4 -8
  351. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +24 -16
  352. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +5 -4
  353. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -1
  354. data/ext/ice/cpp/src/Ice/ResponseHandler.h +3 -3
  355. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +16 -5
  356. data/ext/ice/cpp/src/Ice/RetryQueue.h +3 -2
  357. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  358. data/ext/ice/cpp/src/Ice/Router.cpp +27 -21
  359. data/ext/ice/cpp/src/Ice/RouterF.cpp +10 -4
  360. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +1 -1
  361. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -1
  362. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  363. data/ext/ice/cpp/src/Ice/Selector.cpp +480 -1
  364. data/ext/ice/cpp/src/Ice/Selector.h +130 -1
  365. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +11 -5
  366. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +10 -4
  367. data/ext/ice/cpp/src/Ice/ServantManager.cpp +29 -23
  368. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  369. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -1
  370. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +10 -4
  371. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -1
  372. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -1
  373. data/ext/ice/cpp/src/Ice/Stream.cpp +1 -1
  374. data/ext/ice/cpp/src/Ice/StreamI.cpp +1 -1
  375. data/ext/ice/cpp/src/Ice/StreamI.h +1 -1
  376. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +30 -22
  377. data/ext/ice/cpp/src/Ice/StreamSocket.h +7 -4
  378. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -1
  379. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +1 -1
  380. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -1
  381. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +8 -8
  382. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -1
  383. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -1
  384. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -1
  385. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +21 -38
  386. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +5 -6
  387. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +29 -4
  388. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -2
  389. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +2 -2
  390. data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -1
  391. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
  392. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  393. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -1
  394. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +16 -7
  395. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -1
  396. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -1
  397. data/ext/ice/cpp/src/Ice/Transceiver.h +2 -1
  398. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  399. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +1 -1
  400. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -1
  401. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +13 -39
  402. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -5
  403. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +46 -10
  404. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +3 -2
  405. data/ext/ice/cpp/src/Ice/Version.cpp +12 -6
  406. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -1
  407. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -1
  408. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -1
  409. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -1
  410. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +6 -38
  411. data/ext/ice/cpp/src/Ice/WSEndpoint.h +12 -1
  412. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +31 -35
  413. data/ext/ice/cpp/src/Ice/WSTransceiver.h +13 -1
  414. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +66 -60
  415. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +106 -100
  416. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +1 -1
  417. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -1
  418. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +76 -36
  419. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -1
  420. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +19 -6
  421. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -1
  422. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +452 -0
  423. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +732 -0
  424. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +520 -0
  425. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.h +36 -0
  426. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +8 -8
  427. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -1
  428. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +49 -47
  429. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +13 -5
  430. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -1
  431. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -1
  432. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +10 -38
  433. data/ext/ice/cpp/src/IceSSL/EndpointI.h +4 -3
  434. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +13 -5
  435. data/ext/ice/cpp/src/IceSSL/Instance.cpp +2 -2
  436. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -1
  437. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -1
  438. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +107 -111
  439. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +130 -47
  440. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +11 -3
  441. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +8 -14
  442. data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -1
  443. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -1
  444. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -1
  445. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +238 -156
  446. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +93 -66
  447. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +7 -3
  448. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +2 -2
  449. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +32 -35
  450. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -1
  451. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +244 -360
  452. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +59 -29
  453. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +8 -4
  454. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -1
  455. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -1
  456. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -1
  457. data/ext/ice/cpp/src/IceSSL/Util.cpp +427 -620
  458. data/ext/ice/cpp/src/IceSSL/Util.h +72 -15
  459. data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +1 -1
  460. data/ext/ice/cpp/src/IceUtil/ArgVector.h +1 -1
  461. data/ext/ice/cpp/src/IceUtil/Cond.cpp +1 -1
  462. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -1
  463. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -1
  464. data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +1 -1
  465. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +1 -1
  466. data/ext/ice/cpp/src/IceUtil/Exception.cpp +105 -96
  467. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +2 -1
  468. data/ext/ice/cpp/src/IceUtil/FileUtil.h +9 -1
  469. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  470. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  471. data/ext/ice/cpp/src/IceUtil/Options.cpp +1 -1
  472. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +12 -25
  473. data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -1
  474. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +1 -1
  475. data/ext/ice/cpp/src/IceUtil/SHA1.cpp +72 -10
  476. data/ext/ice/cpp/src/IceUtil/Shared.cpp +3 -132
  477. data/ext/ice/cpp/src/IceUtil/StopWatch.h +1 -1
  478. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -1
  479. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +1 -1
  480. data/ext/ice/cpp/src/IceUtil/Thread.cpp +16 -1
  481. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -1
  482. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  483. data/ext/ice/cpp/src/IceUtil/Timer.cpp +1 -1
  484. data/ext/ice/cpp/src/IceUtil/UUID.cpp +1 -1
  485. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -1
  486. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -1
  487. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +62 -55
  488. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -1
  489. data/ext/ice/cpp/src/Slice/CsUtil.cpp +8 -29
  490. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +1 -1
  491. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -1
  492. data/ext/ice/cpp/src/Slice/Grammar.cpp +1 -1
  493. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -1
  494. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +145 -172
  495. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  496. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  497. data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +1310 -0
  498. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +1 -1
  499. data/ext/ice/cpp/src/Slice/Parser.cpp +65 -187
  500. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +61 -9
  501. data/ext/ice/cpp/src/Slice/Python.cpp +36 -3
  502. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +10 -10
  503. data/ext/ice/cpp/src/Slice/Ruby.cpp +34 -3
  504. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +8 -7
  505. data/ext/ice/cpp/src/Slice/Scanner.cpp +1 -1
  506. data/ext/ice/cpp/src/Slice/Util.cpp +137 -30
  507. data/ext/ice/mcpp/LICENSE +29 -0
  508. data/ext/ice/mcpp/Makefile +60 -0
  509. data/ext/ice/mcpp/Makefile.mak +46 -0
  510. data/ext/ice/mcpp/README.md +30 -0
  511. data/ext/ice/mcpp/config.h +89 -0
  512. data/ext/ice/mcpp/configed.H +1 -146
  513. data/ext/ice/mcpp/directive.c +115 -410
  514. data/ext/ice/mcpp/eval.c +38 -377
  515. data/ext/ice/mcpp/expand.c +155 -852
  516. data/ext/ice/mcpp/internal.H +10 -44
  517. data/ext/ice/mcpp/main.c +6 -345
  518. data/ext/ice/mcpp/mbchar.c +17 -654
  519. data/ext/ice/mcpp/mcpp.gyp +62 -0
  520. data/ext/ice/mcpp/support.c +116 -943
  521. data/ext/ice/mcpp/system.H +0 -23
  522. data/ext/ice/mcpp/system.c +81 -2321
  523. data/ice.gemspec +3 -4
  524. data/lib/Glacier2.rb +1 -1
  525. data/lib/Glacier2/Metrics.rb +2 -2
  526. data/lib/Glacier2/PermissionsVerifier.rb +2 -2
  527. data/lib/Glacier2/PermissionsVerifierF.rb +2 -2
  528. data/lib/Glacier2/Router.rb +2 -2
  529. data/lib/Glacier2/RouterF.rb +2 -2
  530. data/lib/Glacier2/SSLInfo.rb +2 -2
  531. data/lib/Glacier2/Session.rb +2 -2
  532. data/lib/Ice.rb +1 -1
  533. data/lib/Ice/BuiltinSequences.rb +2 -2
  534. data/lib/Ice/Communicator.rb +2 -2
  535. data/lib/Ice/CommunicatorF.rb +2 -2
  536. data/lib/Ice/Connection.rb +26 -14
  537. data/lib/Ice/ConnectionF.rb +2 -2
  538. data/lib/Ice/Current.rb +2 -2
  539. data/lib/Ice/Endpoint.rb +4 -2
  540. data/lib/Ice/EndpointF.rb +2 -2
  541. data/lib/Ice/EndpointTypes.rb +2 -2
  542. data/lib/Ice/FacetMap.rb +2 -2
  543. data/lib/Ice/Identity.rb +2 -2
  544. data/lib/Ice/ImplicitContext.rb +2 -2
  545. data/lib/Ice/ImplicitContextF.rb +2 -2
  546. data/lib/Ice/Instrumentation.rb +2 -2
  547. data/lib/Ice/InstrumentationF.rb +2 -2
  548. data/lib/Ice/LocalException.rb +2 -2
  549. data/lib/Ice/Locator.rb +2 -2
  550. data/lib/Ice/LocatorF.rb +2 -2
  551. data/lib/Ice/Logger.rb +2 -2
  552. data/lib/Ice/LoggerF.rb +2 -2
  553. data/lib/Ice/Metrics.rb +2 -2
  554. data/lib/Ice/ObjectAdapterF.rb +2 -2
  555. data/lib/Ice/ObjectFactory.rb +2 -2
  556. data/lib/Ice/ObjectFactoryF.rb +2 -2
  557. data/lib/Ice/Plugin.rb +2 -2
  558. data/lib/Ice/PluginF.rb +2 -2
  559. data/lib/Ice/Process.rb +2 -2
  560. data/lib/Ice/ProcessF.rb +2 -2
  561. data/lib/Ice/Properties.rb +2 -2
  562. data/lib/Ice/PropertiesAdmin.rb +2 -2
  563. data/lib/Ice/PropertiesF.rb +2 -2
  564. data/lib/Ice/Router.rb +2 -2
  565. data/lib/Ice/RouterF.rb +2 -2
  566. data/lib/Ice/SliceChecksumDict.rb +2 -2
  567. data/lib/Ice/Version.rb +2 -2
  568. data/lib/IceBox.rb +1 -1
  569. data/lib/IceBox/IceBox.rb +2 -2
  570. data/lib/IceGrid.rb +1 -1
  571. data/lib/IceGrid/Admin.rb +2 -2
  572. data/lib/IceGrid/Descriptor.rb +2 -2
  573. data/lib/IceGrid/Exception.rb +2 -2
  574. data/lib/IceGrid/FileParser.rb +2 -2
  575. data/lib/IceGrid/Locator.rb +2 -2
  576. data/lib/IceGrid/Observer.rb +2 -2
  577. data/lib/IceGrid/Query.rb +2 -2
  578. data/lib/IceGrid/Registry.rb +2 -2
  579. data/lib/IceGrid/Session.rb +2 -2
  580. data/lib/IceGrid/UserAccountMapper.rb +2 -2
  581. data/lib/IcePatch2.rb +1 -1
  582. data/lib/IcePatch2/FileInfo.rb +52 -2
  583. data/lib/IcePatch2/FileServer.rb +33 -4
  584. data/lib/IceStorm.rb +1 -1
  585. data/lib/IceStorm/IceStorm.rb +2 -2
  586. data/lib/IceStorm/Metrics.rb +2 -2
  587. data/slice/Freeze/BackgroundSaveEvictor.ice +2 -2
  588. data/slice/Freeze/CatalogData.ice +2 -2
  589. data/slice/Freeze/Connection.ice +2 -2
  590. data/slice/Freeze/ConnectionF.ice +2 -2
  591. data/slice/Freeze/DB.ice +2 -2
  592. data/slice/Freeze/Evictor.ice +2 -2
  593. data/slice/Freeze/EvictorF.ice +2 -2
  594. data/slice/Freeze/EvictorStorage.ice +2 -2
  595. data/slice/Freeze/Exception.ice +2 -2
  596. data/slice/Freeze/Transaction.ice +2 -2
  597. data/slice/Freeze/TransactionalEvictor.ice +2 -2
  598. data/slice/Glacier2/Metrics.ice +7 -6
  599. data/slice/Glacier2/PermissionsVerifier.ice +4 -3
  600. data/slice/Glacier2/PermissionsVerifierF.ice +3 -2
  601. data/slice/Glacier2/Router.ice +4 -3
  602. data/slice/Glacier2/RouterF.ice +3 -2
  603. data/slice/Glacier2/SSLInfo.ice +3 -2
  604. data/slice/Glacier2/Session.ice +12 -11
  605. data/slice/Ice/BuiltinSequences.ice +4 -3
  606. data/slice/Ice/Communicator.ice +22 -25
  607. data/slice/Ice/CommunicatorF.ice +3 -2
  608. data/slice/Ice/Connection.ice +39 -11
  609. data/slice/Ice/ConnectionF.ice +3 -2
  610. data/slice/Ice/Current.ice +4 -3
  611. data/slice/Ice/Endpoint.ice +11 -3
  612. data/slice/Ice/EndpointF.ice +3 -2
  613. data/slice/Ice/EndpointTypes.ice +3 -2
  614. data/slice/Ice/FacetMap.ice +3 -2
  615. data/slice/Ice/Identity.ice +3 -2
  616. data/slice/Ice/ImplicitContext.ice +3 -2
  617. data/slice/Ice/ImplicitContextF.ice +3 -2
  618. data/slice/Ice/Instrumentation.ice +4 -2
  619. data/slice/Ice/InstrumentationF.ice +4 -2
  620. data/slice/Ice/LocalException.ice +29 -10
  621. data/slice/Ice/Locator.ice +5 -3
  622. data/slice/Ice/LocatorF.ice +3 -2
  623. data/slice/Ice/Logger.ice +3 -2
  624. data/slice/Ice/LoggerF.ice +3 -2
  625. data/slice/Ice/Metrics.ice +15 -14
  626. data/slice/Ice/ObjectAdapter.ice +5 -4
  627. data/slice/Ice/ObjectAdapterF.ice +3 -2
  628. data/slice/Ice/ObjectFactory.ice +3 -2
  629. data/slice/Ice/ObjectFactoryF.ice +3 -2
  630. data/slice/Ice/Plugin.ice +3 -2
  631. data/slice/Ice/PluginF.ice +3 -2
  632. data/slice/Ice/Process.ice +3 -2
  633. data/slice/Ice/ProcessF.ice +3 -2
  634. data/slice/Ice/Properties.ice +3 -2
  635. data/slice/Ice/PropertiesAdmin.ice +3 -2
  636. data/slice/Ice/PropertiesF.ice +3 -2
  637. data/slice/Ice/RemoteLogger.ice +3 -2
  638. data/slice/Ice/Router.ice +3 -2
  639. data/slice/Ice/RouterF.ice +3 -2
  640. data/slice/Ice/ServantLocator.ice +3 -2
  641. data/slice/Ice/ServantLocatorF.ice +3 -2
  642. data/slice/Ice/SliceChecksumDict.ice +3 -2
  643. data/slice/Ice/Version.ice +3 -2
  644. data/slice/IceBox/IceBox.ice +2 -2
  645. data/slice/IceDiscovery/IceDiscovery.ice +2 -2
  646. data/slice/IceGrid/Admin.ice +49 -48
  647. data/slice/IceGrid/Descriptor.ice +3 -2
  648. data/slice/IceGrid/Exception.ice +6 -5
  649. data/slice/IceGrid/FileParser.ice +4 -3
  650. data/slice/IceGrid/Locator.ice +4 -3
  651. data/slice/IceGrid/Observer.ice +28 -27
  652. data/slice/IceGrid/PluginFacade.ice +3 -2
  653. data/slice/IceGrid/Query.ice +3 -2
  654. data/slice/IceGrid/Registry.ice +4 -3
  655. data/slice/IceGrid/Session.ice +9 -8
  656. data/slice/IceGrid/UserAccountMapper.ice +4 -3
  657. data/slice/{IceGrid/Discovery.ice → IceLocatorDiscovery/IceLocatorDiscovery.ice} +12 -14
  658. data/slice/IcePatch2/FileInfo.ice +31 -2
  659. data/slice/IcePatch2/FileServer.ice +63 -5
  660. data/slice/IceSSL/ConnectionInfo.ice +17 -2
  661. data/slice/IceSSL/EndpointInfo.ice +21 -3
  662. data/slice/IceStorm/IceStorm.ice +3 -2
  663. data/slice/IceStorm/Metrics.ice +4 -3
  664. metadata +27 -23
  665. data/ext/ice/cpp/include/Ice/Makefile +0 -26
  666. data/ext/ice/cpp/include/IceSSL/Makefile +0 -26
  667. data/ext/ice/cpp/include/IceUtil/Makefile +0 -26
  668. data/ext/ice/cpp/include/Slice/Makefile +0 -26
  669. data/ext/ice/cpp/src/Ice/Application.cpp +0 -760
  670. data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +0 -53
  671. data/ext/ice/cpp/src/Ice/Makefile +0 -190
  672. data/ext/ice/cpp/src/Ice/Service.cpp +0 -1897
  673. data/ext/ice/cpp/src/IceDiscovery/Makefile +0 -61
  674. data/ext/ice/cpp/src/IceSSL/Makefile +0 -82
  675. data/ext/ice/cpp/src/IceUtil/Makefile +0 -68
  676. data/ext/ice/cpp/src/Slice/Makefile +0 -65
  677. data/ext/ice/mcpp/config.h.Darwin +0 -227
  678. data/ext/ice/mcpp/config.h.Linux +0 -227
  679. data/ext/ice/mcpp/config.h.MINGW +0 -7
@@ -1,26 +0,0 @@
1
- # **********************************************************************
2
- #
3
- # Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
- #
5
- # This copy of Ice is licensed to you under the terms described in the
6
- # ICE_LICENSE file included in this distribution.
7
- #
8
- # **********************************************************************
9
-
10
- top_srcdir = ../..
11
-
12
- include $(top_srcdir)/config/Make.rules
13
-
14
- install::
15
- @if test ! -d $(DESTDIR)$(install_includedir)/Ice ; \
16
- then \
17
- echo "Creating $(DESTDIR)$(install_includedir)/Ice..." ; \
18
- $(call mkdir,$(DESTDIR)$(install_includedir)/Ice) ; \
19
- fi
20
-
21
- @for i in *.h ; \
22
- do \
23
- echo "Installing $$i" ; \
24
- $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/Ice/$$i ; \
25
- chmod a+r $(DESTDIR)$(install_includedir)/Ice/$$i ; \
26
- done
@@ -1,26 +0,0 @@
1
- # **********************************************************************
2
- #
3
- # Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
- #
5
- # This copy of Ice is licensed to you under the terms described in the
6
- # ICE_LICENSE file included in this distribution.
7
- #
8
- # **********************************************************************
9
-
10
- top_srcdir = ../..
11
-
12
- include $(top_srcdir)/config/Make.rules
13
-
14
- install::
15
- @if test ! -d $(DESTDIR)$(install_includedir)/IceSSL ; \
16
- then \
17
- echo "Creating $(DESTDIR)$(install_includedir)/IceSSL..." ; \
18
- $(call mkdir,$(DESTDIR)$(install_includedir)/IceSSL) ; \
19
- fi
20
-
21
- @for i in *.h ; \
22
- do \
23
- echo "Installing $$i" ; \
24
- $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/IceSSL/$$i ; \
25
- chmod a+r $(DESTDIR)$(install_includedir)/IceSSL/$$i ; \
26
- done
@@ -1,26 +0,0 @@
1
- # **********************************************************************
2
- #
3
- # Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
- #
5
- # This copy of Ice is licensed to you under the terms described in the
6
- # ICE_LICENSE file included in this distribution.
7
- #
8
- # **********************************************************************
9
-
10
- top_srcdir = ../..
11
-
12
- include $(top_srcdir)/config/Make.rules
13
-
14
- install::
15
- @if test ! -d $(DESTDIR)$(install_includedir)/IceUtil ; \
16
- then \
17
- echo "Creating $(DESTDIR)$(install_includedir)/IceUtil..." ; \
18
- $(call mkdir,$(DESTDIR)$(install_includedir)/IceUtil) ; \
19
- fi
20
-
21
- @for i in *.h ; \
22
- do \
23
- echo "Installing $$i" ; \
24
- $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/IceUtil/$$i ; \
25
- chmod a+r $(DESTDIR)$(install_includedir)/IceUtil/$$i ; \
26
- done
@@ -1,26 +0,0 @@
1
- # **********************************************************************
2
- #
3
- # Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
- #
5
- # This copy of Ice is licensed to you under the terms described in the
6
- # ICE_LICENSE file included in this distribution.
7
- #
8
- # **********************************************************************
9
-
10
- top_srcdir = ../..
11
-
12
- include $(top_srcdir)/config/Make.rules
13
-
14
- install::
15
- @if test ! -d $(DESTDIR)$(install_includedir)/Slice ; \
16
- then \
17
- echo "Creating $(DESTDIR)$(install_includedir)/Slice..." ; \
18
- $(call mkdir,$(DESTDIR)$(install_includedir)/Slice) ; \
19
- fi
20
-
21
- @for i in *.h ; \
22
- do \
23
- echo "Installing $$i" ; \
24
- $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/Slice/$$i ; \
25
- chmod a+r $(DESTDIR)$(install_includedir)/Slice/$$i ; \
26
- done
@@ -1,760 +0,0 @@
1
- // **********************************************************************
2
- //
3
- // Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
4
- //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
-
10
- #include <Ice/Application.h>
11
- #include <Ice/LoggerI.h>
12
- #include <IceUtil/Mutex.h>
13
- #include <IceUtil/CtrlCHandler.h>
14
- #include <IceUtil/Cond.h>
15
- #include <IceUtil/ArgVector.h>
16
- #include <IceUtil/UniquePtr.h>
17
-
18
- using namespace std;
19
- using namespace Ice;
20
- using namespace IceUtil;
21
- using namespace IceUtilInternal;
22
-
23
- //
24
- // static initializations.
25
- //
26
- Mutex* IceInternal::Application::mutex = 0;
27
-
28
- bool IceInternal::Application::_callbackInProgress = false;
29
- bool IceInternal::Application::_destroyed = false;
30
- bool IceInternal::Application::_interrupted = false;
31
-
32
- string IceInternal::Application::_appName;
33
- CommunicatorPtr IceInternal::Application::_communicator;
34
- SignalPolicy IceInternal::Application::_signalPolicy = HandleSignals;
35
- Cond* IceInternal::Application::_condVar;
36
- Application* IceInternal::Application::_application;
37
- //
38
- // _mutex and _condVar are used to synchronize the main thread and
39
- // the CtrlCHandler thread
40
- //
41
-
42
- namespace
43
- {
44
-
45
- class Init
46
- {
47
- public:
48
-
49
- Init()
50
- {
51
- IceInternal::Application::mutex = new IceUtil::Mutex;
52
- IceInternal::Application::_condVar = new Cond();
53
- }
54
-
55
- ~Init()
56
- {
57
- delete IceInternal::Application::mutex;
58
- IceInternal::Application::mutex = 0;
59
- delete IceInternal::Application::_condVar;
60
- IceInternal::Application::_condVar = 0;
61
- }
62
- };
63
-
64
- Init init;
65
-
66
-
67
-
68
- //
69
- // Variables than can change while run() and communicator->destroy() are running!
70
- //
71
- bool _released = false;
72
- CtrlCHandlerCallback _previousCallback = 0;
73
-
74
- //
75
- // Variables that are immutable during run() and until communicator->destroy() has returned;
76
- // before and after run(), and once communicator->destroy() has returned, we assume that
77
- // only the main thread and CtrlCHandler threads are running.
78
- //
79
- CtrlCHandler* _ctrlCHandler = 0;
80
- bool _nohup = false;
81
-
82
- }
83
-
84
- #ifdef _WIN32
85
- const DWORD SIGHUP = CTRL_LOGOFF_EVENT;
86
- #else
87
- # include <csignal>
88
- #endif
89
-
90
- //
91
- // Compaq C++ defines signal() as a macro, causing problems with the _condVar->signal()
92
- // statement, which the compiler for some reason replaces by the macro.
93
- //
94
- #if defined (__digital__) && defined (__unix__)
95
- # undef signal
96
- #endif
97
-
98
- //
99
- // CtrlCHandler callbacks.
100
- //
101
-
102
- static void
103
- holdInterruptCallback(int signal)
104
- {
105
- CtrlCHandlerCallback callback = 0;
106
- {
107
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
108
- while(!_released)
109
- {
110
- IceInternal::Application::_condVar->wait(lock);
111
- }
112
-
113
- if(IceInternal::Application::_destroyed)
114
- {
115
- //
116
- // Being destroyed by main thread
117
- //
118
- return;
119
- }
120
- assert(_ctrlCHandler != 0);
121
- callback = _ctrlCHandler->getCallback();
122
- }
123
-
124
- if(callback != 0)
125
- {
126
- callback(signal);
127
- }
128
- }
129
-
130
- static void
131
- destroyOnInterruptCallback(int signal)
132
- {
133
- {
134
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
135
- if(IceInternal::Application::_destroyed)
136
- {
137
- //
138
- // Being destroyed by main thread
139
- //
140
- return;
141
- }
142
- if(_nohup && signal == static_cast<int>(SIGHUP))
143
- {
144
- return;
145
- }
146
-
147
- assert(!IceInternal::Application::_callbackInProgress);
148
- IceInternal::Application::_callbackInProgress = true;
149
- IceInternal::Application::_interrupted = true;
150
- IceInternal::Application::_destroyed = true;
151
- }
152
-
153
- try
154
- {
155
- assert(IceInternal::Application::_communicator != 0);
156
- IceInternal::Application::_communicator->destroy();
157
- }
158
- catch(const std::exception& ex)
159
- {
160
- Error out(getProcessLogger());
161
- out << "(while destroying in response to signal " << signal << "): " << ex;
162
- }
163
- catch(const std::string& msg)
164
- {
165
- Error out(getProcessLogger());
166
- out << "(while destroying in response to signal " << signal << "): " << msg;
167
- }
168
- catch(const char* msg)
169
- {
170
- Error out(getProcessLogger());
171
- out << "(while destroying in response to signal " << signal << "): " << msg;
172
- }
173
- catch(...)
174
- {
175
- Error out(getProcessLogger());
176
- out << "(while destroying in response to signal " << signal << "): unknown exception";
177
- }
178
-
179
- {
180
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
181
- IceInternal::Application::_callbackInProgress = false;
182
- }
183
- IceInternal::Application::_condVar->signal();
184
- }
185
-
186
- static void
187
- shutdownOnInterruptCallback(int signal)
188
- {
189
- {
190
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
191
- if(IceInternal::Application::_destroyed)
192
- {
193
- //
194
- // Being destroyed by main thread
195
- //
196
- return;
197
- }
198
- if(_nohup && signal == static_cast<int>(SIGHUP))
199
- {
200
- return;
201
- }
202
-
203
- assert(!IceInternal::Application::_callbackInProgress);
204
- IceInternal::Application::_callbackInProgress = true;
205
- IceInternal::Application::_interrupted = true;
206
- }
207
-
208
- try
209
- {
210
- assert(IceInternal::Application::_communicator != 0);
211
- IceInternal::Application::_communicator->shutdown();
212
- }
213
- catch(const std::exception& ex)
214
- {
215
- Error out(getProcessLogger());
216
- out << "(while shutting down in response to signal " << signal << "): std::exception: " << ex;
217
- }
218
- catch(const std::string& msg)
219
- {
220
- Error out(getProcessLogger());
221
- out << "(while shutting down in response to signal " << signal << "): " << msg;
222
- }
223
- catch(const char* msg)
224
- {
225
- Error out(getProcessLogger());
226
- out << "(while shutting down in response to signal " << signal << "): " << msg;
227
- }
228
- catch(...)
229
- {
230
- Error out(getProcessLogger());
231
- out << "(while shutting down in response to signal " << signal << "): unknown exception";
232
- }
233
-
234
- {
235
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
236
- IceInternal::Application::_callbackInProgress = false;
237
- }
238
- IceInternal::Application::_condVar->signal();
239
- }
240
-
241
- static void
242
- callbackOnInterruptCallback(int signal)
243
- {
244
- {
245
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
246
- if(IceInternal::Application::_destroyed)
247
- {
248
- //
249
- // Being destroyed by main thread
250
- //
251
- return;
252
- }
253
- // For SIGHUP the user callback is always called. It can
254
- // decide what to do.
255
- assert(!IceInternal::Application::_callbackInProgress);
256
- IceInternal::Application::_callbackInProgress = true;
257
- IceInternal::Application::_interrupted = true;
258
- }
259
-
260
- try
261
- {
262
- assert(IceInternal::Application::_application != 0);
263
- IceInternal::Application::_application->interruptCallback(signal);
264
- }
265
- catch(const std::exception& ex)
266
- {
267
- Error out(getProcessLogger());
268
- out << "(while interrupting in response to signal " << signal << "): std::exception: " << ex;
269
- }
270
- catch(const std::string& msg)
271
- {
272
- Error out(getProcessLogger());
273
- out << "(while interrupting in response to signal " << signal << "): " << msg;
274
- }
275
- catch(const char* msg)
276
- {
277
- Error out(getProcessLogger());
278
- out << "(while interrupting in response to signal " << signal << "): " << msg;
279
- }
280
- catch(...)
281
- {
282
- Error out(getProcessLogger());
283
- out << "(while interrupting in response to signal " << signal << "): unknown exception";
284
- }
285
-
286
- {
287
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
288
- IceInternal::Application::_callbackInProgress = false;
289
- }
290
- IceInternal::Application::_condVar->signal();
291
- }
292
-
293
- Ice::Application::Application(SignalPolicy signalPolicy)
294
- {
295
- IceInternal::Application::_signalPolicy = signalPolicy;
296
- }
297
-
298
- Ice::Application::~Application()
299
- {
300
- }
301
-
302
- int
303
- Ice::Application::main(int argc, char* argv[], const char* configFile)
304
- {
305
- //
306
- // We don't call the main below to avoid a deprecated warning
307
- //
308
-
309
- IceInternal::Application::_appName = "";
310
- if(argc > 0)
311
- {
312
- IceInternal::Application::_appName = argv[0];
313
- }
314
-
315
- if(argc > 0 && argv[0] && LoggerIPtr::dynamicCast(getProcessLogger()))
316
- {
317
- setProcessLogger(new LoggerI(argv[0], "", true, IceUtil::getProcessStringConverter()));
318
- }
319
-
320
- InitializationData initData;
321
- if(configFile)
322
- {
323
- try
324
- {
325
- initData.properties = createProperties();
326
- initData.properties->load(configFile);
327
- }
328
- catch(const std::exception& ex)
329
- {
330
- Error out(getProcessLogger());
331
- out << ex;
332
- return EXIT_FAILURE;
333
- }
334
- catch(...)
335
- {
336
- Error out(getProcessLogger());
337
- out << "unknown exception";
338
- return EXIT_FAILURE;
339
- }
340
- }
341
- return main(argc, argv, initData);
342
- }
343
-
344
- #ifdef _WIN32
345
-
346
- int
347
- Ice::Application::main(int argc, wchar_t* argv[], const char* config)
348
- {
349
- return main(argsToStringSeq(argc, argv), config);
350
- }
351
-
352
- int
353
- Ice::Application::main(int argc, wchar_t* argv[], const Ice::InitializationData& initData)
354
- {
355
- //
356
- // On Windows the given wchar_t* strings are UTF16 and therefore
357
- // needs to be converted to native narow string encoding.
358
- //
359
- return main(argsToStringSeq(argc, argv), initData);
360
- }
361
-
362
- #endif
363
-
364
- int
365
- Ice::Application::main(int argc, char* argv[], const InitializationData& initializationData)
366
- {
367
- if(argc > 0 && argv[0] && LoggerIPtr::dynamicCast(getProcessLogger()))
368
- {
369
- const bool convert = initializationData.properties ?
370
- initializationData.properties->getPropertyAsIntWithDefault("Ice.LogStdErr.Convert", 1) > 0 &&
371
- initializationData.properties->getProperty("Ice.StdErr").empty() : true;
372
- setProcessLogger(new LoggerI(argv[0], "", convert, IceUtil::getProcessStringConverter()));
373
- }
374
-
375
- if(IceInternal::Application::_communicator != 0)
376
- {
377
- Error out(getProcessLogger());
378
- out << "only one instance of the Application class can be used";
379
- return EXIT_FAILURE;
380
- }
381
- int status;
382
-
383
- //
384
- // We parse the properties here to extract Ice.ProgramName.
385
- //
386
- InitializationData initData = initializationData;
387
- try
388
- {
389
- initData.properties = createProperties(argc, argv, initData.properties);
390
- }
391
- catch(const std::exception& ex)
392
- {
393
- Error out(getProcessLogger());
394
- out << ex;
395
- return EXIT_FAILURE;
396
- }
397
- catch(...)
398
- {
399
- Error out(getProcessLogger());
400
- out << "unknown exception";
401
- return EXIT_FAILURE;
402
- }
403
- IceInternal::Application::_appName = initData.properties->getPropertyWithDefault("Ice.ProgramName",
404
- IceInternal::Application::_appName);
405
-
406
- //
407
- // Used by destroyOnInterruptCallback and shutdownOnInterruptCallback.
408
- //
409
- _nohup = initData.properties->getPropertyAsInt("Ice.Nohup") > 0;
410
-
411
- IceInternal::Application::_application = this;
412
-
413
- if(IceInternal::Application::_signalPolicy == HandleSignals)
414
- {
415
- try
416
- {
417
- //
418
- // The ctrlCHandler must be created before starting any thread, in particular
419
- // before initializing the communicator.
420
- //
421
- CtrlCHandler ctrCHandler;
422
- _ctrlCHandler = &ctrCHandler;
423
-
424
- status = doMain(argc, argv, initData);
425
-
426
- //
427
- // Set _ctrlCHandler to 0 only once communicator->destroy() has completed.
428
- //
429
- _ctrlCHandler = 0;
430
- }
431
- catch(const CtrlCHandlerException&)
432
- {
433
- Error out(getProcessLogger());
434
- out << "only one instance of the CtrlCHandler class can be used";
435
- status = EXIT_FAILURE;
436
- }
437
- }
438
- else
439
- {
440
- status = doMain(argc, argv, initData);
441
- }
442
-
443
- return status;
444
- }
445
-
446
- int
447
- Ice::Application::main(int argc, char* const argv[], const char* configFile)
448
- {
449
- ArgVector av(argc, argv);
450
- return main(av.argc, av.argv, configFile);
451
- }
452
-
453
- int
454
- Ice::Application::main(int argc, char* const argv[], const Ice::InitializationData& initData)
455
- {
456
- ArgVector av(argc, argv);
457
- return main(av.argc, av.argv, initData);
458
- }
459
-
460
- int
461
- Ice::Application::main(const StringSeq& args, const char* configFile)
462
- {
463
- ArgVector av(args);
464
- return main(av.argc, av.argv, configFile);
465
- }
466
-
467
- int
468
- Ice::Application::main(const StringSeq& args, const InitializationData& initData)
469
- {
470
- ArgVector av(args);
471
- return main(av.argc, av.argv, initData);
472
- }
473
-
474
- void
475
- Ice::Application::interruptCallback(int)
476
- {
477
- }
478
-
479
- const char*
480
- Ice::Application::appName()
481
- {
482
- return IceInternal::Application::_appName.c_str();
483
- }
484
-
485
- CommunicatorPtr
486
- Ice::Application::communicator()
487
- {
488
- return IceInternal::Application::_communicator;
489
- }
490
-
491
- void
492
- Ice::Application::destroyOnInterrupt()
493
- {
494
- if(IceInternal::Application::_signalPolicy == HandleSignals)
495
- {
496
- if(_ctrlCHandler != 0)
497
- {
498
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
499
- if(_ctrlCHandler->getCallback() == holdInterruptCallback)
500
- {
501
- _released = true;
502
- IceInternal::Application::_condVar->signal();
503
- }
504
- _ctrlCHandler->setCallback(destroyOnInterruptCallback);
505
- }
506
- }
507
- else
508
- {
509
- Warning out(getProcessLogger());
510
- out << "interrupt method called on Application configured to not handle interrupts.";
511
- }
512
- }
513
-
514
- void
515
- Ice::Application::shutdownOnInterrupt()
516
- {
517
- if(IceInternal::Application::_signalPolicy == HandleSignals)
518
- {
519
- if(_ctrlCHandler != 0)
520
- {
521
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
522
- if(_ctrlCHandler->getCallback() == holdInterruptCallback)
523
- {
524
- _released = true;
525
- IceInternal::Application::_condVar->signal();
526
- }
527
- _ctrlCHandler->setCallback(shutdownOnInterruptCallback);
528
- }
529
- }
530
- else
531
- {
532
- Warning out(getProcessLogger());
533
- out << "interrupt method called on Application configured to not handle interrupts.";
534
- }
535
- }
536
-
537
- void
538
- Ice::Application::ignoreInterrupt()
539
- {
540
- if(IceInternal::Application::_signalPolicy == HandleSignals)
541
- {
542
- if(_ctrlCHandler != 0)
543
- {
544
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
545
- if(_ctrlCHandler->getCallback() == holdInterruptCallback)
546
- {
547
- _released = true;
548
- IceInternal::Application::_condVar->signal();
549
- }
550
- _ctrlCHandler->setCallback(0);
551
- }
552
- }
553
- else
554
- {
555
- Warning out(getProcessLogger());
556
- out << "interrupt method called on Application configured to not handle interrupts.";
557
- }
558
- }
559
-
560
- void
561
- Ice::Application::callbackOnInterrupt()
562
- {
563
- if(IceInternal::Application::_signalPolicy == HandleSignals)
564
- {
565
- if(_ctrlCHandler != 0)
566
- {
567
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
568
- if(_ctrlCHandler->getCallback() == holdInterruptCallback)
569
- {
570
- _released = true;
571
- IceInternal::Application::_condVar->signal();
572
- }
573
- _ctrlCHandler->setCallback(callbackOnInterruptCallback);
574
- }
575
- }
576
- else
577
- {
578
- Warning out(getProcessLogger());
579
- out << "interrupt method called on Application configured to not handle interrupts.";
580
- }
581
- }
582
-
583
- void
584
- Ice::Application::holdInterrupt()
585
- {
586
- if(IceInternal::Application::_signalPolicy == HandleSignals)
587
- {
588
- if(_ctrlCHandler != 0)
589
- {
590
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
591
- if(_ctrlCHandler->getCallback() != holdInterruptCallback)
592
- {
593
- _previousCallback = _ctrlCHandler->getCallback();
594
- _released = false;
595
- _ctrlCHandler->setCallback(holdInterruptCallback);
596
- }
597
- // else, we were already holding signals
598
- }
599
- }
600
- else
601
- {
602
- Warning out(getProcessLogger());
603
- out << "interrupt method called on Application configured to not handle interrupts.";
604
- }
605
- }
606
-
607
- void
608
- Ice::Application::releaseInterrupt()
609
- {
610
- if(IceInternal::Application::_signalPolicy == HandleSignals)
611
- {
612
- if(_ctrlCHandler != 0)
613
- {
614
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex); // we serialize all the interrupt-setting
615
- if(_ctrlCHandler->getCallback() == holdInterruptCallback)
616
- {
617
- //
618
- // Note that it's very possible no signal is held;
619
- // in this case the callback is just replaced and
620
- // setting _released to true and signalling _condVar
621
- // do no harm.
622
- //
623
-
624
- _released = true;
625
- _ctrlCHandler->setCallback(_previousCallback);
626
- IceInternal::Application::_condVar->signal();
627
- }
628
- // Else nothing to release.
629
- }
630
- }
631
- else
632
- {
633
- Warning out(getProcessLogger());
634
- out << "interrupt method called on Application configured to not handle interrupts.";
635
- }
636
- }
637
-
638
- bool
639
- Ice::Application::interrupted()
640
- {
641
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
642
- return IceInternal::Application::_interrupted;
643
- }
644
-
645
- int
646
- Ice::Application::doMain(int argc, char* argv[], const InitializationData& initData)
647
- {
648
- int status;
649
-
650
- try
651
- {
652
- IceInternal::Application::_interrupted = false;
653
-
654
- //
655
- // If the process logger is the default logger, we now replace it with a
656
- // a logger which is using the program name for the prefix.
657
- //
658
- if(initData.properties->getProperty("Ice.ProgramName") != "" && LoggerIPtr::dynamicCast(getProcessLogger()))
659
- {
660
- const bool convert =
661
- initData.properties->getPropertyAsIntWithDefault("Ice.LogStdErr.Convert", 1) > 0 &&
662
- initData.properties->getProperty("Ice.StdErr").empty();
663
-
664
- setProcessLogger(new LoggerI(initData.properties->getProperty("Ice.ProgramName"), "", convert,
665
- IceUtil::getProcessStringConverter()));
666
- }
667
-
668
- IceInternal::Application::_communicator = initialize(argc, argv, initData);
669
- IceInternal::Application::_destroyed = false;
670
-
671
- //
672
- // The default is to destroy when a signal is received.
673
- //
674
- if(IceInternal::Application::_signalPolicy == HandleSignals)
675
- {
676
- destroyOnInterrupt();
677
- }
678
-
679
- status = run(argc, argv);
680
- }
681
- catch(const std::exception& ex)
682
- {
683
- Error out(getProcessLogger());
684
- out << ex;
685
- status = EXIT_FAILURE;
686
- }
687
- catch(const std::string& msg)
688
- {
689
- Error out(getProcessLogger());
690
- out << msg;
691
- status = EXIT_FAILURE;
692
- }
693
- catch(const char* msg)
694
- {
695
- Error out(getProcessLogger());
696
- out << msg;
697
- status = EXIT_FAILURE;
698
- }
699
- catch(...)
700
- {
701
- Error out(getProcessLogger());
702
- out << "unknown exception";
703
- status = EXIT_FAILURE;
704
- }
705
-
706
- //
707
- // Don't want any new interrupt and at this point (post-run),
708
- // it would not make sense to release a held signal to run
709
- // shutdown or destroy.
710
- //
711
- if(IceInternal::Application::_signalPolicy == HandleSignals)
712
- {
713
- ignoreInterrupt();
714
- }
715
-
716
- {
717
- IceUtil::Mutex::Lock lock(*IceInternal::Application::mutex);
718
- while(IceInternal::Application::_callbackInProgress)
719
- {
720
- IceInternal::Application::_condVar->wait(lock);
721
- }
722
- if(IceInternal::Application::_destroyed)
723
- {
724
- IceInternal::Application::_communicator = 0;
725
- }
726
- else
727
- {
728
- IceInternal::Application::_destroyed = true;
729
- //
730
- // And _communicator != 0, meaning will be destroyed
731
- // next, _destroyed = true also ensures that any
732
- // remaining callback won't do anything
733
- //
734
- }
735
- IceInternal::Application::_application = 0;
736
- }
737
-
738
- if(IceInternal::Application::_communicator != 0)
739
- {
740
- try
741
- {
742
- IceInternal::Application::_communicator->destroy();
743
- }
744
- catch(const std::exception& ex)
745
- {
746
- Error out(getProcessLogger());
747
- out << ex;
748
- status = EXIT_FAILURE;
749
- }
750
- catch(...)
751
- {
752
- Error out(getProcessLogger());
753
- out << "unknown exception";
754
- status = EXIT_FAILURE;
755
- }
756
- IceInternal::Application::_communicator = 0;
757
- }
758
-
759
- return status;
760
- }