TAO_Bind_Dispatcher_Guard Class Reference

#include <Bind_Dispatcher_Guard.h>

Collaboration diagram for TAO_Bind_Dispatcher_Guard:

Collaboration graph
[legend]
List of all members.

Public Types

 UNBIND = 0
 Unbind the dispatcher.
 NO_UNBIND
 Do not unbind dispatcher.
enum  TAO_Bind_Dispatcher_Status { UNBIND = 0, NO_UNBIND }
 State information. More...

Public Member Functions

 TAO_Bind_Dispatcher_Guard (CORBA::ULong request_id, TAO_Reply_Dispatcher *rd, TAO_Transport_Mux_Strategy *tms)
 ~TAO_Bind_Dispatcher_Guard (void)
int unbind_dispatcher (void)
 Returns 0 if succesful and non-zero otherwise.
TAO_Bind_Dispatcher_Status status (void) const
 Get status.
void status (TAO_Bind_Dispatcher_Status status)
 Set status.

Private Attributes

TAO_Bind_Dispatcher_Status status_
CORBA::ULong request_id_
TAO_Reply_Dispatcherrd_
TAO_Transport_Mux_Strategytms_

Detailed Description

Definition at line 27 of file Bind_Dispatcher_Guard.h.


Member Enumeration Documentation

enum TAO_Bind_Dispatcher_Guard::TAO_Bind_Dispatcher_Status

State information.

Enumerator:
UNBIND  Unbind the dispatcher.
NO_UNBIND  Do not unbind dispatcher.

Definition at line 40 of file Bind_Dispatcher_Guard.h.

00041     {
00042       /// Unbind the dispatcher
00043       UNBIND = 0,
00044       /// Do not unbind dispatcher
00045       NO_UNBIND
00046     };


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Bind_Dispatcher_Guard::TAO_Bind_Dispatcher_Guard ( CORBA::ULong  request_id,
TAO_Reply_Dispatcher rd,
TAO_Transport_Mux_Strategy tms 
)

Definition at line 16 of file Bind_Dispatcher_Guard.cpp.

References NO_UNBIND.

00019   : status_(TAO_Bind_Dispatcher_Guard::UNBIND),
00020     request_id_(request_id),
00021     rd_(rd),
00022     tms_(tms)
00023 {
00024   int const retval =
00025     this->tms_->bind_dispatcher (this->request_id_, this->rd_);
00026 
00027   if (retval == -1)
00028     this->status_ = TAO_Bind_Dispatcher_Guard::NO_UNBIND;
00029 }

TAO_Bind_Dispatcher_Guard::~TAO_Bind_Dispatcher_Guard ( void   ) 

Definition at line 31 of file Bind_Dispatcher_Guard.cpp.

References UNBIND.

00032 {
00033   // We try unbinding. If it works it works, else cant do much about
00034   // it..
00035   if (this->status_ == TAO_Bind_Dispatcher_Guard::UNBIND)
00036     (void)this->tms_->unbind_dispatcher (this->request_id_);
00037 }


Member Function Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE void TAO_Bind_Dispatcher_Guard::status ( TAO_Bind_Dispatcher_Status  status  ) 

Set status.

Definition at line 22 of file Bind_Dispatcher_Guard.inl.

References status_.

00023 {
00024   this->status_ = s;
00025 }

ACE_INLINE TAO_Bind_Dispatcher_Guard::TAO_Bind_Dispatcher_Status TAO_Bind_Dispatcher_Guard::status ( void   )  const

Get status.

Definition at line 28 of file Bind_Dispatcher_Guard.inl.

References status_.

00029 {
00030   return this->status_;
00031 }

ACE_INLINE int TAO_Bind_Dispatcher_Guard::unbind_dispatcher ( void   ) 

Returns 0 if succesful and non-zero otherwise.

Definition at line 34 of file Bind_Dispatcher_Guard.inl.

References NO_UNBIND, status_, tms_, and TAO_Transport_Mux_Strategy::unbind_dispatcher().

Referenced by TAO::Synch_Twoway_Invocation::wait_for_reply().

00035 {
00036   int const retval =
00037     this->tms_->unbind_dispatcher (this->request_id_);
00038 
00039   // Already unbound and so do not try again during destruction.
00040   this->status_ =
00041     TAO_Bind_Dispatcher_Guard::NO_UNBIND;
00042 
00043   return retval;
00044 }


Member Data Documentation

TAO_Reply_Dispatcher* TAO_Bind_Dispatcher_Guard::rd_ [private]

Definition at line 57 of file Bind_Dispatcher_Guard.h.

CORBA::ULong TAO_Bind_Dispatcher_Guard::request_id_ [private]

Definition at line 56 of file Bind_Dispatcher_Guard.h.

TAO_Bind_Dispatcher_Status TAO_Bind_Dispatcher_Guard::status_ [private]

Definition at line 55 of file Bind_Dispatcher_Guard.h.

Referenced by status(), and unbind_dispatcher().

TAO_Transport_Mux_Strategy* TAO_Bind_Dispatcher_Guard::tms_ [private]

Definition at line 58 of file Bind_Dispatcher_Guard.h.

Referenced by unbind_dispatcher().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:39:22 2010 for TAO by  doxygen 1.4.7