CORBA::TypeCode
implementation for an OMG IDL object
and object-like types.
More...
#include <Objref_TypeCode.h>
Inheritance diagram for TAO::TypeCode::Objref< StringType, RefCountPolicy >:
@c TAO CORBA::TypeCode Template Methods | |
tk_abstract_interface , tk_component , tk_local_interface , tk_native and tk_objref CORBA::TypeCode -specific template methods.
| |
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 |
Base_Attributes< StringType > | attributes_ |
Base attributes (id and name ). | |
Public Member Functions | |
Objref (CORBA::TCKind kind, char const *id, char const *name) | |
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 an OMG IDL object
and object-like types.
This class implements a CORBA::TypeCode
for an OMG IDL object
(interface) and object-like types (abstract interface, component, home, local interface and native).
Definition at line 52 of file Objref_TypeCode.h.
|
Constructor.
Definition at line 9 of file Objref_TypeCode.inl.
00013 : ::CORBA::TypeCode (kind) 00014 , RefCountPolicy () 00015 , attributes_ (id, name) 00016 { 00017 } |
|
Implements CORBA::TypeCode. Definition at line 57 of file Objref_TypeCode.cpp.
00059 { 00060 // Equality has already been established in the 00061 // CORBA::TypeCode base class. 00062 00063 return true; 00064 } |
|
Implements CORBA::TypeCode. Definition at line 68 of file Objref_TypeCode.cpp.
00070 { 00071 // Equivalence already verified in the base class 00072 // CORBA::TypeCode::equivalent() method. 00073 00074 return true; 00075 } |
|
Implements CORBA::TypeCode. Definition at line 80 of file Objref_TypeCode.cpp. References TAO_TypeCodeFactory_Adapter::create_abstract_interface_tc(), TAO_TypeCodeFactory_Adapter::create_component_tc(), TAO_TypeCodeFactory_Adapter::create_home_tc(), TAO_TypeCodeFactory_Adapter::create_interface_tc(), TAO_TypeCodeFactory_Adapter::create_local_interface_tc(), TAO_TypeCodeFactory_Adapter::create_native_tc(), and ACE_Dynamic_Service< TYPE >::instance().
00081 { 00082 TAO_TypeCodeFactory_Adapter * const adapter = 00083 ACE_Dynamic_Service<TAO_TypeCodeFactory_Adapter>::instance ( 00084 TAO_ORB_Core::typecodefactory_adapter_name () 00085 ); 00086 00087 if (adapter == 0) 00088 { 00089 throw ::CORBA::INTERNAL (); 00090 } 00091 00092 if (this->kind_ == CORBA::tk_abstract_interface) 00093 { 00094 return adapter->create_abstract_interface_tc (this->attributes_.id (), 00095 "" /* empty name */); 00096 } 00097 else if (this->kind_ == CORBA::tk_component) 00098 { 00099 return adapter->create_component_tc (this->attributes_.id (), 00100 "" /* empty name */); 00101 } 00102 else if (this->kind_ == CORBA::tk_home) 00103 { 00104 return adapter->create_home_tc (this->attributes_.id (), 00105 "" /* empty name */); 00106 } 00107 else if (this->kind_ == CORBA::tk_local_interface) 00108 { 00109 return adapter->create_local_interface_tc (this->attributes_.id (), 00110 "" /* empty name */); 00111 00112 } 00113 else if (this->kind_ == CORBA::tk_native) 00114 { 00115 return adapter->create_native_tc (this->attributes_.id (), 00116 "" /* empty name */); 00117 } 00118 else // CORBA::tk_objref 00119 { 00120 return adapter->create_interface_tc (this->attributes_.id (), 00121 "" /* empty name */); 00122 } 00123 } |
|
Reimplemented from CORBA::TypeCode. Definition at line 127 of file Objref_TypeCode.cpp. References TAO::TypeCode::Base_Attributes< StringType >::id().
00128 { 00129 // Ownership is retained by the TypeCode, as required by the C++ 00130 // mapping. 00131 return this->attributes_.id (); 00132 } |
|
Reimplemented from CORBA::TypeCode. Definition at line 136 of file Objref_TypeCode.cpp. References TAO::TypeCode::Base_Attributes< StringType >::name().
00137 { 00138 // Ownership is retained by the TypeCode, as required by the C++ 00139 // mapping. 00140 return this->attributes_.name (); 00141 } |
|
Increase the reference count on this
Implements CORBA::TypeCode. Definition at line 43 of file Objref_TypeCode.cpp.
00044 { 00045 this->RefCountPolicy::add_ref (); 00046 } |
|
Marshal this
Marshal this
Implements CORBA::TypeCode. Definition at line 21 of file Objref_TypeCode.cpp. References ACE_OutputCDR::begin(), TAO_ENCAP_BYTE_ORDER, ACE_OutputCDR::total_length(), and ACE_OutputCDR::write_octet_array_mb().
00024 { 00025 // A tk_objref TypeCode has a "complex" parameter list type (see 00026 // Table 15-2 in Section 15.3.5.1 "TypeCode" in the CDR section of 00027 // the CORBA specification), meaning that it must be marshaled into 00028 // a CDR encapsulation. 00029 00030 // Create a CDR encapsulation. 00031 TAO_OutputCDR enc; 00032 00033 return 00034 enc << TAO_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER) 00035 && enc << TAO_OutputCDR::from_string (this->attributes_.id (), 0) 00036 && enc << TAO_OutputCDR::from_string (this->attributes_.name (), 0) 00037 && cdr << static_cast<CORBA::ULong> (enc.total_length ()) 00038 && cdr.write_octet_array_mb (enc.begin ()); 00039 } |
|
Decrease the reference count on this object.
Implements CORBA::TypeCode. Definition at line 50 of file Objref_TypeCode.cpp.
00051 { 00052 this->RefCountPolicy::remove_ref (); 00053 } |
|
Base attributes (
Definition at line 102 of file Objref_TypeCode.h. |