Skip to content

Commit 425970e

Browse files
committed
Address review comments and remove change for time_source
Signed-off-by: Barry Xu <[email protected]>
1 parent f4199fe commit 425970e

File tree

17 files changed

+306
-254
lines changed

17 files changed

+306
-254
lines changed

rclcpp/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ set(${PROJECT_NAME}_SRCS
7373
src/rclcpp/message_info.cpp
7474
src/rclcpp/network_flow_endpoint.cpp
7575
src/rclcpp/node.cpp
76+
src/rclcpp/node_builtin_executor.cpp
7677
src/rclcpp/node_interfaces/node_base.cpp
77-
src/rclcpp/node_interfaces/node_builtin_executor.cpp
7878
src/rclcpp/node_interfaces/node_clock.cpp
7979
src/rclcpp/node_interfaces/node_graph.cpp
8080
src/rclcpp/node_interfaces/node_logging.cpp

rclcpp/include/rclcpp/node.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@
4747
#include "rclcpp/logger.hpp"
4848
#include "rclcpp/macros.hpp"
4949
#include "rclcpp/message_memory_strategy.hpp"
50+
#include "rclcpp/node_builtin_executor.hpp"
5051
#include "rclcpp/node_interfaces/node_base_interface.hpp"
51-
#include "rclcpp/node_interfaces/node_builtin_executor.hpp"
5252
#include "rclcpp/node_interfaces/node_clock_interface.hpp"
5353
#include "rclcpp/node_interfaces/node_graph_interface.hpp"
5454
#include "rclcpp/node_interfaces/node_logging_interface.hpp"
@@ -1588,7 +1588,8 @@ class Node : public std::enable_shared_from_this<Node>
15881588
rclcpp::node_interfaces::NodeParametersInterface::SharedPtr node_parameters_;
15891589
rclcpp::node_interfaces::NodeTimeSourceInterface::SharedPtr node_time_source_;
15901590
rclcpp::node_interfaces::NodeWaitablesInterface::SharedPtr node_waitables_;
1591-
rclcpp::node_interfaces::NodeBuiltinExecutor::SharedPtr node_builtin_executor_;
1591+
1592+
rclcpp::NodeBuiltinExecutor::SharedPtr node_builtin_executor_;
15921593

15931594
const rclcpp::NodeOptions node_options_;
15941595
const std::string sub_namespace_;

rclcpp/include/rclcpp/node_interfaces/node_builtin_executor.hpp renamed to rclcpp/include/rclcpp/node_builtin_executor.hpp

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#ifndef RCLCPP__NODE_INTERFACES__NODE_BUILTIN_EXECUTOR_HPP_
16-
#define RCLCPP__NODE_INTERFACES__NODE_BUILTIN_EXECUTOR_HPP_
15+
#ifndef RCLCPP__NODE_BUILTIN_EXECUTOR_HPP_
16+
#define RCLCPP__NODE_BUILTIN_EXECUTOR_HPP_
17+
18+
#include <memory>
1719

1820
#include "rclcpp/executor.hpp"
1921
#include "rclcpp/macros.hpp"
@@ -25,11 +27,11 @@
2527
#include "rclcpp/node_options.hpp"
2628
#include "rclcpp/visibility_control.hpp"
2729

30+
#include "rcl_interfaces/srv/get_logger_levels.hpp"
31+
#include "rcl_interfaces/srv/set_logger_levels.hpp"
32+
2833
namespace rclcpp
2934
{
30-
namespace node_interfaces
31-
{
32-
3335
class NodeBuiltinExecutor
3436
{
3537
public:
@@ -46,23 +48,12 @@ class NodeBuiltinExecutor
4648
RCLCPP_PUBLIC
4749
~NodeBuiltinExecutor();
4850

49-
RCLCPP_PUBLIC
50-
bool builtin_thread_joinable();
51-
5251
private:
5352
RCLCPP_DISABLE_COPY(NodeBuiltinExecutor)
54-
55-
node_interfaces::NodeBaseInterface::SharedPtr node_base_;
56-
node_interfaces::NodeTopicsInterface::SharedPtr node_topics_;
57-
node_interfaces::NodeServicesInterface::SharedPtr node_services_;
58-
node_interfaces::NodeLoggingInterface::SharedPtr node_logging_;
59-
60-
rclcpp::Executor::SharedPtr executor_;
61-
std::promise<void> executor_promise_;
62-
std::thread thread_;
53+
class NodeBuiltinExecutorImpl;
54+
std::shared_ptr<NodeBuiltinExecutorImpl> impl_;
6355
};
6456

65-
} // namespace node_interfaces
6657
} // namespace rclcpp
6758

68-
#endif // RCLCPP__NODE_INTERFACES__NODE_BUILTIN_EXECUTOR_HPP_
59+
#endif // RCLCPP__NODE_BUILTIN_EXECUTOR_HPP_

rclcpp/include/rclcpp/node_interfaces/node_base.hpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
#include "rcl/node.h"
2525
#include "rclcpp/callback_group.hpp"
2626
#include "rclcpp/context.hpp"
27-
#include "rclcpp/executors.hpp"
2827
#include "rclcpp/macros.hpp"
2928
#include "rclcpp/node_interfaces/node_base_interface.hpp"
3029
#include "rclcpp/visibility_control.hpp"
@@ -99,14 +98,6 @@ class NodeBase : public NodeBaseInterface, public std::enable_shared_from_this<N
9998
rclcpp::CallbackGroupType group_type,
10099
bool automatically_add_to_executor_with_node = true) override;
101100

