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

static 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.

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

TAO_PriorityModelPolicy::TAO_PriorityModelPolicy ( const TAO_PriorityModelPolicy rhs  ) 

Copy constructor.

Definition at line 36 of file RT_Policy_i.cpp.

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

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

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

Definition at line 52 of file RT_Policy_i.cpp.

00053 {
00054 }

TAO_PriorityModelPolicy::TAO_PriorityModelPolicy ( void   )  [protected]

Definition at line 46 of file RT_Policy_i.cpp.

00047   : priority_model_ (RTCORBA::SERVER_DECLARED),
00048     server_priority_ (0)
00049 {
00050 }


Member Function Documentation

TAO_Cached_Policy_Type TAO_PriorityModelPolicy::_tao_cached_type ( void   )  const

Definition at line 125 of file RT_Policy_i.cpp.

References TAO_CACHED_POLICY_PRIORITY_MODEL.

00126 {
00127   return TAO_CACHED_POLICY_PRIORITY_MODEL;
00128 }

CORBA::Boolean TAO_PriorityModelPolicy::_tao_decode ( TAO_InputCDR in_cdr  ) 

This method reads the object state from a CDR representation.

Definition at line 119 of file RT_Policy_i.cpp.

References priority_model_, and server_priority_.

00120 {
00121   return ((in_cdr >> priority_model_) && (in_cdr >> server_priority_));
00122 }

CORBA::Boolean TAO_PriorityModelPolicy::_tao_encode ( TAO_OutputCDR out_cdr  ) 

This method writes a CDR representation of the object state.

Definition at line 109 of file RT_Policy_i.cpp.

References priority_model_, and server_priority_.

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

TAO_Policy_Scope TAO_PriorityModelPolicy::_tao_scope ( void   )  const

Definition at line 131 of file RT_Policy_i.cpp.

References TAO_POLICY_ORB_SCOPE, and TAO_POLICY_POA_SCOPE.

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

CORBA::Policy_ptr TAO_PriorityModelPolicy::copy ( void   ) 

Definition at line 92 of file RT_Policy_i.cpp.

References ACE_NEW_THROW_EX, CORBA::COMPLETED_NO, and TAO::VMCID.

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

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

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

Definition at line 57 of file RT_Policy_i.cpp.

References CORBA::BAD_POLICY_VALUE.

Referenced by TAO_RT_PolicyFactory::create_policy().

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

void TAO_PriorityModelPolicy::destroy ( void   ) 

Definition at line 104 of file RT_Policy_i.cpp.

00105 {
00106 }

RTCORBA::PriorityModel TAO_PriorityModelPolicy::get_priority_model ( void   ) 

Accessor for the <priority_model_> 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 <priority_model> below.

Definition at line 68 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().

00069 {
00070   return this->priority_model_;
00071 }

CORBA::PolicyType TAO_PriorityModelPolicy::policy_type ( void   ) 

Definition at line 86 of file RT_Policy_i.cpp.

00087 {
00088   return RTCORBA::PRIORITY_MODEL_POLICY_TYPE;
00089 }

RTCORBA::PriorityModel TAO_PriorityModelPolicy::priority_model ( void   ) 

Definition at line 74 of file RT_Policy_i.cpp.

References priority_model_.

00075 {
00076   return this->priority_model_;
00077 }

RTCORBA::Priority TAO_PriorityModelPolicy::server_priority ( void   ) 

Definition at line 80 of file RT_Policy_i.cpp.

References server_priority_.

Referenced by TAO_RT_Protocols_Hooks::get_selector_hook().

00081 {
00082   return this->server_priority_;
00083 }


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 Tue Feb 2 17:42:58 2010 for TAO_RTCORBA by  doxygen 1.4.7