#include <Alias_TypeCode_Static.h>
Public Member Functions | |
Alias (CORBA::TCKind kind, char const *id, char const *name, CORBA::TypeCode_ptr const *tc) | |
Constructor. | |
TAO-specific @c CORBA::TypeCode Methods | |
Methods required by TAO's implementation of the
| |
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. | |
@c TAO CORBA::TypeCode Template Methods | |
| |
Base_Attributes< char const * > | attributes_ |
CORBA::TypeCode_ptr const * | content_type_ |
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 char const * | id_i (void) const |
virtual char const * | name_i (void) const |
virtual CORBA::TypeCode_ptr | content_type_i (void) const |
Definition at line 50 of file Alias_TypeCode_Static.h.
TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::Alias | ( | CORBA::TCKind | kind, | |
char const * | id, | |||
char const * | name, | |||
CORBA::TypeCode_ptr const * | tc | |||
) |
Constructor.
Definition at line 10 of file Alias_TypeCode_Static.inl.
: ::CORBA::TypeCode (kind) , ::TAO::Null_RefCount_Policy () , attributes_ (id, name) , content_type_ (tc) { }
CORBA::TypeCode_ptr TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::content_type_i | ( | void | ) | const [protected, virtual] |
Base attributes for this TypeCode
containing the repository ID and name of the typedef
.
Reimplemented from CORBA::TypeCode.
Definition at line 159 of file Alias_TypeCode_Static.cpp.
{ return CORBA::TypeCode::_duplicate ( Traits<char const *>::get_typecode (this->content_type_)); }
CORBA::Boolean TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::equal_i | ( | CORBA::TypeCode_ptr | tc | ) | const [protected, virtual] |
Base attributes for this TypeCode
containing the repository ID and name of the typedef
.
Implements CORBA::TypeCode.
Definition at line 76 of file Alias_TypeCode_Static.cpp.
{ // The CORBA::TypeCode base class already verified equality of the // base attributes (id and name). Perform an equality comparison of // the content. CORBA::TypeCode_var rhs_content_type = tc->content_type (); return Traits<char const *>::get_typecode (this->content_type_)->equal ( rhs_content_type.in ()); }
CORBA::Boolean TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::equivalent_i | ( | CORBA::TypeCode_ptr | tc | ) | const [protected, virtual] |
Base attributes for this TypeCode
containing the repository ID and name of the typedef
.
Implements CORBA::TypeCode.
Definition at line 93 of file Alias_TypeCode_Static.cpp.
{ // Equivalence already verified in the base class // CORBA::TypeCode::equivalent() method. return true; }
CORBA::TypeCode_ptr TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::get_compact_typecode_i | ( | void | ) | const [protected, virtual] |
Base attributes for this TypeCode
containing the repository ID and name of the typedef
.
Implements CORBA::TypeCode.
Definition at line 105 of file Alias_TypeCode_Static.cpp.
{ TAO_TypeCodeFactory_Adapter * const adapter = ACE_Dynamic_Service<TAO_TypeCodeFactory_Adapter>::instance ( TAO_ORB_Core::typecodefactory_adapter_name () ); if (adapter == 0) { throw ::CORBA::INITIALIZE (); } CORBA::TypeCode_var compact_content_type = Traits<char const *>::get_typecode ( this->content_type_)->get_compact_typecode (); if (this->kind_ == CORBA::tk_alias) { return adapter->create_alias_tc (this->attributes_.id (), "", /* empty name */ compact_content_type.in ()); } else { return adapter->create_value_box_tc (this->attributes_.id (), "", /* empty name */ compact_content_type.in ()); } }
char const * TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::id_i | ( | void | ) | const [protected, virtual] |
Base attributes for this TypeCode
containing the repository ID and name of the typedef
.
Reimplemented from CORBA::TypeCode.
Definition at line 139 of file Alias_TypeCode_Static.cpp.
{ // Ownership is retained by the TypeCode, as required by the C++ // mapping. return this->attributes_.id (); }
char const * TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::name_i | ( | void | ) | const [protected, virtual] |
Base attributes for this TypeCode
containing the repository ID and name of the typedef
.
Reimplemented from CORBA::TypeCode.
Definition at line 149 of file Alias_TypeCode_Static.cpp.
{ // Ownership is retained by the TypeCode, as required by the C++ // mapping. return this->attributes_.name (); }
void TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::tao_duplicate | ( | void | ) | [virtual] |
Increase the reference count on this TypeCode
.
Implements CORBA::TypeCode.
Definition at line 62 of file Alias_TypeCode_Static.cpp.
{ }
bool TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::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.Implements CORBA::TypeCode.
Definition at line 27 of file Alias_TypeCode_Static.cpp.
{ // A tk_alias TypeCode has a "complex" parameter list type (see // Table 15-2 in Section 15.3.5.1 "TypeCode" in the CDR section of // the CORBA specification), meaning that it must be marshaled into // a CDR encapsulation. // Create a CDR encapsulation. TAO_OutputCDR enc; // Account for the encoded CDR encapsulation length and byte order. // // Aligning on an octet since the next value after the CDR // encapsulation length will always be the byte order octet/boolean // in this case. offset = ACE_align_binary (offset + 4, ACE_CDR::OCTET_ALIGN); return enc << TAO_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER) && enc << TAO_OutputCDR::from_string (this->attributes_.id (), 0) && enc << TAO_OutputCDR::from_string (this->attributes_.name (), 0) && marshal (enc, Traits<char const *>::get_typecode (this->content_type_), offset + enc.total_length ()) && cdr << static_cast<CORBA::ULong> (enc.total_length ()) && cdr.write_octet_array_mb (enc.begin ()); }
void TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::tao_release | ( | void | ) | [virtual] |
Decrease the reference count on this object.
Implements CORBA::TypeCode.
Definition at line 69 of file Alias_TypeCode_Static.cpp.
{ }
Base_Attributes<char const *> TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::attributes_ [private] |
Base attributes for this TypeCode
containing the repository ID and name of the typedef
.
Definition at line 100 of file Alias_TypeCode_Static.h.
CORBA::TypeCode_ptr const* TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::content_type_ [private] |
The TypeCode
corresponding to the original type upon which the IDL typedef
was made. A pointer to the CORBA::TypeCode_ptr
rather than the CORBA::TypeCode_ptr
itself is stored since that address is well-defined. We may not know the value of the CORBA::TypeCode_ptr
when creating this Field
statically at compile-time, hence the indirection.
TypeCode
is released upon destruction of this TypeCode::Alias
. Definition at line 114 of file Alias_TypeCode_Static.h.