Function rcl_service_set_on_new_request_callback
Defined in File service.h
Function Documentation
-
rcl_ret_t rcl_service_set_on_new_request_callback(const rcl_service_t *service, rcl_event_callback_t callback, const void *user_data)
Set the on new request callback function for the service.
This API sets the callback function to be called whenever the service is notified about a new request.
Since this callback is called from the middleware, you should aim to make it fast and not blocking. This callback is intended to implement an event driven executor and not process data directly.
See also
rmw_service_set_on_new_request_callback for details about this function.
Doing work in this callback can cause delays, deadlocks, or latency due to cross thread waiting as this process runs on middleware managed threads and is meant only to notify the executor that new data is available in the middleware queue.
[1] rmw implementation definedAttribute
Adherence
Allocates Memory
No
Thread-Safe
Yes
Uses Atomics
Maybe [1]
Lock-Free
Maybe [1]
- Parameters:
service – [in] The service on which to set the callback
callback – [in] The callback to be called when new requests arrive, may be NULL
user_data – [in] Given to the callback when called later, may be NULL
- Returns:
RCL_RET_OKif callback was set to the listener, or- Returns:
RCL_RET_INVALID_ARGUMENTifserviceis NULL, or- Returns:
RCL_RET_UNSUPPORTEDif the API is not supported by the middleware