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

enum  { 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.

int status (void) const
 Get status.

void status (int status)
 Set status.


Private Attributes

int status_
CORBA::ULong request_id_
TAO_Reply_Dispatcherrd_
TAO_Transport_Mux_Strategytms_

Member Enumeration Documentation

anonymous enum
 

State information.

Enumeration values:
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 TAO_Transport_Mux_Strategy::bind_dispatcher(), NO_UNBIND, and tms_.

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

TAO_Bind_Dispatcher_Guard::~TAO_Bind_Dispatcher_Guard void   ) 
 

Definition at line 34 of file Bind_Dispatcher_Guard.cpp.

References tms_, and TAO_Transport_Mux_Strategy::unbind_dispatcher().

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


Member Function Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE void TAO_Bind_Dispatcher_Guard::status int  status  ) 
 

Set status.

Definition at line 22 of file Bind_Dispatcher_Guard.i.

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

ACE_INLINE int TAO_Bind_Dispatcher_Guard::status void   )  const
 

Get status.

Definition at line 28 of file Bind_Dispatcher_Guard.i.

Referenced by TAO::LocateRequest_Invocation::invoke(), and TAO::Synch_Twoway_Invocation::remote_twoway().

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.i.

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

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.

int TAO_Bind_Dispatcher_Guard::status_ [private]
 

Definition at line 55 of file Bind_Dispatcher_Guard.h.

TAO_Transport_Mux_Strategy* TAO_Bind_Dispatcher_Guard::tms_ [private]
 

Definition at line 58 of file Bind_Dispatcher_Guard.h.

Referenced by TAO_Bind_Dispatcher_Guard(), unbind_dispatcher(), and ~TAO_Bind_Dispatcher_Guard().


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 12:12:24 2006 for TAO by doxygen 1.3.6