blob: 42e47cf8c13d5cc48f2f959665b7bc0c42044376 (
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
// **********************************************************************
//
// Copyright (c) 2003-2017 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
[["cpp:header-ext:h"]]
#include <Ice/Instrumentation.ice>
module Glacier2
{
module Instrumentation
{
local interface SessionObserver extends Ice::Instrumentation::Observer
{
/**
*
* Notification of a forwarded request. This also implies removing
* the event from the queue.
*
* @param client True if client request, false if server request.
*
**/
void forwarded(bool client);
/**
*
* Notification of a queued request.
*
* @param client True if client request, false if server request.
*
**/
void queued(bool client);
/**
*
* Notification of a overridden request. This implies adding and
* removing an event to the queue.
*
* @param client True if client request, false if server request.
*
**/
void overridden(bool client);
/**
*
* Notification of a routing table size change.
*
* @param delta The size adjustement.
*
**/
void routingTableSize(int delta);
};
/**
*
* The ObserverUpdater interface is implemented by Glacier2 and an
* instance of this interface is provided on initialization to the
* RouterObserver object.
*
* This interface can be used by add-ins imlementing the
* RouterObserver interface to update the obsevers of observed
* objects.
*
**/
local interface ObserverUpdater
{
/**
*
* Update the router sessions.
*
* When called, this method goes through all the sessions and for
* each sesssion RouterObserver::getSessionObserver is
* called. The implementation of getSessionObserver has the
* possibility to return an updated observer if necessary.
*
**/
void updateSessionObservers();
};
/**
*
* The router observer interface used by Glacier2 to obtain and update
* observers for its observeable objects. This interface should be
* implemented by add-ins that wish to observe Glacier2 objects in
* order to collect statistics.
*
**/
local interface RouterObserver
{
/**
*
* This method should return an observer for the given session.
*
* @param id The id of the session (the user id or the SSL DN).
*
* @param con The connection associated to the session.
*
* @param routingTableSize The size of the routing table for this
* session.
*
* @param old The previous observer, only set when updating an
* existing observer.
*
**/
SessionObserver getSessionObserver(string id, Ice::Connection con, int routingTableSize, SessionObserver old);
/**
*
* Glacier2 calls this method on initialization. The add-in
* implementing this interface can use this object to get Glacier2
* to re-obtain observers for topics and subscribers.
*
* @param updater The observer updater object.
*
**/
void setObserverUpdater(ObserverUpdater updater);
};
};
};
|