// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*!
 * @file types.cpp
 * This source file contains the implementation of the described types in the IDL file.
 *
 * This file was generated by the tool fastddsgen (version: 3.3.2).
 */

#ifdef _WIN32
// Remove linker warning LNK4221 on Visual Studio
namespace {
char dummy;
}  // namespace
#endif  // _WIN32

#include "types.h"

#if FASTCDR_VERSION_MAJOR > 1

#include <fastcdr/Cdr.h>


#include <fastcdr/exceptions/BadParamException.h>
using namespace eprosima::fastcdr::exception;

#include <utility>


namespace eprosima {

namespace fastdds {

namespace statistics {

namespace detail {



EntityId_s::EntityId_s()
{
}

EntityId_s::~EntityId_s()
{
}

EntityId_s::EntityId_s(
        const EntityId_s& x)
{
    m_value = x.m_value;
}

EntityId_s::EntityId_s(
        EntityId_s&& x) noexcept
{
    m_value = std::move(x.m_value);
}

EntityId_s& EntityId_s::operator =(
        const EntityId_s& x)
{

    m_value = x.m_value;
    return *this;
}

EntityId_s& EntityId_s::operator =(
        EntityId_s&& x) noexcept
{

    m_value = std::move(x.m_value);
    return *this;
}

bool EntityId_s::operator ==(
        const EntityId_s& x) const
{
    return (m_value == x.m_value);
}

bool EntityId_s::operator !=(
        const EntityId_s& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member value
 * @param _value New value to be copied in member value
 */
void EntityId_s::value(
        const std::array<uint8_t, 4>& _value)
{
    m_value = _value;
}

/*!
 * @brief This function moves the value in member value
 * @param _value New value to be moved in member value
 */
void EntityId_s::value(
        std::array<uint8_t, 4>&& _value)
{
    m_value = std::move(_value);
}

/*!
 * @brief This function returns a constant reference to member value
 * @return Constant reference to member value
 */
const std::array<uint8_t, 4>& EntityId_s::value() const
{
    return m_value;
}

/*!
 * @brief This function returns a reference to member value
 * @return Reference to member value
 */
std::array<uint8_t, 4>& EntityId_s::value()
{
    return m_value;
}




GuidPrefix_s::GuidPrefix_s()
{
}

GuidPrefix_s::~GuidPrefix_s()
{
}

GuidPrefix_s::GuidPrefix_s(
        const GuidPrefix_s& x)
{
    m_value = x.m_value;
}

GuidPrefix_s::GuidPrefix_s(
        GuidPrefix_s&& x) noexcept
{
    m_value = std::move(x.m_value);
}

GuidPrefix_s& GuidPrefix_s::operator =(
        const GuidPrefix_s& x)
{

    m_value = x.m_value;
    return *this;
}

GuidPrefix_s& GuidPrefix_s::operator =(
        GuidPrefix_s&& x) noexcept
{

    m_value = std::move(x.m_value);
    return *this;
}

bool GuidPrefix_s::operator ==(
        const GuidPrefix_s& x) const
{
    return (m_value == x.m_value);
}

bool GuidPrefix_s::operator !=(
        const GuidPrefix_s& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member value
 * @param _value New value to be copied in member value
 */
void GuidPrefix_s::value(
        const std::array<uint8_t, 12>& _value)
{
    m_value = _value;
}

/*!
 * @brief This function moves the value in member value
 * @param _value New value to be moved in member value
 */
void GuidPrefix_s::value(
        std::array<uint8_t, 12>&& _value)
{
    m_value = std::move(_value);
}

/*!
 * @brief This function returns a constant reference to member value
 * @return Constant reference to member value
 */
const std::array<uint8_t, 12>& GuidPrefix_s::value() const
{
    return m_value;
}

/*!
 * @brief This function returns a reference to member value
 * @return Reference to member value
 */
std::array<uint8_t, 12>& GuidPrefix_s::value()
{
    return m_value;
}




GUID_s::GUID_s()
{
}

GUID_s::~GUID_s()
{
}

GUID_s::GUID_s(
        const GUID_s& x)
{
    m_guidPrefix = x.m_guidPrefix;
    m_entityId = x.m_entityId;
}

GUID_s::GUID_s(
        GUID_s&& x) noexcept
{
    m_guidPrefix = std::move(x.m_guidPrefix);
    m_entityId = std::move(x.m_entityId);
}

GUID_s& GUID_s::operator =(
        const GUID_s& x)
{

    m_guidPrefix = x.m_guidPrefix;
    m_entityId = x.m_entityId;
    return *this;
}

GUID_s& GUID_s::operator =(
        GUID_s&& x) noexcept
{

    m_guidPrefix = std::move(x.m_guidPrefix);
    m_entityId = std::move(x.m_entityId);
    return *this;
}

bool GUID_s::operator ==(
        const GUID_s& x) const
{
    return (m_guidPrefix == x.m_guidPrefix &&
           m_entityId == x.m_entityId);
}

bool GUID_s::operator !=(
        const GUID_s& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member guidPrefix
 * @param _guidPrefix New value to be copied in member guidPrefix
 */
void GUID_s::guidPrefix(
        const eprosima::fastdds::statistics::detail::GuidPrefix_s& _guidPrefix)
{
    m_guidPrefix = _guidPrefix;
}

/*!
 * @brief This function moves the value in member guidPrefix
 * @param _guidPrefix New value to be moved in member guidPrefix
 */
void GUID_s::guidPrefix(
        eprosima::fastdds::statistics::detail::GuidPrefix_s&& _guidPrefix)
{
    m_guidPrefix = std::move(_guidPrefix);
}

/*!
 * @brief This function returns a constant reference to member guidPrefix
 * @return Constant reference to member guidPrefix
 */
const eprosima::fastdds::statistics::detail::GuidPrefix_s& GUID_s::guidPrefix() const
{
    return m_guidPrefix;
}

/*!
 * @brief This function returns a reference to member guidPrefix
 * @return Reference to member guidPrefix
 */
eprosima::fastdds::statistics::detail::GuidPrefix_s& GUID_s::guidPrefix()
{
    return m_guidPrefix;
}


/*!
 * @brief This function copies the value in member entityId
 * @param _entityId New value to be copied in member entityId
 */
void GUID_s::entityId(
        const eprosima::fastdds::statistics::detail::EntityId_s& _entityId)
{
    m_entityId = _entityId;
}

/*!
 * @brief This function moves the value in member entityId
 * @param _entityId New value to be moved in member entityId
 */
void GUID_s::entityId(
        eprosima::fastdds::statistics::detail::EntityId_s&& _entityId)
{
    m_entityId = std::move(_entityId);
}

/*!
 * @brief This function returns a constant reference to member entityId
 * @return Constant reference to member entityId
 */
const eprosima::fastdds::statistics::detail::EntityId_s& GUID_s::entityId() const
{
    return m_entityId;
}

/*!
 * @brief This function returns a reference to member entityId
 * @return Reference to member entityId
 */
eprosima::fastdds::statistics::detail::EntityId_s& GUID_s::entityId()
{
    return m_entityId;
}




SequenceNumber_s::SequenceNumber_s()
{
}

SequenceNumber_s::~SequenceNumber_s()
{
}

SequenceNumber_s::SequenceNumber_s(
        const SequenceNumber_s& x)
{
    m_high = x.m_high;
    m_low = x.m_low;
}

SequenceNumber_s::SequenceNumber_s(
        SequenceNumber_s&& x) noexcept
{
    m_high = x.m_high;
    m_low = x.m_low;
}

SequenceNumber_s& SequenceNumber_s::operator =(
        const SequenceNumber_s& x)
{

    m_high = x.m_high;
    m_low = x.m_low;
    return *this;
}

SequenceNumber_s& SequenceNumber_s::operator =(
        SequenceNumber_s&& x) noexcept
{

    m_high = x.m_high;
    m_low = x.m_low;
    return *this;
}

bool SequenceNumber_s::operator ==(
        const SequenceNumber_s& x) const
{
    return (m_high == x.m_high &&
           m_low == x.m_low);
}

bool SequenceNumber_s::operator !=(
        const SequenceNumber_s& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function sets a value in member high
 * @param _high New value for member high
 */
void SequenceNumber_s::high(
        int32_t _high)
{
    m_high = _high;
}

/*!
 * @brief This function returns the value of member high
 * @return Value of member high
 */
int32_t SequenceNumber_s::high() const
{
    return m_high;
}

/*!
 * @brief This function returns a reference to member high
 * @return Reference to member high
 */
int32_t& SequenceNumber_s::high()
{
    return m_high;
}


/*!
 * @brief This function sets a value in member low
 * @param _low New value for member low
 */
void SequenceNumber_s::low(
        uint32_t _low)
{
    m_low = _low;
}

/*!
 * @brief This function returns the value of member low
 * @return Value of member low
 */
uint32_t SequenceNumber_s::low() const
{
    return m_low;
}

/*!
 * @brief This function returns a reference to member low
 * @return Reference to member low
 */
uint32_t& SequenceNumber_s::low()
{
    return m_low;
}




SampleIdentity_s::SampleIdentity_s()
{
}

SampleIdentity_s::~SampleIdentity_s()
{
}

SampleIdentity_s::SampleIdentity_s(
        const SampleIdentity_s& x)
{
    m_writer_guid = x.m_writer_guid;
    m_sequence_number = x.m_sequence_number;
}

SampleIdentity_s::SampleIdentity_s(
        SampleIdentity_s&& x) noexcept
{
    m_writer_guid = std::move(x.m_writer_guid);
    m_sequence_number = std::move(x.m_sequence_number);
}

SampleIdentity_s& SampleIdentity_s::operator =(
        const SampleIdentity_s& x)
{

    m_writer_guid = x.m_writer_guid;
    m_sequence_number = x.m_sequence_number;
    return *this;
}

SampleIdentity_s& SampleIdentity_s::operator =(
        SampleIdentity_s&& x) noexcept
{

    m_writer_guid = std::move(x.m_writer_guid);
    m_sequence_number = std::move(x.m_sequence_number);
    return *this;
}

bool SampleIdentity_s::operator ==(
        const SampleIdentity_s& x) const
{
    return (m_writer_guid == x.m_writer_guid &&
           m_sequence_number == x.m_sequence_number);
}

bool SampleIdentity_s::operator !=(
        const SampleIdentity_s& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member writer_guid
 * @param _writer_guid New value to be copied in member writer_guid
 */
void SampleIdentity_s::writer_guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _writer_guid)
{
    m_writer_guid = _writer_guid;
}

/*!
 * @brief This function moves the value in member writer_guid
 * @param _writer_guid New value to be moved in member writer_guid
 */
void SampleIdentity_s::writer_guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _writer_guid)
{
    m_writer_guid = std::move(_writer_guid);
}

/*!
 * @brief This function returns a constant reference to member writer_guid
 * @return Constant reference to member writer_guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& SampleIdentity_s::writer_guid() const
{
    return m_writer_guid;
}

/*!
 * @brief This function returns a reference to member writer_guid
 * @return Reference to member writer_guid
 */
eprosima::fastdds::statistics::detail::GUID_s& SampleIdentity_s::writer_guid()
{
    return m_writer_guid;
}


/*!
 * @brief This function copies the value in member sequence_number
 * @param _sequence_number New value to be copied in member sequence_number
 */
void SampleIdentity_s::sequence_number(
        const eprosima::fastdds::statistics::detail::SequenceNumber_s& _sequence_number)
{
    m_sequence_number = _sequence_number;
}

/*!
 * @brief This function moves the value in member sequence_number
 * @param _sequence_number New value to be moved in member sequence_number
 */
void SampleIdentity_s::sequence_number(
        eprosima::fastdds::statistics::detail::SequenceNumber_s&& _sequence_number)
{
    m_sequence_number = std::move(_sequence_number);
}

/*!
 * @brief This function returns a constant reference to member sequence_number
 * @return Constant reference to member sequence_number
 */
const eprosima::fastdds::statistics::detail::SequenceNumber_s& SampleIdentity_s::sequence_number() const
{
    return m_sequence_number;
}

/*!
 * @brief This function returns a reference to member sequence_number
 * @return Reference to member sequence_number
 */
eprosima::fastdds::statistics::detail::SequenceNumber_s& SampleIdentity_s::sequence_number()
{
    return m_sequence_number;
}




Locator_s::Locator_s()
{
}

Locator_s::~Locator_s()
{
}

Locator_s::Locator_s(
        const Locator_s& x)
{
    m_kind = x.m_kind;
    m_port = x.m_port;
    m_address = x.m_address;
}

Locator_s::Locator_s(
        Locator_s&& x) noexcept
{
    m_kind = x.m_kind;
    m_port = x.m_port;
    m_address = std::move(x.m_address);
}

Locator_s& Locator_s::operator =(
        const Locator_s& x)
{

    m_kind = x.m_kind;
    m_port = x.m_port;
    m_address = x.m_address;
    return *this;
}

Locator_s& Locator_s::operator =(
        Locator_s&& x) noexcept
{

    m_kind = x.m_kind;
    m_port = x.m_port;
    m_address = std::move(x.m_address);
    return *this;
}

bool Locator_s::operator ==(
        const Locator_s& x) const
{
    return (m_kind == x.m_kind &&
           m_port == x.m_port &&
           m_address == x.m_address);
}

bool Locator_s::operator !=(
        const Locator_s& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function sets a value in member kind
 * @param _kind New value for member kind
 */
void Locator_s::kind(
        int32_t _kind)
{
    m_kind = _kind;
}

/*!
 * @brief This function returns the value of member kind
 * @return Value of member kind
 */
int32_t Locator_s::kind() const
{
    return m_kind;
}

/*!
 * @brief This function returns a reference to member kind
 * @return Reference to member kind
 */
int32_t& Locator_s::kind()
{
    return m_kind;
}


/*!
 * @brief This function sets a value in member port
 * @param _port New value for member port
 */
void Locator_s::port(
        uint32_t _port)
{
    m_port = _port;
}

/*!
 * @brief This function returns the value of member port
 * @return Value of member port
 */
uint32_t Locator_s::port() const
{
    return m_port;
}

/*!
 * @brief This function returns a reference to member port
 * @return Reference to member port
 */
uint32_t& Locator_s::port()
{
    return m_port;
}


/*!
 * @brief This function copies the value in member address
 * @param _address New value to be copied in member address
 */
void Locator_s::address(
        const std::array<uint8_t, 16>& _address)
{
    m_address = _address;
}

/*!
 * @brief This function moves the value in member address
 * @param _address New value to be moved in member address
 */
void Locator_s::address(
        std::array<uint8_t, 16>&& _address)
{
    m_address = std::move(_address);
}

/*!
 * @brief This function returns a constant reference to member address
 * @return Constant reference to member address
 */
const std::array<uint8_t, 16>& Locator_s::address() const
{
    return m_address;
}

/*!
 * @brief This function returns a reference to member address
 * @return Reference to member address
 */
std::array<uint8_t, 16>& Locator_s::address()
{
    return m_address;
}




} // namespace detail


DiscoveryTime::DiscoveryTime()
{
}

DiscoveryTime::~DiscoveryTime()
{
}

DiscoveryTime::DiscoveryTime(
        const DiscoveryTime& x)
{
    m_local_participant_guid = x.m_local_participant_guid;
    m_remote_entity_guid = x.m_remote_entity_guid;
    m_time = x.m_time;
    m_host = x.m_host;
    m_user = x.m_user;
    m_process = x.m_process;
}

DiscoveryTime::DiscoveryTime(
        DiscoveryTime&& x) noexcept
{
    m_local_participant_guid = std::move(x.m_local_participant_guid);
    m_remote_entity_guid = std::move(x.m_remote_entity_guid);
    m_time = x.m_time;
    m_host = std::move(x.m_host);
    m_user = std::move(x.m_user);
    m_process = std::move(x.m_process);
}

DiscoveryTime& DiscoveryTime::operator =(
        const DiscoveryTime& x)
{

    m_local_participant_guid = x.m_local_participant_guid;
    m_remote_entity_guid = x.m_remote_entity_guid;
    m_time = x.m_time;
    m_host = x.m_host;
    m_user = x.m_user;
    m_process = x.m_process;
    return *this;
}

DiscoveryTime& DiscoveryTime::operator =(
        DiscoveryTime&& x) noexcept
{

    m_local_participant_guid = std::move(x.m_local_participant_guid);
    m_remote_entity_guid = std::move(x.m_remote_entity_guid);
    m_time = x.m_time;
    m_host = std::move(x.m_host);
    m_user = std::move(x.m_user);
    m_process = std::move(x.m_process);
    return *this;
}

bool DiscoveryTime::operator ==(
        const DiscoveryTime& x) const
{
    return (m_local_participant_guid == x.m_local_participant_guid &&
           m_remote_entity_guid == x.m_remote_entity_guid &&
           m_time == x.m_time &&
           m_host == x.m_host &&
           m_user == x.m_user &&
           m_process == x.m_process);
}

bool DiscoveryTime::operator !=(
        const DiscoveryTime& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member local_participant_guid
 * @param _local_participant_guid New value to be copied in member local_participant_guid
 */
void DiscoveryTime::local_participant_guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _local_participant_guid)
{
    m_local_participant_guid = _local_participant_guid;
}

/*!
 * @brief This function moves the value in member local_participant_guid
 * @param _local_participant_guid New value to be moved in member local_participant_guid
 */
void DiscoveryTime::local_participant_guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _local_participant_guid)
{
    m_local_participant_guid = std::move(_local_participant_guid);
}

/*!
 * @brief This function returns a constant reference to member local_participant_guid
 * @return Constant reference to member local_participant_guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& DiscoveryTime::local_participant_guid() const
{
    return m_local_participant_guid;
}

/*!
 * @brief This function returns a reference to member local_participant_guid
 * @return Reference to member local_participant_guid
 */
eprosima::fastdds::statistics::detail::GUID_s& DiscoveryTime::local_participant_guid()
{
    return m_local_participant_guid;
}


/*!
 * @brief This function copies the value in member remote_entity_guid
 * @param _remote_entity_guid New value to be copied in member remote_entity_guid
 */
void DiscoveryTime::remote_entity_guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _remote_entity_guid)
{
    m_remote_entity_guid = _remote_entity_guid;
}

/*!
 * @brief This function moves the value in member remote_entity_guid
 * @param _remote_entity_guid New value to be moved in member remote_entity_guid
 */
void DiscoveryTime::remote_entity_guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _remote_entity_guid)
{
    m_remote_entity_guid = std::move(_remote_entity_guid);
}

/*!
 * @brief This function returns a constant reference to member remote_entity_guid
 * @return Constant reference to member remote_entity_guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& DiscoveryTime::remote_entity_guid() const
{
    return m_remote_entity_guid;
}

/*!
 * @brief This function returns a reference to member remote_entity_guid
 * @return Reference to member remote_entity_guid
 */
eprosima::fastdds::statistics::detail::GUID_s& DiscoveryTime::remote_entity_guid()
{
    return m_remote_entity_guid;
}


/*!
 * @brief This function sets a value in member time
 * @param _time New value for member time
 */
void DiscoveryTime::time(
        uint64_t _time)
{
    m_time = _time;
}

/*!
 * @brief This function returns the value of member time
 * @return Value of member time
 */
uint64_t DiscoveryTime::time() const
{
    return m_time;
}

/*!
 * @brief This function returns a reference to member time
 * @return Reference to member time
 */
uint64_t& DiscoveryTime::time()
{
    return m_time;
}


/*!
 * @brief This function copies the value in member host
 * @param _host New value to be copied in member host
 */
void DiscoveryTime::host(
        const std::string& _host)
{
    m_host = _host;
}

/*!
 * @brief This function moves the value in member host
 * @param _host New value to be moved in member host
 */
void DiscoveryTime::host(
        std::string&& _host)
{
    m_host = std::move(_host);
}

/*!
 * @brief This function returns a constant reference to member host
 * @return Constant reference to member host
 */
const std::string& DiscoveryTime::host() const
{
    return m_host;
}

/*!
 * @brief This function returns a reference to member host
 * @return Reference to member host
 */
std::string& DiscoveryTime::host()
{
    return m_host;
}


/*!
 * @brief This function copies the value in member user
 * @param _user New value to be copied in member user
 */
void DiscoveryTime::user(
        const std::string& _user)
{
    m_user = _user;
}

/*!
 * @brief This function moves the value in member user
 * @param _user New value to be moved in member user
 */
void DiscoveryTime::user(
        std::string&& _user)
{
    m_user = std::move(_user);
}

/*!
 * @brief This function returns a constant reference to member user
 * @return Constant reference to member user
 */
const std::string& DiscoveryTime::user() const
{
    return m_user;
}

/*!
 * @brief This function returns a reference to member user
 * @return Reference to member user
 */
std::string& DiscoveryTime::user()
{
    return m_user;
}


/*!
 * @brief This function copies the value in member process
 * @param _process New value to be copied in member process
 */
void DiscoveryTime::process(
        const std::string& _process)
{
    m_process = _process;
}

/*!
 * @brief This function moves the value in member process
 * @param _process New value to be moved in member process
 */
void DiscoveryTime::process(
        std::string&& _process)
{
    m_process = std::move(_process);
}

/*!
 * @brief This function returns a constant reference to member process
 * @return Constant reference to member process
 */
const std::string& DiscoveryTime::process() const
{
    return m_process;
}

/*!
 * @brief This function returns a reference to member process
 * @return Reference to member process
 */
std::string& DiscoveryTime::process()
{
    return m_process;
}




EntityCount::EntityCount()
{
}

EntityCount::~EntityCount()
{
}

EntityCount::EntityCount(
        const EntityCount& x)
{
    m_guid = x.m_guid;
    m_count = x.m_count;
}

EntityCount::EntityCount(
        EntityCount&& x) noexcept
{
    m_guid = std::move(x.m_guid);
    m_count = x.m_count;
}

EntityCount& EntityCount::operator =(
        const EntityCount& x)
{

    m_guid = x.m_guid;
    m_count = x.m_count;
    return *this;
}

EntityCount& EntityCount::operator =(
        EntityCount&& x) noexcept
{

    m_guid = std::move(x.m_guid);
    m_count = x.m_count;
    return *this;
}

bool EntityCount::operator ==(
        const EntityCount& x) const
{
    return (m_guid == x.m_guid &&
           m_count == x.m_count);
}

bool EntityCount::operator !=(
        const EntityCount& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member guid
 * @param _guid New value to be copied in member guid
 */
void EntityCount::guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _guid)
{
    m_guid = _guid;
}

/*!
 * @brief This function moves the value in member guid
 * @param _guid New value to be moved in member guid
 */
void EntityCount::guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _guid)
{
    m_guid = std::move(_guid);
}

/*!
 * @brief This function returns a constant reference to member guid
 * @return Constant reference to member guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& EntityCount::guid() const
{
    return m_guid;
}

/*!
 * @brief This function returns a reference to member guid
 * @return Reference to member guid
 */
eprosima::fastdds::statistics::detail::GUID_s& EntityCount::guid()
{
    return m_guid;
}


/*!
 * @brief This function sets a value in member count
 * @param _count New value for member count
 */
void EntityCount::count(
        uint64_t _count)
{
    m_count = _count;
}

/*!
 * @brief This function returns the value of member count
 * @return Value of member count
 */
uint64_t EntityCount::count() const
{
    return m_count;
}

/*!
 * @brief This function returns a reference to member count
 * @return Reference to member count
 */
uint64_t& EntityCount::count()
{
    return m_count;
}




SampleIdentityCount::SampleIdentityCount()
{
}

SampleIdentityCount::~SampleIdentityCount()
{
}

SampleIdentityCount::SampleIdentityCount(
        const SampleIdentityCount& x)
{
    m_sample_id = x.m_sample_id;
    m_count = x.m_count;
}

SampleIdentityCount::SampleIdentityCount(
        SampleIdentityCount&& x) noexcept
{
    m_sample_id = std::move(x.m_sample_id);
    m_count = x.m_count;
}

SampleIdentityCount& SampleIdentityCount::operator =(
        const SampleIdentityCount& x)
{

    m_sample_id = x.m_sample_id;
    m_count = x.m_count;
    return *this;
}

SampleIdentityCount& SampleIdentityCount::operator =(
        SampleIdentityCount&& x) noexcept
{

    m_sample_id = std::move(x.m_sample_id);
    m_count = x.m_count;
    return *this;
}

bool SampleIdentityCount::operator ==(
        const SampleIdentityCount& x) const
{
    return (m_sample_id == x.m_sample_id &&
           m_count == x.m_count);
}

bool SampleIdentityCount::operator !=(
        const SampleIdentityCount& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member sample_id
 * @param _sample_id New value to be copied in member sample_id
 */
void SampleIdentityCount::sample_id(
        const eprosima::fastdds::statistics::detail::SampleIdentity_s& _sample_id)
{
    m_sample_id = _sample_id;
}

/*!
 * @brief This function moves the value in member sample_id
 * @param _sample_id New value to be moved in member sample_id
 */
void SampleIdentityCount::sample_id(
        eprosima::fastdds::statistics::detail::SampleIdentity_s&& _sample_id)
{
    m_sample_id = std::move(_sample_id);
}

/*!
 * @brief This function returns a constant reference to member sample_id
 * @return Constant reference to member sample_id
 */
const eprosima::fastdds::statistics::detail::SampleIdentity_s& SampleIdentityCount::sample_id() const
{
    return m_sample_id;
}

/*!
 * @brief This function returns a reference to member sample_id
 * @return Reference to member sample_id
 */
eprosima::fastdds::statistics::detail::SampleIdentity_s& SampleIdentityCount::sample_id()
{
    return m_sample_id;
}


/*!
 * @brief This function sets a value in member count
 * @param _count New value for member count
 */
void SampleIdentityCount::count(
        uint64_t _count)
{
    m_count = _count;
}

/*!
 * @brief This function returns the value of member count
 * @return Value of member count
 */
uint64_t SampleIdentityCount::count() const
{
    return m_count;
}

/*!
 * @brief This function returns a reference to member count
 * @return Reference to member count
 */
uint64_t& SampleIdentityCount::count()
{
    return m_count;
}




Entity2LocatorTraffic::Entity2LocatorTraffic()
{
}

Entity2LocatorTraffic::~Entity2LocatorTraffic()
{
}

Entity2LocatorTraffic::Entity2LocatorTraffic(
        const Entity2LocatorTraffic& x)
{
    m_src_guid = x.m_src_guid;
    m_dst_locator = x.m_dst_locator;
    m_packet_count = x.m_packet_count;
    m_byte_count = x.m_byte_count;
    m_byte_magnitude_order = x.m_byte_magnitude_order;
}

Entity2LocatorTraffic::Entity2LocatorTraffic(
        Entity2LocatorTraffic&& x) noexcept
{
    m_src_guid = std::move(x.m_src_guid);
    m_dst_locator = std::move(x.m_dst_locator);
    m_packet_count = x.m_packet_count;
    m_byte_count = x.m_byte_count;
    m_byte_magnitude_order = x.m_byte_magnitude_order;
}

Entity2LocatorTraffic& Entity2LocatorTraffic::operator =(
        const Entity2LocatorTraffic& x)
{

    m_src_guid = x.m_src_guid;
    m_dst_locator = x.m_dst_locator;
    m_packet_count = x.m_packet_count;
    m_byte_count = x.m_byte_count;
    m_byte_magnitude_order = x.m_byte_magnitude_order;
    return *this;
}

Entity2LocatorTraffic& Entity2LocatorTraffic::operator =(
        Entity2LocatorTraffic&& x) noexcept
{

    m_src_guid = std::move(x.m_src_guid);
    m_dst_locator = std::move(x.m_dst_locator);
    m_packet_count = x.m_packet_count;
    m_byte_count = x.m_byte_count;
    m_byte_magnitude_order = x.m_byte_magnitude_order;
    return *this;
}

bool Entity2LocatorTraffic::operator ==(
        const Entity2LocatorTraffic& x) const
{
    return (m_src_guid == x.m_src_guid &&
           m_dst_locator == x.m_dst_locator &&
           m_packet_count == x.m_packet_count &&
           m_byte_count == x.m_byte_count &&
           m_byte_magnitude_order == x.m_byte_magnitude_order);
}

bool Entity2LocatorTraffic::operator !=(
        const Entity2LocatorTraffic& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member src_guid
 * @param _src_guid New value to be copied in member src_guid
 */
void Entity2LocatorTraffic::src_guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _src_guid)
{
    m_src_guid = _src_guid;
}

/*!
 * @brief This function moves the value in member src_guid
 * @param _src_guid New value to be moved in member src_guid
 */
void Entity2LocatorTraffic::src_guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _src_guid)
{
    m_src_guid = std::move(_src_guid);
}

/*!
 * @brief This function returns a constant reference to member src_guid
 * @return Constant reference to member src_guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& Entity2LocatorTraffic::src_guid() const
{
    return m_src_guid;
}

/*!
 * @brief This function returns a reference to member src_guid
 * @return Reference to member src_guid
 */
eprosima::fastdds::statistics::detail::GUID_s& Entity2LocatorTraffic::src_guid()
{
    return m_src_guid;
}


/*!
 * @brief This function copies the value in member dst_locator
 * @param _dst_locator New value to be copied in member dst_locator
 */
void Entity2LocatorTraffic::dst_locator(
        const eprosima::fastdds::statistics::detail::Locator_s& _dst_locator)
{
    m_dst_locator = _dst_locator;
}

/*!
 * @brief This function moves the value in member dst_locator
 * @param _dst_locator New value to be moved in member dst_locator
 */
void Entity2LocatorTraffic::dst_locator(
        eprosima::fastdds::statistics::detail::Locator_s&& _dst_locator)
{
    m_dst_locator = std::move(_dst_locator);
}

/*!
 * @brief This function returns a constant reference to member dst_locator
 * @return Constant reference to member dst_locator
 */
const eprosima::fastdds::statistics::detail::Locator_s& Entity2LocatorTraffic::dst_locator() const
{
    return m_dst_locator;
}

/*!
 * @brief This function returns a reference to member dst_locator
 * @return Reference to member dst_locator
 */
eprosima::fastdds::statistics::detail::Locator_s& Entity2LocatorTraffic::dst_locator()
{
    return m_dst_locator;
}


/*!
 * @brief This function sets a value in member packet_count
 * @param _packet_count New value for member packet_count
 */
void Entity2LocatorTraffic::packet_count(
        uint64_t _packet_count)
{
    m_packet_count = _packet_count;
}

/*!
 * @brief This function returns the value of member packet_count
 * @return Value of member packet_count
 */
uint64_t Entity2LocatorTraffic::packet_count() const
{
    return m_packet_count;
}

/*!
 * @brief This function returns a reference to member packet_count
 * @return Reference to member packet_count
 */
uint64_t& Entity2LocatorTraffic::packet_count()
{
    return m_packet_count;
}


/*!
 * @brief This function sets a value in member byte_count
 * @param _byte_count New value for member byte_count
 */
void Entity2LocatorTraffic::byte_count(
        uint64_t _byte_count)
{
    m_byte_count = _byte_count;
}

/*!
 * @brief This function returns the value of member byte_count
 * @return Value of member byte_count
 */
uint64_t Entity2LocatorTraffic::byte_count() const
{
    return m_byte_count;
}

/*!
 * @brief This function returns a reference to member byte_count
 * @return Reference to member byte_count
 */
uint64_t& Entity2LocatorTraffic::byte_count()
{
    return m_byte_count;
}


/*!
 * @brief This function sets a value in member byte_magnitude_order
 * @param _byte_magnitude_order New value for member byte_magnitude_order
 */
void Entity2LocatorTraffic::byte_magnitude_order(
        int16_t _byte_magnitude_order)
{
    m_byte_magnitude_order = _byte_magnitude_order;
}

/*!
 * @brief This function returns the value of member byte_magnitude_order
 * @return Value of member byte_magnitude_order
 */
int16_t Entity2LocatorTraffic::byte_magnitude_order() const
{
    return m_byte_magnitude_order;
}

/*!
 * @brief This function returns a reference to member byte_magnitude_order
 * @return Reference to member byte_magnitude_order
 */
int16_t& Entity2LocatorTraffic::byte_magnitude_order()
{
    return m_byte_magnitude_order;
}




WriterReaderData::WriterReaderData()
{
}

WriterReaderData::~WriterReaderData()
{
}

WriterReaderData::WriterReaderData(
        const WriterReaderData& x)
{
    m_writer_guid = x.m_writer_guid;
    m_reader_guid = x.m_reader_guid;
    m_data = x.m_data;
}

WriterReaderData::WriterReaderData(
        WriterReaderData&& x) noexcept
{
    m_writer_guid = std::move(x.m_writer_guid);
    m_reader_guid = std::move(x.m_reader_guid);
    m_data = x.m_data;
}

WriterReaderData& WriterReaderData::operator =(
        const WriterReaderData& x)
{

    m_writer_guid = x.m_writer_guid;
    m_reader_guid = x.m_reader_guid;
    m_data = x.m_data;
    return *this;
}

WriterReaderData& WriterReaderData::operator =(
        WriterReaderData&& x) noexcept
{

    m_writer_guid = std::move(x.m_writer_guid);
    m_reader_guid = std::move(x.m_reader_guid);
    m_data = x.m_data;
    return *this;
}

bool WriterReaderData::operator ==(
        const WriterReaderData& x) const
{
    return (m_writer_guid == x.m_writer_guid &&
           m_reader_guid == x.m_reader_guid &&
           m_data == x.m_data);
}

bool WriterReaderData::operator !=(
        const WriterReaderData& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member writer_guid
 * @param _writer_guid New value to be copied in member writer_guid
 */
void WriterReaderData::writer_guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _writer_guid)
{
    m_writer_guid = _writer_guid;
}

/*!
 * @brief This function moves the value in member writer_guid
 * @param _writer_guid New value to be moved in member writer_guid
 */
void WriterReaderData::writer_guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _writer_guid)
{
    m_writer_guid = std::move(_writer_guid);
}

/*!
 * @brief This function returns a constant reference to member writer_guid
 * @return Constant reference to member writer_guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& WriterReaderData::writer_guid() const
{
    return m_writer_guid;
}

/*!
 * @brief This function returns a reference to member writer_guid
 * @return Reference to member writer_guid
 */
eprosima::fastdds::statistics::detail::GUID_s& WriterReaderData::writer_guid()
{
    return m_writer_guid;
}


/*!
 * @brief This function copies the value in member reader_guid
 * @param _reader_guid New value to be copied in member reader_guid
 */
void WriterReaderData::reader_guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _reader_guid)
{
    m_reader_guid = _reader_guid;
}

/*!
 * @brief This function moves the value in member reader_guid
 * @param _reader_guid New value to be moved in member reader_guid
 */
void WriterReaderData::reader_guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _reader_guid)
{
    m_reader_guid = std::move(_reader_guid);
}

