00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Basic_SArguments.h 00006 * 00007 * $Id: Basic_SArguments.h 73268 2006-06-27 06:23:42Z jwillemsen $ 00008 * 00009 * @authors Jeff Parsons and Carlos O'Ryan 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_BASIC_SARGUMENTS_H 00015 #define TAO_BASIC_SARGUMENTS_H 00016 00017 #include /**/ "ace/pre.h" 00018 00019 #include "tao/PortableServer/portableserver_export.h" 00020 00021 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00022 # pragma once 00023 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00024 00025 #include "tao/PortableServer/Basic_SArgument_T.h" 00026 #include "tao/PortableServer/SArg_Traits_T.h" 00027 00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00029 00030 namespace TAO 00031 { 00032 /** 00033 * 00034 * @brief Specialization for void return type. 00035 * 00036 */ 00037 template<> 00038 class TAO_PortableServer_Export SArg_Traits<void> 00039 { 00040 public: 00041 00042 typedef void ret_type; 00043 typedef RetArgument ret_val; 00044 00045 }; 00046 00047 /** 00048 * 00049 * @brief Specializations for basic skeleton arg types, 00050 * except (w)char/boolean/octet. 00051 * 00052 */ 00053 00054 template<> 00055 class TAO_PortableServer_Export SArg_Traits<CORBA::Short> 00056 : public Basic_SArg_Traits_T<CORBA::Short, TAO::Any_Insert_Policy_Stream <CORBA::Short> > 00057 { 00058 }; 00059 00060 template<> 00061 class TAO_PortableServer_Export SArg_Traits<CORBA::Long> 00062 : public Basic_SArg_Traits_T<CORBA::Long, TAO::Any_Insert_Policy_Stream <CORBA::Long> > 00063 { 00064 }; 00065 00066 template<> 00067 class TAO_PortableServer_Export SArg_Traits<CORBA::UShort> 00068 : public Basic_SArg_Traits_T<CORBA::UShort, TAO::Any_Insert_Policy_Stream <CORBA::UShort> > 00069 { 00070 }; 00071 00072 template<> 00073 class TAO_PortableServer_Export SArg_Traits<CORBA::ULong> 00074 : public Basic_SArg_Traits_T<CORBA::ULong, TAO::Any_Insert_Policy_Stream <CORBA::ULong> > 00075 { 00076 }; 00077 00078 template<> 00079 class TAO_PortableServer_Export SArg_Traits<CORBA::Float> 00080 : public Basic_SArg_Traits_T<CORBA::Float, TAO::Any_Insert_Policy_Stream <CORBA::Float> > 00081 { 00082 }; 00083 00084 template<> 00085 class TAO_PortableServer_Export SArg_Traits<CORBA::Double> 00086 : public Basic_SArg_Traits_T<CORBA::Double, TAO::Any_Insert_Policy_Stream <CORBA::Double> > 00087 { 00088 }; 00089 00090 template<> 00091 class TAO_PortableServer_Export SArg_Traits<CORBA::LongLong> 00092 : public Basic_SArg_Traits_T<CORBA::LongLong, TAO::Any_Insert_Policy_Stream <CORBA::LongLong> > 00093 { 00094 }; 00095 00096 template<> 00097 class TAO_PortableServer_Export SArg_Traits<CORBA::ULongLong> 00098 : public Basic_SArg_Traits_T<CORBA::ULongLong, TAO::Any_Insert_Policy_Stream <CORBA::ULongLong> > 00099 { 00100 }; 00101 00102 template<> 00103 class TAO_PortableServer_Export SArg_Traits<CORBA::LongDouble> 00104 : public Basic_SArg_Traits_T<CORBA::LongDouble, TAO::Any_Insert_Policy_Stream <CORBA::LongDouble> > 00105 { 00106 }; 00107 00108 } 00109 00110 TAO_END_VERSIONED_NAMESPACE_DECL 00111 00112 #include /**/ "ace/post.h" 00113 00114 #endif /* TAO_BASIC_SARGUMENTS_H */