union case/member.
More...
#include <TypeCode_Case_Base_T.h>
Inheritance diagram for TAO::TypeCode::Case< StringType, TypeCodeType >:


Public Member Functions | |
| Case (char const *name, TypeCodeType tc) | |
| Constructor. | |
| Case (void) | |
| Constructor. | |
| virtual | ~Case (void) |
| Destructor. | |
| virtual Case * | clone (void) const =0 |
| Cloning/copying operation. | |
| virtual CORBA::Any * | label (ACE_ENV_SINGLE_ARG_DECL) const =0 |
| char const * | name (void) const |
Get the name of the union case/member. | |
| void | name (char const *the_name) |
Set the name of the union case/member. | |
| CORBA::TypeCode_ptr | type (void) const |
Get the CORBA::TypeCode of the union case/member. | |
| void | type (CORBA::TypeCode_ptr tc) |
Set the CORBA::TypeCode of the union case/member. | |
| bool | marshal (TAO_OutputCDR &cdr, CORBA::ULong offset) const |
| bool | equal (CORBA::ULong index, CORBA::TypeCode_ptr tc ACE_ENV_ARG_DECL) const |
| bool | equivalent (CORBA::ULong index, CORBA::TypeCode_ptr tc ACE_ENV_ARG_DECL) const |
Protected Member Functions | |
| virtual bool | marshal_label (TAO_OutputCDR &cdr) const =0 |
| virtual bool | equal_label (CORBA::ULong index, CORBA::TypeCode_ptr tc ACE_ENV_ARG_DECL) const =0 |
| Verify equality of member labels. | |
Private Attributes | |
| StringType | name_ |
| The name of the case. | |
| TypeCodeType | type_ |
Pointer to the CORBA::TypeCode of the case. | |
union case/member.
This class hides the actual IDL union member label value from the TAO::TypeCode::Union class by relying on a CORBA::Any return value that corresponds to the CORBA::TypeCode::member_label() return type. It also allows the TAO::TypeCode::Union class to marshal the member label values into a CDR stream without knowledge of the underlying member label values.
| TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO::TypeCode::Case< StringType, TypeCodeType >::Case | ( | char const * | name, | |
| TypeCodeType | tc | |||
| ) |
Constructor.
Constructor used when creating static union TypeCodes.
| ACE_INLINE TAO::TypeCode::Case< StringType, TypeCodeType >::Case | ( | void | ) |
Constructor.
Constructor used when creating dynamic union TypeCodes.
| TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO::TypeCode::Case< StringType, TypeCodeType >::~Case | ( | void | ) | [virtual] |
Destructor.
| virtual Case* TAO::TypeCode::Case< StringType, TypeCodeType >::clone | ( | void | ) | const [pure virtual] |
Cloning/copying operation.
Implemented in TAO::TypeCode::Case_T< DiscriminatorType, StringType, TypeCodeType >.
| bool TAO::TypeCode::Case< StringType, TypeCodeType >::equal | ( | CORBA::ULong | index, | |
| CORBA::TypeCode_ptr tc | ACE_ENV_ARG_DECL | |||
| ) | const |
Check for equality of the case attributes contained by this class and the corresponding member attributes at index "index" in the given TypeCode tc.
| virtual bool TAO::TypeCode::Case< StringType, TypeCodeType >::equal_label | ( | CORBA::ULong | index, | |
| CORBA::TypeCode_ptr tc | ACE_ENV_ARG_DECL | |||
| ) | const [protected, pure 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. |
Implemented in TAO::TypeCode::Case_T< DiscriminatorType, StringType, TypeCodeType >.
| bool TAO::TypeCode::Case< StringType, TypeCodeType >::equivalent | ( | CORBA::ULong | index, | |
| CORBA::TypeCode_ptr tc | ACE_ENV_ARG_DECL | |||
| ) | const |
Check for equivalence of the case attributes contained by this class and the corresponding member attributes at index "@a index" in the given TypeCode tc.
| virtual CORBA::Any* TAO::TypeCode::Case< StringType, TypeCodeType >::label | ( | ACE_ENV_SINGLE_ARG_DECL | ) | const [pure virtual] |
Return the IDL union case label value embedded within a CORBA::Any.
| ACE_INLINE bool TAO::TypeCode::Case< StringType, TypeCodeType >::marshal | ( | TAO_OutputCDR & | cdr, | |
| CORBA::ULong | offset | |||
| ) | const |
Marshal this IDL union member into the given output CDR stream.
| virtual bool TAO::TypeCode::Case< StringType, TypeCodeType >::marshal_label | ( | TAO_OutputCDR & | cdr | ) | const [protected, pure virtual] |
Marshal the IDL union case label value into the given output CDR stream.
Implemented in TAO::TypeCode::Case_T< DiscriminatorType, StringType, TypeCodeType >.
| ACE_INLINE void TAO::TypeCode::Case< StringType, TypeCodeType >::name | ( | char const * | the_name | ) |
Set the name of the union case/member.
| ACE_INLINE char const * TAO::TypeCode::Case< StringType, TypeCodeType >::name | ( | void | ) | const |
Get the name of the union case/member.
| ACE_INLINE void TAO::TypeCode::Case< StringType, TypeCodeType >::type | ( | CORBA::TypeCode_ptr | tc | ) |
Set the CORBA::TypeCode of the union case/member.
CORBA::TypeCode::_duplicate() is called on the TypeCode tc. | ACE_INLINE CORBA::TypeCode_ptr TAO::TypeCode::Case< StringType, TypeCodeType >::type | ( | void | ) | const |
Get the CORBA::TypeCode of the union case/member.
StringType TAO::TypeCode::Case< StringType, TypeCodeType >::name_ [private] |
The name of the case.
TypeCodeType TAO::TypeCode::Case< StringType, TypeCodeType >::type_ [private] |
Pointer to the CORBA::TypeCode of the case.
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 Case statically at compile-time, hence the indirection.
1.4.7-1