Go to the documentation of this file.00001
00002
00003
00004
00005 #include "tao/CDR.h"
00006 #include "tao/AnyTypeCode/TypeCode_Traits.h"
00007
00008 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00009
00010 template <typename StringType, typename TypeCodeType>
00011 ACE_INLINE
00012 TAO::TypeCode::Case<StringType, TypeCodeType>::Case (
00013 char const * member_name,
00014 TypeCodeType member_type)
00015 : name_ (member_name)
00016 , type_ (member_type)
00017 {
00018 }
00019
00020 template <typename StringType, typename TypeCodeType>
00021 ACE_INLINE
00022 TAO::TypeCode::Case<StringType, TypeCodeType>::Case (void)
00023 : name_ ()
00024 , type_ ()
00025 {
00026
00027
00028 }
00029
00030 template <typename StringType, typename TypeCodeType>
00031 ACE_INLINE bool
00032 TAO::TypeCode::Case<StringType, TypeCodeType>::marshal (
00033 TAO_OutputCDR & cdr,
00034 CORBA::ULong offset) const
00035 {
00036 return
00037 this->marshal_label (cdr)
00038 && (cdr << TAO_OutputCDR::from_string (
00039 Traits<StringType>::get_string (this->name_), 0))
00040 && TAO::TypeCode::marshal (cdr,
00041 Traits<StringType>::get_typecode (this->type_),
00042 offset + cdr.total_length ());
00043 }
00044
00045 template <typename StringType, typename TypeCodeType>
00046 ACE_INLINE char const *
00047 TAO::TypeCode::Case<StringType, TypeCodeType>::name (void) const
00048 {
00049 return
00050 Traits<StringType>::get_string (this->name_);
00051 }
00052
00053 template <typename StringType, typename TypeCodeType>
00054 ACE_INLINE void
00055 TAO::TypeCode::Case<StringType, TypeCodeType>::name (
00056 char const * the_name)
00057 {
00058 this->name_ = the_name;
00059 }
00060
00061 template <typename StringType, typename TypeCodeType>
00062 ACE_INLINE CORBA::TypeCode_ptr
00063 TAO::TypeCode::Case<StringType, TypeCodeType>::type (void) const
00064 {
00065 return
00066 Traits<StringType>::get_typecode (this->type_);
00067 }
00068
00069 template <typename StringType, typename TypeCodeType>
00070 ACE_INLINE void
00071 TAO::TypeCode::Case<StringType, TypeCodeType>::type (CORBA::TypeCode_ptr tc)
00072 {
00073
00074
00075
00076 this->type_ = CORBA::TypeCode::_duplicate (tc);
00077 }
00078
00079 TAO_END_VERSIONED_NAMESPACE_DECL