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:

[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::PolicyList * | inconsistent_policies (void) const
CORBA::PolicyList * | steal_inconsistent_policies (void)
void | profile (TAO_Profile *pfile)
| Accessors and mutators for profile.
TAO_Profile * | profile (void) const
| Accessors and mutators for profile.
TAO_Stub * | stub (void) const
| Accessor for TAO_Stub.
CORBA::Object * | object (void) const
| Accessor for the target in use.
TAO_Transport * | transport (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::Object * | obj_
| Target object.
TAO_Stub * | stub_
| Stub object for the target object.
TAO_Transport * | transport_
| The transport selected for this invocation.
TAO_Profile * | profile_
| The profile that has been selected for this invocation.
bool | is_released_
| Has the transport been idled?
CORBA::PolicyList * | inconsistent_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:

- Profile_Transport_Resolver.h
- Profile_Transport_Resolver.cpp
- Profile_Transport_Resolver.inl