Ice 3.7 Slice API Reference
Loading...
Searching...
No Matches
IceStorm.ice
Go to the documentation of this file.
1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4
5#pragma once
6
7[["cpp:dll-export:ICESTORM_API"]]
8[["cpp:doxygen:include:IceStorm/IceStorm.h"]]
9[["cpp:header-ext:h"]]
10[["cpp:include:IceStorm/Config.h"]]
11
12[["ice-prefix"]]
13
14[["js:module:ice"]]
15[["js:cjs-module"]]
16
17[["objc:dll-export:ICESTORM_API"]]
18[["objc:header-dir:objc"]]
19
20[["python:pkgdir:IceStorm"]]
21
22#include <Ice/Identity.ice>
24
25#include <IceStorm/Metrics.ice>
26
27#ifndef __SLICE2JAVA_COMPAT__
28[["java:package:com.zeroc"]]
29#endif
30
39["objc:prefix:ICESTORM"]
41{
42
43interface Topic;
44
51{
58
64 string name;
65
71 int cost;
72}
73
79sequence<LinkInfo> LinkInfoSeq;
80
88dictionary<string, string> QoS;
89
96exception LinkExists
97{
103 string name;
104}
105
112exception NoSuchLink
113{
119 string name;
120}
121
129{
130}
131
139{
145 string reason;
146}
147
154exception BadQoS
155{
161 string reason;
162}
163
172interface Topic
173{
183 ["nonmutating", "cpp:const"] idempotent string getName();
184
196 ["nonmutating", "cpp:const"] idempotent Object* getPublisher();
197
208 ["nonmutating", "cpp:const"] idempotent Object* getNonReplicatedPublisher();
209
233 Object* subscribeAndGetPublisher(QoS theQoS, Object* subscriber)
235
245 idempotent void unsubscribe(Object* subscriber);
246
260 void link(Topic* linkTo, int cost) throws LinkExists;
261
271 void unlink(Topic* linkTo) throws NoSuchLink;
272
280 ["nonmutating", "cpp:const"] idempotent LinkInfoSeq getLinkInfoSeq();
281
289 ["nonmutating", "cpp:const"] Ice::IdentitySeq getSubscribers();
290
296 void destroy();
297}
298
304dictionary<string, Topic*> TopicDict;
305
312exception TopicExists
313{
319 string name;
320}
321
328exception NoSuchTopic
329{
335 string name;
336}
337
346{
359 Topic* create(string name) throws TopicExists;
360
372 ["nonmutating", "cpp:const"] idempotent Topic* retrieve(string name) throws NoSuchTopic;
373
381 ["nonmutating", "cpp:const"] idempotent TopicDict retrieveAll();
382
390 ["nonmutating", "cpp:const"] idempotent Ice::SliceChecksumDict getSliceChecksums();
391}
392
413
414}
This exception indicates that an attempt was made to subscribe a proxy for which a subscription alrea...
Definition IceStorm.ice:129
This exception indicates that a subscription failed due to an invalid QoS.
Definition IceStorm.ice:155
string reason
The reason for the failure.
Definition IceStorm.ice:161
This exception indicates that an attempt was made to subscribe a proxy that is null.
Definition IceStorm.ice:139
string reason
The reason for the failure.
Definition IceStorm.ice:145
This exception indicates that an attempt was made to create a link that already exists.
Definition IceStorm.ice:97
string name
The name of the linked topic.
Definition IceStorm.ice:103
This exception indicates that an attempt was made to retrieve a topic that does not exist.
Definition IceStorm.ice:329
string name
The name of the topic that does not exist.
Definition IceStorm.ice:335
This exception indicates that an attempt was made to create a topic that already exists.
Definition IceStorm.ice:313
string name
The name of the topic that already exists.
Definition IceStorm.ice:319
This interface is advertised by the IceStorm service through the Ice object with the identity 'IceSto...
Definition IceStorm.ice:402
TopicManager * getTopicManager()
Get the topic manager proxy.
A topic manager manages topics, and subscribers to topics.
Definition IceStorm.ice:346
idempotent TopicDict retrieveAll()
Retrieve all topics managed by this topic manager.
idempotent Topic * retrieve(string name)
Retrieve a topic by name.
Topic * create(string name)
Create a new topic.
idempotent Ice::SliceChecksumDict getSliceChecksums()
Returns the checksums for the IceStorm Slice definitions.
Publishers publish information on a particular topic.
Definition IceStorm.ice:173
idempotent LinkInfoSeq getLinkInfoSeq()
Retrieve information on the current links.
idempotent Object * getPublisher()
Get a proxy to a publisher object for this topic.
Ice::IdentitySeq getSubscribers()
Retrieve the list of subscribers for this topic.
void destroy()
Destroy the topic.
void link(Topic *linkTo, int cost)
Create a link to the given topic.
idempotent string getName()
Get the name of this topic.
idempotent void unsubscribe(Object *subscriber)
Unsubscribe the given subscriber.
idempotent Object * getNonReplicatedPublisher()
Get a non-replicated proxy to a publisher object for this topic.
void unlink(Topic *linkTo)
Destroy the link from this topic to the given topic linkTo.
Object * subscribeAndGetPublisher(QoS theQoS, Object *subscriber)
Subscribe with the given qos to this topic.
A messaging service with support for federation.
Definition IceStorm.ice:41
dictionary< string, Topic > TopicDict
Mapping of topic name to topic proxy.
Definition IceStorm.ice:304
sequence< LinkInfo > LinkInfoSeq
A sequence of LinkInfo objects.
Definition IceStorm.ice:79
dictionary< string, string > QoS
This dictionary represents quality of service parameters.
Definition IceStorm.ice:88
dictionary< string, string > SliceChecksumDict
A mapping from type IDs to Slice checksums.
Definition SliceChecksumDict.ice:34
sequence< Identity > IdentitySeq
A sequence of identities.
Definition Identity.ice:73
Information on the topic links.
Definition IceStorm.ice:51
Topic * theTopic
The linked topic.
Definition IceStorm.ice:57
string name
The name of the linked topic.
Definition IceStorm.ice:64
int cost
The cost of traversing this link.
Definition IceStorm.ice:71