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::operator-> ( void   )  const [inline]

getter

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

getter

TAO_Transport* TAO::Transport_Selection_Guard::get ( void   )  const [inline]

Getter.

Transport_Selection_Guard& TAO::Transport_Selection_Guard::set ( TAO_Transport t  )  [inline]

Setter.

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

bool TAO::Transport_Selection_Guard::operator! (  )  const [inline, private]


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]

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]

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

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

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

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

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


The documentation for this class was generated from the following files:

Generated on Thu Nov 27 05:13:07 2008 for TAO by  doxygen 1.5.6