Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

NamingExtensions.idl

Go to the documentation of this file.
00001 #ifndef NAMINGEXTENSIONS_IDL
00002 #define NAMINGEXTENSIONS_IDL
00003 
00009 #include <CosNaming.idl>
00010 #include <Types.idl>
00011 
00012 #pragma prefix "prismt.com/cos/CosNaming"
00013 
00018 module NamingExtensions
00019 {
00020    // Forward declaration
00021    interface LoadBalancerAlias;
00022 
00023    typedef sequence <octet> OctetSeq;
00024 
00030    interface LoadBalancer
00031    {
00032 
00036       exception NoneBound {};
00037 
00041       exception InvalidPolicy {};
00042 
00046       exception InvalidPlugin {};
00047 
00051       exception ObjectNotFound {};
00052 
00056       exception PluginFailure {};
00057 
00064       void add (in Object obj);
00065 
00073       Object get () raises (NoneBound, PluginFailure);
00074 
00081       void remove (in Object name) raises (ObjectNotFound);
00082 
00087       Types::ObjectSeq list ();
00088 
00096       void setPolicy (in string policy) raises (InvalidPolicy);
00097 
00106       void addPlugin (in string classname) raises (InvalidPlugin);
00107 
00111       LoadBalancerAlias getAlias ();
00112    };
00113 
00114 
00119    interface LoadBalancerAlias : LoadBalancer
00120    {
00121    };
00122 
00123 
00130    // Select object in random order
00131    const string Random = "Random";
00132 
00133    // Select object in round robin order
00134    const string RoundRobin = "RoundRobin";
00135 
00136    // Select the first bound object
00137    const string FirstBound = "FirstBound";
00138 
00139    // Select a random active object
00140    const string Random_Active = "Random_Active";
00141 
00142    // Select an active object in round robin order
00143    const string RoundRobin_Active = "RoundRobin_Active";
00144 
00145    // Select the first bound active object
00146    const string FirstBound_Active = "FirstBound_Active";
00147 
00148    // Select and remove a random object
00149    const string Random_RemoveCurrent = "Random_RemoveCurrent";
00150 
00151    // Select and remove the first bound object
00152    const string FirstBound_RemoveCurrent = "FirstBound_RemoveCurrent";
00153 
00154    // Select and remove a random active object
00155    const string Random_Active_RemoveCurrent = "Random_Active_RemoveCurrent";
00156 
00157    // Select and remove the first bound active object
00158    const string FirstBound_Active_RemoveCurrent = "FirstBound_Active_RemoveCurrent";
00159 
00160 
00164    interface LoadBalancingFactory
00165    {
00175       LoadBalancer createLoadBalancer (in string name)
00176          raises (LoadBalancer::InvalidPolicy, LoadBalancer::InvalidPlugin);
00177    };
00178 
00179 
00180    /*
00181     * Allows Non-Corba objects read from JNDI to be stringified and displayed
00182     * as CORBA objects.
00183     */
00184    interface JNDIObject
00185    {
00186       readonly attribute string stringifiedObject;
00187       readonly attribute string className;
00188    };
00189 
00190 
00191    /*
00192     * Allows JMS Destination objects to be held on a CosNaming Service.
00193     */
00194    interface JNDIJMSObject
00195    {
00196       readonly attribute OctetSeq data;
00197    };
00198 
00199    /*
00200     * Allows Non-CORBA objects to be stored in Sun CosNaming Service
00201     * as CORBA objects using the com.prismt.cos.CosNaming.JMSStateFactory
00202     * and com.prismt.cos.CosNaming.JMSObjectFactory
00203     */
00204    interface JNDIObjectFactory
00205    {
00206       JNDIJMSObject createJNDIJMSObject(in OctetSeq data);
00207    };
00208 };
00209 
00210 #endif