Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO::Profile_Transport_Resolver Class Reference

Chooses the profile and a transport for a target object on which an invocation can be made. More...

#include <Profile_Transport_Resolver.h>

Collaboration diagram for TAO::Profile_Transport_Resolver:

Collaboration graph
[legend]
List of all members.

Public Methods

 Profile_Transport_Resolver (CORBA::Object *ep, TAO_Stub *)
 ~Profile_Transport_Resolver (void)
void resolve (ACE_Time_Value *val ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
 Method where the bunch of the action takes place.

void transport_released (void) const
bool try_connect (TAO_Transport_Descriptor_Interface *desc, ACE_Time_Value *val ACE_ENV_ARG_DECL)
void init_inconsistent_policies (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
CORBA::PolicyListinconsistent_policies (void) const
CORBA::PolicyListsteal_inconsistent_policies (void)
void profile (TAO_Profile *pfile)
 Accessors and mutators for profile.

TAO_Profileprofile (void) const
 Accessors and mutators for profile.

TAO_Stubstub (void) const
 Accessor for TAO_Stub.

CORBA::Objectobject (void) const
 Accessor for the target in use.

TAO_Transporttransport (void) const
 Accessor for the transport reserved for this invocation.


Private Methods

bool get_connection_timeout (ACE_Time_Value &max_wait_time)

Private Attributes

CORBA::Objectobj_
 Target object.

TAO_Stubstub_
 Stub object for the target object.

TAO_Transporttransport_
 The transport selected for this invocation.

TAO_Profileprofile_
 The profile that has been selected for this invocation.

bool is_released_
 Has the transport been idled?

CORBA::PolicyListinconsistent_policies_
 List of inconsistent policies.


Detailed Description

Chooses the profile and a transport for a target object on which an invocation can be made.

A target object is represented by multiple profiles, which theoretically provides multiple paths to the same target object. This class helps in choosing the right profile, and pick a transport from cache (or create a new transport if needed) that represents the profile.


Constructor & Destructor Documentation

ACE_INLINE TAO::Profile_Transport_Resolver::Profile_Transport_Resolver CORBA::Object   ep,
TAO_Stub  
 

TAO::Profile_Transport_Resolver::~Profile_Transport_Resolver void   
 


Member Function Documentation

bool TAO::Profile_Transport_Resolver::get_connection_timeout ACE_Time_Value   max_wait_time [private]
 

Helper method to access get the connection timeout from the ORB.

ACE_INLINE CORBA::PolicyList * TAO::Profile_Transport_Resolver::inconsistent_policies void    const
 

void TAO::Profile_Transport_Resolver::init_inconsistent_policies ACE_ENV_SINGLE_ARG_DECL    throw (CORBA::SystemException)
 

Intialize the inconsistent policy list that this object has cached.

ACE_INLINE CORBA::Object_ptr TAO::Profile_Transport_Resolver::object void    const
 

Accessor for the target in use.

ACE_INLINE TAO_Profile * TAO::Profile_Transport_Resolver::profile void    const
 

Accessors and mutators for profile.

Accessors and muttators for this class. The following methods are used by the clients of this class to access.

void TAO::Profile_Transport_Resolver::profile TAO_Profile   pfile
 

Accessors and mutators for profile.

Accessors and muttators for this class. The following methods are used by the clients of this class to access.

void TAO::Profile_Transport_Resolver::resolve ACE_Time_Value *val    ACE_ENV_ARG_DECL throw (CORBA::SystemException)
 

Method where the bunch of the action takes place.

This is the entry point from the TAO::Invocation_Adapter class. This method accesses the endpoint selector factory from the ORB_Core to decide on the strategy to be used for selecting the profile.

ACE_INLINE CORBA::PolicyList * TAO::Profile_Transport_Resolver::steal_inconsistent_policies void   
 

ACE_INLINE TAO_Stub * TAO::Profile_Transport_Resolver::stub void    const
 

Accessor for TAO_Stub.

ACE_INLINE TAO_Transport * TAO::Profile_Transport_Resolver::transport void    const
 

Accessor for the transport reserved for this invocation.

ACE_INLINE void TAO::Profile_Transport_Resolver::transport_released void    const
 

Signal to let the resolver know that the transport has been released back to the cache.

bool TAO::Profile_Transport_Resolver::try_connect TAO_Transport_Descriptor_Interface   desc,
ACE_Time_Value *val    ACE_ENV_ARG_DECL
 

This is a callback method used by the endpoint selectors, to delegate the responsibility of reserving a transport from the connection cache for this invocation.


Member Data Documentation

CORBA::PolicyList* TAO::Profile_Transport_Resolver::inconsistent_policies_ [private]
 

List of inconsistent policies.

If current effective policies cause the invocation to raise CORBA::INV_POLICY exception, the conflicting/problematic policies are stored in this list. This is used by

Parameters:
Object::_validate_connection  method to inform clients about causes of invocation failure.

Conflicting policies are only stored in this list if

init_inconsistent_policies  method has been called prior to the beginning of invocation. This saves extra work of conflicting policies 'logging' when it's not needed.
@NOTE: We don't use _var with a reason. Using _var would involve including the header file for atleast Policy_ForwardC.h, and that is what we precisely want to avoid.

bool TAO::Profile_Transport_Resolver::is_released_ [private]
 

Has the transport been idled?

CORBA::Object* TAO::Profile_Transport_Resolver::obj_ [private]
 

Target object.

TAO_Profile* TAO::Profile_Transport_Resolver::profile_ [private]
 

The profile that has been selected for this invocation.

TAO_Stub* TAO::Profile_Transport_Resolver::stub_ [private]
 

Stub object for the target object.

TAO_Transport* TAO::Profile_Transport_Resolver::transport_ [private]
 

The transport selected for this invocation.


The documentation for this class was generated from the following files:
Generated on Wed Jan 14 23:41:06 2004 for TAO by doxygen1.2.18