TAO::NVList_Argument Class Reference

Class for the argument list of a CORBA::(Server)Request. More...

#include <DII_Arguments.h>

Inheritance diagram for TAO::NVList_Argument:

Inheritance graph
[legend]
Collaboration diagram for TAO::NVList_Argument:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 NVList_Argument (CORBA::NVList_ptr, bool lazy_eval)
virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr)
virtual CORBA::Boolean demarshal (TAO_InputCDR &)
void interceptor_paramlist (Dynamic::ParameterList *)
CORBA::NVList_ptr arg () const

Private Attributes

CORBA::NVList_ptr x_
bool lazy_evaluation_

Detailed Description

Class for the argument list of a CORBA::(Server)Request.

Definition at line 70 of file DII_Arguments.h.


Constructor & Destructor Documentation

ACE_INLINE TAO::NVList_Argument::NVList_Argument CORBA::NVList_ptr  ,
bool  lazy_eval
 

Definition at line 25 of file DII_Arguments.inl.

00026     : x_ (x)
00027       , lazy_evaluation_ (lazy_eval)
00028   {
00029   }


Member Function Documentation

ACE_INLINE CORBA::NVList_ptr TAO::NVList_Argument::arg  )  const
 

Definition at line 33 of file DII_Arguments.inl.

00034   {
00035     return this->x_;
00036   }

CORBA::Boolean TAO::NVList_Argument::demarshal TAO_InputCDR  )  [virtual]
 

Reimplemented from TAO::Argument.

Definition at line 68 of file DII_Arguments.cpp.

00069   {
00070 
00071     try
00072       {
00073         // Now, get all the "return", "out", and "inout" parameters
00074         // from the response message body ... return parameter is
00075         // first, the rest are in the order defined in the IDL spec
00076         // (which is also the order that DII users are required to
00077         // use).
00078 
00079         this->x_->_tao_incoming_cdr (
00080             cdr,
00081             CORBA::ARG_OUT | CORBA::ARG_INOUT,
00082             this->lazy_evaluation_);
00083       }
00084     catch (const ::CORBA::Exception&)
00085       {
00086         return false;
00087       }
00088 
00089     return true;
00090   }

void TAO::NVList_Argument::interceptor_paramlist Dynamic::ParameterList *   ) 
 

Definition at line 93 of file DII_Arguments.cpp.

Referenced by TAO::DII_Deferred_Invocation::arguments(), and TAO::DII_Invocation::arguments().

00094   {
00095     CORBA::ULong const len = this->x_->count ();
00096     lst->length (len);
00097 
00098     for (CORBA::ULong i = 0; i < len; ++i)
00099       {
00100         if (!this->x_->item (i)->value ())
00101           return;
00102 
00103         (*lst)[i].argument.replace (this->x_->item (i)->value ()->impl ());
00104 
00105         switch (this->x_->item (i)->flags ())
00106           {
00107           case CORBA::ARG_IN:
00108             {
00109               (*lst)[i].mode = CORBA::PARAM_IN;
00110               break;
00111             }
00112           case CORBA::ARG_INOUT:
00113             {
00114               (*lst)[i].mode = CORBA::PARAM_INOUT;
00115               break;
00116             }
00117           case CORBA::ARG_OUT:
00118             {
00119               (*lst)[i].mode = CORBA::PARAM_OUT;
00120               break;
00121             }
00122           default:
00123             break;
00124           }
00125       }
00126   }

CORBA::Boolean TAO::NVList_Argument::marshal TAO_OutputCDR cdr  )  [virtual]
 

Reimplemented from TAO::Argument.

Definition at line 53 of file DII_Arguments.cpp.

00054   {
00055     try
00056       {
00057         this->x_->_tao_encode (cdr, CORBA::ARG_IN | CORBA::ARG_INOUT);
00058       }
00059     catch (const ::CORBA::Exception&)
00060       {
00061         return false;
00062       }
00063 
00064     return true;
00065   }


Member Data Documentation

bool TAO::NVList_Argument::lazy_evaluation_ [private]
 

Definition at line 89 of file DII_Arguments.h.

CORBA::NVList_ptr TAO::NVList_Argument::x_ [private]
 

Definition at line 87 of file DII_Arguments.h.


The documentation for this class was generated from the following files:
Generated on Sun Jan 27 13:37:50 2008 for TAO_DynamicInterface by doxygen 1.3.6