YARP Transports¶
A subset of the network protocols used in YARP (called “carriers” there) is supported by RSB.
The YARP transports for RSB map the following URI schemas to YARP network protocols:
tcp+yarp
(See TCP+YARP Transport (without Nameservice operations))
Direct connections to the TCP endpoints of YARP ports.
yarp
(See YARP Transport (with Nameservice operations))
TCP+YARP Transport (without Nameservice operations)¶
Direct connections to the TCP endpoints of YARP ports. This low-level protocol requires knowing the TCP endpoint of a YARP port. Knowing the port name is not sufficient on this level.
The details of this protocol are documented here.
Note
This schema is supported in the C++ and Common Lisp implementations of RSB.
Options¶
The following configuration options are accepted:
Name Type Comment
+ transport
+-- tcp+yarp
+---- host string Hostname on which endpoint runs
+---- port uint16 Port on which endpoint listens
Implementations¶
Language | File(s) |
---|---|
C++ | “0.13” branch of https://code.cor-lab.org/git/rsb.git.yarp-cpp src/rsb/transport/yarp |
Java | not implemented yet |
Python | not implemented yet |
Common Lisp | “0.13” branch of https://code.cor-lab.org/git/rsb.git.yarp-cl src/transport/yarptcp |
YARP Transport (with Nameservice operations)¶
Connections to YARP ports are made via the YARP nameservice. In this case, the YARP nameservice is consulted to determine the (TCP) endpoint for a YARP port name. After that, a low-level connection is established, if the carrier of the port is supported.
For this schema, nameservice queries which yield multiple results or
change over time can lead to a changing set of connections. For
example, the URL yarp:/iCubSim/cam
could cause connections to be
established to YARP ports named /iCubSim/cam/left
,
/iCubSim/cam/left/fovea
, /iCubSim/cam/right
,
/iCubSim/cam/right/fovea
if these ports are registered in the
YARP nameservice.
Note
This schema is only supported in the Common Lisp implementation of RSB.
Options¶
The following configuration options are accepted:
Name Type Comment
+ transport
+-- yarp
+---- host string Hostname or address on which the YARP nameserver listens
+---- port uint16 Port on which the YARP nameserver listens
Implementations¶
Language | File(s) |
---|---|
C++ | not implemented yet |
Java | not implemented yet |
Python | not implemented yet |
Common Lisp | “0.13” branch of https://code.cor-lab.org/git/rsb.git.yarp-cl src/transport/yarp |
Limitations¶
The connectors provided by the YARP transports for RSB are not proper YARP ports:
- They do not accept incoming connections
- They do not support the port management protocol (except the part required for connecting to other ports)
- Only the
tcp
carrier is supported.udp
and special-purpose carriers are not supported.