00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file DII_Arguments.h 00006 * 00007 * $Id: DII_Arguments.h 78001 2007-04-12 15:14:28Z zhangw $ 00008 * 00009 * @author Jeff Parsons <j.parsons@vanderbilt.edu> 00010 */ 00011 //============================================================================= 00012 00013 #ifndef TAO_DII_ARGUMENTS_H 00014 #define TAO_DII_ARGUMENTS_H 00015 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/Argument.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00025 00026 namespace CORBA 00027 { 00028 class NamedValue; 00029 typedef NamedValue *NamedValue_ptr; 00030 00031 class NVList; 00032 typedef NVList *NVList_ptr; 00033 } 00034 00035 namespace Dynamic 00036 { 00037 class ParameterList; 00038 } 00039 00040 namespace TAO 00041 { 00042 /** 00043 * @class NamedValue_Argument 00044 * 00045 * @brief Class for the return value of a CORBA::(Server)Request. 00046 */ 00047 class NamedValue_Argument : public RetArgument 00048 { 00049 public: 00050 NamedValue_Argument (CORBA::NamedValue_ptr); 00051 00052 virtual CORBA::Boolean demarshal (TAO_InputCDR &); 00053 00054 virtual void interceptor_value (CORBA::Any *any) const; 00055 00056 int byte_order (void) const; 00057 00058 private: 00059 CORBA::NamedValue_ptr x_; 00060 00061 /// Byte order that the Request class will use 00062 int byte_order_; 00063 }; 00064 00065 /** 00066 * @class NVList_Argument 00067 * 00068 * @brief Class for the argument list of a CORBA::(Server)Request. 00069 */ 00070 class NVList_Argument : public InArgument 00071 { 00072 public: 00073 NVList_Argument (CORBA::NVList_ptr, 00074 bool lazy_eval); 00075 00076 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr); 00077 00078 virtual CORBA::Boolean demarshal (TAO_InputCDR &); 00079 00080 // Not an override of a base class method, but a new one that 00081 // deals with the argument list as a whole. 00082 void interceptor_paramlist (Dynamic::ParameterList *); 00083 00084 CORBA::NVList_ptr arg () const; 00085 00086 private: 00087 CORBA::NVList_ptr x_; 00088 00089 bool lazy_evaluation_; 00090 }; 00091 } 00092 00093 TAO_END_VERSIONED_NAMESPACE_DECL 00094 00095 #if defined (__ACE_INLINE__) 00096 # include "tao/DynamicInterface/DII_Arguments.inl" 00097 #endif /* __ACE_INLINE__ */ 00098 00099 #include /**/ "ace/post.h" 00100 00101 #endif /* TAO_DII_ARGUMENTS_H */