102-
RCLCPP_PUBLIC
103-
rclcpp::CallbackGroup::SharedPtr
104-
get_builtin_performance_callback_group() override;
105-
106-
RCLCPP_PUBLIC
107-
rclcpp::CallbackGroup::SharedPtr
108-
get_builtin_callback_group() override;
109-
110101
RCLCPP_PUBLIC
111102
rclcpp::CallbackGroup::SharedPtr
112103
get_default_callback_group() override;
@@ -164,9 +155,6 @@ class NodeBase : public NodeBaseInterface, public std::enable_shared_from_this<N
164155
mutable std::recursive_mutex notify_guard_condition_mutex_;
165156
rclcpp::GuardCondition notify_guard_condition_;
166157
bool notify_guard_condition_is_valid_;
167-
168-
rclcpp::CallbackGroup::SharedPtr builtin_performance_callback_group_ = nullptr;
169-
rclcpp::CallbackGroup::SharedPtr builtin_callback_group_ = nullptr;
170158
};
171159

172160
} // namespace node_interfaces

rclcpp/include/rclcpp/node_interfaces/node_base_interface.hpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -112,22 +112,6 @@ class NodeBaseInterface
112112
rclcpp::CallbackGroupType group_type,
113113
bool automatically_add_to_executor_with_node = true) = 0;
114114

115-
/// Return a callback group for the time-sensitive tasks such as clock.
116-
/**
117-
* This callback group is executed in internal executor.
118-
* Normal tasks use get_builtin_callback_group().
119-
*/
120-
RCLCPP_PUBLIC
121-
virtual
122-
rclcpp::CallbackGroup::SharedPtr
123-
get_builtin_performance_callback_group() = 0;
124-
125-
/// Return a callback group which is executed in internal executor.
126-
RCLCPP_PUBLIC
127-
virtual
128-
rclcpp::CallbackGroup::SharedPtr
129-
get_builtin_callback_group() = 0;
130-
131115
/// Return the default callback group.
132116
RCLCPP_PUBLIC
133117
virtual

rclcpp/include/rclcpp/node_interfaces/node_logging.hpp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,9 @@
1919

2020
#include "rclcpp/logger.hpp"
2121
#include "rclcpp/macros.hpp"
22-
#include "rclcpp/node.hpp"
2322
#include "rclcpp/node_interfaces/node_base_interface.hpp"
2423
#include "rclcpp/node_interfaces/node_logging_interface.hpp"
25-
#include "rclcpp/node_interfaces/node_services_interface.hpp"
2624
#include "rclcpp/visibility_control.hpp"
27-
#include "rcl_interfaces/srv/get_logger_levels.hpp"
28-
#include "rcl_interfaces/srv/set_logger_levels.hpp"
2925

