Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / IORTable / IORTable.pidl
blob142f8464cf5b072118e0b2de34b8f71ddcb6c149
1 /**
2  * @file IORTable.pidl
3  *
4  * @author Carlos O'Ryan <coryan@uci.edu>
5  *
6  * @brief Pre-compiled IDL source for the IORTable module.
7  */
9 #ifndef TAO_IORTABLE_IORTABLE_PIDL
10 #define TAO_IORTABLE_IORTABLE_PIDL
12 /// Define a module to avoid namespace pollution
13 module IORTable
15   local interface Locator;
17   /// The object key is already in the IORTable
18   exception AlreadyBound {};
20   /// Cannot find the object key in the IORTable
21   exception NotFound {};
23   /// Define the IORTable interface
24   /**
25    *
26    *  Any TAO server can be configured as an corbaloc agent.
27    *  Such agents forward requests generated using a simple
28    *  ObjectKey in a corbaloc specification to the real location
29    *  of the object.
30    *  In TAO we implement this feature by dynamically (or
31    *  statically) adding a new Object Adapter to the ORB, that
32    *  handles any sort of request.
33    */
34   local interface Table
35   {
36     /// Bind @a object_key to the @a IOR
37     void bind (in string object_key,
38                in string IOR)
39       raises (AlreadyBound);
41     /// Bind @a object_key to the @a IOR
42     void rebind (in string object_key,
43                  in string IOR);
45     /// Remove the binding for @a object_key
46     void unbind (in string object_key)
47       raises (NotFound);
49     /// Set the locator, if no binding is set for an object_key we try
50     /// to use the locator to resolve it
51     void set_locator (in Locator the_locator);
52   };
54   /// Callback interface to locate object keys dynamically
55   /**
56    * The application can provide a callback interface to locate object
57    * keys dynamically.
58    */
59   local interface Locator
60   {
61     /// Returns an IOR to use for @a object_key
62     string locate (in string object_key)
63       raises (NotFound);
64   };
68 #endif /* TAO_IORTABLE_IORTABLE_PIDL */