Program Listing for File DomainParticipantQos.hpp

Return to documentation for file (/tmp/ws/src/fastrtps/include/fastdds/dds/domain/qos/DomainParticipantQos.hpp)

// Copyright 2019 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.

#ifndef _FASTDDS_PARTICIPANTQOS_HPP_
#define _FASTDDS_PARTICIPANTQOS_HPP_

#include <string>

#include <fastrtps/fastrtps_dll.h>
#include <fastdds/dds/core/policy/QosPolicies.hpp>
#include <fastdds/rtps/flowcontrol/FlowControllerDescriptor.hpp>

namespace eprosima {
namespace fastdds {
namespace dds {

class DomainParticipantQos
{
public:

    using FlowControllerDescriptorList = std::vector<std::shared_ptr<fastdds::rtps::FlowControllerDescriptor>>;

    RTPS_DllAPI DomainParticipantQos()
    {
#ifdef FASTDDS_STATISTICS
        /*
         * In the case of Statistics, the following properties are set with an empty value. This is because if these
         * properties are set and empty during the enabling of the DomainParticipant, they are fill with the default
         * mechanism
         */
        properties_.properties().emplace_back(parameter_policy_physical_data_host, "");
        properties_.properties().emplace_back(parameter_policy_physical_data_user, "");
        properties_.properties().emplace_back(parameter_policy_physical_data_process, "");
#endif // ifdef FASTDDS_STATISTICS
    }

    RTPS_DllAPI virtual ~DomainParticipantQos()
    {
    }

    bool operator ==(
            const DomainParticipantQos& b) const
    {
        return (this->user_data_ == b.user_data()) &&
               (this->entity_factory_ == b.entity_factory()) &&
               (this->allocation_ == b.allocation()) &&
               (this->properties_ == b.properties()) &&
               (this->wire_protocol_ == b.wire_protocol()) &&
               (this->transport_ == b.transport()) &&
               (this->name_ == b.name()) &&
               (this->flow_controllers_ == b.flow_controllers());
    }

    const UserDataQosPolicy& user_data() const
    {
        return user_data_;
    }

    UserDataQosPolicy& user_data()
    {
        return user_data_;
    }

    void user_data(
            const UserDataQosPolicy& value)
    {
        user_data_ = value;
    }

    const EntityFactoryQosPolicy& entity_factory() const
    {
        return entity_factory_;
    }

    EntityFactoryQosPolicy& entity_factory()
    {
        return entity_factory_;
    }

    void entity_factory(
            const EntityFactoryQosPolicy& value)
    {
        entity_factory_ = value;
    }

    const ParticipantResourceLimitsQos& allocation() const
    {
        return allocation_;
    }

    ParticipantResourceLimitsQos& allocation()
    {
        return allocation_;
    }

    void allocation(
            const ParticipantResourceLimitsQos& allocation)
    {
        allocation_ = allocation;
    }

    const PropertyPolicyQos& properties() const
    {
        return properties_;
    }

    PropertyPolicyQos& properties()
    {
        return properties_;
    }

    void properties(
            const PropertyPolicyQos& properties)
    {
        properties_ = properties;
    }

    const WireProtocolConfigQos& wire_protocol() const
    {
        return wire_protocol_;
    }

    WireProtocolConfigQos& wire_protocol()
    {
        return wire_protocol_;
    }

    void wire_protocol(
            const WireProtocolConfigQos& wire_protocol)
    {
        wire_protocol_ = wire_protocol;
    }

    const TransportConfigQos& transport() const
    {
        return transport_;
    }

    TransportConfigQos& transport()
    {
        return transport_;
    }

    void transport(
            const TransportConfigQos& transport)
    {
        transport_ = transport;
    }

    const fastrtps::string_255& name() const
    {
        return name_;
    }

    fastrtps::string_255& name()
    {
        return name_;
    }

    void name(
            const fastrtps::string_255& value)
    {
        name_ = value;
    }

    FlowControllerDescriptorList& flow_controllers()
    {
        return flow_controllers_;
    }

    const FlowControllerDescriptorList& flow_controllers() const
    {
        return flow_controllers_;
    }

private:

    UserDataQosPolicy user_data_;

    EntityFactoryQosPolicy entity_factory_;

    ParticipantResourceLimitsQos allocation_;

    PropertyPolicyQos properties_;

    WireProtocolConfigQos wire_protocol_;

    TransportConfigQos transport_;

    fastrtps::string_255 name_ = "RTPSParticipant";

    FlowControllerDescriptorList flow_controllers_;

};

RTPS_DllAPI extern const DomainParticipantQos PARTICIPANT_QOS_DEFAULT;


} /* namespace dds */
} /* namespace fastdds */
} /* namespace eprosima */

#endif /* _FASTDDS_PARTICIPANTQOS_HPP_ */