blob: 142f8464cf5b072118e0b2de34b8f71ddcb6c149 (
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
|
/**
* @file IORTable.pidl
*
* @author Carlos O'Ryan <coryan@uci.edu>
*
* @brief Pre-compiled IDL source for the IORTable module.
*/
#ifndef TAO_IORTABLE_IORTABLE_PIDL
#define TAO_IORTABLE_IORTABLE_PIDL
/// Define a module to avoid namespace pollution
module IORTable
{
local interface Locator;
/// The object key is already in the IORTable
exception AlreadyBound {};
/// Cannot find the object key in the IORTable
exception NotFound {};
/// Define the IORTable interface
/**
*
* Any TAO server can be configured as an corbaloc agent.
* Such agents forward requests generated using a simple
* ObjectKey in a corbaloc specification to the real location
* of the object.
* In TAO we implement this feature by dynamically (or
* statically) adding a new Object Adapter to the ORB, that
* handles any sort of request.
*/
local interface Table
{
/// Bind @a object_key to the @a IOR
void bind (in string object_key,
in string IOR)
raises (AlreadyBound);
/// Bind @a object_key to the @a IOR
void rebind (in string object_key,
in string IOR);
/// Remove the binding for @a object_key
void unbind (in string object_key)
raises (NotFound);
/// Set the locator, if no binding is set for an object_key we try
/// to use the locator to resolve it
void set_locator (in Locator the_locator);
};
/// Callback interface to locate object keys dynamically
/**
* The application can provide a callback interface to locate object
* keys dynamically.
*/
local interface Locator
{
/// Returns an IOR to use for @a object_key
string locate (in string object_key)
raises (NotFound);
};
};
#endif /* TAO_IORTABLE_IORTABLE_PIDL */
|