changed default arguments for Node
changes how the default context is gotten and adds an option for enabling/disabling intra process comms
This commit is contained in:
parent
5568cc2326
commit
fb4e836da0
4 changed files with 26 additions and 10 deletions
|
@ -33,6 +33,13 @@ public:
|
|||
|
||||
};
|
||||
|
||||
DefaultContext::SharedPtr
|
||||
get_global_default_context()
|
||||
{
|
||||
static DefaultContext::SharedPtr default_context = DefaultContext::make_shared();
|
||||
return default_context;
|
||||
}
|
||||
|
||||
} // namespace default_context
|
||||
} // namespace contexts
|
||||
} // namespace rclcpp
|
||||
|
|
|
@ -103,9 +103,11 @@ public:
|
|||
RCLCPP_SMART_PTR_DEFINITIONS(Node);
|
||||
|
||||
/* Create a node based on the node name. */
|
||||
Node(const std::string & node_name);
|
||||
Node(const std::string & node_name, bool use_intra_process_comms = false);
|
||||
/* Create a node based on the node name and a rclcpp::context::Context. */
|
||||
Node(const std::string & node_name, rclcpp::context::Context::SharedPtr context);
|
||||
Node(
|
||||
const std::string & node_name, rclcpp::context::Context::SharedPtr context,
|
||||
bool use_intra_process_comms = false);
|
||||
|
||||
/* Get the name of the node. */
|
||||
const std::string &
|
||||
|
@ -214,6 +216,8 @@ private:
|
|||
size_t number_of_services_;
|
||||
size_t number_of_clients_;
|
||||
|
||||
bool use_intra_process_comms_;
|
||||
|
||||
mutable std::mutex mutex_;
|
||||
|
||||
std::map<std::string, rclcpp::parameter::ParameterVariant> parameters_;
|
||||
|
|
|
@ -39,15 +39,20 @@
|
|||
using namespace rclcpp;
|
||||
using namespace rclcpp::node;
|
||||
|
||||
using rclcpp::contexts::default_context::DefaultContext;
|
||||
|
||||
Node::Node(const std::string & node_name)
|
||||
: Node(node_name, DefaultContext::make_shared())
|
||||
Node::Node(const std::string & node_name, bool use_intra_process_comms)
|
||||
: Node(
|
||||
node_name,
|
||||
rclcpp::contexts::default_context::get_global_default_context(),
|
||||
use_intra_process_comms)
|
||||
{}
|
||||
|
||||
Node::Node(const std::string & node_name, context::Context::SharedPtr context)
|
||||
Node::Node(
|
||||
const std::string & node_name,
|
||||
context::Context::SharedPtr context,
|
||||
bool use_intra_process_comms)
|
||||
: name_(node_name), context_(context),
|
||||
number_of_subscriptions_(0), number_of_timers_(0), number_of_services_(0)
|
||||
number_of_subscriptions_(0), number_of_timers_(0), number_of_services_(0),
|
||||
use_intra_process_comms_(use_intra_process_comms)
|
||||
{
|
||||
size_t domain_id = 0;
|
||||
char * ros_domain_id = nullptr;
|
||||
|
@ -163,8 +168,7 @@ Node::create_subscription(
|
|||
if (!subscriber_handle) {
|
||||
// *INDENT-OFF* (prevent uncrustify from making unecessary indents here)
|
||||
throw std::runtime_error(
|
||||
std::string("could not create subscription: ") +
|
||||
rmw_get_error_string_safe());
|
||||
std::string("could not create subscription: ") + rmw_get_error_string_safe());
|
||||
// *INDENT-ON*
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <string.h>
|
||||
#include <thread>
|
||||
|
||||
#include <rmw/error_handling.h>
|
||||
#include <rmw/macros.h>
|
||||
#include <rmw/rmw.h>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue