TAO_AnyTypeCode  2.1.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType > Class Template Reference

Representation of an OMG IDL defined union case for unions with Enum discriminators. More...

#include <TypeCode_Case_Enum_T.h>

Inheritance diagram for TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >:
Inheritance graph
Collaboration diagram for TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >:
Collaboration graph

Public Member Functions

 Case_Enum_T (CORBA::TypeCode_ptr discriminator_tc, CORBA::ULong member_label, char const *member_name, TypeCodeType member_type)
 Constructor. More...
 
 Case_Enum_T (CORBA::TypeCode_ptr discriminator_tc, CORBA::ULong member_label)
 Constructor. More...
 
@c TAO::TypeCode::Case Methods

Methods required by the TAO::TypeCode::Case abstract base class.

See Also
TAO::TypeCode::Case
Case< StringType, TypeCodeType > * clone (void) const
 Cloning/copying operation. More...
 
virtual CORBA::Anylabel (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. More...
 
- Public Member Functions inherited from Case< class, class >
 Case (char const *name, TypeCodeType tc)
 Constructor. More...
 
 Case (void)
 Constructor. More...
 
virtual ~Case (void)
 Destructor. More...
 
char const * name (void) const
 Get the name of the union case/member. More...
 
void name (char const *the_name)
 Set the name of the union case/member. More...
 
CORBA::TypeCode_ptr type (void) const
 Get the CORBA::TypeCode of the union case/member. More...
 
void type (CORBA::TypeCode_ptr tc)
 Set the CORBA::TypeCode of the union case/member. More...
 
bool marshal (TAO_OutputCDR &cdr, CORBA::ULong offset) const
 
bool equal (CORBA::ULong index, CORBA::TypeCode_ptr tc) const
 
bool equivalent (CORBA::ULong index, CORBA::TypeCode_ptr tc) const
 

Private Attributes

::CORBA::ULong const label_
 IDL union case/member label value. More...
 
CORBA::TypeCode_var discriminator_tc_
 IDL union discriminator typecode. More...
 

Detailed Description

template<typename StringType, typename TypeCodeType>
class TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >

Representation of an OMG IDL defined 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.

Constructor & Destructor Documentation

template<typename StringType , typename TypeCodeType >
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 
)

Constructor.

template<typename StringType , typename TypeCodeType >
TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::Case_Enum_T ( CORBA::TypeCode_ptr  discriminator_tc,
CORBA::ULong  member_label 
)

Constructor.

Constructor only used in the dynamically constructed union TypeCode case.

Member Function Documentation

template<typename StringType , typename TypeCodeType >
TAO::TypeCode::Case< StringType, TypeCodeType > * TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::clone ( void  ) const
virtual

Cloning/copying operation.

Implements Case< class, class >.

template<typename StringType , typename TypeCodeType >
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.

Parameters
indexMember index of given TypeCode tc being tested.
tcThe TypeCode whose member "@a index" label is being tested.

Implements Case< class, class >.

template<typename StringType , typename TypeCodeType >
CORBA::Any * TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::label ( void  ) const
virtual

Return the IDL union case label value embedded within a CORBA::Any.

Implements Case< class, class >.

template<typename StringType , typename TypeCodeType >
bool TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::marshal_label ( TAO_OutputCDR cdr) const
virtual

Marshal the IDL union case label value into the given output CDR stream.

Implements Case< class, class >.

Member Data Documentation

template<typename StringType , typename TypeCodeType >
CORBA::TypeCode_var TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::discriminator_tc_
private

IDL union discriminator typecode.

template<typename StringType , typename TypeCodeType >
::CORBA::ULong const TAO::TypeCode::Case_Enum_T< StringType, TypeCodeType >::label_
private

IDL union case/member label value.


The documentation for this class was generated from the following files: