00001 // ================================================================ 00002 /** 00003 * @file IORTable.pidl 00004 * 00005 * IORTable.pidl,v 1.7 2005/04/12 08:23:26 jwillemsen Exp 00006 * 00007 * @author Carlos O'Ryan <coryan@uci.edu> 00008 * 00009 * @brief Pre-compiled IDL source for the IORTable module. 00010 * 00011 * This file was used to generate the code in 00012 * IORTable{C}.{h,cpp} 00013 * 00014 * The command used to generate code from this file is: 00015 * 00016 * tao_idl -o orig -Ge 1 -Sa -St -Sci \ 00017 * -Wb,export_macro=TAO_IORTable_Export \ 00018 * -Wb,export_include=iortable_export.h \ 00019 * -Wb,pre_include="ace/pre.h" \ 00020 * -Wb,post_include="ace/post.h" \ 00021 * IORTable.pidl 00022 * 00023 */ 00024 // ================================================================ 00025 00026 /// Define a module to avoid namespace pollution 00027 module IORTable 00028 { 00029 local interface Locator; 00030 00031 /// The object key is already in the IORTable 00032 exception AlreadyBound {}; 00033 00034 /// Cannot find the object key in the IORTable 00035 exception NotFound {}; 00036 00037 /// Define the IORTable interface 00038 /** 00039 * 00040 * Any TAO server can be configured as an corbaloc agent. 00041 * Such agents forward requests generated using a simple 00042 * ObjectKey in a corbaloc specifcation to the real location 00043 * of the object. 00044 * In TAO we implement this feature by dynamically (or 00045 * statically) adding a new Object Adapter to the ORB, that 00046 * handles any sort of request. 00047 */ 00048 local interface Table 00049 { 00050 /// Bind <object_key> to the <IOR> 00051 void bind (in string object_key, 00052 in string IOR) 00053 raises (AlreadyBound); 00054 00055 /// Bind <object_key> to the <IOR> 00056 void rebind (in string object_key, 00057 in string IOR); 00058 00059 /// Remove the binding for <object_key> 00060 void unbind (in string object_key) 00061 raises (NotFound); 00062 00063 /// Set the locator, if no binding is set for an object_key we try 00064 /// to use the locator to resolve it 00065 void set_locator (in Locator the_locator); 00066 }; 00067 00068 /// Callback interface to locate object keys dynamically 00069 /** 00070 * The application can provide a callback interface to locate object 00071 * keys dynamically. 00072 */ 00073 local interface Locator 00074 { 00075 /// Returns an IOR to use for <object_key> 00076 string locate (in string object_key) 00077 raises (NotFound); 00078 }; 00079 };