zeroc-ice 3.6b1

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 (675) hide show
  1. checksums.yaml +7 -0
  2. data/ICE_LICENSE +54 -0
  3. data/LICENSE +339 -0
  4. data/bin/slice2rb +17 -0
  5. data/ext/Communicator.cpp +596 -0
  6. data/ext/Communicator.h +25 -0
  7. data/ext/Config.h +111 -0
  8. data/ext/Connection.cpp +381 -0
  9. data/ext/Connection.h +26 -0
  10. data/ext/Endpoint.cpp +311 -0
  11. data/ext/Endpoint.h +27 -0
  12. data/ext/ImplicitContext.cpp +152 -0
  13. data/ext/ImplicitContext.h +25 -0
  14. data/ext/Init.cpp +52 -0
  15. data/ext/Logger.cpp +151 -0
  16. data/ext/Logger.h +28 -0
  17. data/ext/ObjectFactory.cpp +140 -0
  18. data/ext/ObjectFactory.h +50 -0
  19. data/ext/Operation.cpp +676 -0
  20. data/ext/Operation.h +36 -0
  21. data/ext/Properties.cpp +369 -0
  22. data/ext/Properties.h +25 -0
  23. data/ext/Proxy.cpp +1354 -0
  24. data/ext/Proxy.h +27 -0
  25. data/ext/Slice.cpp +223 -0
  26. data/ext/Slice.h +22 -0
  27. data/ext/Types.cpp +3160 -0
  28. data/ext/Types.h +545 -0
  29. data/ext/Util.cpp +792 -0
  30. data/ext/Util.h +511 -0
  31. data/ext/extconf.rb +118 -0
  32. data/ext/ice/BZIP_LICENSE +42 -0
  33. data/ext/ice/MCPP_LICENSE +36 -0
  34. data/ext/ice/bzip2/blocksort.c +1094 -0
  35. data/ext/ice/bzip2/bzlib.c +1572 -0
  36. data/ext/ice/bzip2/bzlib.h +282 -0
  37. data/ext/ice/bzip2/bzlib_private.h +509 -0
  38. data/ext/ice/bzip2/compress.c +672 -0
  39. data/ext/ice/bzip2/crctable.c +104 -0
  40. data/ext/ice/bzip2/decompress.c +646 -0
  41. data/ext/ice/bzip2/huffman.c +205 -0
  42. data/ext/ice/bzip2/randtable.c +84 -0
  43. data/ext/ice/cpp/include/Ice/ACMF.h +30 -0
  44. data/ext/ice/cpp/include/Ice/Application.h +156 -0
  45. data/ext/ice/cpp/include/Ice/AsyncResult.h +363 -0
  46. data/ext/ice/cpp/include/Ice/AsyncResultF.h +26 -0
  47. data/ext/ice/cpp/include/Ice/BasicStream.h +1315 -0
  48. data/ext/ice/cpp/include/Ice/Buffer.h +159 -0
  49. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +74 -0
  50. data/ext/ice/cpp/include/Ice/Communicator.h +194 -0
  51. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +115 -0
  52. data/ext/ice/cpp/include/Ice/CommunicatorF.h +60 -0
  53. data/ext/ice/cpp/include/Ice/Config.h +97 -0
  54. data/ext/ice/cpp/include/Ice/Connection.h +495 -0
  55. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +115 -0
  56. data/ext/ice/cpp/include/Ice/ConnectionF.h +72 -0
  57. data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +30 -0
  58. data/ext/ice/cpp/include/Ice/ConnectionIF.h +37 -0
  59. data/ext/ice/cpp/include/Ice/Current.h +94 -0
  60. data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +48 -0
  61. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +62 -0
  62. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +33 -0
  63. data/ext/ice/cpp/include/Ice/Dispatcher.h +51 -0
  64. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +105 -0
  65. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +29 -0
  66. data/ext/ice/cpp/include/Ice/Endpoint.h +350 -0
  67. data/ext/ice/cpp/include/Ice/EndpointF.h +97 -0
  68. data/ext/ice/cpp/include/Ice/EndpointTypes.h +74 -0
  69. data/ext/ice/cpp/include/Ice/Exception.h +114 -0
  70. data/ext/ice/cpp/include/Ice/FacetMap.h +56 -0
  71. data/ext/ice/cpp/include/Ice/FactoryTable.h +69 -0
  72. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +87 -0
  73. data/ext/ice/cpp/include/Ice/Format.h +39 -0
  74. data/ext/ice/cpp/include/Ice/Functional.h +138 -0
  75. data/ext/ice/cpp/include/Ice/GCObject.h +73 -0
  76. data/ext/ice/cpp/include/Ice/Handle.h +192 -0
  77. data/ext/ice/cpp/include/Ice/Ice.h +54 -0
  78. data/ext/ice/cpp/include/Ice/Identity.h +160 -0
  79. data/ext/ice/cpp/include/Ice/ImplicitContext.h +96 -0
  80. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +60 -0
  81. data/ext/ice/cpp/include/Ice/Incoming.h +131 -0
  82. data/ext/ice/cpp/include/Ice/IncomingAsync.h +108 -0
  83. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +35 -0
  84. data/ext/ice/cpp/include/Ice/Initialize.h +141 -0
  85. data/ext/ice/cpp/include/Ice/InstanceF.h +26 -0
  86. data/ext/ice/cpp/include/Ice/Instrumentation.h +377 -0
  87. data/ext/ice/cpp/include/Ice/InstrumentationF.h +71 -0
  88. data/ext/ice/cpp/include/Ice/LocalException.h +1022 -0
  89. data/ext/ice/cpp/include/Ice/LocalObject.h +36 -0
  90. data/ext/ice/cpp/include/Ice/LocalObjectF.h +26 -0
  91. data/ext/ice/cpp/include/Ice/Locator.h +2191 -0
  92. data/ext/ice/cpp/include/Ice/LocatorF.h +89 -0
  93. data/ext/ice/cpp/include/Ice/Logger.h +94 -0
  94. data/ext/ice/cpp/include/Ice/LoggerF.h +60 -0
  95. data/ext/ice/cpp/include/Ice/LoggerUtil.h +153 -0
  96. data/ext/ice/cpp/include/Ice/Makefile +26 -0
  97. data/ext/ice/cpp/include/Ice/Metrics.h +2989 -0
  98. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +662 -0
  99. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +144 -0
  100. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +576 -0
  101. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +55 -0
  102. data/ext/ice/cpp/include/Ice/Object.h +165 -0
  103. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +162 -0
  104. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +60 -0
  105. data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +26 -0
  106. data/ext/ice/cpp/include/Ice/ObjectF.h +26 -0
  107. data/ext/ice/cpp/include/Ice/ObjectFactory.h +86 -0
  108. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +60 -0
  109. data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +26 -0
  110. data/ext/ice/cpp/include/Ice/ObserverHelper.h +177 -0
  111. data/ext/ice/cpp/include/Ice/Outgoing.h +197 -0
  112. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +264 -0
  113. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +38 -0
  114. data/ext/ice/cpp/include/Ice/Plugin.h +121 -0
  115. data/ext/ice/cpp/include/Ice/PluginF.h +66 -0
  116. data/ext/ice/cpp/include/Ice/Process.h +568 -0
  117. data/ext/ice/cpp/include/Ice/ProcessF.h +77 -0
  118. data/ext/ice/cpp/include/Ice/Properties.h +130 -0
  119. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +824 -0
  120. data/ext/ice/cpp/include/Ice/PropertiesF.h +83 -0
  121. data/ext/ice/cpp/include/Ice/Protocol.h +242 -0
  122. data/ext/ice/cpp/include/Ice/Proxy.h +2448 -0
  123. data/ext/ice/cpp/include/Ice/ProxyF.h +78 -0
  124. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +26 -0
  125. data/ext/ice/cpp/include/Ice/ProxyHandle.h +330 -0
  126. data/ext/ice/cpp/include/Ice/ReferenceF.h +34 -0
  127. data/ext/ice/cpp/include/Ice/RemoteLogger.h +1496 -0
  128. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +29 -0
  129. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +25 -0
  130. data/ext/ice/cpp/include/Ice/Router.h +1155 -0
  131. data/ext/ice/cpp/include/Ice/RouterF.h +77 -0
  132. data/ext/ice/cpp/include/Ice/ServantLocator.h +90 -0
  133. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +60 -0
  134. data/ext/ice/cpp/include/Ice/ServantManagerF.h +26 -0
  135. data/ext/ice/cpp/include/Ice/Service.h +260 -0
  136. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +56 -0
  137. data/ext/ice/cpp/include/Ice/SliceChecksums.h +34 -0
  138. data/ext/ice/cpp/include/Ice/SlicedData.h +103 -0
  139. data/ext/ice/cpp/include/Ice/SlicedDataF.h +34 -0
  140. data/ext/ice/cpp/include/Ice/Stream.h +449 -0
  141. data/ext/ice/cpp/include/Ice/StreamF.h +30 -0
  142. data/ext/ice/cpp/include/Ice/StreamHelpers.h +877 -0
  143. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +28 -0
  144. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +56 -0
  145. data/ext/ice/cpp/include/Ice/Version.h +254 -0
  146. data/ext/ice/cpp/include/IceSSL/Config.h +23 -0
  147. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +119 -0
  148. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +101 -0
  149. data/ext/ice/cpp/include/IceSSL/IceSSL.h +22 -0
  150. data/ext/ice/cpp/include/IceSSL/Makefile +26 -0
  151. data/ext/ice/cpp/include/IceSSL/Plugin.h +558 -0
  152. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +119 -0
  153. data/ext/ice/cpp/include/IceUtil/Cache.h +362 -0
  154. data/ext/ice/cpp/include/IceUtil/Cond.h +323 -0
  155. data/ext/ice/cpp/include/IceUtil/Config.h +234 -0
  156. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +50 -0
  157. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +70 -0
  158. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +45 -0
  159. data/ext/ice/cpp/include/IceUtil/Exception.h +184 -0
  160. data/ext/ice/cpp/include/IceUtil/Functional.h +389 -0
  161. data/ext/ice/cpp/include/IceUtil/Handle.h +266 -0
  162. data/ext/ice/cpp/include/IceUtil/IceUtil.h +51 -0
  163. data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +302 -0
  164. data/ext/ice/cpp/include/IceUtil/InputUtil.h +47 -0
  165. data/ext/ice/cpp/include/IceUtil/Iterator.h +36 -0
  166. data/ext/ice/cpp/include/IceUtil/Lock.h +135 -0
  167. data/ext/ice/cpp/include/IceUtil/Makefile +26 -0
  168. data/ext/ice/cpp/include/IceUtil/Monitor.h +249 -0
  169. data/ext/ice/cpp/include/IceUtil/Mutex.h +357 -0
  170. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +28 -0
  171. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +83 -0
  172. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +82 -0
  173. data/ext/ice/cpp/include/IceUtil/Optional.h +322 -0
  174. data/ext/ice/cpp/include/IceUtil/Options.h +141 -0
  175. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +362 -0
  176. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +19 -0
  177. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +26 -0
  178. data/ext/ice/cpp/include/IceUtil/Random.h +24 -0
  179. data/ext/ice/cpp/include/IceUtil/RecMutex.h +113 -0
  180. data/ext/ice/cpp/include/IceUtil/SHA1.h +65 -0
  181. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +44 -0
  182. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +97 -0
  183. data/ext/ice/cpp/include/IceUtil/Shared.h +168 -0
  184. data/ext/ice/cpp/include/IceUtil/StringConverter.h +175 -0
  185. data/ext/ice/cpp/include/IceUtil/StringUtil.h +91 -0
  186. data/ext/ice/cpp/include/IceUtil/Thread.h +181 -0
  187. data/ext/ice/cpp/include/IceUtil/ThreadException.h +108 -0
  188. data/ext/ice/cpp/include/IceUtil/Time.h +209 -0
  189. data/ext/ice/cpp/include/IceUtil/Timer.h +143 -0
  190. data/ext/ice/cpp/include/IceUtil/UUID.h +22 -0
  191. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +42 -0
  192. data/ext/ice/cpp/include/IceUtil/UniquePtr.h +101 -0
  193. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +64 -0
  194. data/ext/ice/cpp/include/Slice/Checksum.h +26 -0
  195. data/ext/ice/cpp/include/Slice/CsUtil.h +92 -0
  196. data/ext/ice/cpp/include/Slice/DotNetNames.h +34 -0
  197. data/ext/ice/cpp/include/Slice/FileTracker.h +71 -0
  198. data/ext/ice/cpp/include/Slice/JavaUtil.h +277 -0
  199. data/ext/ice/cpp/include/Slice/Makefile +26 -0
  200. data/ext/ice/cpp/include/Slice/PHPUtil.h +50 -0
  201. data/ext/ice/cpp/include/Slice/Parser.h +1116 -0
  202. data/ext/ice/cpp/include/Slice/Preprocessor.h +68 -0
  203. data/ext/ice/cpp/include/Slice/PythonUtil.h +64 -0
  204. data/ext/ice/cpp/include/Slice/RubyUtil.h +54 -0
  205. data/ext/ice/cpp/include/Slice/Util.h +33 -0
  206. data/ext/ice/cpp/src/Ice/ACM.cpp +343 -0
  207. data/ext/ice/cpp/src/Ice/ACM.h +117 -0
  208. data/ext/ice/cpp/src/Ice/Acceptor.cpp +16 -0
  209. data/ext/ice/cpp/src/Ice/Acceptor.h +41 -0
  210. data/ext/ice/cpp/src/Ice/AcceptorF.h +30 -0
  211. data/ext/ice/cpp/src/Ice/Application.cpp +760 -0
  212. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +599 -0
  213. data/ext/ice/cpp/src/Ice/Base64.cpp +269 -0
  214. data/ext/ice/cpp/src/Ice/Base64.h +36 -0
  215. data/ext/ice/cpp/src/Ice/BasicStream.cpp +3393 -0
  216. data/ext/ice/cpp/src/Ice/Buffer.cpp +98 -0
  217. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +34 -0
  218. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +718 -0
  219. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +106 -0
  220. data/ext/ice/cpp/src/Ice/Communicator.cpp +45 -0
  221. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +38 -0
  222. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +386 -0
  223. data/ext/ice/cpp/src/Ice/CommunicatorI.h +112 -0
  224. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +546 -0
  225. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +97 -0
  226. data/ext/ice/cpp/src/Ice/Connection.cpp +58 -0
  227. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +38 -0
  228. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +1639 -0
  229. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +236 -0
  230. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +3876 -0
  231. data/ext/ice/cpp/src/Ice/ConnectionI.h +364 -0
  232. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +115 -0
  233. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +50 -0
  234. data/ext/ice/cpp/src/Ice/Connector.cpp +16 -0
  235. data/ext/ice/cpp/src/Ice/Connector.h +36 -0
  236. data/ext/ice/cpp/src/Ice/ConnectorF.h +26 -0
  237. data/ext/ice/cpp/src/Ice/Current.cpp +38 -0
  238. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +168 -0
  239. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +57 -0
  240. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +26 -0
  241. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +60 -0
  242. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +49 -0
  243. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +281 -0
  244. data/ext/ice/cpp/src/Ice/Endpoint.cpp +53 -0
  245. data/ext/ice/cpp/src/Ice/EndpointF.cpp +38 -0
  246. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +25 -0
  247. data/ext/ice/cpp/src/Ice/EndpointFactory.h +44 -0
  248. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +26 -0
  249. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +208 -0
  250. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +46 -0
  251. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +26 -0
  252. data/ext/ice/cpp/src/Ice/EndpointI.cpp +87 -0
  253. data/ext/ice/cpp/src/Ice/EndpointI.h +165 -0
  254. data/ext/ice/cpp/src/Ice/EndpointIF.h +41 -0
  255. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +38 -0
  256. data/ext/ice/cpp/src/Ice/EventHandler.cpp +35 -0
  257. data/ext/ice/cpp/src/Ice/EventHandler.h +78 -0
  258. data/ext/ice/cpp/src/Ice/EventHandlerF.h +26 -0
  259. data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +53 -0
  260. data/ext/ice/cpp/src/Ice/Exception.cpp +832 -0
  261. data/ext/ice/cpp/src/Ice/FacetMap.cpp +34 -0
  262. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +158 -0
  263. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +95 -0
  264. data/ext/ice/cpp/src/Ice/GCObject.cpp +444 -0
  265. data/ext/ice/cpp/src/Ice/HashUtil.h +59 -0
  266. data/ext/ice/cpp/src/Ice/HttpParser.cpp +680 -0
  267. data/ext/ice/cpp/src/Ice/HttpParser.h +124 -0
  268. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +733 -0
  269. data/ext/ice/cpp/src/Ice/IPEndpointI.h +157 -0
  270. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +29 -0
  271. data/ext/ice/cpp/src/Ice/Identity.cpp +42 -0
  272. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +41 -0
  273. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +38 -0
  274. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +639 -0
  275. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +51 -0
  276. data/ext/ice/cpp/src/Ice/Incoming.cpp +757 -0
  277. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +340 -0
  278. data/ext/ice/cpp/src/Ice/IncomingRequest.h +37 -0
  279. data/ext/ice/cpp/src/Ice/Initialize.cpp +401 -0
  280. data/ext/ice/cpp/src/Ice/Instance.cpp +1928 -0
  281. data/ext/ice/cpp/src/Ice/Instance.h +198 -0
  282. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +68 -0
  283. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +43 -0
  284. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1083 -0
  285. data/ext/ice/cpp/src/Ice/InstrumentationI.h +262 -0
  286. data/ext/ice/cpp/src/Ice/LocalException.cpp +2091 -0
  287. data/ext/ice/cpp/src/Ice/LocalObject.cpp +29 -0
  288. data/ext/ice/cpp/src/Ice/Locator.cpp +1946 -0
  289. data/ext/ice/cpp/src/Ice/LocatorF.cpp +39 -0
  290. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +917 -0
  291. data/ext/ice/cpp/src/Ice/LocatorInfo.h +193 -0
  292. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +34 -0
  293. data/ext/ice/cpp/src/Ice/Logger.cpp +40 -0
  294. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +862 -0
  295. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +46 -0
  296. data/ext/ice/cpp/src/Ice/LoggerF.cpp +38 -0
  297. data/ext/ice/cpp/src/Ice/LoggerI.cpp +199 -0
  298. data/ext/ice/cpp/src/Ice/LoggerI.h +57 -0
  299. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +107 -0
  300. data/ext/ice/cpp/src/Ice/Makefile +190 -0
  301. data/ext/ice/cpp/src/Ice/Metrics.cpp +2159 -0
  302. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +669 -0
  303. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +14 -0
  304. data/ext/ice/cpp/src/Ice/Network.cpp +2694 -0
  305. data/ext/ice/cpp/src/Ice/Network.h +291 -0
  306. data/ext/ice/cpp/src/Ice/NetworkF.h +28 -0
  307. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +325 -0
  308. data/ext/ice/cpp/src/Ice/NetworkProxy.h +74 -0
  309. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +26 -0
  310. data/ext/ice/cpp/src/Ice/Object.cpp +440 -0
  311. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -0
  312. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +38 -0
  313. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +241 -0
  314. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +52 -0
  315. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +1498 -0
  316. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +155 -0
  317. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +41 -0
  318. data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +38 -0
  319. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +140 -0
  320. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +43 -0
  321. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +84 -0
  322. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +407 -0
  323. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +70 -0
  324. data/ext/ice/cpp/src/Ice/Outgoing.cpp +737 -0
  325. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +874 -0
  326. data/ext/ice/cpp/src/Ice/Plugin.cpp +43 -0
  327. data/ext/ice/cpp/src/Ice/PluginF.cpp +38 -0
  328. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +503 -0
  329. data/ext/ice/cpp/src/Ice/PluginManagerI.h +67 -0
  330. data/ext/ice/cpp/src/Ice/Process.cpp +299 -0
  331. data/ext/ice/cpp/src/Ice/ProcessF.cpp +39 -0
  332. data/ext/ice/cpp/src/Ice/Properties.cpp +45 -0
  333. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +555 -0
  334. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +207 -0
  335. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +45 -0
  336. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +39 -0
  337. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +759 -0
  338. data/ext/ice/cpp/src/Ice/PropertiesI.h +78 -0
  339. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +1293 -0
  340. data/ext/ice/cpp/src/Ice/PropertyNames.h +81 -0
  341. data/ext/ice/cpp/src/Ice/Protocol.cpp +137 -0
  342. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +98 -0
  343. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +91 -0
  344. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +26 -0
  345. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +51 -0
  346. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +67 -0
  347. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +26 -0
  348. data/ext/ice/cpp/src/Ice/Proxy.cpp +1810 -0
  349. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +305 -0
  350. data/ext/ice/cpp/src/Ice/ProxyFactory.h +57 -0
  351. data/ext/ice/cpp/src/Ice/Reference.cpp +1947 -0
  352. data/ext/ice/cpp/src/Ice/Reference.h +305 -0
  353. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +937 -0
  354. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +81 -0
  355. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +24 -0
  356. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +958 -0
  357. data/ext/ice/cpp/src/Ice/ReplyStatus.h +29 -0
  358. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +40 -0
  359. data/ext/ice/cpp/src/Ice/RequestHandler.h +90 -0
  360. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +70 -0
  361. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +41 -0
  362. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +20 -0
  363. data/ext/ice/cpp/src/Ice/ResponseHandler.h +39 -0
  364. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +154 -0
  365. data/ext/ice/cpp/src/Ice/RetryQueue.h +69 -0
  366. data/ext/ice/cpp/src/Ice/RetryQueueF.h +24 -0
  367. data/ext/ice/cpp/src/Ice/Router.cpp +849 -0
  368. data/ext/ice/cpp/src/Ice/RouterF.cpp +39 -0
  369. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +381 -0
  370. data/ext/ice/cpp/src/Ice/RouterInfo.h +148 -0
  371. data/ext/ice/cpp/src/Ice/RouterInfoF.h +30 -0
  372. data/ext/ice/cpp/src/Ice/Selector.cpp +926 -0
  373. data/ext/ice/cpp/src/Ice/Selector.h +231 -0
  374. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +41 -0
  375. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +38 -0
  376. data/ext/ice/cpp/src/Ice/ServantManager.cpp +495 -0
  377. data/ext/ice/cpp/src/Ice/ServantManager.h +74 -0
  378. data/ext/ice/cpp/src/Ice/Service.cpp +1897 -0
  379. data/ext/ice/cpp/src/Ice/SharedContext.h +51 -0
  380. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +34 -0
  381. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +80 -0
  382. data/ext/ice/cpp/src/Ice/SlicedData.cpp +80 -0
  383. data/ext/ice/cpp/src/Ice/Stream.cpp +53 -0
  384. data/ext/ice/cpp/src/Ice/StreamI.cpp +832 -0
  385. data/ext/ice/cpp/src/Ice/StreamI.h +198 -0
  386. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +521 -0
  387. data/ext/ice/cpp/src/Ice/StreamSocket.h +85 -0
  388. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +145 -0
  389. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +167 -0
  390. data/ext/ice/cpp/src/Ice/SysLoggerI.h +43 -0
  391. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +235 -0
  392. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +67 -0
  393. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +133 -0
  394. data/ext/ice/cpp/src/Ice/TcpConnector.h +51 -0
  395. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +397 -0
  396. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +93 -0
  397. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +127 -0
  398. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +61 -0
  399. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +1357 -0
  400. data/ext/ice/cpp/src/Ice/ThreadPool.h +399 -0
  401. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +43 -0
  402. data/ext/ice/cpp/src/Ice/TraceLevels.h +50 -0
  403. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +26 -0
  404. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +452 -0
  405. data/ext/ice/cpp/src/Ice/TraceUtil.h +28 -0
  406. data/ext/ice/cpp/src/Ice/Transceiver.cpp +24 -0
  407. data/ext/ice/cpp/src/Ice/Transceiver.h +52 -0
  408. data/ext/ice/cpp/src/Ice/TransceiverF.h +38 -0
  409. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +144 -0
  410. data/ext/ice/cpp/src/Ice/UdpConnector.h +51 -0
  411. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +483 -0
  412. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +95 -0
  413. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +1156 -0
  414. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +123 -0
  415. data/ext/ice/cpp/src/Ice/Version.cpp +46 -0
  416. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +103 -0
  417. data/ext/ice/cpp/src/Ice/WSAcceptor.h +61 -0
  418. data/ext/ice/cpp/src/Ice/WSConnector.cpp +113 -0
  419. data/ext/ice/cpp/src/Ice/WSConnector.h +51 -0
  420. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +441 -0
  421. data/ext/ice/cpp/src/Ice/WSEndpoint.h +97 -0
  422. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +1728 -0
  423. data/ext/ice/cpp/src/Ice/WSTransceiver.h +149 -0
  424. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +594 -0
  425. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +1035 -0
  426. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +208 -0
  427. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +78 -0
  428. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +308 -0
  429. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +183 -0
  430. data/ext/ice/cpp/src/IceDiscovery/Makefile +61 -0
  431. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +148 -0
  432. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +39 -0
  433. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +258 -0
  434. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +66 -0
  435. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +1334 -0
  436. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +42 -0
  437. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +151 -0
  438. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +56 -0
  439. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +397 -0
  440. data/ext/ice/cpp/src/IceSSL/EndpointI.h +96 -0
  441. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +41 -0
  442. data/ext/ice/cpp/src/IceSSL/Instance.cpp +38 -0
  443. data/ext/ice/cpp/src/IceSSL/Instance.h +42 -0
  444. data/ext/ice/cpp/src/IceSSL/InstanceF.h +34 -0
  445. data/ext/ice/cpp/src/IceSSL/Makefile +82 -0
  446. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +1001 -0
  447. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +607 -0
  448. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +75 -0
  449. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +102 -0
  450. data/ext/ice/cpp/src/IceSSL/PluginI.h +56 -0
  451. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +541 -0
  452. data/ext/ice/cpp/src/IceSSL/RFC2253.h +67 -0
  453. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +729 -0
  454. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +1062 -0
  455. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +130 -0
  456. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +291 -0
  457. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +264 -0
  458. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +41 -0
  459. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1514 -0
  460. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +609 -0
  461. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +91 -0
  462. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +246 -0
  463. data/ext/ice/cpp/src/IceSSL/TrustManager.h +51 -0
  464. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +26 -0
  465. data/ext/ice/cpp/src/IceSSL/Util.cpp +1423 -0
  466. data/ext/ice/cpp/src/IceSSL/Util.h +136 -0
  467. data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +65 -0
  468. data/ext/ice/cpp/src/IceUtil/ArgVector.h +41 -0
  469. data/ext/ice/cpp/src/IceUtil/Cond.cpp +386 -0
  470. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +477 -0
  471. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +144 -0
  472. data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +184 -0
  473. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +273 -0
  474. data/ext/ice/cpp/src/IceUtil/Exception.cpp +782 -0
  475. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +532 -0
  476. data/ext/ice/cpp/src/IceUtil/FileUtil.h +159 -0
  477. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +41 -0
  478. data/ext/ice/cpp/src/IceUtil/Makefile +68 -0
  479. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +24 -0
  480. data/ext/ice/cpp/src/IceUtil/Options.cpp +1049 -0
  481. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +591 -0
  482. data/ext/ice/cpp/src/IceUtil/Random.cpp +185 -0
  483. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +257 -0
  484. data/ext/ice/cpp/src/IceUtil/SHA1.cpp +126 -0
  485. data/ext/ice/cpp/src/IceUtil/Shared.cpp +200 -0
  486. data/ext/ice/cpp/src/IceUtil/StopWatch.h +54 -0
  487. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +450 -0
  488. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +842 -0
  489. data/ext/ice/cpp/src/IceUtil/Thread.cpp +809 -0
  490. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +172 -0
  491. data/ext/ice/cpp/src/IceUtil/Time.cpp +306 -0
  492. data/ext/ice/cpp/src/IceUtil/Timer.cpp +251 -0
  493. data/ext/ice/cpp/src/IceUtil/UUID.cpp +174 -0
  494. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +131 -0
  495. data/ext/ice/cpp/src/IceUtil/Unicode.h +49 -0
  496. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +1139 -0
  497. data/ext/ice/cpp/src/Slice/Checksum.cpp +452 -0
  498. data/ext/ice/cpp/src/Slice/CsUtil.cpp +2650 -0
  499. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +146 -0
  500. data/ext/ice/cpp/src/Slice/FileTracker.cpp +203 -0
  501. data/ext/ice/cpp/src/Slice/Grammar.cpp +4755 -0
  502. data/ext/ice/cpp/src/Slice/Grammar.h +98 -0
  503. data/ext/ice/cpp/src/Slice/GrammarUtil.h +234 -0
  504. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +4376 -0
  505. data/ext/ice/cpp/src/Slice/MD5.cpp +57 -0
  506. data/ext/ice/cpp/src/Slice/MD5.h +44 -0
  507. data/ext/ice/cpp/src/Slice/MD5I.cpp +385 -0
  508. data/ext/ice/cpp/src/Slice/MD5I.h +91 -0
  509. data/ext/ice/cpp/src/Slice/Makefile +65 -0
  510. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +156 -0
  511. data/ext/ice/cpp/src/Slice/Parser.cpp +6386 -0
  512. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +686 -0
  513. data/ext/ice/cpp/src/Slice/Python.cpp +675 -0
  514. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +2614 -0
  515. data/ext/ice/cpp/src/Slice/Ruby.cpp +317 -0
  516. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +1774 -0
  517. data/ext/ice/cpp/src/Slice/Scanner.cpp +2426 -0
  518. data/ext/ice/cpp/src/Slice/Util.cpp +325 -0
  519. data/ext/ice/mcpp/config.h.Darwin +227 -0
  520. data/ext/ice/mcpp/config.h.Linux +227 -0
  521. data/ext/ice/mcpp/config.h.MINGW +7 -0
  522. data/ext/ice/mcpp/configed.H +382 -0
  523. data/ext/ice/mcpp/directive.c +1699 -0
  524. data/ext/ice/mcpp/eval.c +1673 -0
  525. data/ext/ice/mcpp/expand.c +2980 -0
  526. data/ext/ice/mcpp/internal.H +564 -0
  527. data/ext/ice/mcpp/main.c +1131 -0
  528. data/ext/ice/mcpp/mbchar.c +869 -0
  529. data/ext/ice/mcpp/mcpp_lib.h +31 -0
  530. data/ext/ice/mcpp/mcpp_out.h +13 -0
  531. data/ext/ice/mcpp/support.c +2811 -0
  532. data/ext/ice/mcpp/system.H +396 -0
  533. data/ext/ice/mcpp/system.c +4940 -0
  534. data/ice.gemspec +41 -0
  535. data/lib/Glacier2.rb +12 -0
  536. data/lib/Glacier2/Metrics.rb +99 -0
  537. data/lib/Glacier2/PermissionsVerifier.rb +168 -0
  538. data/lib/Glacier2/PermissionsVerifierF.rb +34 -0
  539. data/lib/Glacier2/Router.rb +141 -0
  540. data/lib/Glacier2/RouterF.rb +29 -0
  541. data/lib/Glacier2/SSLInfo.rb +79 -0
  542. data/lib/Glacier2/Session.rb +470 -0
  543. data/lib/Ice.rb +659 -0
  544. data/lib/Ice/BuiltinSequences.rb +64 -0
  545. data/lib/Ice/Communicator.rb +93 -0
  546. data/lib/Ice/CommunicatorF.rb +28 -0
  547. data/lib/Ice/Connection.rb +414 -0
  548. data/lib/Ice/ConnectionF.rb +36 -0
  549. data/lib/Ice/Current.rb +152 -0
  550. data/lib/Ice/Endpoint.rb +265 -0
  551. data/lib/Ice/EndpointF.rb +52 -0
  552. data/lib/Ice/EndpointTypes.rb +77 -0
  553. data/lib/Ice/FacetMap.rb +28 -0
  554. data/lib/Ice/Identity.rb +70 -0
  555. data/lib/Ice/ImplicitContext.rb +59 -0
  556. data/lib/Ice/ImplicitContextF.rb +28 -0
  557. data/lib/Ice/Instrumentation.rb +425 -0
  558. data/lib/Ice/InstrumentationF.rb +35 -0
  559. data/lib/Ice/LocalException.rb +1081 -0
  560. data/lib/Ice/Locator.rb +314 -0
  561. data/lib/Ice/LocatorF.rb +34 -0
  562. data/lib/Ice/Logger.rb +57 -0
  563. data/lib/Ice/LoggerF.rb +28 -0
  564. data/lib/Ice/Metrics.rb +696 -0
  565. data/lib/Ice/ObjectAdapterF.rb +28 -0
  566. data/lib/Ice/ObjectFactory.rb +53 -0
  567. data/lib/Ice/ObjectFactoryF.rb +28 -0
  568. data/lib/Ice/Plugin.rb +87 -0
  569. data/lib/Ice/PluginF.rb +32 -0
  570. data/lib/Ice/Process.rb +93 -0
  571. data/lib/Ice/ProcessF.rb +29 -0
  572. data/lib/Ice/Properties.rb +65 -0
  573. data/lib/Ice/PropertiesAdmin.rb +104 -0
  574. data/lib/Ice/PropertiesF.rb +33 -0
  575. data/lib/Ice/Router.rb +163 -0
  576. data/lib/Ice/RouterF.rb +29 -0
  577. data/lib/Ice/SliceChecksumDict.rb +28 -0
  578. data/lib/Ice/Version.rb +100 -0
  579. data/lib/IceBox.rb +10 -0
  580. data/lib/IceBox/IceBox.rb +272 -0
  581. data/lib/IceGrid.rb +17 -0
  582. data/lib/IceGrid/Admin.rb +1076 -0
  583. data/lib/IceGrid/Descriptor.rb +1505 -0
  584. data/lib/IceGrid/Exception.rb +401 -0
  585. data/lib/IceGrid/FileParser.rb +105 -0
  586. data/lib/IceGrid/Locator.rb +105 -0
  587. data/lib/IceGrid/Observer.rb +571 -0
  588. data/lib/IceGrid/Query.rb +168 -0
  589. data/lib/IceGrid/Registry.rb +120 -0
  590. data/lib/IceGrid/Session.rb +114 -0
  591. data/lib/IceGrid/UserAccountMapper.rb +101 -0
  592. data/lib/IcePatch2.rb +10 -0
  593. data/lib/IcePatch2/FileInfo.rb +75 -0
  594. data/lib/IcePatch2/FileServer.rb +141 -0
  595. data/lib/IceStorm.rb +11 -0
  596. data/lib/IceStorm/IceStorm.rb +463 -0
  597. data/lib/IceStorm/Metrics.rb +155 -0
  598. data/slice/Freeze/BackgroundSaveEvictor.ice +111 -0
  599. data/slice/Freeze/CatalogData.ice +49 -0
  600. data/slice/Freeze/Connection.ice +111 -0
  601. data/slice/Freeze/ConnectionF.ice +20 -0
  602. data/slice/Freeze/DB.ice +37 -0
  603. data/slice/Freeze/Evictor.ice +339 -0
  604. data/slice/Freeze/EvictorF.ice +22 -0
  605. data/slice/Freeze/EvictorStorage.ice +72 -0
  606. data/slice/Freeze/Exception.ice +100 -0
  607. data/slice/Freeze/Transaction.ice +57 -0
  608. data/slice/Freeze/TransactionalEvictor.ice +50 -0
  609. data/slice/Glacier2/Metrics.ice +77 -0
  610. data/slice/Glacier2/PermissionsVerifier.ice +105 -0
  611. data/slice/Glacier2/PermissionsVerifierF.ice +21 -0
  612. data/slice/Glacier2/Router.ice +178 -0
  613. data/slice/Glacier2/RouterF.ice +20 -0
  614. data/slice/Glacier2/SSLInfo.ice +50 -0
  615. data/slice/Glacier2/Session.ice +273 -0
  616. data/slice/Ice/BuiltinSequences.ice +48 -0
  617. data/slice/Ice/Communicator.ice +567 -0
  618. data/slice/Ice/CommunicatorF.ice +20 -0
  619. data/slice/Ice/Connection.ice +323 -0
  620. data/slice/Ice/ConnectionF.ice +22 -0
  621. data/slice/Ice/Current.ice +160 -0
  622. data/slice/Ice/Endpoint.ice +227 -0
  623. data/slice/Ice/EndpointF.ice +32 -0
  624. data/slice/Ice/EndpointTypes.ice +38 -0
  625. data/slice/Ice/FacetMap.ice +25 -0
  626. data/slice/Ice/Identity.ice +59 -0
  627. data/slice/Ice/ImplicitContext.ice +109 -0
  628. data/slice/Ice/ImplicitContextF.ice +20 -0
  629. data/slice/Ice/Instrumentation.ice +499 -0
  630. data/slice/Ice/InstrumentationF.ice +26 -0
  631. data/slice/Ice/LocalException.ice +1015 -0
  632. data/slice/Ice/Locator.ice +227 -0
  633. data/slice/Ice/LocatorF.ice +21 -0
  634. data/slice/Ice/Logger.ice +86 -0
  635. data/slice/Ice/LoggerF.ice +20 -0
  636. data/slice/Ice/Metrics.ice +422 -0
  637. data/slice/Ice/ObjectAdapter.ice +673 -0
  638. data/slice/Ice/ObjectAdapterF.ice +20 -0
  639. data/slice/Ice/ObjectFactory.ice +60 -0
  640. data/slice/Ice/ObjectFactoryF.ice +20 -0
  641. data/slice/Ice/Plugin.ice +117 -0
  642. data/slice/Ice/PluginF.ice +21 -0
  643. data/slice/Ice/Process.ice +54 -0
  644. data/slice/Ice/ProcessF.ice +20 -0
  645. data/slice/Ice/Properties.ice +228 -0
  646. data/slice/Ice/PropertiesAdmin.ice +75 -0
  647. data/slice/Ice/PropertiesF.ice +21 -0
  648. data/slice/Ice/RemoteLogger.ice +232 -0
  649. data/slice/Ice/Router.ice +83 -0
  650. data/slice/Ice/RouterF.ice +20 -0
  651. data/slice/Ice/ServantLocator.ice +117 -0
  652. data/slice/Ice/ServantLocatorF.ice +20 -0
  653. data/slice/Ice/SliceChecksumDict.ice +25 -0
  654. data/slice/Ice/Version.ice +39 -0
  655. data/slice/IceBox/IceBox.ice +194 -0
  656. data/slice/IceDiscovery/IceDiscovery.ice +32 -0
  657. data/slice/IceGrid/Admin.ice +1578 -0
  658. data/slice/IceGrid/Descriptor.ice +1079 -0
  659. data/slice/IceGrid/Discovery.ice +73 -0
  660. data/slice/IceGrid/Exception.ice +383 -0
  661. data/slice/IceGrid/FileParser.ice +61 -0
  662. data/slice/IceGrid/Locator.ice +56 -0
  663. data/slice/IceGrid/Observer.ice +394 -0
  664. data/slice/IceGrid/PluginFacade.ice +316 -0
  665. data/slice/IceGrid/Query.ice +130 -0
  666. data/slice/IceGrid/Registry.ice +138 -0
  667. data/slice/IceGrid/Session.ice +124 -0
  668. data/slice/IceGrid/UserAccountMapper.ice +58 -0
  669. data/slice/IcePatch2/FileInfo.ice +49 -0
  670. data/slice/IcePatch2/FileServer.ice +129 -0
  671. data/slice/IceSSL/ConnectionInfo.ice +34 -0
  672. data/slice/IceSSL/EndpointInfo.ice +41 -0
  673. data/slice/IceStorm/IceStorm.ice +405 -0
  674. data/slice/IceStorm/Metrics.ice +71 -0
  675. metadata +737 -0
