YARP
Yet Another Robot Platform
SensorMeasurements.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6// Autogenerated by Thrift Compiler (0.14.1-yarped)
7//
8// This is an automatically generated file.
9// It could get re-generated if the ALLOW_IDL_GENERATION flag is on.
10
11#include <SensorMeasurements.h>
12
13// Constructor with field values
14SensorMeasurements::SensorMeasurements(const std::vector<SensorMeasurement>& measurements) :
15 WirePortable(),
16 measurements(measurements)
17{
18}
19
20// Read structure on a Wire
22{
23 if (!read_measurements(reader)) {
24 return false;
25 }
26 if (reader.isError()) {
27 return false;
28 }
29 return true;
30}
31
32// Read structure on a Connection
34{
35 yarp::os::idl::WireReader reader(connection);
36 if (!reader.readListHeader(1)) {
37 return false;
38 }
39 if (!read(reader)) {
40 return false;
41 }
42 return true;
43}
44
45// Write structure on a Wire
47{
48 if (!write_measurements(writer)) {
49 return false;
50 }
51 if (writer.isError()) {
52 return false;
53 }
54 return true;
55}
56
57// Write structure on a Connection
59{
60 yarp::os::idl::WireWriter writer(connection);
61 if (!writer.writeListHeader(1)) {
62 return false;
63 }
64 if (!write(writer)) {
65 return false;
66 }
67 return true;
68}
69
70// Convert to a printable string
72{
74 if (!yarp::os::Portable::copyPortable(*this, b)) {
75 return {};
76 }
77 return b.toString();
78}
79
80// read measurements field
81bool SensorMeasurements::read_measurements(yarp::os::idl::WireReader& reader)
82{
83 if (reader.noMore()) {
84 reader.fail();
85 return false;
86 }
87 size_t _csize;
89 reader.readListBegin(_etype, _csize);
90 // WireReader removes BOTTLE_TAG_LIST from the tag
91 constexpr int expected_tag = ((BOTTLE_TAG_LIST) & (~BOTTLE_TAG_LIST));
92 if constexpr (expected_tag != 0) {
93 if (_csize != 0 && _etype.code != expected_tag) {
94 return false;
95 }
96 }
97 measurements.resize(_csize);
98 for (size_t _i = 0; _i < _csize; ++_i) {
99 if (reader.noMore()) {
100 reader.fail();
101 return false;
102 }
103 if (!reader.readNested(measurements[_i])) {
104 reader.fail();
105 return false;
106 }
107 }
108 reader.readListEnd();
109 return true;
110}
111
112// write measurements field
113bool SensorMeasurements::write_measurements(const yarp::os::idl::WireWriter& writer) const
114{
115 if (!writer.writeListBegin(BOTTLE_TAG_LIST, measurements.size())) {
116 return false;
117 }
118 for (const auto& _item : measurements) {
119 if (!writer.writeNested(_item)) {
120 return false;
121 }
122 }
123 if (!writer.writeListEnd()) {
124 return false;
125 }
126 return true;
127}
128
129// read (nested) measurements field
130bool SensorMeasurements::nested_read_measurements(yarp::os::idl::WireReader& reader)
131{
132 if (reader.noMore()) {
133 reader.fail();
134 return false;
135 }
136 size_t _csize;
138 reader.readListBegin(_etype, _csize);
139 // WireReader removes BOTTLE_TAG_LIST from the tag
140 constexpr int expected_tag = ((BOTTLE_TAG_LIST) & (~BOTTLE_TAG_LIST));
141 if constexpr (expected_tag != 0) {
142 if (_csize != 0 && _etype.code != expected_tag) {
143 return false;
144 }
145 }
146 measurements.resize(_csize);
147 for (size_t _i = 0; _i < _csize; ++_i) {
148 if (reader.noMore()) {
149 reader.fail();
150 return false;
151 }
152 if (!reader.readNested(measurements[_i])) {
153 reader.fail();
154 return false;
155 }
156 }
157 reader.readListEnd();
158 return true;
159}
160
161// write (nested) measurements field
162bool SensorMeasurements::nested_write_measurements(const yarp::os::idl::WireWriter& writer) const
163{
164 if (!writer.writeListBegin(BOTTLE_TAG_LIST, measurements.size())) {
165 return false;
166 }
167 for (const auto& _item : measurements) {
168 if (!writer.writeNested(_item)) {
169 return false;
170 }
171 }
172 if (!writer.writeListEnd()) {
173 return false;
174 }
175 return true;
176}
#define BOTTLE_TAG_LIST
Definition: Bottle.h:28
std::vector< SensorMeasurement > measurements
SensorMeasurements()=default
std::string toString() const
bool write(const yarp::os::idl::WireWriter &writer) const override
bool read(yarp::os::idl::WireReader &reader) override
A simple collection of objects that can be described and transmitted in a portable way.
Definition: Bottle.h:64
std::string toString() const override
Gives a human-readable textual representation of the bottle.
Definition: Bottle.cpp:211
An interface for reading from a network connection.
An interface for writing to a network connection.
static bool copyPortable(const PortWriter &writer, PortReader &reader)
Copy one portable to another, via writing and reading.
Definition: Portable.cpp:16
IDL-friendly connection reader.
Definition: WireReader.h:27
bool readNested(WirePortable &obj)
Definition: WireReader.cpp:82
void readListBegin(yarp::os::idl::WireState &nstate, size_t &len)
Definition: WireReader.cpp:598
IDL-friendly state.
Definition: WireState.h:17
IDL-friendly connection writer.
Definition: WireWriter.h:28
bool writeListHeader(int len) const
Definition: WireWriter.cpp:231
bool writeNested(const WirePortable &obj) const
Definition: WireWriter.cpp:60
bool writeListBegin(int tag, size_t len) const
Definition: WireWriter.cpp:251