Yet Another Robot Platform
No Matches

Part of a series of examples on the different ways of using ports.

Part of a series of examples on the different ways of using ports. See Port power tutorial.

* SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
* SPDX-FileCopyrightText: 2006-2010 RobotCub Consortium
* SPDX-License-Identifier: BSD-3-Clause
#include <stdio.h>
#include <yarp/os/all.h>
using namespace yarp::os;
class DataProcessor : public PortReader {
virtual bool read(ConnectionReader& connection) {
Bottle b;
// process data in b
printf("Got %s\n", b.toString().c_str());
return true;
DataProcessor processor;
int main() {
Port p; // Create a port.
p.open("/in"); // Give it a name on the network.
p.setReader(processor); // no need to call p.read() on port any more.
while (true) {
printf("main thread free to do whatever it wants\n");
return 0;
A simple collection of objects that can be described and transmitted in a portable way.
Definition Bottle.h:64
bool read(ConnectionReader &reader) override
Set the bottle's value based on input from a network connection.
Definition Bottle.cpp:240
std::string toString() const override
Gives a human-readable textual representation of the bottle.
Definition Bottle.cpp:211
A mini-server for performing network communication in the background.
void setReader(PortReader &reader) override
Set an external reader for port data.
bool open(const std::string &name) override
Start port operation, with a specific name, with automatically-chosen network parameters.
An interface for reading from a network connection.
Utilities for manipulating the YARP network, including initialization and shutdown.
Definition Network.h:706
Interface implemented by all objects that can read themselves from the network, such as Bottle object...
Definition PortReader.h:24
A mini-server for network communication.
Definition Port.h:46
An interface to the operating system, including Port based communication.
The main, catch-all namespace for YARP.
Definition dirs.h:16