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
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
00131 const string Random = "Random";
00132
00133
00134 const string RoundRobin = "RoundRobin";
00135
00136
00137 const string FirstBound = "FirstBound";
00138
00139
00140 const string Random_Active = "Random_Active";
00141
00142
00143 const string RoundRobin_Active = "RoundRobin_Active";
00144
00145
00146 const string FirstBound_Active = "FirstBound_Active";
00147
00148
00149 const string Random_RemoveCurrent = "Random_RemoveCurrent";
00150
00151
00152 const string FirstBound_RemoveCurrent = "FirstBound_RemoveCurrent";
00153
00154
00155 const string Random_Active_RemoveCurrent = "Random_Active_RemoveCurrent";
00156
00157
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
00182
00183
00184 interface JNDIObject
00185 {
00186 readonly attribute string stringifiedObject;
00187 readonly attribute string className;
00188 };
00189
00190
00191
00192
00193
00194 interface JNDIJMSObject
00195 {
00196 readonly attribute OctetSeq data;
00197 };
00198
00199
00200
00201
00202
00203
00204 interface JNDIObjectFactory
00205 {
00206 JNDIJMSObject createJNDIJMSObject(in OctetSeq data);
00207 };
00208 };
00209
00210 #endif