/*!
 * @brief This function returns a constant reference to member reader_guid
 * @return Constant reference to member reader_guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& WriterReaderData::reader_guid() const
{
    return m_reader_guid;
}

/*!
 * @brief This function returns a reference to member reader_guid
 * @return Reference to member reader_guid
 */
eprosima::fastdds::statistics::detail::GUID_s& WriterReaderData::reader_guid()
{
    return m_reader_guid;
}


/*!
 * @brief This function sets a value in member data
 * @param _data New value for member data
 */
void WriterReaderData::data(
        float _data)
{
    m_data = _data;
}

/*!
 * @brief This function returns the value of member data
 * @return Value of member data
 */
float WriterReaderData::data() const
{
    return m_data;
}

/*!
 * @brief This function returns a reference to member data
 * @return Reference to member data
 */
float& WriterReaderData::data()
{
    return m_data;
}




Locator2LocatorData::Locator2LocatorData()
{
}

Locator2LocatorData::~Locator2LocatorData()
{
}

Locator2LocatorData::Locator2LocatorData(
        const Locator2LocatorData& x)
{
    m_src_locator = x.m_src_locator;
    m_dst_locator = x.m_dst_locator;
    m_data = x.m_data;
}

Locator2LocatorData::Locator2LocatorData(
        Locator2LocatorData&& x) noexcept
{
    m_src_locator = std::move(x.m_src_locator);
    m_dst_locator = std::move(x.m_dst_locator);
    m_data = x.m_data;
}

