zeroc-ice-x64-mingw 3.6b1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/ICE_LICENSE +54 -0
  3. data/LICENSE +339 -0
  4. data/bin/slice2rb +17 -0
  5. data/ice-x64-mingw.gemspec +41 -0
  6. data/lib/Glacier2.rb +12 -0
  7. data/lib/Glacier2/Metrics.rb +99 -0
  8. data/lib/Glacier2/PermissionsVerifier.rb +168 -0
  9. data/lib/Glacier2/PermissionsVerifierF.rb +34 -0
  10. data/lib/Glacier2/Router.rb +141 -0
  11. data/lib/Glacier2/RouterF.rb +29 -0
  12. data/lib/Glacier2/SSLInfo.rb +79 -0
  13. data/lib/Glacier2/Session.rb +470 -0
  14. data/lib/Ice.rb +659 -0
  15. data/lib/Ice/BuiltinSequences.rb +64 -0
  16. data/lib/Ice/Communicator.rb +93 -0
  17. data/lib/Ice/CommunicatorF.rb +28 -0
  18. data/lib/Ice/Connection.rb +414 -0
  19. data/lib/Ice/ConnectionF.rb +36 -0
  20. data/lib/Ice/Current.rb +152 -0
  21. data/lib/Ice/Endpoint.rb +265 -0
  22. data/lib/Ice/EndpointF.rb +52 -0
  23. data/lib/Ice/EndpointTypes.rb +77 -0
  24. data/lib/Ice/FacetMap.rb +28 -0
  25. data/lib/Ice/Identity.rb +70 -0
  26. data/lib/Ice/ImplicitContext.rb +59 -0
  27. data/lib/Ice/ImplicitContextF.rb +28 -0
  28. data/lib/Ice/Instrumentation.rb +425 -0
  29. data/lib/Ice/InstrumentationF.rb +35 -0
  30. data/lib/Ice/LocalException.rb +1081 -0
  31. data/lib/Ice/Locator.rb +314 -0
  32. data/lib/Ice/LocatorF.rb +34 -0
  33. data/lib/Ice/Logger.rb +57 -0
  34. data/lib/Ice/LoggerF.rb +28 -0
  35. data/lib/Ice/Metrics.rb +696 -0
  36. data/lib/Ice/ObjectAdapterF.rb +28 -0
  37. data/lib/Ice/ObjectFactory.rb +53 -0
  38. data/lib/Ice/ObjectFactoryF.rb +28 -0
  39. data/lib/Ice/Plugin.rb +87 -0
  40. data/lib/Ice/PluginF.rb +32 -0
  41. data/lib/Ice/Process.rb +93 -0
  42. data/lib/Ice/ProcessF.rb +29 -0
  43. data/lib/Ice/Properties.rb +65 -0
  44. data/lib/Ice/PropertiesAdmin.rb +104 -0
  45. data/lib/Ice/PropertiesF.rb +33 -0
  46. data/lib/Ice/Router.rb +163 -0
  47. data/lib/Ice/RouterF.rb +29 -0
  48. data/lib/Ice/SliceChecksumDict.rb +28 -0
  49. data/lib/Ice/Version.rb +100 -0
  50. data/lib/IceBox.rb +10 -0
  51. data/lib/IceBox/IceBox.rb +272 -0
  52. data/lib/IceGrid.rb +17 -0
  53. data/lib/IceGrid/Admin.rb +1076 -0
  54. data/lib/IceGrid/Descriptor.rb +1505 -0
  55. data/lib/IceGrid/Exception.rb +401 -0
  56. data/lib/IceGrid/FileParser.rb +105 -0
  57. data/lib/IceGrid/Locator.rb +105 -0
  58. data/lib/IceGrid/Observer.rb +571 -0
  59. data/lib/IceGrid/Query.rb +168 -0
  60. data/lib/IceGrid/Registry.rb +120 -0
  61. data/lib/IceGrid/Session.rb +114 -0
  62. data/lib/IceGrid/UserAccountMapper.rb +101 -0
  63. data/lib/IcePatch2.rb +10 -0
  64. data/lib/IcePatch2/FileInfo.rb +75 -0
  65. data/lib/IcePatch2/FileServer.rb +141 -0
  66. data/lib/IceRuby.so +0 -0
  67. data/lib/IceStorm.rb +11 -0
  68. data/lib/IceStorm/IceStorm.rb +463 -0
  69. data/lib/IceStorm/Metrics.rb +155 -0
  70. data/slice/Freeze/BackgroundSaveEvictor.ice +111 -0
  71. data/slice/Freeze/CatalogData.ice +49 -0
  72. data/slice/Freeze/Connection.ice +111 -0
  73. data/slice/Freeze/ConnectionF.ice +20 -0
  74. data/slice/Freeze/DB.ice +37 -0
  75. data/slice/Freeze/Evictor.ice +339 -0
  76. data/slice/Freeze/EvictorF.ice +22 -0
  77. data/slice/Freeze/EvictorStorage.ice +72 -0
  78. data/slice/Freeze/Exception.ice +100 -0
  79. data/slice/Freeze/Transaction.ice +57 -0
  80. data/slice/Freeze/TransactionalEvictor.ice +50 -0
  81. data/slice/Glacier2/Metrics.ice +77 -0
  82. data/slice/Glacier2/PermissionsVerifier.ice +105 -0
  83. data/slice/Glacier2/PermissionsVerifierF.ice +21 -0
  84. data/slice/Glacier2/Router.ice +178 -0
  85. data/slice/Glacier2/RouterF.ice +20 -0
  86. data/slice/Glacier2/SSLInfo.ice +50 -0
  87. data/slice/Glacier2/Session.ice +273 -0
  88. data/slice/Ice/BuiltinSequences.ice +48 -0
  89. data/slice/Ice/Communicator.ice +567 -0
  90. data/slice/Ice/CommunicatorF.ice +20 -0
  91. data/slice/Ice/Connection.ice +323 -0
  92. data/slice/Ice/ConnectionF.ice +22 -0
  93. data/slice/Ice/Current.ice +160 -0
  94. data/slice/Ice/Endpoint.ice +227 -0
  95. data/slice/Ice/EndpointF.ice +32 -0
  96. data/slice/Ice/EndpointTypes.ice +38 -0
  97. data/slice/Ice/FacetMap.ice +25 -0
  98. data/slice/Ice/Identity.ice +59 -0
  99. data/slice/Ice/ImplicitContext.ice +109 -0
  100. data/slice/Ice/ImplicitContextF.ice +20 -0
  101. data/slice/Ice/Instrumentation.ice +499 -0
  102. data/slice/Ice/InstrumentationF.ice +26 -0
  103. data/slice/Ice/LocalException.ice +1015 -0
  104. data/slice/Ice/Locator.ice +227 -0
  105. data/slice/Ice/LocatorF.ice +21 -0
  106. data/slice/Ice/Logger.ice +86 -0
  107. data/slice/Ice/LoggerF.ice +20 -0
  108. data/slice/Ice/Metrics.ice +422 -0
  109. data/slice/Ice/ObjectAdapter.ice +673 -0
  110. data/slice/Ice/ObjectAdapterF.ice +20 -0
  111. data/slice/Ice/ObjectFactory.ice +60 -0
  112. data/slice/Ice/ObjectFactoryF.ice +20 -0
  113. data/slice/Ice/Plugin.ice +117 -0
  114. data/slice/Ice/PluginF.ice +21 -0
  115. data/slice/Ice/Process.ice +54 -0
  116. data/slice/Ice/ProcessF.ice +20 -0
  117. data/slice/Ice/Properties.ice +228 -0
  118. data/slice/Ice/PropertiesAdmin.ice +75 -0
  119. data/slice/Ice/PropertiesF.ice +21 -0
  120. data/slice/Ice/RemoteLogger.ice +232 -0
  121. data/slice/Ice/Router.ice +83 -0
  122. data/slice/Ice/RouterF.ice +20 -0
  123. data/slice/Ice/ServantLocator.ice +117 -0
  124. data/slice/Ice/ServantLocatorF.ice +20 -0
  125. data/slice/Ice/SliceChecksumDict.ice +25 -0
  126. data/slice/Ice/Version.ice +39 -0
  127. data/slice/IceBox/IceBox.ice +194 -0
  128. data/slice/IceDiscovery/IceDiscovery.ice +32 -0
  129. data/slice/IceGrid/Admin.ice +1578 -0
  130. data/slice/IceGrid/Descriptor.ice +1079 -0
  131. data/slice/IceGrid/Discovery.ice +73 -0
  132. data/slice/IceGrid/Exception.ice +383 -0
  133. data/slice/IceGrid/FileParser.ice +61 -0
  134. data/slice/IceGrid/Locator.ice +56 -0
  135. data/slice/IceGrid/Observer.ice +394 -0
  136. data/slice/IceGrid/PluginFacade.ice +316 -0
  137. data/slice/IceGrid/Query.ice +130 -0
  138. data/slice/IceGrid/Registry.ice +138 -0
  139. data/slice/IceGrid/Session.ice +124 -0
  140. data/slice/IceGrid/UserAccountMapper.ice +58 -0
  141. data/slice/IcePatch2/FileInfo.ice +49 -0
  142. data/slice/IcePatch2/FileServer.ice +129 -0
  143. data/slice/IceSSL/ConnectionInfo.ice +34 -0
  144. data/slice/IceSSL/EndpointInfo.ice +41 -0
  145. data/slice/IceStorm/IceStorm.ice +405 -0
  146. data/slice/IceStorm/Metrics.ice +71 -0
  147. metadata +207 -0
