Ros2ContextHandle#
Fully qualified name: isaacsim::ros2::bridge::Ros2ContextHandle
-
class Ros2ContextHandle#
Encapsulates a ROS 2 context for initialization and cleanup.
Base class that encapsulates a non-global state of a ROS 2 init/shutdown cycle (
rcl_context_t
) instance used in the creation of ROS 2 nodes and other entities. This class manages the lifecycle of a ROS 2 context, including initialization parameters like domain ID, and provides access to the underlying context pointer.Subclassed by isaacsim::ros2::bridge::Ros2ContextHandleImpl
Public Functions
-
virtual void *getContext() = 0#
Retrieves the pointer to the ROS 2 context.
Returns a pointer to the underlying ROS 2 context structure (
rcl_context_t
), which is needed when creating nodes and other ROS 2 entities.Warning
This method may return nullptr if the context is not properly initialized. Always check isValid() before using the returned pointer.
- Returns:
Pointer to the ROS 2 context structure.
- virtual void init(
- int argc,
- char const *const *argv,
- bool setDomainId = false,
- size_t domainId = 0,
Initializes the ROS 2 context.
Initializes the RCL (ROS Client Library) context with the provided command line arguments and domain ID settings. This prepares the context for use with nodes, publishers, subscribers, and other ROS 2 entities.
Note
If setDomainId is false, the domain ID will be determined by the ROS_DOMAIN_ID environment variable, or will default to 0 if not set.
- Parameters:
argc – [in] Number of strings in argv.
argv – [in] Command line arguments.
setDomainId – [in] Whether to set the ROS domain ID (if true, overrides ROS_DOMAIN_ID environment variable).
domainId – [in] ROS domain ID value to use if setDomainId is true.
-
virtual bool isValid() = 0#
Checks if the context is valid.
Verifies whether the object holds a valid and initialized ROS 2 context instance.
Note
This method should be called before attempting to use the context for any operations.
- Returns:
True if the context is valid and initialized, false otherwise.
-
virtual bool shutdown(const char *shutdownReason = nullptr) = 0#
Shuts down the ROS 2 context.
Performs an orderly shutdown of the ROS 2 context, cleaning up all resources associated with it. This should be called before destroying the context handle to ensure proper cleanup.
Note
If shutdownReason is nullptr, no reason will be provided in logs.
Warning
Failing to shut down a context properly may lead to resource leaks.
- Parameters:
shutdownReason – [in] Optional human-readable string describing the shutdown reason.
- Returns:
True if the shutdown was completed successfully, false otherwise.
-
virtual void *getContext() = 0#