2020#include < rcl/types.h>
2121#include < rosidl_runtime_c/message_type_support_struct.h>
2222#include < rmw/types.h>
23+ #include < rmw/subscription_options.h>
2324
2425#include < memory>
2526#include < stdexcept>
@@ -37,7 +38,7 @@ namespace rclpy
3738{
3839Subscription::Subscription (
3940 Node & node, py::object pymsg_type, std::string topic,
40- py::object pyqos_profile)
41+ py::object pyqos_profile, py::object pysubscription_options )
4142: node_(node)
4243{
4344 auto msg_type = static_cast <rosidl_message_type_support_t *>(
@@ -52,6 +53,10 @@ Subscription::Subscription(
5253 subscription_ops.qos = pyqos_profile.cast <rmw_qos_profile_t >();
5354 }
5455
56+ if (!pysubscription_options.is_none ()) {
57+ subscription_ops.rmw_subscription_options = pysubscription_options.cast <rmw_subscription_options_t >();
58+ }
59+
5560 rcl_subscription_ = std::shared_ptr<rcl_subscription_t >(
5661 new rcl_subscription_t ,
5762 [node](rcl_subscription_t * subscription)
172177define_subscription (py::object module )
173178{
174179 py::class_<Subscription, Destroyable, std::shared_ptr<Subscription>>(module , " Subscription" )
175- .def (py::init<Node &, py::object, std::string, py::object>())
180+ .def (py::init<Node &, py::object, std::string, py::object, py::object >())
176181 .def_property_readonly (
177182 " pointer" , [](const Subscription & subscription) {
178183 return reinterpret_cast <size_t >(subscription.rcl_ptr ());
0 commit comments