# {py:mod}`ros_sugar.io.ipc` ```{py:module} ros_sugar.io.ipc ``` ```{autodoc2-docstring} ros_sugar.io.ipc :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ExternalProcessorServer ` - ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorServer :summary: ``` * - {py:obj}`ExternalProcessorClient ` - ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorClient :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`abstract_addr ` - ```{autodoc2-docstring} ros_sugar.io.ipc.abstract_addr :summary: ``` * - {py:obj}`accept_from_own_user ` - ```{autodoc2-docstring} ros_sugar.io.ipc.accept_from_own_user :summary: ``` * - {py:obj}`recv_exact ` - ```{autodoc2-docstring} ros_sugar.io.ipc.recv_exact :summary: ``` * - {py:obj}`read_frame ` - ```{autodoc2-docstring} ros_sugar.io.ipc.read_frame :summary: ``` * - {py:obj}`processor_id ` - ```{autodoc2-docstring} ros_sugar.io.ipc.processor_id :summary: ``` ```` ### API ````{py:function} abstract_addr(name: str) -> str :canonical: ros_sugar.io.ipc.abstract_addr ```{autodoc2-docstring} ros_sugar.io.ipc.abstract_addr ``` ```` ````{py:function} accept_from_own_user(server_sock: socket.socket) -> typing.Optional[socket.socket] :canonical: ros_sugar.io.ipc.accept_from_own_user ```{autodoc2-docstring} ros_sugar.io.ipc.accept_from_own_user ``` ```` ````{py:function} recv_exact(sock: socket.socket, n: int, allow_idle_timeout: bool = False) :canonical: ros_sugar.io.ipc.recv_exact ```{autodoc2-docstring} ros_sugar.io.ipc.recv_exact ``` ```` ````{py:function} read_frame(sock: socket.socket) :canonical: ros_sugar.io.ipc.read_frame ```{autodoc2-docstring} ros_sugar.io.ipc.read_frame ``` ```` `````{py:exception} ExternalProcessorError() :canonical: ros_sugar.io.ipc.ExternalProcessorError Bases: {py:obj}`Exception` ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorError ``` ````{py:method} add_note() :canonical: ros_sugar.io.ipc.ExternalProcessorError.add_note ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorError.add_note ``` ```` ````{py:method} with_traceback() :canonical: ros_sugar.io.ipc.ExternalProcessorError.with_traceback ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorError.with_traceback ``` ```` ````` ````{py:function} processor_id(node_name: str, key: str, index: int) -> str :canonical: ros_sugar.io.ipc.processor_id ```{autodoc2-docstring} ros_sugar.io.ipc.processor_id ``` ```` `````{py:class} ExternalProcessorServer() :canonical: ros_sugar.io.ipc.ExternalProcessorServer ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorServer ``` ````{py:property} endpoint :canonical: ros_sugar.io.ipc.ExternalProcessorServer.endpoint :type: typing.Optional[str] ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorServer.endpoint ``` ```` ````{py:method} register(proc_id: str, func: typing.Callable) -> None :canonical: ros_sugar.io.ipc.ExternalProcessorServer.register ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorServer.register ``` ```` ````{py:method} start() -> None :canonical: ros_sugar.io.ipc.ExternalProcessorServer.start ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorServer.start ``` ```` ````{py:method} close() -> None :canonical: ros_sugar.io.ipc.ExternalProcessorServer.close ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorServer.close ``` ```` ````` `````{py:class} ExternalProcessorClient(endpoint: str, proc_id: str, timeout: float) :canonical: ros_sugar.io.ipc.ExternalProcessorClient ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorClient ``` ````{py:method} connect() -> None :canonical: ros_sugar.io.ipc.ExternalProcessorClient.connect ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorClient.connect ``` ```` ````{py:method} call(kwargs: typing.Dict, timeout: typing.Optional[float] = None) -> typing.Any :canonical: ros_sugar.io.ipc.ExternalProcessorClient.call ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorClient.call ``` ```` ````{py:method} close() -> None :canonical: ros_sugar.io.ipc.ExternalProcessorClient.close ```{autodoc2-docstring} ros_sugar.io.ipc.ExternalProcessorClient.close ``` ```` `````