POA_Cached_Policies.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file POA_Cached_Policies.h
00006  *
00007  *  POA_Cached_Policies.h,v 1.13 2006/03/10 07:19:13 jtc Exp
00008  *
00009  *   POA
00010  *
00011  *  @author  Irfan Pyarali
00012  */
00013 //=============================================================================
00014 
00015 #ifndef TAO_POA_CACHED_POLICIES_H
00016 #define TAO_POA_CACHED_POLICIES_H
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "tao/PortableServer/portableserver_export.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 #include "tao/PortableServer/ThreadPolicyC.h"
00026 #include "tao/PortableServer/LifespanPolicyC.h"
00027 #include "tao/PortableServer/IdUniquenessPolicyC.h"
00028 #include "tao/PortableServer/IdAssignmentPolicyC.h"
00029 #include "tao/PortableServer/ImplicitActivationPolicyC.h"
00030 #include "tao/PortableServer/ServantRetentionPolicyC.h"
00031 #include "tao/PortableServer/RequestProcessingPolicyC.h"
00032 
00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00034 
00035 // Forward references.
00036 class TAO_POA_Policy_Set;
00037 
00038 namespace TAO
00039 {
00040   namespace Portable_Server
00041   {
00042     class TAO_PortableServer_Export Cached_Policies
00043     {
00044     public:
00045 
00046       enum PriorityModel
00047       {
00048         CLIENT_PROPAGATED,
00049         SERVER_DECLARED,
00050         NOT_SPECIFIED
00051       };
00052 
00053       Cached_Policies ();
00054 
00055       ~Cached_Policies (void);
00056 
00057       /// Update the cached policy values.
00058       void update (TAO_POA_Policy_Set &policy_set
00059                    ACE_ENV_ARG_DECL);
00060 
00061       /**
00062        * @name Accessor methods to cached values.
00063        */
00064       //@{
00065       ::PortableServer::ThreadPolicyValue thread (void) const;
00066       ::PortableServer::LifespanPolicyValue lifespan (void) const;
00067       ::PortableServer::IdUniquenessPolicyValue id_uniqueness (void) const;
00068       ::PortableServer::IdAssignmentPolicyValue id_assignment (void) const;
00069       ::PortableServer::ImplicitActivationPolicyValue implicit_activation (void) const;
00070       ::PortableServer::ServantRetentionPolicyValue servant_retention (void) const;
00071       ::PortableServer::RequestProcessingPolicyValue request_processing (void) const;
00072       PriorityModel priority_model (void) const;
00073       CORBA::Short server_priority (void) const;
00074 
00075       void priority_model (PriorityModel priority_model);
00076       void server_priority (CORBA::Short priority);
00077       void implicit_activation (::PortableServer::ImplicitActivationPolicyValue value);
00078       //@}
00079 
00080     protected:
00081 
00082       /// Helper method to update a particular policy.
00083       void update_policy (const CORBA::Policy_ptr policy
00084                           ACE_ENV_ARG_DECL);
00085 
00086       ::PortableServer::ThreadPolicyValue thread_;
00087 
00088       ::PortableServer::LifespanPolicyValue lifespan_;
00089 
00090       ::PortableServer::IdUniquenessPolicyValue id_uniqueness_;
00091 
00092       ::PortableServer::IdAssignmentPolicyValue id_assignment_;
00093 
00094       ::PortableServer::ImplicitActivationPolicyValue implicit_activation_;
00095 
00096       ::PortableServer::ServantRetentionPolicyValue servant_retention_;
00097 
00098       ::PortableServer::RequestProcessingPolicyValue request_processing_;
00099 
00100       PriorityModel priority_model_;
00101 
00102       CORBA::Short server_priority_;
00103     };
00104   }
00105 }
00106 
00107 TAO_END_VERSIONED_NAMESPACE_DECL
00108 
00109 #if defined (__ACE_INLINE__)
00110 # include "tao/PortableServer/POA_Cached_Policies.i"
00111 #endif /* __ACE_INLINE__ */
00112 
00113 #include /**/ "ace/post.h"
00114 #endif /* TAO_POA_CACHED_POLICIES_H */

Generated on Thu Nov 9 12:40:39 2006 for TAO_PortableServer by doxygen 1.3.6