Struct IUnionEntity#

Inheritance Relationships#

Derived Type#

Struct Documentation#

struct IUnionEntity#

Union entity information interface.

Subclassed by CUnionEntity

Public Types

enum class ESwitchInterpret : uint32_t#

The interpretation of the switch case.

Values:

enumerator switch_variable#

The switch case is determined by a variable of the parent struct.

enumerator switch_type#

The switch case is determined by the value of a type.

enumerator switch_variable

The switch case is determined by a variable of the parent struct.

enumerator switch_variable

The switch case is determined by a variable of the parent struct.

enumerator switch_type

The switch case is determined by the value of a type.

enumerator switch_type

The switch case is determined by the value of a type.

enum ESwitchInterpret

The interpretation of the switch case.

Values:

enumerator switch_variable

The switch case is determined by a variable of the parent struct.

enumerator switch_type

The switch case is determined by the value of a type.

Public Functions

virtual ESwitchInterpret GetSwitchInterpretation() const = 0#

Return the switch interpretation.

Returns:

The interpretation of the switch case of this union.

virtual void GetSwitchType(EDeclType &reType, IInterfaceAccess *&rpType) const = 0#

Return type information for the switch case. If the switch case is type base, this is the type information that is used to select. If the switch case is variable based, this is the type of the variable.

Parameters:
  • reType[out] Reference to the declaration type (either enum or an integral type).

  • rpType[out] Reference to the type entity if existing.

virtual void GetSwitchVar(sdv::u8string &rssVarStr, IInterfaceAccess *&rpVarEntity, IInterfaceAccess *&rpVarContainer) const = 0#

Get the switch variable information if the switch case is variable based. Will be empty/NULL when the switch case is type based.

Parameters:
  • rssVarStr[out] Reference to the string receiving the exact scoped declaration name of the switch variable if the interpretation is variable based. The variable name uses the scope separator ‘::’ to define the common parent definition and the member separator ‘.’ to define the variable declaration as member from the common parent.

  • rpVarEntity[out] Reference to the variable entity if the interpretation is variable based.

  • rpVarContainer[out] Reference to the variable entity of the container of both the switch variable and the union.

ESwitchInterpret GetSwitchInterpretation() const

Return the switch interpretation.

Returns:

The interpretation of the switch case of this union.

void GetSwitchType (out EDeclType reType, out IInterfaceAccess rpType) const

Return type information for the switch case. If the switch case is type base, this is the type information that is used to select. If the switch case is variable based, this is the type of the variable.

Parameters:
  • reType[out] Reference to the declaration type (either enum or an integral type).

  • rpType[out] Reference to the type entity if existing.

void GetSwitchVar (out u8string rssVarStr, out IInterfaceAccess rpVarEntity, out IInterfaceAccess rpVarContainer) const

Get the switch variable information if the switch case is variable based. Will be empty/NULL when the switch case is type based.

Parameters:
  • rssVarStr[out] Reference to the string receiving the exact scoped declaration name of the switch variable if the interpretation is variable based. The variable name uses the scope separator ‘::’ to define the common parent definition and the member separator ‘.’ to define the variable declaration as member from the common parent.

  • rpVarEntity[out] Reference to the variable entity if the interpretation is variable based.

  • rpVarContainer[out] Reference to the variable entity of the container of both the switch variable and the union.

Public Static Attributes

static ::sdv::interface_id _id = 0x23A3AFF91945A3B3#

Interface ID.