union case for unions with Enum discriminators.
More...
#include <TypeCode_Case_Enum_T.h>


Public Member Functions | |
| Case_Enum_T (CORBA::TypeCode_ptr discriminator_tc, CORBA::ULong member_label, char const *member_name, TypeCodeType member_type) | |
| Constructor. | |
| Case_Enum_T (CORBA::TypeCode_ptr discriminator_tc, CORBA::ULong member_label) | |
| Constructor. | |
@c TAO::TypeCode::Case Methods | |
| Case< StringType, TypeCodeType > * | clone (void) const |
| Cloning/copying operation. | |
| virtual CORBA::Any * | label (void) const |
| virtual bool | marshal_label (TAO_OutputCDR &cdr) const |
| virtual bool | equal_label (CORBA::ULong index, CORBA::TypeCode_ptr tc) const |
| Verify equality of member labels. | |
Private Attributes | |
| ::CORBA::ULong const | label_ |
IDL union case/member label value. | |
| CORBA::TypeCode_var | discriminator_tc_ |
IDL union discriminator typecode. | |
union case for unions with Enum discriminators.
When dynamically creating a union type with a enum discriminator, there is not way that the template parameter DiscriminatorType can be specified at runtime.
Since enums are encoded as ULongs, DiscriminatorType has been replaced with CORBA::ULong.
| TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::Case_Enum_T | ( | CORBA::TypeCode_ptr | discriminator_tc, | |
| CORBA::ULong | member_label, | |||
| char const * | member_name, | |||
| TypeCodeType | member_type | |||
| ) | [inline] |
Constructor.
| ACE_INLINE TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::Case_Enum_T | ( | CORBA::TypeCode_ptr | discriminator_tc, | |
| CORBA::ULong | member_label | |||
| ) | [inline] |
Constructor.
Constructor only used in the dynamically constructed union TypeCode case.
| TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO::TypeCode::Case< StringType, TypeCodeType > * TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::clone | ( | void | ) | const [inline, virtual] |
| CORBA::Any * TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::label | ( | void | ) | const [inline, virtual] |
Return the IDL union case label value embedded within a CORBA::Any.
Implements TAO::TypeCode::Case< StringType, TypeCodeType >.
| bool TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::marshal_label | ( | TAO_OutputCDR & | cdr | ) | const [inline, virtual] |
Marshal the IDL union case label value into the given output CDR stream.
Implements TAO::TypeCode::Case< StringType, TypeCodeType >.
| virtual bool TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::equal_label | ( | CORBA::ULong | index, | |
| CORBA::TypeCode_ptr | tc | |||
| ) | const [virtual] |
Verify equality of member labels.
Performing member label equality comparisons in the Case subclass allows us to avoid performing interpretive extraction of the value from the Any returned from the "right hand side" operand TypeCode since the Case subclass already knows what type and value should be extracted from the Any.
| index | Member index of given TypeCode tc being tested. | |
| tc | The TypeCode whose member "@a index" label is being tested. |
Implements TAO::TypeCode::Case< StringType, TypeCodeType >.
::CORBA::ULong const TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::label_ [private] |
IDL union case/member label value.
CORBA::TypeCode_var TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::discriminator_tc_ [private] |
IDL union discriminator typecode.
1.5.5