summaryrefslogtreecommitdiff
path: root/ACE/TAO/tao/IORTable/IORTable.pidl
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/tao/IORTable/IORTable.pidl')
-rw-r--r--ACE/TAO/tao/IORTable/IORTable.pidl79
1 files changed, 79 insertions, 0 deletions
diff --git a/ACE/TAO/tao/IORTable/IORTable.pidl b/ACE/TAO/tao/IORTable/IORTable.pidl
new file mode 100644
index 00000000000..a0e3348f697
--- /dev/null
+++ b/ACE/TAO/tao/IORTable/IORTable.pidl
@@ -0,0 +1,79 @@
+// ================================================================
+/**
+ * @file IORTable.pidl
+ *
+ * $Id$
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu>
+ *
+ * @brief Pre-compiled IDL source for the IORTable module.
+ *
+ * This file is used to generate the code in
+ * IORTable{C}.{h,cpp}
+ *
+ * The command used to generate code from this file is:
+ *
+ * tao_idl -o orig -Sa -St -Sci \
+ * -Wb,export_macro=TAO_IORTable_Export \
+ * -Wb,export_include=iortable_export.h \
+ * -Wb,pre_include="ace/pre.h" \
+ * -Wb,post_include="ace/post.h" \
+ * 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 specifcation 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);
+ };
+};