YARP
Yet Another Robot Platform
SensorMetadata.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 <SensorMetadata.h>
12 
13 // Default constructor
15  WirePortable(),
16  name(""),
17  frameName(""),
18  additionalMetadata("")
19 {
20 }
21 
22 // Constructor with field values
23 SensorMetadata::SensorMetadata(const std::string& name,
24  const std::string& frameName,
25  const std::string& additionalMetadata) :
26  WirePortable(),
27  name(name),
28  frameName(frameName),
29  additionalMetadata(additionalMetadata)
30 {
31 }
32 
33 // Read structure on a Wire
35 {
36  if (!read_name(reader)) {
37  return false;
38  }
39  if (!read_frameName(reader)) {
40  return false;
41  }
42  if (!read_additionalMetadata(reader)) {
43  return false;
44  }
45  return !reader.isError();
46 }
47 
48 // Read structure on a Connection
50 {
51  yarp::os::idl::WireReader reader(connection);
52  if (!reader.readListHeader(3)) {
53  return false;
54  }
55  return read(reader);
56 }
57 
58 // Write structure on a Wire
60 {
61  if (!write_name(writer)) {
62  return false;
63  }
64  if (!write_frameName(writer)) {
65  return false;
66  }
67  if (!write_additionalMetadata(writer)) {
68  return false;
69  }
70  return !writer.isError();
71 }
72 
73 // Write structure on a Connection
75 {
76  yarp::os::idl::WireWriter writer(connection);
77  if (!writer.writeListHeader(3)) {
78  return false;
79  }
80  return write(writer);
81 }
82 
83 // Convert to a printable string
84 std::string SensorMetadata::toString() const
85 {
87  b.read(*this);
88  return b.toString();
89 }
90 
91 // Editor: default constructor
93 {
94  group = 0;
95  obj_owned = true;
96  obj = new SensorMetadata;
97  dirty_flags(false);
98  yarp().setOwner(*this);
99 }
100 
101 // Editor: constructor with base class
103 {
104  group = 0;
105  obj_owned = false;
106  edit(obj, false);
107  yarp().setOwner(*this);
108 }
109 
110 // Editor: destructor
112 {
113  if (obj_owned) {
114  delete obj;
115  }
116 }
117 
118 // Editor: edit
120 {
121  if (obj_owned) {
122  delete this->obj;
123  }
124  this->obj = &obj;
125  obj_owned = false;
126  dirty_flags(dirty);
127  return true;
128 }
129 
130 // Editor: validity check
132 {
133  return obj != nullptr;
134 }
135 
136 // Editor: state
138 {
139  return *obj;
140 }
141 
142 // Editor: grouping begin
144 {
145  group++;
146 }
147 
148 // Editor: grouping end
150 {
151  group--;
152  if (group == 0 && is_dirty) {
153  communicate();
154  }
155 }
156 // Editor: name setter
157 void SensorMetadata::Editor::set_name(const std::string& name)
158 {
159  will_set_name();
160  obj->name = name;
161  mark_dirty_name();
162  communicate();
163  did_set_name();
164 }
165 
166 // Editor: name getter
167 const std::string& SensorMetadata::Editor::get_name() const
168 {
169  return obj->name;
170 }
171 
172 // Editor: name will_set
174 {
175  return true;
176 }
177 
178 // Editor: name did_set
180 {
181  return true;
182 }
183 
184 // Editor: frameName setter
186 {
187  will_set_frameName();
188  obj->frameName = frameName;
189  mark_dirty_frameName();
190  communicate();
191  did_set_frameName();
192 }
193 
194 // Editor: frameName getter
195 const std::string& SensorMetadata::Editor::get_frameName() const
196 {
197  return obj->frameName;
198 }
199 
200 // Editor: frameName will_set
202 {
203  return true;
204 }
205 
206 // Editor: frameName did_set
208 {
209  return true;
210 }
211 
212 // Editor: additionalMetadata setter
214 {
215  will_set_additionalMetadata();
216  obj->additionalMetadata = additionalMetadata;
217  mark_dirty_additionalMetadata();
218  communicate();
219  did_set_additionalMetadata();
220 }
221 
222 // Editor: additionalMetadata getter
224 {
225  return obj->additionalMetadata;
226 }
227 
228 // Editor: additionalMetadata will_set
230 {
231  return true;
232 }
233 
234 // Editor: additionalMetadata did_set
236 {
237  return true;
238 }
239 
240 // Editor: clean
242 {
243  dirty_flags(false);
244 }
245 
246 // Editor: read
248 {
249  if (!isValid()) {
250  return false;
251  }
252  yarp::os::idl::WireReader reader(connection);
253  reader.expectAccept();
254  if (!reader.readListHeader()) {
255  return false;
256  }
257  int len = reader.getLength();
258  if (len == 0) {
259  yarp::os::idl::WireWriter writer(reader);
260  if (writer.isNull()) {
261  return true;
262  }
263  if (!writer.writeListHeader(1)) {
264  return false;
265  }
266  writer.writeString("send: 'help' or 'patch (param1 val1) (param2 val2)'");
267  return true;
268  }
269  std::string tag;
270  if (!reader.readString(tag)) {
271  return false;
272  }
273  if (tag == "help") {
274  yarp::os::idl::WireWriter writer(reader);
275  if (writer.isNull()) {
276  return true;
277  }
278  if (!writer.writeListHeader(2)) {
279  return false;
280  }
281  if (!writer.writeTag("many", 1, 0)) {
282  return false;
283  }
284  if (reader.getLength() > 0) {
285  std::string field;
286  if (!reader.readString(field)) {
287  return false;
288  }
289  if (field == "name") {
290  if (!writer.writeListHeader(1)) {
291  return false;
292  }
293  if (!writer.writeString("std::string name")) {
294  return false;
295  }
296  }
297  if (field == "frameName") {
298  if (!writer.writeListHeader(1)) {
299  return false;
300  }
301  if (!writer.writeString("std::string frameName")) {
302  return false;
303  }
304  }
305  if (field == "additionalMetadata") {
306  if (!writer.writeListHeader(1)) {
307  return false;
308  }
309  if (!writer.writeString("std::string additionalMetadata")) {
310  return false;
311  }
312  }
313  }
314  if (!writer.writeListHeader(4)) {
315  return false;
316  }
317  writer.writeString("*** Available fields:");
318  writer.writeString("name");
319  writer.writeString("frameName");
320  writer.writeString("additionalMetadata");
321  return true;
322  }
323  bool nested = true;
324  bool have_act = false;
325  if (tag != "patch") {
326  if (((len - 1) % 2) != 0) {
327  return false;
328  }
329  len = 1 + ((len - 1) / 2);
330  nested = false;
331  have_act = true;
332  }
333  for (int i = 1; i < len; ++i) {
334  if (nested && !reader.readListHeader(3)) {
335  return false;
336  }
337  std::string act;
338  std::string key;
339  if (have_act) {
340  act = tag;
341  } else if (!reader.readString(act)) {
342  return false;
343  }
344  if (!reader.readString(key)) {
345  return false;
346  }
347  if (key == "name") {
348  will_set_name();
349  if (!obj->nested_read_name(reader)) {
350  return false;
351  }
352  did_set_name();
353  } else if (key == "frameName") {
354  will_set_frameName();
355  if (!obj->nested_read_frameName(reader)) {
356  return false;
357  }
358  did_set_frameName();
359  } else if (key == "additionalMetadata") {
360  will_set_additionalMetadata();
361  if (!obj->nested_read_additionalMetadata(reader)) {
362  return false;
363  }
364  did_set_additionalMetadata();
365  } else {
366  // would be useful to have a fallback here
367  }
368  }
369  reader.accept();
370  yarp::os::idl::WireWriter writer(reader);
371  if (writer.isNull()) {
372  return true;
373  }
374  writer.writeListHeader(1);
375  writer.writeVocab32('o', 'k');
376  return true;
377 }
378 
379 // Editor: write
381 {
382  if (!isValid()) {
383  return false;
384  }
385  yarp::os::idl::WireWriter writer(connection);
386  if (!writer.writeListHeader(dirty_count + 1)) {
387  return false;
388  }
389  if (!writer.writeString("patch")) {
390  return false;
391  }
392  if (is_dirty_name) {
393  if (!writer.writeListHeader(3)) {
394  return false;
395  }
396  if (!writer.writeString("set")) {
397  return false;
398  }
399  if (!writer.writeString("name")) {
400  return false;
401  }
402  if (!obj->nested_write_name(writer)) {
403  return false;
404  }
405  }
406  if (is_dirty_frameName) {
407  if (!writer.writeListHeader(3)) {
408  return false;
409  }
410  if (!writer.writeString("set")) {
411  return false;
412  }
413  if (!writer.writeString("frameName")) {
414  return false;
415  }
416  if (!obj->nested_write_frameName(writer)) {
417  return false;
418  }
419  }
420  if (is_dirty_additionalMetadata) {
421  if (!writer.writeListHeader(3)) {
422  return false;
423  }
424  if (!writer.writeString("set")) {
425  return false;
426  }
427  if (!writer.writeString("additionalMetadata")) {
428  return false;
429  }
430  if (!obj->nested_write_additionalMetadata(writer)) {
431  return false;
432  }
433  }
434  return !writer.isError();
435 }
436 
437 // Editor: send if possible
438 void SensorMetadata::Editor::communicate()
439 {
440  if (group != 0) {
441  return;
442  }
443  if (yarp().canWrite()) {
444  yarp().write(*this);
445  clean();
446  }
447 }
448 
449 // Editor: mark dirty overall
450 void SensorMetadata::Editor::mark_dirty()
451 {
452  is_dirty = true;
453 }
454 
455 // Editor: name mark_dirty
456 void SensorMetadata::Editor::mark_dirty_name()
457 {
458  if (is_dirty_name) {
459  return;
460  }
461  dirty_count++;
462  is_dirty_name = true;
463  mark_dirty();
464 }
465 
466 // Editor: frameName mark_dirty
467 void SensorMetadata::Editor::mark_dirty_frameName()
468 {
469  if (is_dirty_frameName) {
470  return;
471  }
472  dirty_count++;
473  is_dirty_frameName = true;
474  mark_dirty();
475 }
476 
477 // Editor: additionalMetadata mark_dirty
478 void SensorMetadata::Editor::mark_dirty_additionalMetadata()
479 {
480  if (is_dirty_additionalMetadata) {
481  return;
482  }
483  dirty_count++;
484  is_dirty_additionalMetadata = true;
485  mark_dirty();
486 }
487 
488 // Editor: dirty_flags
489 void SensorMetadata::Editor::dirty_flags(bool flag)
490 {
491  is_dirty = flag;
492  is_dirty_name = flag;
493  is_dirty_frameName = flag;
494  is_dirty_additionalMetadata = flag;
495  dirty_count = flag ? 3 : 0;
496 }
497 
498 // read name field
499 bool SensorMetadata::read_name(yarp::os::idl::WireReader& reader)
500 {
501  if (!reader.readString(name)) {
502  reader.fail();
503  return false;
504  }
505  return true;
506 }
507 
508 // write name field
509 bool SensorMetadata::write_name(const yarp::os::idl::WireWriter& writer) const
510 {
511  if (!writer.writeString(name)) {
512  return false;
513  }
514  return true;
515 }
516 
517 // read (nested) name field
518 bool SensorMetadata::nested_read_name(yarp::os::idl::WireReader& reader)
519 {
520  if (!reader.readString(name)) {
521  reader.fail();
522  return false;
523  }
524  return true;
525 }
526 
527 // write (nested) name field
528 bool SensorMetadata::nested_write_name(const yarp::os::idl::WireWriter& writer) const
529 {
530  if (!writer.writeString(name)) {
531  return false;
532  }
533  return true;
534 }
535 
536 // read frameName field
537 bool SensorMetadata::read_frameName(yarp::os::idl::WireReader& reader)
538 {
539  if (!reader.readString(frameName)) {
540  reader.fail();
541  return false;
542  }
543  return true;
544 }
545 
546 // write frameName field
547 bool SensorMetadata::write_frameName(const yarp::os::idl::WireWriter& writer) const
548 {
549  if (!writer.writeString(frameName)) {
550  return false;
551  }
552  return true;
553 }
554 
555 // read (nested) frameName field
556 bool SensorMetadata::nested_read_frameName(yarp::os::idl::WireReader& reader)
557 {
558  if (!reader.readString(frameName)) {
559  reader.fail();
560  return false;
561  }
562  return true;
563 }
564 
565 // write (nested) frameName field
566 bool SensorMetadata::nested_write_frameName(const yarp::os::idl::WireWriter& writer) const
567 {
568  if (!writer.writeString(frameName)) {
569  return false;
570  }
571  return true;
572 }
573 
574 // read additionalMetadata field
575 bool SensorMetadata::read_additionalMetadata(yarp::os::idl::WireReader& reader)
576 {
577  if (!reader.readString(additionalMetadata)) {
578  reader.fail();
579  return false;
580  }
581  return true;
582 }
583 
584 // write additionalMetadata field
585 bool SensorMetadata::write_additionalMetadata(const yarp::os::idl::WireWriter& writer) const
586 {
587  if (!writer.writeString(additionalMetadata)) {
588  return false;
589  }
590  return true;
591 }
592 
593 // read (nested) additionalMetadata field
594 bool SensorMetadata::nested_read_additionalMetadata(yarp::os::idl::WireReader& reader)
595 {
596  if (!reader.readString(additionalMetadata)) {
597  reader.fail();
598  return false;
599  }
600  return true;
601 }
602 
603 // write (nested) additionalMetadata field
604 bool SensorMetadata::nested_write_additionalMetadata(const yarp::os::idl::WireWriter& writer) const
605 {
606  if (!writer.writeString(additionalMetadata)) {
607  return false;
608  }
609  return true;
610 }
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
void set_additionalMetadata(const std::string &additionalMetadata)
void set_name(const std::string &name)
virtual bool did_set_name()
virtual bool did_set_frameName()
const std::string & get_frameName() const
bool edit(SensorMetadata &obj, bool dirty=true)
virtual bool will_set_name()
virtual bool will_set_frameName()
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
virtual bool did_set_additionalMetadata()
void set_frameName(const std::string &frameName)
virtual bool will_set_additionalMetadata()
const std::string & get_additionalMetadata() const
const std::string & get_name() const
SensorMetadata & state()
std::string frameName
bool write(const yarp::os::idl::WireWriter &writer) const override
bool read(yarp::os::idl::WireReader &reader) override
std::string additionalMetadata
std::string toString() const
std::string name
A simple collection of objects that can be described and transmitted in a portable way.
Definition: Bottle.h:74
bool read(ConnectionReader &reader) override
Set the bottle's value based on input from a network connection.
Definition: Bottle.cpp:240
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.
yarp::os::WireLink & yarp()
Get YARP state associated with this object.
Definition: Wire.h:29
IDL-friendly connection reader.
Definition: WireReader.h:30
bool readString(std::string &str, bool *is_vocab=nullptr)
Definition: WireReader.cpp:382
IDL-friendly connection writer.
Definition: WireWriter.h:30
bool writeVocab32(yarp::conf::vocab32_t x) const
Definition: WireWriter.cpp:141
bool writeListHeader(int len) const
Definition: WireWriter.cpp:206
bool writeTag(const char *tag, int split, int len) const
Definition: WireWriter.cpp:164
bool writeString(const std::string &tag) const
Definition: WireWriter.cpp:189
bool isValid()
Check if time is valid (non-zero).
Definition: Time.cpp:314
The main, catch-all namespace for YARP.
Definition: dirs.h:16