@@ -0,0 +1,305 @@
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
+ #ifndef ICE_REFERENCE_H
11
+ #define ICE_REFERENCE_H
12
+
13
+ #include <IceUtil/Shared.h>
14
+ #include <Ice/ReferenceF.h>
15
+ #include <Ice/ReferenceFactoryF.h>
16
+ #include <Ice/EndpointIF.h>
17
+ #include <Ice/InstanceF.h>
18
+ #include <Ice/RouterF.h>
19
+ #include <Ice/LocatorF.h>
20
+ #include <Ice/RouterInfoF.h>
21
+ #include <Ice/LocatorInfoF.h>
22
+ #include <Ice/ConnectionIF.h>
23
+ #include <Ice/SharedContext.h>
24
+ #include <Ice/Identity.h>
25
+ #include <Ice/Protocol.h>
26
+ #include <Ice/Properties.h>
27
+
28
+ namespace IceInternal
29
+ {
30
+
31
+ class BasicStream;
32
+
33
+ class Reference : public IceUtil::Shared
34
+ {
35
+ public:
36
+
37
+ class GetConnectionCallback : virtual public IceUtil::Shared
38
+ {
39
+ public:
40
+
41
+ virtual void setConnection(const Ice::ConnectionIPtr&, bool) = 0;
42
+ virtual void setException(const Ice::LocalException&) = 0;
43
+ };
44
+ typedef IceUtil::Handle<GetConnectionCallback> GetConnectionCallbackPtr;
45
+
46
+ enum Mode
47
+ {
48
+ ModeTwoway,
49
+ ModeOneway,
50
+ ModeBatchOneway,
51
+ ModeDatagram,
52
+ ModeBatchDatagram,
53
+ ModeLast = ModeBatchDatagram
54
+ };
55
+
56
+ Mode getMode() const { return _mode; }
57
+ bool getSecure() const { return _secure; }
58
+ const Ice::ProtocolVersion& getProtocol() const { return _protocol; }
59
+ const Ice::EncodingVersion& getEncoding() const { return _encoding; }
60
+ const Ice::Identity& getIdentity() const { return _identity; }
61
+ const std::string& getFacet() const { return _facet; }
62
+ const InstancePtr& getInstance() const { return _instance; }
63
+ const SharedContextPtr& getContext() const { return _context; }
64
+ int getInvocationTimeout() const { return _invocationTimeout; }
65
+
66
+ Ice::CommunicatorPtr getCommunicator() const;
67
+
68
+
69
+ virtual std::vector<EndpointIPtr> getEndpoints() const = 0;
70
+ virtual std::string getAdapterId() const = 0;
71
+ virtual LocatorInfoPtr getLocatorInfo() const { return 0; }
72
+ virtual RouterInfoPtr getRouterInfo() const { return 0; }
73
+ virtual bool getCollocationOptimized() const = 0;
74
+ virtual bool getCacheConnection() const = 0;
75
+ virtual bool getPreferSecure() const = 0;
76
+ virtual Ice::EndpointSelectionType getEndpointSelection() const = 0;
77
+ virtual int getLocatorCacheTimeout() const = 0;
78
+ virtual std::string getConnectionId() const = 0;
79
+
80
+ //
81
+ // The change* methods (here and in derived classes) create
82
+ // a new reference based on the existing one, with the
83
+ // corresponding value changed.
84
+ //
85
+ ReferencePtr changeContext(const Ice::Context&) const;
86
+ ReferencePtr changeMode(Mode) const;
87
+ ReferencePtr changeSecure(bool) const;
88
+ ReferencePtr changeIdentity(const Ice::Identity&) const;
89
+ ReferencePtr changeFacet(const std::string&) const;
90
+ ReferencePtr changeInvocationTimeout(int) const;
91
+ virtual ReferencePtr changeEncoding(const Ice::EncodingVersion&) const;
92
+ virtual ReferencePtr changeCompress(bool) const;
93
+
94
+ virtual ReferencePtr changeEndpoints(const std::vector<EndpointIPtr>&) const = 0;
95
+ virtual ReferencePtr changeAdapterId(const std::string&) const = 0;
96
+ virtual ReferencePtr changeLocator(const Ice::LocatorPrx&) const = 0;
97
+ virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const = 0;
98
+ virtual ReferencePtr changeCollocationOptimized(bool) const = 0;
99
+ virtual ReferencePtr changeLocatorCacheTimeout(int) const = 0;
100
+ virtual ReferencePtr changeCacheConnection(bool) const = 0;
101
+ virtual ReferencePtr changePreferSecure(bool) const = 0;
102
+ virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const = 0;
103
+
104
+ virtual ReferencePtr changeTimeout(int) const = 0;
105
+ virtual ReferencePtr changeConnectionId(const std::string&) const = 0;
106
+
107
+ int hash() const; // Conceptually const.
108
+
109
+ //
110
+ // Utility methods.
111
+ //
112
+ virtual bool isIndirect() const = 0;
113
+ virtual bool isWellKnown() const = 0;
114
+
115
+ //
116
+ // Marshal the reference.
117
+ //
118
+ virtual void streamWrite(BasicStream*) const;
119
+
120
+ //
121
+ // Convert the reference to its string form.
122
+ //
123
+ virtual std::string toString() const;
124
+
125
+ //
126
+ // Convert the refernce to its property form.
127
+ //
128
+ virtual Ice::PropertyDict toProperty(const std::string&) const = 0;
129
+
130
+ //
131
+ // Get a suitable connection for this reference.
132
+ //
133
+ virtual void getConnection(const GetConnectionCallbackPtr&) const = 0;
134
+
135
+ virtual bool operator==(const Reference&) const;
136
+ virtual bool operator!=(const Reference&) const;
137
+ virtual bool operator<(const Reference&) const;
138
+
139
+ virtual ReferencePtr clone() const = 0;
140
+
141
+ protected:
142
+
143
+ Reference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const std::string&, Mode, bool,
144
+ const Ice::ProtocolVersion&, const Ice::EncodingVersion&, int, const Ice::Context& ctx);
145
+ Reference(const Reference&);
146
+
147
+ virtual Ice::Int hashInit() const;
148
+
149
+ mutable Ice::Int _hashValue;
150
+ mutable bool _hashInitialized;
151
+
152
+ private:
153
+
154
+ const InstancePtr _instance;
155
+ const Ice::CommunicatorPtr _communicator;
156
+
157
+ Mode _mode;
158
+ bool _secure;
159
+ Ice::Identity _identity;
160
+ SharedContextPtr _context;
161
+ std::string _facet;
162
+ Ice::ProtocolVersion _protocol;
163
+ Ice::EncodingVersion _encoding;
164
+ int _invocationTimeout;
165
+
166
+ protected:
167
+
168
+ bool _overrideCompress;
169
+ bool _compress; // Only used if _overrideCompress == true
170
+ };
171
+
172
+ class FixedReference : public Reference
173
+ {
174
+ public:
175
+
176
+ FixedReference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const std::string&, Mode,
177
+ bool, const Ice::EncodingVersion&, const Ice::ConnectionIPtr&);
178
+
179
+ virtual std::vector<EndpointIPtr> getEndpoints() const;
180
+ virtual std::string getAdapterId() const;
181
+ virtual bool getCollocationOptimized() const;
182
+ virtual bool getCacheConnection() const;
183
+ virtual bool getPreferSecure() const;
184
+ virtual Ice::EndpointSelectionType getEndpointSelection() const;
185
+ virtual int getLocatorCacheTimeout() const;
186
+ virtual std::string getConnectionId() const;
187
+
188
+ virtual ReferencePtr changeEndpoints(const std::vector<EndpointIPtr>&) const;
189
+ virtual ReferencePtr changeAdapterId(const std::string&) const;
190
+ virtual ReferencePtr changeLocator(const Ice::LocatorPrx&) const;
191
+ virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const;
192
+ virtual ReferencePtr changeCollocationOptimized(bool) const;
193
+ virtual ReferencePtr changeCacheConnection(bool) const;
194
+ virtual ReferencePtr changePreferSecure(bool) const;
195
+ virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const;
196
+ virtual ReferencePtr changeLocatorCacheTimeout(int) const;
197
+
198
+ virtual ReferencePtr changeTimeout(int) const;
199
+ virtual ReferencePtr changeConnectionId(const std::string&) const;
200
+
201
+ virtual bool isIndirect() const;
202
+ virtual bool isWellKnown() const;
203
+
204
+ virtual void streamWrite(BasicStream*) const;
205
+ virtual std::string toString() const;
206
+ virtual Ice::PropertyDict toProperty(const std::string&) const;
207
+
208
+ virtual void getConnection(const GetConnectionCallbackPtr&) const;
209
+
210
+ virtual bool operator==(const Reference&) const;
211
+ virtual bool operator!=(const Reference&) const;
212
+ virtual bool operator<(const Reference&) const;
213
+
214
+ virtual ReferencePtr clone() const;
215
+
216
+ private:
217
+
218
+ FixedReference(const FixedReference&);
219
+
220
+ Ice::ConnectionIPtr _fixedConnection;
221
+ };
222
+
223
+ class RoutableReference : public Reference
224
+ {
225
+ public:
226
+
227
+ RoutableReference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const std::string&, Mode,
228
+ bool, const Ice::ProtocolVersion&, const Ice::EncodingVersion&, const std::vector<EndpointIPtr>&,
229
+ const std::string&, const LocatorInfoPtr&, const RouterInfoPtr&, bool, bool, bool,
230
+ Ice::EndpointSelectionType, int, int, const Ice::Context&);
231
+
232
+ virtual std::vector<EndpointIPtr> getEndpoints() const;
233
+ virtual std::string getAdapterId() const;
234
+ virtual LocatorInfoPtr getLocatorInfo() const;
235
+ virtual RouterInfoPtr getRouterInfo() const;
236
+ virtual bool getCollocationOptimized() const;
237
+ virtual bool getCacheConnection() const;
238
+ virtual bool getPreferSecure() const;
239
+ virtual Ice::EndpointSelectionType getEndpointSelection() const;
240
+ virtual int getLocatorCacheTimeout() const;
241
+ virtual std::string getConnectionId() const;
242
+
243
+ virtual ReferencePtr changeEncoding(const Ice::EncodingVersion&) const;
244
+ virtual ReferencePtr changeCompress(bool) const;
245
+ virtual ReferencePtr changeEndpoints(const std::vector<EndpointIPtr>&) const;
246
+ virtual ReferencePtr changeAdapterId(const std::string&) const;
247
+ virtual ReferencePtr changeLocator(const Ice::LocatorPrx&) const;
248
+ virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const;
249
+ virtual ReferencePtr changeCollocationOptimized(bool) const;
250
+ virtual ReferencePtr changeCacheConnection(bool) const;
251
+ virtual ReferencePtr changePreferSecure(bool) const;
252
+ virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const;
253
+ virtual ReferencePtr changeLocatorCacheTimeout(int) const;
254
+
255
+ virtual ReferencePtr changeTimeout(int) const;
256
+ virtual ReferencePtr changeConnectionId(const std::string&) const;
257
+
258
+ virtual bool isIndirect() const;
259
+ virtual bool isWellKnown() const;
260
+
261
+ virtual void streamWrite(BasicStream*) const;
262
+ virtual std::string toString() const;
263
+ virtual Ice::PropertyDict toProperty(const std::string&) const;
264
+
265
+ virtual bool operator==(const Reference&) const;
266
+ virtual bool operator!=(const Reference&) const;
267
+ virtual bool operator<(const Reference&) const;
268
+
269
+ virtual ReferencePtr clone() const;
270
+
271
+ virtual void getConnection(const GetConnectionCallbackPtr&) const;
272
+ virtual void getConnectionNoRouterInfo(const GetConnectionCallbackPtr&) const;
273
+
274
+ void createConnection(const std::vector<EndpointIPtr>&, const GetConnectionCallbackPtr&) const;
275
+ void applyOverrides(std::vector<EndpointIPtr>&) const;
276
+
277
+ protected:
278
+
279
+ RoutableReference(const RoutableReference&);
280
+
281
+ std::vector<EndpointIPtr> filterEndpoints(const std::vector<EndpointIPtr>&) const;
282
+
283
+ virtual int hashInit() const;
284
+
285
+ private:
286
+
287
+ std::vector<EndpointIPtr> _endpoints; // Empty if indirect proxy.
288
+ std::string _adapterId; // Empty if direct proxy.
289
+
290
+ LocatorInfoPtr _locatorInfo; // Null if no locator is used.
291
+ RouterInfoPtr _routerInfo; // Null if no router is used.
292
+ bool _collocationOptimized;
293
+ bool _cacheConnection;
294
+ bool _preferSecure;
295
+ Ice::EndpointSelectionType _endpointSelection;
296
+ int _locatorCacheTimeout;
297
+
298
+ bool _overrideTimeout;
299
+ int _timeout; // Only used if _overrideTimeout == true
300
+ std::string _connectionId;
301
+ };
302
+
303
+ }
304
+
305
+ #endif
@@ -0,0 +1,937 @@
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/Communicator.h>
11
+ #include <Ice/ReferenceFactory.h>
12
+ #include <Ice/ProxyFactory.h>
13
+ #include <Ice/LocalException.h>
14
+ #include <Ice/Instance.h>
15
+ #include <Ice/EndpointI.h>
16
+ #include <Ice/ConnectionI.h>
17
+ #include <Ice/EndpointFactoryManager.h>
18
+ #include <Ice/RouterInfo.h>
19
+ #include <Ice/Router.h>
20
+ #include <Ice/LocatorInfo.h>
21
+ #include <Ice/Locator.h>
22
+ #include <Ice/LoggerUtil.h>
23
+ #include <Ice/BasicStream.h>
24
+ #include <Ice/Properties.h>
25
+ #include <Ice/DefaultsAndOverrides.h>
26
+ #include <Ice/PropertyNames.h>
27
+ #include <IceUtil/StringUtil.h>
28
+
29
+ using namespace std;
30
+ using namespace Ice;
31
+ using namespace IceInternal;
32
+
33
+ IceUtil::Shared* IceInternal::upCast(::IceInternal::ReferenceFactory* p) { return p; }
34
+
35
+ ReferencePtr
36
+ IceInternal::ReferenceFactory::copy(const Reference* r) const
37
+ {
38
+ const Ice::Identity& ident = r->getIdentity();
39
+ if(ident.name.empty() && ident.category.empty())
40
+ {
41
+ return 0;
42
+ }
43
+
44
+ return r->clone();
45
+ }
46
+
47
+ ReferencePtr
48
+ IceInternal::ReferenceFactory::create(const Identity& ident,
49
+ const string& facet,
50
+ const ReferencePtr& tmpl,
51
+ const vector<EndpointIPtr>& endpoints)
52
+ {
53
+ if(ident.name.empty() && ident.category.empty())
54
+ {
55
+ return 0;
56
+ }
57
+
58
+ return create(ident, facet, tmpl->getMode(), tmpl->getSecure(), tmpl->getProtocol(), tmpl->getEncoding(),
59
+ endpoints, "", "");
60
+ }
61
+
62
+ ReferencePtr
63
+ IceInternal::ReferenceFactory::create(const Identity& ident,
64
+ const string& facet,
65
+ const ReferencePtr& tmpl,
66
+ const string& adapterId)
67
+ {
68
+ if(ident.name.empty() && ident.category.empty())
69
+ {
70
+ return 0;
71
+ }
72
+
73
+ return create(ident, facet, tmpl->getMode(), tmpl->getSecure(), tmpl->getProtocol(), tmpl->getEncoding(),
74
+ vector<EndpointIPtr>(), adapterId, "");
75
+ }
76
+
77
+ ReferencePtr
78
+ IceInternal::ReferenceFactory::create(const Identity& ident, const Ice::ConnectionIPtr& connection)
79
+ {
80
+ if(ident.name.empty() && ident.category.empty())
81
+ {
82
+ return 0;
83
+ }
84
+
85
+ //
86
+ // Create new reference
87
+ //
88
+ return new FixedReference(_instance,
89
+ _communicator,
90
+ ident,
91
+ "", // Facet
92
+ connection->endpoint()->datagram() ? Reference::ModeDatagram : Reference::ModeTwoway,
93
+ connection->endpoint()->secure(),
94
+ _instance->defaultsAndOverrides()->defaultEncoding,
95
+ connection);
96
+ }
97
+
98
+ ReferencePtr
99
+ IceInternal::ReferenceFactory::create(const string& str, const string& propertyPrefix)
100
+ {
101
+ if(str.empty())
102
+ {
103
+ return 0;
104
+ }
105
+
106
+ const string delim = " \t\r\n";
107
+
108
+ string s(str);
109
+ string::size_type beg;
110
+ string::size_type end = 0;
111
+
112
+ beg = s.find_first_not_of(delim, end);
113
+ if(beg == string::npos)
114
+ {
115
+ ProxyParseException ex(__FILE__, __LINE__);
116
+ ex.str = "no non-whitespace characters found in `" + s + "'";
117
+ throw ex;
118
+ }
119
+
120
+ //
121
+ // Extract the identity, which may be enclosed in single
122
+ // or double quotation marks.
123
+ //
124
+ string idstr;
125
+ end = IceUtilInternal::checkQuote(s, beg);
126
+ if(end == string::npos)
127
+ {
128
+ ProxyParseException ex(__FILE__, __LINE__);
129
+ ex.str = "mismatched quotes around identity in `" + s + "'";
130
+ throw ex;
131
+ }
132
+ else if(end == 0)
133
+ {
134
+ end = s.find_first_of(delim + ":@", beg);
135
+ if(end == string::npos)
136
+ {
137
+ end = s.size();
138
+ }
139
+ idstr = s.substr(beg, end - beg);
140
+ }
141
+ else
142
+ {
143
+ beg++; // Skip leading quote
144
+ idstr = s.substr(beg, end - beg);
145
+ end++; // Skip trailing quote
146
+ }
147
+
148
+ if(beg == end)
149
+ {
150
+ ProxyParseException ex(__FILE__, __LINE__);
151
+ ex.str = "no identity in `" + s + "'";
152
+ throw ex;
153
+ }
154
+
155
+ //
156
+ // Parsing the identity may raise IdentityParseException.
157
+ //
158
+ Identity ident = _instance->stringToIdentity(idstr);
159
+ if(ident.name.empty())
160
+ {
161
+ //
162
+ // An identity with an empty name and a non-empty
163
+ // category is illegal.
164
+ //
165
+ if(!ident.category.empty())
166
+ {
167
+ IllegalIdentityException e(__FILE__, __LINE__);
168
+ e.id = ident;
169
+ throw e;
170
+ }
171
+ //
172
+ // Treat a stringified proxy containing two double
173
+ // quotes ("") the same as an empty string, i.e.,
174
+ // a null proxy, but only if nothing follows the
175
+ // quotes.
176
+ //
177
+ else if(s.find_first_not_of(delim, end) != string::npos)
178
+ {
179
+ ProxyParseException ex(__FILE__, __LINE__);
180
+ ex.str = "invalid characters after identity in `" + s + "'";
181
+ throw ex;
182
+ }
183
+ else
184
+ {
185
+ return 0;
186
+ }
187
+ }
188
+
189
+ string facet;
190
+ Reference::Mode mode = Reference::ModeTwoway;
191
+ bool secure = false;
192
+ Ice::EncodingVersion encoding = _instance->defaultsAndOverrides()->defaultEncoding;
193
+ Ice::ProtocolVersion protocol = Protocol_1_0;
194
+ string adapter;
195
+
196
+ while(true)
197
+ {
198
+ beg = s.find_first_not_of(delim, end);
199
+ if(beg == string::npos)
200
+ {
201
+ break;
202
+ }
203
+
204
+ if(s[beg] == ':' || s[beg] == '@')
205
+ {
206
+ break;
207
+ }
208
+
209
+ end = s.find_first_of(delim + ":@", beg);
210
+ if(end == string::npos)
211
+ {
212
+ end = s.length();
213
+ }
214
+
215
+ if(beg == end)
216
+ {
217
+ break;
218
+ }
219
+
220
+ string option = s.substr(beg, end - beg);
221
+ if(option.length() != 2 || option[0] != '-')
222
+ {
223
+ ProxyParseException ex(__FILE__, __LINE__);
224
+ ex.str = "expected a proxy option but found `" + option + "' in `" + s + "'";
225
+ throw ex;
226
+ }
227
+
228
+ //
229
+ // Check for the presence of an option argument. The
230
+ // argument may be enclosed in single or double
231
+ // quotation marks.
232
+ //
233
+ string argument;
234
+ string::size_type argumentBeg = s.find_first_not_of(delim, end);
235
+ if(argumentBeg != string::npos)
236
+ {
237
+ if(s[argumentBeg] != '@' && s[argumentBeg] != ':' && s[argumentBeg] != '-')
238
+ {
239
+ beg = argumentBeg;
240
+ end = IceUtilInternal::checkQuote(s, beg);
241
+ if(end == string::npos)
242
+ {
243
+ ProxyParseException ex(__FILE__, __LINE__);
244
+ ex.str = "mismatched quotes around value for " + option + " option in `" + s + "'";
245
+ throw ex;
246
+ }
247
+ else if(end == 0)
248
+ {
249
+ end = s.find_first_of(delim + ":@", beg);
250
+ if(end == string::npos)
251
+ {
252
+ end = s.size();
253
+ }
254
+ argument = s.substr(beg, end - beg);
255
+ }
256
+ else
257
+ {
258
+ beg++; // Skip leading quote
259
+ argument = s.substr(beg, end - beg);
260
+ end++; // Skip trailing quote
261
+ }
262
+ }
263
+ }
264
+
265
+ //
266
+ // If any new options are added here,
267
+ // IceInternal::Reference::toString() and its derived classes must be updated as well.
268
+ //
269
+ switch(option[1])
270
+ {
271
+ case 'f':
272
+ {
273
+ if(argument.empty())
274
+ {
275
+ ProxyParseException ex(__FILE__, __LINE__);
276
+ ex.str = "no argument provided for -f option in `" + s + "'";
277
+ throw ex;
278
+ }
279
+
280
+ try
281
+ {
282
+ facet = IceUtilInternal::unescapeString(argument, 0, argument.size());
283
+ }
284
+ catch(const IceUtil::IllegalArgumentException& e)
285
+ {
286
+ ProxyParseException ex(__FILE__, __LINE__);
287
+ ex.str = "invalid facet in `" + s + "': " + e.reason();
288
+ throw ex;
289
+ }
290
+
291
+ facet = UTF8ToNative(facet, _instance->getStringConverter());
292
+ break;
293
+ }
294
+
295
+ case 't':
296
+ {
297
+ if(!argument.empty())
298
+ {
299
+ ProxyParseException ex(__FILE__, __LINE__);
300
+ ex.str = "unexpected argument `" + argument + "' provided for -t option in `" + s + "'";
301
+ throw ex;
302
+ }
303
+ mode = Reference::ModeTwoway;
304
+ break;
305
+ }
306
+
307
+ case 'o':
308
+ {
309
+ if(!argument.empty())
310
+ {
311
+ ProxyParseException ex(__FILE__, __LINE__);
312
+ ex.str = "unexpected argument `" + argument + "' provided for -o option in `" + s + "'";
313
+ throw ex;
314
+ }
315
+ mode = Reference::ModeOneway;
316
+ break;
317
+ }
318
+
319
+ case 'O':
320
+ {
321
+ if(!argument.empty())
322
+ {
323
+ ProxyParseException ex(__FILE__, __LINE__);
324
+ ex.str = "unexpected argument `" + argument + "' provided for -O option in `" + s + "'";
325
+ throw ex;
326
+ }
327
+ mode = Reference::ModeBatchOneway;
328
+ break;
329
+ }
330
+
331
+ case 'd':
332
+ {
333
+ if(!argument.empty())
334
+ {
335
+ ProxyParseException ex(__FILE__, __LINE__);
336
+ ex.str = "unexpected argument `" + argument + "' provided for -d option in `" + s + "'";
337
+ throw ex;
338
+ }
339
+ mode = Reference::ModeDatagram;
340
+ break;
341
+ }
342
+
343
+ case 'D':
344
+ {
345
+ if(!argument.empty())
346
+ {
347
+ ProxyParseException ex(__FILE__, __LINE__);
348
+ ex.str = "unexpected argument `" + argument + "' provided for -D option in `" + s + "'";
349
+ throw ex;
350
+ }
351
+ mode = Reference::ModeBatchDatagram;
352
+ break;
353
+ }
354
+
355
+ case 's':
356
+ {
357
+ if(!argument.empty())
358
+ {
359
+ ProxyParseException ex(__FILE__, __LINE__);
360
+ ex.str = "unexpected argument `" + argument + "' provided for -s option in `" + s + "'";
361
+ throw ex;
362
+ }
363
+ secure = true;
364
+ break;
365
+ }
366
+
367
+ case 'e':
368
+ {
369
+ if(argument.empty())
370
+ {
371
+ Ice::ProxyParseException ex(__FILE__, __LINE__);
372
+ ex.str = "no argument provided for -e option in `" + s + "'";
373
+ throw ex;
374
+ }
375
+
376
+ try
377
+ {
378
+ encoding = Ice::stringToEncodingVersion(argument);
379
+ }
380
+ catch(const Ice::VersionParseException& e)
381
+ {
382
+ Ice::ProxyParseException ex(__FILE__, __LINE__);
383
+ ex.str = "invalid encoding version `" + argument + "' in `" + s + "':\n" + e.str;
384
+ throw ex;
385
+ }
386
+ break;
387
+ }
388
+
389
+ case 'p':
390
+ {
391
+ if(argument.empty())
392
+ {
393
+ Ice::ProxyParseException ex(__FILE__, __LINE__);
394
+ ex.str = "no argument provided for -p option in `" + s + "'";
395
+ throw ex;
396
+ }
397
+
398
+ try
399
+ {
400
+ protocol = Ice::stringToProtocolVersion(argument);
401
+ }
402
+ catch(const Ice::VersionParseException& e)
403
+ {
404
+ Ice::ProxyParseException ex(__FILE__, __LINE__);
405
+ ex.str = "invalid protocol version `" + argument + "' in `" + s + "':\n" + e.str;
406
+ throw ex;
407
+ }
408
+ break;
409
+ }
410
+
411
+ default:
412
+ {
413
+ ProxyParseException ex(__FILE__, __LINE__);
414
+ ex.str = "unknown option `" + option + "' in `" + s + "'";
415
+ throw ex;
416
+ }
417
+ }
418
+ }
419
+
420
+ if(beg == string::npos)
421
+ {
422
+ return create(ident, facet, mode, secure, protocol, encoding, vector<EndpointIPtr>(), "", propertyPrefix);
423
+ }
424
+
425
+ vector<EndpointIPtr> endpoints;
426
+ switch(s[beg])
427
+ {
428
+ case ':':
429
+ {
430
+ vector<string> unknownEndpoints;
431
+ end = beg;
432
+
433
+ while(end < s.length() && s[end] == ':')
434
+ {
435
+ beg = end + 1;
436
+
437
+ end = beg;
438
+ while(true)
439
+ {
440
+ end = s.find(':', end);
441
+ if(end == string::npos)
442
+ {
443
+ end = s.length();
444
+ break;
445
+ }
446
+ else
447
+ {
448
+ bool quoted = false;
449
+ string::size_type quote = beg;
450
+ while(true)
451
+ {
452
+ quote = s.find('\"', quote);
453
+ if(quote == string::npos || end < quote)
454
+ {
455
+ break;
456
+ }
457
+ else
458
+ {
459
+ quote = s.find('\"', ++quote);
460
+ if(quote == string::npos)
461
+ {
462
+ break;
463
+ }
464
+ else if(end < quote)
465
+ {
466
+ quoted = true;
467
+ break;
468
+ }
469
+ ++quote;
470
+ }
471
+ }
472
+ if(!quoted)
473
+ {
474
+ break;
475
+ }
476
+ ++end;
477
+ }
478
+ }
479
+
480
+ string es = s.substr(beg, end - beg);
481
+ EndpointIPtr endp = _instance->endpointFactoryManager()->create(es, false);
482
+ if(endp != 0)
483
+ {
484
+ endpoints.push_back(endp);
485
+ }
486
+ else
487
+ {
488
+ unknownEndpoints.push_back(es);
489
+ }
490
+ }
491
+ if(endpoints.size() == 0)
492
+ {
493
+ assert(!unknownEndpoints.empty());
494
+ EndpointParseException ex(__FILE__, __LINE__);
495
+ ex.str = "invalid endpoint `" + unknownEndpoints.front() + "' in `" + s + "'";
496
+ throw ex;
497
+ }
498
+ else if(unknownEndpoints.size() != 0 &&
499
+ _instance->initializationData().properties->
500
+ getPropertyAsIntWithDefault("Ice.Warn.Endpoints", 1) > 0)
501
+ {
502
+ Warning out(_instance->initializationData().logger);
503
+ out << "Proxy contains unknown endpoints:";
504
+ for(unsigned int idx = 0; idx < unknownEndpoints.size(); ++idx)
505
+ {
506
+ out << " `" << unknownEndpoints[idx] << "'";
507
+ }
508
+ }
509
+
510
+ return create(ident, facet, mode, secure, protocol, encoding, endpoints, "", propertyPrefix);
511
+ break;
512
+ }
513
+ case '@':
514
+ {
515
+ beg = s.find_first_not_of(delim, beg + 1);
516
+ if(beg == string::npos)
517
+ {
518
+ ProxyParseException ex(__FILE__, __LINE__);
519
+ ex.str = "missing adapter id in `" + s + "'";
520
+ throw ex;
521
+ }
522
+
523
+ string adapterstr;
524
+ end = IceUtilInternal::checkQuote(s, beg);
525
+ if(end == string::npos)
526
+ {
527
+ ProxyParseException ex(__FILE__, __LINE__);
528
+ ex.str = "mismatched quotes around adapter id in `" + s + "'";
529
+ throw ex;
530
+ }
531
+ else if(end == 0)
532
+ {
533
+ end = s.find_first_of(delim, beg);
534
+ if(end == string::npos)
535
+ {
536
+ end = s.size();
537
+ }
538
+ adapterstr = s.substr(beg, end - beg);
539
+ }
540
+ else
541
+ {
542
+ beg++; // Skip leading quote
543
+ adapterstr = s.substr(beg, end - beg);
544
+ end++; // Skip trailing quote.
545
+ }
546
+
547
+ // Check for trailing whitespace.
548
+ if(end != string::npos && s.find_first_not_of(delim, end) != string::npos)
549
+ {
550
+ ProxyParseException ex(__FILE__, __LINE__);
551
+ ex.str = "invalid trailing characters after `" + s.substr(0, end + 1) + "' in `" + s + "'";
552
+ throw ex;
553
+ }
554
+
555
+ try
556
+ {
557
+ adapter = IceUtilInternal::unescapeString(adapterstr, 0, adapterstr.size());
558
+ }
559
+ catch(const IceUtil::IllegalArgumentException& e)
560
+ {
561
+ ProxyParseException ex(__FILE__, __LINE__);
562
+ ex.str = "invalid adapter id in `" + s + "': " + e.reason();
563
+ throw ex;
564
+ }
565
+ if(adapter.size() == 0)
566
+ {
567
+ ProxyParseException ex(__FILE__, __LINE__);
568
+ ex.str = "empty adapter id in `" + s + "'";
569
+ throw ex;
570
+ }
571
+
572
+ adapter = UTF8ToNative(adapter, _instance->getStringConverter());
573
+
574
+ return create(ident, facet, mode, secure, protocol, encoding, endpoints, adapter, propertyPrefix);
575
+ break;
576
+ }
577
+ default:
578
+ {
579
+ ProxyParseException ex(__FILE__, __LINE__);
580
+ ex.str = "malformed proxy `" + s + "'";
581
+ throw ex;
582
+ }
583
+ }
584
+
585
+ return 0; // Unreachable, prevents compiler warning.
586
+ }
587
+
588
+ ReferencePtr
589
+ IceInternal::ReferenceFactory::create(const Identity& ident, BasicStream* s)
590
+ {
591
+ //
592
+ // Don't read the identity here. Operations calling this
593
+ // constructor read the identity, and pass it as a parameter.
594
+ //
595
+
596
+ if(ident.name.empty() && ident.category.empty())
597
+ {
598
+ return 0;
599
+ }
600
+
601
+ //
602
+ // For compatibility with the old FacetPath.
603
+ //
604
+ vector<string> facetPath;
605
+ s->read(facetPath);
606
+ string facet;
607
+ if(!facetPath.empty())
608
+ {
609
+ if(facetPath.size() > 1)
610
+ {
611
+ throw ProxyUnmarshalException(__FILE__, __LINE__);
612
+ }
613
+ facet.swap(facetPath[0]);
614
+ }
615
+
616
+ Byte modeAsByte;
617
+ s->read(modeAsByte);
618
+ Reference::Mode mode = static_cast<Reference::Mode>(modeAsByte);
619
+ if(mode < 0 || mode > Reference::ModeLast)
620
+ {
621
+ throw ProxyUnmarshalException(__FILE__, __LINE__);
622
+ }
623
+
624
+ bool secure;
625
+ s->read(secure);
626
+
627
+ Ice::ProtocolVersion protocol;
628
+ Ice::EncodingVersion encoding;
629
+ if(s->getReadEncoding() != Ice::Encoding_1_0)
630
+ {
631
+ s->read(protocol);
632
+ s->read(encoding);
633
+ }
634
+ else
635
+ {
636
+ protocol = Ice::Protocol_1_0;
637
+ encoding = Ice::Encoding_1_0;
638
+ }
639
+
640
+ vector<EndpointIPtr> endpoints;
641
+ string adapterId;
642
+
643
+ Ice::Int sz = s->readSize();
644
+
645
+ if(sz > 0)
646
+ {
647
+ endpoints.reserve(sz);
648
+ while(sz--)
649
+ {
650
+ EndpointIPtr endpoint = _instance->endpointFactoryManager()->read(s);
651
+ endpoints.push_back(endpoint);
652
+ }
653
+ }
654
+ else
655
+ {
656
+ s->read(adapterId);
657
+ }
658
+
659
+ return create(ident, facet, mode, secure, protocol, encoding, endpoints, adapterId, "");
660
+ }
661
+
662
+ ReferenceFactoryPtr
663
+ IceInternal::ReferenceFactory::setDefaultRouter(const RouterPrx& defaultRouter)
664
+ {
665
+ if(defaultRouter == _defaultRouter)
666
+ {
667
+ return this;
668
+ }
669
+
670
+ ReferenceFactoryPtr factory = new ReferenceFactory(_instance, _communicator);
671
+ factory->_defaultLocator = _defaultLocator;
672
+ factory->_defaultRouter = defaultRouter;
673
+ return factory;
674
+ }
675
+
676
+ RouterPrx
677
+ IceInternal::ReferenceFactory::getDefaultRouter() const
678
+ {
679
+ return _defaultRouter;
680
+ }
681
+
682
+ ReferenceFactoryPtr
683
+ IceInternal::ReferenceFactory::setDefaultLocator(const LocatorPrx& defaultLocator)
684
+ {
685
+ if(defaultLocator == _defaultLocator)
686
+ {
687
+ return this;
688
+ }
689
+
690
+ ReferenceFactoryPtr factory = new ReferenceFactory(_instance, _communicator);
691
+ factory->_defaultRouter = _defaultRouter;
692
+ factory->_defaultLocator = defaultLocator;
693
+ return factory;
694
+ }
695
+
696
+ LocatorPrx
697
+ IceInternal::ReferenceFactory::getDefaultLocator() const
698
+ {
699
+ return _defaultLocator;
700
+ }
701
+
702
+ IceInternal::ReferenceFactory::ReferenceFactory(const InstancePtr& instance, const CommunicatorPtr& communicator) :
703
+ _instance(instance),
704
+ _communicator(communicator)
705
+ {
706
+ }
707
+
708
+ void
709
+ IceInternal::ReferenceFactory::checkForUnknownProperties(const string& prefix)
710
+ {
711
+ static const string suffixes[] =
712
+ {
713
+ "EndpointSelection",
714
+ "ConnectionCached",
715
+ "PreferSecure",
716
+ "LocatorCacheTimeout",
717
+ "InvocationTimeout",
718
+ "Locator",
719
+ "Router",
720
+ "CollocationOptimized",
721
+ "Context.*"
722
+ };
723
+
724
+ //
725
+ // Do not warn about unknown properties list if Ice prefix, ie Ice, Glacier2, etc
726
+ //
727
+ for(const char** i = IceInternal::PropertyNames::clPropNames; *i != 0; ++i)
728
+ {
729
+ if(prefix.find(*i) == 0)
730
+ {
731
+ return;
732
+ }
733
+ }
734
+
735
+ StringSeq unknownProps;
736
+ PropertyDict props = _instance->initializationData().properties->getPropertiesForPrefix(prefix + ".");
737
+ for(PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p)
738
+ {
739
+ bool valid = false;
740
+ for(unsigned int i = 0; i < sizeof(suffixes)/sizeof(*suffixes); ++i)
741
+ {
742
+ string prop = prefix + "." + suffixes[i];
743
+ if(IceUtilInternal::match(p->first, prop))
744
+ {
745
+ valid = true;
746
+ break;
747
+ }
748
+ }
749
+
750
+ if(!valid)
751
+ {
752
+ unknownProps.push_back(p->first);
753
+ }
754
+ }
755
+
756
+ if(unknownProps.size())
757
+ {
758
+ Warning out(_instance->initializationData().logger);
759
+ out << "found unknown properties for proxy '" << prefix << "':";
760
+ for(unsigned int i = 0; i < unknownProps.size(); ++i)
761
+ {
762
+ out << "\n " << unknownProps[i];
763
+ }
764
+ }
765
+ }
766
+
767
+ RoutableReferencePtr
768
+ IceInternal::ReferenceFactory::create(const Identity& ident,
769
+ const string& facet,
770
+ Reference::Mode mode,
771
+ bool secure,
772
+ const Ice::ProtocolVersion& protocol,
773
+ const Ice::EncodingVersion& encoding,
774
+ const vector<EndpointIPtr>& endpoints,
775
+ const string& adapterId,
776
+ const string& propertyPrefix)
777
+ {
778
+ DefaultsAndOverridesPtr defaultsAndOverrides = _instance->defaultsAndOverrides();
779
+
780
+ //
781
+ // Default local proxy options.
782
+ //
783
+ LocatorInfoPtr locatorInfo;
784
+ if(_defaultLocator)
785
+ {
786
+ if(_defaultLocator->ice_getEncodingVersion() != encoding)
787
+ {
788
+ locatorInfo = _instance->locatorManager()->get(_defaultLocator->ice_encodingVersion(encoding));
789
+ }
790
+ else
791
+ {
792
+ locatorInfo = _instance->locatorManager()->get(_defaultLocator);
793
+ }
794
+ }
795
+ RouterInfoPtr routerInfo = _instance->routerManager()->get(_defaultRouter);
796
+ bool collocationOptimized = defaultsAndOverrides->defaultCollocationOptimization;
797
+ bool cacheConnection = true;
798
+ bool preferSecure = defaultsAndOverrides->defaultPreferSecure;
799
+ Ice::EndpointSelectionType endpointSelection = defaultsAndOverrides->defaultEndpointSelection;
800
+ int locatorCacheTimeout = defaultsAndOverrides->defaultLocatorCacheTimeout;
801
+ int invocationTimeout = defaultsAndOverrides->defaultInvocationTimeout;
802
+ Ice::Context ctx;
803
+
804
+ //
805
+ // Override the defaults with the proxy properties if a property prefix is defined.
806
+ //
807
+ if(!propertyPrefix.empty())
808
+ {
809
+ PropertiesPtr properties = _instance->initializationData().properties;
810
+ if(properties->getPropertyAsIntWithDefault("Ice.Warn.UnknownProperties", 1) > 0)
811
+ {
812
+ checkForUnknownProperties(propertyPrefix);
813
+ }
814
+
815
+ string property;
816
+
817
+ property = propertyPrefix + ".Locator";
818
+ LocatorPrx locator = LocatorPrx::uncheckedCast(_communicator->propertyToProxy(property));
819
+ if(locator)
820
+ {
821
+ if(locator->ice_getEncodingVersion() != encoding)
822
+ {
823
+ locatorInfo = _instance->locatorManager()->get(locator->ice_encodingVersion(encoding));
824
+ }
825
+ else
826
+ {
827
+ locatorInfo = _instance->locatorManager()->get(locator);
828
+ }
829
+ }
830
+
831
+ property = propertyPrefix + ".Router";
832
+ RouterPrx router = RouterPrx::uncheckedCast(_communicator->propertyToProxy(property));
833
+ if(router)
834
+ {
835
+ if(propertyPrefix.size() > 7 && propertyPrefix.substr(propertyPrefix.size() - 7, 7) == ".Router")
836
+ {
837
+ Warning out(_instance->initializationData().logger);
838
+ out << "`" << property << "=" << properties->getProperty(property)
839
+ << "': cannot set a router on a router; setting ignored";
840
+ }
841
+ else
842
+ {
843
+ routerInfo = _instance->routerManager()->get(router);
844
+ }
845
+ }
846
+
847
+ property = propertyPrefix + ".CollocationOptimized";
848
+ collocationOptimized = properties->getPropertyAsIntWithDefault(property, collocationOptimized) > 0;
849
+
850
+ property = propertyPrefix + ".ConnectionCached";
851
+ cacheConnection = properties->getPropertyAsIntWithDefault(property, cacheConnection) > 0;
852
+
853
+ property = propertyPrefix + ".PreferSecure";
854
+ preferSecure = properties->getPropertyAsIntWithDefault(property, preferSecure) > 0;
855
+
856
+ property = propertyPrefix + ".EndpointSelection";
857
+ if(!properties->getProperty(property).empty())
858
+ {
859
+ string type = properties->getProperty(property);
860
+ if(type == "Random")
861
+ {
862
+ endpointSelection = Random;
863
+ }
864
+ else if(type == "Ordered")
865
+ {
866
+ endpointSelection = Ordered;
867
+ }
868
+ else
869
+ {
870
+ EndpointSelectionTypeParseException ex(__FILE__, __LINE__);
871
+ ex.str = "illegal value `" + type + "'; expected `Random' or `Ordered'";
872
+ throw ex;
873
+ }
874
+ }
875
+
876
+ property = propertyPrefix + ".LocatorCacheTimeout";
877
+ string value = properties->getProperty(property);
878
+ if(!value.empty())
879
+ {
880
+ locatorCacheTimeout = properties->getPropertyAsIntWithDefault(property, locatorCacheTimeout);
881
+ if(locatorCacheTimeout < -1)
882
+ {
883
+ locatorCacheTimeout = -1;
884
+
885
+ Warning out(_instance->initializationData().logger);
886
+ out << "invalid value for " << property << "`" << properties->getProperty(property) << "'"
887
+ << ": defaulting to -1";
888
+ }
889
+ }
890
+
891
+ property = propertyPrefix + ".InvocationTimeout";
892
+ value = properties->getProperty(property);
893
+ if(!value.empty())
894
+ {
895
+ invocationTimeout = properties->getPropertyAsIntWithDefault(property, invocationTimeout);
896
+ if(invocationTimeout < 1 && invocationTimeout != -1)
897
+ {
898
+ invocationTimeout = -1;
899
+
900
+ Warning out(_instance->initializationData().logger);
901
+ out << "invalid value for " << property << "`" << properties->getProperty(property) << "'"
902
+ << ": defaulting to -1";
903
+ }
904
+ }
905
+
906
+ property = propertyPrefix + ".Context.";
907
+ PropertyDict contexts = properties->getPropertiesForPrefix(property);
908
+ for(PropertyDict::const_iterator p = contexts.begin(); p != contexts.end(); ++p)
909
+ {
910
+ ctx.insert(make_pair(p->first.substr(property.length()), p->second));
911
+ }
912
+ }
913
+
914
+ //
915
+ // Create new reference
916
+ //
917
+ return new RoutableReference(_instance,
918
+ _communicator,
919
+ ident,
920
+ facet,
921
+ mode,
922
+ secure,
923
+ protocol,
924
+ encoding,
925
+ endpoints,
926
+ adapterId,
927
+ locatorInfo,
928
+ routerInfo,
929
+ collocationOptimized,
930
+ cacheConnection,
931
+ preferSecure,
932
+ endpointSelection,
933
+ locatorCacheTimeout,
934
+ invocationTimeout,
935
+ ctx);
936
+ }
937
+