123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #ifndef _FASTDDS_RTPS_SENDER_RESOURCE_H
- #define _FASTDDS_RTPS_SENDER_RESOURCE_H
- #include <functional>
- #include <vector>
- #include <chrono>
- namespace eprosima{
- namespace fastrtps{
- namespace rtps{
- class RTPSParticipantImpl;
- class MessageReceiver;
- class Locator_t;
- class SenderResource
- {
- public:
-
- bool send(
- const octet* data,
- uint32_t dataLength,
- LocatorsIterator* destination_locators_begin,
- LocatorsIterator* destination_locators_end,
- const std::chrono::steady_clock::time_point& max_blocking_time_point)
- {
- bool returned_value = false;
- if (send_lambda_)
- {
- returned_value = send_lambda_(data, dataLength, destination_locators_begin, destination_locators_end, max_blocking_time_point);
- }
- return returned_value;
- }
-
- SenderResource(SenderResource&& rValueResource)
- {
- clean_up.swap(rValueResource.clean_up);
- send_lambda_.swap(rValueResource.send_lambda_);
- }
- virtual ~SenderResource() = default;
- int32_t kind() const { return transport_kind_; }
- protected:
- SenderResource(int32_t transport_kind) : transport_kind_(transport_kind) {}
- int32_t transport_kind_;
- std::function<void()> clean_up;
- std::function<bool(
- const octet*,
- uint32_t,
- LocatorsIterator* destination_locators_begin,
- LocatorsIterator* destination_locators_end,
- const std::chrono::steady_clock::time_point&)> send_lambda_;
- private:
- SenderResource() = delete;
- SenderResource(const SenderResource&) = delete;
- SenderResource& operator=(const SenderResource&) = delete;
- };
- }
- }
- }
- #endif
|