RTI Connext Modern C++ API  Version 5.2.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
dds::core::xtypes::StructType Class Reference

<<value-type>> Represents and IDL struct type More...

#include <dds/core/xtypes/StructType.hpp>

Inheritance diagram for dds::core::xtypes::StructType:
dds::core::xtypes::AbstractConstructedType< Member > dds::core::xtypes::DynamicType

Public Member Functions

 StructType (const std::string &name)
 Creates an empty struct type.
 
 StructType (const std::string &name, const StructType &parent)
 Creates an empty struct type with a base type.
 
template<typename Container >
 StructType (const std::string &name, const Container &members)
 Creates a struct with the members in a container.
 
template<typename Container >
 StructType (const std::string &name, const StructType &parent, const Container &members)
 Creates a struct with a base type and the members in a container.
 
template<typename MemberIter >
 StructType (const std::string &name, MemberIter begin, MemberIter end)
 Creates a struct with the members in an iterator range.
 
template<typename MemberIter >
 StructType (const std::string &name, const StructType &parent, MemberIter begin, MemberIter end)
 Creates a struct with a base type and the members in an iterator range.
 
 StructType (const std::string &name, StructType &&parent)
 <<C++11>> Creates an empty struct type with a base type.
 
template<typename MemberIter >
 StructType (const std::string &name, StructType &&parent, MemberIter begin, MemberIter end)
 <<C++11>> Creates an empty struct type with a base type and the members in an iterator range.
 
template<typename Container >
 StructType (const std::string &name, StructType &&parent, const Container &members)
 <<C++11>> Creates an empty struct type with a base type and the members in a container.
 
 StructType (const std::string &name, std::initializer_list< MemberImpl > members)
 <<C++11>> Creates a struct with the members in an initializer_list
 
 StructType (const std::string &name, const StructType &parent, std::initializer_list< MemberImpl > members)
 <<C++11>> Creates a struct with the members in an initializer_list and a base type
 
 StructType (const std::string &name, StructType &&parent, std::initializer_list< MemberImpl > members)
 <<C++11>> Creates a struct with the members in an initializer_list and a base type
 
StructTypeextensibility_kind (dds::core::xtypes::ExtensibilityKind kind)
 Sets the type extensibility kind.
 
bool has_parent () const
 Indicates if this type has a base type.
 
const StructTypeparent () const
 Retrieves the base type.
 
MemberIndex find_member_by_id (uint32_t id) const
 Gets the index of the member with a specific member ID.
 
StructTypeadd_member (const MemberImpl &member)
 Adds a member at the end.
 
template<typename Container >
StructTypeadd_members (const Container &members)
 Adds all the members of a container at the end.
 
StructTypeadd_members (std::initializer_list< MemberImpl > members)
 <<C++11>> Adds all the members of an initializer_list at the end
 
template<typename MemberIter >
StructTypeadd_members (MemberIter begin, MemberIter end)
 Adds all the members in an iterator range at the end.
 
StructTypeadd_member (MemberImpl &&member)
 <<C++11>> Adds a member, moving it, at the end
 
- Public Member Functions inherited from dds::core::xtypes::AbstractConstructedType< Member >
dds::core::xtypes::ExtensibilityKind extensibility_kind () const
 Gets the extensibility kind.
 
size_t member_count () const
 Gets the number of members.
 
const Membermember (MemberIndex index) const
 Gets a member by its index.
 
const Membermember (const std::string &name) const
 Gets a member by its name.
 
MemberIndex find_member_by_name (const std::string &name) const
 Obtains the member index from its name.
 
std::vector< Membermembers () const
 Gets a copy of all the members.
 
- Public Member Functions inherited from dds::core::xtypes::DynamicType
dds::core::xtypes::TypeKind kind () const
 Gets the type kind.
 
std::string name () const
 Gets the name.
 

Related Functions

(Note that these are not member functions.)

template<typename... Types>
dds::core::xtypes::StructType create_type_from_tuple (const std::string &name)
 <<C++11>> <<experimental>> <<extension>> Creates a StructType from a list of types or a std::tuple
 

Additional Inherited Members

- Public Types inherited from dds::core::xtypes::AbstractConstructedType< Member >
typedef Member Member
 The member type (specified by the subclasses of this class)
 
typedef uint32_t MemberIndex
 The meber index type.
 
- Static Public Attributes inherited from dds::core::xtypes::AbstractConstructedType< Member >
static
OMG_DDS_API_CLASS_VARIABLE
const MemberIndex 
INVALID_INDEX
 Indicates that a member doesn't exist.
 

Detailed Description

<<value-type>> Represents and IDL struct type

Examples:
Foo.hpp.

Constructor & Destructor Documentation

dds::core::xtypes::StructType::StructType ( const std::string &  name)

Creates an empty struct type.

The struct doesn't have a base type. Members can be added after creation.

Parameters
nameThe name of the type
dds::core::xtypes::StructType::StructType ( const std::string &  name,
const StructType parent 
)

Creates an empty struct type with a base type.

Members can be added after creation.

Parameters
nameThe name of the type
parentThe base type
template<typename Container >
dds::core::xtypes::StructType::StructType ( const std::string &  name,
const Container &  members 
)
inline

Creates a struct with the members in a container.

