* 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
* 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*
* basic doxygen configuration
* fix up documentation
* change default value of PROJECT_NUMBER
* more generalization
* fixup
* fixup
* avoid displaying RCLCPP_PUBLIC on all functions
* main page
* isolate chrono literals in literals.hpp
* rclcpp.hpp: remove 'using namespace rclcpp::literals'
The examples have been migrated to the new namespace.
* literals: constexpr, make return types consistent with function body
_ms returned nanoseconds instead of milliseconds.
A few return types where using integral return type
for floating point literals.
* remove literals in favor of std::chrono_literals
* add the NodeBaseInterface and impl NodeBase
* refactor rclcpp to use NodeBaseInterface
* triggering a guard condition is not const
* remove unnecessary pure virtual destructor
* remove unused private member, style
* create NodeTopics interface, refactor pub/sub
* add convenience functions to fix API breaks
* fix compilation errors from NodeTopics refactor
* move "Event" based exceptions to exceptions.hpp
* add the NodeGraphInterface and related API's
* update node and graph_listener to use NodeGraph API
* initialize node_topics_ and node_graph_ in Node
* remove methods from Node and reorganize the order
the removed methods are really low level and still
available via their respective Node*Interface class
* add the NodeServices API and implementation
* add the NodeParameters API and refactor Node
* mixups
* fixup NodeParameters constructor
* added NodeTimers API and refactor Node
* make new create_publisher and create_subscription free template functions
* fixup
* fixup
* fixup
* fixup share pointer to node in any_executable
* free env value before throwing on Windows
* uncrustify and cpplint
* address constness issues
* do not store the topic name as a std::string in subscription
* fixes to support const char * topic name
* fix incomplete type specification, which fails on Windows
* refactor after rebase from type support changes
* fixup Windows build
* fix template issues on Windows
* uncrustify
* remove the unnecessary callback group argument from the add_publisher func
* remove unnecessary using = directive
* do not store node name in C++
* fix client and service creation in Node constructor
* fix include orders
* (dev) construct service from existing rcl_service_t
* (refactor) extract method for adding a service to a node
* (fix) stop mock msgs from being installed
* service takes rcl_node_t*
* correct typo
* add_service has to be public
* uncrustify
* correctly initialize service_handle
* (fix) address review comments
* (fix) pass shared pointer by value
* (fix) return to shared node handle pointer
* (fix) make find_package(rmw) required
* style
* (revert) leave c++11 flags within CXX flags
* (fix) unused variable warning
* (fix) remove unnecessary if in cmake
* (dev) template create_publisher with publisher type
* (dev) template publisher type for dynamic publisher type instantiation
* (dev) make Publisher::publish function virtual
* (fix) uncrustify
* different indentation of long template declaration
* added function to get parameter by exact name
* added ros1 style get_parameter for parameter variant
* added ros1 style get_param for non-variant types
* Make the get_parameter functions call a private base function
* Parameter Variant requires name in constructor
* Cleaned up to no longer need private function
* Made exception message more clear
* add wait_for_service() and service_is_ready() to Client
* fix compile on Linux (maybe Windows)
* use visibility macros for Windows
* prevent unreasonable uncrustify change
* fixup comment
* add GraphListener::is_shutdown()
* disable copy on GraphListener
* use weak_ptr<Node> in client, throw if invalid
* ensure blocking wait_for_service wakes on rclcpp::shutdown/sigint
* rethrow exceptions after reporting them in thread
* lock ~Node() against notify_graph_change()
this essentially protects the notify_guard_condition_
* adjust thread sync strategy
* style
* moving initialization of wait set around, fix double free
* only fini wait set if started
* use rclcpp::shutdown to ensure graph listener resources clean up before static destruction
* uncrustify