TAO_PriorityModelPolicy Class Reference

RTCORBA::PriorityModelPolicy implementation. More...

#include <RT_Policy_i.h>

Inheritance diagram for TAO_PriorityModelPolicy:

Inheritance graph
[legend]
Collaboration diagram for TAO_PriorityModelPolicy:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_PriorityModelPolicy (RTCORBA::PriorityModel priority_model, RTCORBA::Priority server_priority)
 Constructor.

 TAO_PriorityModelPolicy (const TAO_PriorityModelPolicy &rhs)
 Copy constructor.

RTCORBA::PriorityModel get_priority_model (void)
RTCORBA::PriorityModel priority_model (void)
RTCORBA::Priority server_priority (void)
CORBA::PolicyType policy_type (void)
CORBA::Policy_ptr copy (void)
void destroy (void)
CORBA::Boolean _tao_encode (TAO_OutputCDR &out_cdr)
 This method writes a CDR representation of the object state.

CORBA::Boolean _tao_decode (TAO_InputCDR &in_cdr)
 This method reads the object state from a CDR representation.

TAO_Cached_Policy_Type _tao_cached_type (void) const
TAO_Policy_Scope _tao_scope (void) const

Static Public Member Functions

CORBA::Policy_ptr create (const CORBA::Any &val)

Protected Member Functions

virtual ~TAO_PriorityModelPolicy (void)
 TAO_PriorityModelPolicy (void)

Private Attributes

RTCORBA::PriorityModel priority_model_
 Attributes.

RTCORBA::Priority server_priority_

Friends

class TAO_RT_PolicyFactory

Detailed Description

RTCORBA::PriorityModelPolicy implementation.

This policy controls how the priority at which a server handles requests from clients is determined.

Definition at line 48 of file RT_Policy_i.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_PriorityModelPolicy::TAO_PriorityModelPolicy RTCORBA::PriorityModel  priority_model,
RTCORBA::Priority  server_priority
 

Constructor.

Definition at line 24 of file RT_Policy_i.cpp.

References RTCORBA::Priority.

00027   : ::CORBA::Object ()
00028   , ::CORBA::Policy ()
00029   , ::CORBA::LocalObject ()
00030   , RTCORBA::PriorityModelPolicy ()
00031   , TAO_Local_RefCounted_Object ()
00032   , priority_model_ (priority_model)
00033   , server_priority_ (server_priority)
00034 {
00035 }

TAO_PriorityModelPolicy::TAO_PriorityModelPolicy const TAO_PriorityModelPolicy rhs  ) 
 

Copy constructor.

Definition at line 37 of file RT_Policy_i.cpp.

00038   : ::CORBA::Object ()
00039   , ::CORBA::Policy ()
00040   , ::CORBA::LocalObject ()
00041   , RTCORBA::PriorityModelPolicy ()
00042   , TAO_Local_RefCounted_Object ()
00043   , priority_model_ (rhs.priority_model_)
00044   , server_priority_ (rhs.server_priority_)
00045 {
00046 }

TAO_PriorityModelPolicy::~TAO_PriorityModelPolicy void   )  [protected, virtual]
 

Protected destructor to enforce proper memory management of this reference counted object.

Definition at line 54 of file RT_Policy_i.cpp.

00055 {
00056 }

TAO_PriorityModelPolicy::TAO_PriorityModelPolicy void   )  [protected]
 

Definition at line 48 of file RT_Policy_i.cpp.

00049   : priority_model_ (RTCORBA::SERVER_DECLARED),
00050     server_priority_ (0)
00051 {
00052 }


Member Function Documentation

TAO_Cached_Policy_Type TAO_PriorityModelPolicy::_tao_cached_type void   )  const [virtual]
 

Implements CORBA::Policy.

Definition at line 127 of file RT_Policy_i.cpp.

References TAO_CACHED_POLICY_PRIORITY_MODEL.

00128 {
00129   return TAO_CACHED_POLICY_PRIORITY_MODEL;
00130 }

CORBA::Boolean TAO_PriorityModelPolicy::_tao_decode TAO_InputCDR in_cdr  )  [virtual]
 

This method reads the object state from a CDR representation.

Implements CORBA::Policy.

Definition at line 121 of file RT_Policy_i.cpp.

References priority_model_, and server_priority_.

00122 {
00123   return ((in_cdr >> priority_model_) && (in_cdr >> server_priority_));
00124 }

CORBA::Boolean TAO_PriorityModelPolicy::_tao_encode TAO_OutputCDR out_cdr  )  [virtual]
 

This method writes a CDR representation of the object state.

Implements CORBA::Policy.

Definition at line 111 of file RT_Policy_i.cpp.

References priority_model_, and server_priority_.

