# {py:mod}`ros_sugar.robot.shm` ```{py:module} ros_sugar.robot.shm ``` ```{autodoc2-docstring} ros_sugar.robot.shm :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ShmDescriptor ` - ```{autodoc2-docstring} ros_sugar.robot.shm.ShmDescriptor :summary: ``` * - {py:obj}`ShmRingWriter ` - ```{autodoc2-docstring} ros_sugar.robot.shm.ShmRingWriter :summary: ``` * - {py:obj}`ShmReaderCache ` - ```{autodoc2-docstring} ros_sugar.robot.shm.ShmReaderCache :summary: ``` * - {py:obj}`PluginShmManager ` - ```{autodoc2-docstring} ros_sugar.robot.shm.PluginShmManager :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`segment_name_base ` - ```{autodoc2-docstring} ros_sugar.robot.shm.segment_name_base :summary: ``` ```` ### API ````{py:function} segment_name_base(launcher_pid: int, plugin_id: str, feedback_key: str) -> str :canonical: ros_sugar.robot.shm.segment_name_base ```{autodoc2-docstring} ros_sugar.robot.shm.segment_name_base ``` ```` `````{py:class} ShmDescriptor :canonical: ros_sugar.robot.shm.ShmDescriptor ```{autodoc2-docstring} ros_sugar.robot.shm.ShmDescriptor ``` ````{py:method} pack() -> bytes :canonical: ros_sugar.robot.shm.ShmDescriptor.pack ```{autodoc2-docstring} ros_sugar.robot.shm.ShmDescriptor.pack ``` ```` ````` `````{py:class} ShmRingWriter(name_base: str, slot_count: int = DEFAULT_SLOT_COUNT, min_slot_size: int = DEFAULT_MIN_SLOT_SIZE) :canonical: ros_sugar.robot.shm.ShmRingWriter ```{autodoc2-docstring} ros_sugar.robot.shm.ShmRingWriter ``` ````{py:method} write(buffer) -> ros_sugar.robot.shm.ShmDescriptor :canonical: ros_sugar.robot.shm.ShmRingWriter.write ```{autodoc2-docstring} ros_sugar.robot.shm.ShmRingWriter.write ``` ```` ````{py:method} close() -> None :canonical: ros_sugar.robot.shm.ShmRingWriter.close ```{autodoc2-docstring} ros_sugar.robot.shm.ShmRingWriter.close ``` ```` ````` `````{py:class} ShmReaderCache(retries: int = _READ_RETRIES) :canonical: ros_sugar.robot.shm.ShmReaderCache ```{autodoc2-docstring} ros_sugar.robot.shm.ShmReaderCache ``` ````{py:method} read(desc: ros_sugar.robot.shm.ShmDescriptor) -> typing.Optional[bytes] :canonical: ros_sugar.robot.shm.ShmReaderCache.read ```{autodoc2-docstring} ros_sugar.robot.shm.ShmReaderCache.read ``` ```` ````{py:method} close() -> None :canonical: ros_sugar.robot.shm.ShmReaderCache.close ```{autodoc2-docstring} ros_sugar.robot.shm.ShmReaderCache.close ``` ```` ````` `````{py:class} PluginShmManager(launcher_pid: typing.Optional[int] = None, slot_count: int = DEFAULT_SLOT_COUNT, min_slot_size: int = DEFAULT_MIN_SLOT_SIZE) :canonical: ros_sugar.robot.shm.PluginShmManager ```{autodoc2-docstring} ros_sugar.robot.shm.PluginShmManager ``` ````{py:method} writer_for(plugin_id: str, feedback_key: str) -> ros_sugar.robot.shm.ShmRingWriter :canonical: ros_sugar.robot.shm.PluginShmManager.writer_for ```{autodoc2-docstring} ros_sugar.robot.shm.PluginShmManager.writer_for ``` ```` ````{py:method} close() -> None :canonical: ros_sugar.robot.shm.PluginShmManager.close ```{autodoc2-docstring} ros_sugar.robot.shm.PluginShmManager.close ``` ```` `````