Locator2LocatorData& Locator2LocatorData::operator =(
        const Locator2LocatorData& x)
{

    m_src_locator = x.m_src_locator;
    m_dst_locator = x.m_dst_locator;
    m_data = x.m_data;
    return *this;
}

Locator2LocatorData& Locator2LocatorData::operator =(
        Locator2LocatorData&& x) noexcept
{

    m_src_locator = std::move(x.m_src_locator);
    m_dst_locator = std::move(x.m_dst_locator);
    m_data = x.m_data;
    return *this;
}

bool Locator2LocatorData::operator ==(
        const Locator2LocatorData& x) const
{
    return (m_src_locator == x.m_src_locator &&
           m_dst_locator == x.m_dst_locator &&
           m_data == x.m_data);
}

bool Locator2LocatorData::operator !=(
        const Locator2LocatorData& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member src_locator
 * @param _src_locator New value to be copied in member src_locator
 */
void Locator2LocatorData::src_locator(
        const eprosima::fastdds::statistics::detail::Locator_s& _src_locator)
{
    m_src_locator = _src_locator;
}

/*!
 * @brief This function moves the value in member src_locator
 * @param _src_locator New value to be moved in member src_locator
 */
void Locator2LocatorData::src_locator(
        eprosima::fastdds::statistics::detail::Locator_s&& _src_locator)
{
    m_src_locator = std::move(_src_locator);
}

/*!
 * @brief This function returns a constant reference to member src_locator
 * @return Constant reference to member src_locator
 */
const eprosima::fastdds::statistics::detail::Locator_s& Locator2LocatorData::src_locator() const
{
    return m_src_locator;
}

/*!
 * @brief This function returns a reference to member src_locator
 * @return Reference to member src_locator
 */
eprosima::fastdds::statistics::detail::Locator_s& Locator2LocatorData::src_locator()
{
    return m_src_locator;
}


/*!
 * @brief This function copies the value in member dst_locator
 * @param _dst_locator New value to be copied in member dst_locator
 */
void Locator2LocatorData::dst_locator(
        const eprosima::fastdds::statistics::detail::Locator_s& _dst_locator)
{
    m_dst_locator = _dst_locator;
}

/*!
 * @brief This function moves the value in member dst_locator
 * @param _dst_locator New value to be moved in member dst_locator
 */
void Locator2LocatorData::dst_locator(
        eprosima::fastdds::statistics::detail::Locator_s&& _dst_locator)
{
    m_dst_locator = std::move(_dst_locator);
}

/*!
 * @brief This function returns a constant reference to member dst_locator
 * @return Constant reference to member dst_locator
 */
const eprosima::fastdds::statistics::detail::Locator_s& Locator2LocatorData::dst_locator() const
{
    return m_dst_locator;
}

/*!
 * @brief This function returns a reference to member dst_locator
 * @return Reference to member dst_locator
 */
eprosima::fastdds::statistics::detail::Locator_s& Locator2LocatorData::dst_locator()
{
    return m_dst_locator;
}


/*!
 * @brief This function sets a value in member data
 * @param _data New value for member data
 */
void Locator2LocatorData::data(
        float _data)
{
    m_data = _data;
}

/*!
 * @brief This function returns the value of member data
 * @return Value of member data
 */
float Locator2LocatorData::data() const
{
    return m_data;
}

/*!
 * @brief This function returns a reference to member data
 * @return Reference to member data
 */
float& Locator2LocatorData::data()
{
    return m_data;
}




EntityData::EntityData()
{
}

EntityData::~EntityData()
{
}

EntityData::EntityData(
        const EntityData& x)
{
    m_guid = x.m_guid;
    m_data = x.m_data;
}

EntityData::EntityData(
        EntityData&& x) noexcept
{
    m_guid = std::move(x.m_guid);
    m_data = x.m_data;
}

EntityData& EntityData::operator =(
        const EntityData& x)
{

    m_guid = x.m_guid;
    m_data = x.m_data;
    return *this;
}

EntityData& EntityData::operator =(
        EntityData&& x) noexcept
{

    m_guid = std::move(x.m_guid);
    m_data = x.m_data;
    return *this;
}

bool EntityData::operator ==(
        const EntityData& x) const
{
    return (m_guid == x.m_guid &&
           m_data == x.m_data);
}

bool EntityData::operator !=(
        const EntityData& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member guid
 * @param _guid New value to be copied in member guid
 */
void EntityData::guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _guid)
{
    m_guid = _guid;
}

/*!
 * @brief This function moves the value in member guid
 * @param _guid New value to be moved in member guid
 */
void EntityData::guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _guid)
{
    m_guid = std::move(_guid);
}

