#ifndef Foo_982570024_hpp
#define Foo_982570024_hpp
#include <iosfwd>
#if (defined(RTI_WIN32) || defined (RTI_WINCE) || defined(RTI_INTIME)) && defined(NDDS_USER_DLL_EXPORT)
#undef RTIUSERDllExport
#define RTIUSERDllExport __declspec(dllexport)
#endif
#include "dds/core/SafeEnumeration.hpp"
#include "dds/core/String.hpp"
#include "dds/core/array.hpp"
#include "dds/core/vector.hpp"
#include "dds/core/External.hpp"
#include "rti/core/LongDouble.hpp"
#include "rti/core/Pointer.hpp"
#include "rti/core/array.hpp"
#include "rti/topic/TopicTraits.hpp"
#include "omg/types/string_view.hpp"
#include "rti/core/BoundedSequence.hpp"
#include "dds/core/Optional.hpp"
#ifndef NDDS_STANDALONE_TYPE
#include "dds/domain/DomainParticipant.hpp"
#include "dds/topic/TopicTraits.hpp"
#include "dds/core/xtypes/DynamicType.hpp"
#include "dds/core/xtypes/StructType.hpp"
#include "dds/core/xtypes/UnionType.hpp"
#include "dds/core/xtypes/EnumType.hpp"
#include "dds/core/xtypes/AliasType.hpp"
#include "rti/util/StreamFlagSaver.hpp"
#include "rti/domain/PluginSupport.hpp"
#endif
#if (defined(RTI_WIN32) || defined (RTI_WINCE) || defined(RTI_INTIME)) && defined(NDDS_USER_DLL_EXPORT)
#undef RTIUSERDllExport
#define RTIUSERDllExport
#endif
#if (defined(RTI_WIN32) || defined (RTI_WINCE) || defined(RTI_INTIME)) && defined(NDDS_USER_DLL_EXPORT)
#undef NDDSUSERDllExport
#define NDDSUSERDllExport __declspec(dllexport)
#endif
class NDDSUSERDllExport
Foo {
public:
Foo(int32_t x_,int32_t y_);
int32_t& x() noexcept {
return m_x_;
}
const int32_t& x() const noexcept {
return m_x_;
}
void x(int32_t value) {
m_x_ = value;
}
int32_t& y() noexcept {
return m_y_;
}
const int32_t& y() const noexcept {
return m_y_;
}
void y(int32_t value) {
m_y_ = value;
}
bool operator == (
const Foo& other_)
const;
bool operator != (
const Foo& other_)
const;
private:
int32_t m_x_;
int32_t m_y_;
};
{
a.swap(b);
}
NDDSUSERDllExport std::ostream&
operator<<(std::ostream& o,
const Foo& sample);
#if (defined(RTI_WIN32) || defined (RTI_WINCE)) && defined(NDDS_USER_DLL_EXPORT)
template class NDDSUSERDllExport std::allocator< int32_t >;
template class NDDSUSERDllExport std::vector< int32_t >;
#endif
class NDDSUSERDllExport MyType {
public:
MyType();
MyType(int32_t my_long_,
const std::string& my_string_,const ::Foo& my_foo_,const ::rti::core::bounded_sequence< int32_t, 10L >& my_sequence_,const ::dds::core::array< ::Foo, 5L>& my_array_,const ::dds::core::optional< ::Foo >& my_optional_);
int32_t& my_long() noexcept {
return m_my_long_;
}
const int32_t& my_long() const noexcept {
return m_my_long_;
}
void my_long(int32_t value) {
m_my_long_ = value;
}
return m_my_string_;
}
return m_my_string_;
}
m_my_string_ = value;
}
m_my_string_ = std::move(value);
}
::Foo& my_foo() noexcept {
return m_my_foo_;
}
const ::Foo& my_foo() const noexcept {
return m_my_foo_;
}
void my_foo(const ::Foo& value) {
m_my_foo_ = value;
}
void my_foo(
::Foo&& value) {
m_my_foo_ = std::move(value);
}
return m_my_sequence_;
}
const ::rti::core::bounded_sequence< int32_t, 10L >& my_sequence() const noexcept {
return m_my_sequence_;
}
void my_sequence(const ::rti::core::bounded_sequence< int32_t, 10L >& value) {
m_my_sequence_ = value;
}
m_my_sequence_ = std::move(value);
}
::dds::core::array< ::Foo, 5L>& my_array() noexcept {
return m_my_array_;
}
const ::dds::core::array< ::Foo, 5L>& my_array() const noexcept {
return m_my_array_;
}
void my_array(const ::dds::core::array< ::Foo, 5L>& value) {
m_my_array_ = value;
}
void my_array(::dds::core::array< ::Foo, 5L>&& value) {
m_my_array_ = std::move(value);
}
return m_my_optional_;
}
const ::dds::core::optional< ::Foo >& my_optional() const noexcept {
return m_my_optional_;
}
void my_optional(const ::dds::core::optional< ::Foo >& value) {
m_my_optional_ = value;
}
m_my_optional_ = std::move(value);
}
void swap(MyType& other_) noexcept ;
private:
int32_t m_my_long_;
::dds::core::array< ::Foo, 5L> m_my_array_;
};
inline void swap(MyType& a, MyType& b)
noexcept
{
a.swap(b);
}
NDDSUSERDllExport std::ostream&
operator<<(std::ostream& o,
const MyType& sample);
enum class Color {
RED,
GREEN,
BLUE
};
NDDSUSERDllExport std::ostream&
operator << (std::ostream& o,
const Color& sample);
enum class MyUnionDiscriminator {
USE_LONG,
USE_STRING,
USE_FOO
};
NDDSUSERDllExport std::ostream&
operator << (std::ostream& o,
const MyUnionDiscriminator& sample);
class NDDSUSERDllExport MyUnion {
public:
MyUnion();
::MyUnionDiscriminator& _d() {
return m_d_;
}
const ::MyUnionDiscriminator& _d() const {
return m_d_;
}
void _d(::MyUnionDiscriminator value) {
m_d_ = value;
}
int32_t& my_long() {
if (_d() != (MyUnionDiscriminator::USE_LONG) ) {
throw ::dds::core::PreconditionNotMetError(
"::MyUnion::my_long not selected by the discriminator" );
}
return m_u_.m_my_long_;
}
const int32_t& my_long() const {
if (_d() != (MyUnionDiscriminator::USE_LONG) ) {
throw ::dds::core::PreconditionNotMetError(
"::MyUnion::my_long not selected by the discriminator" );
}
return m_u_.m_my_long_;
}
void my_long(int32_t value) {
m_u_.m_my_long_ = value;
m_d_= (MyUnionDiscriminator::USE_LONG);
}
if (_d() != (MyUnionDiscriminator::USE_STRING) ) {
throw ::dds::core::PreconditionNotMetError(
"::MyUnion::my_string not selected by the discriminator" );
}
return m_u_.m_my_string_;
}
if (_d() != (MyUnionDiscriminator::USE_STRING) ) {
throw ::dds::core::PreconditionNotMetError(
"::MyUnion::my_string not selected by the discriminator" );
}
return m_u_.m_my_string_;
}
m_u_.m_my_string_ = value;
m_d_= (MyUnionDiscriminator::USE_STRING);
}
m_u_.m_my_string_ = std::move(value);
m_d_= (MyUnionDiscriminator::USE_STRING);
}
if (_d() != (MyUnionDiscriminator::USE_FOO) ) {
throw ::dds::core::PreconditionNotMetError(
"::MyUnion::my_foo not selected by the discriminator" );
}
return m_u_.m_my_foo_;
}
const ::Foo& my_foo() const {
if (_d() != (MyUnionDiscriminator::USE_FOO) ) {
throw ::dds::core::PreconditionNotMetError(
"::MyUnion::my_foo not selected by the discriminator" );
}
return m_u_.m_my_foo_;
}
void my_foo(const ::Foo& value) {
m_u_.m_my_foo_ = value;
m_d_= (MyUnionDiscriminator::USE_FOO);
}
void my_foo(
::Foo&& value) {
m_u_.m_my_foo_ = std::move(value);
m_d_= (MyUnionDiscriminator::USE_FOO);
}
static ::MyUnionDiscriminator default_discriminator();
void swap(MyUnion& other_) noexcept ;
private:
::MyUnionDiscriminator m_d_;
struct NDDSUSERDllExport Union_ {
int32_t m_my_long_;
Union_();
Union_(int32_t my_long_,
const std::string& my_string_,const ::Foo& my_foo_);
};
Union_ m_u_;
};
inline void swap(MyUnion& a, MyUnion& b)
noexcept
{
a.swap(b);
}
NDDSUSERDllExport std::ostream&
operator<<(std::ostream& o,
const MyUnion& sample);
class NDDSUSERDllExport MyOtherType {
public:
MyOtherType();
MyOtherType(int32_t m1_,
double m2_,
const std::string& m3_);
int32_t& m1() noexcept {
return m_m1_;
}
const int32_t& m1() const noexcept {
return m_m1_;
}
void m1(int32_t value) {
m_m1_ = value;
}
double& m2() noexcept {
return m_m2_;
}
const double& m2() const noexcept {
return m_m2_;
}
void m2(double value) {
m_m2_ = value;
}
return m_m3_;
}
return m_m3_;
}
m_m3_ = value;
}
m_m3_ = std::move(value);
}
void swap(MyOtherType& other_) noexcept ;
private:
int32_t m_m1_;
double m_m2_;
};
inline void swap(MyOtherType& a, MyOtherType& b)
noexcept
{
a.swap(b);
}
NDDSUSERDllExport std::ostream&
operator<<(std::ostream& o,
const MyOtherType& sample);
#ifdef NDDS_STANDALONE_TYPE
namespace topic {
template <>
struct default_enumerator< ::Color>
{
static const ::Color value;
};
template <>
struct default_enumerator< ::MyUnionDiscriminator>
{
static const ::MyUnionDiscriminator value;
};
}
}
#else
namespace flat {
namespace topic {
}
}
}
namespace topic {
template<>
struct topic_type_name< ::Foo > {
return "Foo";
}
};
template<>
struct is_topic_type< ::Foo > : public ::dds::core::true_type {};
template<>
struct topic_type_support< ::Foo > {
NDDSUSERDllExport
NDDSUSERDllExport
std::vector<char>& buffer,
const ::Foo& sample,
NDDSUSERDllExport
NDDSUSERDllExport
static void reset_sample(
::Foo& sample);
NDDSUSERDllExport
static void allocate_sample(
::Foo& sample,
int,
int);
static const ::rti::topic::TypePluginKind::type type_plugin_kind =
::rti::topic::TypePluginKind::STL;
};
template<>
struct topic_type_name< ::MyType > {
return "MyType";
}
};
template<>
struct is_topic_type< ::MyType > : public ::dds::core::true_type {};
template<>
struct topic_type_support< ::MyType > {
NDDSUSERDllExport
NDDSUSERDllExport
std::vector<char>& buffer,
const ::MyType& sample,
NDDSUSERDllExport
static void from_cdr_buffer(::MyType& sample,
const std::vector<char>& buffer);
NDDSUSERDllExport
static void reset_sample(::MyType& sample);
NDDSUSERDllExport
static void allocate_sample(::MyType& sample, int, int);
static const ::rti::topic::TypePluginKind::type type_plugin_kind =
::rti::topic::TypePluginKind::STL;
};
template<>
struct topic_type_name< ::MyUnion > {
return "MyUnion";
}
};
template<>
struct is_topic_type< ::MyUnion > : public ::dds::core::true_type {};
template<>
struct topic_type_support< ::MyUnion > {
NDDSUSERDllExport
NDDSUSERDllExport
std::vector<char>& buffer,
const ::MyUnion& sample,
NDDSUSERDllExport
static void from_cdr_buffer(::MyUnion& sample,
const std::vector<char>& buffer);
NDDSUSERDllExport
static void reset_sample(::MyUnion& sample);
NDDSUSERDllExport
static void allocate_sample(::MyUnion& sample, int, int);
static const ::rti::topic::TypePluginKind::type type_plugin_kind =
::rti::topic::TypePluginKind::STL;
};
template<>
struct topic_type_name< ::MyOtherType > {
return "MyOtherType";
}
};
template<>
struct is_topic_type< ::MyOtherType > : public ::dds::core::true_type {};
template<>
struct topic_type_support< ::MyOtherType > {
NDDSUSERDllExport
NDDSUSERDllExport
std::vector<char>& buffer,
const ::MyOtherType& sample,
NDDSUSERDllExport
static void from_cdr_buffer(::MyOtherType& sample,
const std::vector<char>& buffer);
NDDSUSERDllExport
static void reset_sample(::MyOtherType& sample);
NDDSUSERDllExport
static void allocate_sample(::MyOtherType& sample, int, int);
static const ::rti::topic::TypePluginKind::type type_plugin_kind =
::rti::topic::TypePluginKind::STL;
};
}
}
namespace topic {
template<>
struct dynamic_type< ::Foo > {
NDDSUSERDllExport
static const ::dds::core::xtypes::StructType&
get();
};
template <>
struct extensibility< ::Foo > {
static const ::dds::core::xtypes::ExtensibilityKind::type kind =
::dds::core::xtypes::ExtensibilityKind::EXTENSIBLE; };
template<>
struct dynamic_type< ::MyType > {
NDDSUSERDllExport
static const ::dds::core::xtypes::StructType&
get();
};
template <>
struct extensibility< ::MyType > {
static const ::dds::core::xtypes::ExtensibilityKind::type kind =
::dds::core::xtypes::ExtensibilityKind::EXTENSIBLE; };
template <>
struct default_enumerator< ::Color>
{
static const ::Color value;
};
template<>
struct dynamic_type< ::Color > {
NDDSUSERDllExport
static const ::dds::core::xtypes::EnumType&
get();
};
template <>
struct extensibility< ::Color > {
static const ::dds::core::xtypes::ExtensibilityKind::type kind =
::dds::core::xtypes::ExtensibilityKind::EXTENSIBLE; };
template <>
struct default_enumerator< ::MyUnionDiscriminator>
{
static const ::MyUnionDiscriminator value;
};
template<>
struct dynamic_type< ::MyUnionDiscriminator > {
NDDSUSERDllExport
static const ::dds::core::xtypes::EnumType&
get();
};
template <>
struct extensibility< ::MyUnionDiscriminator > {
static const ::dds::core::xtypes::ExtensibilityKind::type kind =
::dds::core::xtypes::ExtensibilityKind::EXTENSIBLE; };
template<>
struct dynamic_type< ::MyUnion > {
NDDSUSERDllExport
static const ::dds::core::xtypes::UnionType&
get();
};
template <>
struct extensibility< ::MyUnion > {
static const ::dds::core::xtypes::ExtensibilityKind::type kind =
::dds::core::xtypes::ExtensibilityKind::EXTENSIBLE; };
template<>
struct dynamic_type< ::MyOtherType > {
NDDSUSERDllExport
static const ::dds::core::xtypes::StructType&
get();
};
template <>
struct extensibility< ::MyOtherType > {
static const ::dds::core::xtypes::ExtensibilityKind::type kind =
::dds::core::xtypes::ExtensibilityKind::EXTENSIBLE; };
}
}
#endif
#if (defined(RTI_WIN32) || defined (RTI_WINCE) || defined(RTI_INTIME)) && defined(NDDS_USER_DLL_EXPORT)
#undef NDDSUSERDllExport
#define NDDSUSERDllExport
#endif
#endif
An example topic-type.
Definition: types.dxx:34
void swap(Duration &lhs, Duration &rhs) OMG_NOEXCEPT
Swap the contents of two Duration objects.
std::ostream & operator<<(std::ostream &os, const dds::core::InstanceHandle &h)
Prints an instance handle.
Definition: dds/core/InstanceHandle.hpp:48
<<value-type>> Represents an object that may not contain a valid value
Definition: OptionalImpl.hpp:49
bool operator==(const optional< T > &a, const optional< T > &b)
Compares two optional values.
Definition: OptionalImpl.hpp:672
bool operator!=(const optional< T > &a, const optional< T > &b)
Compares two optional values.
Definition: OptionalImpl.hpp:694
DynamicData & from_cdr_buffer(DynamicData &sample, const std::vector< char > &buffer)
<<extension>> Creates a DynamicData sample by deserializing a CDR buffer'
std::vector< char > & to_cdr_buffer(std::vector< char > &buffer, const DynamicData &sample, dds::core::policy::DataRepresentationId representation_id=dds::core::policy::DataRepresentation::auto_id())
<<extension>> Serializes a DynamicData sample into CDR format
<<value-type>> Represents and IDL enum type
Definition: EnumTypeImpl.hpp:36
<<value-type>> Represents and IDL struct type
Definition: StructTypeImpl.hpp:34
<<value-type>> Represents and IDL union type
Definition: UnionTypeImpl.hpp:34
<<reference-type>> Container for all dds::core::Entity objects.
Definition: TDomainParticipant.hpp:63
void register_type(dds::domain::DomainParticipant &participant, const std::string &name, const dds::core::xtypes::DynamicType &type, const rti::core::xtypes::DynamicDataTypeSerializationProperty &serialization_property=rti::core::xtypes::DynamicDataTypeSerializationProperty::DEFAULT)
<<extension>> Registers a DynamicType with specific serialization properties
DataWriter< T > get(const AnyDataWriter &any_writer)
Same as AnyDataWriter::get()
Definition: AnyDataWriter.hpp:250
const std::string & type_name() const
<<extension>> Get the type name associated with this DataReader
Definition: DataReaderImpl.hpp:821
dds::core::optional< dds::core::xtypes::DynamicType > type() const
<<extension>> Get the type
const dds::core::policy::DataRepresentation & representation() const
Get the publication data representation.
Definition: BuiltinTopicImpl.hpp:703
<<value-type>> A bounded sequence of elements
Definition: BoundedSequence.hpp:108
basic_string< char, rti::core::memory::OsapiAllocator< char > > string
A string convertible to std::string and with similar functionality.
Definition: String.hpp:266
int16_t DataRepresentationId
The type of the elements that DataRepresentation contains.
Definition: dds/core/types.hpp:93
static DataRepresentationId auto_id()
Representation automatically chosen based on the type.
Definition: TCorePolicy.hpp:1825
void swap(Duration &lhs, Duration &rhs) OMG_NOEXCEPT
Swap the contents of two Duration objects.
The dds namespace. The dds namespace includes all of the standard types, classes, and functions.
Definition: ClientEndpoint.hpp:27
<<extension>> The namespace that contains the extension types and functions to the DDS standard.
Definition: QueueConsumerImpl.hpp:40