zeroc-ice 3.8.0__cp312-cp312-macosx_10_13_universal2.whl

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 (343) hide show
  1. Glacier2/CannotCreateSessionException.py +40 -0
  2. Glacier2/IdentitySet.py +293 -0
  3. Glacier2/IdentitySet_forward.py +10 -0
  4. Glacier2/PermissionDeniedException.py +40 -0
  5. Glacier2/PermissionsVerifier.py +189 -0
  6. Glacier2/PermissionsVerifier_forward.py +10 -0
  7. Glacier2/Router.py +661 -0
  8. Glacier2/Router_forward.py +10 -0
  9. Glacier2/SSLInfo.py +62 -0
  10. Glacier2/SSLPermissionsVerifier.py +186 -0
  11. Glacier2/SSLPermissionsVerifier_forward.py +10 -0
  12. Glacier2/SSLSessionManager.py +192 -0
  13. Glacier2/SSLSessionManager_forward.py +10 -0
  14. Glacier2/Session.py +161 -0
  15. Glacier2/SessionControl.py +407 -0
  16. Glacier2/SessionControl_forward.py +10 -0
  17. Glacier2/SessionManager.py +189 -0
  18. Glacier2/SessionManager_forward.py +10 -0
  19. Glacier2/SessionNotExistException.py +39 -0
  20. Glacier2/Session_forward.py +10 -0
  21. Glacier2/StringSet.py +289 -0
  22. Glacier2/StringSet_forward.py +10 -0
  23. Glacier2/__init__.py +79 -0
  24. Glacier2/py.typed +0 -0
  25. Ice/AdapterAlreadyActiveException.py +35 -0
  26. Ice/AdapterNotFoundException.py +35 -0
  27. Ice/BTEndpointType.py +11 -0
  28. Ice/BTSEndpointType.py +11 -0
  29. Ice/Blobject.py +42 -0
  30. Ice/BoolSeq.py +10 -0
  31. Ice/Builtin.py +11 -0
  32. Ice/ByteSeq.py +10 -0
  33. Ice/Communicator.py +621 -0
  34. Ice/CompressBatch.py +25 -0
  35. Ice/Context.py +10 -0
  36. Ice/Current.py +48 -0
  37. Ice/Dispatch.py +122 -0
  38. Ice/DoubleSeq.py +10 -0
  39. Ice/EncodingVersion.py +41 -0
  40. Ice/EndpointSelectionType.py +22 -0
  41. Ice/EventLoopAdapter.py +52 -0
  42. Ice/Exception.py +29 -0
  43. Ice/FloatSeq.py +10 -0
  44. Ice/FormatType.py +15 -0
  45. Ice/Future.py +375 -0
  46. Ice/IcePyTypes.py +47 -0
  47. Ice/Identity.py +40 -0
  48. Ice/IdentitySeq.py +12 -0
  49. Ice/ImplicitContext.py +126 -0
  50. Ice/InitializationData.py +64 -0
  51. Ice/IntSeq.py +10 -0
  52. Ice/InvalidReplicaGroupIdException.py +34 -0
  53. Ice/InvocationFuture.py +158 -0
  54. Ice/LocalException.py +12 -0
  55. Ice/LocalExceptions.py +546 -0
  56. Ice/Locator.py +332 -0
  57. Ice/LocatorFinder.py +163 -0
  58. Ice/LocatorFinder_forward.py +10 -0
  59. Ice/LocatorRegistry.py +387 -0
  60. Ice/LocatorRegistry_forward.py +10 -0
  61. Ice/Locator_forward.py +10 -0
  62. Ice/LogMessage.py +51 -0
  63. Ice/LogMessageSeq.py +12 -0
  64. Ice/LogMessageType.py +50 -0
  65. Ice/LogMessageTypeSeq.py +12 -0
  66. Ice/Logger.py +100 -0
  67. Ice/LoggerAdmin.py +380 -0
  68. Ice/LoggerAdmin_forward.py +10 -0
  69. Ice/LongSeq.py +10 -0
  70. Ice/Object.py +145 -0
  71. Ice/ObjectAdapter.py +588 -0
  72. Ice/ObjectNotFoundException.py +35 -0
  73. Ice/ObjectProxySeq.py +12 -0
  74. Ice/ObjectPrx.py +940 -0
  75. Ice/ObjectPrx_forward.py +7 -0
  76. Ice/ObjectSeq.py +12 -0
  77. Ice/OperationMode.py +47 -0
  78. Ice/Process.py +217 -0
  79. Ice/ProcessLogger.py +25 -0
  80. Ice/Process_forward.py +10 -0
  81. Ice/Properties.py +387 -0
  82. Ice/PropertiesAdmin.py +302 -0
  83. Ice/PropertiesAdmin_forward.py +10 -0
  84. Ice/PropertyDict.py +10 -0
  85. Ice/ProtocolVersion.py +39 -0
  86. Ice/Proxy.py +63 -0
  87. Ice/RemoteLogger.py +238 -0
  88. Ice/RemoteLoggerAlreadyAttachedException.py +34 -0
  89. Ice/RemoteLogger_forward.py +10 -0
  90. Ice/ReplyStatus.py +84 -0
  91. Ice/Router.py +322 -0
  92. Ice/RouterFinder.py +163 -0
  93. Ice/RouterFinder_forward.py +10 -0
  94. Ice/Router_forward.py +10 -0
  95. Ice/SSLEndpointType.py +11 -0
  96. Ice/ServantLocator.py +93 -0
  97. Ice/ServerNotFoundException.py +34 -0
  98. Ice/ShortSeq.py +10 -0
  99. Ice/SliceChecksumDict.py +10 -0
  100. Ice/SliceInfo.py +22 -0
  101. Ice/SlicedData.py +14 -0
  102. Ice/StringSeq.py +10 -0
  103. Ice/TCPEndpointType.py +11 -0
  104. Ice/ToStringMode.py +34 -0
  105. Ice/UDPEndpointType.py +11 -0
  106. Ice/URIEndpointType.py +11 -0
  107. Ice/UnknownSlicedValue.py +31 -0
  108. Ice/UserException.py +18 -0
  109. Ice/Util.py +170 -0
  110. Ice/Value.py +59 -0
  111. Ice/Value_forward.py +7 -0
  112. Ice/WSEndpointType.py +11 -0
  113. Ice/WSSEndpointType.py +11 -0
  114. Ice/_ArrayUtil.py +51 -0
  115. Ice/_LoggerI.py +32 -0
  116. Ice/__init__.py +367 -0
  117. Ice/asyncio/EventLoopAdapter.py +31 -0
  118. Ice/asyncio/__init__.py +5 -0
  119. Ice/iAPEndpointType.py +11 -0
  120. Ice/iAPSEndpointType.py +11 -0
  121. Ice/py.typed +0 -0
  122. IceBox/AlreadyStartedException.py +34 -0
  123. IceBox/AlreadyStoppedException.py +34 -0
  124. IceBox/NoSuchServiceException.py +34 -0
  125. IceBox/ServiceManager.py +447 -0
  126. IceBox/ServiceManager_forward.py +10 -0
  127. IceBox/ServiceObserver.py +229 -0
  128. IceBox/ServiceObserver_forward.py +10 -0
  129. IceBox/__init__.py +33 -0
  130. IceBox/py.typed +0 -0
  131. IceGrid/AccessDeniedException.py +40 -0
  132. IceGrid/AdapterDescriptor.py +77 -0
  133. IceGrid/AdapterDescriptorSeq.py +12 -0
  134. IceGrid/AdapterDynamicInfo.py +46 -0
  135. IceGrid/AdapterDynamicInfoSeq.py +12 -0
  136. IceGrid/AdapterInfo.py +50 -0
  137. IceGrid/AdapterInfoSeq.py +12 -0
  138. IceGrid/AdapterNotExistException.py +40 -0
  139. IceGrid/AdapterObserver.py +338 -0
  140. IceGrid/AdapterObserver_forward.py +10 -0
  141. IceGrid/AdaptiveLoadBalancingPolicy.py +48 -0
  142. IceGrid/AdaptiveLoadBalancingPolicy_forward.py +10 -0
  143. IceGrid/Admin.py +3662 -0
  144. IceGrid/AdminSession.py +1406 -0
  145. IceGrid/AdminSession_forward.py +10 -0
  146. IceGrid/Admin_forward.py +10 -0
  147. IceGrid/AllocationException.py +40 -0
  148. IceGrid/AllocationTimeoutException.py +35 -0
  149. IceGrid/ApplicationDescriptor.py +89 -0
  150. IceGrid/ApplicationDescriptorSeq.py +12 -0
  151. IceGrid/ApplicationInfo.py +63 -0
  152. IceGrid/ApplicationInfoSeq.py +12 -0
  153. IceGrid/ApplicationNotExistException.py +40 -0
  154. IceGrid/ApplicationObserver.py +374 -0
  155. IceGrid/ApplicationObserver_forward.py +10 -0
  156. IceGrid/ApplicationUpdateDescriptor.py +118 -0
  157. IceGrid/ApplicationUpdateInfo.py +51 -0
  158. IceGrid/BadSignalException.py +40 -0
  159. IceGrid/BoxedDistributionDescriptor.py +49 -0
  160. IceGrid/BoxedDistributionDescriptor_forward.py +10 -0
  161. IceGrid/BoxedString.py +45 -0
  162. IceGrid/BoxedString_forward.py +10 -0
  163. IceGrid/CommunicatorDescriptor.py +79 -0
  164. IceGrid/CommunicatorDescriptor_forward.py +10 -0
  165. IceGrid/DbEnvDescriptor.py +55 -0
  166. IceGrid/DbEnvDescriptorSeq.py +12 -0
  167. IceGrid/DeploymentException.py +40 -0
  168. IceGrid/DistributionDescriptor.py +42 -0
  169. IceGrid/FileIterator.py +246 -0
  170. IceGrid/FileIterator_forward.py +10 -0
  171. IceGrid/FileNotAvailableException.py +49 -0
  172. IceGrid/FileParser.py +182 -0
  173. IceGrid/FileParser_forward.py +10 -0
  174. IceGrid/IceBoxDescriptor.py +55 -0
  175. IceGrid/IceBoxDescriptor_forward.py +10 -0
  176. IceGrid/LoadBalancingPolicy.py +45 -0
  177. IceGrid/LoadBalancingPolicy_forward.py +10 -0
  178. IceGrid/LoadInfo.py +43 -0
  179. IceGrid/LoadSample.py +45 -0
  180. IceGrid/Locator.py +232 -0
  181. IceGrid/Locator_forward.py +10 -0
  182. IceGrid/NodeDescriptor.py +71 -0
  183. IceGrid/NodeDescriptorDict.py +12 -0
  184. IceGrid/NodeDynamicInfo.py +57 -0
  185. IceGrid/NodeDynamicInfoSeq.py +12 -0
  186. IceGrid/NodeInfo.py +64 -0
  187. IceGrid/NodeNotExistException.py +40 -0
  188. IceGrid/NodeObserver.py +424 -0
  189. IceGrid/NodeObserver_forward.py +10 -0
  190. IceGrid/NodeUnreachableException.py +46 -0
  191. IceGrid/NodeUpdateDescriptor.py +92 -0
  192. IceGrid/NodeUpdateDescriptorSeq.py +12 -0
  193. IceGrid/ObjectDescriptor.py +48 -0
  194. IceGrid/ObjectDescriptorSeq.py +12 -0
  195. IceGrid/ObjectExistsException.py +44 -0
  196. IceGrid/ObjectInfo.py +46 -0
  197. IceGrid/ObjectInfoSeq.py +12 -0
  198. IceGrid/ObjectNotRegisteredException.py +44 -0
  199. IceGrid/ObjectObserver.py +347 -0
  200. IceGrid/ObjectObserver_forward.py +10 -0
  201. IceGrid/ObserverAlreadyRegisteredException.py +49 -0
  202. IceGrid/OrderedLoadBalancingPolicy.py +41 -0
  203. IceGrid/OrderedLoadBalancingPolicy_forward.py +10 -0
  204. IceGrid/ParseException.py +40 -0
  205. IceGrid/PermissionDeniedException.py +40 -0
  206. IceGrid/PropertyDescriptor.py +39 -0
  207. IceGrid/PropertyDescriptorSeq.py +12 -0
  208. IceGrid/PropertySetDescriptor.py +49 -0
  209. IceGrid/PropertySetDescriptorDict.py +12 -0
  210. IceGrid/Query.py +451 -0
  211. IceGrid/Query_forward.py +10 -0
  212. IceGrid/RandomLoadBalancingPolicy.py +41 -0
  213. IceGrid/RandomLoadBalancingPolicy_forward.py +10 -0
  214. IceGrid/Registry.py +477 -0
  215. IceGrid/RegistryInfo.py +39 -0
  216. IceGrid/RegistryInfoSeq.py +12 -0
  217. IceGrid/RegistryNotExistException.py +40 -0
  218. IceGrid/RegistryObserver.py +282 -0
  219. IceGrid/RegistryObserver_forward.py +10 -0
  220. IceGrid/RegistryUnreachableException.py +46 -0
  221. IceGrid/Registry_forward.py +10 -0
  222. IceGrid/ReplicaGroupDescriptor.py +66 -0
  223. IceGrid/ReplicaGroupDescriptorSeq.py +12 -0
  224. IceGrid/RoundRobinLoadBalancingPolicy.py +41 -0
  225. IceGrid/RoundRobinLoadBalancingPolicy_forward.py +10 -0
  226. IceGrid/ServerDescriptor.py +107 -0
  227. IceGrid/ServerDescriptorSeq.py +12 -0
  228. IceGrid/ServerDescriptor_forward.py +10 -0
  229. IceGrid/ServerDynamicInfo.py +50 -0
  230. IceGrid/ServerDynamicInfoSeq.py +12 -0
  231. IceGrid/ServerInfo.py +62 -0
  232. IceGrid/ServerInstanceDescriptor.py +58 -0
  233. IceGrid/ServerInstanceDescriptorSeq.py +12 -0
  234. IceGrid/ServerNotExistException.py +40 -0
  235. IceGrid/ServerStartException.py +46 -0
  236. IceGrid/ServerState.py +66 -0
  237. IceGrid/ServerStopException.py +46 -0
  238. IceGrid/ServiceDescriptor.py +53 -0
  239. IceGrid/ServiceDescriptorSeq.py +12 -0
  240. IceGrid/ServiceDescriptor_forward.py +10 -0
  241. IceGrid/ServiceInstanceDescriptor.py +60 -0
  242. IceGrid/ServiceInstanceDescriptorSeq.py +12 -0
  243. IceGrid/Session.py +498 -0
  244. IceGrid/Session_forward.py +10 -0
  245. IceGrid/StringObjectProxyDict.py +12 -0
  246. IceGrid/StringStringDict.py +10 -0
  247. IceGrid/TemplateDescriptor.py +55 -0
  248. IceGrid/TemplateDescriptorDict.py +12 -0
  249. IceGrid/UserAccountMapper.py +178 -0
  250. IceGrid/UserAccountMapper_forward.py +10 -0
  251. IceGrid/UserAccountNotFoundException.py +34 -0
  252. IceGrid/__init__.py +375 -0
  253. IceGrid/py.typed +0 -0
  254. IceMX/ChildInvocationMetrics.py +56 -0
  255. IceMX/ChildInvocationMetrics_forward.py +10 -0
  256. IceMX/CollocatedMetrics.py +42 -0
  257. IceMX/CollocatedMetrics_forward.py +10 -0
  258. IceMX/ConnectionMetrics.py +53 -0
  259. IceMX/ConnectionMetrics_forward.py +10 -0
  260. IceMX/DispatchMetrics.py +57 -0
  261. IceMX/DispatchMetrics_forward.py +10 -0
  262. IceMX/InvocationMetrics.py +66 -0
  263. IceMX/InvocationMetrics_forward.py +10 -0
  264. IceMX/Metrics.py +66 -0
  265. IceMX/MetricsAdmin.py +586 -0
  266. IceMX/MetricsAdmin_forward.py +10 -0
  267. IceMX/MetricsFailures.py +42 -0
  268. IceMX/MetricsFailuresSeq.py +12 -0
  269. IceMX/MetricsMap.py +12 -0
  270. IceMX/MetricsView.py +12 -0
  271. IceMX/Metrics_forward.py +10 -0
  272. IceMX/RemoteMetrics.py +42 -0
  273. IceMX/RemoteMetrics_forward.py +10 -0
  274. IceMX/SessionMetrics.py +73 -0
  275. IceMX/SessionMetrics_forward.py +10 -0
  276. IceMX/StringIntDict.py +10 -0
  277. IceMX/SubscriberMetrics.py +57 -0
  278. IceMX/SubscriberMetrics_forward.py +10 -0
  279. IceMX/ThreadMetrics.py +59 -0
  280. IceMX/ThreadMetrics_forward.py +10 -0
  281. IceMX/TopicMetrics.py +53 -0
  282. IceMX/TopicMetrics_forward.py +10 -0
  283. IceMX/UnknownMetricsView.py +34 -0
  284. IceMX/__init__.py +75 -0
  285. IceMX/py.typed +0 -0
  286. IcePy-stubs/__init__.pyi +740 -0
  287. IcePy.cpython-312-darwin.so +0 -0
  288. IceStorm/AlreadySubscribed.py +34 -0
  289. IceStorm/BadQoS.py +40 -0
  290. IceStorm/Finder.py +163 -0
  291. IceStorm/Finder_forward.py +10 -0
  292. IceStorm/LinkExists.py +40 -0
  293. IceStorm/LinkInfo.py +50 -0
  294. IceStorm/LinkInfoSeq.py +12 -0
  295. IceStorm/NoSuchLink.py +40 -0
  296. IceStorm/NoSuchTopic.py +40 -0
  297. IceStorm/QoS.py +10 -0
  298. IceStorm/Topic.py +825 -0
  299. IceStorm/TopicDict.py +12 -0
  300. IceStorm/TopicExists.py +40 -0
  301. IceStorm/TopicManager.py +394 -0
  302. IceStorm/TopicManager_forward.py +10 -0
  303. IceStorm/Topic_forward.py +10 -0
  304. IceStorm/__init__.py +61 -0
  305. IceStorm/py.typed +0 -0
  306. slice/DataStorm/SampleEvent.ice +29 -0
  307. slice/Glacier2/Metrics.ice +47 -0
  308. slice/Glacier2/PermissionsVerifier.ice +55 -0
  309. slice/Glacier2/Router.ice +93 -0
  310. slice/Glacier2/SSLInfo.ice +42 -0
  311. slice/Glacier2/Session.ice +133 -0
  312. slice/Ice/BuiltinSequences.ice +54 -0
  313. slice/Ice/Context.ice +24 -0
  314. slice/Ice/EndpointTypes.ice +50 -0
  315. slice/Ice/Identity.ice +36 -0
  316. slice/Ice/Locator.ice +74 -0
  317. slice/Ice/LocatorRegistry.ice +77 -0
  318. slice/Ice/Metrics.ice +201 -0
  319. slice/Ice/OperationMode.ice +38 -0
  320. slice/Ice/Process.ice +28 -0
  321. slice/Ice/PropertiesAdmin.ice +37 -0
  322. slice/Ice/PropertyDict.ice +23 -0
  323. slice/Ice/RemoteLogger.ice +126 -0
  324. slice/Ice/ReplyStatus.ice +65 -0
  325. slice/Ice/Router.ice +54 -0
  326. slice/Ice/SliceChecksumDict.ice +18 -0
  327. slice/Ice/Version.ice +43 -0
  328. slice/IceBox/ServiceManager.ice +79 -0
  329. slice/IceGrid/Admin.ice +981 -0
  330. slice/IceGrid/Descriptor.ice +519 -0
  331. slice/IceGrid/Exception.ice +98 -0
  332. slice/IceGrid/FileParser.ice +36 -0
  333. slice/IceGrid/Registry.ice +130 -0
  334. slice/IceGrid/Session.ice +64 -0
  335. slice/IceGrid/UserAccountMapper.ice +34 -0
  336. slice/IceStorm/IceStorm.ice +186 -0
  337. slice/IceStorm/Metrics.ice +41 -0
  338. slice2py.py +20 -0
  339. zeroc_ice-3.8.0.dist-info/METADATA +106 -0
  340. zeroc_ice-3.8.0.dist-info/RECORD +343 -0
  341. zeroc_ice-3.8.0.dist-info/WHEEL +5 -0
  342. zeroc_ice-3.8.0.dist-info/entry_points.txt +2 -0
  343. zeroc_ice-3.8.0.dist-info/top_level.txt +10 -0
