nros C API
Lightweight ROS 2 client for embedded real-time systems
Loading...
Searching...
No Matches
include
rclc
executor.h
Go to the documentation of this file.
1
10
#ifndef NROS_EXECUTOR_H
11
#define NROS_EXECUTOR_H
12
13
/* Type and function definitions live in <rclc/detail/nros_generated.h>.
14
* This per-module header is kept as a thin shim so existing code that
15
* does `#include <rclc/executor.h>` continues to compile. */
16
#include "
rclc/types.h
"
17
#include "
rclc/detail/nros_generated.h
"
18
19
/*
20
* Issue 0338 — the entity-registration family is spelled `nros_executor_add_*`,
21
* matching rclc (`rclc_executor_add_subscription` / `_add_timer` /
22
* `_add_client` / ...). It used to be `nros_executor_register_*` for every kind
23
* EXCEPT `add_client`, which kept the rclc spelling — so the family was not even
24
* internally consistent and a C user could not guess the verb.
25
*
26
* These macros keep the old spelling compiling for one release. They are macros
27
* rather than exported symbols on purpose: no new ABI surface, and a
28
* recompile is all a consumer needs. Code compiled against the old SYMBOLS must
29
* be rebuilt.
30
*
31
* phase-417 stage 6 step B — the `nros_executor_add_timer` forwarder this
32
* macro used to route through is DELETED, so `rclc_executor_register_timer`
33
* now names `rclc_executor_add_timer` directly. It is the only member of the
34
* family whose target moved: every other `nros_executor_add_*` here is a live
35
* exported symbol, not a stage-6 rename. Note what the retirement costs this
36
* one macro — it used to warn on the way through, and now resolves silently
37
* until the 0338 aliases are themselves retired.
38
*
39
* phase-487 W1 — `nros_executor_register_subscription` is gone with its target:
40
* the three-argument `nros_executor_add_subscription` dispatched a callback the
41
* subscription struct stored, and that struct no longer stores one. Its
42
* replacement takes the callback, `rclc_executor_add_subscription_raw`, so the
43
* alias could not forward without changing arity. `_in_group` kept its alias
44
* and gained the same two arguments. phase-487 W2 retired
45
* `nros_executor_register_service` the same way: its target, the two-argument
46
* `nros_executor_add_service`, is gone, and `rclc_executor_add_service_raw`
47
* takes the callback.
48
*/
49
#ifndef NROS_NO_DEPRECATED_EXECUTOR_REGISTER_ALIASES
50
#define rclc_executor_register_subscription_raw_with_info \
51
rclc_executor_add_subscription_raw_with_info
52
#define rclc_executor_register_subscription_in_group rclc_executor_add_subscription_in_group
53
#define rclc_executor_register_timer rclc_executor_add_timer
54
#define rclc_executor_register_timer_in_group rclc_executor_add_timer_in_group
55
#define rclc_executor_register_action_server rclc_executor_attach_action_server
56
#define rclc_executor_register_action_client rclc_executor_attach_action_client
57
#define rclc_executor_register_time_triggered_dispatcher rclc_executor_add_time_triggered_dispatcher
58
#endif
/* NROS_NO_DEPRECATED_EXECUTOR_REGISTER_ALIASES */
59
60
#endif
/* NROS_EXECUTOR_H */
61
62
/* Every upstream-path header carries the whole C API, as `<rclc/rclc.h>` does
63
* (phase-492): a ported file that includes only `<rclc/executor.h>` still finds
64
* `RCLC_CHECK_RET`, `RCLC_LOG_*` and the rcl spellings. Outside the guard, so
65
* this header's own declarations are complete before the umbrella reads them. */
66
#include "
rclc/rclc.h
"
nros_generated.h
rclc.h
Umbrella header for the nano-ros C API, at upstream's path.
types.h
Shared types and constants for the nros C API.
Generated by
1.9.8