TAO  2.0.8
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends
TAO::Transport_Selection_Guard Class Reference

Used by the Transport Current feature to keep track of which Transport is currently active. More...

#include <Transport_Selection_Guard.h>

Collaboration diagram for TAO::Transport_Selection_Guard:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Transport_Selection_Guard (TAO_Transport *t)
 Ctor.
 ~Transport_Selection_Guard (void)
 Dtor.
TAO_Transportoperator-> (void) const
 getter
TAO_Transportoperator* (void) const
 getter
TAO_Transportget (void) const
 Getter.
Transport_Selection_Guardset (TAO_Transport *t)
 Setter.
Transport_Selection_Guardoperator= (const Transport_Selection_Guard &rhs)

Static Public Member Functions

static Transport_Selection_Guardcurrent (TAO_ORB_Core *core, size_t tss_slot_id)

Private Member Functions

 Transport_Selection_Guard (const Transport_Selection_Guard &)
bool operator! () const

Private Attributes

Transport_Selection_Guardprev_
TAO_Transportcurr_
 The "real" Transport, i.e. the one selected at present.

Friends

bool operator== (const Transport_Selection_Guard &lhs, const TAO_Transport *rhs)
bool operator== (const TAO_Transport *lhs, const Transport_Selection_Guard &rhs)
bool operator!= (const Transport_Selection_Guard &lhs, const TAO_Transport *rhs)
bool operator!= (const TAO_Transport *lhs, const Transport_Selection_Guard &rhs)
template<class U >
bool operator== (const Transport_Selection_Guard &lhs, const U *rhs)
template<class U >
bool operator== (const U *lhs, const Transport_Selection_Guard &rhs)
template<class U >
bool operator!= (const Transport_Selection_Guard &lhs, const U *rhs)
template<class U >
bool operator!= (const U *lhs, const Transport_Selection_Guard &rhs)

Detailed Description

Used by the Transport Current feature to keep track of which Transport is currently active.

Whenever a Transport is selected: during an upcall, or prior to a client invocation an instance of this class is created [on the stack, or as a member of another class] to keep track of the said Transport. The class implements the RAII idiom, which makes it possible to build a stack of these instances as the thread is doing nested upcalls or client invocations.

It utilizes TAO_TSS_Resources::tsg_ member pointer to keep track of stack-linked Transport_Selection_Guard instances.

If the Transport Current feature is disabled most methods are no-ops and add no overhead on the critical path.

See Also:

https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/TAO/docs/transport_current/index.html?revision=HEAD


Constructor & Destructor Documentation

TAO::Transport_Selection_Guard::Transport_Selection_Guard ( TAO_Transport t)

Ctor.

TAO::Transport_Selection_Guard::~Transport_Selection_Guard ( void  )

Dtor.

TAO::Transport_Selection_Guard::Transport_Selection_Guard ( const Transport_Selection_Guard ) [private]

Member Function Documentation

Transport_Selection_Guard * TAO::Transport_Selection_Guard::current ( TAO_ORB_Core core,
size_t  tss_slot_id 
) [static]
TAO_Transport* TAO::Transport_Selection_Guard::get ( void  ) const [inline]

Getter.

bool TAO::Transport_Selection_Guard::operator! ( ) const [inline, private]
TAO_Transport& TAO::Transport_Selection_Guard::operator* ( void  ) const [inline]

getter

TAO_Transport* TAO::Transport_Selection_Guard::operator-> ( void  ) const [inline]

getter

Transport_Selection_Guard& TAO::Transport_Selection_Guard::operator= ( const Transport_Selection_Guard rhs) [inline]
Transport_Selection_Guard& TAO::Transport_Selection_Guard::set ( TAO_Transport t) [inline]

Setter.


Friends And Related Function Documentation

bool operator!= ( const Transport_Selection_Guard lhs,
const TAO_Transport rhs 
) [friend]
bool operator!= ( const TAO_Transport lhs,
const Transport_Selection_Guard rhs 
) [friend]
template<class U >
bool operator!= ( const Transport_Selection_Guard lhs,
const U *  rhs 
) [friend]
template<class U >
bool operator!= ( const U *  lhs,
const Transport_Selection_Guard rhs 
) [friend]
bool operator== ( const Transport_Selection_Guard lhs,
const TAO_Transport rhs 
) [friend]
bool operator== ( const TAO_Transport lhs,
const Transport_Selection_Guard rhs 
) [friend]
template<class U >
bool operator== ( const Transport_Selection_Guard lhs,
const U *  rhs 
) [friend]
template<class U >
bool operator== ( const U *  lhs,
const Transport_Selection_Guard rhs 
) [friend]

Member Data Documentation

TAO_Transport* TAO::Transport_Selection_Guard::curr_ [private]

The "real" Transport, i.e. the one selected at present.

Transport_Selection_Guard* TAO::Transport_Selection_Guard::prev_ [private]

This is pointing to the guard that was active prior to instantiating us.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines