YARP
Yet Another Robot Platform
port_power/TargetVer3.h

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
*/
#ifndef TARGETVER3_INC
#define TARGETVER3_INC
class Target : public yarp::os::Portable {
public:
int x;
int y;
bool write(yarp::os::ConnectionWriter& connection) const override {
connection.appendInt32(2); // two elements
connection.appendInt32(x);
connection.appendInt32(y);
connection.convertTextMode(); // if connection is text-mode, convert!
return true;
}
bool read(yarp::os::ConnectionReader& connection) override {
connection.convertTextMode(); // if connection is text-mode, convert!
int tag = connection.expectInt32();
x = y = -1;
if (tag!=BOTTLE_TAG_LIST+BOTTLE_TAG_INT32) return false;
int ct = connection.expectInt32();
if (ct!=2) return false;
x = connection.expectInt32();
y = connection.expectInt32();
return true;
}
};
#endif
#define BOTTLE_TAG_INT32
Definition: Bottle.h:21
#define BOTTLE_TAG_LIST
Definition: Bottle.h:28
An interface for reading from a network connection.
virtual std::int32_t expectInt32()=0
Read a 32-bit integer from the network connection.
virtual bool convertTextMode()=0
Reads in a standard description in text mode, and converts it to a standard description in binary.
An interface for writing to a network connection.
virtual bool convertTextMode()=0
Converts a standard description in binary into a textual description, if the connection is in text-mo...
virtual void appendInt32(std::int32_t data)=0
Send a representation of a 32-bit integer to the network connection.
This is a base class for objects that can be both read from and be written to the YARP network.
Definition: Portable.h:25
bool read(ConnectionReader &reader) override=0
Read this object from a network connection.
bool write(ConnectionWriter &writer) const override=0
Write this object to a network connection.