/*!
 * @brief This function returns a constant reference to member guid
 * @return Constant reference to member guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& EntityData::guid() const
{
    return m_guid;
}

/*!
 * @brief This function returns a reference to member guid
 * @return Reference to member guid
 */
eprosima::fastdds::statistics::detail::GUID_s& EntityData::guid()
{
    return m_guid;
}


/*!
 * @brief This function sets a value in member data
 * @param _data New value for member data
 */
void EntityData::data(
        float _data)
{
    m_data = _data;
}

/*!
 * @brief This function returns the value of member data
 * @return Value of member data
 */
float EntityData::data() const
{
    return m_data;
}

/*!
 * @brief This function returns a reference to member data
 * @return Reference to member data
 */
float& EntityData::data()
{
    return m_data;
}




PhysicalData::PhysicalData()
{
}

PhysicalData::~PhysicalData()
{
}

PhysicalData::PhysicalData(
        const PhysicalData& x)
{
    m_participant_guid = x.m_participant_guid;
    m_host = x.m_host;
    m_user = x.m_user;
    m_process = x.m_process;
}

PhysicalData::PhysicalData(
        PhysicalData&& x) noexcept
{
    m_participant_guid = std::move(x.m_participant_guid);
    m_host = std::move(x.m_host);
    m_user = std::move(x.m_user);
    m_process = std::move(x.m_process);
}

