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>
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
IceStorm
Definition: DBTypes.ice:22
IceStorm::EventData::op
string op
The operation name.
Definition: IceStormInternal.ice:33
IceStorm::EventDataSeq
std::deque<::IceStorm::EventDataPtr > EventDataSeq
A sequence of EventData.
Definition: IceStormInternal.h:528
IceStorm::EventData::mode
Ice::OperationMode mode
The operation mode.
Definition: IceStormInternal.ice:35
IceStorm::EventData::context
Ice::Context context
The Ice::Current::Context data from the originating request.
Definition: IceStormInternal.ice:39
IceStormElection::Node
A replica node.
Definition: Election.ice:202
IceStorm::EventData::data
Ice::ByteSeq data
The encoded data for the operation's input parameters.
Definition: IceStormInternal.ice:37
Election.ice
IceStorm::SendQueueSizeMaxReached
Definition: IceStormInternal.h:517