YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
IChatBotMsgs.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 <IChatBotMsgs.h>
12
14
15#include <algorithm>
16
17// interactRPC helper class declaration
20{
21public:
23 explicit IChatBotMsgs_interactRPC_helper(const std::string& messageIn);
24 bool write(yarp::os::ConnectionWriter& connection) const override;
25 bool read(yarp::os::ConnectionReader& connection) override;
26
27 class Command :
29 {
30 public:
31 Command() = default;
32 explicit Command(const std::string& messageIn);
33
34 ~Command() override = default;
35
36 bool write(yarp::os::ConnectionWriter& connection) const override;
37 bool read(yarp::os::ConnectionReader& connection) override;
38
39 bool write(const yarp::os::idl::WireWriter& writer) const override;
40 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
41 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
42
43 bool read(yarp::os::idl::WireReader& reader) override;
46
47 std::string messageIn{};
48 };
49
50 class Reply :
52 {
53 public:
54 Reply() = default;
55 ~Reply() override = default;
56
57 bool write(yarp::os::ConnectionWriter& connection) const override;
58 bool read(yarp::os::ConnectionReader& connection) override;
59
60 bool write(const yarp::os::idl::WireWriter& writer) const override;
61 bool read(yarp::os::idl::WireReader& reader) override;
62
64 };
65
66 using funcptr_t = return_interact (*)(const std::string&);
67 void call(IChatBotMsgs* ptr);
68
71
72 static constexpr const char* s_tag{"interactRPC"};
73 static constexpr size_t s_tag_len{1};
74 static constexpr size_t s_cmd_len{2};
75 static constexpr size_t s_reply_len{2};
76 static constexpr const char* s_prototype{"return_interact IChatBotMsgs::interactRPC(const std::string& messageIn)"};
77 static constexpr const char* s_help{""};
78};
79
80// setLanguageRPC helper class declaration
83{
84public:
86 explicit IChatBotMsgs_setLanguageRPC_helper(const std::string& language);
87 bool write(yarp::os::ConnectionWriter& connection) const override;
88 bool read(yarp::os::ConnectionReader& connection) override;
89
90 class Command :
92 {
93 public:
94 Command() = default;
95 explicit Command(const std::string& language);
96
97 ~Command() override = default;
98
99 bool write(yarp::os::ConnectionWriter& connection) const override;
100 bool read(yarp::os::ConnectionReader& connection) override;
101
102 bool write(const yarp::os::idl::WireWriter& writer) const override;
103 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
104 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
105
106 bool read(yarp::os::idl::WireReader& reader) override;
109
110 std::string language{};
111 };
112
113 class Reply :
115 {
116 public:
117 Reply() = default;
118 ~Reply() override = default;
119
120 bool write(yarp::os::ConnectionWriter& connection) const override;
121 bool read(yarp::os::ConnectionReader& connection) override;
122
123 bool write(const yarp::os::idl::WireWriter& writer) const override;
124 bool read(yarp::os::idl::WireReader& reader) override;
125
126 bool return_helper{false};
127 };
128
129 using funcptr_t = bool (*)(const std::string&);
130 void call(IChatBotMsgs* ptr);
131
134
135 static constexpr const char* s_tag{"setLanguageRPC"};
136 static constexpr size_t s_tag_len{1};
137 static constexpr size_t s_cmd_len{2};
138 static constexpr size_t s_reply_len{1};
139 static constexpr const char* s_prototype{"bool IChatBotMsgs::setLanguageRPC(const std::string& language)"};
140 static constexpr const char* s_help{""};
141};
142
143// getLanguageRPC helper class declaration
145 public yarp::os::Portable
146{
147public:
149 bool write(yarp::os::ConnectionWriter& connection) const override;
150 bool read(yarp::os::ConnectionReader& connection) override;
151
152 class Command :
154 {
155 public:
156 Command() = default;
157 ~Command() override = default;
158
159 bool write(yarp::os::ConnectionWriter& connection) const override;
160 bool read(yarp::os::ConnectionReader& connection) override;
161
162 bool write(const yarp::os::idl::WireWriter& writer) const override;
163 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
164 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
165
166 bool read(yarp::os::idl::WireReader& reader) override;
169 };
170
171 class Reply :
173 {
174 public:
175 Reply() = default;
176 ~Reply() override = default;
177
178 bool write(yarp::os::ConnectionWriter& connection) const override;
179 bool read(yarp::os::ConnectionReader& connection) override;
180
181 bool write(const yarp::os::idl::WireWriter& writer) const override;
182 bool read(yarp::os::idl::WireReader& reader) override;
183
185 };
186
188 void call(IChatBotMsgs* ptr);
189
192
193 static constexpr const char* s_tag{"getLanguageRPC"};
194 static constexpr size_t s_tag_len{1};
195 static constexpr size_t s_cmd_len{1};
196 static constexpr size_t s_reply_len{2};
197 static constexpr const char* s_prototype{"return_getLanguage IChatBotMsgs::getLanguageRPC()"};
198 static constexpr const char* s_help{""};
199};
200
201// getStatusRPC helper class declaration
203 public yarp::os::Portable
204{
205public:
207 bool write(yarp::os::ConnectionWriter& connection) const override;
208 bool read(yarp::os::ConnectionReader& connection) override;
209
210 class Command :
212 {
213 public:
214 Command() = default;
215 ~Command() override = default;
216
217 bool write(yarp::os::ConnectionWriter& connection) const override;
218 bool read(yarp::os::ConnectionReader& connection) override;
219
220 bool write(const yarp::os::idl::WireWriter& writer) const override;
221 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
222 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
223
224 bool read(yarp::os::idl::WireReader& reader) override;
227 };
228
229 class Reply :
231 {
232 public:
233 Reply() = default;
234 ~Reply() override = default;
235
236 bool write(yarp::os::ConnectionWriter& connection) const override;
237 bool read(yarp::os::ConnectionReader& connection) override;
238
239 bool write(const yarp::os::idl::WireWriter& writer) const override;
240 bool read(yarp::os::idl::WireReader& reader) override;
241
243 };
244
246 void call(IChatBotMsgs* ptr);
247
250
251 static constexpr const char* s_tag{"getStatusRPC"};
252 static constexpr size_t s_tag_len{1};
253 static constexpr size_t s_cmd_len{1};
254 static constexpr size_t s_reply_len{2};
255 static constexpr const char* s_prototype{"return_getStatus IChatBotMsgs::getStatusRPC()"};
256 static constexpr const char* s_help{""};
257};
258
259// resetBotRPC helper class declaration
261 public yarp::os::Portable
262{
263public:
265 bool write(yarp::os::ConnectionWriter& connection) const override;
266 bool read(yarp::os::ConnectionReader& connection) override;
267
268 class Command :
270 {
271 public:
272 Command() = default;
273 ~Command() override = default;
274
275 bool write(yarp::os::ConnectionWriter& connection) const override;
276 bool read(yarp::os::ConnectionReader& connection) override;
277
278 bool write(const yarp::os::idl::WireWriter& writer) const override;
279 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
280 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
281
282 bool read(yarp::os::idl::WireReader& reader) override;
285 };
286
287 class Reply :
289 {
290 public:
291 Reply() = default;
292 ~Reply() override = default;
293
294 bool write(yarp::os::ConnectionWriter& connection) const override;
295 bool read(yarp::os::ConnectionReader& connection) override;
296
297 bool write(const yarp::os::idl::WireWriter& writer) const override;
298 bool read(yarp::os::idl::WireReader& reader) override;
299
300 bool return_helper{false};
301 };
302
303 using funcptr_t = bool (*)();
304 void call(IChatBotMsgs* ptr);
305
308
309 static constexpr const char* s_tag{"resetBotRPC"};
310 static constexpr size_t s_tag_len{1};
311 static constexpr size_t s_cmd_len{1};
312 static constexpr size_t s_reply_len{1};
313 static constexpr const char* s_prototype{"bool IChatBotMsgs::resetBotRPC()"};
314 static constexpr const char* s_help{""};
315};
316
317// interactRPC helper class implementation
319 cmd{messageIn}
320{
321}
322
324{
325 return cmd.write(connection);
326}
327
329{
330 return reply.read(connection);
331}
332
334 messageIn{messageIn}
335{
336}
337
339{
340 yarp::os::idl::WireWriter writer(connection);
341 if (!writer.writeListHeader(s_cmd_len)) {
342 return false;
343 }
344 return write(writer);
345}
346
348{
349 yarp::os::idl::WireReader reader(connection);
350 if (!reader.readListHeader()) {
351 reader.fail();
352 return false;
353 }
354 return read(reader);
355}
356
358{
359 if (!writeTag(writer)) {
360 return false;
361 }
362 if (!writeArgs(writer)) {
363 return false;
364 }
365 return true;
366}
367
369{
370 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
371 return false;
372 }
373 return true;
374}
375
377{
378 if (!writer.writeString(messageIn)) {
379 return false;
380 }
381 return true;
382}
383
385{
386 if (!readTag(reader)) {
387 return false;
388 }
389 if (!readArgs(reader)) {
390 return false;
391 }
392 return true;
393}
394
396{
397 std::string tag = reader.readTag(s_tag_len);
398 if (reader.isError()) {
399 return false;
400 }
401 if (tag != s_tag) {
402 reader.fail();
403 return false;
404 }
405 return true;
406}
407
409{
410 if (reader.noMore()) {
411 reader.fail();
412 return false;
413 }
414 if (!reader.readString(messageIn)) {
415 reader.fail();
416 return false;
417 }
418 if (!reader.noMore()) {
419 reader.fail();
420 return false;
421 }
422 return true;
423}
424
426{
427 yarp::os::idl::WireWriter writer(connection);
428 return write(writer);
429}
430
432{
433 yarp::os::idl::WireReader reader(connection);
434 return read(reader);
435}
436
438{
439 if (!writer.isNull()) {
440 if (!writer.writeListHeader(s_reply_len)) {
441 return false;
442 }
443 if (!writer.write(return_helper)) {
444 return false;
445 }
446 }
447 return true;
448}
449
451{
452 if (!reader.readListReturn()) {
453 return false;
454 }
455 if (reader.noMore()) {
456 reader.fail();
457 return false;
458 }
459 if (!reader.read(return_helper)) {
460 reader.fail();
461 return false;
462 }
463 return true;
464}
465
470
471// setLanguageRPC helper class implementation
473 cmd{language}
474{
475}
476
478{
479 return cmd.write(connection);
480}
481
483{
484 return reply.read(connection);
485}
486
488 language{language}
489{
490}
491
493{
494 yarp::os::idl::WireWriter writer(connection);
495 if (!writer.writeListHeader(s_cmd_len)) {
496 return false;
497 }
498 return write(writer);
499}
500
502{
503 yarp::os::idl::WireReader reader(connection);
504 if (!reader.readListHeader()) {
505 reader.fail();
506 return false;
507 }
508 return read(reader);
509}
510
512{
513 if (!writeTag(writer)) {
514 return false;
515 }
516 if (!writeArgs(writer)) {
517 return false;
518 }
519 return true;
520}
521
523{
524 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
525 return false;
526 }
527 return true;
528}
529
531{
532 if (!writer.writeString(language)) {
533 return false;
534 }
535 return true;
536}
537
539{
540 if (!readTag(reader)) {
541 return false;
542 }
543 if (!readArgs(reader)) {
544 return false;
545 }
546 return true;
547}
548
550{
551 std::string tag = reader.readTag(s_tag_len);
552 if (reader.isError()) {
553 return false;
554 }
555 if (tag != s_tag) {
556 reader.fail();
557 return false;
558 }
559 return true;
560}
561
563{
564 if (reader.noMore()) {
565 reader.fail();
566 return false;
567 }
568 if (!reader.readString(language)) {
569 reader.fail();
570 return false;
571 }
572 if (!reader.noMore()) {
573 reader.fail();
574 return false;
575 }
576 return true;
577}
578
580{
581 yarp::os::idl::WireWriter writer(connection);
582 return write(writer);
583}
584
586{
587 yarp::os::idl::WireReader reader(connection);
588 return read(reader);
589}
590
592{
593 if (!writer.isNull()) {
594 if (!writer.writeListHeader(s_reply_len)) {
595 return false;
596 }
597 if (!writer.writeBool(return_helper)) {
598 return false;
599 }
600 }
601 return true;
602}
603
605{
606 if (!reader.readListReturn()) {
607 return false;
608 }
609 if (reader.noMore()) {
610 reader.fail();
611 return false;
612 }
613 if (!reader.readBool(return_helper)) {
614 reader.fail();
615 return false;
616 }
617 return true;
618}
619
624
625// getLanguageRPC helper class implementation
627{
628 return cmd.write(connection);
629}
630
632{
633 return reply.read(connection);
634}
635
637{
638 yarp::os::idl::WireWriter writer(connection);
639 if (!writer.writeListHeader(s_cmd_len)) {
640 return false;
641 }
642 return write(writer);
643}
644
646{
647 yarp::os::idl::WireReader reader(connection);
648 if (!reader.readListHeader()) {
649 reader.fail();
650 return false;
651 }
652 return read(reader);
653}
654
656{
657 if (!writeTag(writer)) {
658 return false;
659 }
660 if (!writeArgs(writer)) {
661 return false;
662 }
663 return true;
664}
665
667{
668 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
669 return false;
670 }
671 return true;
672}
673
675{
676 return true;
677}
678
680{
681 if (!readTag(reader)) {
682 return false;
683 }
684 if (!readArgs(reader)) {
685 return false;
686 }
687 return true;
688}
689
691{
692 std::string tag = reader.readTag(s_tag_len);
693 if (reader.isError()) {
694 return false;
695 }
696 if (tag != s_tag) {
697 reader.fail();
698 return false;
699 }
700 return true;
701}
702
704{
705 if (!reader.noMore()) {
706 reader.fail();
707 return false;
708 }
709 return true;
710}
711
713{
714 yarp::os::idl::WireWriter writer(connection);
715 return write(writer);
716}
717
719{
720 yarp::os::idl::WireReader reader(connection);
721 return read(reader);
722}
723
725{
726 if (!writer.isNull()) {
727 if (!writer.writeListHeader(s_reply_len)) {
728 return false;
729 }
730 if (!writer.write(return_helper)) {
731 return false;
732 }
733 }
734 return true;
735}
736
738{
739 if (!reader.readListReturn()) {
740 return false;
741 }
742 if (reader.noMore()) {
743 reader.fail();
744 return false;
745 }
746 if (!reader.read(return_helper)) {
747 reader.fail();
748 return false;
749 }
750 return true;
751}
752
757
758// getStatusRPC helper class implementation
760{
761 return cmd.write(connection);
762}
763
765{
766 return reply.read(connection);
767}
768
770{
771 yarp::os::idl::WireWriter writer(connection);
772 if (!writer.writeListHeader(s_cmd_len)) {
773 return false;
774 }
775 return write(writer);
776}
777
779{
780 yarp::os::idl::WireReader reader(connection);
781 if (!reader.readListHeader()) {
782 reader.fail();
783 return false;
784 }
785 return read(reader);
786}
787
789{
790 if (!writeTag(writer)) {
791 return false;
792 }
793 if (!writeArgs(writer)) {
794 return false;
795 }
796 return true;
797}
798
800{
801 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
802 return false;
803 }
804 return true;
805}
806
808{
809 return true;
810}
811
813{
814 if (!readTag(reader)) {
815 return false;
816 }
817 if (!readArgs(reader)) {
818 return false;
819 }
820 return true;
821}
822
824{
825 std::string tag = reader.readTag(s_tag_len);
826 if (reader.isError()) {
827 return false;
828 }
829 if (tag != s_tag) {
830 reader.fail();
831 return false;
832 }
833 return true;
834}
835
837{
838 if (!reader.noMore()) {
839 reader.fail();
840 return false;
841 }
842 return true;
843}
844
846{
847 yarp::os::idl::WireWriter writer(connection);
848 return write(writer);
849}
850
852{
853 yarp::os::idl::WireReader reader(connection);
854 return read(reader);
855}
856
858{
859 if (!writer.isNull()) {
860 if (!writer.writeListHeader(s_reply_len)) {
861 return false;
862 }
863 if (!writer.write(return_helper)) {
864 return false;
865 }
866 }
867 return true;
868}
869
871{
872 if (!reader.readListReturn()) {
873 return false;
874 }
875 if (reader.noMore()) {
876 reader.fail();
877 return false;
878 }
879 if (!reader.read(return_helper)) {
880 reader.fail();
881 return false;
882 }
883 return true;
884}
885
890
891// resetBotRPC helper class implementation
893{
894 return cmd.write(connection);
895}
896
898{
899 return reply.read(connection);
900}
901
903{
904 yarp::os::idl::WireWriter writer(connection);
905 if (!writer.writeListHeader(s_cmd_len)) {
906 return false;
907 }
908 return write(writer);
909}
910
912{
913 yarp::os::idl::WireReader reader(connection);
914 if (!reader.readListHeader()) {
915 reader.fail();
916 return false;
917 }
918 return read(reader);
919}
920
922{
923 if (!writeTag(writer)) {
924 return false;
925 }
926 if (!writeArgs(writer)) {
927 return false;
928 }
929 return true;
930}
931
933{
934 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
935 return false;
936 }
937 return true;
938}
939
941{
942 return true;
943}
944
946{
947 if (!readTag(reader)) {
948 return false;
949 }
950 if (!readArgs(reader)) {
951 return false;
952 }
953 return true;
954}
955
957{
958 std::string tag = reader.readTag(s_tag_len);
959 if (reader.isError()) {
960 return false;
961 }
962 if (tag != s_tag) {
963 reader.fail();
964 return false;
965 }
966 return true;
967}
968
970{
971 if (!reader.noMore()) {
972 reader.fail();
973 return false;
974 }
975 return true;
976}
977
979{
980 yarp::os::idl::WireWriter writer(connection);
981 return write(writer);
982}
983
985{
986 yarp::os::idl::WireReader reader(connection);
987 return read(reader);
988}
989
991{
992 if (!writer.isNull()) {
993 if (!writer.writeListHeader(s_reply_len)) {
994 return false;
995 }
996 if (!writer.writeBool(return_helper)) {
997 return false;
998 }
999 }
1000 return true;
1001}
1002
1004{
1005 if (!reader.readListReturn()) {
1006 return false;
1007 }
1008 if (reader.noMore()) {
1009 reader.fail();
1010 return false;
1011 }
1012 if (!reader.readBool(return_helper)) {
1013 reader.fail();
1014 return false;
1015 }
1016 return true;
1017}
1018
1023
1024// Constructor
1026{
1027 yarp().setOwner(*this);
1028}
1029
1030return_interact IChatBotMsgs::interactRPC(const std::string& messageIn)
1031{
1032 if (!yarp().canWrite()) {
1033 yError("Missing server method '%s'?", IChatBotMsgs_interactRPC_helper::s_prototype);
1034 }
1035 IChatBotMsgs_interactRPC_helper helper{messageIn};
1036 bool ok = yarp().write(helper, helper);
1037 return ok ? helper.reply.return_helper : return_interact{};
1038}
1039
1040bool IChatBotMsgs::setLanguageRPC(const std::string& language)
1041{
1042 if (!yarp().canWrite()) {
1043 yError("Missing server method '%s'?", IChatBotMsgs_setLanguageRPC_helper::s_prototype);
1044 }
1045 IChatBotMsgs_setLanguageRPC_helper helper{language};
1046 bool ok = yarp().write(helper, helper);
1047 return ok ? helper.reply.return_helper : bool{};
1048}
1049
1051{
1052 if (!yarp().canWrite()) {
1053 yError("Missing server method '%s'?", IChatBotMsgs_getLanguageRPC_helper::s_prototype);
1054 }
1056 bool ok = yarp().write(helper, helper);
1057 return ok ? helper.reply.return_helper : return_getLanguage{};
1058}
1059
1061{
1062 if (!yarp().canWrite()) {
1063 yError("Missing server method '%s'?", IChatBotMsgs_getStatusRPC_helper::s_prototype);
1064 }
1066 bool ok = yarp().write(helper, helper);
1067 return ok ? helper.reply.return_helper : return_getStatus{};
1068}
1069
1071{
1072 if (!yarp().canWrite()) {
1073 yError("Missing server method '%s'?", IChatBotMsgs_resetBotRPC_helper::s_prototype);
1074 }
1076 bool ok = yarp().write(helper, helper);
1077 return ok ? helper.reply.return_helper : bool{};
1078}
1079
1080// help method
1081std::vector<std::string> IChatBotMsgs::help(const std::string& functionName)
1082{
1083 bool showAll = (functionName == "--all");
1084 std::vector<std::string> helpString;
1085 if (showAll) {
1086 helpString.emplace_back("*** Available commands:");
1087 helpString.emplace_back(IChatBotMsgs_interactRPC_helper::s_tag);
1088 helpString.emplace_back(IChatBotMsgs_setLanguageRPC_helper::s_tag);
1089 helpString.emplace_back(IChatBotMsgs_getLanguageRPC_helper::s_tag);
1090 helpString.emplace_back(IChatBotMsgs_getStatusRPC_helper::s_tag);
1091 helpString.emplace_back(IChatBotMsgs_resetBotRPC_helper::s_tag);
1092 helpString.emplace_back("help");
1093 } else {
1094 if (functionName == IChatBotMsgs_interactRPC_helper::s_tag) {
1095 helpString.emplace_back(IChatBotMsgs_interactRPC_helper::s_prototype);
1096 }
1097 if (functionName == IChatBotMsgs_setLanguageRPC_helper::s_tag) {
1098 helpString.emplace_back(IChatBotMsgs_setLanguageRPC_helper::s_prototype);
1099 }
1100 if (functionName == IChatBotMsgs_getLanguageRPC_helper::s_tag) {
1101 helpString.emplace_back(IChatBotMsgs_getLanguageRPC_helper::s_prototype);
1102 }
1103 if (functionName == IChatBotMsgs_getStatusRPC_helper::s_tag) {
1104 helpString.emplace_back(IChatBotMsgs_getStatusRPC_helper::s_prototype);
1105 }
1106 if (functionName == IChatBotMsgs_resetBotRPC_helper::s_tag) {
1107 helpString.emplace_back(IChatBotMsgs_resetBotRPC_helper::s_prototype);
1108 }
1109 if (functionName == "help") {
1110 helpString.emplace_back("std::vector<std::string> help(const std::string& functionName = \"--all\")");
1111 helpString.emplace_back("Return list of available commands, or help message for a specific function");
1112 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");
1113 helpString.emplace_back("@return list of strings (one string per line)");
1114 }
1115 }
1116 if (helpString.empty()) {
1117 helpString.emplace_back("Command not found");
1118 }
1119 return helpString;
1120}
1121
1122// read from ConnectionReader
1124{
1125 constexpr size_t max_tag_len = 1;
1126 size_t tag_len = 1;
1127
1128 yarp::os::idl::WireReader reader(connection);
1129 reader.expectAccept();
1130 if (!reader.readListHeader()) {
1131 reader.fail();
1132 return false;
1133 }
1134
1135 std::string tag = reader.readTag(1);
1136 bool direct = (tag == "__direct__");
1137 if (direct) {
1138 tag = reader.readTag(1);
1139 }
1140 while (tag_len <= max_tag_len && !reader.isError()) {
1143 if (!helper.cmd.readArgs(reader)) {
1144 return false;
1145 }
1146
1147 helper.call(this);
1148
1149 yarp::os::idl::WireWriter writer(reader);
1150 if (!helper.reply.write(writer)) {
1151 return false;
1152 }
1153 reader.accept();
1154 return true;
1155 }
1158 if (!helper.cmd.readArgs(reader)) {
1159 return false;
1160 }
1161
1162 helper.call(this);
1163
1164 yarp::os::idl::WireWriter writer(reader);
1165 if (!helper.reply.write(writer)) {
1166 return false;
1167 }
1168 reader.accept();
1169 return true;
1170 }
1173 if (!helper.cmd.readArgs(reader)) {
1174 return false;
1175 }
1176
1177 helper.call(this);
1178
1179 yarp::os::idl::WireWriter writer(reader);
1180 if (!helper.reply.write(writer)) {
1181 return false;
1182 }
1183 reader.accept();
1184 return true;
1185 }
1188 if (!helper.cmd.readArgs(reader)) {
1189 return false;
1190 }
1191
1192 helper.call(this);
1193
1194 yarp::os::idl::WireWriter writer(reader);
1195 if (!helper.reply.write(writer)) {
1196 return false;
1197 }
1198 reader.accept();
1199 return true;
1200 }
1203 if (!helper.cmd.readArgs(reader)) {
1204 return false;
1205 }
1206
1207 helper.call(this);
1208
1209 yarp::os::idl::WireWriter writer(reader);
1210 if (!helper.reply.write(writer)) {
1211 return false;
1212 }
1213 reader.accept();
1214 return true;
1215 }
1216 if (tag == "help") {
1217 std::string functionName;
1218 if (!reader.readString(functionName)) {
1219 functionName = "--all";
1220 }
1221 auto help_strings = help(functionName);
1222 yarp::os::idl::WireWriter writer(reader);
1223 if (!writer.isNull()) {
1224 if (!writer.writeListHeader(2)) {
1225 return false;
1226 }
1227 if (!writer.writeTag("many", 1, 0)) {
1228 return false;
1229 }
1230 if (!writer.writeListBegin(0, help_strings.size())) {
1231 return false;
1232 }
1233 for (const auto& help_string : help_strings) {
1234 if (!writer.writeString(help_string)) {
1235 return false;
1236 }
1237 }
1238 if (!writer.writeListEnd()) {
1239 return false;
1240 }
1241 }
1242 reader.accept();
1243 return true;
1244 }
1245 if (reader.noMore()) {
1246 reader.fail();
1247 return false;
1248 }
1249 std::string next_tag = reader.readTag(1);
1250 if (next_tag.empty()) {
1251 break;
1252 }
1253 tag.append("_").append(next_tag);
1254 tag_len = std::count(tag.begin(), tag.end(), '_') + 1;
1255 }
1256 return false;
1257}
#define yError(...)
Definition Log.h:361
bool readArgs(yarp::os::idl::WireReader &reader)
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 writeArgs(const yarp::os::idl::WireWriter &writer) const
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_help
static constexpr const char * s_tag
static constexpr const char * s_prototype
static constexpr size_t s_reply_len
static constexpr size_t s_cmd_len
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.
return_getLanguage(*)() funcptr_t
static constexpr size_t s_tag_len
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 write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
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.
static constexpr const char * s_help
return_getStatus(*)() funcptr_t
static constexpr const char * s_tag
static constexpr size_t s_reply_len
static constexpr size_t s_cmd_len
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
void call(IChatBotMsgs *ptr)
static constexpr const char * s_prototype
static constexpr size_t s_tag_len
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool writeArgs(const yarp::os::idl::WireWriter &writer) 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 write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool readArgs(yarp::os::idl::WireReader &reader)
bool readTag(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.
static constexpr size_t s_reply_len
static constexpr const char * s_prototype
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
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.
static constexpr size_t s_cmd_len
static constexpr size_t s_tag_len
return_interact(*)(const std::string &) funcptr_t
void call(IChatBotMsgs *ptr)
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 readArgs(yarp::os::idl::WireReader &reader)
bool writeTag(const yarp::os::idl::WireWriter &writer) const
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.
static constexpr const char * s_tag
static constexpr const char * s_help
static constexpr const char * s_prototype
void call(IChatBotMsgs *ptr)
static constexpr size_t s_tag_len
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 size_t s_reply_len
static constexpr size_t s_cmd_len
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 readTag(yarp::os::idl::WireReader &reader)
bool writeTag(const yarp::os::idl::WireWriter &writer) const
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.
static constexpr const char * s_prototype
static constexpr size_t s_reply_len
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
bool(*)(const std::string &) funcptr_t
static constexpr const char * s_tag
static constexpr size_t s_cmd_len
static constexpr const char * s_help
static constexpr size_t s_tag_len
virtual bool resetBotRPC()
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
virtual bool setLanguageRPC(const std::string &language)
virtual std::vector< std::string > help(const std::string &functionName="--all")
virtual return_getStatus getStatusRPC()
virtual return_interact interactRPC(const std::string &messageIn)
virtual return_getLanguage getLanguageRPC()
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
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)
std::string readTag(size_t len=static_cast< size_t >(-1))
bool read(WirePortable &obj)
IDL-friendly connection writer.
Definition WireWriter.h:28
bool writeBool(bool x, bool skip_tag=false) const
bool write(const WirePortable &obj) 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
The main, catch-all namespace for YARP.
Definition dirs.h:16