Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TAO_VALUE_TYPECODE_STATIC_H
00017 #define TAO_VALUE_TYPECODE_STATIC_H
00018
00019 #include "ace/pre.h"
00020
00021 #include "tao/AnyTypeCode/TypeCode.h"
00022
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif
00026
00027 #include "tao/AnyTypeCode/TypeCode_Base_Attributes.h"
00028 #include "tao/AnyTypeCode/ValueModifierC.h"
00029 #include "tao/AnyTypeCode/VisibilityC.h"
00030 #include "tao/AnyTypeCode/Null_RefCount_Policy.h"
00031
00032 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00033
00034 namespace TAO
00035 {
00036 namespace TypeCode
00037 {
00038 template<typename StringType, typename TypeCodeType> struct Value_Field;
00039 template <typename StringType,
00040 typename TypeCodeType,
00041 class FieldArrayType,
00042 class RefCountPolicy> class Value;
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 template<>
00054 class TAO_AnyTypeCode_Export Value<char const *,
00055 CORBA::TypeCode_ptr const *,
00056 Value_Field<char const *,
00057 CORBA::TypeCode_ptr const *> const *,
00058 TAO::Null_RefCount_Policy>
00059 : public CORBA::TypeCode,
00060 private TAO::Null_RefCount_Policy
00061 {
00062 public:
00063
00064
00065 Value (CORBA::TCKind kind,
00066 char const * id,
00067 char const * name,
00068 CORBA::ValueModifier modifier,
00069 CORBA::TypeCode_ptr const * concrete_base,
00070 Value_Field<char const *,
00071 CORBA::TypeCode_ptr const *> const * fields,
00072 CORBA::ULong nfields);
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083 virtual bool tao_marshal (TAO_OutputCDR & cdr, CORBA::ULong offset) const;
00084 virtual void tao_duplicate (void);
00085 virtual void tao_release (void);
00086
00087
00088 protected:
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const;
00100 virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const;
00101 virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const;
00102 virtual char const * id_i (void) const;
00103 virtual char const * name_i (void) const;
00104 virtual CORBA::ULong member_count_i (void) const;
00105 virtual char const * member_name_i (CORBA::ULong index) const;
00106 virtual CORBA::TypeCode_ptr member_type_i (CORBA::ULong index) const;
00107 virtual CORBA::Visibility member_visibility_i (CORBA::ULong index) const;
00108 virtual CORBA::ValueModifier type_modifier_i (void) const;
00109 virtual CORBA::TypeCode_ptr concrete_base_type_i (void) const;
00110
00111
00112 private:
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128 Base_Attributes<char const *> const base_attributes_;
00129
00130
00131
00132 CORBA::ValueModifier const type_modifier_;
00133
00134
00135
00136 CORBA::TypeCode_ptr const * const concrete_base_;
00137
00138
00139 CORBA::ULong const nfields_;
00140
00141
00142
00143 Value_Field<char const *,
00144 CORBA::TypeCode_ptr const *> const * const fields_;
00145
00146
00147
00148 };
00149
00150 }
00151 }
00152
00153 TAO_END_VERSIONED_NAMESPACE_DECL
00154
00155 #ifdef __ACE_INLINE__
00156 # include "tao/AnyTypeCode/Value_TypeCode_Static.inl"
00157 #endif
00158
00159 #include "ace/post.h"
00160
00161 #endif