PhysicalData& PhysicalData::operator =(
        const PhysicalData& x)
{

    m_participant_guid = x.m_participant_guid;
    m_host = x.m_host;
    m_user = x.m_user;
    m_process = x.m_process;
    return *this;
}

PhysicalData& PhysicalData::operator =(
        PhysicalData&& x) noexcept
{

    m_participant_guid = std::move(x.m_participant_guid);
    m_host = std::move(x.m_host);
    m_user = std::move(x.m_user);
    m_process = std::move(x.m_process);
    return *this;
}

bool PhysicalData::operator ==(
        const PhysicalData& x) const
{
    return (m_participant_guid == x.m_participant_guid &&
           m_host == x.m_host &&
           m_user == x.m_user &&
           m_process == x.m_process);
}

bool PhysicalData::operator !=(
        const PhysicalData& x) const
{
    return !(*this == x);
}

/*!
 * @brief This function copies the value in member participant_guid
 * @param _participant_guid New value to be copied in member participant_guid
 */
void PhysicalData::participant_guid(
        const eprosima::fastdds::statistics::detail::GUID_s& _participant_guid)
{
    m_participant_guid = _participant_guid;
}

/*!
 * @brief This function moves the value in member participant_guid
 * @param _participant_guid New value to be moved in member participant_guid
 */
