Skip to content

Commit 1aebfab

Browse files
committed
Deprecate MemoryStrategy
Mark MemoryStrategy as deprecated, as they have become dead code following the double-buffering changes in the executor. - Add [[deprecated]] attributes to classes and methods. - Deprecate memory_strategy member in ExecutorOptions. - Add macros to silence warning with tests Signed-off-by: Scott Duncan <scott.duncan.work@gmail.com>
1 parent 9b93179 commit 1aebfab

File tree

2 files changed

+62
-41
lines changed

2 files changed

+62
-41
lines changed

rclcpp/include/rclcpp/executor_options.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ struct ExecutorOptions
4343
RCLCPP_PUBLIC
4444
ExecutorOptions & operator=(const ExecutorOptions &);
4545

46+
[[deprecated("MemoryStrategy is deprecated.")]]
4647
rclcpp::memory_strategy::MemoryStrategy::SharedPtr memory_strategy;
4748
rclcpp::Context::SharedPtr context;
4849
size_t max_conditions;

rclcpp/include/rclcpp/memory_strategy.hpp

Lines changed: 61 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
#include "rcl/allocator.h"
2323
#include "rcl/wait.h"
24-
2524
#include "rclcpp/any_executable.hpp"
2625
#include "rclcpp/macros.hpp"
2726
#include "rclcpp/node_interfaces/node_base_interface.hpp"
@@ -39,112 +38,133 @@ namespace memory_strategy
3938
* the rmw implementation after the executor waits for work, based on the number of entities that
4039
* come through.
4140
*/
42-
class RCLCPP_PUBLIC MemoryStrategy
41+
42+
class RCLCPP_PUBLIC [[deprecated("Changes to the executor leave this Class deprecated.")]]
43+
MemoryStrategy
4344
{
4445
public:
46+
#if !defined(_WIN32)
47+
#pragma GCC diagnostic push
48+
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
49+
#else // !defined(_WIN32)
50+
#pragma warning(push)
51+
#pragma warning(disable : 4996)
52+
#endif
4553
RCLCPP_SMART_PTR_DEFINITIONS_NOT_COPYABLE(MemoryStrategy)
46-
using WeakCallbackGroupsToNodesMap = std::map<rclcpp::CallbackGroup::WeakPtr,
47-
rclcpp::node_interfaces::NodeBaseInterface::WeakPtr,
48-
std::owner_less<rclcpp::CallbackGroup::WeakPtr>>;
54+
using WeakCallbackGroupsToNodesMap = std::map<
55+
rclcpp::CallbackGroup::WeakPtr, rclcpp::node_interfaces::NodeBaseInterface::WeakPtr,
56+
std::owner_less<rclcpp::CallbackGroup::WeakPtr>>;
4957

5058
virtual ~MemoryStrategy() = default;
5159

60+
[[deprecated("MemoryStrategy is deprecated.")]]
5261
virtual bool collect_entities(const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes) = 0;
5362

63+
[[deprecated("MemoryStrategy is deprecated.")]]
5464
virtual size_t number_of_ready_subscriptions() const = 0;
65+
[[deprecated("MemoryStrategy is deprecated.")]]
5566
virtual size_t number_of_ready_services() const = 0;
67+
[[deprecated("MemoryStrategy is deprecated.")]]
5668
virtual size_t number_of_ready_clients() const = 0;
69+
[[deprecated("MemoryStrategy is deprecated.")]]
5770
virtual size_t number_of_ready_events() const = 0;
71+
[[deprecated("MemoryStrategy is deprecated.")]]
5872
virtual size_t number_of_ready_timers() const = 0;
73+
[[deprecated("MemoryStrategy is deprecated.")]]
5974
virtual size_t number_of_guard_conditions() const = 0;
75+
[[deprecated("MemoryStrategy is deprecated.")]]
6076
virtual size_t number_of_waitables() const = 0;
6177

78+
[[deprecated("MemoryStrategy is deprecated.")]]
6279
virtual void add_waitable_handle(const rclcpp::Waitable::SharedPtr & waitable) = 0;
80+
[[deprecated("MemoryStrategy is deprecated.")]]
6381
virtual bool add_handles_to_wait_set(rcl_wait_set_t * wait_set) = 0;
82+
[[deprecated("MemoryStrategy is deprecated.")]]
6483
virtual void clear_handles() = 0;
84+
[[deprecated("MemoryStrategy is deprecated.")]]
6585
virtual void remove_null_handles(rcl_wait_set_t * wait_set) = 0;
6686

67-
virtual void
68-
add_guard_condition(const rclcpp::GuardCondition & guard_condition) = 0;
87+
[[deprecated("MemoryStrategy is deprecated.")]]
88+
virtual void add_guard_condition(const rclcpp::GuardCondition & guard_condition) = 0;
6989

70-
virtual void
71-
remove_guard_condition(const rclcpp::GuardCondition * guard_condition) = 0;
90+
[[deprecated("MemoryStrategy is deprecated.")]]
91+
virtual void remove_guard_condition(const rclcpp::GuardCondition * guard_condition) = 0;
7292

73-
virtual void
74-
get_next_subscription(
93+
[[deprecated("MemoryStrategy is deprecated.")]]
94+
virtual void get_next_subscription(
7595
rclcpp::AnyExecutable & any_exec,
7696
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes) = 0;
7797

78-
virtual void
79-
get_next_service(
98+
[[deprecated("MemoryStrategy is deprecated.")]]
99+
virtual void get_next_service(
80100
rclcpp::AnyExecutable & any_exec,
81101
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes) = 0;
82102

83-
virtual void
84-
get_next_client(
103+
[[deprecated("MemoryStrategy is deprecated.")]]
104+
virtual void get_next_client(
85105
rclcpp::AnyExecutable & any_exec,
86106
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes) = 0;
87107

88-
virtual void
89-
get_next_timer(
108+
[[deprecated("MemoryStrategy is deprecated.")]]
109+
virtual void get_next_timer(
90110
rclcpp::AnyExecutable & any_exec,
91111
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes) = 0;
92112

93-
virtual void
94-
get_next_waitable(
113+
[[deprecated("MemoryStrategy is deprecated.")]]
114+
virtual void get_next_waitable(
95115
rclcpp::AnyExecutable & any_exec,
96116
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes) = 0;
97117

98-
virtual rcl_allocator_t
99-
get_allocator() = 0;
118+
[[deprecated("MemoryStrategy is deprecated.")]]
119+
virtual rcl_allocator_t get_allocator() = 0;
100120

101-
static rclcpp::SubscriptionBase::SharedPtr
102-
get_subscription_by_handle(
121+
[[deprecated("MemoryStrategy is deprecated.")]]
122+
static rclcpp::SubscriptionBase::SharedPtr get_subscription_by_handle(
103123
const std::shared_ptr<const rcl_subscription_t> & subscriber_handle,
104124
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
105125

106-
static rclcpp::ServiceBase::SharedPtr
107-
get_service_by_handle(
126+
[[deprecated("MemoryStrategy is deprecated.")]]
127+
static rclcpp::ServiceBase::SharedPtr get_service_by_handle(
108128
const std::shared_ptr<const rcl_service_t> & service_handle,
109129
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
110130

111-
static rclcpp::ClientBase::SharedPtr
112-
get_client_by_handle(
131+
[[deprecated("MemoryStrategy is deprecated.")]]
132+
static rclcpp::ClientBase::SharedPtr get_client_by_handle(
113133
const std::shared_ptr<const rcl_client_t> & client_handle,
114134
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
115135

116-
static rclcpp::TimerBase::SharedPtr
117-
get_timer_by_handle(
136+
[[deprecated("MemoryStrategy is deprecated.")]]
137+
static rclcpp::TimerBase::SharedPtr get_timer_by_handle(
118138
const std::shared_ptr<const rcl_timer_t> & timer_handle,
119139
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
120140

121-
static rclcpp::node_interfaces::NodeBaseInterface::SharedPtr
122-
get_node_by_group(
141+
[[deprecated("MemoryStrategy is deprecated.")]]
142+
static rclcpp::node_interfaces::NodeBaseInterface::SharedPtr get_node_by_group(
123143
const rclcpp::CallbackGroup::SharedPtr & group,
124144
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
125145

126-
static rclcpp::CallbackGroup::SharedPtr
127-
get_group_by_subscription(
146+
[[deprecated("MemoryStrategy is deprecated.")]]
147+
static rclcpp::CallbackGroup::SharedPtr get_group_by_subscription(
128148
const rclcpp::SubscriptionBase::SharedPtr & subscription,
129149
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
130150

131-
static rclcpp::CallbackGroup::SharedPtr
132-
get_group_by_service(
151+
[[deprecated("MemoryStrategy is deprecated.")]]
152+
static rclcpp::CallbackGroup::SharedPtr get_group_by_service(
133153
const rclcpp::ServiceBase::SharedPtr & service,
134154
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
135155

136-
static rclcpp::CallbackGroup::SharedPtr
137-
get_group_by_client(
156+
[[deprecated("MemoryStrategy is deprecated.")]]
157+
static rclcpp::CallbackGroup::SharedPtr get_group_by_client(
138158
const rclcpp::ClientBase::SharedPtr & client,
139159
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
140160

141-
static rclcpp::CallbackGroup::SharedPtr
142-
get_group_by_timer(
161+
[[deprecated("MemoryStrategy is deprecated.")]]
162+
static rclcpp::CallbackGroup::SharedPtr get_group_by_timer(
143163
const rclcpp::TimerBase::SharedPtr & timer,
144164
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
145165

146-
static rclcpp::CallbackGroup::SharedPtr
147-
get_group_by_waitable(
166+
[[deprecated("MemoryStrategy is deprecated.")]]
167+
static rclcpp::CallbackGroup::SharedPtr get_group_by_waitable(
148168
const rclcpp::Waitable::SharedPtr & waitable,
149169
const WeakCallbackGroupsToNodesMap & weak_groups_to_nodes);
150170
};

0 commit comments

Comments
 (0)