Fast DDS  Version 3.3.0
Fast DDS
Loading...
Searching...
No Matches
Replier.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__REPLIER_HPP
16#define FASTDDS_DDS_RPC__REPLIER_HPP
17
18#include <fastdds/dds/core/LoanableSequence.hpp>
19#include <fastdds/dds/rpc/RequestInfo.hpp>
20#include <fastdds/dds/rpc/RPCEntity.hpp>
21
22namespace eprosima {
23namespace fastdds {
24namespace dds {
25
26class LoanableCollection;
27class DataWriter;
28class DataReader;
29
30} // namespace dds
31
32namespace dds {
33namespace rpc {
34
38class Replier : public RPCEntity
39{
40
41public:
42
46 virtual const std::string& get_service_name() const = 0;
47
61 void* data,
62 const RequestInfo& info) = 0;
63
72 void* data,
73 RequestInfo& info) = 0;
74
86
100
104 virtual DataWriter* get_replier_writer() const = 0;
105
109 virtual DataReader* get_replier_reader() const = 0;
110
111protected:
112
116 ~Replier() = default;
117
118};
119
120} // namespace rpc
121} // namespace dds
122} // namesapce fastdds
123} // namespace eprosima
124
125
126#endif // FASTDDS_DDS_RPC__REPLIER_HPP
Class DataReader, contains the actual implementation of the behaviour of the Subscriber.
Definition DataReader.hpp:83
Class DataWriter, contains the actual implementation of the behaviour of the DataWriter.
Definition DataWriter.hpp:67
A collection of generic opaque pointers that can receive the buffer from outside (loan).
Definition LoanableCollection.hpp:34
A type-safe, ordered collection of elements that can receive the buffer from outside (loan).
Definition LoanableSequence.hpp:63
Abstract base class for all RPC Objects.
Definition RPCEntity.hpp:30
Base class for a Replier in the RPC communication.
Definition Replier.hpp:39
virtual ReturnCode_t take_request(LoanableCollection &data, LoanableSequence< RequestInfo > &info)=0
Take all request messages stored in the Replier DataReader's history.
virtual ReturnCode_t send_reply(void *data, const RequestInfo &info)=0
Send a reply message.
virtual const std::string & get_service_name() const =0
Returns the name of the service to which the replier belongs.
virtual ReturnCode_t return_loan(LoanableCollection &data, LoanableSequence< RequestInfo > &info)=0
This operation indicates to the Replier's DataReader that the application is done accessing the colle...
virtual DataReader * get_replier_reader() const =0
Getter for the Replier's DataReader.
virtual ReturnCode_t take_request(void *data, RequestInfo &info)=0
Take a request message from the Replier DataReader's history.
virtual DataWriter * get_replier_writer() const =0
Getter for the Replier's DataWriter.
Definition DomainParticipant.hpp:46
int32_t ReturnCode_t
Definition DDSReturnCode.hpp:59
eProsima namespace.
SampleInfo is the information that accompanies each sample that is ‘read’ or ‘taken.
Definition SampleInfo.hpp:41