20#ifndef FASTDDS_RTPS_TRANSPORT__SENDERRESOURCE_HPP
21#define FASTDDS_RTPS_TRANSPORT__SENDERRESOURCE_HPP
23#include <fastdds/rtps/common/Types.hpp>
30#include <fastdds/rtps/common/LocatorList.hpp>
31#include <fastdds/rtps/common/LocatorsIterator.hpp>
32#include <fastdds/rtps/transport/NetworkBuffer.hpp>
38class RTPSParticipantImpl;
54 FASTDDS_DEPRECATED_UNTIL(4,
send,
"Use send with transport_priority instead")
57 const uint32_t& total_bytes,
60 const
std::chrono::steady_clock::time_point& max_blocking_time_point)
62 return send(buffers, total_bytes, destination_locators_begin, destination_locators_end,
63 max_blocking_time_point, 0);
78 const std::vector<NetworkBuffer>& buffers,
79 const uint32_t& total_bytes,
82 const std::chrono::steady_clock::time_point& max_blocking_time_point,
83 int32_t transport_priority)
87 return send_lambda_(buffers, total_bytes, destination_locators_begin, destination_locators_end,
88 max_blocking_time_point, transport_priority);
90 return send_buffers_lambda_(buffers, total_bytes, destination_locators_begin, destination_locators_end,
91 max_blocking_time_point);
122 int32_t transport_kind)
132 const std::vector<NetworkBuffer>&,
139 const std::vector<NetworkBuffer>&,
143 const std::chrono::steady_clock::time_point&,
bool send(const std::vector< NetworkBuffer > &buffers, const uint32_t &total_bytes, LocatorsIterator *destination_locators_begin, LocatorsIterator *destination_locators_end, const std::chrono::steady_clock::time_point &max_blocking_time_point, int32_t transport_priority)
Sends to a destination locator, through the channel managed by this resource.
Definition SenderResource.hpp:77
eprosima::fastdds::rtps::NetworkBuffer NetworkBuffer
Definition SenderResource.hpp:52
std::function< bool(const std::vector< NetworkBuffer > &, uint32_t, LocatorsIterator *destination_locators_begin, LocatorsIterator *destination_locators_end, const std::chrono::steady_clock::time_point &, int32_t transport_priority)> send_lambda_
Definition SenderResource.hpp:144
int32_t transport_kind_
Definition SenderResource.hpp:127
virtual ~SenderResource()=default
SenderResource(SenderResource &&rValueResource)=default
Resources can only be transfered through move semantics.
std::function< bool(const std::vector< NetworkBuffer > &, uint32_t, LocatorsIterator *destination_locators_begin, LocatorsIterator *destination_locators_end, const std::chrono::steady_clock::time_point &)> send_buffers_lambda_
Definition SenderResource.hpp:136
int32_t kind() const
Definition SenderResource.hpp:103
SenderResource(int32_t transport_kind)
Definition SenderResource.hpp:121
std::function< void()> clean_up
Definition SenderResource.hpp:129
bool send(const std::vector< NetworkBuffer > &buffers, const uint32_t &total_bytes, LocatorsIterator *destination_locators_begin, LocatorsIterator *destination_locators_end, const std::chrono::steady_clock::time_point &max_blocking_time_point)
Definition SenderResource.hpp:55
virtual void add_locators_to_list(LocatorList_t &locators) const
Add locators representing the local endpoints managed by this sender resource.
Definition SenderResource.hpp:113
Contains the RTPS protocol implementation.
eprosima::fastdds::rtps::LocatorList LocatorList_t
Definition LocatorList.hpp:478
Definition EntityId_t.hpp:388
Provides a Locator's iterator interface that can be used by different Locator's containers.
Definition LocatorsIterator.hpp:33
A slice of data to be sent to one or more transports.
Definition NetworkBuffer.hpp:38