void PhysicalData::participant_guid(
        eprosima::fastdds::statistics::detail::GUID_s&& _participant_guid)
{
    m_participant_guid = std::move(_participant_guid);
}

/*!
 * @brief This function returns a constant reference to member participant_guid
 * @return Constant reference to member participant_guid
 */
const eprosima::fastdds::statistics::detail::GUID_s& PhysicalData::participant_guid() const
{
    return m_participant_guid;
}

/*!
 * @brief This function returns a reference to member participant_guid
 * @return Reference to member participant_guid
 */
eprosima::fastdds::statistics::detail::GUID_s& PhysicalData::participant_guid()
{
    return m_participant_guid;
}


/*!
 * @brief This function copies the value in member host
 * @param _host New value to be copied in member host
 */
void PhysicalData::host(
        const std::string& _host)
{
    m_host = _host;
}

/*!
 * @brief This function moves the value in member host
 * @param _host New value to be moved in member host
 */
void PhysicalData::host(
        std::string&& _host)
{
    m_host = std::move(_host);
}

/*!
 * @brief This function returns a constant reference to member host
 * @return Constant reference to member host
 */
const std::string& PhysicalData::host() const
{
    return m_host;
}

/*!
 * @brief This function returns a reference to member host
 * @return Reference to member host
 */
std::string& PhysicalData::host()
{
    return m_host;
}


/*!
 * @brief This function copies the value in member user
 * @param _user New value to be copied in member user
 */
void PhysicalData::user(
        const std::string& _user)
{
    m_user = _user;
}

/*!
 * @brief This function moves the value in member user
 * @param _user New value to be moved in member user
 */
void PhysicalData::user(
        std::string&& _user)
{
    m_user = std::move(_user);
}

/*!
 * @brief This function returns a constant reference to member user
 * @return Constant reference to member user
 */
const std::string& PhysicalData::user() const
{
    return m_user;
}

/*!
 * @brief This function returns a reference to member user
 * @return Reference to member user
 */
std::string& PhysicalData::user()
{
    return m_user;
}


/*!
 * @brief This function copies the value in member process
 * @param _process New value to be copied in member process
 */
void PhysicalData::process(
        const std::string& _process)
{
    m_process = _process;
}

/*!
 * @brief This function moves the value in member process
 * @param _process New value to be moved in member process
 */
void PhysicalData::process(
        std::string&& _process)
{
    m_process = std::move(_process);
}

/*!
 * @brief This function returns a constant reference to member process
 * @return Constant reference to member process
 */
const std::string& PhysicalData::process() const
{
    return m_process;
}

/*!
 * @brief This function returns a reference to member process
 * @return Reference to member process
 */
std::string& PhysicalData::process()
{
    return m_process;
}





Data::Data()
{
    m__d = eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY;
}

Data::~Data()
{
}

Data::Data(
        const Data& x)
{
    m__d = x.m__d;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
            m_writer_reader_data = x.m_writer_reader_data;
            break;


        case eprosima::fastdds::statistics::NETWORK_LATENCY:
            m_locator2locator_data = x.m_locator2locator_data;
            break;


        case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
        case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
            m_entity_data = x.m_entity_data;
            break;


        case eprosima::fastdds::statistics::RTPS_SENT:
        case eprosima::fastdds::statistics::RTPS_LOST:
            m_entity2locator_traffic = x.m_entity2locator_traffic;
            break;


        case eprosima::fastdds::statistics::RESENT_DATAS:
        case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
        case eprosima::fastdds::statistics::ACKNACK_COUNT:
        case eprosima::fastdds::statistics::NACKFRAG_COUNT:
        case eprosima::fastdds::statistics::GAP_COUNT:
        case eprosima::fastdds::statistics::DATA_COUNT:
        case eprosima::fastdds::statistics::PDP_PACKETS:
        case eprosima::fastdds::statistics::EDP_PACKETS:
            m_entity_count = x.m_entity_count;
            break;


        case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
            m_discovery_time = x.m_discovery_time;
            break;


        case eprosima::fastdds::statistics::SAMPLE_DATAS:
            m_sample_identity_count = x.m_sample_identity_count;
            break;


        case eprosima::fastdds::statistics::PHYSICAL_DATA:
            m_physical_data = x.m_physical_data;
            break;

        default:
            break;
    }
}

