YARP
Yet Another Robot Platform
port_power/ex0302_buffered_ext_callback.cpp

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

/*
* Copyright (C) 2006-2020 Istituto Italiano di Tecnologia (IIT)
* Copyright (C) 2006-2010 RobotCub Consortium
* All rights reserved.
*
* This software may be modified and distributed under the terms of the
* BSD-3-Clause license. See the accompanying LICENSE file for details.
*/
#include <stdio.h>
#include <yarp/os/all.h>
using namespace yarp::os;
class DataProcessor : public TypedReaderCallback<Bottle> {
virtual void onRead(Bottle& b) {
// process data in b
printf("Got %s\n", b.toString().c_str());
}
};
DataProcessor processor;
int main() {
DataProcessor processor;
p.useCallback(processor); // input should go to processor.onRead()
p.open("/in"); // Give it a name on the network.
while (true) {
printf("main thread free to do whatever it wants\n");
}
return 0;
}
yarp::os::Bottle
A simple collection of objects that can be described and transmitted in a portable way.
Definition: Bottle.h:72
yarp::os::Bottle::toString
std::string toString() const override
Gives a human-readable textual representation of the bottle.
Definition: Bottle.cpp:214
all.h
main
int main(int argc, char *argv[])
Definition: yarpros.cpp:259
yarp::os::TypedReaderCallback
A callback for typed data from a port.
Definition: TypedReaderCallback.h:30
yarp::os::BufferedPort::useCallback
void useCallback(TypedReaderCallback< T > &callback) override
Set an object whose onRead method will be called when data is available.
Definition: BufferedPort-inl.h:211
yarp::os::BufferedPort
A mini-server for performing network communication in the background.
Definition: BufferedPort.h:63
yarp::os::BufferedPort::open
bool open(const std::string &name) override
Start port operation, with a specific name, with automatically-chosen network parameters.
Definition: BufferedPort-inl.h:41
yarp::os
Definition: AbstractCarrier.h:17
yarp::os::Network
Definition: Network.h:781
yarp
Definition: numeric.h:47
yarp::os::Time::delay
void delay(double seconds)
Wait for a certain number of seconds.
Definition: Time.cpp:114