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
data/ext/Operation.h ADDED
@@ -0,0 +1,36 @@
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_RUBY_OPERATION_H
11
+ #define ICE_RUBY_OPERATION_H
12
+
13
+ #include <Config.h>
14
+ #include <Ice/CommunicatorF.h>
15
+
16
+ namespace IceRuby
17
+ {
18
+
19
+ class Operation : public IceUtil::Shared
20
+ {
21
+ public:
22
+
23
+ virtual ~Operation();
24
+
25
+ virtual VALUE invoke(const Ice::ObjectPrx&, VALUE, VALUE) = 0;
26
+ virtual void deprecate(const std::string&) = 0;
27
+ };
28
+ typedef IceUtil::Handle<Operation> OperationPtr;
29
+
30
+ bool initOperation(VALUE);
31
+
32
+ OperationPtr getOperation(VALUE);
33
+
34
+ }
35
+
36
+ #endif
@@ -0,0 +1,369 @@
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 <Properties.h>
11
+ #include <Util.h>
12
+ #include <Ice/Initialize.h>
13
+ #include <Ice/Properties.h>
14
+
15
+ using namespace std;
16
+ using namespace IceRuby;
17
+
18
+ static VALUE _propertiesClass;
19
+
20
+ extern "C"
21
+ void
22
+ IceRuby_Properties_free(Ice::PropertiesPtr* p)
23
+ {
24
+ assert(p);
25
+ delete p;
26
+ }
27
+
28
+ extern "C"
29
+ VALUE
30
+ IceRuby_createProperties(int argc, VALUE* argv, VALUE self)
31
+ {
32
+ ICE_RUBY_TRY
33
+ {
34
+ Ice::StringSeq seq;
35
+ if(argc >= 1 && !NIL_P(argv[0]) && !arrayToStringSeq(argv[0], seq))
36
+ {
37
+ throw RubyException(rb_eTypeError, "invalid array argument to Ice::createProperties");
38
+ }
39
+
40
+ Ice::PropertiesPtr defaults;
41
+ if(argc == 2)
42
+ {
43
+ if(!NIL_P(argv[1]) && callRuby(rb_obj_is_instance_of, argv[1], _propertiesClass) == Qfalse)
44
+ {
45
+ throw RubyException(rb_eTypeError, "invalid properties argument to Ice::createProperties");
46
+ }
47
+ defaults = getProperties(argv[1]);
48
+ }
49
+
50
+ //
51
+ // Insert the program name (stored in the Ruby global variable $0) as the first
52
+ // element of the sequence.
53
+ //
54
+ volatile VALUE progName = callRuby(rb_gv_get, "$0");
55
+ seq.insert(seq.begin(), getString(progName));
56
+
57
+ Ice::PropertiesPtr obj;
58
+ if(argc >= 1)
59
+ {
60
+ obj = Ice::createProperties(seq, defaults);
61
+ }
62
+ else
63
+ {
64
+ obj = Ice::createProperties();
65
+ }
66
+
67
+ //
68
+ // Replace the contents of the given argument list with the filtered arguments.
69
+ //
70
+ if(argc > 0 && !NIL_P(argv[0]))
71
+ {
72
+ callRuby(rb_ary_clear, argv[0]);
73
+
74
+ //
75
+ // We start at index 1 in order to skip the element that we inserted earlier.
76
+ //
77
+ for(Ice::StringSeq::size_type i = 1; i < seq.size(); ++i)
78
+ {
79
+ volatile VALUE str = createString(seq[i]);
80
+ callRuby(rb_ary_push, argv[0], str);
81
+ }
82
+ }
83
+
84
+ return createProperties(obj);
85
+ }
86
+ ICE_RUBY_CATCH
87
+ return Qnil;
88
+ }
89
+
90
+ extern "C"
91
+ VALUE
92
+ IceRuby_Properties_getProperty(VALUE self, VALUE key)
93
+ {
94
+ ICE_RUBY_TRY
95
+ {
96
+ Ice::PropertiesPtr p = getProperties(self);
97
+ string k = getString(key);
98
+ string v = p->getProperty(k);
99
+ return createString(v);
100
+ }
101
+ ICE_RUBY_CATCH
102
+ return Qnil;
103
+ }
104
+
105
+ extern "C"
106
+ VALUE
107
+ IceRuby_Properties_getPropertyWithDefault(VALUE self, VALUE key, VALUE def)
108
+ {
109
+ ICE_RUBY_TRY
110
+ {
111
+ Ice::PropertiesPtr p = getProperties(self);
112
+ string k = getString(key);
113
+ string d = getString(def);
114
+ string v = p->getPropertyWithDefault(k, d);
115
+ return createString(v);
116
+ }
117
+ ICE_RUBY_CATCH
118
+ return Qnil;
119
+ }
120
+
121
+ extern "C"
122
+ VALUE
123
+ IceRuby_Properties_getPropertyAsInt(VALUE self, VALUE key)
124
+ {
125
+ ICE_RUBY_TRY
126
+ {
127
+ Ice::PropertiesPtr p = getProperties(self);
128
+ string k = getString(key);
129
+ Ice::Int v = p->getPropertyAsInt(k);
130
+ return INT2FIX(v);
131
+ }
132
+ ICE_RUBY_CATCH
133
+ return Qnil;
134
+ }
135
+
136
+ extern "C"
137
+ VALUE
138
+ IceRuby_Properties_getPropertyAsIntWithDefault(VALUE self, VALUE key, VALUE def)
139
+ {
140
+ ICE_RUBY_TRY
141
+ {
142
+ Ice::PropertiesPtr p = getProperties(self);
143
+ string k = getString(key);
144
+ Ice::Int d = getInteger(def);
145
+ Ice::Int v = p->getPropertyAsIntWithDefault(k, d);
146
+ return INT2FIX(v);
147
+ }
148
+ ICE_RUBY_CATCH
149
+ return Qnil;
150
+ }
151
+
152
+ extern "C"
153
+ VALUE
154
+ IceRuby_Properties_getPropertyAsList(VALUE self, VALUE key)
155
+ {
156
+ ICE_RUBY_TRY
157
+ {
158
+ Ice::PropertiesPtr p = getProperties(self);
159
+ string k = getString(key);
160
+ Ice::StringSeq v = p->getPropertyAsList(k);
161
+ return stringSeqToArray(v);
162
+ }
163
+ ICE_RUBY_CATCH
164
+ return Qnil;
165
+ }
166
+
167
+ extern "C"
168
+ VALUE
169
+ IceRuby_Properties_getPropertyAsListWithDefault(VALUE self, VALUE key, VALUE def)
170
+ {
171
+ ICE_RUBY_TRY
172
+ {
173
+ Ice::PropertiesPtr p = getProperties(self);
174
+ string k = getString(key);
175
+ Ice::StringSeq d;
176
+ if(!arrayToStringSeq(def, d))
177
+ {
178
+ throw RubyException(rb_eTypeError, "invalid array argument to Ice::getPropertyAsListWithDefault");
179
+ }
180
+ Ice::StringSeq v = p->getPropertyAsListWithDefault(k, d);
181
+ return stringSeqToArray(v);
182
+ }
183
+ ICE_RUBY_CATCH
184
+ return Qnil;
185
+ }
186
+
187
+ extern "C"
188
+ VALUE
189
+ IceRuby_Properties_getPropertiesForPrefix(VALUE self, VALUE prefix)
190
+ {
191
+ ICE_RUBY_TRY
192
+ {
193
+ Ice::PropertiesPtr p = getProperties(self);
194
+ string pfx = getString(prefix);
195
+ Ice::PropertyDict dict = p->getPropertiesForPrefix(pfx);
196
+ volatile VALUE result = callRuby(rb_hash_new);
197
+ for(Ice::PropertyDict::const_iterator q = dict.begin(); q != dict.end(); ++q)
198
+ {
199
+ volatile VALUE key = createString(q->first);
200
+ volatile VALUE value = createString(q->second);
201
+ callRuby(rb_hash_aset, result, key, value);
202
+ }
203
+ return result;
204
+ }
205
+ ICE_RUBY_CATCH
206
+ return Qnil;
207
+ }
208
+
209
+ extern "C"
210
+ VALUE
211
+ IceRuby_Properties_setProperty(VALUE self, VALUE key, VALUE value)
212
+ {
213
+ ICE_RUBY_TRY
214
+ {
215
+ Ice::PropertiesPtr p = getProperties(self);
216
+ string k = getString(key);
217
+ string v = getString(value);
218
+ p->setProperty(k, v);
219
+ }
220
+ ICE_RUBY_CATCH
221
+ return Qnil;
222
+ }
223
+
224
+ extern "C"
225
+ VALUE
226
+ IceRuby_Properties_getCommandLineOptions(VALUE self)
227
+ {
228
+ ICE_RUBY_TRY
229
+ {
230
+ Ice::PropertiesPtr p = getProperties(self);
231
+ Ice::StringSeq options = p->getCommandLineOptions();
232
+ return stringSeqToArray(options);
233
+ }
234
+ ICE_RUBY_CATCH
235
+ return Qnil;
236
+ }
237
+
238
+ extern "C"
239
+ VALUE
240
+ IceRuby_Properties_parseCommandLineOptions(VALUE self, VALUE prefix, VALUE options)
241
+ {
242
+ ICE_RUBY_TRY
243
+ {
244
+ Ice::PropertiesPtr p = getProperties(self);
245
+ string pfx = getString(prefix);
246
+ Ice::StringSeq seq;
247
+ if(!arrayToStringSeq(options, seq))
248
+ {
249
+ throw RubyException(rb_eTypeError, "invalid array argument to Ice::parseCommandLineOptions");
250
+ }
251
+ Ice::StringSeq filtered = p->parseCommandLineOptions(pfx, seq);
252
+ return stringSeqToArray(filtered);
253
+ }
254
+ ICE_RUBY_CATCH
255
+ return Qnil;
256
+ }
257
+
258
+ extern "C"
259
+ VALUE
260
+ IceRuby_Properties_parseIceCommandLineOptions(VALUE self, VALUE options)
261
+ {
262
+ ICE_RUBY_TRY
263
+ {
264
+ Ice::PropertiesPtr p = getProperties(self);
265
+ Ice::StringSeq seq;
266
+ if(!arrayToStringSeq(options, seq))
267
+ {
268
+ throw RubyException(rb_eTypeError, "invalid array argument to Ice::parseIceCommandLineOptions");
269
+ }
270
+ Ice::StringSeq filtered = p->parseIceCommandLineOptions(seq);
271
+ return stringSeqToArray(filtered);
272
+ }
273
+ ICE_RUBY_CATCH
274
+ return Qnil;
275
+ }
276
+
277
+ extern "C"
278
+ VALUE
279
+ IceRuby_Properties_load(VALUE self, VALUE file)
280
+ {
281
+ ICE_RUBY_TRY
282
+ {
283
+ Ice::PropertiesPtr p = getProperties(self);
284
+ string f = getString(file);
285
+ p->load(f);
286
+ }
287
+ ICE_RUBY_CATCH
288
+ return Qnil;
289
+ }
290
+
291
+ extern "C"
292
+ VALUE
293
+ IceRuby_Properties_clone(VALUE self)
294
+ {
295
+ ICE_RUBY_TRY
296
+ {
297
+ Ice::PropertiesPtr p = getProperties(self);
298
+ Ice::PropertiesPtr props = p->clone();
299
+ return createProperties(props);
300
+ }
301
+ ICE_RUBY_CATCH
302
+ return Qnil;
303
+ }
304
+
305
+ extern "C"
306
+ VALUE
307
+ IceRuby_Properties_to_s(VALUE self)
308
+ {
309
+ ICE_RUBY_TRY
310
+ {
311
+ Ice::PropertiesPtr p = getProperties(self);
312
+ Ice::PropertyDict dict = p->getPropertiesForPrefix("");
313
+ string str;
314
+ for(Ice::PropertyDict::const_iterator q = dict.begin(); q != dict.end(); ++q)
315
+ {
316
+ if(q != dict.begin())
317
+ {
318
+ str.append("\n");
319
+ }
320
+ str.append(q->first + "=" + q->second);
321
+ }
322
+ return createString(str);
323
+ }
324
+ ICE_RUBY_CATCH
325
+ return Qnil;
326
+ }
327
+
328
+ void
329
+ IceRuby::initProperties(VALUE iceModule)
330
+ {
331
+ rb_define_module_function(iceModule, "createProperties", CAST_METHOD(IceRuby_createProperties), -1);
332
+
333
+ _propertiesClass = rb_define_class_under(iceModule, "PropertiesI", rb_cObject);
334
+ rb_define_method(_propertiesClass, "getProperty", CAST_METHOD(IceRuby_Properties_getProperty), 1);
335
+ rb_define_method(_propertiesClass, "getPropertyWithDefault",
336
+ CAST_METHOD(IceRuby_Properties_getPropertyWithDefault), 2);
337
+ rb_define_method(_propertiesClass, "getPropertyAsInt", CAST_METHOD(IceRuby_Properties_getPropertyAsInt), 1);
338
+ rb_define_method(_propertiesClass, "getPropertyAsIntWithDefault",
339
+ CAST_METHOD(IceRuby_Properties_getPropertyAsIntWithDefault), 2);
340
+ rb_define_method(_propertiesClass, "getPropertyAsList", CAST_METHOD(IceRuby_Properties_getPropertyAsList), 1);
341
+ rb_define_method(_propertiesClass, "getPropertyAsListWithDefault",
342
+ CAST_METHOD(IceRuby_Properties_getPropertyAsListWithDefault), 2);
343
+ rb_define_method(_propertiesClass, "getPropertiesForPrefix",
344
+ CAST_METHOD(IceRuby_Properties_getPropertiesForPrefix), 1);
345
+ rb_define_method(_propertiesClass, "setProperty", CAST_METHOD(IceRuby_Properties_setProperty), 2);
346
+ rb_define_method(_propertiesClass, "getCommandLineOptions", CAST_METHOD(IceRuby_Properties_getCommandLineOptions),
347
+ 0);
348
+ rb_define_method(_propertiesClass, "parseCommandLineOptions",
349
+ CAST_METHOD(IceRuby_Properties_parseCommandLineOptions), 2);
350
+ rb_define_method(_propertiesClass, "parseIceCommandLineOptions",
351
+ CAST_METHOD(IceRuby_Properties_parseIceCommandLineOptions), 1);
352
+ rb_define_method(_propertiesClass, "load", CAST_METHOD(IceRuby_Properties_load), 1);
353
+ rb_define_method(_propertiesClass, "clone", CAST_METHOD(IceRuby_Properties_clone), 0);
354
+ rb_define_method(_propertiesClass, "to_s", CAST_METHOD(IceRuby_Properties_to_s), 0);
355
+ }
356
+
357
+ Ice::PropertiesPtr
358
+ IceRuby::getProperties(VALUE v)
359
+ {
360
+ Ice::PropertiesPtr* p = reinterpret_cast<Ice::PropertiesPtr*>(DATA_PTR(v));
361
+ assert(p);
362
+ return *p;
363
+ }
364
+
365
+ VALUE
366
+ IceRuby::createProperties(const Ice::PropertiesPtr& p)
367
+ {
368
+ return Data_Wrap_Struct(_propertiesClass, 0, IceRuby_Properties_free, new Ice::PropertiesPtr(p));
369
+ }
data/ext/Properties.h ADDED
@@ -0,0 +1,25 @@
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_RUBY_PROPERTIES_H
11
+ #define ICE_RUBY_PROPERTIES_H
12
+
13
+ #include <Config.h>
14
+ #include <Ice/PropertiesF.h>
15
+
16
+ namespace IceRuby
17
+ {
18
+
19
+ void initProperties(VALUE);
20
+ Ice::PropertiesPtr getProperties(VALUE);
21
+ VALUE createProperties(const Ice::PropertiesPtr&);
22
+
23
+ }
24
+
25
+ #endif
data/ext/Proxy.cpp ADDED
@@ -0,0 +1,1354 @@
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 <IceUtil/DisableWarnings.h>
11
+ #include <Proxy.h>
12
+ #include <Communicator.h>
13
+ #include <Connection.h>
14
+ #include <Endpoint.h>
15
+ #include <Util.h>
16
+ #include <Ice/LocalException.h>
17
+ #include <Ice/Locator.h>
18
+ #include <Ice/Proxy.h>
19
+ #include <Ice/Router.h>
20
+
21
+ using namespace std;
22
+ using namespace IceRuby;
23
+
24
+ static VALUE _proxyClass;
25
+
26
+ // **********************************************************************
27
+ // ObjectPrx
28
+ // **********************************************************************
29
+
30
+ extern "C"
31
+ void
32
+ IceRuby_ObjectPrx_mark(Ice::ObjectPrx* p)
33
+ {
34
+ //
35
+ // We need to mark the communicator associated with this proxy.
36
+ //
37
+ assert(p);
38
+ volatile VALUE communicator = lookupCommunicator((*p)->ice_getCommunicator());
39
+ assert(!NIL_P(communicator));
40
+ rb_gc_mark(communicator);
41
+ }
42
+
43
+ extern "C"
44
+ void
45
+ IceRuby_ObjectPrx_free(Ice::ObjectPrx* p)
46
+ {
47
+ assert(p);
48
+ delete p;
49
+ }
50
+
51
+ //
52
+ // Returns true if a context was provided.
53
+ //
54
+ static bool
55
+ checkArgs(const char* name, int numArgs, int argc, VALUE* argv, Ice::Context& ctx)
56
+ {
57
+ if(argc < numArgs || argc > numArgs + 1)
58
+ {
59
+ throw RubyException(rb_eArgError, "%s expects %d argument%s including an optional context hash", name,
60
+ numArgs + 1, numArgs + 1 == 1 ? "" : "s");
61
+ }
62
+ if(argc == numArgs + 1)
63
+ {
64
+ if(!hashToContext(argv[numArgs], ctx))
65
+ {
66
+ throw RubyException(rb_eArgError, "%s: invalid context hash", name);
67
+ }
68
+ return true;
69
+ }
70
+ return false;
71
+ }
72
+
73
+ extern "C"
74
+ VALUE
75
+ IceRuby_ObjectPrx_hash(VALUE self)
76
+ {
77
+ ICE_RUBY_TRY
78
+ {
79
+ Ice::ObjectPrx p = getProxy(self);
80
+ return INT2FIX(p->__hash());
81
+ }
82
+ ICE_RUBY_CATCH
83
+ return Qnil;
84
+ }
85
+
86
+ extern "C"
87
+ VALUE
88
+ IceRuby_ObjectPrx_ice_getCommunicator(VALUE self)
89
+ {
90
+ ICE_RUBY_TRY
91
+ {
92
+ Ice::ObjectPrx p = getProxy(self);
93
+ Ice::CommunicatorPtr communicator = p->ice_getCommunicator();
94
+ return lookupCommunicator(communicator);
95
+ }
96
+ ICE_RUBY_CATCH
97
+ return Qnil;
98
+ }
99
+
100
+ extern "C"
101
+ VALUE
102
+ IceRuby_ObjectPrx_ice_toString(VALUE self)
103
+ {
104
+ ICE_RUBY_TRY
105
+ {
106
+ Ice::ObjectPrx p = getProxy(self);
107
+ string s = p->ice_toString();
108
+ return createString(s);
109
+ }
110
+ ICE_RUBY_CATCH
111
+ return Qnil;
112
+ }
113
+
114
+ extern "C"
115
+ VALUE
116
+ IceRuby_ObjectPrx_ice_isA(int argc, VALUE* argv, VALUE self)
117
+ {
118
+ ICE_RUBY_TRY
119
+ {
120
+ Ice::ObjectPrx p = getProxy(self);
121
+
122
+ Ice::Context ctx;
123
+ bool haveContext = checkArgs("ice_isA", 1, argc, argv, ctx);
124
+
125
+ string id = getString(argv[0]);
126
+
127
+ bool result;
128
+ if(haveContext)
129
+ {
130
+ result = p->ice_isA(id, ctx);
131
+ }
132
+ else
133
+ {
134
+ result = p->ice_isA(id);
135
+ }
136
+ return result ? Qtrue : Qfalse;
137
+ }
138
+ ICE_RUBY_CATCH
139
+ return Qnil;
140
+ }
141
+
142
+ extern "C"
143
+ VALUE
144
+ IceRuby_ObjectPrx_ice_ping(int argc, VALUE* argv, VALUE self)
145
+ {
146
+ ICE_RUBY_TRY
147
+ {
148
+ Ice::ObjectPrx p = getProxy(self);
149
+
150
+ Ice::Context ctx;
151
+ bool haveContext = checkArgs("ice_ping", 0, argc, argv, ctx);
152
+
153
+ if(haveContext)
154
+ {
155
+ p->ice_ping(ctx);
156
+ }
157
+ else
158
+ {
159
+ p->ice_ping();
160
+ }
161
+ }
162
+ ICE_RUBY_CATCH
163
+ return Qnil;
164
+ }
165
+
166
+ extern "C"
167
+ VALUE
168
+ IceRuby_ObjectPrx_ice_ids(int argc, VALUE* argv, VALUE self)
169
+ {
170
+ ICE_RUBY_TRY
171
+ {
172
+ Ice::ObjectPrx p = getProxy(self);
173
+
174
+ Ice::Context ctx;
175
+ bool haveContext = checkArgs("ice_ids", 0, argc, argv, ctx);
176
+
177
+ vector<string> ids;
178
+ if(haveContext)
179
+ {
180
+ ids = p->ice_ids(ctx);
181
+ }
182
+ else
183
+ {
184
+ ids = p->ice_ids();
185
+ }
186
+
187
+ volatile VALUE result = createArray(ids.size());
188
+ long i = 0;
189
+ for(vector<string>::iterator q = ids.begin(); q != ids.end(); ++q, ++i)
190
+ {
191
+ RARRAY_PTR(result)[i] = createString(*q);
192
+ }
193
+
194
+ return result;
195
+ }
196
+ ICE_RUBY_CATCH
197
+ return Qnil;
198
+ }
199
+
200
+ extern "C"
201
+ VALUE
202
+ IceRuby_ObjectPrx_ice_id(int argc, VALUE* argv, VALUE self)
203
+ {
204
+ ICE_RUBY_TRY
205
+ {
206
+ Ice::ObjectPrx p = getProxy(self);
207
+
208
+ Ice::Context ctx;
209
+ bool haveContext = checkArgs("ice_id", 0, argc, argv, ctx);
210
+
211
+ string id;
212
+ if(haveContext)
213
+ {
214
+ id = p->ice_id(ctx);
215
+ }
216
+ else
217
+ {
218
+ id = p->ice_id();
219
+ }
220
+
221
+ return createString(id);
222
+ }
223
+ ICE_RUBY_CATCH
224
+ return Qnil;
225
+ }
226
+
227
+ extern "C"
228
+ VALUE
229
+ IceRuby_ObjectPrx_ice_getIdentity(VALUE self)
230
+ {
231
+ ICE_RUBY_TRY
232
+ {
233
+ Ice::ObjectPrx p = getProxy(self);
234
+ return createIdentity(p->ice_getIdentity());
235
+ }
236
+ ICE_RUBY_CATCH
237
+ return Qnil;
238
+ }
239
+
240
+ extern "C"
241
+ VALUE
242
+ IceRuby_ObjectPrx_ice_identity(VALUE self, VALUE id)
243
+ {
244
+ ICE_RUBY_TRY
245
+ {
246
+ Ice::ObjectPrx p = getProxy(self);
247
+ Ice::Identity ident = getIdentity(id);
248
+ return createProxy(p->ice_identity(ident));
249
+ }
250
+ ICE_RUBY_CATCH
251
+ return Qnil;
252
+ }
253
+
254
+ extern "C"
255
+ VALUE
256
+ IceRuby_ObjectPrx_ice_getContext(VALUE self)
257
+ {
258
+ ICE_RUBY_TRY
259
+ {
260
+ Ice::ObjectPrx p = getProxy(self);
261
+ return contextToHash(p->ice_getContext());
262
+ }
263
+ ICE_RUBY_CATCH
264
+ return Qnil;
265
+ }
266
+
267
+ extern "C"
268
+ VALUE
269
+ IceRuby_ObjectPrx_ice_context(VALUE self, VALUE ctx)
270
+ {
271
+ ICE_RUBY_TRY
272
+ {
273
+ Ice::ObjectPrx p = getProxy(self);
274
+
275
+ Ice::Context context;
276
+ if(!NIL_P(ctx) && !hashToContext(ctx, context))
277
+ {
278
+ throw RubyException(rb_eTypeError, "argument is not a context hash");
279
+ }
280
+ return createProxy(p->ice_context(context), rb_class_of(self));
281
+ }
282
+ ICE_RUBY_CATCH
283
+ return Qnil;
284
+ }
285
+
286
+ extern "C"
287
+ VALUE
288
+ IceRuby_ObjectPrx_ice_getFacet(VALUE self)
289
+ {
290
+ ICE_RUBY_TRY
291
+ {
292
+ Ice::ObjectPrx p = getProxy(self);
293
+ string facet = p->ice_getFacet();
294
+ return createString(facet);
295
+ }
296
+ ICE_RUBY_CATCH
297
+ return Qnil;
298
+ }
299
+
300
+ extern "C"
301
+ VALUE
302
+ IceRuby_ObjectPrx_ice_facet(VALUE self, VALUE facet)
303
+ {
304
+ ICE_RUBY_TRY
305
+ {
306
+ Ice::ObjectPrx p = getProxy(self);
307
+ string f = getString(facet);
308
+ return createProxy(p->ice_facet(f));
309
+ }
310
+ ICE_RUBY_CATCH
311
+ return Qnil;
312
+ }
313
+
314
+ extern "C"
315
+ VALUE
316
+ IceRuby_ObjectPrx_ice_getAdapterId(VALUE self)
317
+ {
318
+ ICE_RUBY_TRY
319
+ {
320
+ Ice::ObjectPrx p = getProxy(self);
321
+ string id = p->ice_getAdapterId();
322
+ return createString(id);
323
+ }
324
+ ICE_RUBY_CATCH
325
+ return Qnil;
326
+ }
327
+
328
+ extern "C"
329
+ VALUE
330
+ IceRuby_ObjectPrx_ice_adapterId(VALUE self, VALUE id)
331
+ {
332
+ ICE_RUBY_TRY
333
+ {
334
+ Ice::ObjectPrx p = getProxy(self);
335
+ string idstr = getString(id);
336
+ return createProxy(p->ice_adapterId(idstr), rb_class_of(self));
337
+ }
338
+ ICE_RUBY_CATCH
339
+ return Qnil;
340
+ }
341
+
342
+ extern "C"
343
+ VALUE
344
+ IceRuby_ObjectPrx_ice_getEndpoints(VALUE self)
345
+ {
346
+ ICE_RUBY_TRY
347
+ {
348
+ Ice::ObjectPrx p = getProxy(self);
349
+
350
+ Ice::EndpointSeq seq = p->ice_getEndpoints();
351
+ volatile VALUE result = createArray(seq.size());
352
+ long i = 0;
353
+ for(Ice::EndpointSeq::iterator q = seq.begin(); q != seq.end(); ++q, ++i)
354
+ {
355
+ RARRAY_PTR(result)[i] = createEndpoint(*q);
356
+ }
357
+ return result;
358
+ }
359
+ ICE_RUBY_CATCH
360
+ return Qnil;
361
+ }
362
+
363
+ extern "C"
364
+ VALUE
365
+ IceRuby_ObjectPrx_ice_endpoints(VALUE self, VALUE seq)
366
+ {
367
+ ICE_RUBY_TRY
368
+ {
369
+ Ice::ObjectPrx p = getProxy(self);
370
+
371
+ if(!NIL_P(seq) && !isArray(seq))
372
+ {
373
+ throw RubyException(rb_eTypeError, "ice_endpoints requires an array of endpoints");
374
+ }
375
+
376
+ Ice::EndpointSeq endpoints;
377
+ if(!NIL_P(seq))
378
+ {
379
+ volatile VALUE arr = callRuby(rb_check_array_type, seq);
380
+ if(NIL_P(seq))
381
+ {
382
+ throw RubyException(rb_eTypeError, "unable to convert value to an array of endpoints");
383
+ }
384
+ for(long i = 0; i < RARRAY_LEN(arr); ++i)
385
+ {
386
+ if(!checkEndpoint(RARRAY_PTR(arr)[i]))
387
+ {
388
+ throw RubyException(rb_eTypeError, "array element is not an Ice::Endpoint");
389
+ }
390
+ Ice::EndpointPtr* e = reinterpret_cast<Ice::EndpointPtr*>(DATA_PTR(RARRAY_PTR(arr)[i]));
391
+ assert(e);
392
+ endpoints.push_back(*e);
393
+ }
394
+ }
395
+ return createProxy(p->ice_endpoints(endpoints), rb_class_of(self));
396
+ }
397
+ ICE_RUBY_CATCH
398
+ return Qnil;
399
+ }
400
+
401
+ extern "C"
402
+ VALUE
403
+ IceRuby_ObjectPrx_ice_getLocatorCacheTimeout(VALUE self)
404
+ {
405
+ ICE_RUBY_TRY
406
+ {
407
+ Ice::ObjectPrx p = getProxy(self);
408
+ Ice::Int t = p->ice_getLocatorCacheTimeout();
409
+ return INT2FIX(t);
410
+ }
411
+ ICE_RUBY_CATCH
412
+ return Qnil;
413
+ }
414
+
415
+ extern "C"
416
+ VALUE
417
+ IceRuby_ObjectPrx_ice_getInvocationTimeout(VALUE self)
418
+ {
419
+ ICE_RUBY_TRY
420
+ {
421
+ Ice::ObjectPrx p = getProxy(self);
422
+ Ice::Int t = p->ice_getInvocationTimeout();
423
+ return INT2FIX(t);
424
+ }
425
+ ICE_RUBY_CATCH
426
+ return Qnil;
427
+ }
428
+
429
+ extern "C"
430
+ VALUE
431
+ IceRuby_ObjectPrx_ice_getConnectionId(VALUE self)
432
+ {
433
+ ICE_RUBY_TRY
434
+ {
435
+ Ice::ObjectPrx p = getProxy(self);
436
+ string connectionId = p->ice_getConnectionId();
437
+ return createString(connectionId);
438
+ }
439
+ ICE_RUBY_CATCH
440
+ return Qnil;
441
+ }
442
+
443
+ extern "C"
444
+ VALUE
445
+ IceRuby_ObjectPrx_ice_locatorCacheTimeout(VALUE self, VALUE timeout)
446
+ {
447
+ ICE_RUBY_TRY
448
+ {
449
+ try
450
+ {
451
+ Ice::ObjectPrx p = getProxy(self);
452
+ long t = getInteger(timeout);
453
+ return createProxy(p->ice_locatorCacheTimeout(static_cast<Ice::Int>(t)), rb_class_of(self));
454
+ }
455
+ catch(const IceUtil::IllegalArgumentException& ex)
456
+ {
457
+ throw RubyException(rb_eArgError, ex.reason().c_str());
458
+ }
459
+ }
460
+ ICE_RUBY_CATCH
461
+ return Qnil;
462
+ }
463
+
464
+ extern "C"
465
+ VALUE
466
+ IceRuby_ObjectPrx_ice_invocationTimeout(VALUE self, VALUE timeout)
467
+ {
468
+ ICE_RUBY_TRY
469
+ {
470
+ try
471
+ {
472
+ Ice::ObjectPrx p = getProxy(self);
473
+ long t = getInteger(timeout);
474
+ return createProxy(p->ice_invocationTimeout(static_cast<Ice::Int>(t)), rb_class_of(self));
475
+ }
476
+ catch(const IceUtil::IllegalArgumentException& ex)
477
+ {
478
+ throw RubyException(rb_eArgError, ex.reason().c_str());
479
+ }
480
+ }
481
+ ICE_RUBY_CATCH
482
+ return Qnil;
483
+ }
484
+
485
+ extern "C"
486
+ VALUE
487
+ IceRuby_ObjectPrx_ice_isConnectionCached(VALUE self)
488
+ {
489
+ ICE_RUBY_TRY
490
+ {
491
+ Ice::ObjectPrx p = getProxy(self);
492
+ return p->ice_isConnectionCached() ? Qtrue : Qfalse;
493
+ }
494
+ ICE_RUBY_CATCH
495
+ return Qnil;
496
+ }
497
+
498
+ extern "C"
499
+ VALUE
500
+ IceRuby_ObjectPrx_ice_connectionCached(VALUE self, VALUE b)
501
+ {
502
+ ICE_RUBY_TRY
503
+ {
504
+ Ice::ObjectPrx p = getProxy(self);
505
+ return createProxy(p->ice_connectionCached(RTEST(b)), rb_class_of(self));
506
+ }
507
+ ICE_RUBY_CATCH
508
+ return Qnil;
509
+ }
510
+
511
+ extern "C"
512
+ VALUE
513
+ IceRuby_ObjectPrx_ice_getEndpointSelection(VALUE self)
514
+ {
515
+ ICE_RUBY_TRY
516
+ {
517
+ Ice::ObjectPrx p = getProxy(self);
518
+
519
+ Ice::EndpointSelectionType type = p->ice_getEndpointSelection();
520
+ volatile VALUE cls = callRuby(rb_path2class, "Ice::EndpointSelectionType");
521
+ assert(!NIL_P(cls));
522
+ return callRuby(rb_funcall, cls, rb_intern("from_int"), 1, INT2NUM(static_cast<int>(type)));
523
+ }
524
+ ICE_RUBY_CATCH
525
+ return Qnil;
526
+ }
527
+
528
+ extern "C"
529
+ VALUE
530
+ IceRuby_ObjectPrx_ice_endpointSelection(VALUE self, VALUE type)
531
+ {
532
+ ICE_RUBY_TRY
533
+ {
534
+ Ice::ObjectPrx p = getProxy(self);
535
+
536
+ volatile VALUE cls = callRuby(rb_path2class, "Ice::EndpointSelectionType");
537
+ assert(!NIL_P(cls));
538
+ if(callRuby(rb_obj_is_instance_of, type, cls) == Qfalse)
539
+ {
540
+ throw RubyException(rb_eTypeError, "argument must be an Ice::EndpointSelectionType enumerator");
541
+ }
542
+
543
+ volatile VALUE val = callRuby(rb_funcall, type, rb_intern("to_i"), 0);
544
+ Ice::EndpointSelectionType t = static_cast<Ice::EndpointSelectionType>(getInteger(val));
545
+ return createProxy(p->ice_endpointSelection(t), rb_class_of(self));
546
+ }
547
+ ICE_RUBY_CATCH
548
+ return Qnil;
549
+ }
550
+
551
+ extern "C"
552
+ VALUE
553
+ IceRuby_ObjectPrx_ice_isSecure(VALUE self)
554
+ {
555
+ ICE_RUBY_TRY
556
+ {
557
+ Ice::ObjectPrx p = getProxy(self);
558
+ return p->ice_isSecure() ? Qtrue : Qfalse;
559
+ }
560
+ ICE_RUBY_CATCH
561
+ return Qnil;
562
+ }
563
+
564
+ extern "C"
565
+ VALUE
566
+ IceRuby_ObjectPrx_ice_secure(VALUE self, VALUE b)
567
+ {
568
+ ICE_RUBY_TRY
569
+ {
570
+ Ice::ObjectPrx p = getProxy(self);
571
+ return createProxy(p->ice_secure(RTEST(b)), rb_class_of(self));
572
+ }
573
+ ICE_RUBY_CATCH
574
+ return Qnil;
575
+ }
576
+
577
+ extern "C"
578
+ VALUE
579
+ IceRuby_ObjectPrx_ice_getEncodingVersion(VALUE self)
580
+ {
581
+ ICE_RUBY_TRY
582
+ {
583
+ Ice::ObjectPrx p = getProxy(self);
584
+ return createEncodingVersion(p->ice_getEncodingVersion());
585
+ }
586
+ ICE_RUBY_CATCH
587
+ return Qnil;
588
+ }
589
+
590
+ extern "C"
591
+ VALUE
592
+ IceRuby_ObjectPrx_ice_encodingVersion(VALUE self, VALUE v)
593
+ {
594
+ Ice::EncodingVersion val;
595
+ if(getEncodingVersion(v, val))
596
+ {
597
+ ICE_RUBY_TRY
598
+ {
599
+ Ice::ObjectPrx p = getProxy(self);
600
+ return createProxy(p->ice_encodingVersion(val), rb_class_of(self));
601
+ }
602
+ ICE_RUBY_CATCH
603
+ }
604
+
605
+ return Qnil;
606
+ }
607
+
608
+ extern "C"
609
+ VALUE
610
+ IceRuby_ObjectPrx_ice_isPreferSecure(VALUE self)
611
+ {
612
+ ICE_RUBY_TRY
613
+ {
614
+ Ice::ObjectPrx p = getProxy(self);
615
+ return p->ice_isPreferSecure() ? Qtrue : Qfalse;
616
+ }
617
+ ICE_RUBY_CATCH
618
+ return Qnil;
619
+ }
620
+
621
+ extern "C"
622
+ VALUE
623
+ IceRuby_ObjectPrx_ice_preferSecure(VALUE self, VALUE b)
624
+ {
625
+ ICE_RUBY_TRY
626
+ {
627
+ Ice::ObjectPrx p = getProxy(self);
628
+ return createProxy(p->ice_preferSecure(RTEST(b)), rb_class_of(self));
629
+ }
630
+ ICE_RUBY_CATCH
631
+ return Qnil;
632
+ }
633
+
634
+ extern "C"
635
+ VALUE
636
+ IceRuby_ObjectPrx_ice_getRouter(VALUE self)
637
+ {
638
+ ICE_RUBY_TRY
639
+ {
640
+ Ice::ObjectPrx p = getProxy(self);
641
+
642
+ Ice::RouterPrx router = p->ice_getRouter();
643
+ if(router)
644
+ {
645
+ volatile VALUE cls = callRuby(rb_path2class, "Ice::RouterPrx");
646
+ assert(!NIL_P(cls));
647
+ return createProxy(router, cls);
648
+ }
649
+ }
650
+ ICE_RUBY_CATCH
651
+ return Qnil;
652
+ }
653
+
654
+ extern "C"
655
+ VALUE
656
+ IceRuby_ObjectPrx_ice_router(VALUE self, VALUE router)
657
+ {
658
+ ICE_RUBY_TRY
659
+ {
660
+ Ice::ObjectPrx p = getProxy(self);
661
+
662
+ Ice::RouterPrx proxy;
663
+ if(!NIL_P(router))
664
+ {
665
+ if(!checkProxy(router))
666
+ {
667
+ throw RubyException(rb_eTypeError, "argument must be a proxy");
668
+ }
669
+ proxy = Ice::RouterPrx::uncheckedCast(getProxy(router));
670
+ }
671
+ return createProxy(p->ice_router(proxy), rb_class_of(self));
672
+ }
673
+ ICE_RUBY_CATCH
674
+ return Qnil;
675
+ }
676
+
677
+ extern "C"
678
+ VALUE
679
+ IceRuby_ObjectPrx_ice_getLocator(VALUE self)
680
+ {
681
+ ICE_RUBY_TRY
682
+ {
683
+ Ice::ObjectPrx p = getProxy(self);
684
+
685
+ Ice::LocatorPrx locator = p->ice_getLocator();
686
+ if(locator)
687
+ {
688
+ volatile VALUE cls = callRuby(rb_path2class, "Ice::LocatorPrx");
689
+ assert(!NIL_P(cls));
690
+ return createProxy(locator, cls);
691
+ }
692
+ }
693
+ ICE_RUBY_CATCH
694
+ return Qnil;
695
+ }
696
+
697
+ extern "C"
698
+ VALUE
699
+ IceRuby_ObjectPrx_ice_locator(VALUE self, VALUE locator)
700
+ {
701
+ ICE_RUBY_TRY
702
+ {
703
+ Ice::ObjectPrx p = getProxy(self);
704
+
705
+ Ice::LocatorPrx proxy;
706
+ if(!NIL_P(locator))
707
+ {
708
+ if(!checkProxy(locator))
709
+ {
710
+ throw RubyException(rb_eTypeError, "argument must be a proxy");
711
+ }
712
+ proxy = Ice::LocatorPrx::uncheckedCast(getProxy(locator));
713
+ }
714
+ return createProxy(p->ice_locator(proxy), rb_class_of(self));
715
+ }
716
+ ICE_RUBY_CATCH
717
+ return Qnil;
718
+ }
719
+
720
+ extern "C"
721
+ VALUE
722
+ IceRuby_ObjectPrx_ice_twoway(VALUE self)
723
+ {
724
+ ICE_RUBY_TRY
725
+ {
726
+ Ice::ObjectPrx p = getProxy(self);
727
+ return createProxy(p->ice_twoway(), rb_class_of(self));
728
+ }
729
+ ICE_RUBY_CATCH
730
+ return Qnil;
731
+ }
732
+
733
+ extern "C"
734
+ VALUE
735
+ IceRuby_ObjectPrx_ice_isTwoway(VALUE self)
736
+ {
737
+ ICE_RUBY_TRY
738
+ {
739
+ Ice::ObjectPrx p = getProxy(self);
740
+ return p->ice_isTwoway() ? Qtrue : Qfalse;
741
+ }
742
+ ICE_RUBY_CATCH
743
+ return Qnil;
744
+ }
745
+
746
+ extern "C"
747
+ VALUE
748
+ IceRuby_ObjectPrx_ice_oneway(VALUE self)
749
+ {
750
+ ICE_RUBY_TRY
751
+ {
752
+ Ice::ObjectPrx p = getProxy(self);
753
+ return createProxy(p->ice_oneway(), rb_class_of(self));
754
+ }
755
+ ICE_RUBY_CATCH
756
+ return Qnil;
757
+ }
758
+
759
+ extern "C"
760
+ VALUE
761
+ IceRuby_ObjectPrx_ice_isOneway(VALUE self)
762
+ {
763
+ ICE_RUBY_TRY
764
+ {
765
+ Ice::ObjectPrx p = getProxy(self);
766
+ return p->ice_isOneway() ? Qtrue : Qfalse;
767
+ }
768
+ ICE_RUBY_CATCH
769
+ return Qnil;
770
+ }
771
+
772
+ extern "C"
773
+ VALUE
774
+ IceRuby_ObjectPrx_ice_batchOneway(VALUE self)
775
+ {
776
+ ICE_RUBY_TRY
777
+ {
778
+ Ice::ObjectPrx p = getProxy(self);
779
+ return createProxy(p->ice_batchOneway(), rb_class_of(self));
780
+ }
781
+ ICE_RUBY_CATCH
782
+ return Qnil;
783
+ }
784
+
785
+ extern "C"
786
+ VALUE
787
+ IceRuby_ObjectPrx_ice_isBatchOneway(VALUE self)
788
+ {
789
+ ICE_RUBY_TRY
790
+ {
791
+ Ice::ObjectPrx p = getProxy(self);
792
+ return p->ice_isBatchOneway() ? Qtrue : Qfalse;
793
+ }
794
+ ICE_RUBY_CATCH
795
+ return Qnil;
796
+ }
797
+
798
+ extern "C"
799
+ VALUE
800
+ IceRuby_ObjectPrx_ice_datagram(VALUE self)
801
+ {
802
+ ICE_RUBY_TRY
803
+ {
804
+ Ice::ObjectPrx p = getProxy(self);
805
+ return createProxy(p->ice_datagram(), rb_class_of(self));
806
+ }
807
+ ICE_RUBY_CATCH
808
+ return Qnil;
809
+ }
810
+
811
+ extern "C"
812
+ VALUE
813
+ IceRuby_ObjectPrx_ice_isDatagram(VALUE self)
814
+ {
815
+ ICE_RUBY_TRY
816
+ {
817
+ Ice::ObjectPrx p = getProxy(self);
818
+ return p->ice_isDatagram() ? Qtrue : Qfalse;
819
+ }
820
+ ICE_RUBY_CATCH
821
+ return Qnil;
822
+ }
823
+
824
+ extern "C"
825
+ VALUE
826
+ IceRuby_ObjectPrx_ice_batchDatagram(VALUE self)
827
+ {
828
+ ICE_RUBY_TRY
829
+ {
830
+ Ice::ObjectPrx p = getProxy(self);
831
+ return createProxy(p->ice_batchDatagram(), rb_class_of(self));
832
+ }
833
+ ICE_RUBY_CATCH
834
+ return Qnil;
835
+ }
836
+
837
+ extern "C"
838
+ VALUE
839
+ IceRuby_ObjectPrx_ice_isBatchDatagram(VALUE self)
840
+ {
841
+ ICE_RUBY_TRY
842
+ {
843
+ Ice::ObjectPrx p = getProxy(self);
844
+ return p->ice_isBatchDatagram() ? Qtrue : Qfalse;
845
+ }
846
+ ICE_RUBY_CATCH
847
+ return Qnil;
848
+ }
849
+
850
+ extern "C"
851
+ VALUE
852
+ IceRuby_ObjectPrx_ice_compress(VALUE self, VALUE b)
853
+ {
854
+ ICE_RUBY_TRY
855
+ {
856
+ Ice::ObjectPrx p = getProxy(self);
857
+ return createProxy(p->ice_compress(RTEST(b)), rb_class_of(self));
858
+ }
859
+ ICE_RUBY_CATCH
860
+ return Qnil;
861
+ }
862
+
863
+ extern "C"
864
+ VALUE
865
+ IceRuby_ObjectPrx_ice_timeout(VALUE self, VALUE t)
866
+ {
867
+ ICE_RUBY_TRY
868
+ {
869
+ try
870
+ {
871
+ Ice::ObjectPrx p = getProxy(self);
872
+ Ice::Int timeout = static_cast<Ice::Int>(getInteger(t));
873
+ return createProxy(p->ice_timeout(timeout), rb_class_of(self));
874
+ }
875
+ catch(const IceUtil::IllegalArgumentException& ex)
876
+ {
877
+ throw RubyException(rb_eArgError, ex.reason().c_str());
878
+ }
879
+ }
880
+ ICE_RUBY_CATCH
881
+ return Qnil;
882
+ }
883
+
884
+ extern "C"
885
+ VALUE
886
+ IceRuby_ObjectPrx_ice_connectionId(VALUE self, VALUE id)
887
+ {
888
+ ICE_RUBY_TRY
889
+ {
890
+ Ice::ObjectPrx p = getProxy(self);
891
+ string idstr = getString(id);
892
+ return createProxy(p->ice_connectionId(idstr), rb_class_of(self));
893
+ }
894
+ ICE_RUBY_CATCH
895
+ return Qnil;
896
+ }
897
+
898
+ extern "C"
899
+ VALUE
900
+ IceRuby_ObjectPrx_ice_getConnection(VALUE self)
901
+ {
902
+ ICE_RUBY_TRY
903
+ {
904
+ Ice::ObjectPrx p = getProxy(self);
905
+ Ice::ConnectionPtr conn = p->ice_getConnection();
906
+ return createConnection(conn);
907
+ }
908
+ ICE_RUBY_CATCH
909
+ return Qnil;
910
+ }
911
+
912
+ extern "C"
913
+ VALUE
914
+ IceRuby_ObjectPrx_ice_getCachedConnection(VALUE self)
915
+ {
916
+ ICE_RUBY_TRY
917
+ {
918
+ Ice::ObjectPrx p = getProxy(self);
919
+ Ice::ConnectionPtr conn = p->ice_getCachedConnection();
920
+ if(conn)
921
+ {
922
+ return createConnection(conn);
923
+ }
924
+ }
925
+ ICE_RUBY_CATCH
926
+ return Qnil;
927
+ }
928
+
929
+ extern "C"
930
+ VALUE
931
+ IceRuby_ObjectPrx_ice_flushBatchRequests(VALUE self)
932
+ {
933
+ ICE_RUBY_TRY
934
+ {
935
+ Ice::ObjectPrx p = getProxy(self);
936
+ p->ice_flushBatchRequests();
937
+ }
938
+ ICE_RUBY_CATCH
939
+ return Qnil;
940
+ }
941
+
942
+ extern "C"
943
+ VALUE
944
+ IceRuby_ObjectPrx_cmp(VALUE self, VALUE other)
945
+ {
946
+ ICE_RUBY_TRY
947
+ {
948
+ if(NIL_P(other))
949
+ {
950
+ return INT2NUM(1);
951
+ }
952
+ if(!checkProxy(other))
953
+ {
954
+ throw RubyException(rb_eTypeError, "argument must be a proxy");
955
+ }
956
+ Ice::ObjectPrx p1 = getProxy(self);
957
+ Ice::ObjectPrx p2 = getProxy(other);
958
+ if(p1 < p2)
959
+ {
960
+ return INT2NUM(-1);
961
+ }
962
+ else if(p1 == p2)
963
+ {
964
+ return INT2NUM(0);
965
+ }
966
+ else
967
+ {
968
+ return INT2NUM(1);
969
+ }
970
+ }
971
+ ICE_RUBY_CATCH
972
+ return Qnil;
973
+ }
974
+
975
+ extern "C"
976
+ VALUE
977
+ IceRuby_ObjectPrx_equals(VALUE self, VALUE other)
978
+ {
979
+ return IceRuby_ObjectPrx_cmp(self, other) == INT2NUM(0) ? Qtrue : Qfalse;
980
+ }
981
+
982
+ static VALUE
983
+ checkedCastImpl(const Ice::ObjectPrx& p, const string& id, VALUE facet, VALUE ctx, VALUE type)
984
+ {
985
+ Ice::ObjectPrx target;
986
+ if(NIL_P(facet))
987
+ {
988
+ target = p;
989
+ }
990
+ else
991
+ {
992
+ target = p->ice_facet(getString(facet));
993
+ }
994
+
995
+ try
996
+ {
997
+ if(NIL_P(ctx))
998
+ {
999
+ if(target->ice_isA(id))
1000
+ {
1001
+ return createProxy(target, type);
1002
+ }
1003
+ }
1004
+ else
1005
+ {
1006
+ Ice::Context c;
1007
+ #ifndef NDEBUG
1008
+ bool b =
1009
+ #endif
1010
+ hashToContext(ctx, c);
1011
+ assert(b);
1012
+
1013
+ if(target->ice_isA(id, c))
1014
+ {
1015
+ return createProxy(target, type);
1016
+ }
1017
+ }
1018
+ }
1019
+ catch(const Ice::FacetNotExistException&)
1020
+ {
1021
+ // Ignore.
1022
+ }
1023
+
1024
+ return Qnil;
1025
+ }
1026
+
1027
+ extern "C"
1028
+ VALUE
1029
+ IceRuby_ObjectPrx_checkedCast(int argc, VALUE* args, VALUE self)
1030
+ {
1031
+ //
1032
+ // ice_checkedCast is called from generated code, therefore we always expect
1033
+ // to receive all four arguments.
1034
+ //
1035
+ ICE_RUBY_TRY
1036
+ {
1037
+ if(argc < 1 || argc > 3)
1038
+ {
1039
+ throw RubyException(rb_eArgError, "checkedCast requires a proxy argument and optional facet and context");
1040
+ }
1041
+
1042
+ if(NIL_P(args[0]))
1043
+ {
1044
+ return Qnil;
1045
+ }
1046
+
1047
+ if(!checkProxy(args[0]))
1048
+ {
1049
+ throw RubyException(rb_eArgError, "checkedCast requires a proxy argument");
1050
+ }
1051
+
1052
+ Ice::ObjectPrx p = getProxy(args[0]);
1053
+
1054
+ volatile VALUE facet = Qnil;
1055
+ volatile VALUE ctx = Qnil;
1056
+
1057
+ if(argc == 3)
1058
+ {
1059
+ if(!NIL_P(args[1]) && !isString(args[1]))
1060
+ {
1061
+ throw RubyException(rb_eArgError, "facet argument to checkedCast must be a string");
1062
+ }
1063
+ facet = args[1];
1064
+
1065
+ if(!NIL_P(args[2]) && !isHash(args[2]))
1066
+ {
1067
+ throw RubyException(rb_eArgError, "context argument to checkedCast must be a hash");
1068
+ }
1069
+ ctx = args[2];
1070
+ }
1071
+ else if(argc == 2)
1072
+ {
1073
+ if(isString(args[1]))
1074
+ {
1075
+ facet = args[1];
1076
+ }
1077
+ else if(isHash(args[1]))
1078
+ {
1079
+ ctx = args[1];
1080
+ }
1081
+ else
1082
+ {
1083
+ throw RubyException(rb_eArgError, "second argument to checkedCast must be a facet or context");
1084
+ }
1085
+ }
1086
+
1087
+ return checkedCastImpl(p, "::Ice::Object", facet, ctx, Qnil);
1088
+ }
1089
+ ICE_RUBY_CATCH
1090
+ return Qnil;
1091
+ }
1092
+
1093
+ extern "C"
1094
+ VALUE
1095
+ IceRuby_ObjectPrx_uncheckedCast(int argc, VALUE* args, VALUE self)
1096
+ {
1097
+ ICE_RUBY_TRY
1098
+ {
1099
+ if(argc < 1 || argc > 2)
1100
+ {
1101
+ throw RubyException(rb_eArgError, "uncheckedCast requires a proxy argument and an optional facet");
1102
+ }
1103
+
1104
+ if(NIL_P(args[0]))
1105
+ {
1106
+ return Qnil;
1107
+ }
1108
+
1109
+ if(!checkProxy(args[0]))
1110
+ {
1111
+ throw RubyException(rb_eArgError, "uncheckedCast requires a proxy argument");
1112
+ }
1113
+
1114
+ volatile VALUE facet = Qnil;
1115
+ if(argc == 2)
1116
+ {
1117
+ facet = args[1];
1118
+ }
1119
+
1120
+ Ice::ObjectPrx p = getProxy(args[0]);
1121
+
1122
+ if(!NIL_P(facet))
1123
+ {
1124
+ return createProxy(p->ice_facet(getString(facet)));
1125
+ }
1126
+ else
1127
+ {
1128
+ return createProxy(p);
1129
+ }
1130
+ }
1131
+ ICE_RUBY_CATCH
1132
+ return Qnil;
1133
+ }
1134
+
1135
+ extern "C"
1136
+ VALUE
1137
+ IceRuby_ObjectPrx_ice_checkedCast(VALUE self, VALUE obj, VALUE id, VALUE facetOrCtx, VALUE ctx)
1138
+ {
1139
+ //
1140
+ // ice_checkedCast is called from generated code, therefore we always expect
1141
+ // to receive all four arguments.
1142
+ //
1143
+ ICE_RUBY_TRY
1144
+ {
1145
+ if(NIL_P(obj))
1146
+ {
1147
+ return Qnil;
1148
+ }
1149
+
1150
+ if(!checkProxy(obj))
1151
+ {
1152
+ throw RubyException(rb_eArgError, "checkedCast requires a proxy argument");
1153
+ }
1154
+
1155
+ Ice::ObjectPrx p = getProxy(obj);
1156
+
1157
+ string idstr = getString(id);
1158
+
1159
+ volatile VALUE facet = Qnil;
1160
+ if(isString(facetOrCtx))
1161
+ {
1162
+ facet = facetOrCtx;
1163
+ }
1164
+ else if(isHash(facetOrCtx))
1165
+ {
1166
+ if(!NIL_P(ctx))
1167
+ {
1168
+ throw RubyException(rb_eArgError, "facet argument to checkedCast must be a string");
1169
+ }
1170
+ ctx = facetOrCtx;
1171
+ }
1172
+ else if(!NIL_P(facetOrCtx))
1173
+ {
1174
+ throw RubyException(rb_eArgError, "second argument to checkedCast must be a facet or context");
1175
+ }
1176
+
1177
+ if(!NIL_P(ctx) && !isHash(ctx))
1178
+ {
1179
+ throw RubyException(rb_eArgError, "context argument to checkedCast must be a hash");
1180
+ }
1181
+
1182
+ return checkedCastImpl(p, idstr, facet, ctx, self);
1183
+ }
1184
+ ICE_RUBY_CATCH
1185
+ return Qnil;
1186
+ }
1187
+
1188
+ extern "C"
1189
+ VALUE
1190
+ IceRuby_ObjectPrx_ice_uncheckedCast(VALUE self, VALUE obj, VALUE facet)
1191
+ {
1192
+ ICE_RUBY_TRY
1193
+ {
1194
+ if(NIL_P(obj))
1195
+ {
1196
+ return Qnil;
1197
+ }
1198
+
1199
+ if(!checkProxy(obj))
1200
+ {
1201
+ throw RubyException(rb_eArgError, "uncheckedCast requires a proxy argument");
1202
+ }
1203
+
1204
+ Ice::ObjectPrx p = getProxy(obj);
1205
+
1206
+ if(!NIL_P(facet))
1207
+ {
1208
+ return createProxy(p->ice_facet(getString(facet)), self);
1209
+ }
1210
+ else
1211
+ {
1212
+ return createProxy(p, self);
1213
+ }
1214
+ }
1215
+ ICE_RUBY_CATCH
1216
+ return Qnil;
1217
+ }
1218
+
1219
+ extern "C"
1220
+ VALUE
1221
+ IceRuby_ObjectPrx_ice_staticId(VALUE self)
1222
+ {
1223
+ ICE_RUBY_TRY
1224
+ {
1225
+ return createString(Ice::Object::ice_staticId());
1226
+ }
1227
+ ICE_RUBY_CATCH
1228
+ return Qnil;
1229
+ }
1230
+
1231
+ extern "C"
1232
+ VALUE
1233
+ IceRuby_ObjectPrx_new(int /*argc*/, VALUE* /*args*/, VALUE self)
1234
+ {
1235
+ ICE_RUBY_TRY
1236
+ {
1237
+ throw RubyException(rb_eRuntimeError, "a proxy cannot be created via new");
1238
+ }
1239
+ ICE_RUBY_CATCH
1240
+ return Qnil;
1241
+ }
1242
+
1243
+ void
1244
+ IceRuby::initProxy(VALUE iceModule)
1245
+ {
1246
+ //
1247
+ // ObjectPrx.
1248
+ //
1249
+ _proxyClass = rb_define_class_under(iceModule, "ObjectPrx", rb_cObject);
1250
+
1251
+ //
1252
+ // Instance methods.
1253
+ //
1254
+ rb_define_method(_proxyClass, "ice_getCommunicator", CAST_METHOD(IceRuby_ObjectPrx_ice_getCommunicator), 0);
1255
+ rb_define_method(_proxyClass, "ice_toString", CAST_METHOD(IceRuby_ObjectPrx_ice_toString), 0);
1256
+ rb_define_method(_proxyClass, "ice_isA", CAST_METHOD(IceRuby_ObjectPrx_ice_isA), -1);
1257
+ rb_define_method(_proxyClass, "ice_ping", CAST_METHOD(IceRuby_ObjectPrx_ice_ping), -1);
1258
+ rb_define_method(_proxyClass, "ice_ids", CAST_METHOD(IceRuby_ObjectPrx_ice_ids), -1);
1259
+ rb_define_method(_proxyClass, "ice_id", CAST_METHOD(IceRuby_ObjectPrx_ice_id), -1);
1260
+ rb_define_method(_proxyClass, "ice_getIdentity", CAST_METHOD(IceRuby_ObjectPrx_ice_getIdentity), 0);
1261
+ rb_define_method(_proxyClass, "ice_identity", CAST_METHOD(IceRuby_ObjectPrx_ice_identity), 1);
1262
+ rb_define_method(_proxyClass, "ice_getContext", CAST_METHOD(IceRuby_ObjectPrx_ice_getContext), 0);
1263
+ rb_define_method(_proxyClass, "ice_context", CAST_METHOD(IceRuby_ObjectPrx_ice_context), 1);
1264
+ rb_define_method(_proxyClass, "ice_getFacet", CAST_METHOD(IceRuby_ObjectPrx_ice_getFacet), 0);
1265
+ rb_define_method(_proxyClass, "ice_facet", CAST_METHOD(IceRuby_ObjectPrx_ice_facet), 1);
1266
+ rb_define_method(_proxyClass, "ice_getAdapterId", CAST_METHOD(IceRuby_ObjectPrx_ice_getAdapterId), 0);
1267
+ rb_define_method(_proxyClass, "ice_adapterId", CAST_METHOD(IceRuby_ObjectPrx_ice_adapterId), 1);
1268
+ rb_define_method(_proxyClass, "ice_getEndpoints", CAST_METHOD(IceRuby_ObjectPrx_ice_getEndpoints), 0);
1269
+ rb_define_method(_proxyClass, "ice_endpoints", CAST_METHOD(IceRuby_ObjectPrx_ice_endpoints), 1);
1270
+ rb_define_method(_proxyClass, "ice_getLocatorCacheTimeout",
1271
+ CAST_METHOD(IceRuby_ObjectPrx_ice_getLocatorCacheTimeout), 0);
1272
+ rb_define_method(_proxyClass, "ice_getInvocationTimeout",
1273
+ CAST_METHOD(IceRuby_ObjectPrx_ice_getInvocationTimeout), 0);
1274
+ rb_define_method(_proxyClass, "ice_getConnectionId", CAST_METHOD(IceRuby_ObjectPrx_ice_getConnectionId), 0);
1275
+ rb_define_method(_proxyClass, "ice_locatorCacheTimeout", CAST_METHOD(IceRuby_ObjectPrx_ice_locatorCacheTimeout), 1);
1276
+ rb_define_method(_proxyClass, "ice_invocationTimeout", CAST_METHOD(IceRuby_ObjectPrx_ice_invocationTimeout), 1);
1277
+ rb_define_method(_proxyClass, "ice_isConnectionCached", CAST_METHOD(IceRuby_ObjectPrx_ice_isConnectionCached), 0);
1278
+ rb_define_method(_proxyClass, "ice_connectionCached", CAST_METHOD(IceRuby_ObjectPrx_ice_connectionCached), 1);
1279
+ rb_define_method(_proxyClass, "ice_getEndpointSelection",
1280
+ CAST_METHOD(IceRuby_ObjectPrx_ice_getEndpointSelection), 0);
1281
+ rb_define_method(_proxyClass, "ice_endpointSelection", CAST_METHOD(IceRuby_ObjectPrx_ice_endpointSelection), 1);
1282
+ rb_define_method(_proxyClass, "ice_isSecure", CAST_METHOD(IceRuby_ObjectPrx_ice_isSecure), 0);
1283
+ rb_define_method(_proxyClass, "ice_secure", CAST_METHOD(IceRuby_ObjectPrx_ice_secure), 1);
1284
+ rb_define_method(_proxyClass, "ice_getEncodingVersion", CAST_METHOD(IceRuby_ObjectPrx_ice_getEncodingVersion), 0);
1285
+ rb_define_method(_proxyClass, "ice_encodingVersion", CAST_METHOD(IceRuby_ObjectPrx_ice_encodingVersion), 1);
1286
+ rb_define_method(_proxyClass, "ice_isPreferSecure", CAST_METHOD(IceRuby_ObjectPrx_ice_isPreferSecure), 0);
1287
+ rb_define_method(_proxyClass, "ice_preferSecure", CAST_METHOD(IceRuby_ObjectPrx_ice_preferSecure), 1);
1288
+ rb_define_method(_proxyClass, "ice_getRouter", CAST_METHOD(IceRuby_ObjectPrx_ice_getRouter), 0);
1289
+ rb_define_method(_proxyClass, "ice_router", CAST_METHOD(IceRuby_ObjectPrx_ice_router), 1);
1290
+ rb_define_method(_proxyClass, "ice_getLocator", CAST_METHOD(IceRuby_ObjectPrx_ice_getLocator), 0);
1291
+ rb_define_method(_proxyClass, "ice_locator", CAST_METHOD(IceRuby_ObjectPrx_ice_locator), 1);
1292
+ rb_define_method(_proxyClass, "ice_twoway", CAST_METHOD(IceRuby_ObjectPrx_ice_twoway), 0);
1293
+ rb_define_method(_proxyClass, "ice_isTwoway", CAST_METHOD(IceRuby_ObjectPrx_ice_isTwoway), 0);
1294
+ rb_define_method(_proxyClass, "ice_oneway", CAST_METHOD(IceRuby_ObjectPrx_ice_oneway), 0);
1295
+ rb_define_method(_proxyClass, "ice_isOneway", CAST_METHOD(IceRuby_ObjectPrx_ice_isOneway), 0);
1296
+ rb_define_method(_proxyClass, "ice_batchOneway", CAST_METHOD(IceRuby_ObjectPrx_ice_batchOneway), 0);
1297
+ rb_define_method(_proxyClass, "ice_isBatchOneway", CAST_METHOD(IceRuby_ObjectPrx_ice_isBatchOneway), 0);
1298
+ rb_define_method(_proxyClass, "ice_datagram", CAST_METHOD(IceRuby_ObjectPrx_ice_datagram), 0);
1299
+ rb_define_method(_proxyClass, "ice_isDatagram", CAST_METHOD(IceRuby_ObjectPrx_ice_isDatagram), 0);
1300
+ rb_define_method(_proxyClass, "ice_batchDatagram", CAST_METHOD(IceRuby_ObjectPrx_ice_batchDatagram), 0);
1301
+ rb_define_method(_proxyClass, "ice_isBatchDatagram", CAST_METHOD(IceRuby_ObjectPrx_ice_isBatchDatagram), 0);
1302
+ rb_define_method(_proxyClass, "ice_compress", CAST_METHOD(IceRuby_ObjectPrx_ice_compress), 1);
1303
+ rb_define_method(_proxyClass, "ice_timeout", CAST_METHOD(IceRuby_ObjectPrx_ice_timeout), 1);
1304
+ rb_define_method(_proxyClass, "ice_connectionId", CAST_METHOD(IceRuby_ObjectPrx_ice_connectionId), 1);
1305
+ rb_define_method(_proxyClass, "ice_getConnection", CAST_METHOD(IceRuby_ObjectPrx_ice_getConnection), 0);
1306
+ rb_define_method(_proxyClass, "ice_getCachedConnection", CAST_METHOD(IceRuby_ObjectPrx_ice_getCachedConnection), 0);
1307
+ rb_define_method(_proxyClass, "ice_flushBatchRequests", CAST_METHOD(IceRuby_ObjectPrx_ice_flushBatchRequests), 0);
1308
+
1309
+ rb_define_method(_proxyClass, "hash", CAST_METHOD(IceRuby_ObjectPrx_hash), 0);
1310
+ rb_define_method(_proxyClass, "to_s", CAST_METHOD(IceRuby_ObjectPrx_ice_toString), 0);
1311
+ rb_define_method(_proxyClass, "inspect", CAST_METHOD(IceRuby_ObjectPrx_ice_toString), 0);
1312
+ rb_define_method(_proxyClass, "<=>", CAST_METHOD(IceRuby_ObjectPrx_cmp), 1);
1313
+ rb_define_method(_proxyClass, "==", CAST_METHOD(IceRuby_ObjectPrx_equals), 1);
1314
+ rb_define_method(_proxyClass, "eql?", CAST_METHOD(IceRuby_ObjectPrx_equals), 1);
1315
+
1316
+ //
1317
+ // Static methods.
1318
+ //
1319
+ rb_define_singleton_method(_proxyClass, "checkedCast", CAST_METHOD(IceRuby_ObjectPrx_checkedCast), -1);
1320
+ rb_define_singleton_method(_proxyClass, "uncheckedCast", CAST_METHOD(IceRuby_ObjectPrx_uncheckedCast), -1);
1321
+ rb_define_singleton_method(_proxyClass, "ice_checkedCast", CAST_METHOD(IceRuby_ObjectPrx_ice_checkedCast), 4);
1322
+ rb_define_singleton_method(_proxyClass, "ice_uncheckedCast", CAST_METHOD(IceRuby_ObjectPrx_ice_uncheckedCast), 2);
1323
+ rb_define_singleton_method(_proxyClass, "ice_staticId", CAST_METHOD(IceRuby_ObjectPrx_ice_staticId), 0);
1324
+ rb_define_singleton_method(_proxyClass, "new", CAST_METHOD(IceRuby_ObjectPrx_new), -1);
1325
+ }
1326
+
1327
+ VALUE
1328
+ IceRuby::createProxy(const Ice::ObjectPrx& p, VALUE cls)
1329
+ {
1330
+ //
1331
+ // If cls is nil then the proxy has the base type Ice::ObjectPrx.
1332
+ //
1333
+ if(NIL_P(cls))
1334
+ {
1335
+ return Data_Wrap_Struct(_proxyClass, IceRuby_ObjectPrx_mark, IceRuby_ObjectPrx_free, new Ice::ObjectPrx(p));
1336
+ }
1337
+ else
1338
+ {
1339
+ return Data_Wrap_Struct(cls, IceRuby_ObjectPrx_mark, IceRuby_ObjectPrx_free, new Ice::ObjectPrx(p));
1340
+ }
1341
+ }
1342
+
1343
+ Ice::ObjectPrx
1344
+ IceRuby::getProxy(VALUE v)
1345
+ {
1346
+ Ice::ObjectPrx* p = reinterpret_cast<Ice::ObjectPrx*>(DATA_PTR(v));
1347
+ return *p;
1348
+ }
1349
+
1350
+ bool
1351
+ IceRuby::checkProxy(VALUE v)
1352
+ {
1353
+ return callRuby(rb_obj_is_kind_of, v, _proxyClass) == Qtrue;
1354
+ }