Data::Data(
        Data&& x) noexcept
{
    m__d = x.m__d;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
            m_writer_reader_data = std::move(x.m_writer_reader_data);

            break;


        case eprosima::fastdds::statistics::NETWORK_LATENCY:
            m_locator2locator_data = std::move(x.m_locator2locator_data);

            break;


        case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
        case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
            m_entity_data = std::move(x.m_entity_data);

            break;


        case eprosima::fastdds::statistics::RTPS_SENT:
        case eprosima::fastdds::statistics::RTPS_LOST:
            m_entity2locator_traffic = std::move(x.m_entity2locator_traffic);

            break;


        case eprosima::fastdds::statistics::RESENT_DATAS:
        case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
        case eprosima::fastdds::statistics::ACKNACK_COUNT:
        case eprosima::fastdds::statistics::NACKFRAG_COUNT:
        case eprosima::fastdds::statistics::GAP_COUNT:
        case eprosima::fastdds::statistics::DATA_COUNT:
        case eprosima::fastdds::statistics::PDP_PACKETS:
        case eprosima::fastdds::statistics::EDP_PACKETS:
            m_entity_count = std::move(x.m_entity_count);

            break;


        case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
            m_discovery_time = std::move(x.m_discovery_time);

            break;


        case eprosima::fastdds::statistics::SAMPLE_DATAS:
            m_sample_identity_count = std::move(x.m_sample_identity_count);

            break;


        case eprosima::fastdds::statistics::PHYSICAL_DATA:
            m_physical_data = std::move(x.m_physical_data);

            break;

        default:
            break;
    }
}

Data& Data::operator =(
        const Data& x)
{
    m__d = x.m__d;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
            m_writer_reader_data = x.m_writer_reader_data;
            break;


        case eprosima::fastdds::statistics::NETWORK_LATENCY:
            m_locator2locator_data = x.m_locator2locator_data;
            break;


        case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
        case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
            m_entity_data = x.m_entity_data;
            break;


        case eprosima::fastdds::statistics::RTPS_SENT:
        case eprosima::fastdds::statistics::RTPS_LOST:
            m_entity2locator_traffic = x.m_entity2locator_traffic;
            break;


        case eprosima::fastdds::statistics::RESENT_DATAS:
        case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
        case eprosima::fastdds::statistics::ACKNACK_COUNT:
        case eprosima::fastdds::statistics::NACKFRAG_COUNT:
        case eprosima::fastdds::statistics::GAP_COUNT:
        case eprosima::fastdds::statistics::DATA_COUNT:
        case eprosima::fastdds::statistics::PDP_PACKETS:
        case eprosima::fastdds::statistics::EDP_PACKETS:
            m_entity_count = x.m_entity_count;
            break;


        case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
            m_discovery_time = x.m_discovery_time;
            break;


        case eprosima::fastdds::statistics::SAMPLE_DATAS:
            m_sample_identity_count = x.m_sample_identity_count;
            break;


        case eprosima::fastdds::statistics::PHYSICAL_DATA:
            m_physical_data = x.m_physical_data;
            break;

        default:
            break;
    }

    return *this;
}

Data& Data::operator =(
        Data&& x) noexcept
{
    m__d = x.m__d;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
            m_writer_reader_data = std::move(x.m_writer_reader_data);

            break;


        case eprosima::fastdds::statistics::NETWORK_LATENCY:
            m_locator2locator_data = std::move(x.m_locator2locator_data);

            break;


        case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
        case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
            m_entity_data = std::move(x.m_entity_data);

            break;


        case eprosima::fastdds::statistics::RTPS_SENT:
        case eprosima::fastdds::statistics::RTPS_LOST:
            m_entity2locator_traffic = std::move(x.m_entity2locator_traffic);

            break;


        case eprosima::fastdds::statistics::RESENT_DATAS:
        case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
        case eprosima::fastdds::statistics::ACKNACK_COUNT:
        case eprosima::fastdds::statistics::NACKFRAG_COUNT:
        case eprosima::fastdds::statistics::GAP_COUNT:
        case eprosima::fastdds::statistics::DATA_COUNT:
        case eprosima::fastdds::statistics::PDP_PACKETS:
        case eprosima::fastdds::statistics::EDP_PACKETS:
            m_entity_count = std::move(x.m_entity_count);

            break;


        case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
            m_discovery_time = std::move(x.m_discovery_time);

            break;


        case eprosima::fastdds::statistics::SAMPLE_DATAS:
            m_sample_identity_count = std::move(x.m_sample_identity_count);

            break;


        case eprosima::fastdds::statistics::PHYSICAL_DATA:
            m_physical_data = std::move(x.m_physical_data);

            break;

        default:
            break;
    }

    return *this;
}

bool Data::operator ==(
        const Data& x) const
{
    if (m__d != x.m__d)
    {
        return false;
    }

    switch (m__d)
    {
        case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
            return (m_writer_reader_data == x.m_writer_reader_data);
            break;


        case eprosima::fastdds::statistics::NETWORK_LATENCY:
            return (m_locator2locator_data == x.m_locator2locator_data);
            break;


        case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
        case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
            return (m_entity_data == x.m_entity_data);
            break;


        case eprosima::fastdds::statistics::RTPS_SENT:
        case eprosima::fastdds::statistics::RTPS_LOST:
            return (m_entity2locator_traffic == x.m_entity2locator_traffic);
            break;


        case eprosima::fastdds::statistics::RESENT_DATAS:
        case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
        case eprosima::fastdds::statistics::ACKNACK_COUNT:
        case eprosima::fastdds::statistics::NACKFRAG_COUNT:
        case eprosima::fastdds::statistics::GAP_COUNT:
        case eprosima::fastdds::statistics::DATA_COUNT:
        case eprosima::fastdds::statistics::PDP_PACKETS:
        case eprosima::fastdds::statistics::EDP_PACKETS:
            return (m_entity_count == x.m_entity_count);
            break;


        case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
            return (m_discovery_time == x.m_discovery_time);
            break;


        case eprosima::fastdds::statistics::SAMPLE_DATAS:
            return (m_sample_identity_count == x.m_sample_identity_count);
            break;


        case eprosima::fastdds::statistics::PHYSICAL_DATA:
            return (m_physical_data == x.m_physical_data);
            break;

        default:
            break;
    }
    return false;
}

bool Data::operator !=(
        const Data& x) const
{
    return !(*this == x);
}

void Data::_d(
        eprosima::fastdds::statistics::EventKind __d)
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
            switch (__d)
            {
                case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
                    b = true;
                    break;
                default:
                    break;
            }
            break;


        case eprosima::fastdds::statistics::NETWORK_LATENCY:
            switch (__d)
            {
                case eprosima::fastdds::statistics::NETWORK_LATENCY:
                    b = true;
                    break;
                default:
                    break;
            }
            break;


        case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
        case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
            switch (__d)
            {
                case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
                case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
                    b = true;
                    break;
                default:
                    break;
            }
            break;


        case eprosima::fastdds::statistics::RTPS_SENT:
        case eprosima::fastdds::statistics::RTPS_LOST:
            switch (__d)
            {
                case eprosima::fastdds::statistics::RTPS_SENT:
                case eprosima::fastdds::statistics::RTPS_LOST:
                    b = true;
                    break;
                default:
                    break;
            }
            break;


        case eprosima::fastdds::statistics::RESENT_DATAS:
        case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
        case eprosima::fastdds::statistics::ACKNACK_COUNT:
        case eprosima::fastdds::statistics::NACKFRAG_COUNT:
        case eprosima::fastdds::statistics::GAP_COUNT:
        case eprosima::fastdds::statistics::DATA_COUNT:
        case eprosima::fastdds::statistics::PDP_PACKETS:
        case eprosima::fastdds::statistics::EDP_PACKETS:
            switch (__d)
            {
                case eprosima::fastdds::statistics::RESENT_DATAS:
                case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
                case eprosima::fastdds::statistics::ACKNACK_COUNT:
                case eprosima::fastdds::statistics::NACKFRAG_COUNT:
                case eprosima::fastdds::statistics::GAP_COUNT:
                case eprosima::fastdds::statistics::DATA_COUNT:
                case eprosima::fastdds::statistics::PDP_PACKETS:
                case eprosima::fastdds::statistics::EDP_PACKETS:
                    b = true;
                    break;
                default:
                    break;
            }
            break;


        case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
            switch (__d)
            {
                case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
                    b = true;
                    break;
                default:
                    break;
            }
            break;


        case eprosima::fastdds::statistics::SAMPLE_DATAS:
            switch (__d)
            {
                case eprosima::fastdds::statistics::SAMPLE_DATAS:
                    b = true;
                    break;
                default:
                    break;
            }
            break;


        case eprosima::fastdds::statistics::PHYSICAL_DATA:
            switch (__d)
            {
                case eprosima::fastdds::statistics::PHYSICAL_DATA:
                    b = true;
                    break;
                default:
                    break;
            }
            break;

        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("Discriminator doesn't correspond with the selected union member");
    }

    m__d = __d;
}

