YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
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
12
13namespace yarp::dev {
14
15// Constructor with field values
16SensorMeasurements::SensorMeasurements(const std::vector<SensorMeasurement>& measurements) :
17 WirePortable(),
18 measurements(measurements)
19{
20}
21
22// Read structure on a Wire
24{
25 if (!read_measurements(reader)) {
26 return false;
27 }
28 if (reader.isError()) {
29 return false;
30 }
31 return true;
32}
33
34// Read structure on a Connection
36{
37 yarp::os::idl::WireReader reader(connection);
38 if (!reader.readListHeader(1)) {
39 return false;
40 }
41 if (!read(reader)) {
42 return false;
43 }
44 return true;
45}
46
47// Write structure on a Wire
49{
50 if (!write_measurements(writer)) {
51 return false;
52 }
53 if (writer.isError()) {
54 return false;
55 }
56 return true;
57}
58
59// Write structure on a Connection
61{
62 yarp::os::idl::WireWriter writer(connection);
63 if (!writer.writeListHeader(1)) {
64 return false;
65 }
66 if (!write(writer)) {
67 return false;
68 }
69 return true;
70}
71
72// Convert to a printable string
74{
76 if (!yarp::os::Portable::copyPortable(*this, b)) {
77 return {};
78 }
79 return b.toString();
80}
81
82// read measurements field
83bool SensorMeasurements::read_measurements(yarp::os::idl::WireReader& reader)
84{
85 if (reader.noMore()) {
86 reader.fail();
87 return false;
88 }
89 size_t _csize;
91 reader.readListBegin(_etype, _csize);
92 // WireReader removes BOTTLE_TAG_LIST from the tag
93 constexpr int expected_tag = ((BOTTLE_TAG_LIST) & (~BOTTLE_TAG_LIST));
94 if constexpr (expected_tag != 0) {
95 if (_csize != 0 && _etype.code != expected_tag) {
96 return false;
97 }
98 }
99 measurements.resize(_csize);
100 for (size_t _i = 0; _i < _csize; ++_i) {
101 if (reader.noMore()) {
102 reader.fail();
103 return false;
104 }
105 if (!reader.readNested(measurements[_i])) {
106 reader.fail();
107 return false;
108 }
109 }
110 reader.readListEnd();
111 return true;
112}
113
114// write measurements field
115bool SensorMeasurements::write_measurements(const yarp::os::idl::WireWriter& writer) const
116{
117 if (!writer.writeListBegin(BOTTLE_TAG_LIST, measurements.size())) {
118 return false;
119 }
120 for (const auto& _item : measurements) {
121 if (!writer.writeNested(_item)) {
122 return false;
123 }
124 }
125 if (!writer.writeListEnd()) {
126 return false;
127 }
128 return true;
129}
130
131// read (nested) measurements field
132bool SensorMeasurements::nested_read_measurements(yarp::os::idl::WireReader& reader)
133{
134 if (reader.noMore()) {
135 reader.fail();
136 return false;
137 }
138 size_t _csize;
140 reader.readListBegin(_etype, _csize);
141 // WireReader removes BOTTLE_TAG_LIST from the tag
142 constexpr int expected_tag = ((BOTTLE_TAG_LIST) & (~BOTTLE_TAG_LIST));
143 if constexpr (expected_tag != 0) {
144 if (_csize != 0 && _etype.code != expected_tag) {
145 return false;
146 }
147 }
148 measurements.resize(_csize);
149 for (size_t _i = 0; _i < _csize; ++_i) {
150 if (reader.noMore()) {
151 reader.fail();
152 return false;
153 }
154 if (!reader.readNested(measurements[_i])) {
155 reader.fail();
156 return false;
157 }
158 }
159 reader.readListEnd();
160 return true;
161}
162
163// write (nested) measurements field
164bool SensorMeasurements::nested_write_measurements(const yarp::os::idl::WireWriter& writer) const
165{
166 if (!writer.writeListBegin(BOTTLE_TAG_LIST, measurements.size())) {
167 return false;
168 }
169 for (const auto& _item : measurements) {
170 if (!writer.writeNested(_item)) {
171 return false;
172 }
173 }
174 if (!writer.writeListEnd()) {
175 return false;
176 }
177 return true;
178}
179
180} // namespace yarp::dev
#define BOTTLE_TAG_LIST
Definition Bottle.h:28
std::vector< SensorMeasurement > measurements
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)
void readListBegin(yarp::os::idl::WireState &nstate, size_t &len)
IDL-friendly state.
Definition WireState.h:17
IDL-friendly connection writer.
Definition WireWriter.h:28
bool writeListHeader(int len) const
bool writeNested(const WirePortable &obj) const
bool writeListBegin(int tag, size_t len) const
For streams capable of holding different kinds of content, check what they actually have.