00112 {
00113   // Note: the fields are encoded according to
00114   // the order specified in the RTCORBA 1.0 spec (ptc/99-05-03)
00115   // section 4.7.3.
00116 
00117   return ((out_cdr << priority_model_) && (out_cdr << server_priority_));
00118 }

TAO_Policy_Scope TAO_PriorityModelPolicy::_tao_scope void   )  const [virtual]
 

Implements CORBA::Policy.

Definition at line 133 of file RT_Policy_i.cpp.

References TAO_POLICY_ORB_SCOPE, and TAO_POLICY_POA_SCOPE.

00134 {
00135   // Note that this policy is propogated to the client even though
00136   // it is not specified here.  The reason for this is that the
00137   // server priority field is set dynamically depending on the model
00138   // and the servant's priority.  Therefore, it can't be simply
00139   // copied to the list of client exposed policies.
00140   return static_cast<TAO_Policy_Scope> (TAO_POLICY_ORB_SCOPE |
00141                           TAO_POLICY_POA_SCOPE);
00142 }

CORBA::Policy_ptr TAO_PriorityModelPolicy::copy void   ) 
 

Implements CORBA::Policy.

Definition at line 94 of file RT_Policy_i.cpp.

References ACE_NEW_THROW_EX.

00095 {
00096   TAO_PriorityModelPolicy* tmp = 0;
00097   ACE_NEW_THROW_EX (tmp,
00098                     TAO_PriorityModelPolicy (*this),
00099                     CORBA::NO_MEMORY (TAO::VMCID,
00100                                       CORBA::COMPLETED_NO));
00101 
00102   return tmp;
00103 }

CORBA::Policy_ptr TAO_PriorityModelPolicy::create const CORBA::Any &  val  )  [static]
 

Helper method for the implementation of CORBA::ORB::create_policy.

Definition at line 59 of file RT_Policy_i.cpp.

Referenced by TAO_RT_PolicyFactory::create_policy().

00060 {
00061   /*
00062    * @@ The following code should be changed once the OMG spec has
00063    * been fixed such that a RTCORBA::PriorityModelPolicy can be
00064    * created by using the ORB::create_policy interface.
00065    */
00066   throw ::CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
00067 }

void TAO_PriorityModelPolicy::destroy void   ) 
 

Implements CORBA::Policy.

Definition at line 106 of file RT_Policy_i.cpp.

00107 {
00108 }

RTCORBA::PriorityModel TAO_PriorityModelPolicy::get_priority_model void   ) 
 

Accessor for the attribute. This method is used internally by the orb. This is a more efficient (non-virtual, no exception handling) relative of the idl interface implementation below.

Definition at line 70 of file RT_Policy_i.cpp.

References priority_model_.

Referenced by TAO_RT_Protocols_Hooks::add_rt_service_context_hook(), and TAO_RT_Protocols_Hooks::get_selector_hook().

00071 {
00072   return this->priority_model_;
00073 }

CORBA::PolicyType TAO_PriorityModelPolicy::policy_type void   )  [virtual]
 

Implements CORBA::Policy.

Definition at line 88 of file RT_Policy_i.cpp.

00089 {
00090   return RTCORBA::PRIORITY_MODEL_POLICY_TYPE;
00091 }

RTCORBA::PriorityModel TAO_PriorityModelPolicy::priority_model void   ) 
 

Definition at line 76 of file RT_Policy_i.cpp.

References priority_model_.

00077 {
00078   return this->priority_model_;
00079 }

RTCORBA::Priority TAO_PriorityModelPolicy::server_priority void   ) 
 

Definition at line 82 of file RT_Policy_i.cpp.

References server_priority_.

Referenced by TAO_RT_Protocols_Hooks::get_selector_hook().

00083 {
00084   return this->server_priority_;
00085 }


Friends And Related Function Documentation

friend class TAO_RT_PolicyFactory [friend]
 

This constructor is used by TAO_RT_PolicyFactory when decoding policies from tagged components in an IOR.

Definition at line 102 of file RT_Policy_i.h.


Member Data Documentation

RTCORBA::PriorityModel TAO_PriorityModelPolicy::priority_model_ [private]
 

Attributes.

Definition at line 108 of file RT_Policy_i.h.

Referenced by _tao_decode(), _tao_encode(), get_priority_model(), and priority_model().

RTCORBA::Priority TAO_PriorityModelPolicy::server_priority_ [private]
 

Definition at line 109 of file RT_Policy_i.h.

Referenced by _tao_decode(), _tao_encode(), and server_priority().


The documentation for this class was generated from the following files:
Generated on Sun Jan 27 13:34:34 2008 for TAO_RTCORBA by doxygen 1.3.6