YARP  2.3.68+272-20170522.1+git50f0ae7
Yet Another Robot Platform
port_power/ex0402_port_callback_reply.cpp

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

/*
* Copyright: (C) 2010 RobotCub Consortium
* Author: Paul Fitzpatrick
* CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT
*/
#include <stdio.h>
#include <yarp/os/all.h>
using namespace yarp::os;
class DataProcessor : public PortReader {
virtual bool read(ConnectionReader& connection) {
Bottle in, out;
in.read(connection);
// process data "in", prepare "out"
printf("Got %s\n", in.toString().c_str());
out.clear();
out.add("acknowledge");
out.append(in);
ConnectionWriter *returnToSender = connection.getWriter();
if (returnToSender!=NULL) {
out.write(*returnToSender);
}
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;
}