eprosima::fastdds::statistics::EventKind Data::_d() const
{
    return m__d;
}

eprosima::fastdds::statistics::EventKind& Data::_d()
{
    return m__d;
}

void Data::writer_reader_data(
        const eprosima::fastdds::statistics::WriterReaderData& _writer_reader_data)
{
    m_writer_reader_data = _writer_reader_data;
    m__d = eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY;

}

void Data::writer_reader_data(
        eprosima::fastdds::statistics::WriterReaderData&& _writer_reader_data)
{
    m_writer_reader_data = std::move(_writer_reader_data);
    m__d = eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY;

}

const eprosima::fastdds::statistics::WriterReaderData& Data::writer_reader_data() const
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_writer_reader_data;
}

eprosima::fastdds::statistics::WriterReaderData& Data::writer_reader_data()
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::HISTORY2HISTORY_LATENCY:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_writer_reader_data;
}


void Data::locator2locator_data(
        const eprosima::fastdds::statistics::Locator2LocatorData& _locator2locator_data)
{
    m_locator2locator_data = _locator2locator_data;
    m__d = eprosima::fastdds::statistics::NETWORK_LATENCY;

}

void Data::locator2locator_data(
        eprosima::fastdds::statistics::Locator2LocatorData&& _locator2locator_data)
{
    m_locator2locator_data = std::move(_locator2locator_data);
    m__d = eprosima::fastdds::statistics::NETWORK_LATENCY;

}

const eprosima::fastdds::statistics::Locator2LocatorData& Data::locator2locator_data() const
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::NETWORK_LATENCY:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_locator2locator_data;
}

eprosima::fastdds::statistics::Locator2LocatorData& Data::locator2locator_data()
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::NETWORK_LATENCY:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_locator2locator_data;
}


void Data::entity_data(
        const eprosima::fastdds::statistics::EntityData& _entity_data)
{
    m_entity_data = _entity_data;
    m__d = eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT;

}

void Data::entity_data(
        eprosima::fastdds::statistics::EntityData&& _entity_data)
{
    m_entity_data = std::move(_entity_data);
    m__d = eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT;

}

const eprosima::fastdds::statistics::EntityData& Data::entity_data() const
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
        case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_entity_data;
}

eprosima::fastdds::statistics::EntityData& Data::entity_data()
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::PUBLICATION_THROUGHPUT:
        case eprosima::fastdds::statistics::SUBSCRIPTION_THROUGHPUT:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_entity_data;
}


void Data::entity2locator_traffic(
        const eprosima::fastdds::statistics::Entity2LocatorTraffic& _entity2locator_traffic)
{
    m_entity2locator_traffic = _entity2locator_traffic;
    m__d = eprosima::fastdds::statistics::RTPS_SENT;

}

void Data::entity2locator_traffic(
        eprosima::fastdds::statistics::Entity2LocatorTraffic&& _entity2locator_traffic)
{
    m_entity2locator_traffic = std::move(_entity2locator_traffic);
    m__d = eprosima::fastdds::statistics::RTPS_SENT;

}

const eprosima::fastdds::statistics::Entity2LocatorTraffic& Data::entity2locator_traffic() const
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::RTPS_SENT:
        case eprosima::fastdds::statistics::RTPS_LOST:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_entity2locator_traffic;
}

eprosima::fastdds::statistics::Entity2LocatorTraffic& Data::entity2locator_traffic()
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::RTPS_SENT:
        case eprosima::fastdds::statistics::RTPS_LOST:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_entity2locator_traffic;
}


void Data::entity_count(
        const eprosima::fastdds::statistics::EntityCount& _entity_count)
{
    m_entity_count = _entity_count;
    m__d = eprosima::fastdds::statistics::RESENT_DATAS;

}

void Data::entity_count(
        eprosima::fastdds::statistics::EntityCount&& _entity_count)
{
    m_entity_count = std::move(_entity_count);
    m__d = eprosima::fastdds::statistics::RESENT_DATAS;

}

const eprosima::fastdds::statistics::EntityCount& Data::entity_count() const
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::RESENT_DATAS:
        case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
        case eprosima::fastdds::statistics::ACKNACK_COUNT:
        case eprosima::fastdds::statistics::NACKFRAG_COUNT:
        case eprosima::fastdds::statistics::GAP_COUNT:
        case eprosima::fastdds::statistics::DATA_COUNT:
        case eprosima::fastdds::statistics::PDP_PACKETS:
        case eprosima::fastdds::statistics::EDP_PACKETS:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_entity_count;
}

eprosima::fastdds::statistics::EntityCount& Data::entity_count()
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::RESENT_DATAS:
        case eprosima::fastdds::statistics::HEARTBEAT_COUNT:
        case eprosima::fastdds::statistics::ACKNACK_COUNT:
        case eprosima::fastdds::statistics::NACKFRAG_COUNT:
        case eprosima::fastdds::statistics::GAP_COUNT:
        case eprosima::fastdds::statistics::DATA_COUNT:
        case eprosima::fastdds::statistics::PDP_PACKETS:
        case eprosima::fastdds::statistics::EDP_PACKETS:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_entity_count;
}


void Data::discovery_time(
        const eprosima::fastdds::statistics::DiscoveryTime& _discovery_time)
{
    m_discovery_time = _discovery_time;
    m__d = eprosima::fastdds::statistics::DISCOVERED_ENTITY;

}

void Data::discovery_time(
        eprosima::fastdds::statistics::DiscoveryTime&& _discovery_time)
{
    m_discovery_time = std::move(_discovery_time);
    m__d = eprosima::fastdds::statistics::DISCOVERED_ENTITY;

}

const eprosima::fastdds::statistics::DiscoveryTime& Data::discovery_time() const
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_discovery_time;
}

eprosima::fastdds::statistics::DiscoveryTime& Data::discovery_time()
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::DISCOVERED_ENTITY:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_discovery_time;
}


void Data::sample_identity_count(
        const eprosima::fastdds::statistics::SampleIdentityCount& _sample_identity_count)
{
    m_sample_identity_count = _sample_identity_count;
    m__d = eprosima::fastdds::statistics::SAMPLE_DATAS;

}

void Data::sample_identity_count(
        eprosima::fastdds::statistics::SampleIdentityCount&& _sample_identity_count)
{
    m_sample_identity_count = std::move(_sample_identity_count);
    m__d = eprosima::fastdds::statistics::SAMPLE_DATAS;

}

const eprosima::fastdds::statistics::SampleIdentityCount& Data::sample_identity_count() const
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::SAMPLE_DATAS:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_sample_identity_count;
}

eprosima::fastdds::statistics::SampleIdentityCount& Data::sample_identity_count()
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::SAMPLE_DATAS:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_sample_identity_count;
}


void Data::physical_data(
        const eprosima::fastdds::statistics::PhysicalData& _physical_data)
{
    m_physical_data = _physical_data;
    m__d = eprosima::fastdds::statistics::PHYSICAL_DATA;

}

void Data::physical_data(
        eprosima::fastdds::statistics::PhysicalData&& _physical_data)
{
    m_physical_data = std::move(_physical_data);
    m__d = eprosima::fastdds::statistics::PHYSICAL_DATA;

}

const eprosima::fastdds::statistics::PhysicalData& Data::physical_data() const
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::PHYSICAL_DATA:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_physical_data;
}

eprosima::fastdds::statistics::PhysicalData& Data::physical_data()
{
    bool b = false;

    switch (m__d)
    {
        case eprosima::fastdds::statistics::PHYSICAL_DATA:
            b = true;
            break;
        default:
            break;
    }

    if (!b)
    {
        throw BadParamException("This member has not been selected");
    }

    return m_physical_data;
}




} // namespace statistics


} // namespace fastdds


} // namespace eprosima
// Include auxiliary functions like for serializing/deserializing.
#include "typesCdrAux.ipp"

#endif // FASTCDR_VERSION_MAJOR > 1
