IceStormInternal.ice
Go to the documentation of this file.
1// **********************************************************************
2//
3// Copyright (c) 2003-2017 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#pragma once
11
12[[ "ice-prefix", "cpp:header-ext:h" ]]
13
14#include <Ice/BuiltinSequences.ice>
15#include <Ice/Current.ice>
16#include <Ice/Identity.ice>
17#include <IceStorm/Election.ice>
18#include <IceStorm/IceStorm.ice>
19
20 [["cpp:include:deque"]]
21
22 module IceStorm
23{
24
25 /**
26 *
27 * The event data.
28 *
29 **/
30 ["cpp:class"] struct EventData
31 {
32 /** The operation name. */
33 string op;
34 /** The operation mode. */
35 Ice::OperationMode mode;
36 /** The encoded data for the operation's input parameters. */
37 Ice::ByteSeq data;
38 /** The Ice::Current::Context data from the originating request. */
39 Ice::Context context;
40 }
41
42 local exception SendQueueSizeMaxReached{}
43
44 /** A sequence of EventData. */
45 ["cpp:type:std::deque< ::IceStorm::EventDataPtr>"] sequence<EventData>
46 EventDataSeq;
47
48 /**
49 *
50 * The TopicLink interface. This is used to forward events between
51 * federated Topic instances.
52 *
53 * @see TopicInternal
54 *
55 **/
56 interface TopicLink
57 {
58 /**
59 *
60 * Forward a sequence of events.
61 *
62 * @param events The events to forward.
63 *
64 **/
65 void forward(EventDataSeq events);
66 }
67
68 /** Thrown if the reap call would block. */
69 exception ReapWouldBlock
70 {
71 }
72
73 /**
74 *
75 * Internal operations for a topic.
76 *
77 * @see Topic
78 *
79 **/
80 interface TopicInternal extends Topic
81 {
82 /**
83 *
84 * Retrieve a proxy to the TopicLink interface.
85 *
86 * @return The TopicLink for the Topic.
87 *
88 **/
89 idempotent TopicLink* getLinkProxy();
90
91 /**
92 *
93 * Reap the given identities.
94 *
95 * @param id The sequence of identities.
96 *
97 * @throws ReapWouldBlock Raised if the reap call would block.
98 *
99 **/
100 void reap(Ice::IdentitySeq id) throws ReapWouldBlock;
101 }
102
103 /**
104 *
105 * Internal operations for a topic manager.
106 *
107 * @see TopicManager
108 *
109 **/
110 interface TopicManagerInternal extends TopicManager
111 {
112 /**
113 *
114 * Return the replica node proxy for this topic manager.
115 *
116 * @return The replica proxy, or null if this instance is not
117 * replicated.
118 *
119 **/
120 ["cpp:const"] idempotent IceStormElection::Node* getReplicaNode();
121 }
122
123} // End module IceStorm
::Ice::OperationMode mode
Thrown if the reap call would block.
idempotent TopicLink * getLinkProxy()
Retrieve a proxy to the TopicLink interface.
void reap(Ice::IdentitySeq id)
Reap the given identities.
Internal operations for a topic manager.
idempotent IceStormElection::Node * getReplicaNode()
Return the replica node proxy for this topic manager.
A replica node.
Definition Election.ice:204
std::deque<::IceStorm::EventDataPtr > EventDataSeq
A sequence of EventData.