UB_String_SArgument_T.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    UB_String_SArgument_T.h
00006  *
00007  *  $Id: UB_String_SArgument_T.h 69198 2005-11-04 09:26:56Z ossama $
00008  *
00009  *  @authors Jeff Parsons, Carlos O'Ryan and Ossama Othman
00010  */
00011 //=============================================================================
00012 
00013 #ifndef TAO_UB_STRING_SARGUMENT_T_H
00014 #define TAO_UB_STRING_SARGUMENT_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 /* ACE_LACKS_PRAGMA_ONCE */
00023 
00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00025 
00026 namespace TAO
00027 {
00028   /**
00029    * @class In_UB_String_SArgument_T
00030    *
00031    * @brief Template class for IN skeleton UB (w)string argument.
00032    *
00033    */
00034   template<typename S, typename S_var>
00035   class In_UB_String_SArgument_T : public InArgument
00036   {
00037   public:
00038     In_UB_String_SArgument_T (void);
00039 
00040     virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00041 #if TAO_HAS_INTERCEPTORS == 1
00042     virtual void interceptor_value (CORBA::Any *any) const;
00043 #endif /* TAO_HAS_INTERCEPTORS == 1 */
00044     S const * arg (void) const;
00045 
00046   private:
00047     S_var x_;
00048   };
00049 
00050   /**
00051    * @class Inout_UB_String_SArgument_T
00052    *
00053    * @brief Template class for INOUT skeleton UB (w)string argument.
00054    *
00055    */
00056   template<typename S, typename S_var>
00057   class Inout_UB_String_SArgument_T : public InoutArgument
00058   {
00059   public:
00060     Inout_UB_String_SArgument_T (void);
00061 
00062     virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00063     virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00064 #if TAO_HAS_INTERCEPTORS == 1
00065     virtual void interceptor_value (CORBA::Any *any) const;
00066 #endif /* TAO_HAS_INTERCEPTORS == 1 */
00067     S *& arg (void);
00068 
00069   private:
00070     S_var x_;
00071   };
00072 
00073   /**
00074    * @class Out_UB_String_SArgument_T
00075    *
00076    * @brief Template class for INOUT skeleton UB (w)string argument.
00077    *
00078    */
00079   template<typename S, typename S_var>
00080   class Out_UB_String_SArgument_T : public OutArgument
00081   {
00082   public:
00083     Out_UB_String_SArgument_T (void);
00084 
00085     virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00086 #if TAO_HAS_INTERCEPTORS == 1
00087     virtual void interceptor_value (CORBA::Any *any) const;
00088 #endif /* TAO_HAS_INTERCEPTORS == 1 */
00089     S *& arg (void);
00090 
00091   private:
00092     S_var x_;
00093   };
00094 
00095   /**
00096    * @class Ret_UB_String_SArgument_T
00097    *
00098    * @brief Template class for return skeleton value of UB (w)string.
00099    *
00100    */
00101   template<typename S, typename S_var>
00102   class Ret_UB_String_SArgument_T : public RetArgument
00103   {
00104   public:
00105     Ret_UB_String_SArgument_T (void);
00106 
00107     virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00108 #if TAO_HAS_INTERCEPTORS == 1
00109     virtual void interceptor_value (CORBA::Any *any) const;
00110 #endif /* TAO_HAS_INTERCEPTORS == 1 */
00111     S *& arg (void);
00112 
00113   private:
00114     S_var x_;
00115   };
00116 
00117   /**
00118    * @struct UB_String_SArg_Traits_T
00119    *
00120    * @brief Template class for argument traits of unbounded (w)strings.
00121    *
00122    */
00123   template<typename T, typename T_var, typename T_out>
00124   struct UB_String_SArg_Traits_T
00125   {
00126     typedef T *                                         ret_type;
00127     typedef const T *                                   in_type;
00128     typedef T *&                                        inout_type;
00129     typedef T_out                                       out_type;
00130 
00131     typedef In_UB_String_SArgument_T<T,T_var>           in_arg_val;
00132     typedef Inout_UB_String_SArgument_T<T,T_var>        inout_arg_val;
00133     typedef Out_UB_String_SArgument_T<T,T_var>          out_arg_val;
00134     typedef Ret_UB_String_SArgument_T<T,T_var>          ret_val;
00135 
00136     // Typedefs corresponding to return value of arg() method in both
00137     // the client and server side argument class templates.
00138     typedef in_type                                     in_arg_type;
00139     typedef inout_type                                  inout_arg_type;
00140     typedef inout_type                                  out_arg_type;
00141     typedef inout_type                                  ret_arg_type;
00142 
00143   };
00144 }
00145 
00146 TAO_END_VERSIONED_NAMESPACE_DECL
00147 
00148 #if defined (__ACE_INLINE__)
00149 #include "tao/PortableServer/UB_String_SArgument_T.inl"
00150 #endif /* __ACE_INLINE__ */
00151 
00152 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00153 #include "tao/PortableServer/UB_String_SArgument_T.cpp"
00154 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00155 
00156 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00157 #pragma implementation ("UB_String_SArgument_T.cpp")
00158 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
00159 
00160 #include /**/ "ace/post.h"
00161 
00162 #endif /* TAO_UB_STRING_SARGUMENT_T_H */

Generated on Sun Jan 27 13:23:44 2008 for TAO_PortableServer by doxygen 1.3.6