@@ -0,0 +1,130 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #pragma once
4
+
5
+ [["cpp:dll-export:ICEGRID_API"]]
6
+ [["cpp:doxygen:include:IceGrid/IceGrid.h"]]
7
+ [["cpp:header-ext:h"]]
8
+
9
+ [["cpp:include:IceGrid/Config.h"]]
10
+
11
+ [["js:module:@zeroc/ice"]]
12
+
13
+ #include "Admin.ice"
14
+ #include "Exception.ice"
15
+ #include "Ice/Locator.ice"
16
+ #include "Session.ice"
17
+
18
+ /// Deploy and manage Ice servers.
19
+ ["java:identifier:com.zeroc.IceGrid"]
20
+ module IceGrid
21
+ {
22
+ /// Determines which load sampling interval to use.
23
+ enum LoadSample
24
+ {
25
+ /// Sample every minute.
26
+ ["swift:identifier:loadSample1"]
27
+ LoadSample1,
28
+
29
+ /// Sample every five minutes.
30
+ ["swift:identifier:loadSample5"]
31
+ LoadSample5,
32
+
33
+ /// Sample every fifteen minutes.
34
+ ["swift:identifier:loadSample15"]
35
+ LoadSample15
36
+ }
37
+
38
+ /// Finds well-known Ice objects registered with the IceGrid registry.
39
+ interface Query
40
+ {
41
+ /// Finds a well-known object by identity.
42
+ /// @param id The identity.
43
+ /// @return A proxy to the well-known object, or null if no such object is registered.
44
+ ["cpp:const"]
45
+ idempotent Object* findObjectById(Ice::Identity id);
46
+
47
+ /// Finds a well-known object by type. If there are several objects registered for the given type, the object is
48
+ /// randomly selected.
49
+ /// @param type The object type.
50
+ /// @return A proxy to a well-known object with the specified type, or null if no such object is registered.
51
+ ["cpp:const"]
52
+ idempotent Object* findObjectByType(string type);
53
+
54
+ /// Finds a well-known object by type on the least-loaded node. If the registry does not know which node hosts
55
+ /// the object (for example, because the object was registered with a direct proxy), the registry assumes the
56
+ /// object is hosted on a node that has a load average of 1.0.
57
+ /// @param type The object type.
58
+ /// @param sample The sampling interval.
59
+ /// @return A proxy to the well-known object, or null if no such object is registered.
60
+ ["cpp:const"]
61
+ idempotent Object* findObjectByTypeOnLeastLoadedNode(string type, LoadSample sample);
62
+
63
+ /// Finds all the well-known objects with the given type.
64
+ /// @param type The object type.
65
+ /// @return A list of proxies to the well-known objects with the specified type. Can be empty.
66
+ ["cpp:const"]
67
+ idempotent Ice::ObjectProxySeq findAllObjectsByType(string type);
68
+
69
+ /// Finds all the replicas of a well-known object.
70
+ /// @param proxy A proxy that identifies the well-known object.
71
+ /// @return A list of proxies to the replicas of the well-known object specified by @p proxy. Can be empty.
72
+ ["cpp:const"]
73
+ idempotent Ice::ObjectProxySeq findAllReplicas(Object* proxy);
74
+ }
75
+
76
+ /// Represents the main entry point into the IceGrid registry service. It provides operations to create sessions
77
+ /// with the registry.
78
+ interface Registry
79
+ {
80
+ /// Creates a client session.
81
+ /// @param userId The user ID.
82
+ /// @param password The password for the given user.
83
+ /// @return A proxy to the newly created session. This proxy is never null.
84
+ /// @throws PermissionDeniedException Thrown when authentication or authorization fails.
85
+ Session* createSession(string userId, string password)
86
+ throws PermissionDeniedException;
87
+
88
+ /// Creates an administrative session.
89
+ /// @param userId The user ID.
90
+ /// @param password The password for the given user.
91
+ /// @return A proxy to the newly created session. This proxy is never null.
92
+ /// @throws PermissionDeniedException Thrown when authentication or authorization fails.
93
+ AdminSession* createAdminSession(string userId, string password)
94
+ throws PermissionDeniedException;
95
+
96
+ /// Creates a client session from a secure connection.
97
+ /// @return A proxy to the newly created session. This proxy is never null.
98
+ /// @throws PermissionDeniedException Thrown when authentication or authorization fails.
99
+ Session* createSessionFromSecureConnection()
100
+ throws PermissionDeniedException;
101
+
102
+ /// Creates an administrative session from a secure connection.
103
+ /// @return A proxy to the newly created session. This proxy is never null.
104
+ /// @throws PermissionDeniedException Thrown when authentication or authorization fails.
105
+ AdminSession* createAdminSessionFromSecureConnection()
106
+ throws PermissionDeniedException;
107
+
108
+ /// Gets the session timeout. An Ice 3.7 or earlier client can use this value to determine how often it needs to
109
+ /// send heartbeats (using ACM) or call {@link Session#keepAlive} (resp. {@link AdminSession#keepAlive}) to keep
110
+ /// a session alive in the IceGrid registry.
111
+ /// @return The session timeout (in seconds).
112
+ ["cpp:const"]
113
+ ["deprecated"]
114
+ idempotent int getSessionTimeout();
115
+ }
116
+
117
+ /// Provides access to the {@link Query} and {@link Registry} objects implemented by the IceGrid registry.
118
+ interface Locator extends Ice::Locator
119
+ {
120
+ /// Gets a proxy to the registry object hosted by this IceGrid registry.
121
+ /// @return A proxy to the registry object. This proxy is never null.
122
+ ["cpp:const"]
123
+ idempotent Registry* getLocalRegistry();
124
+
125
+ /// Gets a proxy to the query object hosted by this IceGrid registry.
126
+ /// @return A proxy to the query object. This proxy is never null.
127
+ ["cpp:const"]
128
+ idempotent Query* getLocalQuery();
129
+ }
130
+ }
@@ -0,0 +1,64 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #pragma once
4
+
5
+ [["cpp:dll-export:ICEGRID_API"]]
6
+ [["cpp:doxygen:include:IceGrid/IceGrid.h"]]
7
+ [["cpp:header-ext:h"]]
8
+
9
+ [["cpp:include:IceGrid/Config.h"]]
10
+
11
+ [["js:module:@zeroc/ice"]]
12
+
13
+ #include "Exception.ice"
14
+ #include "Glacier2/Session.ice"
15
+
16
+ ["java:identifier:com.zeroc.IceGrid"]
17
+ module IceGrid
18
+ {
19
+ interface Registry; // For doc-comments.
20
+
21
+ /// Represents a session object used by IceGrid clients to allocate and release objects. Client sessions are created
22
+ /// either via the {@link Registry} object or via the registry client {@link Glacier2::SessionManager} object.
23
+ interface Session extends Glacier2::Session
24
+ {
25
+ /// Keeps the session alive.
26
+ ["deprecated:As of Ice 3.8, there is no need to call this operation, and its implementation does nothing."]
27
+ idempotent void keepAlive();
28
+
29
+ /// Allocates an object.
30
+ /// @param id The identity of the object to allocate.
31
+ /// @return A proxy to the allocated object. This proxy is never null.
32
+ /// @throws ObjectNotRegisteredException Thrown when an object with the given identity is not registered with
33
+ /// the registry.
34
+ /// @throws AllocationException Thrown when the allocation fails.
35
+ /// @see #setAllocationTimeout
36
+ /// @see #releaseObject
37
+ Object* allocateObjectById(Ice::Identity id)
38
+ throws ObjectNotRegisteredException, AllocationException;
39
+
40
+ /// Allocates an object with the given type.
41
+ /// @param type The type of the object.
42
+ /// @return A proxy to the allocated object. This proxy is never null.
43
+ /// @throws AllocationException Thrown when the allocation fails.
44
+ /// @see #setAllocationTimeout
45
+ /// @see #releaseObject
46
+ Object* allocateObjectByType(string type)
47
+ throws AllocationException;
48
+
49
+ /// Releases an object that was allocated using {@link allocateObjectById} or {@link allocateObjectByType}.
50
+ /// @param id The identity of the object to release.
51
+ /// @throws ObjectNotRegisteredException Thrown when an object with the given identity is not registered with
52
+ /// the registry.
53
+ /// @throws AllocationException Thrown when the object can't be released. This can happen when the object is not
54
+ /// allocatable or is not allocated by this session.
55
+ void releaseObject(Ice::Identity id)
56
+ throws ObjectNotRegisteredException, AllocationException;
57
+
58
+ /// Sets the allocation timeout. When no object is immediately available for an allocation request, the
59
+ /// implementation of {@link allocateObjectById} and {@link allocateObjectByType} waits for the duration of
60
+ /// this @p timeout.
61
+ /// @param timeout The timeout in milliseconds.
62
+ idempotent void setAllocationTimeout(int timeout);
63
+ }
64
+ }
@@ -0,0 +1,34 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #pragma once
4
+
5
+ [["cpp:dll-export:ICEGRID_API"]]
6
+ [["cpp:doxygen:include:IceGrid/IceGrid.h"]]
7
+ [["cpp:header-ext:h"]]
8
+
9
+ [["cpp:include:IceGrid/Config.h"]]
10
+
11
+ [["js:module:@zeroc/ice"]]
12
+
13
+ ["java:identifier:com.zeroc.IceGrid"]
14
+ module IceGrid
15
+ {
16
+ /// The exception that is thrown when a user account for a given session identifier can't be found.
17
+ exception UserAccountNotFoundException
18
+ {
19
+ }
20
+
21
+ /// Maps user strings in server descriptors to actual user account names. You can configure the user account mapper
22
+ /// of an IceGrid node with the property `IceGrid.Node.UserAccountMapper`.
23
+ interface UserAccountMapper
24
+ {
25
+ /// Gets the name of the user account for the given user. This is used by IceGrid nodes to figure out the user
26
+ /// account to use to run servers.
27
+ /// @param user The value of the server descriptor's `user` attribute. When this attribute is not defined, and
28
+ /// the server's activation mode is `session`, the default value for `user` is the session identifier.
29
+ /// @return The user account name.
30
+ /// @throws UserAccountNotFoundException Thrown when no user account is found for the given user.
31
+ string getUserAccount(string user)
32
+ throws UserAccountNotFoundException;
33
+ }
34
+ }
@@ -0,0 +1,186 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #pragma once
4
+
5
+ [["cpp:dll-export:ICESTORM_API"]]
6
+ [["cpp:doxygen:include:IceStorm/IceStorm.h"]]
7
+ [["cpp:header-ext:h"]]
8
+
9
+ [["cpp:include:IceStorm/Config.h"]]
10
+
11
+ [["js:module:@zeroc/ice"]]
12
+
13
+ #include "Ice/Identity.ice"
14
+ #include "Metrics.ice"
15
+
16
+ /// Lightweight publish/subscribe framework, available for all Ice language mappings.
17
+ ["java:identifier:com.zeroc.IceStorm"]
18
+ module IceStorm
19
+ {
20
+ interface Topic;
21
+
22
+ /// Information about a topic link.
23
+ struct LinkInfo
24
+ {
25
+ /// The linked topic proxy. This proxy is never null.
26
+ Topic* theTopic;
27
+
28
+ /// The name of the linked topic.
29
+ string name;
30
+
31
+ /// The cost of traversing this link.
32
+ int cost;
33
+ }
34
+
35
+ /// A sequence of {@link LinkInfo} objects.
36
+ sequence<LinkInfo> LinkInfoSeq;
37
+
38
+ /// Quality of service parameters.
39
+ /// @see Topic#subscribeAndGetPublisher
40
+ dictionary<string, string> QoS;
41
+
42
+ /// The exception that is thrown when attempting to create a link that already exists.
43
+ exception LinkExists
44
+ {
45
+ /// The name of the linked topic.
46
+ string name;
47
+ }
48
+
49
+ /// The exception that is thrown when attempting to remove a link that does not exist.
50
+ exception NoSuchLink
51
+ {
52
+ /// The name of the link that does not exist.
53
+ string name;
54
+ }
55
+
56
+ /// The exception that is thrown when attempting to subscribe a proxy for which a subscription already exists.
57
+ exception AlreadySubscribed
58
+ {
59
+ }
60
+
61
+ /// The exception that is thrown when attempting to subscribe with an invalid {@link QoS}.
62
+ exception BadQoS
63
+ {
64
+ /// The reason for the failure.
65
+ string reason;
66
+ }
67
+
68
+ /// Represents an IceStorm topic. Publishers publish data to a topic (via the topic's publisher object), and
69
+ /// subscribers subscribe to a topic.
70
+ /// @see TopicManager
71
+ interface Topic
72
+ {
73
+ /// Gets the name of this topic.
74
+ /// @return The name of the topic.
75
+ /// @see TopicManager#create
76
+ ["cpp:const"]
77
+ idempotent string getName();
78
+
79
+ /// Gets a proxy to a publisher object for this topic. To publish data to a topic, a publisher calls this
80
+ /// operation and then creates a proxy with the publisher type from this proxy. If a replicated IceStorm
81
+ /// deployment is used, this call may return a replicated proxy.
82
+ /// @return A proxy to publish data on this topic. This proxy is never null.
83
+ ["cpp:const"]
84
+ idempotent Object* getPublisher();
85
+
86
+ /// Gets a non-replicated proxy to a publisher object for this topic. To publish data to a topic, a publisher
87
+ /// calls this operation and then creates a proxy with the publisher type from this proxy.
88
+ /// @return A proxy to publish data on this topic. This proxy is never null.
89
+ ["cpp:const"]
90
+ idempotent Object* getNonReplicatedPublisher();
91
+
92
+ /// Subscribes to this topic.
93
+ /// @param theQoS The quality of service parameters for this subscription.
94
+ /// @param subscriber The subscriber's proxy. This proxy cannot be null.
95
+ /// @return The per-subscriber publisher proxy. This proxy is never null.
96
+ /// @throws AlreadySubscribed Thrown when @p subscriber is already subscribed.
97
+ /// @throws BadQoS Thrown when @p theQoS is unavailable or invalid.
98
+ /// @see #unsubscribe
99
+ Object* subscribeAndGetPublisher(QoS theQoS, Object* subscriber)
100
+ throws AlreadySubscribed, BadQoS;
101
+
102
+ /// Unsubscribes the provided @p subscriber from this topic.
103
+ /// @param subscriber A proxy to an existing subscriber. This proxy is never null.
104
+ /// @see #subscribeAndGetPublisher
105
+ idempotent void unsubscribe(Object* subscriber);
106
+
107
+ /// Creates a link to another topic. All events originating on this topic will also be sent to the other topic.
108
+ /// @param linkTo The topic to link to. This proxy cannot be null.
109
+ /// @param cost The cost of the link.
110
+ /// @throws LinkExists Thrown when a link to @p linkTo already exists.
111
+ void link(Topic* linkTo, int cost) throws LinkExists;
112
+
113
+ /// Destroys a link from this topic to the provided topic.
114
+ /// @param linkTo The topic to destroy the link to. This proxy cannot be null.
115
+ /// @throws NoSuchLink Thrown when a link to @p linkTo does not exist.
116
+ void unlink(Topic* linkTo) throws NoSuchLink;
117
+
118
+ /// Gets information on the current links.
119
+ /// @return A sequence of LinkInfo objects.
120
+ ["cpp:const"]
121
+ idempotent LinkInfoSeq getLinkInfoSeq();
122
+
123
+ /// Gets the list of subscribers for this topic.
124
+ /// @return The sequence of Ice identities for the subscriber objects.
125
+ ["cpp:const"] Ice::IdentitySeq getSubscribers();
126
+
127
+ /// Destroys this topic.
128
+ void destroy();
129
+ }
130
+
131
+ /// A dictionary of topic name to topic proxy.
132
+ dictionary<string, Topic*> TopicDict;
133
+
134
+ /// The exception that is thrown when attempting to create a topic that already exists.
135
+ exception TopicExists
136
+ {
137
+ /// The name of the topic that already exists.
138
+ string name;
139
+ }
140
+
141
+ /// The exception that is thrown when attempting to retrieve a topic that does not exist.
142
+ exception NoSuchTopic
143
+ {
144
+ /// The name of the topic that does not exist.
145
+ string name;
146
+ }
147
+
148
+ /// Represents an object that manages topics.
149
+ /// @see Topic
150
+ interface TopicManager
151
+ {
152
+ /// Creates a new topic.
153
+ /// @param name The name of the topic.
154
+ /// @return A proxy to the new topic object. The returned proxy is never null.
155
+ /// @throws TopicExists Thrown when a topic with the same @p name already exists.
156
+ Topic* create(string name) throws TopicExists;
157
+
158
+ /// Retrieves a topic by name.
159
+ /// @param name The name of the topic.
160
+ /// @return A proxy to the topic object. The returned proxy is never null.
161
+ /// @throws NoSuchTopic Thrown when there is no topic named @p name.
162
+ idempotent Topic* retrieve(string name) throws NoSuchTopic;
163
+
164
+ /// Creates a new topic with the given name, or retrieves the existing topic with this name if it already
165
+ /// exists.
166
+ /// @param name The name of the topic.
167
+ /// @return A proxy to the topic object. The returned proxy is never null.
168
+ Topic* createOrRetrieve(string name);
169
+
170
+ /// Retrieves all topics managed by this topic manager.
171
+ /// @return A dictionary of string, topic proxy pairs.
172
+ idempotent TopicDict retrieveAll();
173
+ }
174
+
175
+ /// Provides access to a {@link TopicManager} object via a fixed identity.
176
+ /// An IceStorm Finder is always registered with identity `IceStorm/Finder`. This allows clients to obtain the
177
+ /// associated TopicManager proxy with just the endpoint information of the object. For example, you can use the
178
+ /// Finder proxy `IceStorm/Finder:tcp -h somehost -p 4061` to get the TopicManager proxy
179
+ /// `MyIceStorm/TopicManager:tcp -h somehost -p 4061`.
180
+ interface Finder
181
+ {
182
+ /// Gets a proxy to the associated {@link TopicManager}. The proxy might point to several replicas.
183
+ /// @return The topic manager proxy. This proxy is never null.
184
+ TopicManager* getTopicManager();
185
+ }
186
+ }
@@ -0,0 +1,41 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #pragma once
4
+
5
+ [["cpp:dll-export:ICESTORM_API"]]
6
+ [["cpp:doxygen:include:IceStorm/IceStorm.h"]]
7
+ [["cpp:header-ext:h"]]
8
+
9
+ [["cpp:include:IceStorm/Config.h"]]
10
+
11
+ [["js:module:@zeroc/ice"]]
12
+
13
+ #include "Ice/Metrics.ice"
14
+
15
+ ["java:identifier:com.zeroc.IceMX"]
16
+ ["swift:identifier:IceStorm"]
17
+ module IceMX
18
+ {
19
+ /// Provides information about one or more IceStorm topics.
20
+ class TopicMetrics extends Metrics
21
+ {
22
+ /// The number of events published on the topic(s) by publishers.
23
+ long published = 0;
24
+
25
+ /// The number of events forwarded on the topic(s) by IceStorm topic links.
26
+ long forwarded = 0;
27
+ }
28
+
29
+ /// Provides information about IceStorm subscribers.
30
+ class SubscriberMetrics extends Metrics
31
+ {
32
+ /// The number of queued events.
33
+ int queued = 0;
34
+
35
+ /// The number of outstanding events.
36
+ int outstanding = 0;
37
+
38
+ /// The number of forwarded events.
39
+ long delivered = 0;
40
+ }
41
+ }
slice2py.py ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env python3
2
+
3
+ # Copyright (c) ZeroC, Inc.
4
+
5
+ import sys
6
+ import Ice
7
+ import IcePy
8
+
9
+
10
+ def main():
11
+ sliceDir = Ice.getSliceDir()
12
+ # Automatically add the slice dir.
13
+ if sliceDir is not None:
14
+ sys.argv.append("-I" + sliceDir)
15
+ val = IcePy.compileSlice(sys.argv)
16
+ return int(val)
17
+
18
+
19
+ if __name__ == "__main__":
20
+ sys.exit(main())
@@ -0,0 +1,106 @@
1
+ Metadata-Version: 2.4
2
+ Name: zeroc-ice
3
+ Version: 3.8.0
4
+ Summary: Ice is a comprehensive RPC framework with support for Python, C++, .NET, Java, JavaScript and more.
5
+ Author-email: "ZeroC, Inc." <info@zeroc.com>
6
+ License-Expression: GPL-2.0-only
7
+ Project-URL: Homepage, https://zeroc.com/ice
8
+ Project-URL: Repository, https://github.com/zeroc-ice/ice
9
+ Project-URL: Documentation, https://code.zeroc.com/ice/3.8/api/python/index.html
10
+ Project-URL: Issues, https://github.com/zeroc-ice/ice/issues
11
+ Project-URL: Changelog, https://github.com/zeroc-ice/ice/blob/main/CHANGELOG-3.8.md
12
+ Keywords: ice,RPC
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
19
+ Requires-Python: >=3.12
20
+ Description-Content-Type: text/markdown
21
+
22
+ # Ice for Python
23
+
24
+ [Examples] | [Documentation] | [API Reference] | [Building from source]
25
+
26
+ The [Ice framework] provides everything you need to build networked applications,
27
+ including RPC, pub/sub, server deployment, and more.
28
+
29
+ Ice for Python is the Python implementation of the Ice framework.
30
+
31
+ ## Sample Code
32
+
33
+ ```slice
34
+ // Slice definitions (Greeter.ice)
35
+
36
+ module VisitorCenter
37
+ {
38
+ /// Represents a simple greeter.
39
+ interface Greeter
40
+ {
41
+ /// Creates a personalized greeting.
42
+ /// @param name The name of the person to greet.
43
+ /// @return The greeting.
44
+ string greet(string name);
45
+ }
46
+ }
47
+ ```
48
+
49
+ ```python
50
+ # Client application (main.py)
51
+ import Ice
52
+ import asyncio
53
+ import getpass
54
+ import sys
55
+
56
+ import VisitorCenter
57
+
58
+ async def main():
59
+ async with Ice.Communicator(sys.argv, eventLoop=asyncio.get_running_loop()) as communicator:
60
+ greeter = VisitorCenter.GreeterPrx(communicator, "greeter:tcp -h localhost -p 4061")
61
+ greeting = await greeter.greetAsync(getpass.getuser())
62
+ print(greeting)
63
+
64
+ if __name__ == "__main__":
65
+ asyncio.run(main())
66
+ ```
67
+
68
+ ```python
69
+ # Server application (main.py)
70
+
71
+ import Ice
72
+ import chatbot
73
+ import sys
74
+
75
+ def main():
76
+ with Ice.Communicator(sys.argv) as communicator:
77
+ adapter = communicator.createObjectAdapterWithEndpoints("GreeterAdapter", "tcp -p 4061")
78
+ adapter.add(chatbot.Chatbot(), Ice.Identity(name="greeter"))
79
+
80
+ adapter.activate()
81
+ print("Listening on port 4061...")
82
+
83
+ try:
84
+ communicator.waitForShutdown()
85
+ except KeyboardInterrupt:
86
+ print("Caught Ctrl+C, exiting...")
87
+
88
+ if __name__ == "__main__":
89
+ main()
90
+ ```
91
+
92
+ ```python
93
+ # Greeter implementation (chatbot.py)
94
+ import VisitorCenter
95
+
96
+ class Chatbot(VisitorCenter.Greeter):
97
+ def greet(self, name: str, current: Ice.Current) -> str:
98
+ print(f"Dispatching greet request {{ name = '{name}' }}")
99
+ return f"Hello, {name}!"
100
+ ```
101
+
102
+ [Examples]: https://github.com/zeroc-ice/ice-demos/tree/3.8/python
103
+ [Documentation]: https://docs.zeroc.com/ice/3.8/python/
104
+ [API Reference]: https://code.zeroc.com/ice/3.8/api/python/index.html
105
+ [Building from source]: ./BUILDING.md
106
+ [Ice framework]: https://github.com/zeroc-ice/ice