@@ -0,0 +1,673 @@
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/CommunicatorF.ice>
15
+ #include <Ice/ServantLocatorF.ice>
16
+ #include <Ice/LocatorF.ice>
17
+ #include <Ice/Identity.ice>
18
+ #include <Ice/FacetMap.ice>
19
+ #include <Ice/Endpoint.ice>
20
+
21
+ module Ice
22
+ {
23
+
24
+ /**
25
+ *
26
+ * The object adapter provides an up-call interface from the Ice
27
+ * run time to the implementation of Ice objects.
28
+ *
29
+ * The object adapter is responsible for receiving requests
30
+ * from endpoints, and for mapping between servants, identities, and
31
+ * proxies.
32
+ *
33
+ * @see Communicator
34
+ * @see ServantLocator
35
+ *
36
+ **/
37
+ local interface ObjectAdapter
38
+ {
39
+ /**
40
+ *
41
+ * Get the name of this object adapter.
42
+ *
43
+ * @return This object adapter's name.
44
+ *
45
+ **/
46
+ ["cpp:const"] string getName();
47
+
48
+ /**
49
+ *
50
+ * Get the communicator this object adapter belongs to.
51
+ *
52
+ * @return This object adapter's communicator.
53
+ *
54
+ * @see Communicator
55
+ *
56
+ **/
57
+ ["cpp:const"] Communicator getCommunicator();
58
+
59
+ /**
60
+ *
61
+ * Activate all endpoints that belong to this object adapter.
62
+ * After activation, the object adapter can dispatch requests
63
+ * received through its endpoints.
64
+ *
65
+ * @see #hold
66
+ * @see #deactivate
67
+ *
68
+ **/
69
+ void activate();
70
+
71
+ /**
72
+ *
73
+ * Temporarily hold receiving and dispatching requests. The object
74
+ * adapter can be reactivated with the {@link #activate} operation.
75
+ *
76
+ * <p class="Note"> Holding is not immediate, i.e., after {@link #hold}
77
+ * returns, the object adapter might still be active for some
78
+ * time. You can use {@link #waitForHold} to wait until holding is
79
+ * complete.
80
+ *
81
+ * @see #activate
82
+ * @see #deactivate
83
+ * @see #waitForHold
84
+ *
85
+ **/
86
+ void hold();
87
+
88
+ /**
89
+ *
90
+ * Wait until the object adapter holds requests. Calling {@link #hold}
91
+ * initiates holding of requests, and {@link #waitForHold} only returns
92
+ * when holding of requests has been completed.
93
+ *
94
+ * @see #hold
95
+ * @see #waitForDeactivate
96
+ * @see Communicator#waitForShutdown
97
+ *
98
+ **/
99
+ void waitForHold();
100
+
101
+ /**
102
+ *
103
+ * Deactivate all endpoints that belong to this object adapter.
104
+ * After deactivation, the object adapter stops receiving
105
+ * requests through its endpoints. Object adapters that have been
106
+ * deactivated must not be reactivated again, and cannot be used
107
+ * otherwise. Attempts to use a deactivated object adapter raise
108
+ * {@link ObjectAdapterDeactivatedException}; however, attempts to
109
+ * {@link #deactivate} an already deactivated object adapter are
110
+ * ignored and do nothing. Once deactivated, it is possible to
111
+ * destroy the adapter to clean up resources and then create and
112
+ * activate a new adapter with the same name.
113
+ *
114
+ * <p class="Note"> After {@link #deactivate} returns, no new requests
115
+ * are processed by the object adapter. However, requests that
116
+ * have been started before {@link #deactivate} was called might
117
+ * still be active. You can use {@link #waitForDeactivate} to wait
118
+ * for the completion of all requests for this object adapter.
119
+ *
120
+ * @see #activate
121
+ * @see #hold
122
+ * @see #waitForDeactivate
123
+ * @see Communicator#shutdown
124
+ *
125
+ **/
126
+ void deactivate();
127
+
128
+ /**
129
+ *
130
+ * Wait until the object adapter has deactivated. Calling
131
+ * {@link #deactivate} initiates object adapter deactivation, and
132
+ * {@link #waitForDeactivate} only returns when deactivation has
133
+ * been completed.
134
+ *
135
+ * @see #deactivate
136
+ * @see #waitForHold
137
+ * @see Communicator#waitForShutdown
138
+ *
139
+ **/
140
+ void waitForDeactivate();
141
+
142
+ /**
143
+ *
144
+ * Check whether object adapter has been deactivated.
145
+ *
146
+ * @return Whether adapter has been deactivated.
147
+ *
148
+ * @see Communicator#shutdown
149
+ *
150
+ **/
151
+ ["cpp:const"] bool isDeactivated();
152
+
153
+ /**
154
+ *
155
+ * Destroys the object adapter and cleans up all resources held by
156
+ * the object adapter. If the object adapter has not yet been
157
+ * deactivated, {@link #destroy} implicitly initiates the deactivation
158
+ * and waits for it to finish. Subsequent calls to {@link destroy} are
159
+ * ignored. Once {@link destroy} has returned, it is possible to create
160
+ * another object adapter with the same name.
161
+ *
162
+ * @see #deactivate
163
+ * @see #waitForDeactivate
164
+ * @see Communicator#destroy
165
+ *
166
+ **/
167
+ void destroy();
168
+
169
+ /**
170
+ *
171
+ * Add a servant to this object adapter's Active Servant Map. Note
172
+ * that one servant can implement several Ice objects by registering
173
+ * the servant with multiple identities. Adding a servant with an
174
+ * identity that is in the map already throws {@link AlreadyRegisteredException}.
175
+ *
176
+ * @param servant The servant to add.
177
+ *
178
+ * @param id The identity of the Ice object that is implemented by
179
+ * the servant.
180
+ *
181
+ * @return A proxy that matches the given identity and this object
182
+ * adapter.
183
+ *
184
+ * @see Identity
185
+ * @see #addFacet
186
+ * @see #addWithUUID
187
+ * @see #remove
188
+ * @see #find
189
+ *
190
+ **/
191
+ Object* add(Object servant, Identity id);
192
+
193
+ /**
194
+ *
195
+ * Like {@link #add}, but with a facet. Calling <tt>add(servant, id)</tt>
196
+ * is equivalent to calling {@link #addFacet} with an empty facet.
197
+ *
198
+ * @param servant The servant to add.
199
+ *
200
+ * @param id The identity of the Ice object that is implemented by
201
+ * the servant.
202
+ *
203
+ * @param facet The facet. An empty facet means the default facet.
204
+ *
205
+ * @return A proxy that matches the given identity, facet, and
206
+ * this object adapter.
207
+ *
208
+ * @see Identity
209
+ * @see #add
210
+ * @see #addFacetWithUUID
211
+ * @see #removeFacet
212
+ * @see #findFacet
213
+ *
214
+ **/
215
+ Object* addFacet(Object servant, Identity id, string facet);
216
+
217
+ /**
218
+ *
219
+ * Add a servant to this object adapter's Active Servant Map,
220
+ * using an automatically generated UUID as its identity. Note that
221
+ * the generated UUID identity can be accessed using the proxy's
222
+ * <tt>ice_getIdentity</tt> operation.
223
+ *
224
+ * @param servant The servant to add.
225
+ *
226
+ * @return A proxy that matches the generated UUID identity and
227
+ * this object adapter.
228
+ *
229
+ * @see Identity
230
+ * @see #add
231
+ * @see #addFacetWithUUID
232
+ * @see #remove
233
+ * @see #find
234
+ *
235
+ **/
236
+ Object* addWithUUID(Object servant);
237
+
238
+ /**
239
+ *
240
+ * Like {@link #addWithUUID}, but with a facet. Calling
241
+ * <tt>addWithUUID(servant)</tt> is equivalent to calling
242
+ * {@link #addFacetWithUUID} with an empty facet.
243
+ *
244
+ * @param servant The servant to add.
245
+ *
246
+ * @param facet The facet. An empty facet means the default
247
+ * facet.
248
+ *
249
+ * @return A proxy that matches the generated UUID identity,
250
+ * facet, and this object adapter.
251
+ *
252
+ * @see Identity
253
+ * @see #addFacet
254
+ * @see #addWithUUID
255
+ * @see #removeFacet
256
+ * @see #findFacet
257
+ *
258
+ **/
259
+ Object* addFacetWithUUID(Object servant, string facet);
260
+
261
+ /**
262
+ *
263
+ * Add a default servant to handle requests for a specific
264
+ * category. Adding a default servant for a category for
265
+ * which a default servant is already registered throws
266
+ * {@link AlreadyRegisteredException}. To dispatch operation
267
+ * calls on servants, the object adapter tries to find a servant
268
+ * for a given Ice object identity and facet in the following
269
+ * order:
270
+ *
271
+ * <ol>
272
+ *
273
+ * <li>The object adapter tries to find a servant for the identity
274
+ * and facet in the Active Servant Map.</li>
275
+ *
276
+ * <li>If no servant has been found in the Active Servant Map, the
277
+ * object adapter tries to find a default servant for the category
278
+ * component of the identity.</li>
279
+ *
280
+ * <li>If no servant has been found by any of the preceding steps,
281
+ * the object adapter tries to find a default servant for an empty
282
+ * category, regardless of the category contained in the identity.</li>
283
+ *
284
+ * <li>If no servant has been found by any of the preceding steps,
285
+ * the object adapter gives up and the caller receives
286
+ * {@link ObjectNotExistException} or {@link FacetNotExistException}.</li>
287
+ *
288
+ * </ol>
289
+ *
290
+ * @param servant The default servant.
291
+ *
292
+ * @param category The category for which the default servant is
293
+ * registered. An empty category means it will handle all categories.
294
+ *
295
+ * @see #removeDefaultServant
296
+ * @see #findDefaultServant
297
+ *
298
+ **/
299
+ void addDefaultServant(Object servant, string category);
300
+
301
+ /**
302
+ *
303
+ * Remove a servant (that is, the default facet) from the object
304
+ * adapter's Active Servant Map.
305
+ *
306
+ * @param id The identity of the Ice object that is implemented by
307
+ * the servant. If the servant implements multiple Ice objects,
308
+ * {@link #remove} has to be called for all those Ice objects.
309
+ * Removing an identity that is not in the map throws
310
+ * {@link NotRegisteredException}.
311
+ *
312
+ * @return The removed servant.
313
+ *
314
+ * @see Identity
315
+ * @see #add
316
+ * @see #addWithUUID
317
+ *
318
+ **/
319
+ Object remove(Identity id);
320
+
321
+ /**
322
+ *
323
+ * Like {@link #remove}, but with a facet. Calling <tt>remove(id)</tt>
324
+ * is equivalent to calling {@link #removeFacet} with an empty facet.
325
+ *
326
+ * @param id The identity of the Ice object that is implemented by
327
+ * the servant.
328
+ *
329
+ * @param facet The facet. An empty facet means the default facet.
330
+ *
331
+ * @return The removed servant.
332
+ *
333
+ * @see Identity
334
+ * @see #addFacet
335
+ * @see #addFacetWithUUID
336
+ *
337
+ **/
338
+ Object removeFacet(Identity id, string facet);
339
+
340
+ /**
341
+ *
342
+ * Remove all facets with the given identity from the Active
343
+ * Servant Map. The operation completely removes the Ice object,
344
+ * including its default facet. Removing an identity that
345
+ * is not in the map throws {@link NotRegisteredException}.
346
+ *
347
+ * @param id The identity of the Ice object to be removed.
348
+ *
349
+ * @return A collection containing all the facet names and
350
+ * servants of the removed Ice object.
351
+ *
352
+ * @see #remove
353
+ * @see #removeFacet
354
+ *
355
+ **/
356
+ FacetMap removeAllFacets(Identity id);
357
+
358
+ /**
359
+ *
360
+ * Remove the default servant for a specific category. Attempting
361
+ * to remove a default servant for a category that is not
362
+ * registered throws {@link NotRegisteredException}.
363
+ *
364
+ * @param category The category of the default servant to remove.
365
+ *
366
+ * @return The default servant.
367
+ *
368
+ * @see #addDefaultServant
369
+ * @see #findDefaultServant
370
+ *
371
+ **/
372
+ Object removeDefaultServant(string category);
373
+
374
+ /**
375
+ *
376
+ * Look up a servant in this object adapter's Active Servant Map
377
+ * by the identity of the Ice object it implements.
378
+ *
379
+ * <p class="Note">This operation only tries to look up a servant in
380
+ * the Active Servant Map. It does not attempt to find a servant
381
+ * by using any installed {@link ServantLocator}.
382
+ *
383
+ * @param id The identity of the Ice object for which the servant
384
+ * should be returned.
385
+ *
386
+ * @return The servant that implements the Ice object with the
387
+ * given identity, or null if no such servant has been found.
388
+ *
389
+ * @see Identity
390
+ * @see #findFacet
391
+ * @see #findByProxy
392
+ *
393
+ **/
394
+ ["cpp:const"] Object find(Identity id);
395
+
396
+ /**
397
+ *
398
+ * Like {@link #find}, but with a facet. Calling <tt>find(id)</tt>
399
+ * is equivalent to calling {@link #findFacet} with an empty
400
+ * facet.
401
+ *
402
+ * @param id The identity of the Ice object for which the
403
+ * servant should be returned.
404
+ *
405
+ * @param facet The facet. An empty facet means the default
406
+ * facet.
407
+ *
408
+ * @return The servant that implements the Ice object with the
409
+ * given identity and facet, or null if no such servant has been
410
+ * found.
411
+ *
412
+ * @see Identity
413
+ * @see #find
414
+ * @see #findByProxy
415
+ *
416
+ **/
417
+ ["cpp:const"] Object findFacet(Identity id, string facet);
418
+
419
+ /**
420
+ *
421
+ * Find all facets with the given identity in the Active Servant
422
+ * Map.
423
+ *
424
+ * @param id The identity of the Ice object for which the facets
425
+ * should be returned.
426
+ *
427
+ * @return A collection containing all the facet names and
428
+ * servants that have been found, or an empty map if there is no
429
+ * facet for the given identity.
430
+ *
431
+ * @see #find
432
+ * @see #findFacet
433
+ *
434
+ **/
435
+ ["cpp:const"] FacetMap findAllFacets(Identity id);
436
+
437
+ /**
438
+ *
439
+ * Look up a servant in this object adapter's Active Servant Map,
440
+ * given a proxy.
441
+ *
442
+ * <p class="Note">This operation only tries to lookup a servant in
443
+ * the Active Servant Map. It does not attempt to find a servant
444
+ * by using any installed {@link ServantLocator}.
445
+ *
446
+ * @param proxy The proxy for which the servant should be returned.
447
+ *
448
+ * @return The servant that matches the proxy, or null if no such
449
+ * servant has been found.
450
+ *
451
+ * @see #find
452
+ * @see #findFacet
453
+ *
454
+ **/
455
+ ["cpp:const"] Object findByProxy(Object* proxy);
456
+
457
+ /**
458
+ *
459
+ * Add a Servant Locator to this object adapter. Adding a servant
460
+ * locator for a category for which a servant locator is already
461
+ * registered throws {@link AlreadyRegisteredException}. To dispatch
462
+ * operation calls on servants, the object adapter tries to find a
463
+ * servant for a given Ice object identity and facet in the
464
+ * following order:
465
+ *
466
+ * <ol>
467
+ *
468
+ * <li>The object adapter tries to find a servant for the identity
469
+ * and facet in the Active Servant Map.</li>
470
+ *
471
+ * <li>If no servant has been found in the Active Servant Map,
472
+ * the object adapter tries to find a servant locator for the
473
+ * category component of the identity. If a locator is found, the
474
+ * object adapter tries to find a servant using this locator.</li>
475
+ *
476
+ * <li>If no servant has been found by any of the preceding steps,
477
+ * the object adapter tries to find a locator for an empty category,
478
+ * regardless of the category contained in the identity. If a
479
+ * locator is found, the object adapter tries to find a servant
480
+ * using this locator.</li>
481
+ *
482
+ * <li>If no servant has been found by any of the preceding steps,
483
+ * the object adapter gives up and the caller receives
484
+ * {@link ObjectNotExistException} or {@link FacetNotExistException}.</li>
485
+ *
486
+ * </ol>
487
+ *
488
+ * <p class="Note">Only one locator for the empty category can be
489
+ * installed.
490
+ *
491
+ * @param locator The locator to add.
492
+ *
493
+ * @param category The category for which the Servant Locator can
494
+ * locate servants, or an empty string if the Servant Locator does
495
+ * not belong to any specific category.
496
+ *
497
+ * @see Identity
498
+ * @see #removeServantLocator
499
+ * @see #findServantLocator
500
+ * @see ServantLocator
501
+ *
502
+ **/
503
+ void addServantLocator(ServantLocator locator, string category);
504
+
505
+ /**
506
+ *
507
+ * Remove a Servant Locator from this object adapter.
508
+ *
509
+ * @param category The category for which the Servant Locator can
510
+ * locate servants, or an empty string if the Servant Locator does
511
+ * not belong to any specific category.
512
+ *
513
+ * @return The Servant Locator, or throws {@link NotRegisteredException}
514
+ * if no Servant Locator was found for the given category.
515
+ *
516
+ * @see Identity
517
+ * @see #addServantLocator
518
+ * @see #findServantLocator
519
+ * @see ServantLocator
520
+ *
521
+ **/
522
+ ServantLocator removeServantLocator(string category);
523
+
524
+ /**
525
+ *
526
+ * Find a Servant Locator installed with this object adapter.
527
+ *
528
+ * @param category The category for which the Servant Locator can
529
+ * locate servants, or an empty string if the Servant Locator does
530
+ * not belong to any specific category.
531
+ *
532
+ * @return The Servant Locator, or null if no Servant Locator was
533
+ * found for the given category.
534
+ *
535
+ * @see Identity
536
+ * @see #addServantLocator
537
+ * @see #removeServantLocator
538
+ * @see ServantLocator
539
+ *
540
+ **/
541
+ ["cpp:const"] ServantLocator findServantLocator(string category);
542
+
543
+ /**
544
+ *
545
+ * Find the default servant for a specific category.
546
+ *
547
+ * @param category The category of the default servant to find.
548
+ *
549
+ * @return The default servant or null if no default servant was
550
+ * registered for the category.
551
+ *
552
+ * @see #addDefaultServant
553
+ * @see #removeDefaultServant
554
+ *
555
+ **/
556
+ ["cpp:const"] Object findDefaultServant(string category);
557
+
558
+ /**
559
+ *
560
+ * Create a proxy for the object with the given identity. If this
561
+ * object adapter is configured with an adapter id, the return
562
+ * value is an indirect proxy that refers to the adapter id. If
563
+ * a replica group id is also defined, the return value is an
564
+ * indirect proxy that refers to the replica group id. Otherwise,
565
+ * if no adapter id is defined, the return value is a direct
566
+ * proxy containing this object adapter's published endpoints.
567
+ *
568
+ * @param id The object's identity.
569
+ *
570
+ * @return A proxy for the object with the given identity.
571
+ *
572
+ * @see Identity
573
+ *
574
+ **/
575
+ ["cpp:const"] Object* createProxy(Identity id);
576
+
577
+ /**
578
+ *
579
+ * Create a direct proxy for the object with the given identity.
580
+ * The returned proxy contains this object adapter's published
581
+ * endpoints.
582
+ *
583
+ * @param id The object's identity.
584
+ *
585
+ * @return A proxy for the object with the given identity.
586
+ *
587
+ * @see Identity
588
+ *
589
+ **/
590
+ ["cpp:const"] Object* createDirectProxy(Identity id);
591
+
592
+ /**
593
+ *
594
+ * Create an indirect proxy for the object with the given identity.
595
+ * If this object adapter is configured with an adapter id, the
596
+ * return value refers to the adapter id. Otherwise, the return
597
+ * value contains only the object identity.
598
+ *
599
+ * @param id The object's identity.
600
+ *
601
+ * @return A proxy for the object with the given identity.
602
+ *
603
+ * @see Identity
604
+ *
605
+ **/
606
+ ["cpp:const"] Object* createIndirectProxy(Identity id);
607
+
608
+ /**
609
+ * Set an Ice locator for this object adapter. By doing so, the
610
+ * object adapter will register itself with the locator registry
611
+ * when it is activated for the first time. Furthermore, the proxies
612
+ * created by this object adapter will contain the adapter identifier
613
+ * instead of its endpoints. The adapter identifier must be configured
614
+ * using the AdapterId property.
615
+ *
616
+ * @param loc The locator used by this object adapter.
617
+ *
618
+ * @see #createDirectProxy
619
+ * @see Locator
620
+ * @see LocatorRegistry
621
+ *
622
+ **/
623
+ void setLocator(Locator* loc);
624
+
625
+ /**
626
+ * Get the Ice locator used by this object adapter.
627
+ *
628
+ * @return The locator used by this object adapter, or null if no locator is
629
+ * used by this object adapter.
630
+ *
631
+ * @see Locator
632
+ * @see #setLocator
633
+ *
634
+ **/
635
+ ["cpp:const"] Locator* getLocator();
636
+
637
+ /**
638
+ * Refresh the set of published endpoints. The run time re-reads
639
+ * the PublishedEndpoints property if it is set and re-reads the
640
+ * list of local interfaces if the adapter is configured to listen
641
+ * on all endpoints. This operation is useful to refresh the endpoint
642
+ * information that is published in the proxies that are created by
643
+ * an object adapter if the network interfaces used by a host changes.
644
+ *
645
+ **/
646
+ void refreshPublishedEndpoints();
647
+
648
+ /**
649
+ *
650
+ * Get the set of endpoints configured with this object adapter.
651
+ *
652
+ * @return The set of endpoints.
653
+ *
654
+ * @see Endpoint
655
+ *
656
+ **/
657
+ ["cpp:const"] EndpointSeq getEndpoints();
658
+
659
+ /**
660
+ *
661
+ * Get the set of endpoints that proxies created by this object
662
+ * adapter will contain.
663
+ *
664
+ * @return The set of published endpoints.
665
+ *
666
+ * @see #refreshPublishedEndpoints
667
+ * @see Endpoint
668
+ *
669
+ **/
670
+ ["cpp:const"] EndpointSeq getPublishedEndpoints();
671
+ };
672
+
673
+ };