The struct doesn't have a base type.

Template Parameters
ContainerA container that provides the member functions begin() and end() to iterate over Member elements.
Parameters
nameThe name of the type
membersA container with the members for this struct type
template<typename Container >
dds::core::xtypes::StructType::StructType ( const std::string &  name,
const StructType parent,
const Container &  members 
)
inline

Creates a struct with a base type and the members in a container.

Template Parameters
ContainerA container that provides the member functions begin() and end() to iterate over Member elements.
Parameters
nameThe name of the type
parentThe base type
membersA container with the members for this struct type
template<typename MemberIter >
dds::core::xtypes::StructType::StructType ( const std::string &  name,
MemberIter  begin,
MemberIter  end 
)
inline

Creates a struct with the members in an iterator range.

The struct doesn't have a base type.

Template Parameters
MemberIterA forward iterator of Member elements
Parameters
nameThe name of the type
beginThe beginning of the range of Members
endThe end of the range of Members
template<typename MemberIter >
dds::core::xtypes::StructType::StructType ( const std::string &  name,
const StructType parent,
MemberIter  begin,
MemberIter  end 
)
inline

Creates a struct with a base type and the members in an iterator range.

Template Parameters
MemberIterA forward iterator of Member elements
Parameters
parentThe base type
nameThe name of the type
beginThe beginning of the range of Members
endThe end of the range of Members
dds::core::xtypes::StructType::StructType ( const std::string &  name,
StructType &&  parent 
)
inline

<<C++11>> Creates an empty struct type with a base type.

The base type is moved. This is useful to save a copy in situations like the following example:

StrucType my_type("my_type", StructType("parent_type", parent_members));
template<typename MemberIter >
dds::core::xtypes::StructType::StructType ( const std::string &  name,
StructType &&  parent,
MemberIter  begin,
MemberIter  end 
)
inline

<<C++11>> Creates an empty struct type with a base type and the members in an iterator range.

The base type is moved.

template<typename Container >
dds::core::xtypes::StructType::StructType ( const std::string &  name,
StructType &&  parent,
const Container &  members 
)
inline

<<C++11>> Creates an empty struct type with a base type and the members in a container.

The base type is moved.

dds::core::xtypes::StructType::StructType ( const std::string &  name,
std::initializer_list< MemberImpl >  members 
)
inline

<<C++11>> Creates a struct with the members in an initializer_list

Parameters
nameThe name of the type
membersAn ininitalizer_list of Members
dds::core::xtypes::StructType::StructType ( const std::string &  name,
const StructType parent,
std::initializer_list< MemberImpl >  members 
)
inline

<<C++11>> Creates a struct with the members in an initializer_list and a base type

Parameters
nameThe name of the type
parentThe base type
membersAn ininitalizer_list of Members
dds::core::xtypes::StructType::StructType ( const std::string &  name,
StructType &&  parent,
std::initializer_list< MemberImpl >  members 
)
inline

<<C++11>> Creates a struct with the members in an initializer_list and a base type

Parameters
nameThe name of the type
parentThe base type (moved)
membersAn ininitalizer_list of Members

Member Function Documentation

StructType& dds::core::xtypes::StructType::extensibility_kind ( dds::core::xtypes::ExtensibilityKind  kind)

Sets the type extensibility kind.

bool dds::core::xtypes::StructType::has_parent ( ) const

Indicates if this type has a base type.

const StructType& dds::core::xtypes::StructType::parent ( ) const

Retrieves the base type.

If this type doesn't have a base type it throws PreconditionNotMetError.

See Also
has_parent()
MemberIndex dds::core::xtypes::StructType::find_member_by_id ( uint32_t  id) const

Gets the index of the member with a specific member ID.

Returns
The index (which can be passed to member(uint32_t) of the member selected by label or INVALID_INDEX if the ID doesn't exist in this type
StructType& dds::core::xtypes::StructType::add_member ( const MemberImpl &  member)

Adds a member at the end.

template<typename Container >
StructType& dds::core::xtypes::StructType::add_members ( const Container &  members)
inline

Adds all the members of a container at the end.

StructType& dds::core::xtypes::StructType::add_members ( std::initializer_list< MemberImpl >  members)
inline

<<C++11>> Adds all the members of an initializer_list at the end

template<typename MemberIter >
StructType& dds::core::xtypes::StructType::add_members ( MemberIter  begin,
MemberIter  end 
)
inline

Adds all the members in an iterator range at the end.

StructType& dds::core::xtypes::StructType::add_member ( MemberImpl &&  member)
inline

<<C++11>> Adds a member, moving it, at the end

Friends And Related Function Documentation

template<typename... Types>
dds::core::xtypes::StructType create_type_from_tuple ( const std::string &  name)
related

<<C++11>> <<experimental>> <<extension>> Creates a StructType from a list of types or a std::tuple

Template Parameters
TypesA list of types or a std::tuple. The types must be primitive (see dds::core::xtypes::PrimitiveType) or std::string.

The StructType members are all default-created (i.e. non-key, non-optional, with default IDs...) and their names are m0, m1, m2, etc.

See Also
Create a DynamicType using tuples

RTI Connext Modern C++ API Version 5.2.0 Copyright © Sun Jun 21 2015 Real-Time Innovations, Inc