3026
namespace rclcpp
3127
{
@@ -53,22 +49,13 @@ class NodeLogging : public NodeLoggingInterface
5349
const char *
5450
get_logger_name() const override;
5551

56-
RCLCPP_LOCAL
57-
void
58-
add_logger_service(
59-
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_base,
60-
rclcpp::node_interfaces::NodeServicesInterface::SharedPtr node_services);
61-
6252
private:
6353
RCLCPP_DISABLE_COPY(NodeLogging)
6454

6555
/// Handle to the NodeBaseInterface given in the constructor.
6656
rclcpp::node_interfaces::NodeBaseInterface * node_base_;
6757

6858
rclcpp::Logger logger_;
69-
70-
rclcpp::Service<rcl_interfaces::srv::GetLoggerLevels>::SharedPtr get_loggers_service_;
71-
rclcpp::Service<rcl_interfaces::srv::SetLoggerLevels>::SharedPtr set_loggers_service_;
7259
};
7360

7461
} // namespace node_interfaces

rclcpp/include/rclcpp/node_interfaces/node_logging_interface.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#include "rclcpp/logger.hpp"
2121
#include "rclcpp/macros.hpp"
2222
#include "rclcpp/node_interfaces/detail/node_interfaces_helpers.hpp"
23-
#include "rclcpp/node_options.hpp"
2423
#include "rclcpp/visibility_control.hpp"
2524

2625
namespace rclcpp

rclcpp/include/rclcpp/time_source.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
#include "rcl_interfaces/msg/parameter_event.hpp"
2626

2727
#include "rclcpp/node.hpp"
28-
#include "rclcpp/node_interfaces/node_base.hpp"
28+
#include "rclcpp/executors.hpp"
2929
#include "rclcpp/node_interfaces/node_parameters_interface.hpp"
3030

3131

@@ -138,6 +138,10 @@ class TimeSource
138138
RCLCPP_PUBLIC
139139
void set_use_clock_thread(bool use_clock_thread);
140140

141+
/// Check if the clock thread is joinable
142+
RCLCPP_PUBLIC
143+
bool clock_thread_is_joinable();
144+
141145
/// TimeSource Destructor
142146
RCLCPP_PUBLIC
143147
~TimeSource();

rclcpp/src/rclcpp/node.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
#include "rclcpp/exceptions.hpp"
2828
#include "rclcpp/graph_listener.hpp"
2929
#include "rclcpp/node.hpp"
30+
#include "rclcpp/node_builtin_executor.hpp"
3031
#include "rclcpp/node_interfaces/node_base.hpp"
31-
#include "rclcpp/node_interfaces/node_builtin_executor.hpp"
3232
#include "rclcpp/node_interfaces/node_clock.hpp"
3333
#include "rclcpp/node_interfaces/node_graph.hpp"
3434
#include "rclcpp/node_interfaces/node_logging.hpp"
@@ -208,6 +208,13 @@ Node::Node(
208208
options.use_clock_thread()
209209
)),
210210
node_waitables_(new rclcpp::node_interfaces::NodeWaitables(node_base_.get())),
211+
node_builtin_executor_(new rclcpp::NodeBuiltinExecutor(
212+
node_base_,
213+
node_topics_,
214+
node_services_,
215+
node_logging_,
216+
options
217+
)),
211218
node_options_(options),
212219
sub_namespace_(""),
213220
effective_namespace_(create_effective_namespace(this->get_namespace(), sub_namespace_))
@@ -226,9 +233,6 @@ Node::Node(
226233
node_topics_->resolve_topic_name("/parameter_events"),
227234
options.parameter_event_qos(),
228235
rclcpp::detail::PublisherQosParametersTraits{});
229-
230-
node_builtin_executor_ = std::make_shared<rclcpp::node_interfaces::NodeBuiltinExecutor>(
231-
node_base_, node_topics_, node_services_, node_logging_, options);
232236
}
233237

234238
Node::Node(

0 commit comments

Comments
 (0)