YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
yarprobotinterfaceRpc.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 <yarp/conf/version.h>
14#include <yarp/os/LogStream.h>
15
17
18#include <algorithm>
19
20namespace
21{
22 YARP_LOG_COMPONENT(SERVICE_LOG_COMPONENT, "yarprobotinterfaceRpc")
23}
24
25//yarprobotinterfaceRpc_getRemoteProtocolVersion_helper declaration
36
38{
39 yarp::os::idl::WireWriter writer(connection);
40 if (!writer.writeListHeader(1)) {
41 return false;
42 }
43 if (!writer.writeString("getRemoteProtocolVersion")) {
44 return false;
45 }
46 return true;
47}
48
49bool yarprobotinterfaceRpc_getRemoteProtocolVersion_helper ::read(yarp::os::ConnectionReader & connection)
50 {
51 yarp::os::idl::WireReader reader(connection);
52 if (!reader.readListHeader()) {
53 reader.fail();
54 return false;
55 }
56
57 if (!helper_proto.read(connection)) {
58 reader.fail();
59 return false;
60 }
61 return true;
62}
63
64//ProtocolVersion, client side
66 {
67 if(!yarp().canWrite()) {
68 yError(" Missing server method yarprobotinterfaceRpc::getRemoteProtocolVersion");
69 }
71 bool ok = yarp().write(helper, helper);
72 if (ok) {
73 return helper.helper_proto;}
74 else {
76 return failureproto;}
77}
78
79//ProtocolVersion, client side
81 {
82 auto locproto = this->getLocalProtocolVersion();
83 auto remproto = this->getRemoteProtocolVersion();
84 if (remproto.protocol_version != locproto.protocol_version)
85 {
86 yCError(SERVICE_LOG_COMPONENT) << "Invalid communication protocol.";
87 yCError(SERVICE_LOG_COMPONENT) << "Local Protocol Version: " << locproto.toString();
88 yCError(SERVICE_LOG_COMPONENT) << "Remote Protocol Version: " << remproto.toString();
89 return false;
90 }
91 return true;
92}
93
94//ProtocolVersion, server side
96{
98 //myproto.protocol_version using default value = 0
99 //to change this value add the following line to the .thrift file:
100 //const i16 protocol_version = <your_number_here>
101 myproto.protocol_version = 0;
105 return myproto;
106}
107
108// get_phase helper class declaration
110 public yarp::os::Portable
111{
112public:
114 bool write(yarp::os::ConnectionWriter& connection) const override;
115 bool read(yarp::os::ConnectionReader& connection) override;
116
117 class Command :
119 {
120 public:
121 Command() = default;
122 ~Command() override = default;
123
124 bool write(yarp::os::ConnectionWriter& connection) const override;
125 bool read(yarp::os::ConnectionReader& connection) override;
126
127 bool write(const yarp::os::idl::WireWriter& writer) const override;
128 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
129 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
130
131 bool read(yarp::os::idl::WireReader& reader) override;
134 };
135
136 class Reply :
138 {
139 public:
140 Reply() = default;
141 ~Reply() override = default;
142
143 bool write(yarp::os::ConnectionWriter& connection) const override;
144 bool read(yarp::os::ConnectionReader& connection) override;
145
146 bool write(const yarp::os::idl::WireWriter& writer) const override;
147 bool read(yarp::os::idl::WireReader& reader) override;
148
149 std::string return_helper{};
150 };
151
152 using funcptr_t = std::string (*)();
153 void call(yarprobotinterfaceRpc* ptr);
154
157
158 static constexpr const char* s_tag{"get_phase"};
159 static constexpr size_t s_tag_len{2};
160 static constexpr size_t s_cmd_len{2};
161 static constexpr size_t s_reply_len{1};
162 static constexpr const char* s_prototype{"std::string yarprobotinterfaceRpc::get_phase()"};
163 static constexpr const char* s_help{
164 "Returns current phase."
165 };
166};
167
168// get_level helper class declaration
170 public yarp::os::Portable
171{
172public:
174 bool write(yarp::os::ConnectionWriter& connection) const override;
175 bool read(yarp::os::ConnectionReader& connection) override;
176
177 class Command :
179 {
180 public:
181 Command() = default;
182 ~Command() override = default;
183
184 bool write(yarp::os::ConnectionWriter& connection) const override;
185 bool read(yarp::os::ConnectionReader& connection) override;
186
187 bool write(const yarp::os::idl::WireWriter& writer) const override;
188 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
189 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
190
191 bool read(yarp::os::idl::WireReader& reader) override;
194 };
195
196 class Reply :
198 {
199 public:
200 Reply() = default;
201 ~Reply() override = default;
202
203 bool write(yarp::os::ConnectionWriter& connection) const override;
204 bool read(yarp::os::ConnectionReader& connection) override;
205
206 bool write(const yarp::os::idl::WireWriter& writer) const override;
207 bool read(yarp::os::idl::WireReader& reader) override;
208
209 std::int32_t return_helper{0};
210 };
211
212 using funcptr_t = std::int32_t (*)();
213 void call(yarprobotinterfaceRpc* ptr);
214
217
218 static constexpr const char* s_tag{"get_level"};
219 static constexpr size_t s_tag_len{2};
220 static constexpr size_t s_cmd_len{2};
221 static constexpr size_t s_reply_len{1};
222 static constexpr const char* s_prototype{"std::int32_t yarprobotinterfaceRpc::get_level()"};
223 static constexpr const char* s_help{
224 "Returns current level."
225 };
226};
227
228// get_robot helper class declaration
230 public yarp::os::Portable
231{
232public:
234 bool write(yarp::os::ConnectionWriter& connection) const override;
235 bool read(yarp::os::ConnectionReader& connection) override;
236
237 class Command :
239 {
240 public:
241 Command() = default;
242 ~Command() override = default;
243
244 bool write(yarp::os::ConnectionWriter& connection) const override;
245 bool read(yarp::os::ConnectionReader& connection) override;
246
247 bool write(const yarp::os::idl::WireWriter& writer) const override;
248 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
249 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
250
251 bool read(yarp::os::idl::WireReader& reader) override;
254 };
255
256 class Reply :
258 {
259 public:
260 Reply() = default;
261 ~Reply() override = default;
262
263 bool write(yarp::os::ConnectionWriter& connection) const override;
264 bool read(yarp::os::ConnectionReader& connection) override;
265
266 bool write(const yarp::os::idl::WireWriter& writer) const override;
267 bool read(yarp::os::idl::WireReader& reader) override;
268
269 std::string return_helper{};
270 };
271
272 using funcptr_t = std::string (*)();
273 void call(yarprobotinterfaceRpc* ptr);
274
277
278 static constexpr const char* s_tag{"get_robot"};
279 static constexpr size_t s_tag_len{2};
280 static constexpr size_t s_cmd_len{2};
281 static constexpr size_t s_reply_len{1};
282 static constexpr const char* s_prototype{"std::string yarprobotinterfaceRpc::get_robot()"};
283 static constexpr const char* s_help{
284 "Returns robot name."
285 };
286};
287
288// is_ready helper class declaration
290 public yarp::os::Portable
291{
292public:
294 bool write(yarp::os::ConnectionWriter& connection) const override;
295 bool read(yarp::os::ConnectionReader& connection) override;
296
297 class Command :
299 {
300 public:
301 Command() = default;
302 ~Command() override = default;
303
304 bool write(yarp::os::ConnectionWriter& connection) const override;
305 bool read(yarp::os::ConnectionReader& connection) override;
306
307 bool write(const yarp::os::idl::WireWriter& writer) const override;
308 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
309 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
310
311 bool read(yarp::os::idl::WireReader& reader) override;
314 };
315
316 class Reply :
318 {
319 public:
320 Reply() = default;
321 ~Reply() override = default;
322
323 bool write(yarp::os::ConnectionWriter& connection) const override;
324 bool read(yarp::os::ConnectionReader& connection) override;
325
326 bool write(const yarp::os::idl::WireWriter& writer) const override;
327 bool read(yarp::os::idl::WireReader& reader) override;
328
329 bool return_helper{false};
330 };
331
332 using funcptr_t = bool (*)();
333 void call(yarprobotinterfaceRpc* ptr);
334
337
338 static constexpr const char* s_tag{"is_ready"};
339 static constexpr size_t s_tag_len{2};
340 static constexpr size_t s_cmd_len{2};
341 static constexpr size_t s_reply_len{1};
342 static constexpr const char* s_prototype{"bool yarprobotinterfaceRpc::is_ready()"};
343 static constexpr const char* s_help{
344 "Returns true if yarprobotinterface is ready (all startup actions\n"
345 "performed and no interrupt called)."
346 };
347};
348
349// quit helper class declaration
351 public yarp::os::Portable
352{
353public:
355 bool write(yarp::os::ConnectionWriter& connection) const override;
356 bool read(yarp::os::ConnectionReader& connection) override;
357
358 class Command :
360 {
361 public:
362 Command() = default;
363 ~Command() override = default;
364
365 bool write(yarp::os::ConnectionWriter& connection) const override;
366 bool read(yarp::os::ConnectionReader& connection) override;
367
368 bool write(const yarp::os::idl::WireWriter& writer) const override;
369 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
370 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
371
372 bool read(yarp::os::idl::WireReader& reader) override;
375 };
376
377 class Reply :
379 {
380 public:
381 Reply() = default;
382 ~Reply() override = default;
383
384 bool write(yarp::os::ConnectionWriter& connection) const override;
385 bool read(yarp::os::ConnectionReader& connection) override;
386
387 bool write(const yarp::os::idl::WireWriter& writer) const override;
388 bool read(yarp::os::idl::WireReader& reader) override;
389
390 std::string return_helper{};
391 };
392
393 using funcptr_t = std::string (*)();
394 void call(yarprobotinterfaceRpc* ptr);
395
398
399 static constexpr const char* s_tag{"quit"};
400 static constexpr size_t s_tag_len{1};
401 static constexpr size_t s_cmd_len{1};
402 static constexpr size_t s_reply_len{1};
403 static constexpr const char* s_prototype{"std::string yarprobotinterfaceRpc::quit()"};
404 static constexpr const char* s_help{
405 "Closes yarprobotinterface."
406 };
407};
408
409// bye helper class declaration
411 public yarp::os::Portable
412{
413public:
415 bool write(yarp::os::ConnectionWriter& connection) const override;
416 bool read(yarp::os::ConnectionReader& connection) override;
417
418 class Command :
420 {
421 public:
422 Command() = default;
423 ~Command() override = default;
424
425 bool write(yarp::os::ConnectionWriter& connection) const override;
426 bool read(yarp::os::ConnectionReader& connection) override;
427
428 bool write(const yarp::os::idl::WireWriter& writer) const override;
429 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
430 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
431
432 bool read(yarp::os::idl::WireReader& reader) override;
435 };
436
437 class Reply :
439 {
440 public:
441 Reply() = default;
442 ~Reply() override = default;
443
444 bool write(yarp::os::ConnectionWriter& connection) const override;
445 bool read(yarp::os::ConnectionReader& connection) override;
446
447 bool write(const yarp::os::idl::WireWriter& writer) const override;
448 bool read(yarp::os::idl::WireReader& reader) override;
449
450 std::string return_helper{};
451 };
452
453 using funcptr_t = std::string (*)();
454 void call(yarprobotinterfaceRpc* ptr);
455
458
459 static constexpr const char* s_tag{"bye"};
460 static constexpr size_t s_tag_len{1};
461 static constexpr size_t s_cmd_len{1};
462 static constexpr size_t s_reply_len{1};
463 static constexpr const char* s_prototype{"std::string yarprobotinterfaceRpc::bye()"};
464 static constexpr const char* s_help{
465 "Closes yarprobotinterface."
466 };
467};
468
469// exit helper class declaration
471 public yarp::os::Portable
472{
473public:
475 bool write(yarp::os::ConnectionWriter& connection) const override;
476 bool read(yarp::os::ConnectionReader& connection) override;
477
478 class Command :
480 {
481 public:
482 Command() = default;
483 ~Command() override = default;
484
485 bool write(yarp::os::ConnectionWriter& connection) const override;
486 bool read(yarp::os::ConnectionReader& connection) override;
487
488 bool write(const yarp::os::idl::WireWriter& writer) const override;
489 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
490 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
491
492 bool read(yarp::os::idl::WireReader& reader) override;
495 };
496
497 class Reply :
499 {
500 public:
501 Reply() = default;
502 ~Reply() override = default;
503
504 bool write(yarp::os::ConnectionWriter& connection) const override;
505 bool read(yarp::os::ConnectionReader& connection) override;
506
507 bool write(const yarp::os::idl::WireWriter& writer) const override;
508 bool read(yarp::os::idl::WireReader& reader) override;
509
510 std::string return_helper{};
511 };
512
513 using funcptr_t = std::string (*)();
514 void call(yarprobotinterfaceRpc* ptr);
515
518
519 static constexpr const char* s_tag{"exit"};
520 static constexpr size_t s_tag_len{1};
521 static constexpr size_t s_cmd_len{1};
522 static constexpr size_t s_reply_len{1};
523 static constexpr const char* s_prototype{"std::string yarprobotinterfaceRpc::exit()"};
524 static constexpr const char* s_help{
525 "Closes yarprobotinterface."
526 };
527};
528
529// get_phase helper class implementation
531{
532 return cmd.write(connection);
533}
534
536{
537 return reply.read(connection);
538}
539
541{
542 yarp::os::idl::WireWriter writer(connection);
543 if (!writer.writeListHeader(s_cmd_len)) {
544 return false;
545 }
546 return write(writer);
547}
548
550{
551 yarp::os::idl::WireReader reader(connection);
552 if (!reader.readListHeader()) {
553 reader.fail();
554 return false;
555 }
556 return read(reader);
557}
558
560{
561 if (!writeTag(writer)) {
562 return false;
563 }
564 if (!writeArgs(writer)) {
565 return false;
566 }
567 return true;
568}
569
571{
572 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
573 return false;
574 }
575 return true;
576}
577
579{
580 return true;
581}
582
584{
585 if (!readTag(reader)) {
586 return false;
587 }
588 if (!readArgs(reader)) {
589 return false;
590 }
591 return true;
592}
593
595{
596 std::string tag = reader.readTag(s_tag_len);
597 if (reader.isError()) {
598 return false;
599 }
600 if (tag != s_tag) {
601 reader.fail();
602 return false;
603 }
604 return true;
605}
606
608{
609 if (!reader.noMore()) {
610 reader.fail();
611 return false;
612 }
613 return true;
614}
615
617{
618 yarp::os::idl::WireWriter writer(connection);
619 return write(writer);
620}
621
623{
624 yarp::os::idl::WireReader reader(connection);
625 return read(reader);
626}
627
629{
630 if (!writer.isNull()) {
631 if (!writer.writeListHeader(s_reply_len)) {
632 return false;
633 }
634 if (!writer.writeString(return_helper)) {
635 return false;
636 }
637 }
638 return true;
639}
640
642{
643 if (!reader.readListReturn()) {
644 return false;
645 }
646 if (reader.noMore()) {
647 reader.fail();
648 return false;
649 }
650 if (!reader.readString(return_helper)) {
651 reader.fail();
652 return false;
653 }
654 return true;
655}
656
661
662// get_level helper class implementation
664{
665 return cmd.write(connection);
666}
667
669{
670 return reply.read(connection);
671}
672
674{
675 yarp::os::idl::WireWriter writer(connection);
676 if (!writer.writeListHeader(s_cmd_len)) {
677 return false;
678 }
679 return write(writer);
680}
681
683{
684 yarp::os::idl::WireReader reader(connection);
685 if (!reader.readListHeader()) {
686 reader.fail();
687 return false;
688 }
689 return read(reader);
690}
691
693{
694 if (!writeTag(writer)) {
695 return false;
696 }
697 if (!writeArgs(writer)) {
698 return false;
699 }
700 return true;
701}
702
704{
705 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
706 return false;
707 }
708 return true;
709}
710
712{
713 return true;
714}
715
717{
718 if (!readTag(reader)) {
719 return false;
720 }
721 if (!readArgs(reader)) {
722 return false;
723 }
724 return true;
725}
726
728{
729 std::string tag = reader.readTag(s_tag_len);
730 if (reader.isError()) {
731 return false;
732 }
733 if (tag != s_tag) {
734 reader.fail();
735 return false;
736 }
737 return true;
738}
739
741{
742 if (!reader.noMore()) {
743 reader.fail();
744 return false;
745 }
746 return true;
747}
748
750{
751 yarp::os::idl::WireWriter writer(connection);
752 return write(writer);
753}
754
756{
757 yarp::os::idl::WireReader reader(connection);
758 return read(reader);
759}
760
762{
763 if (!writer.isNull()) {
764 if (!writer.writeListHeader(s_reply_len)) {
765 return false;
766 }
767 if (!writer.writeI32(return_helper)) {
768 return false;
769 }
770 }
771 return true;
772}
773
775{
776 if (!reader.readListReturn()) {
777 return false;
778 }
779 if (reader.noMore()) {
780 reader.fail();
781 return false;
782 }
783 if (!reader.readI32(return_helper)) {
784 reader.fail();
785 return false;
786 }
787 return true;
788}
789
794
795// get_robot helper class implementation
797{
798 return cmd.write(connection);
799}
800
802{
803 return reply.read(connection);
804}
805
807{
808 yarp::os::idl::WireWriter writer(connection);
809 if (!writer.writeListHeader(s_cmd_len)) {
810 return false;
811 }
812 return write(writer);
813}
814
816{
817 yarp::os::idl::WireReader reader(connection);
818 if (!reader.readListHeader()) {
819 reader.fail();
820 return false;
821 }
822 return read(reader);
823}
824
826{
827 if (!writeTag(writer)) {
828 return false;
829 }
830 if (!writeArgs(writer)) {
831 return false;
832 }
833 return true;
834}
835
837{
838 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
839 return false;
840 }
841 return true;
842}
843
845{
846 return true;
847}
848
850{
851 if (!readTag(reader)) {
852 return false;
853 }
854 if (!readArgs(reader)) {
855 return false;
856 }
857 return true;
858}
859
861{
862 std::string tag = reader.readTag(s_tag_len);
863 if (reader.isError()) {
864 return false;
865 }
866 if (tag != s_tag) {
867 reader.fail();
868 return false;
869 }
870 return true;
871}
872
874{
875 if (!reader.noMore()) {
876 reader.fail();
877 return false;
878 }
879 return true;
880}
881
883{
884 yarp::os::idl::WireWriter writer(connection);
885 return write(writer);
886}
887
889{
890 yarp::os::idl::WireReader reader(connection);
891 return read(reader);
892}
893
895{
896 if (!writer.isNull()) {
897 if (!writer.writeListHeader(s_reply_len)) {
898 return false;
899 }
900 if (!writer.writeString(return_helper)) {
901 return false;
902 }
903 }
904 return true;
905}
906
908{
909 if (!reader.readListReturn()) {
910 return false;
911 }
912 if (reader.noMore()) {
913 reader.fail();
914 return false;
915 }
916 if (!reader.readString(return_helper)) {
917 reader.fail();
918 return false;
919 }
920 return true;
921}
922
927
928// is_ready helper class implementation
930{
931 return cmd.write(connection);
932}
933
935{
936 return reply.read(connection);
937}
938
940{
941 yarp::os::idl::WireWriter writer(connection);
942 if (!writer.writeListHeader(s_cmd_len)) {
943 return false;
944 }
945 return write(writer);
946}
947
949{
950 yarp::os::idl::WireReader reader(connection);
951 if (!reader.readListHeader()) {
952 reader.fail();
953 return false;
954 }
955 return read(reader);
956}
957
959{
960 if (!writeTag(writer)) {
961 return false;
962 }
963 if (!writeArgs(writer)) {
964 return false;
965 }
966 return true;
967}
968
970{
971 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
972 return false;
973 }
974 return true;
975}
976
978{
979 return true;
980}
981
983{
984 if (!readTag(reader)) {
985 return false;
986 }
987 if (!readArgs(reader)) {
988 return false;
989 }
990 return true;
991}
992
994{
995 std::string tag = reader.readTag(s_tag_len);
996 if (reader.isError()) {
997 return false;
998 }
999 if (tag != s_tag) {
1000 reader.fail();
1001 return false;
1002 }
1003 return true;
1004}
1005
1007{
1008 if (!reader.noMore()) {
1009 reader.fail();
1010 return false;
1011 }
1012 return true;
1013}
1014
1016{
1017 yarp::os::idl::WireWriter writer(connection);
1018 return write(writer);
1019}
1020
1022{
1023 yarp::os::idl::WireReader reader(connection);
1024 return read(reader);
1025}
1026
1028{
1029 if (!writer.isNull()) {
1030 if (!writer.writeListHeader(s_reply_len)) {
1031 return false;
1032 }
1033 if (!writer.writeBool(return_helper)) {
1034 return false;
1035 }
1036 }
1037 return true;
1038}
1039
1041{
1042 if (!reader.readListReturn()) {
1043 return false;
1044 }
1045 if (reader.noMore()) {
1046 reader.fail();
1047 return false;
1048 }
1049 if (!reader.readBool(return_helper)) {
1050 reader.fail();
1051 return false;
1052 }
1053 return true;
1054}
1055
1060
1061// quit helper class implementation
1063{
1064 return cmd.write(connection);
1065}
1066
1068{
1069 return reply.read(connection);
1070}
1071
1073{
1074 yarp::os::idl::WireWriter writer(connection);
1075 if (!writer.writeListHeader(s_cmd_len)) {
1076 return false;
1077 }
1078 return write(writer);
1079}
1080
1082{
1083 yarp::os::idl::WireReader reader(connection);
1084 if (!reader.readListHeader()) {
1085 reader.fail();
1086 return false;
1087 }
1088 return read(reader);
1089}
1090
1092{
1093 if (!writeTag(writer)) {
1094 return false;
1095 }
1096 if (!writeArgs(writer)) {
1097 return false;
1098 }
1099 return true;
1100}
1101
1103{
1104 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
1105 return false;
1106 }
1107 return true;
1108}
1109
1111{
1112 return true;
1113}
1114
1116{
1117 if (!readTag(reader)) {
1118 return false;
1119 }
1120 if (!readArgs(reader)) {
1121 return false;
1122 }
1123 return true;
1124}
1125
1127{
1128 std::string tag = reader.readTag(s_tag_len);
1129 if (reader.isError()) {
1130 return false;
1131 }
1132 if (tag != s_tag) {
1133 reader.fail();
1134 return false;
1135 }
1136 return true;
1137}
1138
1140{
1141 if (!reader.noMore()) {
1142 reader.fail();
1143 return false;
1144 }
1145 return true;
1146}
1147
1149{
1150 yarp::os::idl::WireWriter writer(connection);
1151 return write(writer);
1152}
1153
1155{
1156 yarp::os::idl::WireReader reader(connection);
1157 return read(reader);
1158}
1159
1161{
1162 if (!writer.isNull()) {
1163 if (!writer.writeListHeader(s_reply_len)) {
1164 return false;
1165 }
1166 if (!writer.writeString(return_helper)) {
1167 return false;
1168 }
1169 }
1170 return true;
1171}
1172
1174{
1175 if (!reader.readListReturn()) {
1176 return false;
1177 }
1178 if (reader.noMore()) {
1179 reader.fail();
1180 return false;
1181 }
1182 if (!reader.readString(return_helper)) {
1183 reader.fail();
1184 return false;
1185 }
1186 return true;
1187}
1188
1193
1194// bye helper class implementation
1196{
1197 return cmd.write(connection);
1198}
1199
1201{
1202 return reply.read(connection);
1203}
1204
1206{
1207 yarp::os::idl::WireWriter writer(connection);
1208 if (!writer.writeListHeader(s_cmd_len)) {
1209 return false;
1210 }
1211 return write(writer);
1212}
1213
1215{
1216 yarp::os::idl::WireReader reader(connection);
1217 if (!reader.readListHeader()) {
1218 reader.fail();
1219 return false;
1220 }
1221 return read(reader);
1222}
1223
1225{
1226 if (!writeTag(writer)) {
1227 return false;
1228 }
1229 if (!writeArgs(writer)) {
1230 return false;
1231 }
1232 return true;
1233}
1234
1236{
1237 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
1238 return false;
1239 }
1240 return true;
1241}
1242
1244{
1245 return true;
1246}
1247
1249{
1250 if (!readTag(reader)) {
1251 return false;
1252 }
1253 if (!readArgs(reader)) {
1254 return false;
1255 }
1256 return true;
1257}
1258
1260{
1261 std::string tag = reader.readTag(s_tag_len);
1262 if (reader.isError()) {
1263 return false;
1264 }
1265 if (tag != s_tag) {
1266 reader.fail();
1267 return false;
1268 }
1269 return true;
1270}
1271
1273{
1274 if (!reader.noMore()) {
1275 reader.fail();
1276 return false;
1277 }
1278 return true;
1279}
1280
1282{
1283 yarp::os::idl::WireWriter writer(connection);
1284 return write(writer);
1285}
1286
1288{
1289 yarp::os::idl::WireReader reader(connection);
1290 return read(reader);
1291}
1292
1294{
1295 if (!writer.isNull()) {
1296 if (!writer.writeListHeader(s_reply_len)) {
1297 return false;
1298 }
1299 if (!writer.writeString(return_helper)) {
1300 return false;
1301 }
1302 }
1303 return true;
1304}
1305
1307{
1308 if (!reader.readListReturn()) {
1309 return false;
1310 }
1311 if (reader.noMore()) {
1312 reader.fail();
1313 return false;
1314 }
1315 if (!reader.readString(return_helper)) {
1316 reader.fail();
1317 return false;
1318 }
1319 return true;
1320}
1321
1326
1327// exit helper class implementation
1329{
1330 return cmd.write(connection);
1331}
1332
1334{
1335 return reply.read(connection);
1336}
1337
1339{
1340 yarp::os::idl::WireWriter writer(connection);
1341 if (!writer.writeListHeader(s_cmd_len)) {
1342 return false;
1343 }
1344 return write(writer);
1345}
1346
1348{
1349 yarp::os::idl::WireReader reader(connection);
1350 if (!reader.readListHeader()) {
1351 reader.fail();
1352 return false;
1353 }
1354 return read(reader);
1355}
1356
1358{
1359 if (!writeTag(writer)) {
1360 return false;
1361 }
1362 if (!writeArgs(writer)) {
1363 return false;
1364 }
1365 return true;
1366}
1367
1369{
1370 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
1371 return false;
1372 }
1373 return true;
1374}
1375
1377{
1378 return true;
1379}
1380
1382{
1383 if (!readTag(reader)) {
1384 return false;
1385 }
1386 if (!readArgs(reader)) {
1387 return false;
1388 }
1389 return true;
1390}
1391
1393{
1394 std::string tag = reader.readTag(s_tag_len);
1395 if (reader.isError()) {
1396 return false;
1397 }
1398 if (tag != s_tag) {
1399 reader.fail();
1400 return false;
1401 }
1402 return true;
1403}
1404
1406{
1407 if (!reader.noMore()) {
1408 reader.fail();
1409 return false;
1410 }
1411 return true;
1412}
1413
1415{
1416 yarp::os::idl::WireWriter writer(connection);
1417 return write(writer);
1418}
1419
1421{
1422 yarp::os::idl::WireReader reader(connection);
1423 return read(reader);
1424}
1425
1427{
1428 if (!writer.isNull()) {
1429 if (!writer.writeListHeader(s_reply_len)) {
1430 return false;
1431 }
1432 if (!writer.writeString(return_helper)) {
1433 return false;
1434 }
1435 }
1436 return true;
1437}
1438
1440{
1441 if (!reader.readListReturn()) {
1442 return false;
1443 }
1444 if (reader.noMore()) {
1445 reader.fail();
1446 return false;
1447 }
1448 if (!reader.readString(return_helper)) {
1449 reader.fail();
1450 return false;
1451 }
1452 return true;
1453}
1454
1459
1460// Constructor
1462{
1463 yarp().setOwner(*this);
1464}
1465
1467{
1468 if (!yarp().canWrite()) {
1469 yError("Missing server method '%s'?", yarprobotinterfaceRpc_get_phase_helper::s_prototype);
1470 }
1472 bool ok = yarp().write(helper, helper);
1473 return ok ? helper.reply.return_helper : std::string{};
1474}
1475
1477{
1478 if (!yarp().canWrite()) {
1479 yError("Missing server method '%s'?", yarprobotinterfaceRpc_get_level_helper::s_prototype);
1480 }
1482 bool ok = yarp().write(helper, helper);
1483 return ok ? helper.reply.return_helper : std::int32_t{};
1484}
1485
1487{
1488 if (!yarp().canWrite()) {
1489 yError("Missing server method '%s'?", yarprobotinterfaceRpc_get_robot_helper::s_prototype);
1490 }
1492 bool ok = yarp().write(helper, helper);
1493 return ok ? helper.reply.return_helper : std::string{};
1494}
1495
1497{
1498 if (!yarp().canWrite()) {
1499 yError("Missing server method '%s'?", yarprobotinterfaceRpc_is_ready_helper::s_prototype);
1500 }
1502 bool ok = yarp().write(helper, helper);
1503 return ok ? helper.reply.return_helper : bool{};
1504}
1505
1507{
1508 if (!yarp().canWrite()) {
1509 yError("Missing server method '%s'?", yarprobotinterfaceRpc_quit_helper::s_prototype);
1510 }
1512 bool ok = yarp().write(helper, helper);
1513 return ok ? helper.reply.return_helper : std::string{};
1514}
1515
1517{
1518 if (!yarp().canWrite()) {
1519 yError("Missing server method '%s'?", yarprobotinterfaceRpc_bye_helper::s_prototype);
1520 }
1522 bool ok = yarp().write(helper, helper);
1523 return ok ? helper.reply.return_helper : std::string{};
1524}
1525
1527{
1528 if (!yarp().canWrite()) {
1529 yError("Missing server method '%s'?", yarprobotinterfaceRpc_exit_helper::s_prototype);
1530 }
1532 bool ok = yarp().write(helper, helper);
1533 return ok ? helper.reply.return_helper : std::string{};
1534}
1535
1536// help method
1537std::vector<std::string> yarprobotinterfaceRpc::help(const std::string& functionName)
1538{
1539 bool showAll = (functionName == "--all");
1540 std::vector<std::string> helpString;
1541 if (showAll) {
1542 helpString.emplace_back("*** Available commands:");
1543 helpString.emplace_back(yarprobotinterfaceRpc_get_phase_helper::s_tag);
1544 helpString.emplace_back(yarprobotinterfaceRpc_get_level_helper::s_tag);
1545 helpString.emplace_back(yarprobotinterfaceRpc_get_robot_helper::s_tag);
1546 helpString.emplace_back(yarprobotinterfaceRpc_is_ready_helper::s_tag);
1547 helpString.emplace_back(yarprobotinterfaceRpc_quit_helper::s_tag);
1548 helpString.emplace_back(yarprobotinterfaceRpc_bye_helper::s_tag);
1549 helpString.emplace_back(yarprobotinterfaceRpc_exit_helper::s_tag);
1550 helpString.emplace_back("help");
1551 } else {
1554 helpString.emplace_back(yarprobotinterfaceRpc_get_phase_helper::s_help);
1555 }
1558 helpString.emplace_back(yarprobotinterfaceRpc_get_level_helper::s_help);
1559 }
1562 helpString.emplace_back(yarprobotinterfaceRpc_get_robot_helper::s_help);
1563 }
1566 helpString.emplace_back(yarprobotinterfaceRpc_is_ready_helper::s_help);
1567 }
1568 if (functionName == yarprobotinterfaceRpc_quit_helper::s_tag) {
1569 helpString.emplace_back(yarprobotinterfaceRpc_quit_helper::s_prototype);
1570 helpString.emplace_back(yarprobotinterfaceRpc_quit_helper::s_help);
1571 }
1572 if (functionName == yarprobotinterfaceRpc_bye_helper::s_tag) {
1573 helpString.emplace_back(yarprobotinterfaceRpc_bye_helper::s_prototype);
1574 helpString.emplace_back(yarprobotinterfaceRpc_bye_helper::s_help);
1575 }
1576 if (functionName == yarprobotinterfaceRpc_exit_helper::s_tag) {
1577 helpString.emplace_back(yarprobotinterfaceRpc_exit_helper::s_prototype);
1578 helpString.emplace_back(yarprobotinterfaceRpc_exit_helper::s_help);
1579 }
1580 if (functionName == "help") {
1581 helpString.emplace_back("std::vector<std::string> help(const std::string& functionName = \"--all\")");
1582 helpString.emplace_back("Return list of available commands, or help message for a specific function");
1583 helpString.emplace_back("@param functionName name of command for which to get a detailed description. If none or '--all' is provided, print list of available commands");
1584 helpString.emplace_back("@return list of strings (one string per line)");
1585 }
1586 }
1587 if (helpString.empty()) {
1588 helpString.emplace_back("Command not found");
1589 }
1590 return helpString;
1591}
1592
1593// read from ConnectionReader
1595{
1596 constexpr size_t max_tag_len = 2;
1597 size_t tag_len = 1;
1598
1599 yarp::os::idl::WireReader reader(connection);
1600 reader.expectAccept();
1601 if (!reader.readListHeader()) {
1602 reader.fail();
1603 return false;
1604 }
1605
1606 std::string tag = reader.readTag(1);
1607 bool direct = (tag == "__direct__");
1608 if (direct) {
1609 tag = reader.readTag(1);
1610 }
1611 while (tag_len <= max_tag_len && !reader.isError()) {
1612 if(tag == "getRemoteProtocolVersion") {
1613 if (!reader.noMore()) {
1614 yError("Reader invalid protocol?! %s:%d - %s", __FILE__, __LINE__, __YFUNCTION__);
1615 reader.fail();
1616 return false;
1617 }
1618
1619 auto proto = getLocalProtocolVersion();
1620
1621 yarp::os::idl::WireWriter writer(reader);
1622 if (!writer.writeListHeader(1)) {
1623 yWarning("Writer invalid protocol?! %s:%d - %s", __FILE__, __LINE__, __YFUNCTION__);
1624 return false;}
1625 if (!writer.write(proto)) {
1626 yWarning("Writer invalid protocol?! %s:%d - %s", __FILE__, __LINE__, __YFUNCTION__);
1627 return false;
1628 }
1629 reader.accept();
1630 return true;
1631 }
1634 if (!helper.cmd.readArgs(reader)) {
1635 return false;
1636 }
1637
1638 helper.call(this);
1639
1640 yarp::os::idl::WireWriter writer(reader);
1641 if (!helper.reply.write(writer)) {
1642 return false;
1643 }
1644 reader.accept();
1645 return true;
1646 }
1649 if (!helper.cmd.readArgs(reader)) {
1650 return false;
1651 }
1652
1653 helper.call(this);
1654
1655 yarp::os::idl::WireWriter writer(reader);
1656 if (!helper.reply.write(writer)) {
1657 return false;
1658 }
1659 reader.accept();
1660 return true;
1661 }
1664 if (!helper.cmd.readArgs(reader)) {
1665 return false;
1666 }
1667
1668 helper.call(this);
1669
1670 yarp::os::idl::WireWriter writer(reader);
1671 if (!helper.reply.write(writer)) {
1672 return false;
1673 }
1674 reader.accept();
1675 return true;
1676 }
1679 if (!helper.cmd.readArgs(reader)) {
1680 return false;
1681 }
1682
1683 helper.call(this);
1684
1685 yarp::os::idl::WireWriter writer(reader);
1686 if (!helper.reply.write(writer)) {
1687 return false;
1688 }
1689 reader.accept();
1690 return true;
1691 }
1694 if (!helper.cmd.readArgs(reader)) {
1695 return false;
1696 }
1697
1698 helper.call(this);
1699
1700 yarp::os::idl::WireWriter writer(reader);
1701 if (!helper.reply.write(writer)) {
1702 return false;
1703 }
1704 reader.accept();
1705 return true;
1706 }
1709 if (!helper.cmd.readArgs(reader)) {
1710 return false;
1711 }
1712
1713 helper.call(this);
1714
1715 yarp::os::idl::WireWriter writer(reader);
1716 if (!helper.reply.write(writer)) {
1717 return false;
1718 }
1719 reader.accept();
1720 return true;
1721 }
1724 if (!helper.cmd.readArgs(reader)) {
1725 return false;
1726 }
1727
1728 helper.call(this);
1729
1730 yarp::os::idl::WireWriter writer(reader);
1731 if (!helper.reply.write(writer)) {
1732 return false;
1733 }
1734 reader.accept();
1735 return true;
1736 }
1737 if (tag == "help") {
1738 std::string functionName;
1739 if (!reader.readString(functionName)) {
1740 functionName = "--all";
1741 }
1742 auto help_strings = help(functionName);
1743 yarp::os::idl::WireWriter writer(reader);
1744 if (!writer.isNull()) {
1745 if (!writer.writeListHeader(2)) {
1746 return false;
1747 }
1748 if (!writer.writeTag("many", 1, 0)) {
1749 return false;
1750 }
1751 if (!writer.writeListBegin(0, help_strings.size())) {
1752 return false;
1753 }
1754 for (const auto& help_string : help_strings) {
1755 if (!writer.writeString(help_string)) {
1756 return false;
1757 }
1758 }
1759 if (!writer.writeListEnd()) {
1760 return false;
1761 }
1762 }
1763 reader.accept();
1764 return true;
1765 }
1766 if (reader.noMore()) {
1767 reader.fail();
1768 return false;
1769 }
1770 std::string next_tag = reader.readTag(1);
1771 if (next_tag.empty()) {
1772 break;
1773 }
1774 tag.append("_").append(next_tag);
1775 tag_len = std::count(tag.begin(), tag.end(), '_') + 1;
1776 }
1777 return false;
1778}
#define yError(...)
Definition Log.h:361
#define __YFUNCTION__
Definition Log.h:24
#define yWarning(...)
Definition Log.h:340
An interface for reading from a network connection.
An interface for writing to a 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
yarp::os::WireLink & yarp()
Get YARP state associated with this object.
Definition Wire.h:28
A "tamed" Portable, that promises to serialize itself in an IDL-friendly way.
IDL-friendly connection reader.
Definition WireReader.h:27
bool readString(std::string &str, bool *is_vocab=nullptr)
bool readI32(std::int32_t &x)
std::string readTag(size_t len=static_cast< size_t >(-1))
IDL-friendly connection writer.
Definition WireWriter.h:28
bool writeBool(bool x, bool skip_tag=false) const
bool write(const WirePortable &obj) const
bool writeI32(std::int32_t x, bool skip_tag=false) const
bool writeListHeader(int len) const
bool writeTag(const char *tag, int split, int len) const
bool writeString(const std::string &str, bool skip_tag=false) const
bool writeListBegin(int tag, size_t len) const
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool writeTag(const yarp::os::idl::WireWriter &writer) const
bool readArgs(yarp::os::idl::WireReader &reader)
bool readTag(yarp::os::idl::WireReader &reader)
bool writeArgs(const yarp::os::idl::WireWriter &writer) const
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
static constexpr const char * s_tag
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
static constexpr const char * s_prototype
static constexpr const char * s_help
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
void call(yarprobotinterfaceRpc *ptr)
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool readTag(yarp::os::idl::WireReader &reader)
bool readArgs(yarp::os::idl::WireReader &reader)
bool writeArgs(const yarp::os::idl::WireWriter &writer) const
bool writeTag(const yarp::os::idl::WireWriter &writer) const
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
static constexpr const char * s_prototype
void call(yarprobotinterfaceRpc *ptr)
static constexpr const char * s_tag
static constexpr const char * s_help
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
yarp::os::ApplicationNetworkProtocolVersion helper_proto
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool writeArgs(const yarp::os::idl::WireWriter &writer) const
bool writeTag(const yarp::os::idl::WireWriter &writer) const
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool readTag(yarp::os::idl::WireReader &reader)
bool readArgs(yarp::os::idl::WireReader &reader)
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool writeArgs(const yarp::os::idl::WireWriter &writer) const
bool writeTag(const yarp::os::idl::WireWriter &writer) const
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool readTag(yarp::os::idl::WireReader &reader)
bool readArgs(yarp::os::idl::WireReader &reader)
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool writeArgs(const yarp::os::idl::WireWriter &writer) const
bool readArgs(yarp::os::idl::WireReader &reader)
bool writeTag(const yarp::os::idl::WireWriter &writer) const
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool readTag(yarp::os::idl::WireReader &reader)
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool writeTag(const yarp::os::idl::WireWriter &writer) const
bool readTag(yarp::os::idl::WireReader &reader)
bool readArgs(yarp::os::idl::WireReader &reader)
bool writeArgs(const yarp::os::idl::WireWriter &writer) const
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool writeTag(const yarp::os::idl::WireWriter &writer) const
bool readTag(yarp::os::idl::WireReader &reader)
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool writeArgs(const yarp::os::idl::WireWriter &writer) const
bool readArgs(yarp::os::idl::WireReader &reader)
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
static constexpr const char * s_prototype
static constexpr const char * s_tag
static constexpr const char * s_help
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
void call(yarprobotinterfaceRpc *ptr)
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
virtual std::string quit()
Closes yarprobotinterface.
virtual std::string get_phase()
Returns current phase.
virtual std::string get_robot()
Returns robot name.
virtual std::string bye()
Closes yarprobotinterface.
virtual std::string exit()
Closes yarprobotinterface.
virtual std::int32_t get_level()
Returns current level.
virtual yarp::os::ApplicationNetworkProtocolVersion getLocalProtocolVersion()
virtual std::vector< std::string > help(const std::string &functionName="--all")
virtual yarp::os::ApplicationNetworkProtocolVersion getRemoteProtocolVersion()
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
virtual bool is_ready()
Returns true if yarprobotinterface is ready (all startup actions performed and no interrupt called).
#define yCError(component,...)
#define YARP_LOG_COMPONENT(name,...)
The main, catch-all namespace for YARP.
Definition dirs.h:16
#define YARP_VERSION_PATCH
Definition version.h:12
#define YARP_VERSION_MAJOR
Definition version.h:10
#define YARP_VERSION_MINOR
Definition version.h:11