* Make sure to delete service_handle when in the Service() destructor.
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
* Make sure to delete the allocated rcl_node on error paths.
This all happens *before* we setup the shared_ptr destructor,
so we have to hand delete in the error paths.
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
* Move delete rcl_node up.
It turns out that we are always going to throw in that block,
and we never access rcl_node, so just delete it very early
on.
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
* time operators
* explicitely cast to uint64_t and prevent overflow
* check for negative seconds .. again
* split into hpp/cpp
* export symbols
* change test macro
* fix unsigned comparison
* address comments
* test for specific exception
* Fix typo
There are currently no paths that lead to it, and it has
a bug anyway; if a large enough value is passed into sec,
then we will overflow sec on the multiply. Just remove it
since we can't reach the code anyway.
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
* expand topic name before invoking count pub/sub
* convenience function for get_namespace()
* uncrustify
* typo
* add get_namespace() test
* add get_namespace() for lifecycle
* add expand_topic_or_service_name()
* use namespace in intra process
(actual change to topic names in next commit)
* catch and report name issues
for node names, namespaces, and topic/service names
* address comment
* comply with unused warnings
* fix flakiness and add test for transitions
* mark flaky test
* duplicate const char * in State constructor
* linters
* correct year in license
* mark flaky test
* initial commit for rclcpp::time::now()
* switch between times
* introduce time class
* add rclcpp/time.hpp to rclcpp/rclcpp.hpp
* throw exceptions on time error
* fix test_time to catch exceptions
* explicit one-parameter constructor
* fix msvc compiler warnings
* address review comments
* cleanup includes
* re-add todo for fixing test once ros-time is there
* add a new Node::get_parameter() with a default value
* update function parameter name (signature)
* update function parameter name (definition)
* rename new function to get_parameter_or
* rename arg "parameter" to "value" and fix get_parameter
* add set_parameter_if_not_set
* add some comments to clarify logic in set_parameters_atomically
* uncrustify
* address comments
* add some docs for get_parameter*
* add /W4 flag for windows
* use uint8 like defined in messages: fix warning C4244
* fix sign size_t comparison
* add only pedantic, not W4, deal with windows another day
* another sign compare warning