YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
LLM_Message.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6// Autogenerated by Thrift Compiler (0.14.1-yarped)
7//
8// This is an automatically generated file.
9// It could get re-generated if the ALLOW_IDL_GENERATION flag is on.
10
12
13namespace yarp::dev {
14
15// Constructor with field values
16LLM_Message::LLM_Message(const std::string& type,
17 const std::string& content,
18 const std::vector<std::string>& parameters,
19 const std::vector<std::string>& arguments) :
20 WirePortable(),
21 type(type),
22 content(content),
23 parameters(parameters),
24 arguments(arguments)
25{
26}
27
28// Read structure on a Wire
30{
31 if (!read_type(reader)) {
32 return false;
33 }
34 if (!read_content(reader)) {
35 return false;
36 }
37 if (!read_parameters(reader)) {
38 return false;
39 }
40 if (!read_arguments(reader)) {
41 return false;
42 }
43 if (reader.isError()) {
44 return false;
45 }
46 return true;
47}
48
49// Read structure on a Connection
51{
52 yarp::os::idl::WireReader reader(connection);
53 if (!reader.readListHeader(4)) {
54 return false;
55 }
56 if (!read(reader)) {
57 return false;
58 }
59 return true;
60}
61
62// Write structure on a Wire
64{
65 if (!write_type(writer)) {
66 return false;
67 }
68 if (!write_content(writer)) {
69 return false;
70 }
71 if (!write_parameters(writer)) {
72 return false;
73 }
74 if (!write_arguments(writer)) {
75 return false;
76 }
77 if (writer.isError()) {
78 return false;
79 }
80 return true;
81}
82
83// Write structure on a Connection
85{
86 yarp::os::idl::WireWriter writer(connection);
87 if (!writer.writeListHeader(4)) {
88 return false;
89 }
90 if (!write(writer)) {
91 return false;
92 }
93 return true;
94}
95
96// Convert to a printable string
97std::string LLM_Message::toString() const
98{
100 if (!yarp::os::Portable::copyPortable(*this, b)) {
101 return {};
102 }
103 return b.toString();
104}
105
106// read type field
107bool LLM_Message::read_type(yarp::os::idl::WireReader& reader)
108{
109 if (reader.noMore()) {
110 reader.fail();
111 return false;
112 }
113 if (!reader.readString(type)) {
114 reader.fail();
115 return false;
116 }
117 return true;
118}
119
120// write type field
121bool LLM_Message::write_type(const yarp::os::idl::WireWriter& writer) const
122{
123 if (!writer.writeString(type)) {
124 return false;
125 }
126 return true;
127}
128
129// read (nested) type field
130bool LLM_Message::nested_read_type(yarp::os::idl::WireReader& reader)
131{
132 if (reader.noMore()) {
133 reader.fail();
134 return false;
135 }
136 if (!reader.readString(type)) {
137 reader.fail();
138 return false;
139 }
140 return true;
141}
142
143// write (nested) type field
144bool LLM_Message::nested_write_type(const yarp::os::idl::WireWriter& writer) const
145{
146 if (!writer.writeString(type)) {
147 return false;
148 }
149 return true;
150}
151
152// read content field
153bool LLM_Message::read_content(yarp::os::idl::WireReader& reader)
154{
155 if (reader.noMore()) {
156 reader.fail();
157 return false;
158 }
159 if (!reader.readString(content)) {
160 reader.fail();
161 return false;
162 }
163 return true;
164}
165
166// write content field
167bool LLM_Message::write_content(const yarp::os::idl::WireWriter& writer) const
168{
169 if (!writer.writeString(content)) {
170 return false;
171 }
172 return true;
173}
174
175// read (nested) content field
176bool LLM_Message::nested_read_content(yarp::os::idl::WireReader& reader)
177{
178 if (reader.noMore()) {
179 reader.fail();
180 return false;
181 }
182 if (!reader.readString(content)) {
183 reader.fail();
184 return false;
185 }
186 return true;
187}
188
189// write (nested) content field
190bool LLM_Message::nested_write_content(const yarp::os::idl::WireWriter& writer) const
191{
192 if (!writer.writeString(content)) {
193 return false;
194 }
195 return true;
196}
197
198// read parameters field
199bool LLM_Message::read_parameters(yarp::os::idl::WireReader& reader)
200{
201 size_t _csize;
203 reader.readListBegin(_etype, _csize);
204 // WireReader removes BOTTLE_TAG_LIST from the tag
205 constexpr int expected_tag = ((BOTTLE_TAG_STRING) & (~BOTTLE_TAG_LIST));
206 if constexpr (expected_tag != 0) {
207 if (_csize != 0 && _etype.code != expected_tag) {
208 return false;
209 }
210 }
211 parameters.resize(_csize);
212 for (size_t _i = 0; _i < _csize; ++_i) {
213 if (reader.noMore()) {
214 reader.fail();
215 return false;
216 }
217 if (!reader.readString(parameters[_i])) {
218 reader.fail();
219 return false;
220 }
221 }
222 reader.readListEnd();
223 return true;
224}
225
226// write parameters field
227bool LLM_Message::write_parameters(const yarp::os::idl::WireWriter& writer) const
228{
229 if (!writer.writeListBegin(BOTTLE_TAG_STRING, parameters.size())) {
230 return false;
231 }
232 for (const auto& _item : parameters) {
233 if (!writer.writeString(_item, true)) {
234 return false;
235 }
236 }
237 if (!writer.writeListEnd()) {
238 return false;
239 }
240 return true;
241}
242
243// read (nested) parameters field
244bool LLM_Message::nested_read_parameters(yarp::os::idl::WireReader& reader)
245{
246 size_t _csize;
248 reader.readListBegin(_etype, _csize);
249 // WireReader removes BOTTLE_TAG_LIST from the tag
250 constexpr int expected_tag = ((BOTTLE_TAG_STRING) & (~BOTTLE_TAG_LIST));
251 if constexpr (expected_tag != 0) {
252 if (_csize != 0 && _etype.code != expected_tag) {
253 return false;
254 }
255 }
256 parameters.resize(_csize);
257 for (size_t _i = 0; _i < _csize; ++_i) {
258 if (reader.noMore()) {
259 reader.fail();
260 return false;
261 }
262 if (!reader.readString(parameters[_i])) {
263 reader.fail();
264 return false;
265 }
266 }
267 reader.readListEnd();
268 return true;
269}
270
271// write (nested) parameters field
272bool LLM_Message::nested_write_parameters(const yarp::os::idl::WireWriter& writer) const
273{
274 if (!writer.writeListBegin(BOTTLE_TAG_STRING, parameters.size())) {
275 return false;
276 }
277 for (const auto& _item : parameters) {
278 if (!writer.writeString(_item, true)) {
279 return false;
280 }
281 }
282 if (!writer.writeListEnd()) {
283 return false;
284 }
285 return true;
286}
287
288// read arguments field
289bool LLM_Message::read_arguments(yarp::os::idl::WireReader& reader)
290{
291 size_t _csize;
293 reader.readListBegin(_etype, _csize);
294 // WireReader removes BOTTLE_TAG_LIST from the tag
295 constexpr int expected_tag = ((BOTTLE_TAG_STRING) & (~BOTTLE_TAG_LIST));
296 if constexpr (expected_tag != 0) {
297 if (_csize != 0 && _etype.code != expected_tag) {
298 return false;
299 }
300 }
301 arguments.resize(_csize);
302 for (size_t _i = 0; _i < _csize; ++_i) {
303 if (reader.noMore()) {
304 reader.fail();
305 return false;
306 }
307 if (!reader.readString(arguments[_i])) {
308 reader.fail();
309 return false;
310 }
311 }
312 reader.readListEnd();
313 return true;
314}
315
316// write arguments field
317bool LLM_Message::write_arguments(const yarp::os::idl::WireWriter& writer) const
318{
319 if (!writer.writeListBegin(BOTTLE_TAG_STRING, arguments.size())) {
320 return false;
321 }
322 for (const auto& _item : arguments) {
323 if (!writer.writeString(_item, true)) {
324 return false;
325 }
326 }
327 if (!writer.writeListEnd()) {
328 return false;
329 }
330 return true;
331}
332
333// read (nested) arguments field
334bool LLM_Message::nested_read_arguments(yarp::os::idl::WireReader& reader)
335{
336 size_t _csize;
338 reader.readListBegin(_etype, _csize);
339 // WireReader removes BOTTLE_TAG_LIST from the tag
340 constexpr int expected_tag = ((BOTTLE_TAG_STRING) & (~BOTTLE_TAG_LIST));
341 if constexpr (expected_tag != 0) {
342 if (_csize != 0 && _etype.code != expected_tag) {
343 return false;
344 }
345 }
346 arguments.resize(_csize);
347 for (size_t _i = 0; _i < _csize; ++_i) {
348 if (reader.noMore()) {
349 reader.fail();
350 return false;
351 }
352 if (!reader.readString(arguments[_i])) {
353 reader.fail();
354 return false;
355 }
356 }
357 reader.readListEnd();
358 return true;
359}
360
361// write (nested) arguments field
362bool LLM_Message::nested_write_arguments(const yarp::os::idl::WireWriter& writer) const
363{
364 if (!writer.writeListBegin(BOTTLE_TAG_STRING, arguments.size())) {
365 return false;
366 }
367 for (const auto& _item : arguments) {
368 if (!writer.writeString(_item, true)) {
369 return false;
370 }
371 }
372 if (!writer.writeListEnd()) {
373 return false;
374 }
375 return true;
376}
377
378} // namespace yarp::dev
#define BOTTLE_TAG_STRING
Definition Bottle.h:26
#define BOTTLE_TAG_LIST
Definition Bottle.h:28
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
std::vector< std::string > parameters
possible parameters
Definition LLM_Message.h:37
bool write(const yarp::os::idl::WireWriter &writer) const override
std::string type
type of message (can be prompt, assistant, function, ...)
Definition LLM_Message.h:29
std::string content
content of the message
Definition LLM_Message.h:33
bool read(yarp::os::idl::WireReader &reader) override
std::string toString() const
std::vector< std::string > arguments
possible arguments of the parameters
Definition LLM_Message.h:41
A simple collection of objects that can be described and transmitted in a portable way.
Definition Bottle.h:64
std::string toString() const override
Gives a human-readable textual representation of the bottle.
Definition Bottle.cpp:211
An interface for reading from a network connection.
An interface for writing to a network connection.
static bool copyPortable(const PortWriter &writer, PortReader &reader)
Copy one portable to another, via writing and reading.
Definition Portable.cpp:16
IDL-friendly connection reader.
Definition WireReader.h:27
bool readString(std::string &str, bool *is_vocab=nullptr)
void readListBegin(yarp::os::idl::WireState &nstate, size_t &len)
IDL-friendly state.
Definition WireState.h:17
IDL-friendly connection writer.
Definition WireWriter.h:28
bool writeListHeader(int len) const
bool writeString(const std::string &str, bool skip_tag=false) const
bool writeListBegin(int tag, size_t len) const
For streams capable of holding different kinds of content, check what they actually have.