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 <yarp/conf/version.h>
12#include <IChatBotMsgs.h>
14#include <yarp/os/LogStream.h>
15
17
18#include <algorithm>
19
20namespace
21{
22 YARP_LOG_COMPONENT(SERVICE_LOG_COMPONENT, "IChatBotMsgs")
23}
24
25//IChatBotMsgs_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 IChatBotMsgs_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 IChatBotMsgs::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// interactRPC helper class declaration
110 public yarp::os::Portable
111{
112public:
114 explicit IChatBotMsgs_interactRPC_helper(const std::string& messageIn);
115 bool write(yarp::os::ConnectionWriter& connection) const override;
116 bool read(yarp::os::ConnectionReader& connection) override;
117
118 class Command :
120 {
121 public:
122 Command() = default;
123 explicit Command(const std::string& messageIn);
124
125 ~Command() override = default;
126
127 bool write(yarp::os::ConnectionWriter& connection) const override;
128 bool read(yarp::os::ConnectionReader& connection) override;
129
130 bool write(const yarp::os::idl::WireWriter& writer) const override;
131 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
132 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
133
134 bool read(yarp::os::idl::WireReader& reader) override;
137
138 std::string messageIn{};
139 };
140
141 class Reply :
143 {
144 public:
145 Reply() = default;
146 ~Reply() override = default;
147
148 bool write(yarp::os::ConnectionWriter& connection) const override;
149 bool read(yarp::os::ConnectionReader& connection) override;
150
151 bool write(const yarp::os::idl::WireWriter& writer) const override;
152 bool read(yarp::os::idl::WireReader& reader) override;
153
155 };
156
157 using funcptr_t = return_interact (*)(const std::string&);
158 void call(IChatBotMsgs* ptr);
159
162
163 static constexpr const char* s_tag{"interactRPC"};
164 static constexpr size_t s_tag_len{1};
165 static constexpr size_t s_cmd_len{2};
166 static constexpr size_t s_reply_len{2};
167 static constexpr const char* s_prototype{"return_interact IChatBotMsgs::interactRPC(const std::string& messageIn)"};
168 static constexpr const char* s_help{""};
169};
170
171// setLanguageRPC helper class declaration
173 public yarp::os::Portable
174{
175public:
177 explicit IChatBotMsgs_setLanguageRPC_helper(const std::string& language);
178 bool write(yarp::os::ConnectionWriter& connection) const override;
179 bool read(yarp::os::ConnectionReader& connection) override;
180
181 class Command :
183 {
184 public:
185 Command() = default;
186 explicit Command(const std::string& language);
187
188 ~Command() override = default;
189
190 bool write(yarp::os::ConnectionWriter& connection) const override;
191 bool read(yarp::os::ConnectionReader& connection) override;
192
193 bool write(const yarp::os::idl::WireWriter& writer) const override;
194 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
195 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
196
197 bool read(yarp::os::idl::WireReader& reader) override;
200
201 std::string language{};
202 };
203
204 class Reply :
206 {
207 public:
208 Reply() = default;
209 ~Reply() override = default;
210
211 bool write(yarp::os::ConnectionWriter& connection) const override;
212 bool read(yarp::os::ConnectionReader& connection) override;
213
214 bool write(const yarp::os::idl::WireWriter& writer) const override;
215 bool read(yarp::os::idl::WireReader& reader) override;
216
218 };
219
220 using funcptr_t = yarp::dev::ReturnValue (*)(const std::string&);
221 void call(IChatBotMsgs* ptr);
222
225
226 static constexpr const char* s_tag{"setLanguageRPC"};
227 static constexpr size_t s_tag_len{1};
228 static constexpr size_t s_cmd_len{2};
229 static constexpr size_t s_reply_len{1};
230 static constexpr const char* s_prototype{"yarp::dev::ReturnValue IChatBotMsgs::setLanguageRPC(const std::string& language)"};
231 static constexpr const char* s_help{""};
232};
233
234// getLanguageRPC helper class declaration
236 public yarp::os::Portable
237{
238public:
240 bool write(yarp::os::ConnectionWriter& connection) const override;
241 bool read(yarp::os::ConnectionReader& connection) override;
242
243 class Command :
245 {
246 public:
247 Command() = default;
248 ~Command() override = default;
249
250 bool write(yarp::os::ConnectionWriter& connection) const override;
251 bool read(yarp::os::ConnectionReader& connection) override;
252
253 bool write(const yarp::os::idl::WireWriter& writer) const override;
254 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
255 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
256
257 bool read(yarp::os::idl::WireReader& reader) override;
260 };
261
262 class Reply :
264 {
265 public:
266 Reply() = default;
267 ~Reply() override = default;
268
269 bool write(yarp::os::ConnectionWriter& connection) const override;
270 bool read(yarp::os::ConnectionReader& connection) override;
271
272 bool write(const yarp::os::idl::WireWriter& writer) const override;
273 bool read(yarp::os::idl::WireReader& reader) override;
274
276 };
277
279 void call(IChatBotMsgs* ptr);
280
283
284 static constexpr const char* s_tag{"getLanguageRPC"};
285 static constexpr size_t s_tag_len{1};
286 static constexpr size_t s_cmd_len{1};
287 static constexpr size_t s_reply_len{2};
288 static constexpr const char* s_prototype{"return_getLanguage IChatBotMsgs::getLanguageRPC()"};
289 static constexpr const char* s_help{""};
290};
291
292// getStatusRPC helper class declaration
294 public yarp::os::Portable
295{
296public:
298 bool write(yarp::os::ConnectionWriter& connection) const override;
299 bool read(yarp::os::ConnectionReader& connection) override;
300
301 class Command :
303 {
304 public:
305 Command() = default;
306 ~Command() override = default;
307
308 bool write(yarp::os::ConnectionWriter& connection) const override;
309 bool read(yarp::os::ConnectionReader& connection) override;
310
311 bool write(const yarp::os::idl::WireWriter& writer) const override;
312 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
313 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
314
315 bool read(yarp::os::idl::WireReader& reader) override;
318 };
319
320 class Reply :
322 {
323 public:
324 Reply() = default;
325 ~Reply() override = default;
326
327 bool write(yarp::os::ConnectionWriter& connection) const override;
328 bool read(yarp::os::ConnectionReader& connection) override;
329
330 bool write(const yarp::os::idl::WireWriter& writer) const override;
331 bool read(yarp::os::idl::WireReader& reader) override;
332
334 };
335
337 void call(IChatBotMsgs* ptr);
338
341
342 static constexpr const char* s_tag{"getStatusRPC"};
343 static constexpr size_t s_tag_len{1};
344 static constexpr size_t s_cmd_len{1};
345 static constexpr size_t s_reply_len{2};
346 static constexpr const char* s_prototype{"return_getStatus IChatBotMsgs::getStatusRPC()"};
347 static constexpr const char* s_help{""};
348};
349
350// resetBotRPC helper class declaration
352 public yarp::os::Portable
353{
354public:
356 bool write(yarp::os::ConnectionWriter& connection) const override;
357 bool read(yarp::os::ConnectionReader& connection) override;
358
359 class Command :
361 {
362 public:
363 Command() = default;
364 ~Command() override = default;
365
366 bool write(yarp::os::ConnectionWriter& connection) const override;
367 bool read(yarp::os::ConnectionReader& connection) override;
368
369 bool write(const yarp::os::idl::WireWriter& writer) const override;
370 bool writeTag(const yarp::os::idl::WireWriter& writer) const;
371 bool writeArgs(const yarp::os::idl::WireWriter& writer) const;
372
373 bool read(yarp::os::idl::WireReader& reader) override;
376 };
377
378 class Reply :
380 {
381 public:
382 Reply() = default;
383 ~Reply() override = default;
384
385 bool write(yarp::os::ConnectionWriter& connection) const override;
386 bool read(yarp::os::ConnectionReader& connection) override;
387
388 bool write(const yarp::os::idl::WireWriter& writer) const override;
389 bool read(yarp::os::idl::WireReader& reader) override;
390
392 };
393
395 void call(IChatBotMsgs* ptr);
396
399
400 static constexpr const char* s_tag{"resetBotRPC"};
401 static constexpr size_t s_tag_len{1};
402 static constexpr size_t s_cmd_len{1};
403 static constexpr size_t s_reply_len{1};
404 static constexpr const char* s_prototype{"yarp::dev::ReturnValue IChatBotMsgs::resetBotRPC()"};
405 static constexpr const char* s_help{""};
406};
407
408// interactRPC helper class implementation
410 cmd{messageIn}
411{
412}
413
415{
416 return cmd.write(connection);
417}
418
420{
421 return reply.read(connection);
422}
423
425 messageIn{messageIn}
426{
427}
428
430{
431 yarp::os::idl::WireWriter writer(connection);
432 if (!writer.writeListHeader(s_cmd_len)) {
433 return false;
434 }
435 return write(writer);
436}
437
439{
440 yarp::os::idl::WireReader reader(connection);
441 if (!reader.readListHeader()) {
442 reader.fail();
443 return false;
444 }
445 return read(reader);
446}
447
449{
450 if (!writeTag(writer)) {
451 return false;
452 }
453 if (!writeArgs(writer)) {
454 return false;
455 }
456 return true;
457}
458
460{
461 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
462 return false;
463 }
464 return true;
465}
466
468{
469 if (!writer.writeString(messageIn)) {
470 return false;
471 }
472 return true;
473}
474
476{
477 if (!readTag(reader)) {
478 return false;
479 }
480 if (!readArgs(reader)) {
481 return false;
482 }
483 return true;
484}
485
487{
488 std::string tag = reader.readTag(s_tag_len);
489 if (reader.isError()) {
490 return false;
491 }
492 if (tag != s_tag) {
493 reader.fail();
494 return false;
495 }
496 return true;
497}
498
500{
501 if (reader.noMore()) {
502 reader.fail();
503 return false;
504 }
505 if (!reader.readString(messageIn)) {
506 reader.fail();
507 return false;
508 }
509 if (!reader.noMore()) {
510 reader.fail();
511 return false;
512 }
513 return true;
514}
515
517{
518 yarp::os::idl::WireWriter writer(connection);
519 return write(writer);
520}
521
523{
524 yarp::os::idl::WireReader reader(connection);
525 return read(reader);
526}
527
529{
530 if (!writer.isNull()) {
531 if (!writer.writeListHeader(s_reply_len)) {
532 return false;
533 }
534 if (!writer.write(return_helper)) {
535 return false;
536 }
537 }
538 return true;
539}
540
542{
543 if (!reader.readListReturn()) {
544 return false;
545 }
546 if (reader.noMore()) {
547 reader.fail();
548 return false;
549 }
550 if (!reader.read(return_helper)) {
551 reader.fail();
552 return false;
553 }
554 return true;
555}
556
561
562// setLanguageRPC helper class implementation
564 cmd{language}
565{
566}
567
569{
570 return cmd.write(connection);
571}
572
574{
575 return reply.read(connection);
576}
577
579 language{language}
580{
581}
582
584{
585 yarp::os::idl::WireWriter writer(connection);
586 if (!writer.writeListHeader(s_cmd_len)) {
587 return false;
588 }
589 return write(writer);
590}
591
593{
594 yarp::os::idl::WireReader reader(connection);
595 if (!reader.readListHeader()) {
596 reader.fail();
597 return false;
598 }
599 return read(reader);
600}
601
603{
604 if (!writeTag(writer)) {
605 return false;
606 }
607 if (!writeArgs(writer)) {
608 return false;
609 }
610 return true;
611}
612
614{
615 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
616 return false;
617 }
618 return true;
619}
620
622{
623 if (!writer.writeString(language)) {
624 return false;
625 }
626 return true;
627}
628
630{
631 if (!readTag(reader)) {
632 return false;
633 }
634 if (!readArgs(reader)) {
635 return false;
636 }
637 return true;
638}
639
641{
642 std::string tag = reader.readTag(s_tag_len);
643 if (reader.isError()) {
644 return false;
645 }
646 if (tag != s_tag) {
647 reader.fail();
648 return false;
649 }
650 return true;
651}
652
654{
655 if (reader.noMore()) {
656 reader.fail();
657 return false;
658 }
659 if (!reader.readString(language)) {
660 reader.fail();
661 return false;
662 }
663 if (!reader.noMore()) {
664 reader.fail();
665 return false;
666 }
667 return true;
668}
669
671{
672 yarp::os::idl::WireWriter writer(connection);
673 return write(writer);
674}
675
677{
678 yarp::os::idl::WireReader reader(connection);
679 return read(reader);
680}
681
683{
684 if (!writer.isNull()) {
685 if (!writer.write(return_helper)) {
686 return false;
687 }
688 }
689 return true;
690}
691
693{
694 if (reader.noMore()) {
695 reader.fail();
696 return false;
697 }
698 if (!reader.read(return_helper)) {
699 reader.fail();
700 return false;
701 }
702 return true;
703}
704
709
710// getLanguageRPC helper class implementation
712{
713 return cmd.write(connection);
714}
715
717{
718 return reply.read(connection);
719}
720
722{
723 yarp::os::idl::WireWriter writer(connection);
724 if (!writer.writeListHeader(s_cmd_len)) {
725 return false;
726 }
727 return write(writer);
728}
729
731{
732 yarp::os::idl::WireReader reader(connection);
733 if (!reader.readListHeader()) {
734 reader.fail();
735 return false;
736 }
737 return read(reader);
738}
739
741{
742 if (!writeTag(writer)) {
743 return false;
744 }
745 if (!writeArgs(writer)) {
746 return false;
747 }
748 return true;
749}
750
752{
753 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
754 return false;
755 }
756 return true;
757}
758
760{
761 return true;
762}
763
765{
766 if (!readTag(reader)) {
767 return false;
768 }
769 if (!readArgs(reader)) {
770 return false;
771 }
772 return true;
773}
774
776{
777 std::string tag = reader.readTag(s_tag_len);
778 if (reader.isError()) {
779 return false;
780 }
781 if (tag != s_tag) {
782 reader.fail();
783 return false;
784 }
785 return true;
786}
787
789{
790 if (!reader.noMore()) {
791 reader.fail();
792 return false;
793 }
794 return true;
795}
796
798{
799 yarp::os::idl::WireWriter writer(connection);
800 return write(writer);
801}
802
804{
805 yarp::os::idl::WireReader reader(connection);
806 return read(reader);
807}
808
810{
811 if (!writer.isNull()) {
812 if (!writer.writeListHeader(s_reply_len)) {
813 return false;
814 }
815 if (!writer.write(return_helper)) {
816 return false;
817 }
818 }
819 return true;
820}
821
823{
824 if (!reader.readListReturn()) {
825 return false;
826 }
827 if (reader.noMore()) {
828 reader.fail();
829 return false;
830 }
831 if (!reader.read(return_helper)) {
832 reader.fail();
833 return false;
834 }
835 return true;
836}
837
842
843// getStatusRPC helper class implementation
845{
846 return cmd.write(connection);
847}
848
850{
851 return reply.read(connection);
852}
853
855{
856 yarp::os::idl::WireWriter writer(connection);
857 if (!writer.writeListHeader(s_cmd_len)) {
858 return false;
859 }
860 return write(writer);
861}
862
864{
865 yarp::os::idl::WireReader reader(connection);
866 if (!reader.readListHeader()) {
867 reader.fail();
868 return false;
869 }
870 return read(reader);
871}
872
874{
875 if (!writeTag(writer)) {
876 return false;
877 }
878 if (!writeArgs(writer)) {
879 return false;
880 }
881 return true;
882}
883
885{
886 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
887 return false;
888 }
889 return true;
890}
891
893{
894 return true;
895}
896
898{
899 if (!readTag(reader)) {
900 return false;
901 }
902 if (!readArgs(reader)) {
903 return false;
904 }
905 return true;
906}
907
909{
910 std::string tag = reader.readTag(s_tag_len);
911 if (reader.isError()) {
912 return false;
913 }
914 if (tag != s_tag) {
915 reader.fail();
916 return false;
917 }
918 return true;
919}
920
922{
923 if (!reader.noMore()) {
924 reader.fail();
925 return false;
926 }
927 return true;
928}
929
931{
932 yarp::os::idl::WireWriter writer(connection);
933 return write(writer);
934}
935
937{
938 yarp::os::idl::WireReader reader(connection);
939 return read(reader);
940}
941
943{
944 if (!writer.isNull()) {
945 if (!writer.writeListHeader(s_reply_len)) {
946 return false;
947 }
948 if (!writer.write(return_helper)) {
949 return false;
950 }
951 }
952 return true;
953}
954
956{
957 if (!reader.readListReturn()) {
958 return false;
959 }
960 if (reader.noMore()) {
961 reader.fail();
962 return false;
963 }
964 if (!reader.read(return_helper)) {
965 reader.fail();
966 return false;
967 }
968 return true;
969}
970
975
976// resetBotRPC helper class implementation
978{
979 return cmd.write(connection);
980}
981
983{
984 return reply.read(connection);
985}
986
988{
989 yarp::os::idl::WireWriter writer(connection);
990 if (!writer.writeListHeader(s_cmd_len)) {
991 return false;
992 }
993 return write(writer);
994}
995
997{
998 yarp::os::idl::WireReader reader(connection);
999 if (!reader.readListHeader()) {
1000 reader.fail();
1001 return false;
1002 }
1003 return read(reader);
1004}
1005
1007{
1008 if (!writeTag(writer)) {
1009 return false;
1010 }
1011 if (!writeArgs(writer)) {
1012 return false;
1013 }
1014 return true;
1015}
1016
1018{
1019 if (!writer.writeTag(s_tag, 1, s_tag_len)) {
1020 return false;
1021 }
1022 return true;
1023}
1024
1026{
1027 return true;
1028}
1029
1031{
1032 if (!readTag(reader)) {
1033 return false;
1034 }
1035 if (!readArgs(reader)) {
1036 return false;
1037 }
1038 return true;
1039}
1040
1042{
1043 std::string tag = reader.readTag(s_tag_len);
1044 if (reader.isError()) {
1045 return false;
1046 }
1047 if (tag != s_tag) {
1048 reader.fail();
1049 return false;
1050 }
1051 return true;
1052}
1053
1055{
1056 if (!reader.noMore()) {
1057 reader.fail();
1058 return false;
1059 }
1060 return true;
1061}
1062
1064{
1065 yarp::os::idl::WireWriter writer(connection);
1066 return write(writer);
1067}
1068
1070{
1071 yarp::os::idl::WireReader reader(connection);
1072 return read(reader);
1073}
1074
1076{
1077 if (!writer.isNull()) {
1078 if (!writer.write(return_helper)) {
1079 return false;
1080 }
1081 }
1082 return true;
1083}
1084
1086{
1087 if (reader.noMore()) {
1088 reader.fail();
1089 return false;
1090 }
1091 if (!reader.read(return_helper)) {
1092 reader.fail();
1093 return false;
1094 }
1095 return true;
1096}
1097
1102
1103// Constructor
1105{
1106 yarp().setOwner(*this);
1107}
1108
1109return_interact IChatBotMsgs::interactRPC(const std::string& messageIn)
1110{
1111 if (!yarp().canWrite()) {
1112 yError("Missing server method '%s'?", IChatBotMsgs_interactRPC_helper::s_prototype);
1113 }
1114 IChatBotMsgs_interactRPC_helper helper{messageIn};
1115 bool ok = yarp().write(helper, helper);
1116 return ok ? helper.reply.return_helper : return_interact{};
1117}
1118
1120{
1121 if (!yarp().canWrite()) {
1122 yError("Missing server method '%s'?", IChatBotMsgs_setLanguageRPC_helper::s_prototype);
1123 }
1124 IChatBotMsgs_setLanguageRPC_helper helper{language};
1125 bool ok = yarp().write(helper, helper);
1126 return ok ? helper.reply.return_helper : yarp::dev::ReturnValue{};
1127}
1128
1130{
1131 if (!yarp().canWrite()) {
1132 yError("Missing server method '%s'?", IChatBotMsgs_getLanguageRPC_helper::s_prototype);
1133 }
1135 bool ok = yarp().write(helper, helper);
1136 return ok ? helper.reply.return_helper : return_getLanguage{};
1137}
1138
1140{
1141 if (!yarp().canWrite()) {
1142 yError("Missing server method '%s'?", IChatBotMsgs_getStatusRPC_helper::s_prototype);
1143 }
1145 bool ok = yarp().write(helper, helper);
1146 return ok ? helper.reply.return_helper : return_getStatus{};
1147}
1148
1150{
1151 if (!yarp().canWrite()) {
1152 yError("Missing server method '%s'?", IChatBotMsgs_resetBotRPC_helper::s_prototype);
1153 }
1155 bool ok = yarp().write(helper, helper);
1156 return ok ? helper.reply.return_helper : yarp::dev::ReturnValue{};
1157}
1158
1159// help method
1160std::vector<std::string> IChatBotMsgs::help(const std::string& functionName)
1161{
1162 bool showAll = (functionName == "--all");
1163 std::vector<std::string> helpString;
1164 if (showAll) {
1165 helpString.emplace_back("*** Available commands:");
1166 helpString.emplace_back(IChatBotMsgs_interactRPC_helper::s_tag);
1167 helpString.emplace_back(IChatBotMsgs_setLanguageRPC_helper::s_tag);
1168 helpString.emplace_back(IChatBotMsgs_getLanguageRPC_helper::s_tag);
1169 helpString.emplace_back(IChatBotMsgs_getStatusRPC_helper::s_tag);
1170 helpString.emplace_back(IChatBotMsgs_resetBotRPC_helper::s_tag);
1171 helpString.emplace_back("help");
1172 } else {
1173 if (functionName == IChatBotMsgs_interactRPC_helper::s_tag) {
1174 helpString.emplace_back(IChatBotMsgs_interactRPC_helper::s_prototype);
1175 }
1176 if (functionName == IChatBotMsgs_setLanguageRPC_helper::s_tag) {
1177 helpString.emplace_back(IChatBotMsgs_setLanguageRPC_helper::s_prototype);
1178 }
1179 if (functionName == IChatBotMsgs_getLanguageRPC_helper::s_tag) {
1180 helpString.emplace_back(IChatBotMsgs_getLanguageRPC_helper::s_prototype);
1181 }
1182 if (functionName == IChatBotMsgs_getStatusRPC_helper::s_tag) {
1183 helpString.emplace_back(IChatBotMsgs_getStatusRPC_helper::s_prototype);
1184 }
1185 if (functionName == IChatBotMsgs_resetBotRPC_helper::s_tag) {
1186 helpString.emplace_back(IChatBotMsgs_resetBotRPC_helper::s_prototype);
1187 }
1188 if (functionName == "help") {
1189 helpString.emplace_back("std::vector<std::string> help(const std::string& functionName = \"--all\")");
1190 helpString.emplace_back("Return list of available commands, or help message for a specific function");
1191 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");
1192 helpString.emplace_back("@return list of strings (one string per line)");
1193 }
1194 }
1195 if (helpString.empty()) {
1196 helpString.emplace_back("Command not found");
1197 }
1198 return helpString;
1199}
1200
1201// read from ConnectionReader
1203{
1204 constexpr size_t max_tag_len = 1;
1205 size_t tag_len = 1;
1206
1207 yarp::os::idl::WireReader reader(connection);
1208 reader.expectAccept();
1209 if (!reader.readListHeader()) {
1210 reader.fail();
1211 return false;
1212 }
1213
1214 std::string tag = reader.readTag(1);
1215 bool direct = (tag == "__direct__");
1216 if (direct) {
1217 tag = reader.readTag(1);
1218 }
1219 while (tag_len <= max_tag_len && !reader.isError()) {
1220 if(tag == "getRemoteProtocolVersion") {
1221 if (!reader.noMore()) {
1222 yError("Reader invalid protocol?! %s:%d - %s", __FILE__, __LINE__, __YFUNCTION__);
1223 reader.fail();
1224 return false;
1225 }
1226
1227 auto proto = getLocalProtocolVersion();
1228
1229 yarp::os::idl::WireWriter writer(reader);
1230 if (!writer.writeListHeader(1)) {
1231 yWarning("Writer invalid protocol?! %s:%d - %s", __FILE__, __LINE__, __YFUNCTION__);
1232 return false;}
1233 if (!writer.write(proto)) {
1234 yWarning("Writer invalid protocol?! %s:%d - %s", __FILE__, __LINE__, __YFUNCTION__);
1235 return false;
1236 }
1237 reader.accept();
1238 return true;
1239 }
1242 if (!helper.cmd.readArgs(reader)) {
1243 return false;
1244 }
1245
1246 helper.call(this);
1247
1248 yarp::os::idl::WireWriter writer(reader);
1249 if (!helper.reply.write(writer)) {
1250 return false;
1251 }
1252 reader.accept();
1253 return true;
1254 }
1257 if (!helper.cmd.readArgs(reader)) {
1258 return false;
1259 }
1260
1261 helper.call(this);
1262
1263 yarp::os::idl::WireWriter writer(reader);
1264 if (!helper.reply.write(writer)) {
1265 return false;
1266 }
1267 reader.accept();
1268 return true;
1269 }
1272 if (!helper.cmd.readArgs(reader)) {
1273 return false;
1274 }
1275
1276 helper.call(this);
1277
1278 yarp::os::idl::WireWriter writer(reader);
1279 if (!helper.reply.write(writer)) {
1280 return false;
1281 }
1282 reader.accept();
1283 return true;
1284 }
1287 if (!helper.cmd.readArgs(reader)) {
1288 return false;
1289 }
1290
1291 helper.call(this);
1292
1293 yarp::os::idl::WireWriter writer(reader);
1294 if (!helper.reply.write(writer)) {
1295 return false;
1296 }
1297 reader.accept();
1298 return true;
1299 }
1302 if (!helper.cmd.readArgs(reader)) {
1303 return false;
1304 }
1305
1306 helper.call(this);
1307
1308 yarp::os::idl::WireWriter writer(reader);
1309 if (!helper.reply.write(writer)) {
1310 return false;
1311 }
1312 reader.accept();
1313 return true;
1314 }
1315 if (tag == "help") {
1316 std::string functionName;
1317 if (!reader.readString(functionName)) {
1318 functionName = "--all";
1319 }
1320 auto help_strings = help(functionName);
1321 yarp::os::idl::WireWriter writer(reader);
1322 if (!writer.isNull()) {
1323 if (!writer.writeListHeader(2)) {
1324 return false;
1325 }
1326 if (!writer.writeTag("many", 1, 0)) {
1327 return false;
1328 }
1329 if (!writer.writeListBegin(0, help_strings.size())) {
1330 return false;
1331 }
1332 for (const auto& help_string : help_strings) {
1333 if (!writer.writeString(help_string)) {
1334 return false;
1335 }
1336 }
1337 if (!writer.writeListEnd()) {
1338 return false;
1339 }
1340 }
1341 reader.accept();
1342 return true;
1343 }
1344 if (reader.noMore()) {
1345 reader.fail();
1346 return false;
1347 }
1348 std::string next_tag = reader.readTag(1);
1349 if (next_tag.empty()) {
1350 break;
1351 }
1352 tag.append("_").append(next_tag);
1353 tag_len = std::count(tag.begin(), tag.end(), '_') + 1;
1354 }
1355 return false;
1356}
#define yError(...)
Definition Log.h:361
#define __YFUNCTION__
Definition Log.h:24
#define yWarning(...)
Definition Log.h:340
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
yarp::os::ApplicationNetworkProtocolVersion helper_proto
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 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
yarp::dev::ReturnValue(*)() funcptr_t
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.
static constexpr const char * s_tag
static constexpr size_t s_cmd_len
static constexpr const char * s_help
yarp::dev::ReturnValue(*)(const std::string &) funcptr_t
static constexpr size_t s_tag_len
virtual yarp::os::ApplicationNetworkProtocolVersion getLocalProtocolVersion()
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
virtual bool checkProtocolVersion()
virtual yarp::dev::ReturnValue resetBotRPC()
virtual yarp::dev::ReturnValue setLanguageRPC(const std::string &language)
virtual yarp::os::ApplicationNetworkProtocolVersion getRemoteProtocolVersion()
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
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)
std::string readTag(size_t len=static_cast< size_t >(-1))
bool read(WirePortable &obj)
IDL-friendly connection writer.
Definition WireWriter.h:28
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
#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