blob: cfd1bc103a2921ec9b68437c1aa335842455bd1a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
// **********************************************************************
//
// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
#pragma once
[["ice-prefix", "cpp:header-ext:h"]]
#include <Ice/Identity.ice>
#include <IceStorm/IceStorm.ice>
module IceStorm
{
/**
*
* The key for persistent subscribers, or topics.
*
* If the subscriber identity is empty then the record is used as a
* place holder for the creation of a topic, otherwise the record
* holds a subscription record.
*
**/
struct SubscriberRecordKey
{
// The topic identity.
Ice::Identity topic;
// The identity of the subscriber. If this is empty then the key
// is a placeholder for a topic.
Ice::Identity id;
};
/**
*
* Used to store persistent information for persistent subscribers.
*
**/
struct SubscriberRecord
{
string topicName; // The name of the topic.
Ice::Identity id; // The subscriber identity.
// Is this a link record, or a subscriber record?
bool link;
Object* obj; // The subscriber object.
// We could simulate a union here with a class object.
// Persistent subscriber data.
QoS theQoS; // The QoS.
// Link subscriber data.
int cost; // The cost.
Topic* theTopic; // The linked topic.
};
sequence<SubscriberRecord> SubscriberRecordSeq;
}; // End module IceStorm
|