TAO  2.3.3
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
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]

Public Member Functions

 Transport_Selection_Guard (TAO_Transport *t)
 Ctor. More...
 
 ~Transport_Selection_Guard (void)
 Dtor. More...
 
TAO_Transportoperator-> (void) const
 getter More...
 
TAO_Transportoperator* (void) const
 getter More...
 
TAO_Transportget (void) const
 Getter. More...
 
Transport_Selection_Guardset (TAO_Transport *t)
 Setter. More...
 
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. More...
 

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:

http://htmlpreview.github.com/?https://github.com/DOCGroup/ATCD/blob/master/TAO/docs/transport_current/index.html

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
inlineprivate
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: