Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class 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
List of all members.

Public Member Functions

 Profile_Transport_Resolver (CORBA::Object *p, TAO_Stub *stub, bool block=true)
 ~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)
 Mutator for profile.
TAO_Profileprofile (void) const
 Accessor 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.
bool blocked (void) const

Private Member Functions

bool get_connection_timeout (ACE_Time_Value &max_wait_time)

Private Attributes

 Target object.
 Stub object for the target object.
 The transport selected for this invocation.
 The profile that has been selected for this invocation.
 List of inconsistent policies.
bool is_released_
 Has the transport been idle?
bool const blocked_
 Should we block while trying to make a connection.

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 p,
TAO_Stub stub,
bool  block = true


With block we tell whether this resolved should always deliver a connection by blocking or unblock before the connection is completely established. Please note that this has *nothing* to do with the synchronous or asynch connect strategy used for making connections. This is a local flag used by the clients of this to dictate some local behavior.

TAO::Profile_Transport_Resolver::~Profile_Transport_Resolver void   ) 

Member Function Documentation

ACE_INLINE bool TAO::Profile_Transport_Resolver::blocked void   )  const

Accessor to indicate whether we should deliver a connection blocking for completed connections

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)

Initialize 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

Accessor for profile.

void TAO::Profile_Transport_Resolver::profile TAO_Profile pfile  ) 

Mutator for profile.

Accessors and mutators for this class. The following methods are used by the clients of this class to access strategies and other internal workings.

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

bool const TAO::Profile_Transport_Resolver::blocked_ [private]

Should we block while trying to make a connection.

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

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.
We don't use _var with a reason. Using _var would involve including the header file for at least Policy_ForwardC.h, and that is what we precisely want to avoid.

bool TAO::Profile_Transport_Resolver::is_released_ [mutable, private]

Has the transport been idle?

CORBA::Object* TAO::Profile_Transport_Resolver::obj_ [mutable, 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 Thu Feb 10 20:43:59 2005 for TAO by  doxygen