19#ifndef FASTDDS_RTPS_COMMON__REMOTELOCATORS_HPP
20#define FASTDDS_RTPS_COMMON__REMOTELOCATORS_HPP
22#include <fastdds/rtps/common/Locator.hpp>
23#include <fastdds/utils/collections/ResourceLimitedVector.hpp>
24#include <fastdds/dds/log/Log.hpp>
49 size_t max_unicast_locators,
50 size_t max_multicast_locators)
139 std::ostream& output,
146 output <<
"MULTICAST:[";
148 for (
auto it = remote_locators.
multicast.begin() + 1; it != remote_locators.
multicast.end(); ++it)
150 output <<
"," << *it;
156 if (!remote_locators.
unicast.empty())
158 output <<
"UNICAST:[";
159 output << remote_locators.
unicast[0];
160 for (
auto it = remote_locators.
unicast.begin() + 1; it != remote_locators.
unicast.end(); ++it)
162 output <<
"," << *it;
174 std::istream::sentry s(input);
182 std::ios_base::iostate excp_mask = input.exceptions();
186 input.exceptions(excp_mask | std::ios_base::failbit | std::ios_base::badbit);
187 std::stringbuf sb_aux;
191 input >> punct >> letter;
195 input.get(sb_aux,
'[');
211 input.get(sb_aux,
'[');
225 catch (std::ios_base::failure& )
229 EPROSIMA_LOG_WARNING(REMOTE_LOCATOR_LIST,
"Error deserializing RemoteLocatorList");
232 input.exceptions(excp_mask);
Resource limited wrapper of std::vector.
Definition ResourceLimitedVector.hpp:59
Class Locator_t, uniquely identifies a communication channel for a particular transport.
Definition Locator.hpp:71
std::istream & operator>>(std::istream &input, EntityId_t &enP)
Definition EntityId_t.hpp:289
std::ostream & operator<<(std::ostream &output, BuiltinTransports transports)
Definition BuiltinTransports.hpp:117
Specifies the configuration of a resource limited collection.
Definition ResourceLimitedContainerConfig.hpp:36
Holds information about the locators of a remote entity.
Definition RemoteLocators.hpp:34
RemoteLocatorList()
Default constructor of RemoteLocatorList for deserialize.
Definition RemoteLocators.hpp:38
ResourceLimitedVector< Locator_t > unicast
List of unicast locators.
Definition RemoteLocators.hpp:130
RemoteLocatorList(size_t max_unicast_locators, size_t max_multicast_locators)
Construct a RemoteLocatorList.
Definition RemoteLocators.hpp:48
void add_multicast_locator(const Locator_t &locator)
Adds a locator to the multicast list.
Definition RemoteLocators.hpp:115
RemoteLocatorList(const RemoteLocatorList &other)
Copy-construct a RemoteLocatorList.
Definition RemoteLocators.hpp:61
ResourceLimitedVector< Locator_t > multicast
List of multicast locators.
Definition RemoteLocators.hpp:132
RemoteLocatorList & operator=(const RemoteLocatorList &other)
Assign locator values from other RemoteLocatorList.
Definition RemoteLocators.hpp:77
void add_unicast_locator(const Locator_t &locator)
Adds a locator to the unicast list.
Definition RemoteLocators.hpp:93