00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 #ifndef _POA_SERVER_IDL_
00045 #define _POA_SERVER_IDL_
00046 
00047 
00048 #include "tao/Policy_Forward.pidl"
00049 #include "tao/OctetSeq.pidl"
00050 #include "tao/orb_types.pidl"
00051 #include "tao/PortableServer/PS_Forward.pidl"
00052 #include "tao/PortableServer/IdAssignmentPolicy.pidl"
00053 #include "tao/PortableServer/IdUniquenessPolicy.pidl"
00054 #include "tao/PortableServer/ImplicitActivationPolicy.pidl"
00055 #include "tao/PortableServer/LifespanPolicy.pidl"
00056 #include "tao/PortableServer/RequestProcessingPolicy.pidl"
00057 #include "tao/PortableServer/ServantRetentionPolicy.pidl"
00058 #include "tao/PortableServer/ThreadPolicy.pidl"
00059 
00060 #pragma prefix "omg.org"
00061 
00062 module PortableServer
00063 {
00064 # pragma version PortableServer 2.3
00065 
00066   typedef sequence<POA> POAList;
00067 
00068   
00069 #   if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO)
00070   const CORBA::PolicyType THREAD_POLICY_ID                = 16;
00071 #   endif
00072 #   if ! defined (CORBA_E_MICRO)
00073   const CORBA::PolicyType LIFESPAN_POLICY_ID              = 17;
00074   const CORBA::PolicyType ID_UNIQUENESS_POLICY_ID         = 18;
00075   const CORBA::PolicyType ID_ASSIGNMENT_POLICY_ID         = 19;
00076 #   endif
00077 #   if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO)
00078   const CORBA::PolicyType IMPLICIT_ACTIVATION_POLICY_ID   = 20;
00079   const CORBA::PolicyType SERVANT_RETENTION_POLICY_ID     = 21;
00080   const CORBA::PolicyType REQUEST_PROCESSING_POLICY_ID    = 22;
00081 #   endif
00082 
00083   
00084   local interface POAManager;
00085 
00086 #if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO)
00087   
00088   local interface POAManagerFactory;
00089 #endif
00090 
00091 #if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO) && ! defined (TAO_HAS_MINIMUM_POA)
00092   
00093   local interface AdapterActivator;
00094 #endif
00095 
00096 #if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO)
00097   
00098   local interface ServantManager;
00099 #endif
00100 
00101   local interface POA
00102   {
00103 #   pragma version POA 2.3
00104 
00105 #       if ! defined (CORBA_E_MICRO)
00106     exception AdapterAlreadyExists {};
00107     exception AdapterNonExistent {};
00108     exception InvalidPolicy {unsigned short index;};
00109 #if !defined (TAO_HAS_MINIMUM_POA) && !defined (CORBA_E_COMPACT)
00110     exception NoServant {};
00111 #endif
00112     exception ObjectAlreadyActive {};
00113 #       endif
00114     exception ObjectNotActive {};
00115     exception ServantAlreadyActive {};
00116     exception ServantNotActive {};
00117     exception WrongAdapter {};
00118     exception WrongPolicy {};
00119 
00120 
00121 #       if ! defined (CORBA_E_MICRO)
00122 
00123     POA create_POA (in string adapter_name,
00124                     in POAManager a_POAManager,
00125                     in CORBA::PolicyList policies)
00126       raises (AdapterAlreadyExists,
00127               InvalidPolicy);
00128 
00129     POA find_POA (in string adapter_name,
00130                   in boolean activate_it)
00131       raises (AdapterNonExistent);
00132 #endif
00133 
00134     void destroy (in boolean etherealize_objects,
00135                   in boolean wait_for_completion);
00136 
00137     
00138 
00139 #       if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO) && !defined (TAO_HAS_MINIMUM_POA)
00140     ThreadPolicy create_thread_policy (in ThreadPolicyValue value);
00141 #endif
00142 #       if  ! defined (CORBA_E_MICRO)
00143     LifespanPolicy create_lifespan_policy (in LifespanPolicyValue value);
00144 
00145     IdUniquenessPolicy  create_id_uniqueness_policy (
00146         in IdUniquenessPolicyValue value);
00147 
00148     IdAssignmentPolicy  create_id_assignment_policy (
00149         in IdAssignmentPolicyValue value);
00150 #endif
00151 #       if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO) && !defined (TAO_HAS_MINIMUM_POA)
00152     ImplicitActivationPolicy create_implicit_activation_policy (
00153         in ImplicitActivationPolicyValue value
00154       );
00155 
00156     ServantRetentionPolicy create_servant_retention_policy (
00157         in ServantRetentionPolicyValue value
00158       );
00159 
00160     RequestProcessingPolicy create_request_processing_policy (
00161         in RequestProcessingPolicyValue value
00162       );
00163 #       endif
00164 
00165     
00166     readonly attribute string       the_name;
00167     readonly attribute POA          the_parent;
00168 #       if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO)
00169     readonly attribute POAList      the_children;
00170 #       endif
00171     readonly attribute POAManager   the_POAManager;
00172 #       if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO) && !defined (TAO_HAS_MINIMUM_POA)
00173     readonly attribute POAManagerFactory   the_POAManagerFactory;
00174 #   endif
00175 #       if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO) && !defined (TAO_HAS_MINIMUM_POA)
00176     attribute AdapterActivator      the_activator;
00177 #       endif
00178 
00179 #       if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO) && !defined (TAO_HAS_MINIMUM_POA)
00180     
00181 
00182     ServantManager get_servant_manager ()
00183       raises (WrongPolicy);
00184 
00185     void set_servant_manager (in ServantManager imgr)
00186       raises (WrongPolicy);
00187 
00188     
00189 
00190     Servant get_servant ()
00191       raises (NoServant,
00192               WrongPolicy);
00193 
00194     void set_servant (in Servant p_servant)
00195       raises (WrongPolicy);
00196 #       endif
00197 
00198     
00199 
00200     ObjectId  activate_object (in Servant p_servant)
00201       raises (ServantAlreadyActive,
00202               WrongPolicy);
00203 
00204 #if !defined (CORBA_E_MICRO)
00205     void activate_object_with_id (in ObjectId id,
00206                                   in Servant p_servant)
00207       raises (ServantAlreadyActive,
00208               ObjectAlreadyActive,
00209               WrongPolicy);
00210 #endif
00211 
00212     void deactivate_object (in ObjectId oid)
00213       raises (ObjectNotActive, WrongPolicy);
00214 
00215     
00216 
00217     Object create_reference (in CORBA::RepositoryId intf)
00218       raises (WrongPolicy);
00219 
00220 #if !defined (CORBA_E_MICRO)
00221     Object create_reference_with_id (in ObjectId oid,
00222                                      in CORBA::RepositoryId intf);
00223 #endif
00224 
00225     
00226     ObjectId servant_to_id (in Servant p_servant)
00227       raises (ServantNotActive,
00228               WrongPolicy);
00229 
00230     Object servant_to_reference (in Servant p_servant)
00231       raises (ServantNotActive, WrongPolicy);
00232 
00233     Servant reference_to_servant (in Object reference)
00234       raises (ObjectNotActive,
00235               WrongAdapter,
00236               WrongPolicy);
00237 
00238     ObjectId reference_to_id (in Object reference)
00239       raises (WrongAdapter,
00240               WrongPolicy);
00241 
00242     Servant id_to_servant (in ObjectId oid)
00243       raises (ObjectNotActive, WrongPolicy);
00244 
00245     Object id_to_reference (in ObjectId oid)
00246       raises (ObjectNotActive,
00247               WrongPolicy);
00248 
00249     readonly attribute CORBA::OctetSeq id;
00250   };
00251 };
00252 
00253 #endif // _PORTABLE_SERVER_IDL_