CORBA::TypeCode
implementation for OMG IDL string types.
More...
#include <String_TypeCode.h>
Inheritance diagram for TAO::TypeCode::String< RefCountPolicy >:
@c TAO CORBA::TypeCode Template Methods | |
CORBA::TypeCode template methods specific to tk_string TypeCodes .
| |
virtual CORBA::Boolean | equal_i (CORBA::TypeCode_ptr tc) const |
virtual CORBA::Boolean | equivalent_i (CORBA::TypeCode_ptr tc) const |
virtual CORBA::TypeCode_ptr | get_compact_typecode_i (void) const |
virtual CORBA::ULong | length_i (void) const |
CORBA::ULong const | length_ |
Public Member Functions | |
String (CORBA::TCKind kind, CORBA::ULong length) | |
Constructor. | |
TAO-specific @c CORBA::TypeCode Methods | |
virtual bool | tao_marshal (TAO_OutputCDR &cdr, CORBA::ULong offset) const |
Marshal this TypeCode into a CDR output stream. | |
virtual void | tao_duplicate (void) |
Increase the reference count on this TypeCode . | |
virtual void | tao_release (void) |
Decrease the reference count on this object. |
CORBA::TypeCode
implementation for OMG IDL string types.
This class implements a CORBA::TypeCode
for OMG IDL string types, including wstring
.
Definition at line 44 of file String_TypeCode.h.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO::TypeCode::String< RefCountPolicy >::String | ( | CORBA::TCKind | kind, | |
CORBA::ULong | length | |||
) |
Constructor.
Definition at line 9 of file String_TypeCode.inl.
00011 : ::CORBA::TypeCode (kind) 00012 , RefCountPolicy () 00013 , length_ (length) 00014 { 00015 // ACE_ASSERT (kind == CORBA::tk_string || kind == CORBA::tk_wstring); 00016 }
CORBA::Boolean TAO::TypeCode::String< RefCountPolicy >::equal_i | ( | CORBA::TypeCode_ptr | tc | ) | const [protected, virtual] |
Implements CORBA::TypeCode.
Definition at line 45 of file String_TypeCode.cpp.
References CORBA::TypeCode::length().
Referenced by TAO::TypeCode::String< TAO::Null_RefCount_Policy >::equivalent_i(), and TAO::TypeCode::String< RefCountPolicy >::equivalent_i().
00047 { 00048 // The following call won't throw since CORBA::TypeCode::equal() has 00049 // already established the kind of tc is the same as our kind. 00050 CORBA::ULong const tc_length = tc->length (); 00051 00052 return (this->length_ == tc_length); 00053 }
CORBA::Boolean TAO::TypeCode::String< RefCountPolicy >::equivalent_i | ( | CORBA::TypeCode_ptr | tc | ) | const [protected, virtual] |
Implements CORBA::TypeCode.
Definition at line 57 of file String_TypeCode.cpp.
References TAO::TypeCode::String< RefCountPolicy >::equal_i().
00059 { 00060 // Since TCKind comparisons must be performed before equal_i() is 00061 // called, we can also call it to determine equivalence of 00062 // tk_string-based TypeCodes. 00063 return this->equal_i (tc); 00064 }
CORBA::TypeCode_ptr TAO::TypeCode::String< RefCountPolicy >::get_compact_typecode_i | ( | void | ) | const [protected, virtual] |
Implements CORBA::TypeCode.
Definition at line 68 of file String_TypeCode.cpp.
References CORBA::TypeCode::_duplicate().
00069 { 00070 // Already compact since tk_string and tk_wstring TypeCodes have no 00071 // name or member names, meaning that we can simply call 00072 // _duplicate() on this TypeCode. 00073 00074 CORBA::TypeCode_ptr mutable_tc = 00075 const_cast<TAO::TypeCode::String<RefCountPolicy> *> (this); 00076 00077 return CORBA::TypeCode::_duplicate (mutable_tc); 00078 }
CORBA::ULong TAO::TypeCode::String< RefCountPolicy >::length_i | ( | void | ) | const [protected, virtual] |
Reimplemented from CORBA::TypeCode.
Definition at line 82 of file String_TypeCode.cpp.
References TAO::TypeCode::String< RefCountPolicy >::length_.
00083 { 00084 return this->length_; 00085 }
void TAO::TypeCode::String< RefCountPolicy >::tao_duplicate | ( | void | ) | [virtual] |
Increase the reference count on this TypeCode
.
Implements CORBA::TypeCode.
Definition at line 31 of file String_TypeCode.cpp.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL bool TAO::TypeCode::String< RefCountPolicy >::tao_marshal | ( | TAO_OutputCDR & | cdr, | |
CORBA::ULong | offset | |||
) | const [virtual] |
Marshal this TypeCode
into a CDR output stream.
Marshal this TypeCode
into the cdr output CDR stream, excluding the TypeCode
kind. Existing cdr contents will not be altered. The marshaled TypeCode
will be appended to the given cdr CDR output stream.
cdr | Output CDR stream into which the TypeCode will be marshaled. | |
offset | Number of bytes currently in the output CDR stream, including the top-level TypeCode TCKind . This argument is useful for recursive TypeCodes . TypeCodes that contain other TypeCodes should pass an updated offset value to the marshaling operation for those contained TypeCodes . |
true
if marshaling was successful.CORBA::TypeCode
interface.If this method returns false, the contents of the cdr output CDR stream are undefined.
Implements CORBA::TypeCode.
Definition at line 17 of file String_TypeCode.cpp.
00019 { 00020 // A tk_string TypeCode has a "simple" parameter list type (see 00021 // Table 15-2 in Section 15.3.5.1 "TypeCode" in the CDR section of 00022 // the CORBA specification), meaning that its parameter(s) must be 00023 // marshaled immediately following the TCKind. No CDR encapsulation 00024 // is to be created. 00025 00026 return (cdr << this->length_); 00027 }
void TAO::TypeCode::String< RefCountPolicy >::tao_release | ( | void | ) | [virtual] |
Decrease the reference count on this object.
Implements CORBA::TypeCode.
Definition at line 38 of file String_TypeCode.cpp.
CORBA::ULong const TAO::TypeCode::String< RefCountPolicy >::length_ [private] |
Length of the string
. A length of zero indicates an unbounded string
.
Definition at line 91 of file String_TypeCode.h.
Referenced by TAO::TypeCode::String< TAO::Null_RefCount_Policy >::length_i(), and TAO::TypeCode::String< RefCountPolicy >::length_i().