Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TAO_VECTOR_ARGUMENT_T_H
00014 #define TAO_VECTOR_ARGUMENT_T_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
00023
00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00025
00026 namespace TAO
00027 {
00028
00029
00030
00031
00032
00033
00034
00035 template<typename S,
00036 template <typename> class Insert_Policy>
00037 class In_Vector_Argument_T : public InArgument
00038 {
00039 public:
00040 In_Vector_Argument_T (S const & x);
00041
00042 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00043 #if TAO_HAS_INTERCEPTORS == 1
00044 virtual void interceptor_value (CORBA::Any *any) const;
00045 #endif
00046 S const & arg (void) const;
00047
00048 protected:
00049 S const & x_;
00050 };
00051
00052
00053
00054
00055
00056
00057
00058
00059 template<typename S,
00060 template <typename> class Insert_Policy>
00061 class In_Vector_Clonable_Argument_T :
00062 public In_Vector_Argument_T<S, Insert_Policy>
00063 {
00064 public:
00065 In_Vector_Clonable_Argument_T (S const & x);
00066 virtual ~In_Vector_Clonable_Argument_T (void);
00067
00068 virtual Argument* clone (void);
00069
00070 private:
00071 bool is_clone_;
00072 };
00073
00074
00075
00076
00077
00078
00079
00080
00081 template<typename S,
00082 template <typename> class Insert_Policy>
00083 class Inout_Vector_Argument_T : public InoutArgument
00084 {
00085 public:
00086 Inout_Vector_Argument_T (S & x);
00087
00088 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00089 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00090 #if TAO_HAS_INTERCEPTORS == 1
00091 virtual void interceptor_value (CORBA::Any *any) const;
00092 #endif
00093 S & arg (void);
00094
00095 private:
00096 S & x_;
00097 };
00098
00099
00100
00101
00102
00103
00104
00105
00106 template<typename S,
00107 template <typename> class Insert_Policy>
00108 class Out_Vector_Argument_T : public OutArgument
00109 {
00110 public:
00111 Out_Vector_Argument_T (S & x);
00112
00113 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00114 #if TAO_HAS_INTERCEPTORS == 1
00115 virtual void interceptor_value (CORBA::Any *any) const;
00116 #endif
00117 S & arg (void);
00118
00119 private:
00120 S & x_;
00121 };
00122
00123
00124
00125
00126
00127
00128
00129 template<typename S,
00130 template <typename> class Insert_Policy>
00131 class Ret_Vector_Argument_T : public RetArgument
00132 {
00133 public:
00134 Ret_Vector_Argument_T (void);
00135
00136 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00137 #if TAO_HAS_INTERCEPTORS == 1
00138 virtual void interceptor_value (CORBA::Any *any) const;
00139 #endif
00140 S & arg (void);
00141
00142 S excp (void);
00143 S retn (void);
00144
00145 protected:
00146 S x_;
00147 };
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158 template<typename T,
00159 template <typename> class Insert_Policy>
00160 struct Vector_Arg_Traits_T
00161 {
00162 typedef T ret_type;
00163 typedef T const & in_type;
00164 typedef T & inout_type;
00165 typedef T & out_type;
00166
00167 typedef In_Vector_Argument_T<T, Insert_Policy> in_arg_val;
00168 typedef In_Vector_Clonable_Argument_T<T, Insert_Policy>
00169 in_clonable_arg_val;
00170 typedef Inout_Vector_Argument_T<T, Insert_Policy> inout_arg_val;
00171 typedef Out_Vector_Argument_T<T, Insert_Policy> out_arg_val;
00172 typedef Ret_Vector_Argument_T<T, Insert_Policy> ret_val;
00173 };
00174 }
00175
00176 TAO_END_VERSIONED_NAMESPACE_DECL
00177
00178 #if defined (__ACE_INLINE__)
00179 #include "tao/Vector_Argument_T.inl"
00180 #endif
00181
00182 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00183 #include "tao/Vector_Argument_T.cpp"
00184 #endif
00185
00186 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00187 #pragma implementation ("Vector_Argument_T.cpp")
00188 #endif
00189
00190 #include "ace/post.h"
00191
00192 #endif