diff --git a/examples/cpp/rpc/CLIParser.hpp b/examples/cpp/rpc/CLIParser.hpp index 971c346422a..e18580e1886 100644 --- a/examples/cpp/rpc/CLIParser.hpp +++ b/examples/cpp/rpc/CLIParser.hpp @@ -21,8 +21,6 @@ #include -#include "InputFeedProcessor.hpp" - namespace eprosima { namespace fastdds { namespace examples { @@ -50,10 +48,6 @@ class CLIParser ADDITION, SUBSTRACTION, REPRESENTATION_LIMITS, - FIBONACCI, - SUM_ALL, - ACCUMULATOR, - FILTER, UNDEFINED }; @@ -105,30 +99,6 @@ class CLIParser std::cout << " -r, --representation-limits Computes the representation" << std::endl; std::cout << " limits of a 32-bit integer" << std::endl; std::cout << " " << std::endl; - std::cout << " -f , --fibonacci Returns a feed of results" << std::endl; - std::cout << " with the first elements" << - std::endl; - std::cout << " of the Fibonacci sequence" << std::endl; - std::cout << " " << std::endl; - std::cout << " --sum-all Sum all the values provided" << std::endl; - std::cout << " in the input feed" << std::endl; - std::cout << " " << std::endl; - std::cout << " --accumulator Return a feed of results" << std::endl; - std::cout << " with the sum of all received" << std::endl; - std::cout << " values from an input feed" << std::endl; - std::cout << " " << std::endl; - std::cout << " --filter Return a feed of results" << std::endl; - std::cout << " with the values that match" << std::endl; - std::cout << " the input filter kind" << std::endl; - std::cout << " [ = 0, 1, 2]" << std::endl; - std::cout << " [0 = EVEN," << std::endl; - std::cout << " 1 = ODD," << std::endl; - std::cout << " 2 = PRIME]" << std::endl; - std::cout << " " << std::endl; - std::cout << " --feed Provide a feed instead of " << std::endl; - std::cout << " capturing from stdin in the " << std::endl; - std::cout << " form of ,, " << std::endl; - std::cout << " [default: empty]" << std::endl; std::cout << " --connection-attempts Number of attempts to connect" << std::endl; std::cout << " to a server before failing" << std::endl; @@ -288,104 +258,6 @@ class CLIParser print_help(EXIT_FAILURE); } } - else if (arg == "-f" || arg == "--fibonacci") - { - if (config.entity == CLIParser::EntityKind::CLIENT) - { - if (CLIParser::OperationKind::UNDEFINED != config.operation) - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "Only one operation can be selected"); - print_help(EXIT_FAILURE); - } - - if (++i < argc) - { - config.n_results = consume_integer_argument(argv[i], arg); - } - else - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "missing fibonacci argument"); - print_help(EXIT_FAILURE); - } - - config.operation = CLIParser::OperationKind::FIBONACCI; - } - else - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "fibonacci argument is only valid for client entity"); - print_help(EXIT_FAILURE); - } - } - else if (arg == "--sum-all") - { - if (config.entity == CLIParser::EntityKind::CLIENT) - { - if (CLIParser::OperationKind::UNDEFINED != config.operation) - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "Only one operation can be selected"); - print_help(EXIT_FAILURE); - } - - config.operation = CLIParser::OperationKind::SUM_ALL; - } - else - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "sum-all argument is only valid for client entity"); - print_help(EXIT_FAILURE); - } - } - else if (arg == "--accumulator") - { - if (config.entity == CLIParser::EntityKind::CLIENT) - { - if (CLIParser::OperationKind::UNDEFINED != config.operation) - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "Only one operation can be selected"); - print_help(EXIT_FAILURE); - } - - config.operation = CLIParser::OperationKind::ACCUMULATOR; - } - else - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "accumulator argument is only valid for client entity"); - print_help(EXIT_FAILURE); - } - } - else if (arg == "--filter") - { - if (config.entity == CLIParser::EntityKind::CLIENT) - { - if (CLIParser::OperationKind::UNDEFINED != config.operation) - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "Only one operation can be selected"); - print_help(EXIT_FAILURE); - } - - if (++i < argc) - { - config.filter_kind = consume_integer_argument(argv[i], arg); - - if (config.filter_kind > 2) - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "filter kind must be 0, 1 or 2"); - print_help(EXIT_FAILURE); - } - } - else - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "missing filter argument"); - print_help(EXIT_FAILURE); - } - - config.operation = CLIParser::OperationKind::FILTER; - } - else - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "filter argument is only valid for client entity"); - print_help(EXIT_FAILURE); - } - } else if (arg == "--connection-attempts") { if (config.entity == CLIParser::EntityKind::CLIENT) @@ -470,27 +342,6 @@ class CLIParser print_help(EXIT_FAILURE); } } - else if (arg == "--feed") - { - if (++i < argc) - { - if (config.entity == CLIParser::EntityKind::CLIENT) - { - // Error handling for reading in performed in InputFeedProcessor - InputFeedProcessor::provided_input_feed.reset(new std::stringstream(argv[i])); - } - else - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "--feed argument is only valid for client entity"); - print_help(EXIT_FAILURE); - } - } - else - { - EPROSIMA_LOG_ERROR(CLI_PARSER, "parsing feed argument"); - print_help(EXIT_FAILURE); - } - } else { EPROSIMA_LOG_ERROR(CLI_PARSER, "unknown option " + arg); diff --git a/examples/cpp/rpc/ClientApp.cpp b/examples/cpp/rpc/ClientApp.cpp index bd4247abc4e..b3e0fa2bc35 100644 --- a/examples/cpp/rpc/ClientApp.cpp +++ b/examples/cpp/rpc/ClientApp.cpp @@ -33,7 +33,6 @@ #include "app_utils.hpp" #include "CLIParser.hpp" -#include "InputFeedProcessor.hpp" #include "types/calculatorClient.hpp" namespace eprosima { @@ -41,8 +40,6 @@ namespace fastdds { namespace examples { namespace rpc { -std::unique_ptr InputFeedProcessor::provided_input_feed(nullptr); - using calculator_example::create_CalculatorClient; using namespace eprosima::fastdds::dds; using namespace eprosima::fastdds::dds::rpc; @@ -225,394 +222,6 @@ OperationStatus Substraction::execute() } } -FibonacciSeq::FibonacciSeq( - std::shared_ptr client, - std::uint32_t n_results) - : n_results_(n_results) - , client_(client) - , reader_(nullptr) -{ -} - -OperationStatus FibonacciSeq::execute() -{ - // If no requests have been sent, send a new request to the server - // If a request has been sent and the feed is still open, wait for the next value - if (auto client = client_.lock()) - { - // Send a new request to the server if no request has been sent yet - if (!reader_) - { - reader_ = client->fibonacci_seq(n_results_); - - if (!reader_) - { - client_server_error("ClientApp", "Failed to create Client Reader"); - - return OperationStatus::ERROR; - } - } - - // Read the next value from the feed - int32_t value; - Duration_t timeout{1, 0}; // 1s - - try - { - if (reader_->read(value, timeout)) - { - client_server_info("ClientApp", "Fibonacci sequence value: " << value); - - // Output feed not closed yet - return OperationStatus::PENDING; - } - else - { - client_server_info("ClientApp", "Fibonacci sequence feed finished"); - - // Request finished, unset the reader before the next request - reader_.reset(); - - return OperationStatus::SUCCESS; - } - } - catch (const RpcTimeoutException& e) - { - client_server_error("ClientApp", "Operation timed out: " << e.what()); - - return OperationStatus::TIMEOUT; - } - catch (const RpcException& e) - { - client_server_error("ClientApp", "RPC exception occurred: " << e.what()); - - return OperationStatus::ERROR; - } - } - else - { - throw std::runtime_error("Client reference expired"); - } -} - -SumAll::SumAll( - std::shared_ptr client) - : client_(client) - , writer_(nullptr) - , result_(0) - , input_feed_closed_(false) -{ -} - -OperationStatus SumAll::execute() -{ - if (auto client = client_.lock()) - { - RpcFuture future; - // Parse the input data and send it to the server - // until the input feed is closed - try - { - while (!input_feed_closed_) - { - if (!writer_) - { - future = client->sum_all(writer_); - if (!writer_) - { - client_server_error("ClientApp", "Failed to create Client Writer"); - - return OperationStatus::ERROR; - } - - if (!InputFeedProcessor::provided_input_feed) - { - // If no input feed is provided, print the help message - InputFeedProcessor::print_help(); - } - } - - // Get the input from the user - auto input = InputFeedProcessor::get_input(); - - // Check the input status - switch (input.first) - { - // Valid number received - case InputFeedProcessor::Status::VALID_INPUT: - // Send the number to the server - writer_->write(input.second); - client_server_info("ClientApp", "Input sent: " << input.second); - break; - - // Invalid input received - case InputFeedProcessor::Status::INVALID_INPUT: - client_server_error("ClientApp", "Invalid input. Please enter a valid number."); - break; - - // Input feed closed - case InputFeedProcessor::Status::FEED_CLOSED: - client_server_info("ClientApp", "Input feed closed."); - input_feed_closed_ = true; - writer_->finish(); - break; - - default: - client_server_error("ClientApp", "Unknown input status."); - break; - } - } - - if (future.wait_for(std::chrono::milliseconds(1000)) != std::future_status::ready) - { - client_server_error("ClientApp", "Operation timed out"); - - return OperationStatus::TIMEOUT; - } - - result_ = future.get(); - client_server_info("ClientApp", "Sum result: " << result_); - writer_.reset(); - - return OperationStatus::SUCCESS; - } - catch (const RpcException& e) - { - client_server_error("ClientApp", "Exception ocurred: " << e.what()); - - return OperationStatus::ERROR; - } - } - else - { - throw std::runtime_error("Client reference expired"); - } -} - -Accumulator::Accumulator( - std::shared_ptr client) - : client_(client) - , writer_(nullptr) - , reader_(nullptr) - , valid_user_input_(false) -{ -} - -OperationStatus Accumulator::execute() -{ - if (auto client = client_.lock()) - { - if (!reader_) - { - assert(writer_ == nullptr); - reader_ = client->accumulator(writer_); - - if (!reader_ || !writer_) - { - client_server_error("ClientApp", "Failed to create Client Reader/Writer"); - - return OperationStatus::ERROR; - } - - if (!InputFeedProcessor::provided_input_feed) - { - // If no input feed is provided, print the help message - InputFeedProcessor::print_help(); - } - } - - // Send a new value or close the input feed - try - { - while (!valid_user_input_) - { - auto input = InputFeedProcessor::get_input(); - - // Check the input status - switch (input.first) - { - // Valid number received - case InputFeedProcessor::Status::VALID_INPUT: - // Send the number to the server - writer_->write(input.second); - client_server_info("ClientApp", "Input sent: " << input.second); - valid_user_input_ = true; - break; - - // Invalid input received - case InputFeedProcessor::Status::INVALID_INPUT: - client_server_error("ClientApp", "Invalid input. Please enter a valid number."); - break; - - // Input feed closed - case InputFeedProcessor::Status::FEED_CLOSED: - client_server_info("ClientApp", "Input feed closed."); - writer_->finish(); - valid_user_input_ = true; - break; - - default: - client_server_error("ClientApp", "Unknown input status."); - break; - } - } - - valid_user_input_ = false; - - // Read the next value from the output feed - int32_t value; - - Duration_t timeout{1, 0}; // 1s - - if (reader_->read(value, timeout)) - { - client_server_info("ClientApp", "Accumulated sum: " << value); - - // Output feed not closed yet - return OperationStatus::PENDING; - } - else - { - client_server_info("ClientApp", "Accumulator feed finished"); - - reader_.reset(); - writer_.reset(); - - return OperationStatus::SUCCESS; - } - } - catch (const RpcTimeoutException& e) - { - client_server_error("ClientApp", "Operation timed out: " << e.what()); - - return OperationStatus::TIMEOUT; - } - catch (const RpcException& e) - { - client_server_error("ClientApp", "RPC exception occurred: " << e.what()); - - return OperationStatus::ERROR; - } - } - else - { - throw std::runtime_error("Client reference expired"); - } -} - -Filter::Filter( - std::shared_ptr client, - std::uint8_t filter_kind) - : client_(client) - , writer_(nullptr) - , reader_(nullptr) - , filter_kind_(filter_kind) - , input_feed_closed_(false) -{ -} - -OperationStatus Filter::execute() -{ - if (auto client = client_.lock()) - { - // Parse the input data and send it to the server - // until the input feed is closed - try - { - while (!input_feed_closed_) - { - if (!writer_) - { - assert(reader_ == nullptr); - reader_ = client->filter(writer_, get_filter_kind(filter_kind_)); - - if (!reader_ || !writer_) - { - client_server_error("ClientApp", "Failed to create Client Reader/Writer"); - - return OperationStatus::ERROR; - } - - if (!InputFeedProcessor::provided_input_feed) - { - // If no input feed is provided, print the help message - InputFeedProcessor::print_help(); - } - } - - // Get the input from the user - auto input = InputFeedProcessor::get_input(); - - // Check the input status - switch (input.first) - { - // Valid number received - case InputFeedProcessor::Status::VALID_INPUT: - // Send the number to the server - writer_->write(input.second); - client_server_info("ClientApp", "Input sent: " << input.second); - break; - - // Invalid input received - case InputFeedProcessor::Status::INVALID_INPUT: - client_server_error("ClientApp", "Invalid input. Please enter a valid number."); - break; - - // Input feed closed - case InputFeedProcessor::Status::FEED_CLOSED: - client_server_info("ClientApp", "Input feed closed."); - input_feed_closed_ = true; - writer_->finish(); - break; - - default: - client_server_error("ClientApp", "Unknown input status."); - break; - } - } - - // Get the next value from the output feed - int32_t value; - - Duration_t timeout{1, 0}; // 1s - - if (reader_->read(value, timeout)) - { - client_server_info("ClientApp", "Filtered sequence value: " << value); - - // Output feed not closed yet - return OperationStatus::PENDING; - } - else - { - client_server_info("ClientApp", "Filtered sequence feed finished"); - - reader_.reset(); - writer_.reset(); - input_feed_closed_ = false; - - return OperationStatus::SUCCESS; - } - } - catch (const RpcTimeoutException& e) - { - client_server_error("ClientApp", "Operation timed out: " << e.what()); - - return OperationStatus::TIMEOUT; - } - catch (const RpcException& e) - { - client_server_error("ClientApp", "Exception ocurred: " << e.what()); - - return OperationStatus::ERROR; - } - } - else - { - throw std::runtime_error("Client reference expired"); - } -} - ClientApp::ClientApp( const CLIParser::config& config, const std::string& service_name) @@ -751,18 +360,6 @@ void ClientApp::set_operation() case CLIParser::OperationKind::REPRESENTATION_LIMITS: operation_ = std::unique_ptr(new RepresentationLimits(client_)); break; - case CLIParser::OperationKind::FIBONACCI: - operation_ = std::unique_ptr(new FibonacciSeq(client_, config_.n_results)); - break; - case CLIParser::OperationKind::SUM_ALL: - operation_ = std::unique_ptr(new SumAll(client_)); - break; - case CLIParser::OperationKind::ACCUMULATOR: - operation_ = std::unique_ptr(new Accumulator(client_)); - break; - case CLIParser::OperationKind::FILTER: - operation_ = std::unique_ptr(new Filter(client_, config_.filter_kind)); - break; default: throw std::runtime_error("Invalid operation"); } diff --git a/examples/cpp/rpc/ClientApp.hpp b/examples/cpp/rpc/ClientApp.hpp index 99ce9f76823..b8731c02c2c 100644 --- a/examples/cpp/rpc/ClientApp.hpp +++ b/examples/cpp/rpc/ClientApp.hpp @@ -25,8 +25,6 @@ #include #include -#include -#include #include "Application.hpp" #include "CLIParser.hpp" @@ -128,84 +126,6 @@ class Substraction : public Operation }; -class FibonacciSeq : public Operation -{ - -public: - - FibonacciSeq( - std::shared_ptr client, - std::uint32_t n_results); - - OperationStatus execute() override; - -protected: - - std::uint32_t n_results_; - std::weak_ptr client_; - std::shared_ptr> reader_; - -}; - -class SumAll : public Operation -{ - -public: - - SumAll( - std::shared_ptr client); - - OperationStatus execute() override; - -protected: - - std::weak_ptr client_; - std::shared_ptr> writer_; - std::int32_t result_; - bool input_feed_closed_; - -}; - -class Accumulator : public Operation -{ - -public: - - Accumulator( - std::shared_ptr client); - - OperationStatus execute() override; - -protected: - - std::weak_ptr client_; - std::shared_ptr> writer_; - std::shared_ptr> reader_; - bool valid_user_input_; - -}; - -class Filter : public Operation -{ - -public: - - Filter( - std::shared_ptr client, - std::uint8_t filter_kind); - - OperationStatus execute() override; - -protected: - - std::weak_ptr client_; - std::shared_ptr> writer_; - std::shared_ptr> reader_; - std::uint8_t filter_kind_; - bool input_feed_closed_; - -}; - class ClientApp : public Application { diff --git a/examples/cpp/rpc/InputFeedProcessor.hpp b/examples/cpp/rpc/InputFeedProcessor.hpp deleted file mode 100644 index 79d6c485a32..00000000000 --- a/examples/cpp/rpc/InputFeedProcessor.hpp +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright 2025 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @file InputFeedProcessor.hpp - * - */ - -#ifndef FASTDDS_EXAMPLES_CPP_RPC__INPUT_FEED_PROCESSOR_HPP -#define FASTDDS_EXAMPLES_CPP_RPC__INPUT_FEED_PROCESSOR_HPP - -#include -#include -#include -#include -#include - -namespace eprosima { -namespace fastdds { -namespace examples { -namespace rpc { - -class InputFeedProcessor -{ -public: - - enum class Status - { - VALID_INPUT, - INVALID_INPUT, - FEED_CLOSED - }; - - static std::pair get_input() - { - long long value = 0; - - if (!provided_input_feed) - { - std::string line; - if (!std::getline(std::cin, line)) - { - EPROSIMA_LOG_ERROR(InputFeedProcessor, "An error occurred while reading the input."); - return std::make_pair(Status::INVALID_INPUT, 0); - } - - if (line.empty()) - { - EPROSIMA_LOG_INFO(InputFeedProcessor, "Empty input received. Closing feed."); - return std::make_pair(Status::FEED_CLOSED, 0); - } - - try - { - value = std::stoll(line); - } - catch (const std::invalid_argument&) - { - EPROSIMA_LOG_ERROR(InputFeedProcessor, "Invalid input: " << line); - return std::make_pair(Status::INVALID_INPUT, 0); - } - catch (const std::out_of_range&) - { - EPROSIMA_LOG_ERROR(InputFeedProcessor, "Input out of range: " << line); - return std::make_pair(Status::INVALID_INPUT, 0); - } - - if (value < std::numeric_limits::min() || value > std::numeric_limits::max()) - { - return std::make_pair(Status::INVALID_INPUT, 0); - } - } - else - { - try - { - if (provided_input_feed->good() && provided_input_feed->rdbuf()->in_avail()) - { - std::string substr; - getline(*provided_input_feed, substr, ','); - try - { - value = std::stoi(substr); - if (value < std::numeric_limits::min() || - value > std::numeric_limits::max()) - { - return std::make_pair(Status::INVALID_INPUT, 0); - } - } - catch (...) - { - return std::make_pair(Status::INVALID_INPUT, 0); - } - } - else - { - return std::make_pair(Status::FEED_CLOSED, 0); - } - } - catch (const std::invalid_argument&) - { - return std::make_pair(Status::INVALID_INPUT, 0); - } - } - - return std::make_pair(Status::VALID_INPUT, static_cast(value)); - } - - static void print_help() - { - std::cout << "Input feed help:" << std::endl; - std::cout << " - Enter a number to process it." << std::endl; - std::cout << " - Press Enter without typing anything to close the input feed." << std::endl; - } - - static std::unique_ptr provided_input_feed; -}; - -} // namespace rpc -} // namespace examples -} // namespace fastdds -} // namespace eprosima - -#endif // FASTDDS_EXAMPLES_CPP_RPC__INPUT_FEED_PROCESSOR_HPP diff --git a/examples/cpp/rpc/README.md b/examples/cpp/rpc/README.md index 7db7be1f0a5..aa2239313a0 100644 --- a/examples/cpp/rpc/README.md +++ b/examples/cpp/rpc/README.md @@ -4,7 +4,7 @@ The *RPC over DDS* example shows how to create a service oriented architecture u The RPC architecture is based on the client-server model. The client sends a request to the server, and the server sends one or more responses (replies) back to the client. [eProsima FastDDS-Gen](https://github.com/eProsima/Fast-DDS-Gen) tool allows the generation of source code for a RPC over DDS application from an IDL file. -The IDL file must define and interface with the operations that can be called on the client and executed by the server. +The IDL file must define an interface with the operations that can be called on the client and executed by the server. These operations are specified using the concept of interfaces defined in the OMG IDL specification. Please refer to the [RPC over DDS](https://fast-dds.docs.eprosima.com/en/latest/fastdds/rpc_dds/rpc_dds_intro.html) section in the Fast DDS documentation for further information on this topic. @@ -31,33 +31,8 @@ This *rpc* example shows the two operating modes of *RPC* over DDS: -r, --representation-limits Computes the representation limits of a 32-bit integer - - -f , --fibonacci Returns a feed of results - with the first elements - of the Fibonacci sequence ``` -* Streaming operations where data is exchanged between a client and a server in a continuous stream of messages, rather than a single, discrete request-response exchange thanks to the `@feed` annotation in the IDL files. - Please refer to the [RPC documentation](https://fast-dds.docs.eprosima.com/en/latest/fastdds/rpc_dds/data_streaming/rpc_data_streaming_intro.html) for more information about this feature. - In this case, the clients can take one of the following operations: - - ``` - --sum-all Sum all the values provided - in the input feed - - --accumulator Return a feed of results - with the sum of all received - values from an input feed - - --filter Return a feed of results - with the values that match - the input filter kind - [ = 0, 1, 2] - [0 = EVEN, - 1 = ODD, - 2 = PRIME] - ``` - ## Run the example To launch this example, two different terminals are required. diff --git a/examples/cpp/rpc/ServerApp.cpp b/examples/cpp/rpc/ServerApp.cpp index 4eee6d21eeb..d768adf9372 100644 --- a/examples/cpp/rpc/ServerApp.cpp +++ b/examples/cpp/rpc/ServerApp.cpp @@ -185,170 +185,6 @@ int32_t ServerApp::ServerImpl::subtraction( return result; } -void ServerApp::ServerImpl::fibonacci_seq( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ uint32_t n_results, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) -{ - static_cast(info); - - int32_t a = 1; - int32_t b = 1; - int32_t c = 0; - - for (uint32_t i = 0; i < n_results; ++i) - { - if (a < 0) - { - throw calculator_example::OverflowException( - "Overflow in Fibonacci sequence. " - "The result is too large to be represented."); - } - - result_writer.write(a); - c = a + b; - a = b; - b = c; - } -} - -int32_t ServerApp::ServerImpl::sum_all( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value) -{ - static_cast(info); - - int32_t sum_all_result = 0; - - try - { - int32_t value_to_add = 0; - while (value.read(value_to_add)) - { - int32_t new_sum = sum_all_result + value_to_add; - bool current_negative = sum_all_result < 0; - bool new_negative = value_to_add < 0; - bool result_negative = new_sum < 0; - if ((current_negative == new_negative) && (result_negative != current_negative)) - { - throw calculator_example::OverflowException(); - } - sum_all_result = new_sum; - } - } - catch (const eprosima::fastdds::dds::rpc::RpcFeedCancelledException& ex) - { - static_cast(ex); - // Feed was cancelled, do nothing and return the current sum - } - - return sum_all_result; -} - -void ServerApp::ServerImpl::accumulator( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) -{ - static_cast(info); - - int32_t current_sum = 0; - - try - { - int32_t value_to_add = 0; - while (value.read(value_to_add)) - { - int32_t new_sum = current_sum + value_to_add; - bool current_negative = current_sum < 0; - bool new_negative = value_to_add < 0; - bool result_negative = new_sum < 0; - if ((current_negative == new_negative) && (result_negative != current_negative)) - { - throw calculator_example::OverflowException(); - } - current_sum = new_sum; - result_writer.write(current_sum); - } - } - catch (const eprosima::fastdds::dds::rpc::RpcFeedCancelledException& ex) - { - static_cast(ex); - // Feed was cancelled, do nothing - } -} - -void ServerApp::ServerImpl::filter( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value, - /*in*/ calculator_example::FilterKind filter_kind, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) -{ - static_cast(info); - - try - { - int32_t value_to_filter = 0; - while (value.read(value_to_filter)) - { - switch (filter_kind) - { - case calculator_example::FilterKind::EVEN: - { - if (value_to_filter % 2 == 0) - { - result_writer.write(value_to_filter); - } - break; - } - case calculator_example::FilterKind::ODD: - { - if (value_to_filter % 2 != 0) - { - result_writer.write(value_to_filter); - } - break; - } - case calculator_example::FilterKind::PRIME: - { - bool prime = true; - if (value_to_filter <= 1) - { - prime = false; - } - else - { - for (int i = 2; i < value_to_filter; i++) - { - if (value_to_filter % i == 0) - { - prime = false; - break; - } - } - } - - if (prime) - { - result_writer.write(value_to_filter); - } - - break; - } - - default: - // Invalid filter kind - throw eprosima::fastdds::dds::rpc::RemoteInvalidArgumentError(); - } - } - } - catch (const eprosima::fastdds::dds::rpc::RpcFeedCancelledException& ex) - { - static_cast(ex); - // Feed was cancelled, do nothing - } -} - } // namespace rpc } // namespace examples } // namespace fastdds diff --git a/examples/cpp/rpc/ServerApp.hpp b/examples/cpp/rpc/ServerApp.hpp index 89e3398d3ec..67ebf227784 100644 --- a/examples/cpp/rpc/ServerApp.hpp +++ b/examples/cpp/rpc/ServerApp.hpp @@ -92,26 +92,6 @@ class ServerApp : public Application /*in*/ int32_t value1, /*in*/ int32_t value2) override; - void fibonacci_seq( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ uint32_t n_results, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) override; - - int32_t sum_all( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value) override; - - void accumulator( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) override; - - void filter( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value, - /*in*/ calculator_example::FilterKind filter_kind, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) override; - }; std::shared_ptr server_impl_; diff --git a/examples/cpp/rpc/app_utils.hpp b/examples/cpp/rpc/app_utils.hpp index 11aa398dfd5..243a08c3159 100644 --- a/examples/cpp/rpc/app_utils.hpp +++ b/examples/cpp/rpc/app_utils.hpp @@ -88,28 +88,6 @@ struct Timestamp std::cerr << C_B_WHITE << Timestamp::now() << C_B_RED << " [ERROR] " << C_B_WHITE \ << "[" << context << "] " << C_DEF << message << std::endl -//! Get the filter kind from the user input -inline calculator_example::FilterKind get_filter_kind( - std::uint8_t filter_kind) -{ - if (filter_kind == 0) - { - return calculator_example::FilterKind::EVEN; - } - else if (filter_kind == 1) - { - return calculator_example::FilterKind::ODD; - } - else if (filter_kind == 2) - { - return calculator_example::FilterKind::PRIME; - } - else - { - throw std::invalid_argument("Invalid filter kind"); - } -} - } // namespace rpc } // namespace examples } // namespace fastdds diff --git a/examples/cpp/rpc/types/calculator.hpp b/examples/cpp/rpc/types/calculator.hpp index 8cd3372772a..6b68198a704 100644 --- a/examples/cpp/rpc/types/calculator.hpp +++ b/examples/cpp/rpc/types/calculator.hpp @@ -23,14 +23,11 @@ #define FAST_DDS_GENERATED__CALCULATOR_HPP #include -#include #include #include #include #include #include -#include -#include #include @@ -118,16 +115,6 @@ class eProsima_user_DllExport OverflowException : public eprosima::fastdds::dds: }; -/*! - * @brief This class represents the enumeration FilterKind defined by the user in the IDL file. - * @ingroup calculator - */ -enum class FilterKind : int32_t -{ - EVEN, - ODD, - PRIME -}; namespace detail { @@ -158,23 +145,6 @@ class eProsima_user_DllExport Calculator /*in*/ int32_t value1, /*in*/ int32_t value2) = 0; - - virtual std::shared_ptr > fibonacci_seq( - /*in*/ uint32_t n_results) = 0; - - - virtual eprosima::fastdds::dds::rpc::RpcFuture sum_all( - /*in*/ std::shared_ptr>& value) = 0; - - - virtual std::shared_ptr > accumulator( - /*in*/ std::shared_ptr>& value) = 0; - - - virtual std::shared_ptr > filter( - /*in*/ std::shared_ptr>& value, - /*in*/ calculator_example::FilterKind filter_kind) = 0; - }; namespace detail { diff --git a/examples/cpp/rpc/types/calculator.idl b/examples/cpp/rpc/types/calculator.idl index 6b58b82df9b..4ee6c1f590a 100644 --- a/examples/cpp/rpc/types/calculator.idl +++ b/examples/cpp/rpc/types/calculator.idl @@ -5,14 +5,6 @@ module calculator_example { }; - // For the filter operation - enum FilterKind - { - EVEN, // return even numbers - ODD, // return odd numbers - PRIME // return positive prime numbers - }; - interface Calculator { // Returns the minimum and maximum representable values @@ -23,20 +15,5 @@ module calculator_example // Returns the result of value1 - value2 long subtraction(in long value1, in long value2) raises (OverflowException); - - // Returns a feed of results with the n_results first elements of the Fibonacci sequence - // E.g. for an input of 5, returns a feed with {1, 1, 2, 3, 5} - @feed long fibonacci_seq(in unsigned long n_results) raises (OverflowException); - - // Waits for an input feed to finish and returns the sum of all the received values - // E.g. for an input of {1, 2, 3, 4, 5} returns 15 - long sum_all(@feed in long value) raises (OverflowException); - - // Returns a feed of results with the sum of all received values - // E.g. for an input of {1, 2, 3, 4, 5}, returns a feed with {1, 3, 6, 10, 15} - @feed long accumulator(@feed in long value) raises (OverflowException); - - // Returns a feed of results with the received values that match the input filter kind - @feed long filter(@feed in long value, in FilterKind filter_kind); }; }; diff --git a/examples/cpp/rpc/types/calculatorCdrAux.ipp b/examples/cpp/rpc/types/calculatorCdrAux.ipp index 9c0ed5bbf7b..5c1a304b744 100644 --- a/examples/cpp/rpc/types/calculatorCdrAux.ipp +++ b/examples/cpp/rpc/types/calculatorCdrAux.ipp @@ -949,1398 +949,6 @@ void serialize_key( //} // subtraction -//{ fibonacci_seq -// Serialization methods for calculator_example::detail::Calculator_fibonacci_seq_In -/* -struct Calculator_fibonacci_seq_In -{ - uint32_t n_results; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_fibonacci_seq_In& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.n_results, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_fibonacci_seq_In& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.n_results -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_fibonacci_seq_In& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.n_results; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_fibonacci_seq_In& data) -{ - static_cast(scdr); - static_cast(data); -} - - - -// Serialization methods for calculator_example::detail::Calculator_fibonacci_seq_Out -/* -struct Calculator_fibonacci_seq_Out -{ - eprosima::fastcdr::optional return_; - eprosima::fastcdr::optional finished_; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_fibonacci_seq_Out& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.return_, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), - data.finished_, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_fibonacci_seq_Out& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.return_ - << eprosima::fastcdr::MemberId(1) << data.finished_ -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_fibonacci_seq_Out& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.return_; - break; - - case 1: - dcdr >> data.finished_; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_fibonacci_seq_Out& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_fibonacci_seq_Result -/* -struct Calculator_fibonacci_seq_Result -{ - eprosima::fastcdr::optional result; - eprosima::fastcdr::optional calculator_example_OverflowException_ex; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_fibonacci_seq_Result& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0784a8b4), - data.result, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0d39fcce), - data.calculator_example_OverflowException_ex, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_fibonacci_seq_Result& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR); - - scdr - << eprosima::fastcdr::MemberId(0x0784a8b4) << data.result - << eprosima::fastcdr::MemberId(0x0d39fcce) << data.calculator_example_OverflowException_ex -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_fibonacci_seq_Result& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0x0784a8b4: - dcdr >> data.result; - break; - - case 0x0d39fcce: - dcdr >> data.calculator_example_OverflowException_ex; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_fibonacci_seq_Result& data) -{ - static_cast(scdr); - static_cast(data); -} - -//} // fibonacci_seq - -//{ sum_all -// Serialization methods for calculator_example::detail::Calculator_sum_all_In -/* -struct Calculator_sum_all_In -{ - -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_sum_all_In& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_sum_all_In& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - static_cast(data); - - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_sum_all_In& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - static_cast(data); - static_cast(dcdr); - static_cast(mid); - return false; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_sum_all_In& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_sum_all_value_Feed -/* -struct Calculator_sum_all_value_Feed -{ - eprosima::fastcdr::optional value; - eprosima::fastcdr::optional finished_; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_sum_all_value_Feed& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.value, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), - data.finished_, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_sum_all_value_Feed& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.value - << eprosima::fastcdr::MemberId(1) << data.finished_ -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_sum_all_value_Feed& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.value; - break; - - case 1: - dcdr >> data.finished_; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_sum_all_value_Feed& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_sum_all_Out -/* -struct Calculator_sum_all_Out -{ - int32_t return_; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_sum_all_Out& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.return_, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_sum_all_Out& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.return_ -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_sum_all_Out& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.return_; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_sum_all_Out& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_sum_all_Result -/* -struct Calculator_sum_all_Result -{ - eprosima::fastcdr::optional result; - eprosima::fastcdr::optional calculator_example_OverflowException_ex; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_sum_all_Result& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0784a8b4), - data.result, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0d39fcce), - data.calculator_example_OverflowException_ex, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_sum_all_Result& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR); - - scdr - << eprosima::fastcdr::MemberId(0x0784a8b4) << data.result - << eprosima::fastcdr::MemberId(0x0d39fcce) << data.calculator_example_OverflowException_ex -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_sum_all_Result& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0x0784a8b4: - dcdr >> data.result; - break; - - case 0x0d39fcce: - dcdr >> data.calculator_example_OverflowException_ex; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_sum_all_Result& data) -{ - static_cast(scdr); - static_cast(data); -} - -//} // sum_all - -//{ accumulator -// Serialization methods for calculator_example::detail::Calculator_accumulator_In -/* -struct Calculator_accumulator_In -{ - -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_accumulator_In& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_accumulator_In& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - static_cast(data); - - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_accumulator_In& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - static_cast(data); - static_cast(dcdr); - static_cast(mid); - return false; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_accumulator_In& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_accumulator_value_Feed -/* -struct Calculator_accumulator_value_Feed -{ - eprosima::fastcdr::optional value; - eprosima::fastcdr::optional finished_; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_accumulator_value_Feed& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.value, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), - data.finished_, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_accumulator_value_Feed& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.value - << eprosima::fastcdr::MemberId(1) << data.finished_ -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_accumulator_value_Feed& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.value; - break; - - case 1: - dcdr >> data.finished_; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_accumulator_value_Feed& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_accumulator_Out -/* -struct Calculator_accumulator_Out -{ - eprosima::fastcdr::optional return_; - eprosima::fastcdr::optional finished_; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_accumulator_Out& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.return_, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), - data.finished_, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_accumulator_Out& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.return_ - << eprosima::fastcdr::MemberId(1) << data.finished_ -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_accumulator_Out& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.return_; - break; - - case 1: - dcdr >> data.finished_; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_accumulator_Out& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_accumulator_Result -/* -struct Calculator_accumulator_Result -{ - eprosima::fastcdr::optional result; - eprosima::fastcdr::optional calculator_example_OverflowException_ex; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_accumulator_Result& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0784a8b4), - data.result, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0d39fcce), - data.calculator_example_OverflowException_ex, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_accumulator_Result& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR); - - scdr - << eprosima::fastcdr::MemberId(0x0784a8b4) << data.result - << eprosima::fastcdr::MemberId(0x0d39fcce) << data.calculator_example_OverflowException_ex -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_accumulator_Result& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0x0784a8b4: - dcdr >> data.result; - break; - - case 0x0d39fcce: - dcdr >> data.calculator_example_OverflowException_ex; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_accumulator_Result& data) -{ - static_cast(scdr); - static_cast(data); -} - -//} // accumulator - -//{ filter -// Serialization methods for calculator_example::detail::Calculator_filter_In -/* -struct Calculator_filter_In -{ - - calculator_example::FilterKind filter_kind; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_filter_In& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.filter_kind, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_filter_In& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.filter_kind -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_filter_In& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.filter_kind; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_filter_In& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_filter_value_Feed -/* -struct Calculator_filter_value_Feed -{ - eprosima::fastcdr::optional value; - eprosima::fastcdr::optional finished_; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_filter_value_Feed& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.value, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), - data.finished_, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_filter_value_Feed& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.value - << eprosima::fastcdr::MemberId(1) << data.finished_ -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_filter_value_Feed& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.value; - break; - - case 1: - dcdr >> data.finished_; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_filter_value_Feed& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_filter_Out -/* -struct Calculator_filter_Out -{ - eprosima::fastcdr::optional return_; - eprosima::fastcdr::optional finished_; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_filter_Out& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), - data.return_, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), - data.finished_, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_filter_Out& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); - - scdr - << eprosima::fastcdr::MemberId(0) << data.return_ - << eprosima::fastcdr::MemberId(1) << data.finished_ -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_filter_Out& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0: - dcdr >> data.return_; - break; - - case 1: - dcdr >> data.finished_; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_filter_Out& data) -{ - static_cast(scdr); - static_cast(data); -} - -// Serialization methods for calculator_example::detail::Calculator_filter_Result -/* -struct Calculator_filter_Result -{ - eprosima::fastcdr::optional result; -}; -*/ -template<> -eProsima_user_DllExport size_t calculate_serialized_size( - eprosima::fastcdr::CdrSizeCalculator& calculator, - const ::calculator_example::detail::Calculator_filter_Result& data, - size_t& current_alignment) -{ - using namespace calculator_example::detail; - - static_cast(data); - - eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); - size_t calculated_size {calculator.begin_calculate_type_serialized_size( - eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR, - current_alignment)}; - - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0784a8b4), - data.result, current_alignment); - - - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); - - return calculated_size; -} - -template<> -eProsima_user_DllExport void serialize( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_filter_Result& data) -{ - using namespace calculator_example::detail; - - eprosima::fastcdr::Cdr::state current_state(scdr); - scdr.begin_serialize_type(current_state, - eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR); - - scdr - << eprosima::fastcdr::MemberId(0x0784a8b4) << data.result -; - scdr.end_serialize_type(current_state); -} - -template<> -eProsima_user_DllExport void deserialize( - eprosima::fastcdr::Cdr& cdr, - ::calculator_example::detail::Calculator_filter_Result& data) -{ - using namespace calculator_example::detail; - - cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR2 : - eprosima::fastcdr::EncodingAlgorithmFlag::PL_CDR, - [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool - { - bool ret_value = true; - switch (mid.id) - { - case 0x0784a8b4: - dcdr >> data.result; - break; - - default: - ret_value = false; - break; - } - return ret_value; - }); -} - -void serialize_key( - eprosima::fastcdr::Cdr& scdr, - const ::calculator_example::detail::Calculator_filter_Result& data) -{ - static_cast(scdr); - static_cast(data); -} - -//} // filter - //{ top level @@ -2351,13 +959,6 @@ struct Calculator_Request eprosima::fastcdr::optional representation_limits; eprosima::fastcdr::optional addition; eprosima::fastcdr::optional subtraction; - eprosima::fastcdr::optional fibonacci_seq; - eprosima::fastcdr::optional sum_all; - eprosima::fastcdr::optional sum_all_value; - eprosima::fastcdr::optional accumulator; - eprosima::fastcdr::optional accumulator_value; - eprosima::fastcdr::optional filter; - eprosima::fastcdr::optional filter_value; }; */ template<> @@ -2387,30 +988,6 @@ eProsima_user_DllExport size_t calculate_serialized_size( calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x096bbc8d), data.subtraction, current_alignment); - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0bad50ff), - data.fibonacci_seq, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0635cd81), - data.sum_all, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x04efb71e), - data.sum_all_value, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x03d4c1bd), - data.accumulator, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0916f618), - data.accumulator_value, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x047ac9b2), - data.filter, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x09fd5a08), - data.filter_value, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0f62acde), - data.feed_cancel_, current_alignment); - calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); @@ -2434,14 +1011,6 @@ eProsima_user_DllExport void serialize( << eprosima::fastcdr::MemberId(0x0e205a8d) << data.representation_limits << eprosima::fastcdr::MemberId(0x04e82a2b) << data.addition << eprosima::fastcdr::MemberId(0x096bbc8d) << data.subtraction - << eprosima::fastcdr::MemberId(0x0bad50ff) << data.fibonacci_seq - << eprosima::fastcdr::MemberId(0x0635cd81) << data.sum_all - << eprosima::fastcdr::MemberId(0x04efb71e) << data.sum_all_value - << eprosima::fastcdr::MemberId(0x03d4c1bd) << data.accumulator - << eprosima::fastcdr::MemberId(0x0916f618) << data.accumulator_value - << eprosima::fastcdr::MemberId(0x047ac9b2) << data.filter - << eprosima::fastcdr::MemberId(0x09fd5a08) << data.filter_value - << eprosima::fastcdr::MemberId(0x0f62acde) << data.feed_cancel_ ; scdr.end_serialize_type(current_state); } @@ -2473,38 +1042,6 @@ eProsima_user_DllExport void deserialize( dcdr >> data.subtraction; break; - case 0x0bad50ff: - dcdr >> data.fibonacci_seq; - break; - - case 0x0635cd81: - dcdr >> data.sum_all; - break; - - case 0x04efb71e: - dcdr >> data.sum_all_value; - break; - - case 0x03d4c1bd: - dcdr >> data.accumulator; - break; - - case 0x0916f618: - dcdr >> data.accumulator_value; - break; - - case 0x047ac9b2: - dcdr >> data.filter; - break; - - case 0x09fd5a08: - dcdr >> data.filter_value; - break; - - case 0x0f62acde: - dcdr >> data.feed_cancel_; - break; - default: ret_value = false; break; @@ -2528,10 +1065,6 @@ struct Calculator_Reply eprosima::fastcdr::optional representation_limits; eprosima::fastcdr::optional addition; eprosima::fastcdr::optional subtraction; - eprosima::fastcdr::optional fibonacci_seq; - eprosima::fastcdr::optional sum_all; - eprosima::fastcdr::optional accumulator; - eprosima::fastcdr::optional filter; eprosima::fastcdr::optional remoteEx; }; */ @@ -2562,18 +1095,6 @@ eProsima_user_DllExport size_t calculate_serialized_size( calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x096bbc8d), data.subtraction, current_alignment); - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0bad50ff), - data.fibonacci_seq, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0635cd81), - data.sum_all, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x03d4c1bd), - data.accumulator, current_alignment); - - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x047ac9b2), - data.filter, current_alignment); - calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0x0f8e48f0), data.remoteEx, current_alignment); @@ -2600,10 +1121,6 @@ eProsima_user_DllExport void serialize( << eprosima::fastcdr::MemberId(0x0e205a8d) << data.representation_limits << eprosima::fastcdr::MemberId(0x04e82a2b) << data.addition << eprosima::fastcdr::MemberId(0x096bbc8d) << data.subtraction - << eprosima::fastcdr::MemberId(0x0bad50ff) << data.fibonacci_seq - << eprosima::fastcdr::MemberId(0x0635cd81) << data.sum_all - << eprosima::fastcdr::MemberId(0x03d4c1bd) << data.accumulator - << eprosima::fastcdr::MemberId(0x047ac9b2) << data.filter << eprosima::fastcdr::MemberId(0x0f8e48f0) << data.remoteEx ; scdr.end_serialize_type(current_state); @@ -2636,22 +1153,6 @@ eProsima_user_DllExport void deserialize( dcdr >> data.subtraction; break; - case 0x0bad50ff: - dcdr >> data.fibonacci_seq; - break; - - case 0x0635cd81: - dcdr >> data.sum_all; - break; - - case 0x03d4c1bd: - dcdr >> data.accumulator; - break; - - case 0x047ac9b2: - dcdr >> data.filter; - break; - case 0x0f8e48f0: dcdr >> data.remoteEx; break; diff --git a/examples/cpp/rpc/types/calculatorClient.cxx b/examples/cpp/rpc/types/calculatorClient.cxx index 2ba0f805ca5..3c618c96bc6 100644 --- a/examples/cpp/rpc/types/calculatorClient.cxx +++ b/examples/cpp/rpc/types/calculatorClient.cxx @@ -287,10 +287,6 @@ class CalculatorClient : public Calculator n_fields += reply.representation_limits.has_value() ? 1 : 0; n_fields += reply.addition.has_value() ? 1 : 0; n_fields += reply.subtraction.has_value() ? 1 : 0; - n_fields += reply.fibonacci_seq.has_value() ? 1 : 0; - n_fields += reply.sum_all.has_value() ? 1 : 0; - n_fields += reply.accumulator.has_value() ? 1 : 0; - n_fields += reply.filter.has_value() ? 1 : 0; n_fields += reply.remoteEx.has_value() ? 1 : 0; return n_fields; } @@ -553,985 +549,6 @@ class CalculatorClient : public Calculator //} operation subtraction - //{ operation fibonacci_seq - -public: - - std::shared_ptr > fibonacci_seq( - /*in*/ uint32_t n_results) override - { - // Create a reader to hold the result - auto result = std::make_shared(requester_); - // Create and send the request - RequestType request; - request.fibonacci_seq = calculator_example::detail::Calculator_fibonacci_seq_In{}; - request.fibonacci_seq->n_results = n_results; - - return send_request_with_reader(request, result); - } - -private: - - struct fibonacci_seq_reader - : public frpc::RpcClientReader - , public IReplyProcessor - , public IExceptionHolder - { - fibonacci_seq_reader( - frpc::Requester* requester) - : requester_(requester) - { - } - - void process_reply( - const ReplyType& reply, - const frpc::RequestInfo& req_info, - bool& should_remove) override - { - should_remove = false; - // Check if the reply is for this operation - if (req_info.related_sample_identity != info.related_sample_identity) - { - return; - } - - // Avoid processing replies from different writers - if (frtps::GUID_t::unknown() == writer_id_) - { - writer_id_ = req_info.sample_identity.writer_guid(); - } - else if (writer_id_ != req_info.sample_identity.writer_guid()) - { - return; - } - - should_remove = true; - if (!validate_reply(*this, reply)) - { - return; - } - - if (reply.remoteEx.has_value()) - { - set_remote_exception(*this, reply.remoteEx.value()); - return; - } - - if (reply.fibonacci_seq.has_value()) - { - const auto& result = reply.fibonacci_seq.value(); - if (result.result.has_value()) - { - const auto& out = result.result.value(); - { - if (out.finished_.has_value()) - { - // Store the finished value - std::lock_guard _(mtx_); - finished_ = true; - cv_.notify_all(); - } - else if (out.return_.has_value()) - { - if (!cancelled_) - { - // Store the return value - std::lock_guard _(mtx_); - queue_.push(out.return_.value()); - cv_.notify_all(); - } - - // Should be kept in order to receive further values - should_remove = false; - } - else - { - set_invalid_reply(*this); - } - } - return; - } - if (result.calculator_example_OverflowException_ex.has_value()) - { - (*this).set_exception( - std::make_exception_ptr(result.calculator_example_OverflowException_ex.value())); - return; - } - } - - // If we reach this point, the reply is for another operation - set_invalid_reply(*this); - } - - void set_exception( - std::exception_ptr exception) override - { - std::lock_guard _(mtx_); - if (!finished_) - { - exception_ = exception; - finished_ = true; - cv_.notify_all(); - } - } - - bool read( - int32_t& value) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - while (!try_read(value, ret_val)) - { - cv_.wait(lock); - } - return ret_val; - } - - bool read( - int32_t& value, - const fdds::Duration_t& timeout) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - std::chrono::steady_clock::time_point end_time = - std::chrono::steady_clock::now() + - std::chrono::seconds(timeout.seconds) + - std::chrono::nanoseconds(timeout.nanosec); - while (!try_read(value, ret_val)) - { - cv_.wait_until(lock, end_time); - } - return ret_val; - } - - void cancel() override - { - bool old_cancelled = cancelled_.exchange(true); - if (!old_cancelled) - { - // Notify read calls that the operation was cancelled - cv_.notify_all(); - - // Communicate the cancellation to the server and wait for it to be acknowledged - RequestType request; - request.feed_cancel_ = true; - frpc::RequestInfo req_info = info; - auto ret = requester_->send_request((void*)&request, req_info); - if (ret != fdds::RETCODE_OK) - { - if (ret == fdds::RETCODE_TIMEOUT) - { - throw frpc::RpcTimeoutException(); - } - else - { - throw frpc::RpcBrokenPipeException(false); - } - } - - // Wait for the server to acknowledge the cancellation - std::unique_lock lock(mtx_); - while (!finished_) - { - cv_.wait(lock); - } - } - } - - private: - - bool try_read( - int32_t& value, - bool& ret_val) - { - // Early exit if the operation was cancelled - if (cancelled_) - { - ret_val = false; - return true; - } - - // Retrieve one value from the queue - if (!queue_.empty()) - { - value = queue_.front(); - queue_.pop(); - ret_val = true; - return true; - } - - // Throw the exception if it was set - if (exception_) - { - auto ex = exception_; - exception_ = nullptr; - std::rethrow_exception(ex); - } - - // Check if the operation was finished - if (finished_) - { - ret_val = false; - return true; - } - - // Need to wait for a new value - return false; - } - - frpc::Requester* requester_ = nullptr; - std::atomic cancelled_{false}; - std::exception_ptr exception_; - std::queue queue_; - bool finished_ = false; - std::mutex mtx_; - std::condition_variable cv_; - frtps::GUID_t writer_id_ = frtps::GUID_t::unknown(); - - }; - - - //} operation fibonacci_seq - - //{ operation sum_all - -public: - - eprosima::fastdds::dds::rpc::RpcFuture sum_all( - /*in*/ std::shared_ptr>& value) override - { - // Create a promise to hold the result - auto result = std::make_shared(); - - // Create and send the request - RequestType request; - request.sum_all = calculator_example::detail::Calculator_sum_all_In{}; - value = std::make_shared(requester_, result); - - return send_request_with_promise(request, result, result->promise); - } - -private: - - struct sum_all_promise : public IReplyProcessor - { - std::promise promise; - - void process_reply( - const ReplyType& reply, - const frpc::RequestInfo& req_info, - bool& should_remove) override - { - should_remove = false; - if (req_info.related_sample_identity != info.related_sample_identity) - { - return; - } - - should_remove = true; - if (!validate_reply(promise, reply)) - { - return; - } - - if (reply.remoteEx.has_value()) - { - set_remote_exception(promise, reply.remoteEx.value()); - return; - } - - if (reply.sum_all.has_value()) - { - const auto& result = reply.sum_all.value(); - if (result.result.has_value()) - { - const auto& out = result.result.value(); - promise.set_value(out.return_); - return; - } - if (result.calculator_example_OverflowException_ex.has_value()) - { - promise.set_exception( - std::make_exception_ptr(result.calculator_example_OverflowException_ex.value())); - return; - } - } - - // If we reach this point, the reply is for another operation - set_invalid_reply(promise); - } - - }; - - - struct sum_all_value_writer : public frpc::RpcClientWriter - { - using FeedType = calculator_example::detail::Calculator_sum_all_value_Feed; - - sum_all_value_writer( - frpc::Requester* requester, - std::shared_ptr result) - : requester_(requester) - , result_(result) - { - } - - void write( - const int32_t& value) override - { - RequestType request; - request.sum_all_value = FeedType{}; - request.sum_all_value->value = value; - send_request(request); - } - - void write( - int32_t&& value) override - { - RequestType request; - request.sum_all_value = FeedType{}; - request.sum_all_value->value = value; - send_request(request); - } - - void finish( - frpc::RpcStatusCode reason = frpc::RPC_STATUS_CODE_OK) override - { - RequestType request; - request.sum_all_value = FeedType{}; - request.sum_all_value->finished_ = reason; - send_request(request); - } - - private: - - void send_request( - const RequestType& request) - { - frpc::RequestInfo req_info = result_->info; - auto ret = requester_->send_request((void*)&request, req_info); - if (ret != fdds::RETCODE_OK) - { - if (ret == fdds::RETCODE_TIMEOUT) - { - throw frpc::RpcTimeoutException(); - } - else - { - throw frpc::RpcBrokenPipeException(false); - } - } - } - - frpc::Requester* requester_ = nullptr; - std::shared_ptr result_; - }; - - - //} operation sum_all - - //{ operation accumulator - -public: - - std::shared_ptr > accumulator( - /*in*/ std::shared_ptr>& value) override - { - // Create a reader to hold the result - auto result = std::make_shared(requester_); - // Create and send the request - RequestType request; - request.accumulator = calculator_example::detail::Calculator_accumulator_In{}; - value = std::make_shared(requester_, result); - - return send_request_with_reader(request, result); - } - -private: - - struct accumulator_reader - : public frpc::RpcClientReader - , public IReplyProcessor - , public IExceptionHolder - { - accumulator_reader( - frpc::Requester* requester) - : requester_(requester) - { - } - - void process_reply( - const ReplyType& reply, - const frpc::RequestInfo& req_info, - bool& should_remove) override - { - should_remove = false; - // Check if the reply is for this operation - if (req_info.related_sample_identity != info.related_sample_identity) - { - return; - } - - // Avoid processing replies from different writers - if (frtps::GUID_t::unknown() == writer_id_) - { - writer_id_ = req_info.sample_identity.writer_guid(); - } - else if (writer_id_ != req_info.sample_identity.writer_guid()) - { - return; - } - - should_remove = true; - if (!validate_reply(*this, reply)) - { - return; - } - - if (reply.remoteEx.has_value()) - { - set_remote_exception(*this, reply.remoteEx.value()); - return; - } - - if (reply.accumulator.has_value()) - { - const auto& result = reply.accumulator.value(); - if (result.result.has_value()) - { - const auto& out = result.result.value(); - { - if (out.finished_.has_value()) - { - // Store the finished value - std::lock_guard _(mtx_); - finished_ = true; - cv_.notify_all(); - } - else if (out.return_.has_value()) - { - if (!cancelled_) - { - // Store the return value - std::lock_guard _(mtx_); - queue_.push(out.return_.value()); - cv_.notify_all(); - } - - // Should be kept in order to receive further values - should_remove = false; - } - else - { - set_invalid_reply(*this); - } - } - return; - } - if (result.calculator_example_OverflowException_ex.has_value()) - { - (*this).set_exception( - std::make_exception_ptr(result.calculator_example_OverflowException_ex.value())); - return; - } - } - - // If we reach this point, the reply is for another operation - set_invalid_reply(*this); - } - - void set_exception( - std::exception_ptr exception) override - { - std::lock_guard _(mtx_); - if (!finished_) - { - exception_ = exception; - finished_ = true; - cv_.notify_all(); - } - } - - bool read( - int32_t& value) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - while (!try_read(value, ret_val)) - { - cv_.wait(lock); - } - return ret_val; - } - - bool read( - int32_t& value, - const fdds::Duration_t& timeout) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - std::chrono::steady_clock::time_point end_time = - std::chrono::steady_clock::now() + - std::chrono::seconds(timeout.seconds) + - std::chrono::nanoseconds(timeout.nanosec); - while (!try_read(value, ret_val)) - { - cv_.wait_until(lock, end_time); - } - return ret_val; - } - - void cancel() override - { - bool old_cancelled = cancelled_.exchange(true); - if (!old_cancelled) - { - // Notify read calls that the operation was cancelled - cv_.notify_all(); - - // Communicate the cancellation to the server and wait for it to be acknowledged - RequestType request; - request.feed_cancel_ = true; - frpc::RequestInfo req_info = info; - auto ret = requester_->send_request((void*)&request, req_info); - if (ret != fdds::RETCODE_OK) - { - if (ret == fdds::RETCODE_TIMEOUT) - { - throw frpc::RpcTimeoutException(); - } - else - { - throw frpc::RpcBrokenPipeException(false); - } - } - - // Wait for the server to acknowledge the cancellation - std::unique_lock lock(mtx_); - while (!finished_) - { - cv_.wait(lock); - } - } - } - - private: - - bool try_read( - int32_t& value, - bool& ret_val) - { - // Early exit if the operation was cancelled - if (cancelled_) - { - ret_val = false; - return true; - } - - // Retrieve one value from the queue - if (!queue_.empty()) - { - value = queue_.front(); - queue_.pop(); - ret_val = true; - return true; - } - - // Throw the exception if it was set - if (exception_) - { - auto ex = exception_; - exception_ = nullptr; - std::rethrow_exception(ex); - } - - // Check if the operation was finished - if (finished_) - { - ret_val = false; - return true; - } - - // Need to wait for a new value - return false; - } - - frpc::Requester* requester_ = nullptr; - std::atomic cancelled_{false}; - std::exception_ptr exception_; - std::queue queue_; - bool finished_ = false; - std::mutex mtx_; - std::condition_variable cv_; - frtps::GUID_t writer_id_ = frtps::GUID_t::unknown(); - - }; - - struct accumulator_value_writer : public frpc::RpcClientWriter - { - using FeedType = calculator_example::detail::Calculator_accumulator_value_Feed; - - accumulator_value_writer( - frpc::Requester* requester, - std::shared_ptr result) - : requester_(requester) - , result_(result) - { - } - - void write( - const int32_t& value) override - { - RequestType request; - request.accumulator_value = FeedType{}; - request.accumulator_value->value = value; - send_request(request); - } - - void write( - int32_t&& value) override - { - RequestType request; - request.accumulator_value = FeedType{}; - request.accumulator_value->value = value; - send_request(request); - } - - void finish( - frpc::RpcStatusCode reason = frpc::RPC_STATUS_CODE_OK) override - { - RequestType request; - request.accumulator_value = FeedType{}; - request.accumulator_value->finished_ = reason; - send_request(request); - } - - private: - - void send_request( - const RequestType& request) - { - frpc::RequestInfo req_info = result_->info; - auto ret = requester_->send_request((void*)&request, req_info); - if (ret != fdds::RETCODE_OK) - { - if (ret == fdds::RETCODE_TIMEOUT) - { - throw frpc::RpcTimeoutException(); - } - else - { - throw frpc::RpcBrokenPipeException(false); - } - } - } - - frpc::Requester* requester_ = nullptr; - std::shared_ptr result_; - }; - - - //} operation accumulator - - //{ operation filter - -public: - - std::shared_ptr > filter( - /*in*/ std::shared_ptr>& value, - /*in*/ calculator_example::FilterKind filter_kind) override - { - // Create a reader to hold the result - auto result = std::make_shared(requester_); - // Create and send the request - RequestType request; - request.filter = calculator_example::detail::Calculator_filter_In{}; - value = std::make_shared(requester_, result); - request.filter->filter_kind = filter_kind; - - return send_request_with_reader(request, result); - } - -private: - - struct filter_reader - : public frpc::RpcClientReader - , public IReplyProcessor - , public IExceptionHolder - { - filter_reader( - frpc::Requester* requester) - : requester_(requester) - { - } - - void process_reply( - const ReplyType& reply, - const frpc::RequestInfo& req_info, - bool& should_remove) override - { - should_remove = false; - // Check if the reply is for this operation - if (req_info.related_sample_identity != info.related_sample_identity) - { - return; - } - - // Avoid processing replies from different writers - if (frtps::GUID_t::unknown() == writer_id_) - { - writer_id_ = req_info.sample_identity.writer_guid(); - } - else if (writer_id_ != req_info.sample_identity.writer_guid()) - { - return; - } - - should_remove = true; - if (!validate_reply(*this, reply)) - { - return; - } - - if (reply.remoteEx.has_value()) - { - set_remote_exception(*this, reply.remoteEx.value()); - return; - } - - if (reply.filter.has_value()) - { - const auto& result = reply.filter.value(); - if (result.result.has_value()) - { - const auto& out = result.result.value(); - { - if (out.finished_.has_value()) - { - // Store the finished value - std::lock_guard _(mtx_); - finished_ = true; - cv_.notify_all(); - } - else if (out.return_.has_value()) - { - if (!cancelled_) - { - // Store the return value - std::lock_guard _(mtx_); - queue_.push(out.return_.value()); - cv_.notify_all(); - } - - // Should be kept in order to receive further values - should_remove = false; - } - else - { - set_invalid_reply(*this); - } - } - return; - } - } - - // If we reach this point, the reply is for another operation - set_invalid_reply(*this); - } - - void set_exception( - std::exception_ptr exception) override - { - std::lock_guard _(mtx_); - if (!finished_) - { - exception_ = exception; - finished_ = true; - cv_.notify_all(); - } - } - - bool read( - int32_t& value) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - while (!try_read(value, ret_val)) - { - cv_.wait(lock); - } - return ret_val; - } - - bool read( - int32_t& value, - const fdds::Duration_t& timeout) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - std::chrono::steady_clock::time_point end_time = - std::chrono::steady_clock::now() + - std::chrono::seconds(timeout.seconds) + - std::chrono::nanoseconds(timeout.nanosec); - while (!try_read(value, ret_val)) - { - cv_.wait_until(lock, end_time); - } - return ret_val; - } - - void cancel() override - { - bool old_cancelled = cancelled_.exchange(true); - if (!old_cancelled) - { - // Notify read calls that the operation was cancelled - cv_.notify_all(); - - // Communicate the cancellation to the server and wait for it to be acknowledged - RequestType request; - request.feed_cancel_ = true; - frpc::RequestInfo req_info = info; - auto ret = requester_->send_request((void*)&request, req_info); - if (ret != fdds::RETCODE_OK) - { - if (ret == fdds::RETCODE_TIMEOUT) - { - throw frpc::RpcTimeoutException(); - } - else - { - throw frpc::RpcBrokenPipeException(false); - } - } - - // Wait for the server to acknowledge the cancellation - std::unique_lock lock(mtx_); - while (!finished_) - { - cv_.wait(lock); - } - } - } - - private: - - bool try_read( - int32_t& value, - bool& ret_val) - { - // Early exit if the operation was cancelled - if (cancelled_) - { - ret_val = false; - return true; - } - - // Retrieve one value from the queue - if (!queue_.empty()) - { - value = queue_.front(); - queue_.pop(); - ret_val = true; - return true; - } - - // Throw the exception if it was set - if (exception_) - { - auto ex = exception_; - exception_ = nullptr; - std::rethrow_exception(ex); - } - - // Check if the operation was finished - if (finished_) - { - ret_val = false; - return true; - } - - // Need to wait for a new value - return false; - } - - frpc::Requester* requester_ = nullptr; - std::atomic cancelled_{false}; - std::exception_ptr exception_; - std::queue queue_; - bool finished_ = false; - std::mutex mtx_; - std::condition_variable cv_; - frtps::GUID_t writer_id_ = frtps::GUID_t::unknown(); - - }; - - struct filter_value_writer : public frpc::RpcClientWriter - { - using FeedType = calculator_example::detail::Calculator_filter_value_Feed; - - filter_value_writer( - frpc::Requester* requester, - std::shared_ptr result) - : requester_(requester) - , result_(result) - { - } - - void write( - const int32_t& value) override - { - RequestType request; - request.filter_value = FeedType{}; - request.filter_value->value = value; - send_request(request); - } - - void write( - int32_t&& value) override - { - RequestType request; - request.filter_value = FeedType{}; - request.filter_value->value = value; - send_request(request); - } - - void finish( - frpc::RpcStatusCode reason = frpc::RPC_STATUS_CODE_OK) override - { - RequestType request; - request.filter_value = FeedType{}; - request.filter_value->finished_ = reason; - send_request(request); - } - - private: - - void send_request( - const RequestType& request) - { - frpc::RequestInfo req_info = result_->info; - auto ret = requester_->send_request((void*)&request, req_info); - if (ret != fdds::RETCODE_OK) - { - if (ret == fdds::RETCODE_TIMEOUT) - { - throw frpc::RpcTimeoutException(); - } - else - { - throw frpc::RpcBrokenPipeException(false); - } - } - } - - frpc::Requester* requester_ = nullptr; - std::shared_ptr result_; - }; - - - //} operation filter - }; diff --git a/examples/cpp/rpc/types/calculatorPubSubTypes.cxx b/examples/cpp/rpc/types/calculatorPubSubTypes.cxx index 65e6986cf1f..02ab0530540 100644 --- a/examples/cpp/rpc/types/calculatorPubSubTypes.cxx +++ b/examples/cpp/rpc/types/calculatorPubSubTypes.cxx @@ -44,7 +44,7 @@ namespace calculator_example { Calculator_RequestPubSubType() { set_name("calculator_example::Calculator_Request"); - uint32_t type_size = 212UL; + uint32_t type_size = 56UL; type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ max_serialized_type_size = type_size + 4; /*encapsulation*/ is_compute_key_provided = false; @@ -192,7 +192,7 @@ namespace calculator_example { Calculator_ReplyPubSubType() { set_name("calculator_example::Calculator_Reply"); - uint32_t type_size = 212UL; + uint32_t type_size = 56UL; type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ max_serialized_type_size = type_size + 4; /*encapsulation*/ is_compute_key_provided = false; diff --git a/examples/cpp/rpc/types/calculatorServer.cxx b/examples/cpp/rpc/types/calculatorServer.cxx index d94cc1337d5..1e18f11f00f 100644 --- a/examples/cpp/rpc/types/calculatorServer.cxx +++ b/examples/cpp/rpc/types/calculatorServer.cxx @@ -241,520 +241,6 @@ class CalculatorServerLogic //} operation subtraction - //{ operation fibonacci_seq - - struct fibonacci_seq_result_writer : - public frpc::RpcServerWriter, - public IOutputFeedCancellator - { - fibonacci_seq_result_writer( - const frpc::RequestInfo& info, - frpc::Replier* replier) - : info_(info) - , replier_(replier) - { - info_.has_more_replies = true; - reply_.fibonacci_seq = calculator_example::detail::Calculator_fibonacci_seq_Result{}; - reply_.fibonacci_seq->result = calculator_example::detail::Calculator_fibonacci_seq_Out{}; - } - - void write( - const int32_t& value) override - { - if (cancelled_.load()) - { - throw frpc::RpcFeedCancelledException(0); - } - reply_.fibonacci_seq->result->return_ = value; - replier_->send_reply(&reply_, info_); - } - - void write( - int32_t&& value) override - { - if (cancelled_.load()) - { - throw frpc::RpcFeedCancelledException(0); - } - reply_.fibonacci_seq->result->return_ = value; - replier_->send_reply(&reply_, info_); - } - - void cancel() override - { - cancelled_.store(true); - } - - private: - - frpc::RequestInfo info_; - frpc::Replier* replier_ = nullptr; - ReplyType reply_{}; - std::atomic cancelled_{ false }; - - }; - - //} operation fibonacci_seq - - //{ operation sum_all - - struct sum_all_value_reader : - public frpc::RpcServerReader, - public IInputFeedProcessor - { - sum_all_value_reader() = default; - - bool process_additional_request( - const RequestType& request) override - { - if (request.sum_all_value.has_value()) - { - if (request.sum_all_value->finished_.has_value()) - { - std::lock_guard _(mtx_); - if (!finished_) - { - finished_ = true; - status_ = request.sum_all_value->finished_.value(); - cv_.notify_all(); - } - return true; - } - else if (request.sum_all_value->value.has_value()) - { - std::lock_guard _(mtx_); - if (!finished_) - { - queue_.push(request.sum_all_value->value.value()); - cv_.notify_all(); - } - return true; - } - } - return false; - } - - void cancel_input_feed() override - { - std::lock_guard _(mtx_); - finished_ = true; - cv_.notify_all(); - } - - bool read( - int32_t& value) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - while (!try_read(value, ret_val)) - { - cv_.wait(lock); - } - return ret_val; - } - - bool read( - int32_t& value, - const fdds::Duration_t& timeout) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - std::chrono::steady_clock::time_point end_time = - std::chrono::steady_clock::now() + - std::chrono::seconds(timeout.seconds) + - std::chrono::nanoseconds(timeout.nanosec); - while (!try_read(value, ret_val)) - { - if (cv_.wait_until(lock, end_time) == std::cv_status::timeout) - { - throw frpc::RpcTimeoutException(); - } - } - return ret_val; - } - - private: - - bool try_read( - int32_t& value, - bool& ret_val) - { - if (!queue_.empty()) - { - value = queue_.front(); - queue_.pop(); - ret_val = true; - return true; - } - - if (finished_) - { - if (status_ == frpc::RPC_STATUS_CODE_OK) - { - ret_val = false; - return true; - } - else - { - throw frpc::RpcFeedCancelledException(status_); - } - } - - ret_val = false; - return false; - } - - std::mutex mtx_; - std::condition_variable cv_; - std::queue queue_; - bool finished_{ false }; - frpc::RpcStatusCode status_{ frpc::RPC_STATUS_CODE_OK }; - - }; - - - //} operation sum_all - - //{ operation accumulator - - struct accumulator_value_reader : - public frpc::RpcServerReader, - public IInputFeedProcessor - { - accumulator_value_reader() = default; - - bool process_additional_request( - const RequestType& request) override - { - if (request.accumulator_value.has_value()) - { - if (request.accumulator_value->finished_.has_value()) - { - std::lock_guard _(mtx_); - if (!finished_) - { - finished_ = true; - status_ = request.accumulator_value->finished_.value(); - cv_.notify_all(); - } - return true; - } - else if (request.accumulator_value->value.has_value()) - { - std::lock_guard _(mtx_); - if (!finished_) - { - queue_.push(request.accumulator_value->value.value()); - cv_.notify_all(); - } - return true; - } - } - return false; - } - - void cancel_input_feed() override - { - std::lock_guard _(mtx_); - finished_ = true; - cv_.notify_all(); - } - - bool read( - int32_t& value) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - while (!try_read(value, ret_val)) - { - cv_.wait(lock); - } - return ret_val; - } - - bool read( - int32_t& value, - const fdds::Duration_t& timeout) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - std::chrono::steady_clock::time_point end_time = - std::chrono::steady_clock::now() + - std::chrono::seconds(timeout.seconds) + - std::chrono::nanoseconds(timeout.nanosec); - while (!try_read(value, ret_val)) - { - if (cv_.wait_until(lock, end_time) == std::cv_status::timeout) - { - throw frpc::RpcTimeoutException(); - } - } - return ret_val; - } - - private: - - bool try_read( - int32_t& value, - bool& ret_val) - { - if (!queue_.empty()) - { - value = queue_.front(); - queue_.pop(); - ret_val = true; - return true; - } - - if (finished_) - { - if (status_ == frpc::RPC_STATUS_CODE_OK) - { - ret_val = false; - return true; - } - else - { - throw frpc::RpcFeedCancelledException(status_); - } - } - - ret_val = false; - return false; - } - - std::mutex mtx_; - std::condition_variable cv_; - std::queue queue_; - bool finished_{ false }; - frpc::RpcStatusCode status_{ frpc::RPC_STATUS_CODE_OK }; - - }; - - - struct accumulator_result_writer : - public frpc::RpcServerWriter, - public IOutputFeedCancellator - { - accumulator_result_writer( - const frpc::RequestInfo& info, - frpc::Replier* replier) - : info_(info) - , replier_(replier) - { - info_.has_more_replies = true; - reply_.accumulator = calculator_example::detail::Calculator_accumulator_Result{}; - reply_.accumulator->result = calculator_example::detail::Calculator_accumulator_Out{}; - } - - void write( - const int32_t& value) override - { - if (cancelled_.load()) - { - throw frpc::RpcFeedCancelledException(0); - } - reply_.accumulator->result->return_ = value; - replier_->send_reply(&reply_, info_); - } - - void write( - int32_t&& value) override - { - if (cancelled_.load()) - { - throw frpc::RpcFeedCancelledException(0); - } - reply_.accumulator->result->return_ = value; - replier_->send_reply(&reply_, info_); - } - - void cancel() override - { - cancelled_.store(true); - } - - private: - - frpc::RequestInfo info_; - frpc::Replier* replier_ = nullptr; - ReplyType reply_{}; - std::atomic cancelled_{ false }; - - }; - - //} operation accumulator - - //{ operation filter - - struct filter_value_reader : - public frpc::RpcServerReader, - public IInputFeedProcessor - { - filter_value_reader() = default; - - bool process_additional_request( - const RequestType& request) override - { - if (request.filter_value.has_value()) - { - if (request.filter_value->finished_.has_value()) - { - std::lock_guard _(mtx_); - if (!finished_) - { - finished_ = true; - status_ = request.filter_value->finished_.value(); - cv_.notify_all(); - } - return true; - } - else if (request.filter_value->value.has_value()) - { - std::lock_guard _(mtx_); - if (!finished_) - { - queue_.push(request.filter_value->value.value()); - cv_.notify_all(); - } - return true; - } - } - return false; - } - - void cancel_input_feed() override - { - std::lock_guard _(mtx_); - finished_ = true; - cv_.notify_all(); - } - - bool read( - int32_t& value) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - while (!try_read(value, ret_val)) - { - cv_.wait(lock); - } - return ret_val; - } - - bool read( - int32_t& value, - const fdds::Duration_t& timeout) override - { - bool ret_val = false; - std::unique_lock lock(mtx_); - std::chrono::steady_clock::time_point end_time = - std::chrono::steady_clock::now() + - std::chrono::seconds(timeout.seconds) + - std::chrono::nanoseconds(timeout.nanosec); - while (!try_read(value, ret_val)) - { - if (cv_.wait_until(lock, end_time) == std::cv_status::timeout) - { - throw frpc::RpcTimeoutException(); - } - } - return ret_val; - } - - private: - - bool try_read( - int32_t& value, - bool& ret_val) - { - if (!queue_.empty()) - { - value = queue_.front(); - queue_.pop(); - ret_val = true; - return true; - } - - if (finished_) - { - if (status_ == frpc::RPC_STATUS_CODE_OK) - { - ret_val = false; - return true; - } - else - { - throw frpc::RpcFeedCancelledException(status_); - } - } - - ret_val = false; - return false; - } - - std::mutex mtx_; - std::condition_variable cv_; - std::queue queue_; - bool finished_{ false }; - frpc::RpcStatusCode status_{ frpc::RPC_STATUS_CODE_OK }; - - }; - - - struct filter_result_writer : - public frpc::RpcServerWriter, - public IOutputFeedCancellator - { - filter_result_writer( - const frpc::RequestInfo& info, - frpc::Replier* replier) - : info_(info) - , replier_(replier) - { - info_.has_more_replies = true; - reply_.filter = calculator_example::detail::Calculator_filter_Result{}; - reply_.filter->result = calculator_example::detail::Calculator_filter_Out{}; - } - - void write( - const int32_t& value) override - { - if (cancelled_.load()) - { - throw frpc::RpcFeedCancelledException(0); - } - reply_.filter->result->return_ = value; - replier_->send_reply(&reply_, info_); - } - - void write( - int32_t&& value) override - { - if (cancelled_.load()) - { - throw frpc::RpcFeedCancelledException(0); - } - reply_.filter->result->return_ = value; - replier_->send_reply(&reply_, info_); - } - - void cancel() override - { - cancelled_.store(true); - } - - private: - - frpc::RequestInfo info_; - frpc::Replier* replier_ = nullptr; - ReplyType reply_{}; - std::atomic cancelled_{ false }; - - }; - - //} operation filter - struct RequestContext : frpc::RpcRequest { RequestType request; @@ -777,35 +263,6 @@ class CalculatorServerLogic } subtraction_feeds; - struct fibonacci_seq_feeds_t - { - std::shared_ptr result_writer; - } - fibonacci_seq_feeds; - - struct sum_all_feeds_t - { - std::shared_ptr value; - - } - sum_all_feeds; - - struct accumulator_feeds_t - { - std::shared_ptr value; - - std::shared_ptr result_writer; - } - accumulator_feeds; - - struct filter_feeds_t - { - std::shared_ptr value; - - std::shared_ptr result_writer; - } - filter_feeds; - const frtps::GUID_t& get_client_id() const override { return client_id; @@ -834,14 +291,6 @@ class CalculatorServerLogic n_fields += request.representation_limits.has_value() ? 1 : 0; n_fields += request.addition.has_value() ? 1 : 0; n_fields += request.subtraction.has_value() ? 1 : 0; - n_fields += request.fibonacci_seq.has_value() ? 1 : 0; - n_fields += request.sum_all.has_value() ? 1 : 0; - n_fields += request.sum_all_value.has_value() ? 1 : 0; - n_fields += request.accumulator.has_value() ? 1 : 0; - n_fields += request.accumulator_value.has_value() ? 1 : 0; - n_fields += request.filter.has_value() ? 1 : 0; - n_fields += request.filter_value.has_value() ? 1 : 0; - n_fields += request.feed_cancel_.has_value() ? 1 : 0; return n_fields == 1U; } @@ -854,19 +303,6 @@ class CalculatorServerLogic should_erase = false; if (ctx->info.related_sample_identity == info.related_sample_identity) { - if (ctx->request.feed_cancel_.has_value()) - { - if (output_feed_cancellator_) - { - output_feed_cancellator_->cancel(); - } - else - { - EPROSIMA_LOG_ERROR(RPC_SERVER, "Output feed cancel request received, but no output feed is active."); - } - - return; - } // Pass request to input feed processors should_erase = true; for (const auto& input_feed : input_feed_processors_) @@ -909,26 +345,6 @@ class CalculatorServerLogic return prepare_subtraction(replier); } - if (request.fibonacci_seq.has_value()) - { - return prepare_fibonacci_seq(replier); - } - - if (request.sum_all.has_value()) - { - return prepare_sum_all(replier); - } - - if (request.accumulator.has_value()) - { - return prepare_accumulator(replier); - } - - if (request.filter.has_value()) - { - return prepare_filter(replier); - } - send_exception(frpc::RemoteExceptionCode_t::REMOTE_EX_UNKNOWN_OPERATION, replier); return false; @@ -984,49 +400,6 @@ class CalculatorServerLogic return true; } - bool prepare_fibonacci_seq( - frpc::Replier* replier) - { - static_cast(replier); - fibonacci_seq_feeds.result_writer = std::make_shared(info, replier); - output_feed_cancellator_ = fibonacci_seq_feeds.result_writer; - return true; - } - - bool prepare_sum_all( - frpc::Replier* replier) - { - static_cast(replier); - sum_all_feeds.value = std::make_shared(); - input_feed_processors_.push_back(sum_all_feeds.value); - - return true; - } - - bool prepare_accumulator( - frpc::Replier* replier) - { - static_cast(replier); - accumulator_feeds.value = std::make_shared(); - input_feed_processors_.push_back(accumulator_feeds.value); - - accumulator_feeds.result_writer = std::make_shared(info, replier); - output_feed_cancellator_ = accumulator_feeds.result_writer; - return true; - } - - bool prepare_filter( - frpc::Replier* replier) - { - static_cast(replier); - filter_feeds.value = std::make_shared(); - input_feed_processors_.push_back(filter_feeds.value); - - filter_feeds.result_writer = std::make_shared(info, replier); - output_feed_cancellator_ = filter_feeds.result_writer; - return true; - } - }; struct ThreadPool @@ -1213,118 +586,6 @@ class CalculatorServerLogic break; } - if (req->request.fibonacci_seq.has_value()) - { - try - { - implementation_->fibonacci_seq( - *req, - req->request.fibonacci_seq->n_results, - *(req->fibonacci_seq_feeds.result_writer)); - ReplyType reply{}; - reply.fibonacci_seq = calculator_example::detail::Calculator_fibonacci_seq_Result{}; - reply.fibonacci_seq->result = calculator_example::detail::Calculator_fibonacci_seq_Out{}; - reply.fibonacci_seq->result->finished_ = true; - replier_->send_reply(&reply, req->info); - } - catch (const frpc::RpcFeedCancelledException& /*ex*/) - { - ReplyType reply{}; - reply.fibonacci_seq = calculator_example::detail::Calculator_fibonacci_seq_Result{}; - reply.fibonacci_seq->result = calculator_example::detail::Calculator_fibonacci_seq_Out{}; - reply.fibonacci_seq->result->finished_ = true; - replier_->send_reply(&reply, req->info); - } - catch (const calculator_example::OverflowException& ex) - { - ReplyType reply{}; - reply.fibonacci_seq = calculator_example::detail::Calculator_fibonacci_seq_Result{}; - reply.fibonacci_seq->calculator_example_OverflowException_ex = ex; - replier_->send_reply(&reply, req->info); - } - break; - } - - if (req->request.sum_all.has_value()) - { - try - { - ReplyType reply{}; - reply.sum_all = calculator_example::detail::Calculator_sum_all_Result{}; - reply.sum_all->result = calculator_example::detail::Calculator_sum_all_Out{}; - reply.sum_all->result->return_ = implementation_->sum_all( - *req, - *(req->sum_all_feeds.value)); - replier_->send_reply(&reply, req->info); - } - catch (const calculator_example::OverflowException& ex) - { - ReplyType reply{}; - reply.sum_all = calculator_example::detail::Calculator_sum_all_Result{}; - reply.sum_all->calculator_example_OverflowException_ex = ex; - replier_->send_reply(&reply, req->info); - } - break; - } - - if (req->request.accumulator.has_value()) - { - try - { - implementation_->accumulator( - *req, - *(req->accumulator_feeds.value), - *(req->accumulator_feeds.result_writer)); - ReplyType reply{}; - reply.accumulator = calculator_example::detail::Calculator_accumulator_Result{}; - reply.accumulator->result = calculator_example::detail::Calculator_accumulator_Out{}; - reply.accumulator->result->finished_ = true; - replier_->send_reply(&reply, req->info); - } - catch (const frpc::RpcFeedCancelledException& /*ex*/) - { - ReplyType reply{}; - reply.accumulator = calculator_example::detail::Calculator_accumulator_Result{}; - reply.accumulator->result = calculator_example::detail::Calculator_accumulator_Out{}; - reply.accumulator->result->finished_ = true; - replier_->send_reply(&reply, req->info); - } - catch (const calculator_example::OverflowException& ex) - { - ReplyType reply{}; - reply.accumulator = calculator_example::detail::Calculator_accumulator_Result{}; - reply.accumulator->calculator_example_OverflowException_ex = ex; - replier_->send_reply(&reply, req->info); - } - break; - } - - if (req->request.filter.has_value()) - { - try - { - implementation_->filter( - *req, - *(req->filter_feeds.value), - req->request.filter->filter_kind, - *(req->filter_feeds.result_writer)); - ReplyType reply{}; - reply.filter = calculator_example::detail::Calculator_filter_Result{}; - reply.filter->result = calculator_example::detail::Calculator_filter_Out{}; - reply.filter->result->finished_ = true; - replier_->send_reply(&reply, req->info); - } - catch (const frpc::RpcFeedCancelledException& /*ex*/) - { - ReplyType reply{}; - reply.filter = calculator_example::detail::Calculator_filter_Result{}; - reply.filter->result = calculator_example::detail::Calculator_filter_Out{}; - reply.filter->result->finished_ = true; - replier_->send_reply(&reply, req->info); - } - break; - } - req->send_exception(frpc::RemoteExceptionCode_t::REMOTE_EX_UNSUPPORTED, replier_); break; } diff --git a/examples/cpp/rpc/types/calculatorServer.hpp b/examples/cpp/rpc/types/calculatorServer.hpp index 10683bf98af..aff6a5ed780 100644 --- a/examples/cpp/rpc/types/calculatorServer.hpp +++ b/examples/cpp/rpc/types/calculatorServer.hpp @@ -56,34 +56,6 @@ struct CalculatorServer_IServerImplementation /*in*/ int32_t value1, /*in*/ int32_t value2) = 0; - - - virtual void fibonacci_seq( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ uint32_t n_results, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) = 0; - - - - virtual int32_t sum_all( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value) = 0; - - - - virtual void accumulator( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) = 0; - - - - virtual void filter( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value, - /*in*/ calculator_example::FilterKind filter_kind, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) = 0; - }; /** diff --git a/examples/cpp/rpc/types/calculatorServerImpl.hpp b/examples/cpp/rpc/types/calculatorServerImpl.hpp index 991d5e8a16b..d20d3f3c8f2 100644 --- a/examples/cpp/rpc/types/calculatorServerImpl.hpp +++ b/examples/cpp/rpc/types/calculatorServerImpl.hpp @@ -62,50 +62,6 @@ struct CalculatorServerImplementation : throw eprosima::fastdds::dds::rpc::RemoteUnsupportedError("Operation 'subtraction' is not implemented"); } - void fibonacci_seq( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ uint32_t n_results, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) override - { - static_cast(info); - static_cast(n_results); - static_cast(result_writer); - throw eprosima::fastdds::dds::rpc::RemoteUnsupportedError("Operation 'fibonacci_seq' is not implemented"); - } - - int32_t sum_all( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value) override - { - static_cast(info); - static_cast(value); - throw eprosima::fastdds::dds::rpc::RemoteUnsupportedError("Operation 'sum_all' is not implemented"); - } - - void accumulator( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) override - { - static_cast(info); - static_cast(value); - static_cast(result_writer); - throw eprosima::fastdds::dds::rpc::RemoteUnsupportedError("Operation 'accumulator' is not implemented"); - } - - void filter( - const eprosima::fastdds::dds::rpc::RpcRequest& info, - /*in*/ eprosima::fastdds::dds::rpc::RpcServerReader& value, - /*in*/ calculator_example::FilterKind filter_kind, - /*result*/ eprosima::fastdds::dds::rpc::RpcServerWriter& result_writer) override - { - static_cast(info); - static_cast(value); - static_cast(filter_kind); - static_cast(result_writer); - throw eprosima::fastdds::dds::rpc::RemoteUnsupportedError("Operation 'filter' is not implemented"); - } - }; //} interface Calculator diff --git a/examples/cpp/rpc/types/calculatorTypeObjectSupport.cxx b/examples/cpp/rpc/types/calculatorTypeObjectSupport.cxx index dc189bf5ca2..a24f3981113 100644 --- a/examples/cpp/rpc/types/calculatorTypeObjectSupport.cxx +++ b/examples/cpp/rpc/types/calculatorTypeObjectSupport.cxx @@ -89,63 +89,6 @@ void register_OverflowException_type_identifier( "calculator_example::OverflowException already registered in TypeObjectRegistry for a different type."); } } -}void register_FilterKind_type_identifier( - TypeIdentifierPair& type_ids_FilterKind) -{ - ReturnCode_t return_code_FilterKind {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FilterKind = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::FilterKind", type_ids_FilterKind); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FilterKind) - { - EnumTypeFlag enum_flags_FilterKind = 0; - BitBound bit_bound_FilterKind = 32; - CommonEnumeratedHeader common_FilterKind = TypeObjectUtils::build_common_enumerated_header(bit_bound_FilterKind); - QualifiedTypeName type_name_FilterKind = "calculator_example::FilterKind"; - eprosima::fastcdr::optional type_ann_builtin_FilterKind; - eprosima::fastcdr::optional ann_custom_FilterKind; - CompleteTypeDetail detail_FilterKind = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_FilterKind, ann_custom_FilterKind, type_name_FilterKind.to_string()); - CompleteEnumeratedHeader header_FilterKind = TypeObjectUtils::build_complete_enumerated_header(common_FilterKind, detail_FilterKind); - CompleteEnumeratedLiteralSeq literal_seq_FilterKind; - { - EnumeratedLiteralFlag flags_EVEN = TypeObjectUtils::build_enumerated_literal_flag(false); - CommonEnumeratedLiteral common_EVEN = TypeObjectUtils::build_common_enumerated_literal(0, flags_EVEN); - eprosima::fastcdr::optional member_ann_builtin_EVEN; - ann_custom_FilterKind.reset(); - MemberName name_EVEN = "EVEN"; - CompleteMemberDetail detail_EVEN = TypeObjectUtils::build_complete_member_detail(name_EVEN, member_ann_builtin_EVEN, ann_custom_FilterKind); - CompleteEnumeratedLiteral literal_EVEN = TypeObjectUtils::build_complete_enumerated_literal(common_EVEN, detail_EVEN); - TypeObjectUtils::add_complete_enumerated_literal(literal_seq_FilterKind, literal_EVEN); - } - { - EnumeratedLiteralFlag flags_ODD = TypeObjectUtils::build_enumerated_literal_flag(false); - CommonEnumeratedLiteral common_ODD = TypeObjectUtils::build_common_enumerated_literal(1, flags_ODD); - eprosima::fastcdr::optional member_ann_builtin_ODD; - ann_custom_FilterKind.reset(); - MemberName name_ODD = "ODD"; - CompleteMemberDetail detail_ODD = TypeObjectUtils::build_complete_member_detail(name_ODD, member_ann_builtin_ODD, ann_custom_FilterKind); - CompleteEnumeratedLiteral literal_ODD = TypeObjectUtils::build_complete_enumerated_literal(common_ODD, detail_ODD); - TypeObjectUtils::add_complete_enumerated_literal(literal_seq_FilterKind, literal_ODD); - } - { - EnumeratedLiteralFlag flags_PRIME = TypeObjectUtils::build_enumerated_literal_flag(false); - CommonEnumeratedLiteral common_PRIME = TypeObjectUtils::build_common_enumerated_literal(2, flags_PRIME); - eprosima::fastcdr::optional member_ann_builtin_PRIME; - ann_custom_FilterKind.reset(); - MemberName name_PRIME = "PRIME"; - CompleteMemberDetail detail_PRIME = TypeObjectUtils::build_complete_member_detail(name_PRIME, member_ann_builtin_PRIME, ann_custom_FilterKind); - CompleteEnumeratedLiteral literal_PRIME = TypeObjectUtils::build_complete_enumerated_literal(common_PRIME, detail_PRIME); - TypeObjectUtils::add_complete_enumerated_literal(literal_seq_FilterKind, literal_PRIME); - } - CompleteEnumeratedType enumerated_type_FilterKind = TypeObjectUtils::build_complete_enumerated_type(enum_flags_FilterKind, header_FilterKind, - literal_seq_FilterKind); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_enumerated_type_object(enumerated_type_FilterKind, type_name_FilterKind.to_string(), type_ids_FilterKind)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::FilterKind already registered in TypeObjectRegistry for a different type."); - } - } } namespace detail { @@ -889,1964 +832,249 @@ void register_Calculator_subtraction_Result_type_identifier( //} // subtraction -//{ fibonacci_seq + +} // namespace detail + // TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_fibonacci_seq_In_type_identifier( - TypeIdentifierPair& type_ids_Calculator_fibonacci_seq_In) +void register_Calculator_Request_type_identifier( + TypeIdentifierPair& type_ids_Calculator_Request) { - ReturnCode_t return_code_Calculator_fibonacci_seq_In {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_fibonacci_seq_In = + ReturnCode_t return_code_Calculator_Request {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Calculator_Request = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_fibonacci_seq_In", type_ids_Calculator_fibonacci_seq_In); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_fibonacci_seq_In) + "calculator_example::detail::Calculator_Request", type_ids_Calculator_Request); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_Request) { - StructTypeFlag struct_flags_Calculator_fibonacci_seq_In = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, + StructTypeFlag struct_flags_Calculator_Request = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::MUTABLE, false, false); - QualifiedTypeName type_name_Calculator_fibonacci_seq_In = "calculator_example::detail::Calculator_fibonacci_seq_In"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_fibonacci_seq_In; - eprosima::fastcdr::optional ann_custom_Calculator_fibonacci_seq_In; - CompleteTypeDetail detail_Calculator_fibonacci_seq_In = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_fibonacci_seq_In, ann_custom_Calculator_fibonacci_seq_In, type_name_Calculator_fibonacci_seq_In.to_string()); - CompleteStructHeader header_Calculator_fibonacci_seq_In; - header_Calculator_fibonacci_seq_In = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_fibonacci_seq_In); - CompleteStructMemberSeq member_seq_Calculator_fibonacci_seq_In; + QualifiedTypeName type_name_Calculator_Request = "calculator_example::detail::Calculator_Request"; + eprosima::fastcdr::optional type_ann_builtin_Calculator_Request; + eprosima::fastcdr::optional ann_custom_Calculator_Request; + CompleteTypeDetail detail_Calculator_Request = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_Request, ann_custom_Calculator_Request, type_name_Calculator_Request.to_string()); + CompleteStructHeader header_Calculator_Request; + header_Calculator_Request = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_Request); + CompleteStructMemberSeq member_seq_Calculator_Request; { - TypeIdentifierPair type_ids_n_results; - ReturnCode_t return_code_n_results {eprosima::fastdds::dds::RETCODE_OK}; - return_code_n_results = + TypeIdentifierPair type_ids_representation_limits; + ReturnCode_t return_code_representation_limits {eprosima::fastdds::dds::RETCODE_OK}; + return_code_representation_limits = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_uint32_t", type_ids_n_results); + "calculator_example::detail::Calculator_representation_limits_In", type_ids_representation_limits); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_n_results) + if (eprosima::fastdds::dds::RETCODE_OK != return_code_representation_limits) { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "n_results Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; + ::calculator_example::detail::register_Calculator_representation_limits_In_type_identifier(type_ids_representation_limits); } - StructMemberFlag member_flags_n_results = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_n_results = 0x00000000; - bool common_n_results_ec {false}; - CommonStructMember common_n_results {TypeObjectUtils::build_common_struct_member(member_id_n_results, member_flags_n_results, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_n_results, common_n_results_ec))}; - if (!common_n_results_ec) + StructMemberFlag member_flags_representation_limits = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + true, false, false, false); + MemberId member_id_representation_limits = 0x0e205a8d; + bool common_representation_limits_ec {false}; + CommonStructMember common_representation_limits {TypeObjectUtils::build_common_struct_member(member_id_representation_limits, member_flags_representation_limits, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_representation_limits, common_representation_limits_ec))}; + if (!common_representation_limits_ec) { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure n_results member TypeIdentifier inconsistent."); + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure representation_limits member TypeIdentifier inconsistent."); return; } - MemberName name_n_results = "n_results"; - eprosima::fastcdr::optional member_ann_builtin_n_results; - ann_custom_Calculator_fibonacci_seq_In.reset(); - CompleteMemberDetail detail_n_results = TypeObjectUtils::build_complete_member_detail(name_n_results, member_ann_builtin_n_results, ann_custom_Calculator_fibonacci_seq_In); - CompleteStructMember member_n_results = TypeObjectUtils::build_complete_struct_member(common_n_results, detail_n_results); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_fibonacci_seq_In, member_n_results); - } - CompleteStructType struct_type_Calculator_fibonacci_seq_In = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_fibonacci_seq_In, header_Calculator_fibonacci_seq_In, member_seq_Calculator_fibonacci_seq_In); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_fibonacci_seq_In, type_name_Calculator_fibonacci_seq_In.to_string(), type_ids_Calculator_fibonacci_seq_In)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_fibonacci_seq_In already registered in TypeObjectRegistry for a different type."); - } - } -} - - - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_fibonacci_seq_Out_type_identifier( - TypeIdentifierPair& type_ids_Calculator_fibonacci_seq_Out) -{ + MemberName name_representation_limits = "representation_limits"; + eprosima::fastcdr::optional member_ann_builtin_representation_limits; + ann_custom_Calculator_Request.reset(); + AppliedAnnotationSeq tmp_ann_custom_representation_limits; + eprosima::fastcdr::optional unit_representation_limits; + eprosima::fastcdr::optional min_representation_limits; + eprosima::fastcdr::optional max_representation_limits; + eprosima::fastcdr::optional hash_id_representation_limits; + hash_id_representation_limits = ""; - ReturnCode_t return_code_Calculator_fibonacci_seq_Out {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_fibonacci_seq_Out = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_fibonacci_seq_Out", type_ids_Calculator_fibonacci_seq_Out); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_fibonacci_seq_Out) - { - StructTypeFlag struct_flags_Calculator_fibonacci_seq_Out = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_fibonacci_seq_Out = "calculator_example::detail::Calculator_fibonacci_seq_Out"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_fibonacci_seq_Out; - eprosima::fastcdr::optional ann_custom_Calculator_fibonacci_seq_Out; - CompleteTypeDetail detail_Calculator_fibonacci_seq_Out = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_fibonacci_seq_Out, ann_custom_Calculator_fibonacci_seq_Out, type_name_Calculator_fibonacci_seq_Out.to_string()); - CompleteStructHeader header_Calculator_fibonacci_seq_Out; - header_Calculator_fibonacci_seq_Out = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_fibonacci_seq_Out); - CompleteStructMemberSeq member_seq_Calculator_fibonacci_seq_Out; + if (unit_representation_limits.has_value() || min_representation_limits.has_value() || max_representation_limits.has_value() || hash_id_representation_limits.has_value()) + { + member_ann_builtin_representation_limits = TypeObjectUtils::build_applied_builtin_member_annotations(unit_representation_limits, min_representation_limits, max_representation_limits, hash_id_representation_limits); + } + if (!tmp_ann_custom_representation_limits.empty()) + { + ann_custom_Calculator_Request = tmp_ann_custom_representation_limits; + } + CompleteMemberDetail detail_representation_limits = TypeObjectUtils::build_complete_member_detail(name_representation_limits, member_ann_builtin_representation_limits, ann_custom_Calculator_Request); + CompleteStructMember member_representation_limits = TypeObjectUtils::build_complete_struct_member(common_representation_limits, detail_representation_limits); + TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_representation_limits); + } { - TypeIdentifierPair type_ids_return_; - ReturnCode_t return_code_return_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_return_ = + TypeIdentifierPair type_ids_addition; + ReturnCode_t return_code_addition {eprosima::fastdds::dds::RETCODE_OK}; + return_code_addition = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_return_); + "calculator_example::detail::Calculator_addition_In", type_ids_addition); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_return_) + if (eprosima::fastdds::dds::RETCODE_OK != return_code_addition) { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "return_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; + ::calculator_example::detail::register_Calculator_addition_In_type_identifier(type_ids_addition); } - StructMemberFlag member_flags_return_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + StructMemberFlag member_flags_addition = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, true, false, false, false); - MemberId member_id_return_ = 0x00000000; - bool common_return__ec {false}; - CommonStructMember common_return_ {TypeObjectUtils::build_common_struct_member(member_id_return_, member_flags_return_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_return_, common_return__ec))}; - if (!common_return__ec) + MemberId member_id_addition = 0x04e82a2b; + bool common_addition_ec {false}; + CommonStructMember common_addition {TypeObjectUtils::build_common_struct_member(member_id_addition, member_flags_addition, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_addition, common_addition_ec))}; + if (!common_addition_ec) { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure return_ member TypeIdentifier inconsistent."); + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure addition member TypeIdentifier inconsistent."); return; } - MemberName name_return_ = "return_"; - eprosima::fastcdr::optional member_ann_builtin_return_; - ann_custom_Calculator_fibonacci_seq_Out.reset(); - AppliedAnnotationSeq tmp_ann_custom_return_; - eprosima::fastcdr::optional unit_return_; - eprosima::fastcdr::optional min_return_; - eprosima::fastcdr::optional max_return_; - eprosima::fastcdr::optional hash_id_return_; - if (unit_return_.has_value() || min_return_.has_value() || max_return_.has_value() || hash_id_return_.has_value()) + MemberName name_addition = "addition"; + eprosima::fastcdr::optional member_ann_builtin_addition; + ann_custom_Calculator_Request.reset(); + AppliedAnnotationSeq tmp_ann_custom_addition; + eprosima::fastcdr::optional unit_addition; + eprosima::fastcdr::optional min_addition; + eprosima::fastcdr::optional max_addition; + eprosima::fastcdr::optional hash_id_addition; + hash_id_addition = ""; + + if (unit_addition.has_value() || min_addition.has_value() || max_addition.has_value() || hash_id_addition.has_value()) { - member_ann_builtin_return_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_return_, min_return_, max_return_, hash_id_return_); + member_ann_builtin_addition = TypeObjectUtils::build_applied_builtin_member_annotations(unit_addition, min_addition, max_addition, hash_id_addition); } - if (!tmp_ann_custom_return_.empty()) + if (!tmp_ann_custom_addition.empty()) { - ann_custom_Calculator_fibonacci_seq_Out = tmp_ann_custom_return_; + ann_custom_Calculator_Request = tmp_ann_custom_addition; } - CompleteMemberDetail detail_return_ = TypeObjectUtils::build_complete_member_detail(name_return_, member_ann_builtin_return_, ann_custom_Calculator_fibonacci_seq_Out); - CompleteStructMember member_return_ = TypeObjectUtils::build_complete_struct_member(common_return_, detail_return_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_fibonacci_seq_Out, member_return_); + CompleteMemberDetail detail_addition = TypeObjectUtils::build_complete_member_detail(name_addition, member_ann_builtin_addition, ann_custom_Calculator_Request); + CompleteStructMember member_addition = TypeObjectUtils::build_complete_struct_member(common_addition, detail_addition); + TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_addition); } { - TypeIdentifierPair type_ids_finished_; - ReturnCode_t return_code_finished_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_finished_ = + TypeIdentifierPair type_ids_subtraction; + ReturnCode_t return_code_subtraction {eprosima::fastdds::dds::RETCODE_OK}; + return_code_subtraction = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_finished_); + "calculator_example::detail::Calculator_subtraction_In", type_ids_subtraction); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_finished_) + if (eprosima::fastdds::dds::RETCODE_OK != return_code_subtraction) { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "finished_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; + ::calculator_example::detail::register_Calculator_subtraction_In_type_identifier(type_ids_subtraction); } - StructMemberFlag member_flags_finished_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + StructMemberFlag member_flags_subtraction = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, true, false, false, false); - MemberId member_id_finished_ = 0x00000001; - bool common_finished__ec {false}; - CommonStructMember common_finished_ {TypeObjectUtils::build_common_struct_member(member_id_finished_, member_flags_finished_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_finished_, common_finished__ec))}; - if (!common_finished__ec) + MemberId member_id_subtraction = 0x096bbc8d; + bool common_subtraction_ec {false}; + CommonStructMember common_subtraction {TypeObjectUtils::build_common_struct_member(member_id_subtraction, member_flags_subtraction, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_subtraction, common_subtraction_ec))}; + if (!common_subtraction_ec) { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure finished_ member TypeIdentifier inconsistent."); + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure subtraction member TypeIdentifier inconsistent."); return; } - MemberName name_finished_ = "finished_"; - eprosima::fastcdr::optional member_ann_builtin_finished_; - ann_custom_Calculator_fibonacci_seq_Out.reset(); - AppliedAnnotationSeq tmp_ann_custom_finished_; - eprosima::fastcdr::optional unit_finished_; - eprosima::fastcdr::optional min_finished_; - eprosima::fastcdr::optional max_finished_; - eprosima::fastcdr::optional hash_id_finished_; - if (unit_finished_.has_value() || min_finished_.has_value() || max_finished_.has_value() || hash_id_finished_.has_value()) + MemberName name_subtraction = "subtraction"; + eprosima::fastcdr::optional member_ann_builtin_subtraction; + ann_custom_Calculator_Request.reset(); + AppliedAnnotationSeq tmp_ann_custom_subtraction; + eprosima::fastcdr::optional unit_subtraction; + eprosima::fastcdr::optional min_subtraction; + eprosima::fastcdr::optional max_subtraction; + eprosima::fastcdr::optional hash_id_subtraction; + hash_id_subtraction = ""; + + if (unit_subtraction.has_value() || min_subtraction.has_value() || max_subtraction.has_value() || hash_id_subtraction.has_value()) { - member_ann_builtin_finished_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_finished_, min_finished_, max_finished_, hash_id_finished_); + member_ann_builtin_subtraction = TypeObjectUtils::build_applied_builtin_member_annotations(unit_subtraction, min_subtraction, max_subtraction, hash_id_subtraction); } - if (!tmp_ann_custom_finished_.empty()) + if (!tmp_ann_custom_subtraction.empty()) { - ann_custom_Calculator_fibonacci_seq_Out = tmp_ann_custom_finished_; + ann_custom_Calculator_Request = tmp_ann_custom_subtraction; } - CompleteMemberDetail detail_finished_ = TypeObjectUtils::build_complete_member_detail(name_finished_, member_ann_builtin_finished_, ann_custom_Calculator_fibonacci_seq_Out); - CompleteStructMember member_finished_ = TypeObjectUtils::build_complete_struct_member(common_finished_, detail_finished_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_fibonacci_seq_Out, member_finished_); + CompleteMemberDetail detail_subtraction = TypeObjectUtils::build_complete_member_detail(name_subtraction, member_ann_builtin_subtraction, ann_custom_Calculator_Request); + CompleteStructMember member_subtraction = TypeObjectUtils::build_complete_struct_member(common_subtraction, detail_subtraction); + TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_subtraction); } - CompleteStructType struct_type_Calculator_fibonacci_seq_Out = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_fibonacci_seq_Out, header_Calculator_fibonacci_seq_Out, member_seq_Calculator_fibonacci_seq_Out); + CompleteStructType struct_type_Calculator_Request = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_Request, header_Calculator_Request, member_seq_Calculator_Request); if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_fibonacci_seq_Out, type_name_Calculator_fibonacci_seq_Out.to_string(), type_ids_Calculator_fibonacci_seq_Out)) + TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_Request, type_name_Calculator_Request.to_string(), type_ids_Calculator_Request)) { EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_fibonacci_seq_Out already registered in TypeObjectRegistry for a different type."); + "calculator_example::detail::Calculator_Request already registered in TypeObjectRegistry for a different type."); } } } - // TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_fibonacci_seq_Result_type_identifier( - TypeIdentifierPair& type_ids_Calculator_fibonacci_seq_Result) +void register_Calculator_Reply_type_identifier( + TypeIdentifierPair& type_ids_Calculator_Reply) { - ReturnCode_t return_code_Calculator_fibonacci_seq_Result {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_fibonacci_seq_Result = + ReturnCode_t return_code_Calculator_Reply {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Calculator_Reply = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_fibonacci_seq_Result", type_ids_Calculator_fibonacci_seq_Result); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_fibonacci_seq_Result) + "calculator_example::detail::Calculator_Reply", type_ids_Calculator_Reply); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_Reply) { - StructTypeFlag struct_flags_Calculator_fibonacci_seq_Result = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::MUTABLE, + StructTypeFlag struct_flags_Calculator_Reply = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::MUTABLE, false, false); - QualifiedTypeName type_name_Calculator_fibonacci_seq_Result = "calculator_example::detail::Calculator_fibonacci_seq_Result"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_fibonacci_seq_Result; - eprosima::fastcdr::optional ann_custom_Calculator_fibonacci_seq_Result; - CompleteTypeDetail detail_Calculator_fibonacci_seq_Result = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_fibonacci_seq_Result, ann_custom_Calculator_fibonacci_seq_Result, type_name_Calculator_fibonacci_seq_Result.to_string()); - CompleteStructHeader header_Calculator_fibonacci_seq_Result; - header_Calculator_fibonacci_seq_Result = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_fibonacci_seq_Result); - CompleteStructMemberSeq member_seq_Calculator_fibonacci_seq_Result; + QualifiedTypeName type_name_Calculator_Reply = "calculator_example::detail::Calculator_Reply"; + eprosima::fastcdr::optional type_ann_builtin_Calculator_Reply; + eprosima::fastcdr::optional ann_custom_Calculator_Reply; + CompleteTypeDetail detail_Calculator_Reply = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_Reply, ann_custom_Calculator_Reply, type_name_Calculator_Reply.to_string()); + CompleteStructHeader header_Calculator_Reply; + header_Calculator_Reply = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_Reply); + CompleteStructMemberSeq member_seq_Calculator_Reply; { - TypeIdentifierPair type_ids_result; - ReturnCode_t return_code_result {eprosima::fastdds::dds::RETCODE_OK}; - return_code_result = + TypeIdentifierPair type_ids_representation_limits; + ReturnCode_t return_code_representation_limits {eprosima::fastdds::dds::RETCODE_OK}; + return_code_representation_limits = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_fibonacci_seq_Out", type_ids_result); + "calculator_example::detail::Calculator_representation_limits_Result", type_ids_representation_limits); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_result) + if (eprosima::fastdds::dds::RETCODE_OK != return_code_representation_limits) { - ::calculator_example::detail::register_Calculator_fibonacci_seq_Out_type_identifier(type_ids_result); + ::calculator_example::detail::register_Calculator_representation_limits_Result_type_identifier(type_ids_representation_limits); } - StructMemberFlag member_flags_result = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + StructMemberFlag member_flags_representation_limits = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, true, false, false, false); - MemberId member_id_result = 0x0784a8b4; - bool common_result_ec {false}; - CommonStructMember common_result {TypeObjectUtils::build_common_struct_member(member_id_result, member_flags_result, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_result, common_result_ec))}; - if (!common_result_ec) + MemberId member_id_representation_limits = 0x0e205a8d; + bool common_representation_limits_ec {false}; + CommonStructMember common_representation_limits {TypeObjectUtils::build_common_struct_member(member_id_representation_limits, member_flags_representation_limits, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_representation_limits, common_representation_limits_ec))}; + if (!common_representation_limits_ec) { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure result member TypeIdentifier inconsistent."); + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure representation_limits member TypeIdentifier inconsistent."); return; } - MemberName name_result = "result"; - eprosima::fastcdr::optional member_ann_builtin_result; - ann_custom_Calculator_fibonacci_seq_Result.reset(); - AppliedAnnotationSeq tmp_ann_custom_result; - eprosima::fastcdr::optional unit_result; - eprosima::fastcdr::optional min_result; - eprosima::fastcdr::optional max_result; - eprosima::fastcdr::optional hash_id_result; - hash_id_result = ""; + MemberName name_representation_limits = "representation_limits"; + eprosima::fastcdr::optional member_ann_builtin_representation_limits; + ann_custom_Calculator_Reply.reset(); + AppliedAnnotationSeq tmp_ann_custom_representation_limits; + eprosima::fastcdr::optional unit_representation_limits; + eprosima::fastcdr::optional min_representation_limits; + eprosima::fastcdr::optional max_representation_limits; + eprosima::fastcdr::optional hash_id_representation_limits; + hash_id_representation_limits = ""; - if (unit_result.has_value() || min_result.has_value() || max_result.has_value() || hash_id_result.has_value()) + if (unit_representation_limits.has_value() || min_representation_limits.has_value() || max_representation_limits.has_value() || hash_id_representation_limits.has_value()) { - member_ann_builtin_result = TypeObjectUtils::build_applied_builtin_member_annotations(unit_result, min_result, max_result, hash_id_result); + member_ann_builtin_representation_limits = TypeObjectUtils::build_applied_builtin_member_annotations(unit_representation_limits, min_representation_limits, max_representation_limits, hash_id_representation_limits); } - if (!tmp_ann_custom_result.empty()) + if (!tmp_ann_custom_representation_limits.empty()) { - ann_custom_Calculator_fibonacci_seq_Result = tmp_ann_custom_result; + ann_custom_Calculator_Reply = tmp_ann_custom_representation_limits; } - CompleteMemberDetail detail_result = TypeObjectUtils::build_complete_member_detail(name_result, member_ann_builtin_result, ann_custom_Calculator_fibonacci_seq_Result); - CompleteStructMember member_result = TypeObjectUtils::build_complete_struct_member(common_result, detail_result); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_fibonacci_seq_Result, member_result); + CompleteMemberDetail detail_representation_limits = TypeObjectUtils::build_complete_member_detail(name_representation_limits, member_ann_builtin_representation_limits, ann_custom_Calculator_Reply); + CompleteStructMember member_representation_limits = TypeObjectUtils::build_complete_struct_member(common_representation_limits, detail_representation_limits); + TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Reply, member_representation_limits); } { - TypeIdentifierPair type_ids_calculator_example_OverflowException_ex; - ReturnCode_t return_code_calculator_example_OverflowException_ex {eprosima::fastdds::dds::RETCODE_OK}; - return_code_calculator_example_OverflowException_ex = + TypeIdentifierPair type_ids_addition; + ReturnCode_t return_code_addition {eprosima::fastdds::dds::RETCODE_OK}; + return_code_addition = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::OverflowException", type_ids_calculator_example_OverflowException_ex); + "calculator_example::detail::Calculator_addition_Result", type_ids_addition); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_calculator_example_OverflowException_ex) + if (eprosima::fastdds::dds::RETCODE_OK != return_code_addition) { - ::calculator_example::register_OverflowException_type_identifier(type_ids_calculator_example_OverflowException_ex); + ::calculator_example::detail::register_Calculator_addition_Result_type_identifier(type_ids_addition); } - StructMemberFlag member_flags_calculator_example_OverflowException_ex = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + StructMemberFlag member_flags_addition = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, true, false, false, false); - MemberId member_id_calculator_example_OverflowException_ex = 0x0d39fcce; - bool common_calculator_example_OverflowException_ex_ec {false}; - CommonStructMember common_calculator_example_OverflowException_ex {TypeObjectUtils::build_common_struct_member(member_id_calculator_example_OverflowException_ex, member_flags_calculator_example_OverflowException_ex, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_calculator_example_OverflowException_ex, common_calculator_example_OverflowException_ex_ec))}; - if (!common_calculator_example_OverflowException_ex_ec) + MemberId member_id_addition = 0x04e82a2b; + bool common_addition_ec {false}; + CommonStructMember common_addition {TypeObjectUtils::build_common_struct_member(member_id_addition, member_flags_addition, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_addition, common_addition_ec))}; + if (!common_addition_ec) { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure calculator_example_OverflowException_ex member TypeIdentifier inconsistent."); - return; - } - MemberName name_calculator_example_OverflowException_ex = "calculator_example_OverflowException_ex"; - eprosima::fastcdr::optional member_ann_builtin_calculator_example_OverflowException_ex; - ann_custom_Calculator_fibonacci_seq_Result.reset(); - AppliedAnnotationSeq tmp_ann_custom_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional unit_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional min_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional max_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional hash_id_calculator_example_OverflowException_ex; - hash_id_calculator_example_OverflowException_ex = ""; - - if (unit_calculator_example_OverflowException_ex.has_value() || min_calculator_example_OverflowException_ex.has_value() || max_calculator_example_OverflowException_ex.has_value() || hash_id_calculator_example_OverflowException_ex.has_value()) - { - member_ann_builtin_calculator_example_OverflowException_ex = TypeObjectUtils::build_applied_builtin_member_annotations(unit_calculator_example_OverflowException_ex, min_calculator_example_OverflowException_ex, max_calculator_example_OverflowException_ex, hash_id_calculator_example_OverflowException_ex); - } - if (!tmp_ann_custom_calculator_example_OverflowException_ex.empty()) - { - ann_custom_Calculator_fibonacci_seq_Result = tmp_ann_custom_calculator_example_OverflowException_ex; - } - CompleteMemberDetail detail_calculator_example_OverflowException_ex = TypeObjectUtils::build_complete_member_detail(name_calculator_example_OverflowException_ex, member_ann_builtin_calculator_example_OverflowException_ex, ann_custom_Calculator_fibonacci_seq_Result); - CompleteStructMember member_calculator_example_OverflowException_ex = TypeObjectUtils::build_complete_struct_member(common_calculator_example_OverflowException_ex, detail_calculator_example_OverflowException_ex); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_fibonacci_seq_Result, member_calculator_example_OverflowException_ex); - } - CompleteStructType struct_type_Calculator_fibonacci_seq_Result = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_fibonacci_seq_Result, header_Calculator_fibonacci_seq_Result, member_seq_Calculator_fibonacci_seq_Result); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_fibonacci_seq_Result, type_name_Calculator_fibonacci_seq_Result.to_string(), type_ids_Calculator_fibonacci_seq_Result)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_fibonacci_seq_Result already registered in TypeObjectRegistry for a different type."); - } - } -} - -//} // fibonacci_seq - -//{ sum_all -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_sum_all_In_type_identifier( - TypeIdentifierPair& type_ids_Calculator_sum_all_In) -{ - - ReturnCode_t return_code_Calculator_sum_all_In {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_sum_all_In = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_sum_all_In", type_ids_Calculator_sum_all_In); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_sum_all_In) - { - StructTypeFlag struct_flags_Calculator_sum_all_In = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_sum_all_In = "calculator_example::detail::Calculator_sum_all_In"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_sum_all_In; - eprosima::fastcdr::optional ann_custom_Calculator_sum_all_In; - CompleteTypeDetail detail_Calculator_sum_all_In = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_sum_all_In, ann_custom_Calculator_sum_all_In, type_name_Calculator_sum_all_In.to_string()); - CompleteStructHeader header_Calculator_sum_all_In; - header_Calculator_sum_all_In = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_sum_all_In); - CompleteStructMemberSeq member_seq_Calculator_sum_all_In; - CompleteStructType struct_type_Calculator_sum_all_In = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_sum_all_In, header_Calculator_sum_all_In, member_seq_Calculator_sum_all_In); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_sum_all_In, type_name_Calculator_sum_all_In.to_string(), type_ids_Calculator_sum_all_In)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_sum_all_In already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_sum_all_value_Feed_type_identifier( - TypeIdentifierPair& type_ids_Calculator_sum_all_value_Feed) -{ - - ReturnCode_t return_code_Calculator_sum_all_value_Feed {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_sum_all_value_Feed = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_sum_all_value_Feed", type_ids_Calculator_sum_all_value_Feed); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_sum_all_value_Feed) - { - StructTypeFlag struct_flags_Calculator_sum_all_value_Feed = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_sum_all_value_Feed = "calculator_example::detail::Calculator_sum_all_value_Feed"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_sum_all_value_Feed; - eprosima::fastcdr::optional ann_custom_Calculator_sum_all_value_Feed; - CompleteTypeDetail detail_Calculator_sum_all_value_Feed = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_sum_all_value_Feed, ann_custom_Calculator_sum_all_value_Feed, type_name_Calculator_sum_all_value_Feed.to_string()); - CompleteStructHeader header_Calculator_sum_all_value_Feed; - header_Calculator_sum_all_value_Feed = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_sum_all_value_Feed); - CompleteStructMemberSeq member_seq_Calculator_sum_all_value_Feed; - { - TypeIdentifierPair type_ids_value; - ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; - return_code_value = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_value); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_value = 0x00000000; - bool common_value_ec {false}; - CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; - if (!common_value_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); - return; - } - MemberName name_value = "value"; - eprosima::fastcdr::optional member_ann_builtin_value; - ann_custom_Calculator_sum_all_value_Feed.reset(); - AppliedAnnotationSeq tmp_ann_custom_value; - eprosima::fastcdr::optional unit_value; - eprosima::fastcdr::optional min_value; - eprosima::fastcdr::optional max_value; - eprosima::fastcdr::optional hash_id_value; - if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) - { - member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); - } - if (!tmp_ann_custom_value.empty()) - { - ann_custom_Calculator_sum_all_value_Feed = tmp_ann_custom_value; - } - CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_Calculator_sum_all_value_Feed); - CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_sum_all_value_Feed, member_value); - } - { - TypeIdentifierPair type_ids_finished_; - ReturnCode_t return_code_finished_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_finished_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_finished_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_finished_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "finished_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_finished_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_finished_ = 0x00000001; - bool common_finished__ec {false}; - CommonStructMember common_finished_ {TypeObjectUtils::build_common_struct_member(member_id_finished_, member_flags_finished_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_finished_, common_finished__ec))}; - if (!common_finished__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure finished_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_finished_ = "finished_"; - eprosima::fastcdr::optional member_ann_builtin_finished_; - ann_custom_Calculator_sum_all_value_Feed.reset(); - AppliedAnnotationSeq tmp_ann_custom_finished_; - eprosima::fastcdr::optional unit_finished_; - eprosima::fastcdr::optional min_finished_; - eprosima::fastcdr::optional max_finished_; - eprosima::fastcdr::optional hash_id_finished_; - if (unit_finished_.has_value() || min_finished_.has_value() || max_finished_.has_value() || hash_id_finished_.has_value()) - { - member_ann_builtin_finished_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_finished_, min_finished_, max_finished_, hash_id_finished_); - } - if (!tmp_ann_custom_finished_.empty()) - { - ann_custom_Calculator_sum_all_value_Feed = tmp_ann_custom_finished_; - } - CompleteMemberDetail detail_finished_ = TypeObjectUtils::build_complete_member_detail(name_finished_, member_ann_builtin_finished_, ann_custom_Calculator_sum_all_value_Feed); - CompleteStructMember member_finished_ = TypeObjectUtils::build_complete_struct_member(common_finished_, detail_finished_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_sum_all_value_Feed, member_finished_); - } - CompleteStructType struct_type_Calculator_sum_all_value_Feed = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_sum_all_value_Feed, header_Calculator_sum_all_value_Feed, member_seq_Calculator_sum_all_value_Feed); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_sum_all_value_Feed, type_name_Calculator_sum_all_value_Feed.to_string(), type_ids_Calculator_sum_all_value_Feed)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_sum_all_value_Feed already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_sum_all_Out_type_identifier( - TypeIdentifierPair& type_ids_Calculator_sum_all_Out) -{ - - ReturnCode_t return_code_Calculator_sum_all_Out {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_sum_all_Out = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_sum_all_Out", type_ids_Calculator_sum_all_Out); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_sum_all_Out) - { - StructTypeFlag struct_flags_Calculator_sum_all_Out = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_sum_all_Out = "calculator_example::detail::Calculator_sum_all_Out"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_sum_all_Out; - eprosima::fastcdr::optional ann_custom_Calculator_sum_all_Out; - CompleteTypeDetail detail_Calculator_sum_all_Out = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_sum_all_Out, ann_custom_Calculator_sum_all_Out, type_name_Calculator_sum_all_Out.to_string()); - CompleteStructHeader header_Calculator_sum_all_Out; - header_Calculator_sum_all_Out = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_sum_all_Out); - CompleteStructMemberSeq member_seq_Calculator_sum_all_Out; - { - TypeIdentifierPair type_ids_return_; - ReturnCode_t return_code_return_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_return_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_return_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_return_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "return_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_return_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_return_ = 0x00000000; - bool common_return__ec {false}; - CommonStructMember common_return_ {TypeObjectUtils::build_common_struct_member(member_id_return_, member_flags_return_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_return_, common_return__ec))}; - if (!common_return__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure return_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_return_ = "return_"; - eprosima::fastcdr::optional member_ann_builtin_return_; - ann_custom_Calculator_sum_all_Out.reset(); - CompleteMemberDetail detail_return_ = TypeObjectUtils::build_complete_member_detail(name_return_, member_ann_builtin_return_, ann_custom_Calculator_sum_all_Out); - CompleteStructMember member_return_ = TypeObjectUtils::build_complete_struct_member(common_return_, detail_return_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_sum_all_Out, member_return_); - } - CompleteStructType struct_type_Calculator_sum_all_Out = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_sum_all_Out, header_Calculator_sum_all_Out, member_seq_Calculator_sum_all_Out); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_sum_all_Out, type_name_Calculator_sum_all_Out.to_string(), type_ids_Calculator_sum_all_Out)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_sum_all_Out already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_sum_all_Result_type_identifier( - TypeIdentifierPair& type_ids_Calculator_sum_all_Result) -{ - - ReturnCode_t return_code_Calculator_sum_all_Result {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_sum_all_Result = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_sum_all_Result", type_ids_Calculator_sum_all_Result); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_sum_all_Result) - { - StructTypeFlag struct_flags_Calculator_sum_all_Result = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::MUTABLE, - false, false); - QualifiedTypeName type_name_Calculator_sum_all_Result = "calculator_example::detail::Calculator_sum_all_Result"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_sum_all_Result; - eprosima::fastcdr::optional ann_custom_Calculator_sum_all_Result; - CompleteTypeDetail detail_Calculator_sum_all_Result = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_sum_all_Result, ann_custom_Calculator_sum_all_Result, type_name_Calculator_sum_all_Result.to_string()); - CompleteStructHeader header_Calculator_sum_all_Result; - header_Calculator_sum_all_Result = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_sum_all_Result); - CompleteStructMemberSeq member_seq_Calculator_sum_all_Result; - { - TypeIdentifierPair type_ids_result; - ReturnCode_t return_code_result {eprosima::fastdds::dds::RETCODE_OK}; - return_code_result = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_sum_all_Out", type_ids_result); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_result) - { - ::calculator_example::detail::register_Calculator_sum_all_Out_type_identifier(type_ids_result); - } - StructMemberFlag member_flags_result = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_result = 0x0784a8b4; - bool common_result_ec {false}; - CommonStructMember common_result {TypeObjectUtils::build_common_struct_member(member_id_result, member_flags_result, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_result, common_result_ec))}; - if (!common_result_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure result member TypeIdentifier inconsistent."); - return; - } - MemberName name_result = "result"; - eprosima::fastcdr::optional member_ann_builtin_result; - ann_custom_Calculator_sum_all_Result.reset(); - AppliedAnnotationSeq tmp_ann_custom_result; - eprosima::fastcdr::optional unit_result; - eprosima::fastcdr::optional min_result; - eprosima::fastcdr::optional max_result; - eprosima::fastcdr::optional hash_id_result; - hash_id_result = ""; - - if (unit_result.has_value() || min_result.has_value() || max_result.has_value() || hash_id_result.has_value()) - { - member_ann_builtin_result = TypeObjectUtils::build_applied_builtin_member_annotations(unit_result, min_result, max_result, hash_id_result); - } - if (!tmp_ann_custom_result.empty()) - { - ann_custom_Calculator_sum_all_Result = tmp_ann_custom_result; - } - CompleteMemberDetail detail_result = TypeObjectUtils::build_complete_member_detail(name_result, member_ann_builtin_result, ann_custom_Calculator_sum_all_Result); - CompleteStructMember member_result = TypeObjectUtils::build_complete_struct_member(common_result, detail_result); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_sum_all_Result, member_result); - } - { - TypeIdentifierPair type_ids_calculator_example_OverflowException_ex; - ReturnCode_t return_code_calculator_example_OverflowException_ex {eprosima::fastdds::dds::RETCODE_OK}; - return_code_calculator_example_OverflowException_ex = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::OverflowException", type_ids_calculator_example_OverflowException_ex); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_calculator_example_OverflowException_ex) - { - ::calculator_example::register_OverflowException_type_identifier(type_ids_calculator_example_OverflowException_ex); - } - StructMemberFlag member_flags_calculator_example_OverflowException_ex = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_calculator_example_OverflowException_ex = 0x0d39fcce; - bool common_calculator_example_OverflowException_ex_ec {false}; - CommonStructMember common_calculator_example_OverflowException_ex {TypeObjectUtils::build_common_struct_member(member_id_calculator_example_OverflowException_ex, member_flags_calculator_example_OverflowException_ex, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_calculator_example_OverflowException_ex, common_calculator_example_OverflowException_ex_ec))}; - if (!common_calculator_example_OverflowException_ex_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure calculator_example_OverflowException_ex member TypeIdentifier inconsistent."); - return; - } - MemberName name_calculator_example_OverflowException_ex = "calculator_example_OverflowException_ex"; - eprosima::fastcdr::optional member_ann_builtin_calculator_example_OverflowException_ex; - ann_custom_Calculator_sum_all_Result.reset(); - AppliedAnnotationSeq tmp_ann_custom_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional unit_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional min_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional max_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional hash_id_calculator_example_OverflowException_ex; - hash_id_calculator_example_OverflowException_ex = ""; - - if (unit_calculator_example_OverflowException_ex.has_value() || min_calculator_example_OverflowException_ex.has_value() || max_calculator_example_OverflowException_ex.has_value() || hash_id_calculator_example_OverflowException_ex.has_value()) - { - member_ann_builtin_calculator_example_OverflowException_ex = TypeObjectUtils::build_applied_builtin_member_annotations(unit_calculator_example_OverflowException_ex, min_calculator_example_OverflowException_ex, max_calculator_example_OverflowException_ex, hash_id_calculator_example_OverflowException_ex); - } - if (!tmp_ann_custom_calculator_example_OverflowException_ex.empty()) - { - ann_custom_Calculator_sum_all_Result = tmp_ann_custom_calculator_example_OverflowException_ex; - } - CompleteMemberDetail detail_calculator_example_OverflowException_ex = TypeObjectUtils::build_complete_member_detail(name_calculator_example_OverflowException_ex, member_ann_builtin_calculator_example_OverflowException_ex, ann_custom_Calculator_sum_all_Result); - CompleteStructMember member_calculator_example_OverflowException_ex = TypeObjectUtils::build_complete_struct_member(common_calculator_example_OverflowException_ex, detail_calculator_example_OverflowException_ex); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_sum_all_Result, member_calculator_example_OverflowException_ex); - } - CompleteStructType struct_type_Calculator_sum_all_Result = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_sum_all_Result, header_Calculator_sum_all_Result, member_seq_Calculator_sum_all_Result); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_sum_all_Result, type_name_Calculator_sum_all_Result.to_string(), type_ids_Calculator_sum_all_Result)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_sum_all_Result already registered in TypeObjectRegistry for a different type."); - } - } -} - -//} // sum_all - -//{ accumulator -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_accumulator_In_type_identifier( - TypeIdentifierPair& type_ids_Calculator_accumulator_In) -{ - - ReturnCode_t return_code_Calculator_accumulator_In {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_accumulator_In = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_accumulator_In", type_ids_Calculator_accumulator_In); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_accumulator_In) - { - StructTypeFlag struct_flags_Calculator_accumulator_In = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_accumulator_In = "calculator_example::detail::Calculator_accumulator_In"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_accumulator_In; - eprosima::fastcdr::optional ann_custom_Calculator_accumulator_In; - CompleteTypeDetail detail_Calculator_accumulator_In = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_accumulator_In, ann_custom_Calculator_accumulator_In, type_name_Calculator_accumulator_In.to_string()); - CompleteStructHeader header_Calculator_accumulator_In; - header_Calculator_accumulator_In = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_accumulator_In); - CompleteStructMemberSeq member_seq_Calculator_accumulator_In; - CompleteStructType struct_type_Calculator_accumulator_In = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_accumulator_In, header_Calculator_accumulator_In, member_seq_Calculator_accumulator_In); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_accumulator_In, type_name_Calculator_accumulator_In.to_string(), type_ids_Calculator_accumulator_In)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_accumulator_In already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_accumulator_value_Feed_type_identifier( - TypeIdentifierPair& type_ids_Calculator_accumulator_value_Feed) -{ - - ReturnCode_t return_code_Calculator_accumulator_value_Feed {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_accumulator_value_Feed = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_accumulator_value_Feed", type_ids_Calculator_accumulator_value_Feed); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_accumulator_value_Feed) - { - StructTypeFlag struct_flags_Calculator_accumulator_value_Feed = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_accumulator_value_Feed = "calculator_example::detail::Calculator_accumulator_value_Feed"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_accumulator_value_Feed; - eprosima::fastcdr::optional ann_custom_Calculator_accumulator_value_Feed; - CompleteTypeDetail detail_Calculator_accumulator_value_Feed = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_accumulator_value_Feed, ann_custom_Calculator_accumulator_value_Feed, type_name_Calculator_accumulator_value_Feed.to_string()); - CompleteStructHeader header_Calculator_accumulator_value_Feed; - header_Calculator_accumulator_value_Feed = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_accumulator_value_Feed); - CompleteStructMemberSeq member_seq_Calculator_accumulator_value_Feed; - { - TypeIdentifierPair type_ids_value; - ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; - return_code_value = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_value); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_value = 0x00000000; - bool common_value_ec {false}; - CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; - if (!common_value_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); - return; - } - MemberName name_value = "value"; - eprosima::fastcdr::optional member_ann_builtin_value; - ann_custom_Calculator_accumulator_value_Feed.reset(); - AppliedAnnotationSeq tmp_ann_custom_value; - eprosima::fastcdr::optional unit_value; - eprosima::fastcdr::optional min_value; - eprosima::fastcdr::optional max_value; - eprosima::fastcdr::optional hash_id_value; - if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) - { - member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); - } - if (!tmp_ann_custom_value.empty()) - { - ann_custom_Calculator_accumulator_value_Feed = tmp_ann_custom_value; - } - CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_Calculator_accumulator_value_Feed); - CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_accumulator_value_Feed, member_value); - } - { - TypeIdentifierPair type_ids_finished_; - ReturnCode_t return_code_finished_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_finished_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_finished_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_finished_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "finished_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_finished_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_finished_ = 0x00000001; - bool common_finished__ec {false}; - CommonStructMember common_finished_ {TypeObjectUtils::build_common_struct_member(member_id_finished_, member_flags_finished_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_finished_, common_finished__ec))}; - if (!common_finished__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure finished_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_finished_ = "finished_"; - eprosima::fastcdr::optional member_ann_builtin_finished_; - ann_custom_Calculator_accumulator_value_Feed.reset(); - AppliedAnnotationSeq tmp_ann_custom_finished_; - eprosima::fastcdr::optional unit_finished_; - eprosima::fastcdr::optional min_finished_; - eprosima::fastcdr::optional max_finished_; - eprosima::fastcdr::optional hash_id_finished_; - if (unit_finished_.has_value() || min_finished_.has_value() || max_finished_.has_value() || hash_id_finished_.has_value()) - { - member_ann_builtin_finished_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_finished_, min_finished_, max_finished_, hash_id_finished_); - } - if (!tmp_ann_custom_finished_.empty()) - { - ann_custom_Calculator_accumulator_value_Feed = tmp_ann_custom_finished_; - } - CompleteMemberDetail detail_finished_ = TypeObjectUtils::build_complete_member_detail(name_finished_, member_ann_builtin_finished_, ann_custom_Calculator_accumulator_value_Feed); - CompleteStructMember member_finished_ = TypeObjectUtils::build_complete_struct_member(common_finished_, detail_finished_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_accumulator_value_Feed, member_finished_); - } - CompleteStructType struct_type_Calculator_accumulator_value_Feed = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_accumulator_value_Feed, header_Calculator_accumulator_value_Feed, member_seq_Calculator_accumulator_value_Feed); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_accumulator_value_Feed, type_name_Calculator_accumulator_value_Feed.to_string(), type_ids_Calculator_accumulator_value_Feed)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_accumulator_value_Feed already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_accumulator_Out_type_identifier( - TypeIdentifierPair& type_ids_Calculator_accumulator_Out) -{ - - ReturnCode_t return_code_Calculator_accumulator_Out {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_accumulator_Out = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_accumulator_Out", type_ids_Calculator_accumulator_Out); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_accumulator_Out) - { - StructTypeFlag struct_flags_Calculator_accumulator_Out = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_accumulator_Out = "calculator_example::detail::Calculator_accumulator_Out"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_accumulator_Out; - eprosima::fastcdr::optional ann_custom_Calculator_accumulator_Out; - CompleteTypeDetail detail_Calculator_accumulator_Out = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_accumulator_Out, ann_custom_Calculator_accumulator_Out, type_name_Calculator_accumulator_Out.to_string()); - CompleteStructHeader header_Calculator_accumulator_Out; - header_Calculator_accumulator_Out = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_accumulator_Out); - CompleteStructMemberSeq member_seq_Calculator_accumulator_Out; - { - TypeIdentifierPair type_ids_return_; - ReturnCode_t return_code_return_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_return_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_return_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_return_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "return_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_return_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_return_ = 0x00000000; - bool common_return__ec {false}; - CommonStructMember common_return_ {TypeObjectUtils::build_common_struct_member(member_id_return_, member_flags_return_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_return_, common_return__ec))}; - if (!common_return__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure return_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_return_ = "return_"; - eprosima::fastcdr::optional member_ann_builtin_return_; - ann_custom_Calculator_accumulator_Out.reset(); - AppliedAnnotationSeq tmp_ann_custom_return_; - eprosima::fastcdr::optional unit_return_; - eprosima::fastcdr::optional min_return_; - eprosima::fastcdr::optional max_return_; - eprosima::fastcdr::optional hash_id_return_; - if (unit_return_.has_value() || min_return_.has_value() || max_return_.has_value() || hash_id_return_.has_value()) - { - member_ann_builtin_return_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_return_, min_return_, max_return_, hash_id_return_); - } - if (!tmp_ann_custom_return_.empty()) - { - ann_custom_Calculator_accumulator_Out = tmp_ann_custom_return_; - } - CompleteMemberDetail detail_return_ = TypeObjectUtils::build_complete_member_detail(name_return_, member_ann_builtin_return_, ann_custom_Calculator_accumulator_Out); - CompleteStructMember member_return_ = TypeObjectUtils::build_complete_struct_member(common_return_, detail_return_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_accumulator_Out, member_return_); - } - { - TypeIdentifierPair type_ids_finished_; - ReturnCode_t return_code_finished_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_finished_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_finished_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_finished_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "finished_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_finished_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_finished_ = 0x00000001; - bool common_finished__ec {false}; - CommonStructMember common_finished_ {TypeObjectUtils::build_common_struct_member(member_id_finished_, member_flags_finished_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_finished_, common_finished__ec))}; - if (!common_finished__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure finished_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_finished_ = "finished_"; - eprosima::fastcdr::optional member_ann_builtin_finished_; - ann_custom_Calculator_accumulator_Out.reset(); - AppliedAnnotationSeq tmp_ann_custom_finished_; - eprosima::fastcdr::optional unit_finished_; - eprosima::fastcdr::optional min_finished_; - eprosima::fastcdr::optional max_finished_; - eprosima::fastcdr::optional hash_id_finished_; - if (unit_finished_.has_value() || min_finished_.has_value() || max_finished_.has_value() || hash_id_finished_.has_value()) - { - member_ann_builtin_finished_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_finished_, min_finished_, max_finished_, hash_id_finished_); - } - if (!tmp_ann_custom_finished_.empty()) - { - ann_custom_Calculator_accumulator_Out = tmp_ann_custom_finished_; - } - CompleteMemberDetail detail_finished_ = TypeObjectUtils::build_complete_member_detail(name_finished_, member_ann_builtin_finished_, ann_custom_Calculator_accumulator_Out); - CompleteStructMember member_finished_ = TypeObjectUtils::build_complete_struct_member(common_finished_, detail_finished_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_accumulator_Out, member_finished_); - } - CompleteStructType struct_type_Calculator_accumulator_Out = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_accumulator_Out, header_Calculator_accumulator_Out, member_seq_Calculator_accumulator_Out); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_accumulator_Out, type_name_Calculator_accumulator_Out.to_string(), type_ids_Calculator_accumulator_Out)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_accumulator_Out already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_accumulator_Result_type_identifier( - TypeIdentifierPair& type_ids_Calculator_accumulator_Result) -{ - - ReturnCode_t return_code_Calculator_accumulator_Result {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_accumulator_Result = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_accumulator_Result", type_ids_Calculator_accumulator_Result); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_accumulator_Result) - { - StructTypeFlag struct_flags_Calculator_accumulator_Result = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::MUTABLE, - false, false); - QualifiedTypeName type_name_Calculator_accumulator_Result = "calculator_example::detail::Calculator_accumulator_Result"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_accumulator_Result; - eprosima::fastcdr::optional ann_custom_Calculator_accumulator_Result; - CompleteTypeDetail detail_Calculator_accumulator_Result = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_accumulator_Result, ann_custom_Calculator_accumulator_Result, type_name_Calculator_accumulator_Result.to_string()); - CompleteStructHeader header_Calculator_accumulator_Result; - header_Calculator_accumulator_Result = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_accumulator_Result); - CompleteStructMemberSeq member_seq_Calculator_accumulator_Result; - { - TypeIdentifierPair type_ids_result; - ReturnCode_t return_code_result {eprosima::fastdds::dds::RETCODE_OK}; - return_code_result = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_accumulator_Out", type_ids_result); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_result) - { - ::calculator_example::detail::register_Calculator_accumulator_Out_type_identifier(type_ids_result); - } - StructMemberFlag member_flags_result = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_result = 0x0784a8b4; - bool common_result_ec {false}; - CommonStructMember common_result {TypeObjectUtils::build_common_struct_member(member_id_result, member_flags_result, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_result, common_result_ec))}; - if (!common_result_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure result member TypeIdentifier inconsistent."); - return; - } - MemberName name_result = "result"; - eprosima::fastcdr::optional member_ann_builtin_result; - ann_custom_Calculator_accumulator_Result.reset(); - AppliedAnnotationSeq tmp_ann_custom_result; - eprosima::fastcdr::optional unit_result; - eprosima::fastcdr::optional min_result; - eprosima::fastcdr::optional max_result; - eprosima::fastcdr::optional hash_id_result; - hash_id_result = ""; - - if (unit_result.has_value() || min_result.has_value() || max_result.has_value() || hash_id_result.has_value()) - { - member_ann_builtin_result = TypeObjectUtils::build_applied_builtin_member_annotations(unit_result, min_result, max_result, hash_id_result); - } - if (!tmp_ann_custom_result.empty()) - { - ann_custom_Calculator_accumulator_Result = tmp_ann_custom_result; - } - CompleteMemberDetail detail_result = TypeObjectUtils::build_complete_member_detail(name_result, member_ann_builtin_result, ann_custom_Calculator_accumulator_Result); - CompleteStructMember member_result = TypeObjectUtils::build_complete_struct_member(common_result, detail_result); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_accumulator_Result, member_result); - } - { - TypeIdentifierPair type_ids_calculator_example_OverflowException_ex; - ReturnCode_t return_code_calculator_example_OverflowException_ex {eprosima::fastdds::dds::RETCODE_OK}; - return_code_calculator_example_OverflowException_ex = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::OverflowException", type_ids_calculator_example_OverflowException_ex); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_calculator_example_OverflowException_ex) - { - ::calculator_example::register_OverflowException_type_identifier(type_ids_calculator_example_OverflowException_ex); - } - StructMemberFlag member_flags_calculator_example_OverflowException_ex = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_calculator_example_OverflowException_ex = 0x0d39fcce; - bool common_calculator_example_OverflowException_ex_ec {false}; - CommonStructMember common_calculator_example_OverflowException_ex {TypeObjectUtils::build_common_struct_member(member_id_calculator_example_OverflowException_ex, member_flags_calculator_example_OverflowException_ex, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_calculator_example_OverflowException_ex, common_calculator_example_OverflowException_ex_ec))}; - if (!common_calculator_example_OverflowException_ex_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure calculator_example_OverflowException_ex member TypeIdentifier inconsistent."); - return; - } - MemberName name_calculator_example_OverflowException_ex = "calculator_example_OverflowException_ex"; - eprosima::fastcdr::optional member_ann_builtin_calculator_example_OverflowException_ex; - ann_custom_Calculator_accumulator_Result.reset(); - AppliedAnnotationSeq tmp_ann_custom_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional unit_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional min_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional max_calculator_example_OverflowException_ex; - eprosima::fastcdr::optional hash_id_calculator_example_OverflowException_ex; - hash_id_calculator_example_OverflowException_ex = ""; - - if (unit_calculator_example_OverflowException_ex.has_value() || min_calculator_example_OverflowException_ex.has_value() || max_calculator_example_OverflowException_ex.has_value() || hash_id_calculator_example_OverflowException_ex.has_value()) - { - member_ann_builtin_calculator_example_OverflowException_ex = TypeObjectUtils::build_applied_builtin_member_annotations(unit_calculator_example_OverflowException_ex, min_calculator_example_OverflowException_ex, max_calculator_example_OverflowException_ex, hash_id_calculator_example_OverflowException_ex); - } - if (!tmp_ann_custom_calculator_example_OverflowException_ex.empty()) - { - ann_custom_Calculator_accumulator_Result = tmp_ann_custom_calculator_example_OverflowException_ex; - } - CompleteMemberDetail detail_calculator_example_OverflowException_ex = TypeObjectUtils::build_complete_member_detail(name_calculator_example_OverflowException_ex, member_ann_builtin_calculator_example_OverflowException_ex, ann_custom_Calculator_accumulator_Result); - CompleteStructMember member_calculator_example_OverflowException_ex = TypeObjectUtils::build_complete_struct_member(common_calculator_example_OverflowException_ex, detail_calculator_example_OverflowException_ex); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_accumulator_Result, member_calculator_example_OverflowException_ex); - } - CompleteStructType struct_type_Calculator_accumulator_Result = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_accumulator_Result, header_Calculator_accumulator_Result, member_seq_Calculator_accumulator_Result); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_accumulator_Result, type_name_Calculator_accumulator_Result.to_string(), type_ids_Calculator_accumulator_Result)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_accumulator_Result already registered in TypeObjectRegistry for a different type."); - } - } -} - -//} // accumulator - -//{ filter -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_filter_In_type_identifier( - TypeIdentifierPair& type_ids_Calculator_filter_In) -{ - - ReturnCode_t return_code_Calculator_filter_In {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_filter_In = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_filter_In", type_ids_Calculator_filter_In); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_filter_In) - { - StructTypeFlag struct_flags_Calculator_filter_In = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_filter_In = "calculator_example::detail::Calculator_filter_In"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_filter_In; - eprosima::fastcdr::optional ann_custom_Calculator_filter_In; - CompleteTypeDetail detail_Calculator_filter_In = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_filter_In, ann_custom_Calculator_filter_In, type_name_Calculator_filter_In.to_string()); - CompleteStructHeader header_Calculator_filter_In; - header_Calculator_filter_In = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_filter_In); - CompleteStructMemberSeq member_seq_Calculator_filter_In; - { - TypeIdentifierPair type_ids_filter_kind; - ReturnCode_t return_code_filter_kind {eprosima::fastdds::dds::RETCODE_OK}; - return_code_filter_kind = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::FilterKind", type_ids_filter_kind); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_filter_kind) - { - ::calculator_example::register_FilterKind_type_identifier(type_ids_filter_kind); - } - StructMemberFlag member_flags_filter_kind = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_filter_kind = 0x00000000; - bool common_filter_kind_ec {false}; - CommonStructMember common_filter_kind {TypeObjectUtils::build_common_struct_member(member_id_filter_kind, member_flags_filter_kind, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_filter_kind, common_filter_kind_ec))}; - if (!common_filter_kind_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure filter_kind member TypeIdentifier inconsistent."); - return; - } - MemberName name_filter_kind = "filter_kind"; - eprosima::fastcdr::optional member_ann_builtin_filter_kind; - ann_custom_Calculator_filter_In.reset(); - CompleteMemberDetail detail_filter_kind = TypeObjectUtils::build_complete_member_detail(name_filter_kind, member_ann_builtin_filter_kind, ann_custom_Calculator_filter_In); - CompleteStructMember member_filter_kind = TypeObjectUtils::build_complete_struct_member(common_filter_kind, detail_filter_kind); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_filter_In, member_filter_kind); - } - CompleteStructType struct_type_Calculator_filter_In = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_filter_In, header_Calculator_filter_In, member_seq_Calculator_filter_In); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_filter_In, type_name_Calculator_filter_In.to_string(), type_ids_Calculator_filter_In)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_filter_In already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_filter_value_Feed_type_identifier( - TypeIdentifierPair& type_ids_Calculator_filter_value_Feed) -{ - - ReturnCode_t return_code_Calculator_filter_value_Feed {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_filter_value_Feed = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_filter_value_Feed", type_ids_Calculator_filter_value_Feed); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_filter_value_Feed) - { - StructTypeFlag struct_flags_Calculator_filter_value_Feed = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_filter_value_Feed = "calculator_example::detail::Calculator_filter_value_Feed"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_filter_value_Feed; - eprosima::fastcdr::optional ann_custom_Calculator_filter_value_Feed; - CompleteTypeDetail detail_Calculator_filter_value_Feed = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_filter_value_Feed, ann_custom_Calculator_filter_value_Feed, type_name_Calculator_filter_value_Feed.to_string()); - CompleteStructHeader header_Calculator_filter_value_Feed; - header_Calculator_filter_value_Feed = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_filter_value_Feed); - CompleteStructMemberSeq member_seq_Calculator_filter_value_Feed; - { - TypeIdentifierPair type_ids_value; - ReturnCode_t return_code_value {eprosima::fastdds::dds::RETCODE_OK}; - return_code_value = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_value); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_value) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "value Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_value = 0x00000000; - bool common_value_ec {false}; - CommonStructMember common_value {TypeObjectUtils::build_common_struct_member(member_id_value, member_flags_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_value, common_value_ec))}; - if (!common_value_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure value member TypeIdentifier inconsistent."); - return; - } - MemberName name_value = "value"; - eprosima::fastcdr::optional member_ann_builtin_value; - ann_custom_Calculator_filter_value_Feed.reset(); - AppliedAnnotationSeq tmp_ann_custom_value; - eprosima::fastcdr::optional unit_value; - eprosima::fastcdr::optional min_value; - eprosima::fastcdr::optional max_value; - eprosima::fastcdr::optional hash_id_value; - if (unit_value.has_value() || min_value.has_value() || max_value.has_value() || hash_id_value.has_value()) - { - member_ann_builtin_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_value, min_value, max_value, hash_id_value); - } - if (!tmp_ann_custom_value.empty()) - { - ann_custom_Calculator_filter_value_Feed = tmp_ann_custom_value; - } - CompleteMemberDetail detail_value = TypeObjectUtils::build_complete_member_detail(name_value, member_ann_builtin_value, ann_custom_Calculator_filter_value_Feed); - CompleteStructMember member_value = TypeObjectUtils::build_complete_struct_member(common_value, detail_value); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_filter_value_Feed, member_value); - } - { - TypeIdentifierPair type_ids_finished_; - ReturnCode_t return_code_finished_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_finished_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_finished_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_finished_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "finished_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_finished_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_finished_ = 0x00000001; - bool common_finished__ec {false}; - CommonStructMember common_finished_ {TypeObjectUtils::build_common_struct_member(member_id_finished_, member_flags_finished_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_finished_, common_finished__ec))}; - if (!common_finished__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure finished_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_finished_ = "finished_"; - eprosima::fastcdr::optional member_ann_builtin_finished_; - ann_custom_Calculator_filter_value_Feed.reset(); - AppliedAnnotationSeq tmp_ann_custom_finished_; - eprosima::fastcdr::optional unit_finished_; - eprosima::fastcdr::optional min_finished_; - eprosima::fastcdr::optional max_finished_; - eprosima::fastcdr::optional hash_id_finished_; - if (unit_finished_.has_value() || min_finished_.has_value() || max_finished_.has_value() || hash_id_finished_.has_value()) - { - member_ann_builtin_finished_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_finished_, min_finished_, max_finished_, hash_id_finished_); - } - if (!tmp_ann_custom_finished_.empty()) - { - ann_custom_Calculator_filter_value_Feed = tmp_ann_custom_finished_; - } - CompleteMemberDetail detail_finished_ = TypeObjectUtils::build_complete_member_detail(name_finished_, member_ann_builtin_finished_, ann_custom_Calculator_filter_value_Feed); - CompleteStructMember member_finished_ = TypeObjectUtils::build_complete_struct_member(common_finished_, detail_finished_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_filter_value_Feed, member_finished_); - } - CompleteStructType struct_type_Calculator_filter_value_Feed = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_filter_value_Feed, header_Calculator_filter_value_Feed, member_seq_Calculator_filter_value_Feed); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_filter_value_Feed, type_name_Calculator_filter_value_Feed.to_string(), type_ids_Calculator_filter_value_Feed)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_filter_value_Feed already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_filter_Out_type_identifier( - TypeIdentifierPair& type_ids_Calculator_filter_Out) -{ - - ReturnCode_t return_code_Calculator_filter_Out {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_filter_Out = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_filter_Out", type_ids_Calculator_filter_Out); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_filter_Out) - { - StructTypeFlag struct_flags_Calculator_filter_Out = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::FINAL, - false, false); - QualifiedTypeName type_name_Calculator_filter_Out = "calculator_example::detail::Calculator_filter_Out"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_filter_Out; - eprosima::fastcdr::optional ann_custom_Calculator_filter_Out; - CompleteTypeDetail detail_Calculator_filter_Out = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_filter_Out, ann_custom_Calculator_filter_Out, type_name_Calculator_filter_Out.to_string()); - CompleteStructHeader header_Calculator_filter_Out; - header_Calculator_filter_Out = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_filter_Out); - CompleteStructMemberSeq member_seq_Calculator_filter_Out; - { - TypeIdentifierPair type_ids_return_; - ReturnCode_t return_code_return_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_return_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_return_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_return_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "return_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_return_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_return_ = 0x00000000; - bool common_return__ec {false}; - CommonStructMember common_return_ {TypeObjectUtils::build_common_struct_member(member_id_return_, member_flags_return_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_return_, common_return__ec))}; - if (!common_return__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure return_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_return_ = "return_"; - eprosima::fastcdr::optional member_ann_builtin_return_; - ann_custom_Calculator_filter_Out.reset(); - AppliedAnnotationSeq tmp_ann_custom_return_; - eprosima::fastcdr::optional unit_return_; - eprosima::fastcdr::optional min_return_; - eprosima::fastcdr::optional max_return_; - eprosima::fastcdr::optional hash_id_return_; - if (unit_return_.has_value() || min_return_.has_value() || max_return_.has_value() || hash_id_return_.has_value()) - { - member_ann_builtin_return_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_return_, min_return_, max_return_, hash_id_return_); - } - if (!tmp_ann_custom_return_.empty()) - { - ann_custom_Calculator_filter_Out = tmp_ann_custom_return_; - } - CompleteMemberDetail detail_return_ = TypeObjectUtils::build_complete_member_detail(name_return_, member_ann_builtin_return_, ann_custom_Calculator_filter_Out); - CompleteStructMember member_return_ = TypeObjectUtils::build_complete_struct_member(common_return_, detail_return_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_filter_Out, member_return_); - } - { - TypeIdentifierPair type_ids_finished_; - ReturnCode_t return_code_finished_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_finished_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_finished_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_finished_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "finished_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_finished_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_finished_ = 0x00000001; - bool common_finished__ec {false}; - CommonStructMember common_finished_ {TypeObjectUtils::build_common_struct_member(member_id_finished_, member_flags_finished_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_finished_, common_finished__ec))}; - if (!common_finished__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure finished_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_finished_ = "finished_"; - eprosima::fastcdr::optional member_ann_builtin_finished_; - ann_custom_Calculator_filter_Out.reset(); - AppliedAnnotationSeq tmp_ann_custom_finished_; - eprosima::fastcdr::optional unit_finished_; - eprosima::fastcdr::optional min_finished_; - eprosima::fastcdr::optional max_finished_; - eprosima::fastcdr::optional hash_id_finished_; - if (unit_finished_.has_value() || min_finished_.has_value() || max_finished_.has_value() || hash_id_finished_.has_value()) - { - member_ann_builtin_finished_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_finished_, min_finished_, max_finished_, hash_id_finished_); - } - if (!tmp_ann_custom_finished_.empty()) - { - ann_custom_Calculator_filter_Out = tmp_ann_custom_finished_; - } - CompleteMemberDetail detail_finished_ = TypeObjectUtils::build_complete_member_detail(name_finished_, member_ann_builtin_finished_, ann_custom_Calculator_filter_Out); - CompleteStructMember member_finished_ = TypeObjectUtils::build_complete_struct_member(common_finished_, detail_finished_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_filter_Out, member_finished_); - } - CompleteStructType struct_type_Calculator_filter_Out = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_filter_Out, header_Calculator_filter_Out, member_seq_Calculator_filter_Out); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_filter_Out, type_name_Calculator_filter_Out.to_string(), type_ids_Calculator_filter_Out)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_filter_Out already registered in TypeObjectRegistry for a different type."); - } - } -} - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_filter_Result_type_identifier( - TypeIdentifierPair& type_ids_Calculator_filter_Result) -{ - - ReturnCode_t return_code_Calculator_filter_Result {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_filter_Result = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_filter_Result", type_ids_Calculator_filter_Result); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_filter_Result) - { - StructTypeFlag struct_flags_Calculator_filter_Result = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::MUTABLE, - false, false); - QualifiedTypeName type_name_Calculator_filter_Result = "calculator_example::detail::Calculator_filter_Result"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_filter_Result; - eprosima::fastcdr::optional ann_custom_Calculator_filter_Result; - CompleteTypeDetail detail_Calculator_filter_Result = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_filter_Result, ann_custom_Calculator_filter_Result, type_name_Calculator_filter_Result.to_string()); - CompleteStructHeader header_Calculator_filter_Result; - header_Calculator_filter_Result = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_filter_Result); - CompleteStructMemberSeq member_seq_Calculator_filter_Result; - { - TypeIdentifierPair type_ids_result; - ReturnCode_t return_code_result {eprosima::fastdds::dds::RETCODE_OK}; - return_code_result = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_filter_Out", type_ids_result); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_result) - { - ::calculator_example::detail::register_Calculator_filter_Out_type_identifier(type_ids_result); - } - StructMemberFlag member_flags_result = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_result = 0x0784a8b4; - bool common_result_ec {false}; - CommonStructMember common_result {TypeObjectUtils::build_common_struct_member(member_id_result, member_flags_result, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_result, common_result_ec))}; - if (!common_result_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure result member TypeIdentifier inconsistent."); - return; - } - MemberName name_result = "result"; - eprosima::fastcdr::optional member_ann_builtin_result; - ann_custom_Calculator_filter_Result.reset(); - AppliedAnnotationSeq tmp_ann_custom_result; - eprosima::fastcdr::optional unit_result; - eprosima::fastcdr::optional min_result; - eprosima::fastcdr::optional max_result; - eprosima::fastcdr::optional hash_id_result; - hash_id_result = ""; - - if (unit_result.has_value() || min_result.has_value() || max_result.has_value() || hash_id_result.has_value()) - { - member_ann_builtin_result = TypeObjectUtils::build_applied_builtin_member_annotations(unit_result, min_result, max_result, hash_id_result); - } - if (!tmp_ann_custom_result.empty()) - { - ann_custom_Calculator_filter_Result = tmp_ann_custom_result; - } - CompleteMemberDetail detail_result = TypeObjectUtils::build_complete_member_detail(name_result, member_ann_builtin_result, ann_custom_Calculator_filter_Result); - CompleteStructMember member_result = TypeObjectUtils::build_complete_struct_member(common_result, detail_result); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_filter_Result, member_result); - } - CompleteStructType struct_type_Calculator_filter_Result = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_filter_Result, header_Calculator_filter_Result, member_seq_Calculator_filter_Result); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_filter_Result, type_name_Calculator_filter_Result.to_string(), type_ids_Calculator_filter_Result)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_filter_Result already registered in TypeObjectRegistry for a different type."); - } - } -} - -//} // filter - - -} // namespace detail - -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_Request_type_identifier( - TypeIdentifierPair& type_ids_Calculator_Request) -{ - - ReturnCode_t return_code_Calculator_Request {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_Request = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_Request", type_ids_Calculator_Request); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_Request) - { - StructTypeFlag struct_flags_Calculator_Request = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::MUTABLE, - false, false); - QualifiedTypeName type_name_Calculator_Request = "calculator_example::detail::Calculator_Request"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_Request; - eprosima::fastcdr::optional ann_custom_Calculator_Request; - CompleteTypeDetail detail_Calculator_Request = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_Request, ann_custom_Calculator_Request, type_name_Calculator_Request.to_string()); - CompleteStructHeader header_Calculator_Request; - header_Calculator_Request = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_Request); - CompleteStructMemberSeq member_seq_Calculator_Request; - { - TypeIdentifierPair type_ids_representation_limits; - ReturnCode_t return_code_representation_limits {eprosima::fastdds::dds::RETCODE_OK}; - return_code_representation_limits = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_representation_limits_In", type_ids_representation_limits); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_representation_limits) - { - ::calculator_example::detail::register_Calculator_representation_limits_In_type_identifier(type_ids_representation_limits); - } - StructMemberFlag member_flags_representation_limits = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_representation_limits = 0x0e205a8d; - bool common_representation_limits_ec {false}; - CommonStructMember common_representation_limits {TypeObjectUtils::build_common_struct_member(member_id_representation_limits, member_flags_representation_limits, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_representation_limits, common_representation_limits_ec))}; - if (!common_representation_limits_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure representation_limits member TypeIdentifier inconsistent."); - return; - } - MemberName name_representation_limits = "representation_limits"; - eprosima::fastcdr::optional member_ann_builtin_representation_limits; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_representation_limits; - eprosima::fastcdr::optional unit_representation_limits; - eprosima::fastcdr::optional min_representation_limits; - eprosima::fastcdr::optional max_representation_limits; - eprosima::fastcdr::optional hash_id_representation_limits; - hash_id_representation_limits = ""; - - if (unit_representation_limits.has_value() || min_representation_limits.has_value() || max_representation_limits.has_value() || hash_id_representation_limits.has_value()) - { - member_ann_builtin_representation_limits = TypeObjectUtils::build_applied_builtin_member_annotations(unit_representation_limits, min_representation_limits, max_representation_limits, hash_id_representation_limits); - } - if (!tmp_ann_custom_representation_limits.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_representation_limits; - } - CompleteMemberDetail detail_representation_limits = TypeObjectUtils::build_complete_member_detail(name_representation_limits, member_ann_builtin_representation_limits, ann_custom_Calculator_Request); - CompleteStructMember member_representation_limits = TypeObjectUtils::build_complete_struct_member(common_representation_limits, detail_representation_limits); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_representation_limits); - } - { - TypeIdentifierPair type_ids_addition; - ReturnCode_t return_code_addition {eprosima::fastdds::dds::RETCODE_OK}; - return_code_addition = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_addition_In", type_ids_addition); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_addition) - { - ::calculator_example::detail::register_Calculator_addition_In_type_identifier(type_ids_addition); - } - StructMemberFlag member_flags_addition = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_addition = 0x04e82a2b; - bool common_addition_ec {false}; - CommonStructMember common_addition {TypeObjectUtils::build_common_struct_member(member_id_addition, member_flags_addition, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_addition, common_addition_ec))}; - if (!common_addition_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure addition member TypeIdentifier inconsistent."); - return; - } - MemberName name_addition = "addition"; - eprosima::fastcdr::optional member_ann_builtin_addition; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_addition; - eprosima::fastcdr::optional unit_addition; - eprosima::fastcdr::optional min_addition; - eprosima::fastcdr::optional max_addition; - eprosima::fastcdr::optional hash_id_addition; - hash_id_addition = ""; - - if (unit_addition.has_value() || min_addition.has_value() || max_addition.has_value() || hash_id_addition.has_value()) - { - member_ann_builtin_addition = TypeObjectUtils::build_applied_builtin_member_annotations(unit_addition, min_addition, max_addition, hash_id_addition); - } - if (!tmp_ann_custom_addition.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_addition; - } - CompleteMemberDetail detail_addition = TypeObjectUtils::build_complete_member_detail(name_addition, member_ann_builtin_addition, ann_custom_Calculator_Request); - CompleteStructMember member_addition = TypeObjectUtils::build_complete_struct_member(common_addition, detail_addition); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_addition); - } - { - TypeIdentifierPair type_ids_subtraction; - ReturnCode_t return_code_subtraction {eprosima::fastdds::dds::RETCODE_OK}; - return_code_subtraction = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_subtraction_In", type_ids_subtraction); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_subtraction) - { - ::calculator_example::detail::register_Calculator_subtraction_In_type_identifier(type_ids_subtraction); - } - StructMemberFlag member_flags_subtraction = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_subtraction = 0x096bbc8d; - bool common_subtraction_ec {false}; - CommonStructMember common_subtraction {TypeObjectUtils::build_common_struct_member(member_id_subtraction, member_flags_subtraction, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_subtraction, common_subtraction_ec))}; - if (!common_subtraction_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure subtraction member TypeIdentifier inconsistent."); - return; - } - MemberName name_subtraction = "subtraction"; - eprosima::fastcdr::optional member_ann_builtin_subtraction; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_subtraction; - eprosima::fastcdr::optional unit_subtraction; - eprosima::fastcdr::optional min_subtraction; - eprosima::fastcdr::optional max_subtraction; - eprosima::fastcdr::optional hash_id_subtraction; - hash_id_subtraction = ""; - - if (unit_subtraction.has_value() || min_subtraction.has_value() || max_subtraction.has_value() || hash_id_subtraction.has_value()) - { - member_ann_builtin_subtraction = TypeObjectUtils::build_applied_builtin_member_annotations(unit_subtraction, min_subtraction, max_subtraction, hash_id_subtraction); - } - if (!tmp_ann_custom_subtraction.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_subtraction; - } - CompleteMemberDetail detail_subtraction = TypeObjectUtils::build_complete_member_detail(name_subtraction, member_ann_builtin_subtraction, ann_custom_Calculator_Request); - CompleteStructMember member_subtraction = TypeObjectUtils::build_complete_struct_member(common_subtraction, detail_subtraction); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_subtraction); - } - { - TypeIdentifierPair type_ids_fibonacci_seq; - ReturnCode_t return_code_fibonacci_seq {eprosima::fastdds::dds::RETCODE_OK}; - return_code_fibonacci_seq = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_fibonacci_seq_In", type_ids_fibonacci_seq); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_fibonacci_seq) - { - ::calculator_example::detail::register_Calculator_fibonacci_seq_In_type_identifier(type_ids_fibonacci_seq); - } - StructMemberFlag member_flags_fibonacci_seq = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_fibonacci_seq = 0x0bad50ff; - bool common_fibonacci_seq_ec {false}; - CommonStructMember common_fibonacci_seq {TypeObjectUtils::build_common_struct_member(member_id_fibonacci_seq, member_flags_fibonacci_seq, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_fibonacci_seq, common_fibonacci_seq_ec))}; - if (!common_fibonacci_seq_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure fibonacci_seq member TypeIdentifier inconsistent."); - return; - } - MemberName name_fibonacci_seq = "fibonacci_seq"; - eprosima::fastcdr::optional member_ann_builtin_fibonacci_seq; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_fibonacci_seq; - eprosima::fastcdr::optional unit_fibonacci_seq; - eprosima::fastcdr::optional min_fibonacci_seq; - eprosima::fastcdr::optional max_fibonacci_seq; - eprosima::fastcdr::optional hash_id_fibonacci_seq; - hash_id_fibonacci_seq = ""; - - if (unit_fibonacci_seq.has_value() || min_fibonacci_seq.has_value() || max_fibonacci_seq.has_value() || hash_id_fibonacci_seq.has_value()) - { - member_ann_builtin_fibonacci_seq = TypeObjectUtils::build_applied_builtin_member_annotations(unit_fibonacci_seq, min_fibonacci_seq, max_fibonacci_seq, hash_id_fibonacci_seq); - } - if (!tmp_ann_custom_fibonacci_seq.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_fibonacci_seq; - } - CompleteMemberDetail detail_fibonacci_seq = TypeObjectUtils::build_complete_member_detail(name_fibonacci_seq, member_ann_builtin_fibonacci_seq, ann_custom_Calculator_Request); - CompleteStructMember member_fibonacci_seq = TypeObjectUtils::build_complete_struct_member(common_fibonacci_seq, detail_fibonacci_seq); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_fibonacci_seq); - } - { - TypeIdentifierPair type_ids_sum_all; - ReturnCode_t return_code_sum_all {eprosima::fastdds::dds::RETCODE_OK}; - return_code_sum_all = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_sum_all_In", type_ids_sum_all); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_sum_all) - { - ::calculator_example::detail::register_Calculator_sum_all_In_type_identifier(type_ids_sum_all); - } - StructMemberFlag member_flags_sum_all = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_sum_all = 0x0635cd81; - bool common_sum_all_ec {false}; - CommonStructMember common_sum_all {TypeObjectUtils::build_common_struct_member(member_id_sum_all, member_flags_sum_all, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_sum_all, common_sum_all_ec))}; - if (!common_sum_all_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure sum_all member TypeIdentifier inconsistent."); - return; - } - MemberName name_sum_all = "sum_all"; - eprosima::fastcdr::optional member_ann_builtin_sum_all; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_sum_all; - eprosima::fastcdr::optional unit_sum_all; - eprosima::fastcdr::optional min_sum_all; - eprosima::fastcdr::optional max_sum_all; - eprosima::fastcdr::optional hash_id_sum_all; - hash_id_sum_all = ""; - - if (unit_sum_all.has_value() || min_sum_all.has_value() || max_sum_all.has_value() || hash_id_sum_all.has_value()) - { - member_ann_builtin_sum_all = TypeObjectUtils::build_applied_builtin_member_annotations(unit_sum_all, min_sum_all, max_sum_all, hash_id_sum_all); - } - if (!tmp_ann_custom_sum_all.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_sum_all; - } - CompleteMemberDetail detail_sum_all = TypeObjectUtils::build_complete_member_detail(name_sum_all, member_ann_builtin_sum_all, ann_custom_Calculator_Request); - CompleteStructMember member_sum_all = TypeObjectUtils::build_complete_struct_member(common_sum_all, detail_sum_all); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_sum_all); - } - { - TypeIdentifierPair type_ids_sum_all_value; - ReturnCode_t return_code_sum_all_value {eprosima::fastdds::dds::RETCODE_OK}; - return_code_sum_all_value = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_sum_all_value_Feed", type_ids_sum_all_value); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_sum_all_value) - { - ::calculator_example::detail::register_Calculator_sum_all_value_Feed_type_identifier(type_ids_sum_all_value); - } - StructMemberFlag member_flags_sum_all_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_sum_all_value = 0x04efb71e; - bool common_sum_all_value_ec {false}; - CommonStructMember common_sum_all_value {TypeObjectUtils::build_common_struct_member(member_id_sum_all_value, member_flags_sum_all_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_sum_all_value, common_sum_all_value_ec))}; - if (!common_sum_all_value_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure sum_all_value member TypeIdentifier inconsistent."); - return; - } - MemberName name_sum_all_value = "sum_all_value"; - eprosima::fastcdr::optional member_ann_builtin_sum_all_value; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_sum_all_value; - eprosima::fastcdr::optional unit_sum_all_value; - eprosima::fastcdr::optional min_sum_all_value; - eprosima::fastcdr::optional max_sum_all_value; - eprosima::fastcdr::optional hash_id_sum_all_value; - hash_id_sum_all_value = ""; - - if (unit_sum_all_value.has_value() || min_sum_all_value.has_value() || max_sum_all_value.has_value() || hash_id_sum_all_value.has_value()) - { - member_ann_builtin_sum_all_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_sum_all_value, min_sum_all_value, max_sum_all_value, hash_id_sum_all_value); - } - if (!tmp_ann_custom_sum_all_value.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_sum_all_value; - } - CompleteMemberDetail detail_sum_all_value = TypeObjectUtils::build_complete_member_detail(name_sum_all_value, member_ann_builtin_sum_all_value, ann_custom_Calculator_Request); - CompleteStructMember member_sum_all_value = TypeObjectUtils::build_complete_struct_member(common_sum_all_value, detail_sum_all_value); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_sum_all_value); - } - { - TypeIdentifierPair type_ids_accumulator; - ReturnCode_t return_code_accumulator {eprosima::fastdds::dds::RETCODE_OK}; - return_code_accumulator = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_accumulator_In", type_ids_accumulator); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_accumulator) - { - ::calculator_example::detail::register_Calculator_accumulator_In_type_identifier(type_ids_accumulator); - } - StructMemberFlag member_flags_accumulator = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_accumulator = 0x03d4c1bd; - bool common_accumulator_ec {false}; - CommonStructMember common_accumulator {TypeObjectUtils::build_common_struct_member(member_id_accumulator, member_flags_accumulator, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_accumulator, common_accumulator_ec))}; - if (!common_accumulator_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure accumulator member TypeIdentifier inconsistent."); - return; - } - MemberName name_accumulator = "accumulator"; - eprosima::fastcdr::optional member_ann_builtin_accumulator; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_accumulator; - eprosima::fastcdr::optional unit_accumulator; - eprosima::fastcdr::optional min_accumulator; - eprosima::fastcdr::optional max_accumulator; - eprosima::fastcdr::optional hash_id_accumulator; - hash_id_accumulator = ""; - - if (unit_accumulator.has_value() || min_accumulator.has_value() || max_accumulator.has_value() || hash_id_accumulator.has_value()) - { - member_ann_builtin_accumulator = TypeObjectUtils::build_applied_builtin_member_annotations(unit_accumulator, min_accumulator, max_accumulator, hash_id_accumulator); - } - if (!tmp_ann_custom_accumulator.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_accumulator; - } - CompleteMemberDetail detail_accumulator = TypeObjectUtils::build_complete_member_detail(name_accumulator, member_ann_builtin_accumulator, ann_custom_Calculator_Request); - CompleteStructMember member_accumulator = TypeObjectUtils::build_complete_struct_member(common_accumulator, detail_accumulator); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_accumulator); - } - { - TypeIdentifierPair type_ids_accumulator_value; - ReturnCode_t return_code_accumulator_value {eprosima::fastdds::dds::RETCODE_OK}; - return_code_accumulator_value = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_accumulator_value_Feed", type_ids_accumulator_value); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_accumulator_value) - { - ::calculator_example::detail::register_Calculator_accumulator_value_Feed_type_identifier(type_ids_accumulator_value); - } - StructMemberFlag member_flags_accumulator_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_accumulator_value = 0x0916f618; - bool common_accumulator_value_ec {false}; - CommonStructMember common_accumulator_value {TypeObjectUtils::build_common_struct_member(member_id_accumulator_value, member_flags_accumulator_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_accumulator_value, common_accumulator_value_ec))}; - if (!common_accumulator_value_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure accumulator_value member TypeIdentifier inconsistent."); - return; - } - MemberName name_accumulator_value = "accumulator_value"; - eprosima::fastcdr::optional member_ann_builtin_accumulator_value; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_accumulator_value; - eprosima::fastcdr::optional unit_accumulator_value; - eprosima::fastcdr::optional min_accumulator_value; - eprosima::fastcdr::optional max_accumulator_value; - eprosima::fastcdr::optional hash_id_accumulator_value; - hash_id_accumulator_value = ""; - - if (unit_accumulator_value.has_value() || min_accumulator_value.has_value() || max_accumulator_value.has_value() || hash_id_accumulator_value.has_value()) - { - member_ann_builtin_accumulator_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_accumulator_value, min_accumulator_value, max_accumulator_value, hash_id_accumulator_value); - } - if (!tmp_ann_custom_accumulator_value.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_accumulator_value; - } - CompleteMemberDetail detail_accumulator_value = TypeObjectUtils::build_complete_member_detail(name_accumulator_value, member_ann_builtin_accumulator_value, ann_custom_Calculator_Request); - CompleteStructMember member_accumulator_value = TypeObjectUtils::build_complete_struct_member(common_accumulator_value, detail_accumulator_value); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_accumulator_value); - } - { - TypeIdentifierPair type_ids_filter; - ReturnCode_t return_code_filter {eprosima::fastdds::dds::RETCODE_OK}; - return_code_filter = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_filter_In", type_ids_filter); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_filter) - { - ::calculator_example::detail::register_Calculator_filter_In_type_identifier(type_ids_filter); - } - StructMemberFlag member_flags_filter = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_filter = 0x047ac9b2; - bool common_filter_ec {false}; - CommonStructMember common_filter {TypeObjectUtils::build_common_struct_member(member_id_filter, member_flags_filter, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_filter, common_filter_ec))}; - if (!common_filter_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure filter member TypeIdentifier inconsistent."); - return; - } - MemberName name_filter = "filter"; - eprosima::fastcdr::optional member_ann_builtin_filter; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_filter; - eprosima::fastcdr::optional unit_filter; - eprosima::fastcdr::optional min_filter; - eprosima::fastcdr::optional max_filter; - eprosima::fastcdr::optional hash_id_filter; - hash_id_filter = ""; - - if (unit_filter.has_value() || min_filter.has_value() || max_filter.has_value() || hash_id_filter.has_value()) - { - member_ann_builtin_filter = TypeObjectUtils::build_applied_builtin_member_annotations(unit_filter, min_filter, max_filter, hash_id_filter); - } - if (!tmp_ann_custom_filter.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_filter; - } - CompleteMemberDetail detail_filter = TypeObjectUtils::build_complete_member_detail(name_filter, member_ann_builtin_filter, ann_custom_Calculator_Request); - CompleteStructMember member_filter = TypeObjectUtils::build_complete_struct_member(common_filter, detail_filter); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_filter); - } - { - TypeIdentifierPair type_ids_filter_value; - ReturnCode_t return_code_filter_value {eprosima::fastdds::dds::RETCODE_OK}; - return_code_filter_value = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_filter_value_Feed", type_ids_filter_value); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_filter_value) - { - ::calculator_example::detail::register_Calculator_filter_value_Feed_type_identifier(type_ids_filter_value); - } - StructMemberFlag member_flags_filter_value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_filter_value = 0x09fd5a08; - bool common_filter_value_ec {false}; - CommonStructMember common_filter_value {TypeObjectUtils::build_common_struct_member(member_id_filter_value, member_flags_filter_value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_filter_value, common_filter_value_ec))}; - if (!common_filter_value_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure filter_value member TypeIdentifier inconsistent."); - return; - } - MemberName name_filter_value = "filter_value"; - eprosima::fastcdr::optional member_ann_builtin_filter_value; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_filter_value; - eprosima::fastcdr::optional unit_filter_value; - eprosima::fastcdr::optional min_filter_value; - eprosima::fastcdr::optional max_filter_value; - eprosima::fastcdr::optional hash_id_filter_value; - hash_id_filter_value = ""; - - if (unit_filter_value.has_value() || min_filter_value.has_value() || max_filter_value.has_value() || hash_id_filter_value.has_value()) - { - member_ann_builtin_filter_value = TypeObjectUtils::build_applied_builtin_member_annotations(unit_filter_value, min_filter_value, max_filter_value, hash_id_filter_value); - } - if (!tmp_ann_custom_filter_value.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_filter_value; - } - CompleteMemberDetail detail_filter_value = TypeObjectUtils::build_complete_member_detail(name_filter_value, member_ann_builtin_filter_value, ann_custom_Calculator_Request); - CompleteStructMember member_filter_value = TypeObjectUtils::build_complete_struct_member(common_filter_value, detail_filter_value); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_filter_value); - } - { - TypeIdentifierPair type_ids_feed_cancel_; - ReturnCode_t return_code_feed_cancel_ {eprosima::fastdds::dds::RETCODE_OK}; - return_code_feed_cancel_ = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_feed_cancel_); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_feed_cancel_) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "feed_cancel_ Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_feed_cancel_ = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_feed_cancel_ = 0x0f62acde; - bool common_feed_cancel__ec {false}; - CommonStructMember common_feed_cancel_ {TypeObjectUtils::build_common_struct_member(member_id_feed_cancel_, member_flags_feed_cancel_, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_feed_cancel_, common_feed_cancel__ec))}; - if (!common_feed_cancel__ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure feed_cancel_ member TypeIdentifier inconsistent."); - return; - } - MemberName name_feed_cancel_ = "feed_cancel_"; - eprosima::fastcdr::optional member_ann_builtin_feed_cancel_; - ann_custom_Calculator_Request.reset(); - AppliedAnnotationSeq tmp_ann_custom_feed_cancel_; - eprosima::fastcdr::optional unit_feed_cancel_; - eprosima::fastcdr::optional min_feed_cancel_; - eprosima::fastcdr::optional max_feed_cancel_; - eprosima::fastcdr::optional hash_id_feed_cancel_; - hash_id_feed_cancel_ = ""; - - if (unit_feed_cancel_.has_value() || min_feed_cancel_.has_value() || max_feed_cancel_.has_value() || hash_id_feed_cancel_.has_value()) - { - member_ann_builtin_feed_cancel_ = TypeObjectUtils::build_applied_builtin_member_annotations(unit_feed_cancel_, min_feed_cancel_, max_feed_cancel_, hash_id_feed_cancel_); - } - if (!tmp_ann_custom_feed_cancel_.empty()) - { - ann_custom_Calculator_Request = tmp_ann_custom_feed_cancel_; - } - CompleteMemberDetail detail_feed_cancel_ = TypeObjectUtils::build_complete_member_detail(name_feed_cancel_, member_ann_builtin_feed_cancel_, ann_custom_Calculator_Request); - CompleteStructMember member_feed_cancel_ = TypeObjectUtils::build_complete_struct_member(common_feed_cancel_, detail_feed_cancel_); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Request, member_feed_cancel_); - } - CompleteStructType struct_type_Calculator_Request = TypeObjectUtils::build_complete_struct_type(struct_flags_Calculator_Request, header_Calculator_Request, member_seq_Calculator_Request); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Calculator_Request, type_name_Calculator_Request.to_string(), type_ids_Calculator_Request)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "calculator_example::detail::Calculator_Request already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Calculator_Reply_type_identifier( - TypeIdentifierPair& type_ids_Calculator_Reply) -{ - - ReturnCode_t return_code_Calculator_Reply {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Calculator_Reply = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_Reply", type_ids_Calculator_Reply); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Calculator_Reply) - { - StructTypeFlag struct_flags_Calculator_Reply = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::MUTABLE, - false, false); - QualifiedTypeName type_name_Calculator_Reply = "calculator_example::detail::Calculator_Reply"; - eprosima::fastcdr::optional type_ann_builtin_Calculator_Reply; - eprosima::fastcdr::optional ann_custom_Calculator_Reply; - CompleteTypeDetail detail_Calculator_Reply = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Calculator_Reply, ann_custom_Calculator_Reply, type_name_Calculator_Reply.to_string()); - CompleteStructHeader header_Calculator_Reply; - header_Calculator_Reply = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Calculator_Reply); - CompleteStructMemberSeq member_seq_Calculator_Reply; - { - TypeIdentifierPair type_ids_representation_limits; - ReturnCode_t return_code_representation_limits {eprosima::fastdds::dds::RETCODE_OK}; - return_code_representation_limits = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_representation_limits_Result", type_ids_representation_limits); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_representation_limits) - { - ::calculator_example::detail::register_Calculator_representation_limits_Result_type_identifier(type_ids_representation_limits); - } - StructMemberFlag member_flags_representation_limits = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_representation_limits = 0x0e205a8d; - bool common_representation_limits_ec {false}; - CommonStructMember common_representation_limits {TypeObjectUtils::build_common_struct_member(member_id_representation_limits, member_flags_representation_limits, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_representation_limits, common_representation_limits_ec))}; - if (!common_representation_limits_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure representation_limits member TypeIdentifier inconsistent."); - return; - } - MemberName name_representation_limits = "representation_limits"; - eprosima::fastcdr::optional member_ann_builtin_representation_limits; - ann_custom_Calculator_Reply.reset(); - AppliedAnnotationSeq tmp_ann_custom_representation_limits; - eprosima::fastcdr::optional unit_representation_limits; - eprosima::fastcdr::optional min_representation_limits; - eprosima::fastcdr::optional max_representation_limits; - eprosima::fastcdr::optional hash_id_representation_limits; - hash_id_representation_limits = ""; - - if (unit_representation_limits.has_value() || min_representation_limits.has_value() || max_representation_limits.has_value() || hash_id_representation_limits.has_value()) - { - member_ann_builtin_representation_limits = TypeObjectUtils::build_applied_builtin_member_annotations(unit_representation_limits, min_representation_limits, max_representation_limits, hash_id_representation_limits); - } - if (!tmp_ann_custom_representation_limits.empty()) - { - ann_custom_Calculator_Reply = tmp_ann_custom_representation_limits; - } - CompleteMemberDetail detail_representation_limits = TypeObjectUtils::build_complete_member_detail(name_representation_limits, member_ann_builtin_representation_limits, ann_custom_Calculator_Reply); - CompleteStructMember member_representation_limits = TypeObjectUtils::build_complete_struct_member(common_representation_limits, detail_representation_limits); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Reply, member_representation_limits); - } - { - TypeIdentifierPair type_ids_addition; - ReturnCode_t return_code_addition {eprosima::fastdds::dds::RETCODE_OK}; - return_code_addition = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_addition_Result", type_ids_addition); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_addition) - { - ::calculator_example::detail::register_Calculator_addition_Result_type_identifier(type_ids_addition); - } - StructMemberFlag member_flags_addition = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_addition = 0x04e82a2b; - bool common_addition_ec {false}; - CommonStructMember common_addition {TypeObjectUtils::build_common_struct_member(member_id_addition, member_flags_addition, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_addition, common_addition_ec))}; - if (!common_addition_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure addition member TypeIdentifier inconsistent."); + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure addition member TypeIdentifier inconsistent."); return; } MemberName name_addition = "addition"; @@ -2914,178 +1142,6 @@ void register_Calculator_Reply_type_identifier( CompleteStructMember member_subtraction = TypeObjectUtils::build_complete_struct_member(common_subtraction, detail_subtraction); TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Reply, member_subtraction); } - { - TypeIdentifierPair type_ids_fibonacci_seq; - ReturnCode_t return_code_fibonacci_seq {eprosima::fastdds::dds::RETCODE_OK}; - return_code_fibonacci_seq = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_fibonacci_seq_Result", type_ids_fibonacci_seq); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_fibonacci_seq) - { - ::calculator_example::detail::register_Calculator_fibonacci_seq_Result_type_identifier(type_ids_fibonacci_seq); - } - StructMemberFlag member_flags_fibonacci_seq = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_fibonacci_seq = 0x0bad50ff; - bool common_fibonacci_seq_ec {false}; - CommonStructMember common_fibonacci_seq {TypeObjectUtils::build_common_struct_member(member_id_fibonacci_seq, member_flags_fibonacci_seq, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_fibonacci_seq, common_fibonacci_seq_ec))}; - if (!common_fibonacci_seq_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure fibonacci_seq member TypeIdentifier inconsistent."); - return; - } - MemberName name_fibonacci_seq = "fibonacci_seq"; - eprosima::fastcdr::optional member_ann_builtin_fibonacci_seq; - ann_custom_Calculator_Reply.reset(); - AppliedAnnotationSeq tmp_ann_custom_fibonacci_seq; - eprosima::fastcdr::optional unit_fibonacci_seq; - eprosima::fastcdr::optional min_fibonacci_seq; - eprosima::fastcdr::optional max_fibonacci_seq; - eprosima::fastcdr::optional hash_id_fibonacci_seq; - hash_id_fibonacci_seq = ""; - - if (unit_fibonacci_seq.has_value() || min_fibonacci_seq.has_value() || max_fibonacci_seq.has_value() || hash_id_fibonacci_seq.has_value()) - { - member_ann_builtin_fibonacci_seq = TypeObjectUtils::build_applied_builtin_member_annotations(unit_fibonacci_seq, min_fibonacci_seq, max_fibonacci_seq, hash_id_fibonacci_seq); - } - if (!tmp_ann_custom_fibonacci_seq.empty()) - { - ann_custom_Calculator_Reply = tmp_ann_custom_fibonacci_seq; - } - CompleteMemberDetail detail_fibonacci_seq = TypeObjectUtils::build_complete_member_detail(name_fibonacci_seq, member_ann_builtin_fibonacci_seq, ann_custom_Calculator_Reply); - CompleteStructMember member_fibonacci_seq = TypeObjectUtils::build_complete_struct_member(common_fibonacci_seq, detail_fibonacci_seq); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Reply, member_fibonacci_seq); - } - { - TypeIdentifierPair type_ids_sum_all; - ReturnCode_t return_code_sum_all {eprosima::fastdds::dds::RETCODE_OK}; - return_code_sum_all = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_sum_all_Result", type_ids_sum_all); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_sum_all) - { - ::calculator_example::detail::register_Calculator_sum_all_Result_type_identifier(type_ids_sum_all); - } - StructMemberFlag member_flags_sum_all = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_sum_all = 0x0635cd81; - bool common_sum_all_ec {false}; - CommonStructMember common_sum_all {TypeObjectUtils::build_common_struct_member(member_id_sum_all, member_flags_sum_all, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_sum_all, common_sum_all_ec))}; - if (!common_sum_all_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure sum_all member TypeIdentifier inconsistent."); - return; - } - MemberName name_sum_all = "sum_all"; - eprosima::fastcdr::optional member_ann_builtin_sum_all; - ann_custom_Calculator_Reply.reset(); - AppliedAnnotationSeq tmp_ann_custom_sum_all; - eprosima::fastcdr::optional unit_sum_all; - eprosima::fastcdr::optional min_sum_all; - eprosima::fastcdr::optional max_sum_all; - eprosima::fastcdr::optional hash_id_sum_all; - hash_id_sum_all = ""; - - if (unit_sum_all.has_value() || min_sum_all.has_value() || max_sum_all.has_value() || hash_id_sum_all.has_value()) - { - member_ann_builtin_sum_all = TypeObjectUtils::build_applied_builtin_member_annotations(unit_sum_all, min_sum_all, max_sum_all, hash_id_sum_all); - } - if (!tmp_ann_custom_sum_all.empty()) - { - ann_custom_Calculator_Reply = tmp_ann_custom_sum_all; - } - CompleteMemberDetail detail_sum_all = TypeObjectUtils::build_complete_member_detail(name_sum_all, member_ann_builtin_sum_all, ann_custom_Calculator_Reply); - CompleteStructMember member_sum_all = TypeObjectUtils::build_complete_struct_member(common_sum_all, detail_sum_all); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Reply, member_sum_all); - } - { - TypeIdentifierPair type_ids_accumulator; - ReturnCode_t return_code_accumulator {eprosima::fastdds::dds::RETCODE_OK}; - return_code_accumulator = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_accumulator_Result", type_ids_accumulator); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_accumulator) - { - ::calculator_example::detail::register_Calculator_accumulator_Result_type_identifier(type_ids_accumulator); - } - StructMemberFlag member_flags_accumulator = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_accumulator = 0x03d4c1bd; - bool common_accumulator_ec {false}; - CommonStructMember common_accumulator {TypeObjectUtils::build_common_struct_member(member_id_accumulator, member_flags_accumulator, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_accumulator, common_accumulator_ec))}; - if (!common_accumulator_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure accumulator member TypeIdentifier inconsistent."); - return; - } - MemberName name_accumulator = "accumulator"; - eprosima::fastcdr::optional member_ann_builtin_accumulator; - ann_custom_Calculator_Reply.reset(); - AppliedAnnotationSeq tmp_ann_custom_accumulator; - eprosima::fastcdr::optional unit_accumulator; - eprosima::fastcdr::optional min_accumulator; - eprosima::fastcdr::optional max_accumulator; - eprosima::fastcdr::optional hash_id_accumulator; - hash_id_accumulator = ""; - - if (unit_accumulator.has_value() || min_accumulator.has_value() || max_accumulator.has_value() || hash_id_accumulator.has_value()) - { - member_ann_builtin_accumulator = TypeObjectUtils::build_applied_builtin_member_annotations(unit_accumulator, min_accumulator, max_accumulator, hash_id_accumulator); - } - if (!tmp_ann_custom_accumulator.empty()) - { - ann_custom_Calculator_Reply = tmp_ann_custom_accumulator; - } - CompleteMemberDetail detail_accumulator = TypeObjectUtils::build_complete_member_detail(name_accumulator, member_ann_builtin_accumulator, ann_custom_Calculator_Reply); - CompleteStructMember member_accumulator = TypeObjectUtils::build_complete_struct_member(common_accumulator, detail_accumulator); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Reply, member_accumulator); - } - { - TypeIdentifierPair type_ids_filter; - ReturnCode_t return_code_filter {eprosima::fastdds::dds::RETCODE_OK}; - return_code_filter = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "calculator_example::detail::Calculator_filter_Result", type_ids_filter); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_filter) - { - ::calculator_example::detail::register_Calculator_filter_Result_type_identifier(type_ids_filter); - } - StructMemberFlag member_flags_filter = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - true, false, false, false); - MemberId member_id_filter = 0x047ac9b2; - bool common_filter_ec {false}; - CommonStructMember common_filter {TypeObjectUtils::build_common_struct_member(member_id_filter, member_flags_filter, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_filter, common_filter_ec))}; - if (!common_filter_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure filter member TypeIdentifier inconsistent."); - return; - } - MemberName name_filter = "filter"; - eprosima::fastcdr::optional member_ann_builtin_filter; - ann_custom_Calculator_Reply.reset(); - AppliedAnnotationSeq tmp_ann_custom_filter; - eprosima::fastcdr::optional unit_filter; - eprosima::fastcdr::optional min_filter; - eprosima::fastcdr::optional max_filter; - eprosima::fastcdr::optional hash_id_filter; - hash_id_filter = ""; - - if (unit_filter.has_value() || min_filter.has_value() || max_filter.has_value() || hash_id_filter.has_value()) - { - member_ann_builtin_filter = TypeObjectUtils::build_applied_builtin_member_annotations(unit_filter, min_filter, max_filter, hash_id_filter); - } - if (!tmp_ann_custom_filter.empty()) - { - ann_custom_Calculator_Reply = tmp_ann_custom_filter; - } - CompleteMemberDetail detail_filter = TypeObjectUtils::build_complete_member_detail(name_filter, member_ann_builtin_filter, ann_custom_Calculator_Reply); - CompleteStructMember member_filter = TypeObjectUtils::build_complete_struct_member(common_filter, detail_filter); - TypeObjectUtils::add_complete_struct_member(member_seq_Calculator_Reply, member_filter); - } { TypeIdentifierPair type_ids_remoteEx; ReturnCode_t return_code_remoteEx {eprosima::fastdds::dds::RETCODE_OK}; diff --git a/examples/cpp/rpc/types/calculatorTypeObjectSupport.hpp b/examples/cpp/rpc/types/calculatorTypeObjectSupport.hpp index 38ee4df0a23..94eddb1ec58 100644 --- a/examples/cpp/rpc/types/calculatorTypeObjectSupport.hpp +++ b/examples/cpp/rpc/types/calculatorTypeObjectSupport.hpp @@ -38,19 +38,6 @@ #ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC namespace calculator_example { -/** - * @brief Register FilterKind related TypeIdentifier. - * Fully-descriptive TypeIdentifiers are directly registered. - * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is - * indirectly registered as well. - * - * @param[out] type_ids TypeIdentifier of the registered type. - * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. - * Invalid TypeIdentifier is returned in case of error. - */ -eProsima_user_DllExport void register_FilterKind_type_identifier( - eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); - /** * @brief Register Calculator_Request related TypeIdentifier. * Fully-descriptive TypeIdentifiers are directly registered. diff --git a/examples/cpp/rpc/types/calculator_details.hpp b/examples/cpp/rpc/types/calculator_details.hpp index 612c3401c74..171dd704790 100644 --- a/examples/cpp/rpc/types/calculator_details.hpp +++ b/examples/cpp/rpc/types/calculator_details.hpp @@ -91,105 +91,6 @@ namespace calculator_example { //} // subtraction - //{ fibonacci_seq - struct Calculator_fibonacci_seq_In - { - uint32_t n_results; - }; - - - - struct Calculator_fibonacci_seq_Out - { - eprosima::fastcdr::optional return_; - eprosima::fastcdr::optional finished_; - }; - - struct Calculator_fibonacci_seq_Result - { - eprosima::fastcdr::optional result; - eprosima::fastcdr::optional calculator_example_OverflowException_ex; - }; - - //} // fibonacci_seq - - //{ sum_all - struct Calculator_sum_all_In - { - - }; - - struct Calculator_sum_all_value_Feed - { - eprosima::fastcdr::optional value; - eprosima::fastcdr::optional finished_; - }; - - struct Calculator_sum_all_Out - { - int32_t return_; - }; - - struct Calculator_sum_all_Result - { - eprosima::fastcdr::optional result; - eprosima::fastcdr::optional calculator_example_OverflowException_ex; - }; - - //} // sum_all - - //{ accumulator - struct Calculator_accumulator_In - { - - }; - - struct Calculator_accumulator_value_Feed - { - eprosima::fastcdr::optional value; - eprosima::fastcdr::optional finished_; - }; - - struct Calculator_accumulator_Out - { - eprosima::fastcdr::optional return_; - eprosima::fastcdr::optional finished_; - }; - - struct Calculator_accumulator_Result - { - eprosima::fastcdr::optional result; - eprosima::fastcdr::optional calculator_example_OverflowException_ex; - }; - - //} // accumulator - - //{ filter - struct Calculator_filter_In - { - - calculator_example::FilterKind filter_kind; - }; - - struct Calculator_filter_value_Feed - { - eprosima::fastcdr::optional value; - eprosima::fastcdr::optional finished_; - }; - - struct Calculator_filter_Out - { - eprosima::fastcdr::optional return_; - eprosima::fastcdr::optional finished_; - }; - - struct Calculator_filter_Result - { - eprosima::fastcdr::optional result; - }; - - //} // filter - //{ top level @@ -198,14 +99,6 @@ namespace calculator_example { eprosima::fastcdr::optional representation_limits; eprosima::fastcdr::optional addition; eprosima::fastcdr::optional subtraction; - eprosima::fastcdr::optional fibonacci_seq; - eprosima::fastcdr::optional sum_all; - eprosima::fastcdr::optional sum_all_value; - eprosima::fastcdr::optional accumulator; - eprosima::fastcdr::optional accumulator_value; - eprosima::fastcdr::optional filter; - eprosima::fastcdr::optional filter_value; - eprosima::fastcdr::optional feed_cancel_; }; struct Calculator_Reply @@ -213,10 +106,6 @@ namespace calculator_example { eprosima::fastcdr::optional representation_limits; eprosima::fastcdr::optional addition; eprosima::fastcdr::optional subtraction; - eprosima::fastcdr::optional fibonacci_seq; - eprosima::fastcdr::optional sum_all; - eprosima::fastcdr::optional accumulator; - eprosima::fastcdr::optional filter; eprosima::fastcdr::optional remoteEx; }; diff --git a/include/fastdds/dds/rpc/interfaces.hpp b/include/fastdds/dds/rpc/interfaces.hpp index 5fd660e6f71..59683d66e0c 100644 --- a/include/fastdds/dds/rpc/interfaces.hpp +++ b/include/fastdds/dds/rpc/interfaces.hpp @@ -19,14 +19,10 @@ #ifndef FASTDDS_DDS_RPC__INTERFACES_HPP #define FASTDDS_DDS_RPC__INTERFACES_HPP -#include -#include #include #include #include -#include #include -#include #include #endif // FASTDDS_DDS_RPC__INTERFACES_HPP diff --git a/include/fastdds/dds/rpc/interfaces/RpcClientReader.hpp b/include/fastdds/dds/rpc/interfaces/RpcClientReader.hpp deleted file mode 100644 index 06b272080de..00000000000 --- a/include/fastdds/dds/rpc/interfaces/RpcClientReader.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2025 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @file RpcClientReader.hpp - */ - -#ifndef FASTDDS_DDS_RPC_INTERFACES__RPCCLIENTREADER_HPP -#define FASTDDS_DDS_RPC_INTERFACES__RPCCLIENTREADER_HPP - -#include - -namespace eprosima { -namespace fastdds { -namespace dds { -namespace rpc { - -/** - * An interface for a client-side RPC reader. - * - * Would be used to read replies from a server on an operation with a `@feed` annotated return type. - */ -template -class RpcClientReader -{ -public: - - /** - * Destructor. - */ - virtual ~RpcClientReader() = default; - - /** - * Blocking read operation. - * - * Will block until a reply is available or the replies feed has finished. - * - * @param value The value to read the reply into. - * - * @return True if a reply was read, false if the feed has finished or has been cancelled. - * - * @throw RpcOperationError if the server communicates an error. - * @throw RpcBrokenPipeException if the communication with the server breaks. - */ - virtual bool read( - T& value) = 0; - - /** - * Blocking read operation with timeout. - * - * Will block until a reply is available, the replies feed has finished, or the timeout expires. - * - * @param value The value to read the reply into. - * @param timeout The maximum time to wait for a reply. - * - * @return True if a reply was read, false if the feed has finished or has been cancelled. - * - * @throw RpcOperationError if the server communicates an error. - * @throw RpcBrokenPipeException if the communication with the server breaks. - * @throw RpcTimeoutException if the timeout expires. - */ - virtual bool read( - T& value, - const eprosima::fastdds::dds::Duration_t& timeout) = 0; - - /** - * Cancel the replies feed. - * - * Will tell the server to stop sending replies, and block until the server acknowledges the cancellation. - * The replies feed would then be finished locally, so all pending read operations will return false. - * - * @throw RpcBrokenPipeException if the communication with the server breaks. - */ - virtual void cancel() = 0; -}; - -} // namespace rpc -} // namespace dds -} // namespace fastdds -} // namespace eprosima - -#endif // FASTDDS_DDS_RPC_INTERFACES__RPCCLIENTREADER_HPP diff --git a/include/fastdds/dds/rpc/interfaces/RpcClientWriter.hpp b/include/fastdds/dds/rpc/interfaces/RpcClientWriter.hpp deleted file mode 100644 index 111436c1dfa..00000000000 --- a/include/fastdds/dds/rpc/interfaces/RpcClientWriter.hpp +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2025 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @file RpcClientWriter.hpp - */ - -#ifndef FASTDDS_DDS_RPC_INTERFACES__RPCCLIENTWRITER_HPP -#define FASTDDS_DDS_RPC_INTERFACES__RPCCLIENTWRITER_HPP - -#include - -namespace eprosima { -namespace fastdds { -namespace dds { -namespace rpc { - -/** - * An interface for a client-side RPC writer. - * - * Would be used to write inputs from a client on an operation with `@feed` annotated inputs. - */ -template -class RpcClientWriter -{ -public: - - /** - * Destructor. - */ - virtual ~RpcClientWriter() noexcept = default; - - /** - * Copy write operation. - * - * Will add a value to the input feed, that would be eventually sent to the server. - * May block depending on the configured queue sizes in both the client and the server. - * - * @param value The value to write to the input feed. - * - * @throw RpcBrokenPipeException if the communication with the server breaks. - * @throw RpcTimeoutException if the operation needs to block for a time longer than the configured timeout. - * @throw RpcOperationError if the server communicates an error. - */ - virtual void write( - const T& value) = 0; - - /** - * Move write operation. - * - * Will add a value to the input feed, that would be eventually sent to the server. - * May block depending on the configured queue sizes in both the client and the server. - * - * @param value The value to write to the input feed. - * - * @throw RpcBrokenPipeException if the communication with the server breaks. - * @throw RpcTimeoutException if the operation needs to block for a time longer than the configured timeout. - * @throw RpcOperationError if the server communicates an error. - */ - virtual void write( - T&& value) = 0; - - /** - * Marks the end of the input feed. - * - * Will indicate to the server that no more inputs will be sent. - * Specifying a reason different from `RPC_STATUS_CODE_OK` will indicate that the feed was finished due to an - * error, and that the client will not be expecting a reply. - * - * May block depending on the configured queue sizes in both the client and the server. - * - * @param reason The status code to indicate the reason for finishing the feed. - * - * @throw RpcBrokenPipeException if the communication with the server breaks. - * @throw RpcTimeoutException if the operation needs to block for a time longer than the configured timeout. - */ - virtual void finish( - RpcStatusCode reason = RPC_STATUS_CODE_OK) = 0; - -}; - -} // namespace rpc -} // namespace dds -} // namespace fastdds -} // namespace eprosima - -#endif // FASTDDS_DDS_RPC_INTERFACES__RPCCLIENTWRITER_HPP diff --git a/include/fastdds/dds/rpc/interfaces/RpcServerReader.hpp b/include/fastdds/dds/rpc/interfaces/RpcServerReader.hpp deleted file mode 100644 index 8683abca93a..00000000000 --- a/include/fastdds/dds/rpc/interfaces/RpcServerReader.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2025 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @file RpcServerReader.hpp - */ - -#ifndef FASTDDS_DDS_RPC_INTERFACES__RPCSERVERREADER_HPP -#define FASTDDS_DDS_RPC_INTERFACES__RPCSERVERREADER_HPP - -#include - -namespace eprosima { -namespace fastdds { -namespace dds { -namespace rpc { - -/** - * An interface for a server-side RPC reader. - * - * Would be used to read inputs from a client on an operation with `@feed` annotated inputs. - */ -template -class RpcServerReader -{ -public: - - /** - * Destructor. - */ - virtual ~RpcServerReader() noexcept = default; - - /** - * Blocking read operation. - * - * Will block until an input is available or the input feed has finished. - * - * @param value The value to read the input into. - * - * @return True if a value was read, false if the feed has finished. - * - * @throw RpcBrokenPipeException if the communication with the client breaks. - * @throw RpcFeedCancelledException if the client cancels the input feed. - */ - virtual bool read( - T& value) = 0; - - /** - * Blocking read operation with timeout. - * - * Will block until an input is available, the input feed has finished, or the timeout expires. - * - * @param value The value to read the input into. - * @param timeout The maximum time to wait for an input. - * - * @return True if a value was read, false if the feed has finished. - * - * @throw RpcTimeoutException if the timeout expires. - * @throw RpcBrokenPipeException if the communication with the client breaks. - * @throw RpcFeedCancelledException if the client cancels the input feed. - */ - virtual bool read( - T& value, - const eprosima::fastdds::dds::Duration_t& timeout) = 0; - -}; - -} // namespace rpc -} // namespace dds -} // namespace fastdds -} // namespace eprosima - -#endif // FASTDDS_DDS_RPC_INTERFACES__RPCSERVERREADER_HPP diff --git a/include/fastdds/dds/rpc/interfaces/RpcServerWriter.hpp b/include/fastdds/dds/rpc/interfaces/RpcServerWriter.hpp deleted file mode 100644 index 094fa3ba7c7..00000000000 --- a/include/fastdds/dds/rpc/interfaces/RpcServerWriter.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2025 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @file RpcServerWriter.hpp - */ - -#ifndef FASTDDS_DDS_RPC_INTERFACES__RPCSERVERWRITER_HPP -#define FASTDDS_DDS_RPC_INTERFACES__RPCSERVERWRITER_HPP - -namespace eprosima { -namespace fastdds { -namespace dds { -namespace rpc { - -/** - * An interface for a server-side RPC writer. - * - * Would be used to write replies from a server on an operation with a `@feed` annotated return type. - */ -template -class RpcServerWriter -{ -public: - - /** - * Destructor. - */ - virtual ~RpcServerWriter() noexcept = default; - - /** - * Copy write operation. - * - * Will add a value to the replies feed, that would be eventually sent to the client. - * May block depending on the configured queue sizes in both the client and the server. - * - * @param value The value to write to the replies feed. - * - * @throw RpcBrokenPipeException if the communication with the client breaks. - * @throw RpcTimeoutException if the operation needs to block for a time longer than the configured timeout. - * @throw RpcFeedCancelledException if the client cancels the output feed. - */ - virtual void write( - const T& value) = 0; - - /** - * Move write operation. - * - * Will add a value to the replies feed, that would be eventually sent to the client. - * May block depending on the configured queue sizes in both the client and the server. - * - * @param value The value to write to the replies feed. - * - * @throw RpcBrokenPipeException if the communication with the client breaks. - * @throw RpcTimeoutException if the operation needs to block for a time longer than the configured timeout. - * @throw RpcFeedCancelledException if the client cancels the output feed. - */ - virtual void write( - T&& value) = 0; - -}; - -} // namespace rpc -} // namespace dds -} // namespace fastdds -} // namespace eprosima - -#endif // FASTDDS_DDS_RPC_INTERFACES__RPCSERVERWRITER_HPP diff --git a/test/examples/test_rpc.py b/test/examples/test_rpc.py index 874eaef0fa2..7d8418cc53d 100644 --- a/test/examples/test_rpc.py +++ b/test/examples/test_rpc.py @@ -20,10 +20,6 @@ ('-r', 'Representation limits received: min_value = -2147483648, max_value = 2147483647'), ('--addition 1 2', 'Addition result: 1 + 2 = 3'), ('--substraction 8 5', 'Substraction result: 8 - 5 = 3'), - ('--fibonacci 4', 'Fibonacci sequence feed finished'), - ('--accumulator --feed 1,2,3,4,5', 'Accumulated sum: 15'), - ('--sum-all --feed 1,2,3', 'Sum result: 6'), - ('--filter 1 --feed 2,3,4,6', 'Filtered sequence value: 3') ] @pytest.mark.parametrize("client_args, expected_response", rpc_calculator_test_cases)