Inprocess Transport¶
This page describes the inprocess transport which delivers events published by informers in a process to participants in the same process (i.e. inter-process or network communication does not occur).
Options¶
See also
- Configuration
- Specification of configuration mechanism.
The following configuration options are accepted by the inprocess transport:
Name Type Comment
+ transport
+-- inprocess No options
Notification Format¶
Since events are transported within a single process, there is no need for serializing them into notifications and hence no need to apply converters as well. Instead, event objects published by informers are just passed to the appropriate receiving participants after necessary meta-data has been added.
Important
This implementation implies that client code is forbidden to modify sent (after sending) and received events.
Hierarchical Bus¶
Distribution of events can be implemented as follows
- An associative array maps scopes to receiving participants, listening on the respective scope
- An event is delivered to the list of participants obtained by concatenating the participant lists of all superscopes of the event‘s scope.
Example for scope /foo/bar/
:
super-scopes(/foo/bar/, include-self? = yes) = /, /foo/, /foo/bar/
Implementations¶
Language | File(s) |
---|---|
C++ | “0.14” branch of https://code.cor-lab.org/git/rsb.git.cpp at src/rsb/transport/inprocess |
Java | “0.14” branch of https://code.cor-lab.org/git/rsb.git.java at src/rsb/transport/inprocess |
Python | /../rsb-python/rsb/transport/local/__init__.py |
Common Lisp | “0.14” branch of https://code.cor-lab.org/git/rsb.git.cl at src/transport/inprocess |