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
![]()