| Fast DDS Version 3.3.0 Fast DDS

Loading...
Searching...
No Matches
Requester.hpp
1// Copyright 2025 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef FASTDDS_DDS_RPC__REQUESTER_HPP
16#define FASTDDS_DDS_RPC__REQUESTER_HPP
17
18#include <fastdds/dds/core/LoanableSequence.hpp>
19#include <fastdds/dds/rpc/RPCEntity.hpp>
20#include <fastdds/dds/rpc/RequestInfo.hpp>
21
22 namespace eprosima {
23 namespace fastdds {
24 namespace dds {
25
26 class LoanableCollection;
27 class DataWriter;
28 class DataReader;
29
30} // namespace dds
31
32 namespace dds {
33 namespace rpc {
34
38 class Requester : public RPCEntity
39{
40
41 public:
42
46 virtual const std::string& get_service_name() const = 0;
47
58 virtual ReturnCode_t send_request(
59 void* data,
60 RequestInfo& info) = 0;
61
69 virtual ReturnCode_t take_reply(
70 void* data,
71 RequestInfo& info) = 0;
72
81 virtual ReturnCode_t take_reply(
82 LoanableCollection& data,
83 LoanableSequence<RequestInfo>& info) = 0;
84
95 virtual ReturnCode_t return_loan(
96 LoanableCollection& data,
97 LoanableSequence<RequestInfo>& info) = 0;
98
102 virtual DataWriter* get_requester_writer() const = 0;
103
107 virtual DataReader* get_requester_reader() const = 0;
108
109 protected:
110
114 ~Requester() = default;
115
116};
117
118} // namespace rpc
119} // namespace dds
120} // namespace fastdds
121} // namespace eprosima
122
123#endif // FASTDDS_DDS_RPC__REQUESTER_HPP
eprosima::fastdds::dds::DataReader
Class DataReader, contains the actual implementation of the behaviour of the Subscriber.
Definition DataReader.hpp:83
eprosima::fastdds::dds::DataWriter
Class DataWriter, contains the actual implementation of the behaviour of the DataWriter.
Definition DataWriter.hpp:67
eprosima::fastdds::dds::LoanableCollection
A collection of generic opaque pointers that can receive the buffer from outside (loan).
Definition LoanableCollection.hpp:34
eprosima::fastdds::dds::LoanableSequence
A type-safe, ordered collection of elements that can receive the buffer from outside (loan).
Definition LoanableSequence.hpp:63
eprosima::fastdds::dds::rpc::RPCEntity
Abstract base class for all RPC Objects.
Definition RPCEntity.hpp:30
eprosima::fastdds::dds::rpc::Requester
Base class for a Requester in the RPC communication.
Definition Requester.hpp:39
eprosima::fastdds::dds::rpc::Requester::~Requester
~Requester()=default
Destructor.
eprosima::fastdds::dds::rpc::Requester::take_reply
virtual ReturnCode_t take_reply(void *data, RequestInfo &info)=0
Take a reply message from the Requester DataReader's history.
eprosima::fastdds::dds::rpc::Requester::take_reply
virtual ReturnCode_t take_reply(LoanableCollection &data, LoanableSequence< RequestInfo > &info)=0
Take all reply messages stored in the Requester DataReader's history.
eprosima::fastdds::dds::rpc::Requester::get_service_name
virtual const std::string & get_service_name() const =0
Returns the name of the service to which the requester belongs.
eprosima::fastdds::dds::rpc::Requester::get_requester_writer
virtual DataWriter * get_requester_writer() const =0
Getter for the Requester's DataWriter.
eprosima::fastdds::dds::rpc::Requester::return_loan
virtual ReturnCode_t return_loan(LoanableCollection &data, LoanableSequence< RequestInfo > &info)=0
This operation indicates to the Requester's DataReader that the application is done accessing the col...
eprosima::fastdds::dds::rpc::Requester::get_requester_reader
virtual DataReader * get_requester_reader() const =0
Getter for the Requester's DataReader.
eprosima::fastdds::dds::rpc::Requester::send_request
virtual ReturnCode_t send_request(void *data, RequestInfo &info)=0
Send a request message.
eprosima::fastdds::dds::rpc
Definition DomainParticipant.hpp:59
eprosima::fastdds::dds::rpc::RequestInfo
SampleInfo RequestInfo
Definition RequestInfo.hpp:25
eprosima::fastdds::dds
Definition BuiltinTopicKey.hpp:26
eprosima::fastdds::dds::ReturnCode_t
int32_t ReturnCode_t
Definition DDSReturnCode.hpp:59
eprosima::fastdds
eprosima
eProsima namespace.