zeroc-ice-x64-mingw 3.6b1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/ICE_LICENSE +54 -0
- data/LICENSE +339 -0
- data/bin/slice2rb +17 -0
- data/ice-x64-mingw.gemspec +41 -0
- data/lib/Glacier2.rb +12 -0
- data/lib/Glacier2/Metrics.rb +99 -0
- data/lib/Glacier2/PermissionsVerifier.rb +168 -0
- data/lib/Glacier2/PermissionsVerifierF.rb +34 -0
- data/lib/Glacier2/Router.rb +141 -0
- data/lib/Glacier2/RouterF.rb +29 -0
- data/lib/Glacier2/SSLInfo.rb +79 -0
- data/lib/Glacier2/Session.rb +470 -0
- data/lib/Ice.rb +659 -0
- data/lib/Ice/BuiltinSequences.rb +64 -0
- data/lib/Ice/Communicator.rb +93 -0
- data/lib/Ice/CommunicatorF.rb +28 -0
- data/lib/Ice/Connection.rb +414 -0
- data/lib/Ice/ConnectionF.rb +36 -0
- data/lib/Ice/Current.rb +152 -0
- data/lib/Ice/Endpoint.rb +265 -0
- data/lib/Ice/EndpointF.rb +52 -0
- data/lib/Ice/EndpointTypes.rb +77 -0
- data/lib/Ice/FacetMap.rb +28 -0
- data/lib/Ice/Identity.rb +70 -0
- data/lib/Ice/ImplicitContext.rb +59 -0
- data/lib/Ice/ImplicitContextF.rb +28 -0
- data/lib/Ice/Instrumentation.rb +425 -0
- data/lib/Ice/InstrumentationF.rb +35 -0
- data/lib/Ice/LocalException.rb +1081 -0
- data/lib/Ice/Locator.rb +314 -0
- data/lib/Ice/LocatorF.rb +34 -0
- data/lib/Ice/Logger.rb +57 -0
- data/lib/Ice/LoggerF.rb +28 -0
- data/lib/Ice/Metrics.rb +696 -0
- data/lib/Ice/ObjectAdapterF.rb +28 -0
- data/lib/Ice/ObjectFactory.rb +53 -0
- data/lib/Ice/ObjectFactoryF.rb +28 -0
- data/lib/Ice/Plugin.rb +87 -0
- data/lib/Ice/PluginF.rb +32 -0
- data/lib/Ice/Process.rb +93 -0
- data/lib/Ice/ProcessF.rb +29 -0
- data/lib/Ice/Properties.rb +65 -0
- data/lib/Ice/PropertiesAdmin.rb +104 -0
- data/lib/Ice/PropertiesF.rb +33 -0
- data/lib/Ice/Router.rb +163 -0
- data/lib/Ice/RouterF.rb +29 -0
- data/lib/Ice/SliceChecksumDict.rb +28 -0
- data/lib/Ice/Version.rb +100 -0
- data/lib/IceBox.rb +10 -0
- data/lib/IceBox/IceBox.rb +272 -0
- data/lib/IceGrid.rb +17 -0
- data/lib/IceGrid/Admin.rb +1076 -0
- data/lib/IceGrid/Descriptor.rb +1505 -0
- data/lib/IceGrid/Exception.rb +401 -0
- data/lib/IceGrid/FileParser.rb +105 -0
- data/lib/IceGrid/Locator.rb +105 -0
- data/lib/IceGrid/Observer.rb +571 -0
- data/lib/IceGrid/Query.rb +168 -0
- data/lib/IceGrid/Registry.rb +120 -0
- data/lib/IceGrid/Session.rb +114 -0
- data/lib/IceGrid/UserAccountMapper.rb +101 -0
- data/lib/IcePatch2.rb +10 -0
- data/lib/IcePatch2/FileInfo.rb +75 -0
- data/lib/IcePatch2/FileServer.rb +141 -0
- data/lib/IceRuby.so +0 -0
- data/lib/IceStorm.rb +11 -0
- data/lib/IceStorm/IceStorm.rb +463 -0
- data/lib/IceStorm/Metrics.rb +155 -0
- data/slice/Freeze/BackgroundSaveEvictor.ice +111 -0
- data/slice/Freeze/CatalogData.ice +49 -0
- data/slice/Freeze/Connection.ice +111 -0
- data/slice/Freeze/ConnectionF.ice +20 -0
- data/slice/Freeze/DB.ice +37 -0
- data/slice/Freeze/Evictor.ice +339 -0
- data/slice/Freeze/EvictorF.ice +22 -0
- data/slice/Freeze/EvictorStorage.ice +72 -0
- data/slice/Freeze/Exception.ice +100 -0
- data/slice/Freeze/Transaction.ice +57 -0
- data/slice/Freeze/TransactionalEvictor.ice +50 -0
- data/slice/Glacier2/Metrics.ice +77 -0
- data/slice/Glacier2/PermissionsVerifier.ice +105 -0
- data/slice/Glacier2/PermissionsVerifierF.ice +21 -0
- data/slice/Glacier2/Router.ice +178 -0
- data/slice/Glacier2/RouterF.ice +20 -0
- data/slice/Glacier2/SSLInfo.ice +50 -0
- data/slice/Glacier2/Session.ice +273 -0
- data/slice/Ice/BuiltinSequences.ice +48 -0
- data/slice/Ice/Communicator.ice +567 -0
- data/slice/Ice/CommunicatorF.ice +20 -0
- data/slice/Ice/Connection.ice +323 -0
- data/slice/Ice/ConnectionF.ice +22 -0
- data/slice/Ice/Current.ice +160 -0
- data/slice/Ice/Endpoint.ice +227 -0
- data/slice/Ice/EndpointF.ice +32 -0
- data/slice/Ice/EndpointTypes.ice +38 -0
- data/slice/Ice/FacetMap.ice +25 -0
- data/slice/Ice/Identity.ice +59 -0
- data/slice/Ice/ImplicitContext.ice +109 -0
- data/slice/Ice/ImplicitContextF.ice +20 -0
- data/slice/Ice/Instrumentation.ice +499 -0
- data/slice/Ice/InstrumentationF.ice +26 -0
- data/slice/Ice/LocalException.ice +1015 -0
- data/slice/Ice/Locator.ice +227 -0
- data/slice/Ice/LocatorF.ice +21 -0
- data/slice/Ice/Logger.ice +86 -0
- data/slice/Ice/LoggerF.ice +20 -0
- data/slice/Ice/Metrics.ice +422 -0
- data/slice/Ice/ObjectAdapter.ice +673 -0
- data/slice/Ice/ObjectAdapterF.ice +20 -0
- data/slice/Ice/ObjectFactory.ice +60 -0
- data/slice/Ice/ObjectFactoryF.ice +20 -0
- data/slice/Ice/Plugin.ice +117 -0
- data/slice/Ice/PluginF.ice +21 -0
- data/slice/Ice/Process.ice +54 -0
- data/slice/Ice/ProcessF.ice +20 -0
- data/slice/Ice/Properties.ice +228 -0
- data/slice/Ice/PropertiesAdmin.ice +75 -0
- data/slice/Ice/PropertiesF.ice +21 -0
- data/slice/Ice/RemoteLogger.ice +232 -0
- data/slice/Ice/Router.ice +83 -0
- data/slice/Ice/RouterF.ice +20 -0
- data/slice/Ice/ServantLocator.ice +117 -0
- data/slice/Ice/ServantLocatorF.ice +20 -0
- data/slice/Ice/SliceChecksumDict.ice +25 -0
- data/slice/Ice/Version.ice +39 -0
- data/slice/IceBox/IceBox.ice +194 -0
- data/slice/IceDiscovery/IceDiscovery.ice +32 -0
- data/slice/IceGrid/Admin.ice +1578 -0
- data/slice/IceGrid/Descriptor.ice +1079 -0
- data/slice/IceGrid/Discovery.ice +73 -0
- data/slice/IceGrid/Exception.ice +383 -0
- data/slice/IceGrid/FileParser.ice +61 -0
- data/slice/IceGrid/Locator.ice +56 -0
- data/slice/IceGrid/Observer.ice +394 -0
- data/slice/IceGrid/PluginFacade.ice +316 -0
- data/slice/IceGrid/Query.ice +130 -0
- data/slice/IceGrid/Registry.ice +138 -0
- data/slice/IceGrid/Session.ice +124 -0
- data/slice/IceGrid/UserAccountMapper.ice +58 -0
- data/slice/IcePatch2/FileInfo.ice +49 -0
- data/slice/IcePatch2/FileServer.ice +129 -0
- data/slice/IceSSL/ConnectionInfo.ice +34 -0
- data/slice/IceSSL/EndpointInfo.ice +41 -0
- data/slice/IceStorm/IceStorm.ice +405 -0
- data/slice/IceStorm/Metrics.ice +71 -0
- metadata +207 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
// **********************************************************************
|
2
|
+
//
|
3
|
+
// Copyright (c) 2003-2014 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
|
+
[["cpp:header-ext:h"]]
|
13
|
+
|
14
|
+
module Glacier2
|
15
|
+
{
|
16
|
+
|
17
|
+
interface Router;
|
18
|
+
|
19
|
+
};
|
20
|
+
|
@@ -0,0 +1,50 @@
|
|
1
|
+
// **********************************************************************
|
2
|
+
//
|
3
|
+
// Copyright (c) 2003-2014 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
|
+
[["cpp:header-ext:h"]]
|
13
|
+
[["cpp:include:Glacier2/Config.h"]]
|
14
|
+
|
15
|
+
#include <Ice/BuiltinSequences.ice>
|
16
|
+
|
17
|
+
module Glacier2
|
18
|
+
{
|
19
|
+
|
20
|
+
/**
|
21
|
+
*
|
22
|
+
* Information taken from an SSL connection used for permissions
|
23
|
+
* verification.
|
24
|
+
*
|
25
|
+
* @see PermissionsVerifier
|
26
|
+
*
|
27
|
+
*/
|
28
|
+
struct SSLInfo
|
29
|
+
{
|
30
|
+
/** The remote host. */
|
31
|
+
string remoteHost;
|
32
|
+
|
33
|
+
/** The remote port. */
|
34
|
+
int remotePort;
|
35
|
+
|
36
|
+
/** The router's host. */
|
37
|
+
string localHost;
|
38
|
+
|
39
|
+
/** The router's port. */
|
40
|
+
int localPort;
|
41
|
+
|
42
|
+
/** The negotiated cipher suite. */
|
43
|
+
string cipher;
|
44
|
+
|
45
|
+
/** The certificate chain. */
|
46
|
+
Ice::StringSeq certs;
|
47
|
+
};
|
48
|
+
|
49
|
+
};
|
50
|
+
|
@@ -0,0 +1,273 @@
|
|
1
|
+
// **********************************************************************
|
2
|
+
//
|
3
|
+
// Copyright (c) 2003-2014 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
|
+
[["cpp:header-ext:h"]]
|
13
|
+
[["cpp:include:Glacier2/Config.h"]]
|
14
|
+
|
15
|
+
#include <Ice/BuiltinSequences.ice>
|
16
|
+
#include <Ice/Identity.ice>
|
17
|
+
#include <Glacier2/SSLInfo.ice>
|
18
|
+
|
19
|
+
module Glacier2
|
20
|
+
{
|
21
|
+
|
22
|
+
/**
|
23
|
+
*
|
24
|
+
* This exception is raised if an attempt to create a new session
|
25
|
+
* failed.
|
26
|
+
*
|
27
|
+
* @see Router#createSession
|
28
|
+
* @see Router#createSessionFromSecureConnection
|
29
|
+
* @see SessionManager#create
|
30
|
+
* @see SSLSessionManager#create
|
31
|
+
*
|
32
|
+
**/
|
33
|
+
["preserve-slice"]
|
34
|
+
exception CannotCreateSessionException
|
35
|
+
{
|
36
|
+
/**
|
37
|
+
*
|
38
|
+
* The reason why session creation has failed.
|
39
|
+
*
|
40
|
+
**/
|
41
|
+
string reason;
|
42
|
+
};
|
43
|
+
|
44
|
+
/**
|
45
|
+
*
|
46
|
+
* A client-visible session object, which is tied to the lifecycle of
|
47
|
+
* a {@link Router}.
|
48
|
+
*
|
49
|
+
* @see Router
|
50
|
+
* @see SessionManager
|
51
|
+
*
|
52
|
+
**/
|
53
|
+
interface Session
|
54
|
+
{
|
55
|
+
/**
|
56
|
+
*
|
57
|
+
* Destroy the session. This is called automatically when the
|
58
|
+
* {@link Router} is destroyed.
|
59
|
+
*
|
60
|
+
**/
|
61
|
+
void destroy();
|
62
|
+
};
|
63
|
+
|
64
|
+
/**
|
65
|
+
*
|
66
|
+
* An object for managing the set of identity constraints for specific
|
67
|
+
* parts of object identity on a
|
68
|
+
* {@link Session}.
|
69
|
+
*
|
70
|
+
* @see Session
|
71
|
+
* @see SessionControl
|
72
|
+
*
|
73
|
+
**/
|
74
|
+
interface StringSet
|
75
|
+
{
|
76
|
+
/**
|
77
|
+
*
|
78
|
+
* Add a sequence of strings to this set of constraints. Order is
|
79
|
+
* not preserved and duplicates are implicitly removed.
|
80
|
+
*
|
81
|
+
* @param additions The sequence of strings to be added.
|
82
|
+
*
|
83
|
+
**/
|
84
|
+
idempotent void add(Ice::StringSeq additions);
|
85
|
+
|
86
|
+
/**
|
87
|
+
*
|
88
|
+
* Remove a sequence of strings from this set of constraints. No
|
89
|
+
* errors are returned if an entry is not found.
|
90
|
+
*
|
91
|
+
* @param deletions The sequence of strings to be removed.
|
92
|
+
*
|
93
|
+
**/
|
94
|
+
idempotent void remove(Ice::StringSeq deletions);
|
95
|
+
|
96
|
+
/**
|
97
|
+
*
|
98
|
+
* Returns a sequence of strings describing the constraints in this
|
99
|
+
* set.
|
100
|
+
*
|
101
|
+
* @return The sequence of strings for this set.
|
102
|
+
*
|
103
|
+
**/
|
104
|
+
idempotent Ice::StringSeq get();
|
105
|
+
};
|
106
|
+
|
107
|
+
/**
|
108
|
+
*
|
109
|
+
* An object for managing the set of object identity constraints on a
|
110
|
+
* {@link Session}.
|
111
|
+
*
|
112
|
+
* @see Session
|
113
|
+
* @see SessionControl
|
114
|
+
*
|
115
|
+
**/
|
116
|
+
interface IdentitySet
|
117
|
+
{
|
118
|
+
/**
|
119
|
+
*
|
120
|
+
* Add a sequence of Ice identities to this set of constraints. Order is
|
121
|
+
* not preserved and duplicates are implicitly removed.
|
122
|
+
*
|
123
|
+
* @param additions The sequence of Ice identities to be added.
|
124
|
+
*
|
125
|
+
**/
|
126
|
+
idempotent void add(Ice::IdentitySeq additions);
|
127
|
+
|
128
|
+
/**
|
129
|
+
*
|
130
|
+
* Remove a sequence of identities from this set of constraints. No
|
131
|
+
* errors are returned if an entry is not found.
|
132
|
+
*
|
133
|
+
* @param deletions The sequence of Ice identities to be removed.
|
134
|
+
*
|
135
|
+
**/
|
136
|
+
idempotent void remove(Ice::IdentitySeq deletions);
|
137
|
+
|
138
|
+
/**
|
139
|
+
*
|
140
|
+
* Returns a sequence of identities describing the constraints in this
|
141
|
+
* set.
|
142
|
+
*
|
143
|
+
* @return The sequence of Ice identities for this set.
|
144
|
+
*
|
145
|
+
**/
|
146
|
+
idempotent Ice::IdentitySeq get();
|
147
|
+
};
|
148
|
+
|
149
|
+
/**
|
150
|
+
*
|
151
|
+
* An administrative session control object, which is tied to the
|
152
|
+
* lifecycle of a {@link Session}.
|
153
|
+
*
|
154
|
+
* @see Session
|
155
|
+
*
|
156
|
+
**/
|
157
|
+
interface SessionControl
|
158
|
+
{
|
159
|
+
/**
|
160
|
+
*
|
161
|
+
* Access the object that manages the allowable categories
|
162
|
+
* for object identities for this session.
|
163
|
+
*
|
164
|
+
* @return A StringSet object.
|
165
|
+
*
|
166
|
+
**/
|
167
|
+
StringSet* categories();
|
168
|
+
|
169
|
+
/**
|
170
|
+
*
|
171
|
+
* Access the object that manages the allowable adapter identities
|
172
|
+
* for objects for this session.
|
173
|
+
*
|
174
|
+
* @return A StringSet object.
|
175
|
+
*
|
176
|
+
**/
|
177
|
+
StringSet* adapterIds();
|
178
|
+
|
179
|
+
/**
|
180
|
+
*
|
181
|
+
* Access the object that manages the allowable object identities
|
182
|
+
* for this session.
|
183
|
+
*
|
184
|
+
* @return An IdentitySet object.
|
185
|
+
*
|
186
|
+
**/
|
187
|
+
IdentitySet* identities();
|
188
|
+
|
189
|
+
/**
|
190
|
+
*
|
191
|
+
* Get the session timeout.
|
192
|
+
*
|
193
|
+
* @return The timeout.
|
194
|
+
*
|
195
|
+
**/
|
196
|
+
idempotent int getSessionTimeout();
|
197
|
+
|
198
|
+
/**
|
199
|
+
*
|
200
|
+
* Destroy the associated session.
|
201
|
+
*
|
202
|
+
**/
|
203
|
+
void destroy();
|
204
|
+
};
|
205
|
+
|
206
|
+
/**
|
207
|
+
*
|
208
|
+
* The session manager for username/password authenticated users that
|
209
|
+
* is responsible for managing {@link Session} objects. New session objects
|
210
|
+
* are created by the {@link Router} object calling on an application-provided
|
211
|
+
* session manager. If no session manager is provided by the application,
|
212
|
+
* no client-visible sessions are passed to the client.
|
213
|
+
*
|
214
|
+
* @see Router
|
215
|
+
* @see Session
|
216
|
+
*
|
217
|
+
**/
|
218
|
+
interface SessionManager
|
219
|
+
{
|
220
|
+
/**
|
221
|
+
*
|
222
|
+
* Create a new session.
|
223
|
+
*
|
224
|
+
* @param userId The user id for the session.
|
225
|
+
*
|
226
|
+
* @param control A proxy to the session control object.
|
227
|
+
*
|
228
|
+
* @return A proxy to the newly created session.
|
229
|
+
*
|
230
|
+
* @throws CannotCreateSessionException Raised if the session
|
231
|
+
* cannot be created.
|
232
|
+
*
|
233
|
+
**/
|
234
|
+
["format:sliced"]
|
235
|
+
Session* create(string userId, SessionControl* control)
|
236
|
+
throws CannotCreateSessionException;
|
237
|
+
};
|
238
|
+
|
239
|
+
/**
|
240
|
+
*
|
241
|
+
* The session manager for SSL authenticated users that is
|
242
|
+
* responsible for managing {@link Session} objects. New session objects are
|
243
|
+
* created by the {@link Router} object calling on an application-provided
|
244
|
+
* session manager. If no session manager is provided by the
|
245
|
+
* application, no client-visible sessions are passed to the client.
|
246
|
+
*
|
247
|
+
* @see Router
|
248
|
+
* @see Session
|
249
|
+
*
|
250
|
+
**/
|
251
|
+
interface SSLSessionManager
|
252
|
+
{
|
253
|
+
/**
|
254
|
+
*
|
255
|
+
* Create a new session.
|
256
|
+
*
|
257
|
+
* @param info The SSL info.
|
258
|
+
*
|
259
|
+
* @param control A proxy to the session control object.
|
260
|
+
*
|
261
|
+
* @return A proxy to the newly created session.
|
262
|
+
*
|
263
|
+
* @throws CannotCreateSessionException Raised if the session
|
264
|
+
* cannot be created.
|
265
|
+
*
|
266
|
+
**/
|
267
|
+
["format:sliced"]
|
268
|
+
Session* create(SSLInfo info, SessionControl* control)
|
269
|
+
throws CannotCreateSessionException;
|
270
|
+
};
|
271
|
+
|
272
|
+
};
|
273
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
// **********************************************************************
|
2
|
+
//
|
3
|
+
// Copyright (c) 2003-2014 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
|
+
[["cpp:header-ext:h"]]
|
13
|
+
|
14
|
+
module Ice
|
15
|
+
{
|
16
|
+
|
17
|
+
/** A sequence of bools. **/
|
18
|
+
sequence<bool> BoolSeq;
|
19
|
+
|
20
|
+
/** A sequence of bytes. **/
|
21
|
+
sequence<byte> ByteSeq;
|
22
|
+
|
23
|
+
/** A sequence of shorts. **/
|
24
|
+
sequence<short> ShortSeq;
|
25
|
+
|
26
|
+
/** A sequence of ints. **/
|
27
|
+
sequence<int> IntSeq;
|
28
|
+
|
29
|
+
/** A sequence of longs. **/
|
30
|
+
sequence<long> LongSeq;
|
31
|
+
|
32
|
+
/** A sequence of floats. **/
|
33
|
+
sequence<float> FloatSeq;
|
34
|
+
|
35
|
+
/** A sequence of doubles. **/
|
36
|
+
sequence<double> DoubleSeq;
|
37
|
+
|
38
|
+
/** A sequence of strings. **/
|
39
|
+
sequence<string> StringSeq;
|
40
|
+
|
41
|
+
/** A sequence of objects. **/
|
42
|
+
sequence<Object> ObjectSeq;
|
43
|
+
|
44
|
+
/** A sequence of object proxies. **/
|
45
|
+
sequence<Object*> ObjectProxySeq;
|
46
|
+
|
47
|
+
};
|
48
|
+
|
@@ -0,0 +1,567 @@
|
|
1
|
+
// **********************************************************************
|
2
|
+
//
|
3
|
+
// Copyright (c) 2003-2014 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
|
+
[["cpp:header-ext:h"]]
|
13
|
+
|
14
|
+
#include <Ice/LoggerF.ice>
|
15
|
+
#include <Ice/InstrumentationF.ice>
|
16
|
+
#include <Ice/ObjectAdapterF.ice>
|
17
|
+
#include <Ice/ObjectFactoryF.ice>
|
18
|
+
#include <Ice/RouterF.ice>
|
19
|
+
#include <Ice/LocatorF.ice>
|
20
|
+
#include <Ice/PluginF.ice>
|
21
|
+
#include <Ice/ImplicitContextF.ice>
|
22
|
+
#include <Ice/Current.ice>
|
23
|
+
#include <Ice/Properties.ice>
|
24
|
+
#include <Ice/FacetMap.ice>
|
25
|
+
|
26
|
+
/**
|
27
|
+
*
|
28
|
+
* The Ice core library. Among many other features, the Ice core
|
29
|
+
* library manages all the communication tasks using an efficient
|
30
|
+
* protocol (including protocol compression and support for both TCP
|
31
|
+
* and UDP), provides a thread pool for multi-threaded servers, and
|
32
|
+
* additional functionality that supports high scalability.
|
33
|
+
*
|
34
|
+
**/
|
35
|
+
module Ice
|
36
|
+
{
|
37
|
+
|
38
|
+
/**
|
39
|
+
*
|
40
|
+
* The central object in Ice. One or more communicators can be
|
41
|
+
* instantiated for an Ice application. Communicator instantiation
|
42
|
+
* is language-specific, and not specified in Slice code.
|
43
|
+
*
|
44
|
+
* @see Logger
|
45
|
+
* @see ObjectAdapter
|
46
|
+
* @see Properties
|
47
|
+
* @see ObjectFactory
|
48
|
+
*
|
49
|
+
**/
|
50
|
+
["clr:implements:_System.IDisposable"]
|
51
|
+
local interface Communicator
|
52
|
+
{
|
53
|
+
/**
|
54
|
+
*
|
55
|
+
* Destroy the communicator. This operation calls {@link #shutdown}
|
56
|
+
* implicitly. Calling {@link #destroy} cleans up memory, and shuts down
|
57
|
+
* this communicator's client functionality and destroys all object
|
58
|
+
* adapters. Subsequent calls to {@link #destroy} are ignored.
|
59
|
+
*
|
60
|
+
* @see #shutdown
|
61
|
+
* @see ObjectAdapter#destroy
|
62
|
+
*
|
63
|
+
**/
|
64
|
+
void destroy();
|
65
|
+
|
66
|
+
/**
|
67
|
+
*
|
68
|
+
* Shuts down this communicator's server functionality, which
|
69
|
+
* includes the deactivation of all object adapters. (Attempts to use
|
70
|
+
* a deactivated object adapter raise {@link ObjectAdapterDeactivatedException}.)
|
71
|
+
* Subsequent calls to {@link #shutdown} are ignored.</p>
|
72
|
+
*
|
73
|
+
* <p class="Note"> After {@link #shutdown} returns, no new requests are
|
74
|
+
* processed. However, requests that have been started before
|
75
|
+
* {@link #shutdown} was called might still be active. You can use
|
76
|
+
* {@link #waitForShutdown} to wait for the completion of all
|
77
|
+
* requests.
|
78
|
+
*
|
79
|
+
* @see #destroy
|
80
|
+
* @see #waitForShutdown
|
81
|
+
* @see ObjectAdapter#deactivate
|
82
|
+
*
|
83
|
+
**/
|
84
|
+
void shutdown();
|
85
|
+
|
86
|
+
/**
|
87
|
+
*
|
88
|
+
* Wait until the application has called {@link #shutdown} (or {@link #destroy}).
|
89
|
+
* On the server side, this operation blocks the calling thread
|
90
|
+
* until all currently-executing operations have completed.
|
91
|
+
* On the client side, the operation simply block until another
|
92
|
+
* thread has called {@link #shutdown} or {@link #destroy}.
|
93
|
+
*
|
94
|
+
* <p>A typical use of this operation is to call it
|
95
|
+
* from the main thread, which then waits until some other thread
|
96
|
+
* calls {@link #shutdown}. After shut-down is complete, the main thread
|
97
|
+
* returns and can do some cleanup work before it finally calls
|
98
|
+
* {@link #destroy} to shut down the client functionality, and then
|
99
|
+
* exits the application.
|
100
|
+
*
|
101
|
+
* @see #shutdown
|
102
|
+
* @see #destroy
|
103
|
+
* @see ObjectAdapter#waitForDeactivate
|
104
|
+
*
|
105
|
+
**/
|
106
|
+
void waitForShutdown();
|
107
|
+
|
108
|
+
/**
|
109
|
+
*
|
110
|
+
* Check whether communicator has been shut down.
|
111
|
+
*
|
112
|
+
* @return True if the communicator has been shut down; false otherwise.
|
113
|
+
*
|
114
|
+
* @see #shutdown
|
115
|
+
*
|
116
|
+
**/
|
117
|
+
["cpp:const"] bool isShutdown();
|
118
|
+
|
119
|
+
/**
|
120
|
+
*
|
121
|
+
* Convert a stringified proxy into a proxy. For example,
|
122
|
+
* <tt>MyCategory/MyObject:tcp -h some_host -p
|
123
|
+
* 10000</tt> creates a proxy that refers to the Ice object
|
124
|
+
* having an identity with a name "MyObject" and a category
|
125
|
+
* "MyCategory", with the server running on host "some_host", port
|
126
|
+
* 10000. If the stringified proxy does not parse correctly, the
|
127
|
+
* operation throws one of {@link ProxyParseException},
|
128
|
+
* {@link EndpointParseException}, or {@link IdentityParseException}.
|
129
|
+
* An appendix in the Ice manual provides a detailed description
|
130
|
+
* of the syntax supported by stringified proxies.
|
131
|
+
*
|
132
|
+
* @param str The stringified proxy to convert into a proxy.
|
133
|
+
*
|
134
|
+
* @return The proxy, or nil if <tt>str</tt> is an empty string.
|
135
|
+
*
|
136
|
+
* @see #proxyToString
|
137
|
+
*
|
138
|
+
**/
|
139
|
+
["cpp:const"] Object* stringToProxy(string str);
|
140
|
+
|
141
|
+
/**
|
142
|
+
*
|
143
|
+
* Convert a proxy into a string.
|
144
|
+
*
|
145
|
+
* @param obj The proxy to convert into a stringified proxy.
|
146
|
+
*
|
147
|
+
* @return The stringified proxy, or an empty string if
|
148
|
+
* <tt>obj</tt> is nil.
|
149
|
+
*
|
150
|
+
* @see #stringToProxy
|
151
|
+
*
|
152
|
+
**/
|
153
|
+
["cpp:const"] string proxyToString(Object* obj);
|
154
|
+
|
155
|
+
|
156
|
+
/**
|
157
|
+
*
|
158
|
+
* Convert a set of proxy properties into a proxy. The "base"
|
159
|
+
* name supplied in the <tt>property</tt> argument refers to a
|
160
|
+
* property containing a stringified proxy, such as
|
161
|
+
* <tt>MyProxy=id:tcp -h localhost -p 10000</tt>. Additional
|
162
|
+
* properties configure local settings for the proxy, such as
|
163
|
+
* <tt>MyProxy.PreferSecure=1</tt>. The "Properties"
|
164
|
+
* appendix in the Ice manual describes each of the supported
|
165
|
+
* proxy properties.
|
166
|
+
*
|
167
|
+
* @param property The base property name.
|
168
|
+
*
|
169
|
+
* @return The proxy.
|
170
|
+
*
|
171
|
+
**/
|
172
|
+
["cpp:const"] Object* propertyToProxy(string property);
|
173
|
+
|
174
|
+
/**
|
175
|
+
*
|
176
|
+
* Convert a proxy to a set of proxy properties.
|
177
|
+
*
|
178
|
+
* @param proxy The proxy.
|
179
|
+
*
|
180
|
+
* @param property The base property name.
|
181
|
+
*
|
182
|
+
* @return The property set.
|
183
|
+
*
|
184
|
+
**/
|
185
|
+
["cpp:const"] PropertyDict proxyToProperty(Object* proxy, string property);
|
186
|
+
|
187
|
+
/**
|
188
|
+
*
|
189
|
+
* Convert a string into an identity. If the string does not parse
|
190
|
+
* correctly, the operation throws {@link IdentityParseException}.
|
191
|
+
*
|
192
|
+
* @param str The string to convert into an identity.
|
193
|
+
*
|
194
|
+
* @return The identity.
|
195
|
+
*
|
196
|
+
* @see #identityToString
|
197
|
+
*
|
198
|
+
**/
|
199
|
+
["cpp:const"] Identity stringToIdentity(string str);
|
200
|
+
|
201
|
+
/**
|
202
|
+
*
|
203
|
+
* Convert an identity into a string.
|
204
|
+
*
|
205
|
+
* @param ident The identity to convert into a string.
|
206
|
+
*
|
207
|
+
* @return The "stringified" identity.
|
208
|
+
*
|
209
|
+
* @see #stringToIdentity
|
210
|
+
*
|
211
|
+
**/
|
212
|
+
["cpp:const"] string identityToString(Identity ident);
|
213
|
+
|
214
|
+
/**
|
215
|
+
*
|
216
|
+
* Create a new object adapter. The endpoints for the object
|
217
|
+
* adapter are taken from the property <tt><em>name</em>.Endpoints</tt>.</p>
|
218
|
+
*
|
219
|
+
* <p>It is legal to create an object adapter with the empty string as
|
220
|
+
* its name. Such an object adapter is accessible via bidirectional
|
221
|
+
* connections or by collocated invocations that originate from the
|
222
|
+
* same communicator as is used by the adapter.</p>
|
223
|
+
*
|
224
|
+
* <p>Attempts to create a named object adapter for which no configuration
|
225
|
+
* can be found raise {@link InitializationException}.
|
226
|
+
*
|
227
|
+
* @param name The object adapter name.
|
228
|
+
*
|
229
|
+
* @return The new object adapter.
|
230
|
+
*
|
231
|
+
* @see #createObjectAdapterWithEndpoints
|
232
|
+
* @see ObjectAdapter
|
233
|
+
* @see Properties
|
234
|
+
*
|
235
|
+
**/
|
236
|
+
ObjectAdapter createObjectAdapter(string name);
|
237
|
+
|
238
|
+
/**
|
239
|
+
*
|
240
|
+
* Create a new object adapter with endpoints. This operation sets
|
241
|
+
* the property <tt><em>name</em>.Endpoints</tt>,
|
242
|
+
* and then calls {@link createObjectAdapter}. It is provided as a
|
243
|
+
* convenience function.</p>
|
244
|
+
*
|
245
|
+
* <p>Calling this operation with an empty name will result in a
|
246
|
+
* UUID being generated for the name.
|
247
|
+
*
|
248
|
+
* @param name The object adapter name.
|
249
|
+
*
|
250
|
+
* @param endpoints The endpoints for the object adapter.
|
251
|
+
*
|
252
|
+
* @return The new object adapter.
|
253
|
+
*
|
254
|
+
* @see #createObjectAdapter
|
255
|
+
* @see ObjectAdapter
|
256
|
+
* @see Properties
|
257
|
+
*
|
258
|
+
**/
|
259
|
+
ObjectAdapter createObjectAdapterWithEndpoints(string name, string endpoints);
|
260
|
+
|
261
|
+
/**
|
262
|
+
*
|
263
|
+
* Create a new object adapter with a router. This operation
|
264
|
+
* creates a routed object adapter.</p>
|
265
|
+
*
|
266
|
+
* <p>Calling this operation with an empty name will result in a
|
267
|
+
* UUID being generated for the name.
|
268
|
+
*
|
269
|
+
* @param name The object adapter name.
|
270
|
+
*
|
271
|
+
* @param rtr The router.
|
272
|
+
*
|
273
|
+
* @return The new object adapter.
|
274
|
+
*
|
275
|
+
* @see #createObjectAdapter
|
276
|
+
* @see ObjectAdapter
|
277
|
+
* @see Properties
|
278
|
+
*
|
279
|
+
**/
|
280
|
+
ObjectAdapter createObjectAdapterWithRouter(string name, Router* rtr);
|
281
|
+
|
282
|
+
/**
|
283
|
+
*
|
284
|
+
* <p>Add an object factory to this communicator. Installing a
|
285
|
+
* factory with an id for which a factory is already registered
|
286
|
+
* throws {@link AlreadyRegisteredException}.</p>
|
287
|
+
*
|
288
|
+
* <p>When unmarshaling an Ice object, the Ice run time reads the
|
289
|
+
* most-derived type id off the wire and attempts to create an
|
290
|
+
* instance of the type using a factory. If no instance is created,
|
291
|
+
* either because no factory was found, or because all factories
|
292
|
+
* returned nil, the behavior of the Ice run time depends on the
|
293
|
+
* format with which the object was marshaled:</p>
|
294
|
+
*
|
295
|
+
* <p>If the object uses the "sliced" format, Ice ascends the class
|
296
|
+
* hierarchy until it finds a type that is recognized by a factory,
|
297
|
+
* or it reaches the least-derived type. If no factory is found that
|
298
|
+
* can create an instance, the run time throws
|
299
|
+
* {@link NoObjectFactoryException}.</p>
|
300
|
+
*
|
301
|
+
* <p>If the object uses the "compact" format, Ice immediately raises
|
302
|
+
* {@link NoObjectFactoryException}.</p>
|
303
|
+
*
|
304
|
+
* <p>The following order is used to locate a factory for a type:</p>
|
305
|
+
*
|
306
|
+
* <ol>
|
307
|
+
*
|
308
|
+
* <li>The Ice run-time looks for a factory registered
|
309
|
+
* specifically for the type.</li>
|
310
|
+
*
|
311
|
+
* <li>If no instance has been created, the Ice run-time looks
|
312
|
+
* for the default factory, which is registered with an empty type id.
|
313
|
+
* </li>
|
314
|
+
*
|
315
|
+
* <li>If no instance has been created by any of the preceding
|
316
|
+
* steps, the Ice run-time looks for a factory that may have been
|
317
|
+
* statically generated by the language mapping for non-abstract classes.
|
318
|
+
* </li>
|
319
|
+
*
|
320
|
+
* </ol>
|
321
|
+
*
|
322
|
+
* @param factory The factory to add.
|
323
|
+
*
|
324
|
+
* @param id The type id for which the factory can create instances, or
|
325
|
+
* an empty string for the default factory.
|
326
|
+
*
|
327
|
+
* @see #findObjectFactory
|
328
|
+
* @see ObjectFactory
|
329
|
+
*
|
330
|
+
**/
|
331
|
+
void addObjectFactory(ObjectFactory factory, string id);
|
332
|
+
|
333
|
+
/**
|
334
|
+
*
|
335
|
+
* Find an object factory registered with this communicator.
|
336
|
+
*
|
337
|
+
* @param id The type id for which the factory can create instances,
|
338
|
+
* or an empty string for the default factory.
|
339
|
+
*
|
340
|
+
* @return The object factory, or null if no object factory was
|
341
|
+
* found for the given id.
|
342
|
+
*
|
343
|
+
* @see #addObjectFactory
|
344
|
+
* @see ObjectFactory
|
345
|
+
*
|
346
|
+
**/
|
347
|
+
["cpp:const"] ObjectFactory findObjectFactory(string id);
|
348
|
+
|
349
|
+
|
350
|
+
/**
|
351
|
+
* Get the implicit context associated with this communicator.
|
352
|
+
*
|
353
|
+
* @return The implicit context associated with this communicator;
|
354
|
+
* returns null when the property Ice.ImplicitContext is not set
|
355
|
+
* or is set to None.
|
356
|
+
*
|
357
|
+
**/
|
358
|
+
["cpp:const"] ImplicitContext getImplicitContext();
|
359
|
+
|
360
|
+
/**
|
361
|
+
*
|
362
|
+
* Get the properties for this communicator.
|
363
|
+
*
|
364
|
+
* @return This communicator's properties.
|
365
|
+
*
|
366
|
+
* @see Properties
|
367
|
+
*
|
368
|
+
**/
|
369
|
+
["cpp:const"] Properties getProperties();
|
370
|
+
|
371
|
+
/**
|
372
|
+
*
|
373
|
+
* Get the logger for this communicator.
|
374
|
+
*
|
375
|
+
* @return This communicator's logger.
|
376
|
+
*
|
377
|
+
* @see Logger
|
378
|
+
*
|
379
|
+
**/
|
380
|
+
["cpp:const"] Logger getLogger();
|
381
|
+
|
382
|
+
/**
|
383
|
+
*
|
384
|
+
* Get the observer resolver object for this communicator.
|
385
|
+
*
|
386
|
+
* @return This communicator's observer resolver object.
|
387
|
+
*
|
388
|
+
**/
|
389
|
+
["cpp:const"] Ice::Instrumentation::CommunicatorObserver getObserver();
|
390
|
+
|
391
|
+
/**
|
392
|
+
*
|
393
|
+
* Get the default router this communicator.
|
394
|
+
*
|
395
|
+
* @return The default router for this communicator.
|
396
|
+
*
|
397
|
+
* @see #setDefaultRouter
|
398
|
+
* @see Router
|
399
|
+
*
|
400
|
+
**/
|
401
|
+
["cpp:const"] Router* getDefaultRouter();
|
402
|
+
|
403
|
+
/**
|
404
|
+
*
|
405
|
+
* Set a default router for this communicator. All newly
|
406
|
+
* created proxies will use this default router. To disable the
|
407
|
+
* default router, null can be used. Note that this
|
408
|
+
* operation has no effect on existing proxies.</p>
|
409
|
+
*
|
410
|
+
* <p class="Note">You can also set a router for an individual proxy
|
411
|
+
* by calling the operation <tt>ice_router</tt> on the proxy.
|
412
|
+
*
|
413
|
+
* @param rtr The default router to use for this communicator.
|
414
|
+
*
|
415
|
+
* @see #getDefaultRouter
|
416
|
+
* @see #createObjectAdapterWithRouter
|
417
|
+
* @see Router
|
418
|
+
*
|
419
|
+
**/
|
420
|
+
void setDefaultRouter(Router* rtr);
|
421
|
+
|
422
|
+
/**
|
423
|
+
*
|
424
|
+
* Get the default locator this communicator.
|
425
|
+
*
|
426
|
+
* @return The default locator for this communicator.
|
427
|
+
*
|
428
|
+
* @see #setDefaultLocator
|
429
|
+
* @see Locator
|
430
|
+
*
|
431
|
+
**/
|
432
|
+
["cpp:const"] Locator* getDefaultLocator();
|
433
|
+
|
434
|
+
/**
|
435
|
+
*
|
436
|
+
* Set a default Ice locator for this communicator. All newly
|
437
|
+
* created proxy and object adapters will use this default
|
438
|
+
* locator. To disable the default locator, null can be used.
|
439
|
+
* Note that this operation has no effect on existing proxies or
|
440
|
+
* object adapters.</p>
|
441
|
+
*
|
442
|
+
* <p class="Note"> You can also set a locator for an individual proxy
|
443
|
+
* by calling the operation <tt>ice_locator</tt> on the proxy, or for an
|
444
|
+
* object adapter by calling the operation {@link setLocator} on the
|
445
|
+
* object adapter.
|
446
|
+
*
|
447
|
+
* @param loc The default locator to use for this communicator.
|
448
|
+
*
|
449
|
+
* @see #getDefaultLocator
|
450
|
+
* @see Locator
|
451
|
+
* @see ObjectAdapter#setLocator
|
452
|
+
*
|
453
|
+
**/
|
454
|
+
void setDefaultLocator(Locator* loc);
|
455
|
+
|
456
|
+
/**
|
457
|
+
*
|
458
|
+
* Get the plug-in manager for this communicator.
|
459
|
+
*
|
460
|
+
* @return This communicator's plug-in manager.
|
461
|
+
*
|
462
|
+
* @see PluginManager
|
463
|
+
*
|
464
|
+
**/
|
465
|
+
["cpp:const"] PluginManager getPluginManager();
|
466
|
+
|
467
|
+
/**
|
468
|
+
*
|
469
|
+
* Flush any pending batch requests for this communicator.
|
470
|
+
* This causes all batch requests that were sent via proxies
|
471
|
+
* obtained via this communicator to be sent to the server.
|
472
|
+
*
|
473
|
+
**/
|
474
|
+
["async"] void flushBatchRequests();
|
475
|
+
|
476
|
+
|
477
|
+
/**
|
478
|
+
*
|
479
|
+
* Add the Admin object with all its facets to the provided object adapter.
|
480
|
+
* If Ice.Admin.ServerId is set and the provided object adapter has a {@link Locator},
|
481
|
+
* createAdmin registers the Admin's Process facet with the {@link Locator}'s {@link LocatorRegistry}.
|
482
|
+
*
|
483
|
+
* <p>createAdmin call only be called once; subsequent calls raise {@link InitializationException}.</p>
|
484
|
+
*
|
485
|
+
* @param adminAdapter The object adapter used to host the Admin object; if null and
|
486
|
+
* Ice.Admin.Endpoints is set, create, activate and use the Ice.Admin object adapter.
|
487
|
+
*
|
488
|
+
* @param adminId The identity of the Admin object.
|
489
|
+
*
|
490
|
+
* @return A proxy to the main ("") facet of the Admin object. Never returns a null proxy.
|
491
|
+
*
|
492
|
+
* @see #getAdmin
|
493
|
+
* @see LocatorRegistry#setServerProcessProxy
|
494
|
+
*
|
495
|
+
**/
|
496
|
+
Object* createAdmin(ObjectAdapter adminAdapter, Identity adminId);
|
497
|
+
|
498
|
+
/**
|
499
|
+
*
|
500
|
+
* Get a proxy to the main facet of the Admin object.
|
501
|
+
*
|
502
|
+
* getAdmin also creates the Admin object and creates and activates the Ice.Admin object
|
503
|
+
* adapter to host this Admin object if Ice.Admin.Enpoints is set. The identity of the Admin
|
504
|
+
* object created by getAdmin is <value of Ice.Admin.InstanceName>/admin, or <UUID>/admin
|
505
|
+
* when Ice.Admin.InstanceName is not set.
|
506
|
+
*
|
507
|
+
* <p>If Ice.Admin.DelayCreation is 0 or not set, getAdmin is called by the communicator
|
508
|
+
* initialization, after initialization of all plugins.</p>
|
509
|
+
|
510
|
+
* @return A proxy to the main ("") facet of the Admin object, or a null proxy if no
|
511
|
+
* Admin object is configured.
|
512
|
+
*
|
513
|
+
* @see #createAdmin
|
514
|
+
**/
|
515
|
+
["cpp:const"] Object* getAdmin();
|
516
|
+
|
517
|
+
/**
|
518
|
+
*
|
519
|
+
* Add a new facet to the Admin object.
|
520
|
+
* Adding a servant with a facet that is already registered
|
521
|
+
* throws {@link AlreadyRegisteredException}.
|
522
|
+
*
|
523
|
+
* @param servant The servant that implements the new Admin facet.
|
524
|
+
* @param facet The name of the new Admin facet.
|
525
|
+
*
|
526
|
+
**/
|
527
|
+
void addAdminFacet(Object servant, string facet);
|
528
|
+
|
529
|
+
/**
|
530
|
+
*
|
531
|
+
* Remove the following facet to the Admin object.
|
532
|
+
* Removing a facet that was not previously registered throws
|
533
|
+
* {@link NotRegisteredException}.
|
534
|
+
*
|
535
|
+
* @param facet The name of the Admin facet.
|
536
|
+
* @return The servant associated with this Admin facet.
|
537
|
+
*
|
538
|
+
**/
|
539
|
+
Object removeAdminFacet(string facet);
|
540
|
+
|
541
|
+
/**
|
542
|
+
*
|
543
|
+
* Returns a facet of the Admin object.
|
544
|
+
*
|
545
|
+
* @param facet The name of the Admin facet.
|
546
|
+
* @return The servant associated with this Admin facet, or
|
547
|
+
* null if no facet is registered with the given name.
|
548
|
+
*
|
549
|
+
**/
|
550
|
+
Object findAdminFacet(string facet);
|
551
|
+
|
552
|
+
/**
|
553
|
+
*
|
554
|
+
* Returns a map of all facets of the Admin object.
|
555
|
+
*
|
556
|
+
* @return A collection containing all the facet names and
|
557
|
+
* servants of the Admin object.
|
558
|
+
*
|
559
|
+
* @see #findAdminFacet
|
560
|
+
*
|
561
|
+
**/
|
562
|
+
FacetMap findAllAdminFacets();
|
563
|
+
|
564
|
+
};
|
565
|
+
|
566
|
+
};
|
567
|
+
|