00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TAO_STRING_TYPECODE_STATIC_H
00017 #define TAO_STRING_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/Null_RefCount_Policy.h"
00028
00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00030
00031 namespace TAO
00032 {
00033 namespace TypeCode
00034 {
00035 template <class RefCountPolicy> class String;
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 template<>
00047 class TAO_AnyTypeCode_Export String<TAO::Null_RefCount_Policy>
00048 : public CORBA::TypeCode,
00049 private TAO::Null_RefCount_Policy
00050 {
00051 public:
00052
00053
00054 String (CORBA::TCKind kind, CORBA::ULong length);
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 virtual bool tao_marshal (TAO_OutputCDR & cdr,
00066 CORBA::ULong offset) const;
00067 virtual void tao_duplicate (void);
00068 virtual void tao_release (void);
00069
00070
00071 protected:
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082 virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc
00083 ) const;
00084 virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc
00085 ) const;
00086 virtual CORBA::TypeCode_ptr get_compact_typecode_i (
00087 void) const;
00088 virtual CORBA::ULong length_i (void) const;
00089
00090 private:
00091
00092
00093
00094 CORBA::ULong const length_;
00095
00096 };
00097
00098 }
00099 }
00100
00101 TAO_END_VERSIONED_NAMESPACE_DECL
00102
00103
00104 #ifdef __ACE_INLINE__
00105 # include "tao/AnyTypeCode/String_TypeCode_Static.inl"
00106 #endif
00107
00108 #include "ace/post.h"
00109
00110 #endif