CoreDX DDS C Reference Manual
Public Attributes | Related Functions | List of all members
DDS_MemberDescriptor Struct Reference

A DDS_MemberDescriptor comprises the state of a DDS_DynamicTypeMember. More...

Public Attributes

DDS_ObjectName name
 the 'name' of this type
 
DDS_MemberId id
 If this member belongs to an aggregated type, this property indicates the member’s ID. More...
 
DDS_DynamicType type
 This property indicates the type of the member’s value. More...
 
char * default_value
 This property provides the member’s default value in string form. More...
 
unsigned int index
 This property indicates the order of definition of this member within its type, relative to the type’s other members. More...
 
DDS_UnionCaseLabelSeq label
 If the type to which the member belongs is a union, this property indicates the case labels that apply to this member. More...
 
unsigned char default_label
 For this descriptor to be consistent, this property must be true if this descriptor identifies the default member of a union type or false if not. More...
 

Related Functions

(Note that these are not member functions.)

DDS_ReturnCode_t DDS_MemberDescriptor_copy_from (DDS_MemberDescriptor *to, const DDS_MemberDescriptor *from)
 Overwrite the contents of the 'to' descriptor with those of the provided 'from' descriptor. More...
 
unsigned char DDS_MemberDescriptor_equals (DDS_MemberDescriptor *md, const DDS_MemberDescriptor *other)
 Compare two DDS_TypeDescriptor's. More...
 
unsigned char DDS_MemberDescriptor_is_consistent (DDS_MemberDescriptor *md)
 Indicates whether the states of all of this descriptor’s properties are consistent. More...
 

Detailed Description

A DDS_MemberDescriptor comprises the state of a DDS_DynamicTypeMember.

Member Data Documentation

unsigned char DDS_MemberDescriptor::default_label

For this descriptor to be consistent, this property must be true if this descriptor identifies the default member of a union type or false if not.

A default union member may have additional explicit labels (indicated in the label property), but these are semantically irrelevant, as the default member would be in effect or not regardless of their presence or absence.

char* DDS_MemberDescriptor::default_value

This property provides the member’s default value in string form.

A string representation of a data value is considered well formed if it would be a valid IDL literal of the corresponding type with the following qualifications:

  • String and character literals shall not be surrounded by quotation characters (‘"’ or ‘'’).
  • All expressions shall be fully evaluated such that no operators or other non-literal characters occur in the value. For example, "5" is a well-formed string representation of the integer quantity five, but "2 + ENUM_VALUE_THREE" is not.

A nil or empty string indicates that the member takes the "default default" value for its type. This rule shall always be used when the member is of a type for which IDL provides no syntax to express a literal value (for example, structures or maps) and may be used for any other type.

DDS_MemberId DDS_MemberDescriptor::id

If this member belongs to an aggregated type, this property indicates the member’s ID.

When a descriptor is used to add a new member to a type, this property may be set to MEMBER_ID_INVALID; in that case, the implementation shall select an ID for the new member that is one more than the current maximum member ID in the type. If the value of this property is not MEMBER_ID_INVALID, it must be set to a value within a legal range.

When a descriptor is retrieved from an existing member, this property shall reflect the actual ID of the member. It shall therefore not be MEMBER_ID_INVALID, and it shall fall within a legal range.

If this member does not belong to an aggregated type, this property must be MEMBER_ID_INVALID, or the descriptor is not consistent.

unsigned int DDS_MemberDescriptor::index

This property indicates the order of definition of this member within its type, relative to the type’s other members.

The first member shall have index zero, the next index one, and so on.

When a descriptor is used to add a new member to a type, any value greater than the current largest index value in the type shall be taken to indicate that the new member will become the last member, whatever the index; member indices within a type shall not be discontiguous.

Alternatively, if this property is set to an index at which a member already exists, that member and all those after it shall be shifted by a single index value to make room for the new member.

When a descriptor is retrieved from an existing member, this property shall always reflect the actual index at which the member exists.

DDS_UnionCaseLabelSeq DDS_MemberDescriptor::label

If the type to which the member belongs is a union, this property indicates the case labels that apply to this member.

If default_label is false, it must not be empty. In addition, no two members of the same union can specify the same label value.

If the type to which the member belongs is not a union, this property’s value must be empty to be consistent.

DDS_DynamicType DDS_MemberDescriptor::type

This property indicates the type of the member’s value.

It must not be nil, and it must indicate a type that can legally type a member according to the Type System Model.


© 2009-2017 Twin Oaks Computing, Inc
Castle Rock, CO 80108
All rights reserved.