.. _program_listing_file_include_responses.hpp: Program Listing for File responses.hpp ====================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/responses.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef RIG_RECONFIGURE_RESPONSES_HPP #define RIG_RECONFIGURE_RESPONSES_HPP #include #include #include "ros_parameter.hpp" struct Response { enum class Type { NODE_NAMES, PARAMETERS, MODIFICATION_RESULT, SERVICE_TIMEOUT }; explicit Response(Type type_) : type(type_) {}; virtual ~Response() = default; Type type; }; using ResponsePtr = std::shared_ptr; struct NodeNameResponse : public Response { explicit NodeNameResponse(const std::vector &nodeNames_) : Response(Type::NODE_NAMES), nodeNames(nodeNames_) {}; std::vector nodeNames; }; struct ParameterValueResponse : public Response { ParameterValueResponse() : Response(Type::PARAMETERS) {}; std::vector parameters; }; struct ParameterModificationResponse : public Response { ParameterModificationResponse(std::string parameterName_, bool success_, std::string reason_) : Response(Type::MODIFICATION_RESULT), parameterName(std::move(parameterName_)), success(success_), reason(std::move(reason_)) {}; std::string parameterName; bool success; std::string reason; }; struct ServiceTimeout : public Response { explicit ServiceTimeout(std::string nodeName_) : Response(Type::SERVICE_TIMEOUT), nodeName(std::move(nodeName_)) {}; std::string nodeName; }; #endif // RIG_RECONFIGURE_RESPONSES_HPP