1 /**
2 * Autogenerated by Thrift for src/module.thrift
3 *
4 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5 * @generated @nocommit
6 */
7 #pragma once
8
9 #include "thrift/compiler/test/fixtures/adapter/gen-cpp2/module_types.h"
10
11 #include <thrift/lib/cpp2/gen/module_types_tcc.h>
12
13
14 namespace apache {
15 namespace thrift {
16 namespace detail {
17
18 template <>
19 struct TccStructTraits<::cpp2::Foo> {
20 static void translateFieldName(
21 folly::StringPiece _fname,
22 int16_t& fid,
23 apache::thrift::protocol::TType& _ftype) noexcept;
24 };
25 template <>
26 struct TccStructTraits<::cpp2::Baz> {
27 static void translateFieldName(
28 folly::StringPiece _fname,
29 int16_t& fid,
30 apache::thrift::protocol::TType& _ftype) noexcept;
31 };
32 template <>
33 struct TccStructTraits<::cpp2::Bar> {
34 static void translateFieldName(
35 folly::StringPiece _fname,
36 int16_t& fid,
37 apache::thrift::protocol::TType& _ftype) noexcept;
38 };
39 template <>
40 struct TccStructTraits<::cpp2::StructWithFieldAdapter> {
41 static void translateFieldName(
42 folly::StringPiece _fname,
43 int16_t& fid,
44 apache::thrift::protocol::TType& _ftype) noexcept;
45 };
46
47 } // namespace detail
48 } // namespace thrift
49 } // namespace apache
50
51 namespace cpp2 {
52
53 template <class Protocol_>
readNoXfer(Protocol_ * iprot)54 void Foo::readNoXfer(Protocol_* iprot) {
55 apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
56
57 _readState.readStructBegin(iprot);
58
59 using apache::thrift::TProtocolException;
60
61
62 if (UNLIKELY(!_readState.advanceToNextField(
63 iprot,
64 0,
65 1,
66 apache::thrift::protocol::T_I32))) {
67 goto _loop;
68 }
69 _readField_intField:
70 {
71 ::std::int32_t tvalue;
72 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
73 this->__fbthrift_field_intField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 1>(::std::move(tvalue), *this);
74
75 }
76 this->__isset.set(0, true);
77
78 if (UNLIKELY(!_readState.advanceToNextField(
79 iprot,
80 1,
81 2,
82 apache::thrift::protocol::T_I32))) {
83 goto _loop;
84 }
85 _readField_optionalIntField:
86 {
87 ::std::int32_t tvalue;
88 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
89 this->__fbthrift_field_optionalIntField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 2>(::std::move(tvalue), *this);
90
91 }
92 this->__isset.set(1, true);
93
94 if (UNLIKELY(!_readState.advanceToNextField(
95 iprot,
96 2,
97 3,
98 apache::thrift::protocol::T_I32))) {
99 goto _loop;
100 }
101 _readField_intFieldWithDefault:
102 {
103 ::std::int32_t tvalue;
104 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
105 this->__fbthrift_field_intFieldWithDefault = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 3>(::std::move(tvalue), *this);
106
107 }
108 this->__isset.set(2, true);
109
110 if (UNLIKELY(!_readState.advanceToNextField(
111 iprot,
112 3,
113 4,
114 apache::thrift::protocol::T_SET))) {
115 goto _loop;
116 }
117 _readField_setField:
118 {
119 _readState.beforeSubobject(iprot);
120 ::std::set<::std::string> tvalue;
121 this->__fbthrift_field_setField = ::cpp2::SetWithAdapter();
122 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::readWithContext(*iprot, tvalue, _readState);
123 this->__fbthrift_field_setField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter2, 4>(::std::move(tvalue), *this);
124 _readState.afterSubobject(iprot);
125
126 }
127 this->__isset.set(3, true);
128
129 if (UNLIKELY(!_readState.advanceToNextField(
130 iprot,
131 4,
132 5,
133 apache::thrift::protocol::T_SET))) {
134 goto _loop;
135 }
136 _readField_optionalSetField:
137 {
138 _readState.beforeSubobject(iprot);
139 ::std::set<::std::string> tvalue;
140 this->__fbthrift_field_optionalSetField = ::cpp2::SetWithAdapter();
141 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::readWithContext(*iprot, tvalue, _readState);
142 this->__fbthrift_field_optionalSetField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter2, 5>(::std::move(tvalue), *this);
143 _readState.afterSubobject(iprot);
144
145 }
146 this->__isset.set(4, true);
147
148 if (UNLIKELY(!_readState.advanceToNextField(
149 iprot,
150 5,
151 6,
152 apache::thrift::protocol::T_MAP))) {
153 goto _loop;
154 }
155 _readField_mapField:
156 {
157 _readState.beforeSubobject(iprot);
158 ::std::map<::std::string, ::cpp2::ListWithElemAdapter> tvalue;
159 this->__fbthrift_field_mapField = ::apache::thrift::adapt_detail::adapted_t<my::Adapter3, ::std::map<::std::string, ::apache::thrift::adapt_detail::adapted_t<my::Adapter2, ::cpp2::ListWithElemAdapter>>>();
160 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::readWithContext(*iprot, tvalue, _readState);
161 this->__fbthrift_field_mapField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter3, 6>(::std::move(tvalue), *this);
162 _readState.afterSubobject(iprot);
163
164 }
165 this->__isset.set(5, true);
166
167 if (UNLIKELY(!_readState.advanceToNextField(
168 iprot,
169 6,
170 7,
171 apache::thrift::protocol::T_MAP))) {
172 goto _loop;
173 }
174 _readField_optionalMapField:
175 {
176 _readState.beforeSubobject(iprot);
177 ::std::map<::std::string, ::cpp2::ListWithElemAdapter> tvalue;
178 this->__fbthrift_field_optionalMapField = ::apache::thrift::adapt_detail::adapted_t<my::Adapter3, ::std::map<::std::string, ::apache::thrift::adapt_detail::adapted_t<my::Adapter2, ::cpp2::ListWithElemAdapter>>>();
179 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::readWithContext(*iprot, tvalue, _readState);
180 this->__fbthrift_field_optionalMapField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter3, 7>(::std::move(tvalue), *this);
181 _readState.afterSubobject(iprot);
182
183 }
184 this->__isset.set(6, true);
185
186 if (UNLIKELY(!_readState.advanceToNextField(
187 iprot,
188 7,
189 8,
190 apache::thrift::protocol::T_STRING))) {
191 goto _loop;
192 }
193 _readField_binaryField:
194 {
195 ::std::string tvalue;
196 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::readWithContext(*iprot, tvalue, _readState);
197 this->__fbthrift_field_binaryField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 8>(::std::move(tvalue), *this);
198
199 }
200 this->__isset.set(7, true);
201
202 if (UNLIKELY(!_readState.advanceToNextField(
203 iprot,
204 8,
205 0,
206 apache::thrift::protocol::T_STOP))) {
207 goto _loop;
208 }
209
210 _end:
211 _readState.readStructEnd(iprot);
212
213 return;
214
215 _loop:
216 _readState.afterAdvanceFailure(iprot);
217 if (_readState.atStop()) {
218 goto _end;
219 }
220 if (iprot->kUsesFieldNames()) {
221 _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<Foo>>();
222 }
223
224 switch (_readState.fieldId) {
225 case 1:
226 {
227 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
228 goto _readField_intField;
229 } else {
230 goto _skip;
231 }
232 }
233 case 2:
234 {
235 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
236 goto _readField_optionalIntField;
237 } else {
238 goto _skip;
239 }
240 }
241 case 3:
242 {
243 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
244 goto _readField_intFieldWithDefault;
245 } else {
246 goto _skip;
247 }
248 }
249 case 4:
250 {
251 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_SET))) {
252 goto _readField_setField;
253 } else {
254 goto _skip;
255 }
256 }
257 case 5:
258 {
259 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_SET))) {
260 goto _readField_optionalSetField;
261 } else {
262 goto _skip;
263 }
264 }
265 case 6:
266 {
267 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
268 goto _readField_mapField;
269 } else {
270 goto _skip;
271 }
272 }
273 case 7:
274 {
275 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
276 goto _readField_optionalMapField;
277 } else {
278 goto _skip;
279 }
280 }
281 case 8:
282 {
283 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
284 goto _readField_binaryField;
285 } else {
286 goto _skip;
287 }
288 }
289 default:
290 {
291 _skip:
292 _readState.skip(iprot);
293 _readState.readFieldEnd(iprot);
294 _readState.readFieldBeginNoInline(iprot);
295 goto _loop;
296 }
297 }
298 }
299
300 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const301 uint32_t Foo::serializedSize(Protocol_ const* prot_) const {
302 uint32_t xfer = 0;
303 xfer += prot_->serializedStructSize("Foo");
304 {
305 xfer += prot_->serializedFieldSize("intField", apache::thrift::protocol::T_I32, 1);
306 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intField));
307 }
308 if (this->__isset.get(1)) {
309 xfer += prot_->serializedFieldSize("optionalIntField", apache::thrift::protocol::T_I32, 2);
310 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalIntField));
311 }
312 {
313 xfer += prot_->serializedFieldSize("intFieldWithDefault", apache::thrift::protocol::T_I32, 3);
314 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intFieldWithDefault));
315 }
316 {
317 xfer += prot_->serializedFieldSize("setField", apache::thrift::protocol::T_SET, 4);
318 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_setField));
319 }
320 if (this->__isset.get(4)) {
321 xfer += prot_->serializedFieldSize("optionalSetField", apache::thrift::protocol::T_SET, 5);
322 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_optionalSetField));
323 }
324 {
325 xfer += prot_->serializedFieldSize("mapField", apache::thrift::protocol::T_MAP, 6);
326 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_mapField));
327 }
328 if (this->__isset.get(6)) {
329 xfer += prot_->serializedFieldSize("optionalMapField", apache::thrift::protocol::T_MAP, 7);
330 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_optionalMapField));
331 }
332 {
333 xfer += prot_->serializedFieldSize("binaryField", apache::thrift::protocol::T_STRING, 8);
334 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_binaryField));
335 }
336 xfer += prot_->serializedSizeStop();
337 return xfer;
338 }
339
340 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const341 uint32_t Foo::serializedSizeZC(Protocol_ const* prot_) const {
342 uint32_t xfer = 0;
343 xfer += prot_->serializedStructSize("Foo");
344 {
345 xfer += prot_->serializedFieldSize("intField", apache::thrift::protocol::T_I32, 1);
346 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intField));
347 }
348 if (this->__isset.get(1)) {
349 xfer += prot_->serializedFieldSize("optionalIntField", apache::thrift::protocol::T_I32, 2);
350 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalIntField));
351 }
352 {
353 xfer += prot_->serializedFieldSize("intFieldWithDefault", apache::thrift::protocol::T_I32, 3);
354 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intFieldWithDefault));
355 }
356 {
357 xfer += prot_->serializedFieldSize("setField", apache::thrift::protocol::T_SET, 4);
358 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_setField));
359 }
360 if (this->__isset.get(4)) {
361 xfer += prot_->serializedFieldSize("optionalSetField", apache::thrift::protocol::T_SET, 5);
362 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_optionalSetField));
363 }
364 {
365 xfer += prot_->serializedFieldSize("mapField", apache::thrift::protocol::T_MAP, 6);
366 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_mapField));
367 }
368 if (this->__isset.get(6)) {
369 xfer += prot_->serializedFieldSize("optionalMapField", apache::thrift::protocol::T_MAP, 7);
370 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_optionalMapField));
371 }
372 {
373 xfer += prot_->serializedFieldSize("binaryField", apache::thrift::protocol::T_STRING, 8);
374 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_binaryField));
375 }
376 xfer += prot_->serializedSizeStop();
377 return xfer;
378 }
379
380 template <class Protocol_>
write(Protocol_ * prot_) const381 uint32_t Foo::write(Protocol_* prot_) const {
382 uint32_t xfer = 0;
383 xfer += prot_->writeStructBegin("Foo");
384 bool previousFieldHasValue = true;
385 {
386 constexpr int16_t kPrevFieldId = 0;
387 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "intField", previousFieldHasValue);
388 previousFieldHasValue = true;
389 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intField));
390 xfer += prot_->writeFieldEnd();
391 }
392 if (this->__isset.get(1)) {
393 constexpr int16_t kPrevFieldId = 1;
394 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 2, kPrevFieldId>(*prot_, "optionalIntField", previousFieldHasValue);
395 previousFieldHasValue = true;
396 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalIntField));
397 xfer += prot_->writeFieldEnd();
398 } else {
399 previousFieldHasValue = false;
400 }
401 {
402 constexpr int16_t kPrevFieldId = 2;
403 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 3, kPrevFieldId>(*prot_, "intFieldWithDefault", previousFieldHasValue);
404 previousFieldHasValue = true;
405 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intFieldWithDefault));
406 xfer += prot_->writeFieldEnd();
407 }
408 {
409 constexpr int16_t kPrevFieldId = 3;
410 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_SET, 4, kPrevFieldId>(*prot_, "setField", previousFieldHasValue);
411 previousFieldHasValue = true;
412 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::write(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_setField));
413 xfer += prot_->writeFieldEnd();
414 }
415 if (this->__isset.get(4)) {
416 constexpr int16_t kPrevFieldId = 4;
417 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_SET, 5, kPrevFieldId>(*prot_, "optionalSetField", previousFieldHasValue);
418 previousFieldHasValue = true;
419 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::write(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_optionalSetField));
420 xfer += prot_->writeFieldEnd();
421 } else {
422 previousFieldHasValue = false;
423 }
424 {
425 constexpr int16_t kPrevFieldId = 5;
426 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 6, kPrevFieldId>(*prot_, "mapField", previousFieldHasValue);
427 previousFieldHasValue = true;
428 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::write(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_mapField));
429 xfer += prot_->writeFieldEnd();
430 }
431 if (this->__isset.get(6)) {
432 constexpr int16_t kPrevFieldId = 6;
433 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 7, kPrevFieldId>(*prot_, "optionalMapField", previousFieldHasValue);
434 previousFieldHasValue = true;
435 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::write(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_optionalMapField));
436 xfer += prot_->writeFieldEnd();
437 } else {
438 previousFieldHasValue = false;
439 }
440 {
441 constexpr int16_t kPrevFieldId = 7;
442 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 8, kPrevFieldId>(*prot_, "binaryField", previousFieldHasValue);
443 previousFieldHasValue = true;
444 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_binaryField));
445 xfer += prot_->writeFieldEnd();
446 }
447 xfer += prot_->writeFieldStop();
448 xfer += prot_->writeStructEnd();
449 return xfer;
450 }
451
452 extern template void Foo::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
453 extern template uint32_t Foo::write<>(apache::thrift::BinaryProtocolWriter*) const;
454 extern template uint32_t Foo::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
455 extern template uint32_t Foo::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
456 extern template void Foo::readNoXfer<>(apache::thrift::CompactProtocolReader*);
457 extern template uint32_t Foo::write<>(apache::thrift::CompactProtocolWriter*) const;
458 extern template uint32_t Foo::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
459 extern template uint32_t Foo::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
460
461 } // cpp2
462 namespace cpp2 {
463
464 template <class Protocol_>
readNoXfer(Protocol_ * iprot)465 void Baz::readNoXfer(Protocol_* iprot) {
466 apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
467 _readState.fieldId = 0;
468
469 _readState.readStructBegin(iprot);
470
471 _readState.readFieldBegin(iprot);
472 if (_readState.atStop()) {
473 apache::thrift::clear(*this);
474 } else {
475 if (iprot->kUsesFieldNames()) {
476 _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<Baz>>();
477 }
478 switch (_readState.fieldId) {
479 case 1:
480 {
481 if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32)) {
482 this->set_intField();
483 ::std::int32_t tvalue;
484 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
485 value_.intField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 1>(::std::move(tvalue), *this);
486
487 } else {
488 _readState.skip(iprot);
489 }
490 break;
491 }
492 case 4:
493 {
494 if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_SET)) {
495 this->set_setField();
496 _readState.beforeSubobject(iprot);
497 ::std::set<::std::string> tvalue;
498 value_.setField = ::cpp2::SetWithAdapter();
499 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::readWithContext(*iprot, tvalue, _readState);
500 value_.setField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter2, 4>(::std::move(tvalue), *this);
501 _readState.afterSubobject(iprot);
502
503 } else {
504 _readState.skip(iprot);
505 }
506 break;
507 }
508 case 6:
509 {
510 if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP)) {
511 this->set_mapField();
512 _readState.beforeSubobject(iprot);
513 ::std::map<::std::string, ::cpp2::ListWithElemAdapter> tvalue;
514 value_.mapField = ::apache::thrift::adapt_detail::adapted_t<my::Adapter3, ::std::map<::std::string, ::apache::thrift::adapt_detail::adapted_t<my::Adapter2, ::cpp2::ListWithElemAdapter>>>();
515 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::readWithContext(*iprot, tvalue, _readState);
516 value_.mapField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter3, 6>(::std::move(tvalue), *this);
517 _readState.afterSubobject(iprot);
518
519 } else {
520 _readState.skip(iprot);
521 }
522 break;
523 }
524 case 8:
525 {
526 if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING)) {
527 this->set_binaryField();
528 ::std::string tvalue;
529 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::readWithContext(*iprot, tvalue, _readState);
530 value_.binaryField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 8>(::std::move(tvalue), *this);
531
532 } else {
533 _readState.skip(iprot);
534 }
535 break;
536 }
537 default:
538 {
539 _readState.skip(iprot);
540 break;
541 }
542 }
543 _readState.readFieldEnd(iprot);
544 _readState.readFieldBegin(iprot);
545 if (UNLIKELY(!_readState.atStop())) {
546 using apache::thrift::protocol::TProtocolException;
547 TProtocolException::throwUnionMissingStop();
548 }
549 }
550 _readState.readStructEnd(iprot);
551 }
552 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const553 uint32_t Baz::serializedSize(Protocol_ const* prot_) const {
554 uint32_t xfer = 0;
555 xfer += prot_->serializedStructSize("Baz");
556 switch(this->getType()) {
557 case Baz::Type::intField:
558 {
559 xfer += prot_->serializedFieldSize("intField", apache::thrift::protocol::T_I32, 1);
560 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(value_.intField));
561 break;
562 }
563 case Baz::Type::setField:
564 {
565 xfer += prot_->serializedFieldSize("setField", apache::thrift::protocol::T_SET, 4);
566 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(value_.setField));
567 break;
568 }
569 case Baz::Type::mapField:
570 {
571 xfer += prot_->serializedFieldSize("mapField", apache::thrift::protocol::T_MAP, 6);
572 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(value_.mapField));
573 break;
574 }
575 case Baz::Type::binaryField:
576 {
577 xfer += prot_->serializedFieldSize("binaryField", apache::thrift::protocol::T_STRING, 8);
578 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<false>(*prot_, my::Adapter1::toThrift(value_.binaryField));
579 break;
580 }
581 case Baz::Type::__EMPTY__:;
582 }
583 xfer += prot_->serializedSizeStop();
584 return xfer;
585 }
586
587 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const588 uint32_t Baz::serializedSizeZC(Protocol_ const* prot_) const {
589 uint32_t xfer = 0;
590 xfer += prot_->serializedStructSize("Baz");
591 switch(this->getType()) {
592 case Baz::Type::intField:
593 {
594 xfer += prot_->serializedFieldSize("intField", apache::thrift::protocol::T_I32, 1);
595 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(value_.intField));
596 break;
597 }
598 case Baz::Type::setField:
599 {
600 xfer += prot_->serializedFieldSize("setField", apache::thrift::protocol::T_SET, 4);
601 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(value_.setField));
602 break;
603 }
604 case Baz::Type::mapField:
605 {
606 xfer += prot_->serializedFieldSize("mapField", apache::thrift::protocol::T_MAP, 6);
607 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(value_.mapField));
608 break;
609 }
610 case Baz::Type::binaryField:
611 {
612 xfer += prot_->serializedFieldSize("binaryField", apache::thrift::protocol::T_STRING, 8);
613 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<true>(*prot_, my::Adapter1::toThrift(value_.binaryField));
614 break;
615 }
616 case Baz::Type::__EMPTY__:;
617 }
618 xfer += prot_->serializedSizeStop();
619 return xfer;
620 }
621
622 template <class Protocol_>
write(Protocol_ * prot_) const623 uint32_t Baz::write(Protocol_* prot_) const {
624 uint32_t xfer = 0;
625 xfer += prot_->writeStructBegin("Baz");
626 switch(this->getType()) {
627 case Baz::Type::intField:
628 {
629 constexpr int16_t kPrevFieldId = 0;
630 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "intField", false);
631 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(value_.intField));
632 xfer += prot_->writeFieldEnd();
633 break;
634 }
635 case Baz::Type::setField:
636 {
637 constexpr int16_t kPrevFieldId = 1;
638 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_SET, 4, kPrevFieldId>(*prot_, "setField", false);
639 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::write(*prot_, my::Adapter2::toThrift(value_.setField));
640 xfer += prot_->writeFieldEnd();
641 break;
642 }
643 case Baz::Type::mapField:
644 {
645 constexpr int16_t kPrevFieldId = 4;
646 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 6, kPrevFieldId>(*prot_, "mapField", false);
647 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::write(*prot_, my::Adapter3::toThrift(value_.mapField));
648 xfer += prot_->writeFieldEnd();
649 break;
650 }
651 case Baz::Type::binaryField:
652 {
653 constexpr int16_t kPrevFieldId = 6;
654 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 8, kPrevFieldId>(*prot_, "binaryField", false);
655 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::write(*prot_, my::Adapter1::toThrift(value_.binaryField));
656 xfer += prot_->writeFieldEnd();
657 break;
658 }
659 case Baz::Type::__EMPTY__:;
660 }
661 xfer += prot_->writeFieldStop();
662 xfer += prot_->writeStructEnd();
663 return xfer;
664 }
665
666 extern template void Baz::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
667 extern template uint32_t Baz::write<>(apache::thrift::BinaryProtocolWriter*) const;
668 extern template uint32_t Baz::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
669 extern template uint32_t Baz::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
670 extern template void Baz::readNoXfer<>(apache::thrift::CompactProtocolReader*);
671 extern template uint32_t Baz::write<>(apache::thrift::CompactProtocolWriter*) const;
672 extern template uint32_t Baz::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
673 extern template uint32_t Baz::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
674
675 } // cpp2
676 namespace cpp2 {
677
678 template <class Protocol_>
readNoXfer(Protocol_ * iprot)679 void Bar::readNoXfer(Protocol_* iprot) {
680 apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
681
682 _readState.readStructBegin(iprot);
683
684 using apache::thrift::TProtocolException;
685
686
687 if (UNLIKELY(!_readState.advanceToNextField(
688 iprot,
689 0,
690 1,
691 apache::thrift::protocol::T_STRUCT))) {
692 goto _loop;
693 }
694 _readField_structField:
695 {
696 _readState.beforeSubobject(iprot);
697 ::cpp2::Foo tvalue;
698 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::readWithContext(*iprot, tvalue, _readState);
699 this->__fbthrift_field_structField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 1>(::std::move(tvalue), *this);
700 _readState.afterSubobject(iprot);
701
702 }
703 this->__isset.set(0, true);
704
705 if (UNLIKELY(!_readState.advanceToNextField(
706 iprot,
707 1,
708 2,
709 apache::thrift::protocol::T_STRUCT))) {
710 goto _loop;
711 }
712 _readField_optionalStructField:
713 {
714 _readState.beforeSubobject(iprot);
715 ::cpp2::Foo tvalue;
716 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::readWithContext(*iprot, tvalue, _readState);
717 this->__fbthrift_field_optionalStructField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 2>(::std::move(tvalue), *this);
718 _readState.afterSubobject(iprot);
719
720 }
721 this->__isset.set(1, true);
722
723 if (UNLIKELY(!_readState.advanceToNextField(
724 iprot,
725 2,
726 3,
727 apache::thrift::protocol::T_LIST))) {
728 goto _loop;
729 }
730 _readField_structListField:
731 {
732 _readState.beforeSubobject(iprot);
733 this->__fbthrift_field_structListField = ::std::vector<::apache::thrift::adapt_detail::adapted_t<my::Adapter1, ::cpp2::Foo>>();
734 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::readWithContext(*iprot, this->__fbthrift_field_structListField, _readState);
735 _readState.afterSubobject(iprot);
736
737 }
738 this->__isset.set(2, true);
739
740 if (UNLIKELY(!_readState.advanceToNextField(
741 iprot,
742 3,
743 4,
744 apache::thrift::protocol::T_LIST))) {
745 goto _loop;
746 }
747 _readField_optionalStructListField:
748 {
749 _readState.beforeSubobject(iprot);
750 this->__fbthrift_field_optionalStructListField = ::std::vector<::apache::thrift::adapt_detail::adapted_t<my::Adapter1, ::cpp2::Foo>>();
751 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::readWithContext(*iprot, this->__fbthrift_field_optionalStructListField, _readState);
752 _readState.afterSubobject(iprot);
753
754 }
755 this->__isset.set(3, true);
756
757 if (UNLIKELY(!_readState.advanceToNextField(
758 iprot,
759 4,
760 5,
761 apache::thrift::protocol::T_STRUCT))) {
762 goto _loop;
763 }
764 _readField_unionField:
765 {
766 _readState.beforeSubobject(iprot);
767 ::cpp2::Baz tvalue;
768 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::readWithContext(*iprot, tvalue, _readState);
769 this->__fbthrift_field_unionField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 5>(::std::move(tvalue), *this);
770 _readState.afterSubobject(iprot);
771
772 }
773 this->__isset.set(4, true);
774
775 if (UNLIKELY(!_readState.advanceToNextField(
776 iprot,
777 5,
778 6,
779 apache::thrift::protocol::T_STRUCT))) {
780 goto _loop;
781 }
782 _readField_optionalUnionField:
783 {
784 _readState.beforeSubobject(iprot);
785 ::cpp2::Baz tvalue;
786 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::readWithContext(*iprot, tvalue, _readState);
787 this->__fbthrift_field_optionalUnionField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 6>(::std::move(tvalue), *this);
788 _readState.afterSubobject(iprot);
789
790 }
791 this->__isset.set(5, true);
792
793 if (UNLIKELY(!_readState.advanceToNextField(
794 iprot,
795 6,
796 0,
797 apache::thrift::protocol::T_STOP))) {
798 goto _loop;
799 }
800
801 _end:
802 _readState.readStructEnd(iprot);
803
804 return;
805
806 _loop:
807 _readState.afterAdvanceFailure(iprot);
808 if (_readState.atStop()) {
809 goto _end;
810 }
811 if (iprot->kUsesFieldNames()) {
812 _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<Bar>>();
813 }
814
815 switch (_readState.fieldId) {
816 case 1:
817 {
818 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
819 goto _readField_structField;
820 } else {
821 goto _skip;
822 }
823 }
824 case 2:
825 {
826 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
827 goto _readField_optionalStructField;
828 } else {
829 goto _skip;
830 }
831 }
832 case 3:
833 {
834 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
835 goto _readField_structListField;
836 } else {
837 goto _skip;
838 }
839 }
840 case 4:
841 {
842 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
843 goto _readField_optionalStructListField;
844 } else {
845 goto _skip;
846 }
847 }
848 case 5:
849 {
850 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
851 goto _readField_unionField;
852 } else {
853 goto _skip;
854 }
855 }
856 case 6:
857 {
858 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
859 goto _readField_optionalUnionField;
860 } else {
861 goto _skip;
862 }
863 }
864 default:
865 {
866 _skip:
867 _readState.skip(iprot);
868 _readState.readFieldEnd(iprot);
869 _readState.readFieldBeginNoInline(iprot);
870 goto _loop;
871 }
872 }
873 }
874
875 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const876 uint32_t Bar::serializedSize(Protocol_ const* prot_) const {
877 uint32_t xfer = 0;
878 xfer += prot_->serializedStructSize("Bar");
879 {
880 xfer += prot_->serializedFieldSize("structField", apache::thrift::protocol::T_STRUCT, 1);
881 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_structField));
882 }
883 if (this->__isset.get(1)) {
884 xfer += prot_->serializedFieldSize("optionalStructField", apache::thrift::protocol::T_STRUCT, 2);
885 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalStructField));
886 }
887 {
888 xfer += prot_->serializedFieldSize("structListField", apache::thrift::protocol::T_LIST, 3);
889 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::serializedSize<false>(*prot_, this->__fbthrift_field_structListField);
890 }
891 if (this->__isset.get(3)) {
892 xfer += prot_->serializedFieldSize("optionalStructListField", apache::thrift::protocol::T_LIST, 4);
893 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::serializedSize<false>(*prot_, this->__fbthrift_field_optionalStructListField);
894 }
895 {
896 xfer += prot_->serializedFieldSize("unionField", apache::thrift::protocol::T_STRUCT, 5);
897 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_unionField));
898 }
899 if (this->__isset.get(5)) {
900 xfer += prot_->serializedFieldSize("optionalUnionField", apache::thrift::protocol::T_STRUCT, 6);
901 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalUnionField));
902 }
903 xfer += prot_->serializedSizeStop();
904 return xfer;
905 }
906
907 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const908 uint32_t Bar::serializedSizeZC(Protocol_ const* prot_) const {
909 uint32_t xfer = 0;
910 xfer += prot_->serializedStructSize("Bar");
911 {
912 xfer += prot_->serializedFieldSize("structField", apache::thrift::protocol::T_STRUCT, 1);
913 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_structField));
914 }
915 if (this->__isset.get(1)) {
916 xfer += prot_->serializedFieldSize("optionalStructField", apache::thrift::protocol::T_STRUCT, 2);
917 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalStructField));
918 }
919 {
920 xfer += prot_->serializedFieldSize("structListField", apache::thrift::protocol::T_LIST, 3);
921 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::serializedSize<false>(*prot_, this->__fbthrift_field_structListField);
922 }
923 if (this->__isset.get(3)) {
924 xfer += prot_->serializedFieldSize("optionalStructListField", apache::thrift::protocol::T_LIST, 4);
925 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::serializedSize<false>(*prot_, this->__fbthrift_field_optionalStructListField);
926 }
927 {
928 xfer += prot_->serializedFieldSize("unionField", apache::thrift::protocol::T_STRUCT, 5);
929 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_unionField));
930 }
931 if (this->__isset.get(5)) {
932 xfer += prot_->serializedFieldSize("optionalUnionField", apache::thrift::protocol::T_STRUCT, 6);
933 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalUnionField));
934 }
935 xfer += prot_->serializedSizeStop();
936 return xfer;
937 }
938
939 template <class Protocol_>
write(Protocol_ * prot_) const940 uint32_t Bar::write(Protocol_* prot_) const {
941 uint32_t xfer = 0;
942 xfer += prot_->writeStructBegin("Bar");
943 bool previousFieldHasValue = true;
944 {
945 constexpr int16_t kPrevFieldId = 0;
946 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "structField", previousFieldHasValue);
947 previousFieldHasValue = true;
948 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_structField));
949 xfer += prot_->writeFieldEnd();
950 }
951 if (this->__isset.get(1)) {
952 constexpr int16_t kPrevFieldId = 1;
953 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 2, kPrevFieldId>(*prot_, "optionalStructField", previousFieldHasValue);
954 previousFieldHasValue = true;
955 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalStructField));
956 xfer += prot_->writeFieldEnd();
957 } else {
958 previousFieldHasValue = false;
959 }
960 {
961 constexpr int16_t kPrevFieldId = 2;
962 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 3, kPrevFieldId>(*prot_, "structListField", previousFieldHasValue);
963 previousFieldHasValue = true;
964 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::write(*prot_, this->__fbthrift_field_structListField);
965 xfer += prot_->writeFieldEnd();
966 }
967 if (this->__isset.get(3)) {
968 constexpr int16_t kPrevFieldId = 3;
969 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 4, kPrevFieldId>(*prot_, "optionalStructListField", previousFieldHasValue);
970 previousFieldHasValue = true;
971 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::write(*prot_, this->__fbthrift_field_optionalStructListField);
972 xfer += prot_->writeFieldEnd();
973 } else {
974 previousFieldHasValue = false;
975 }
976 {
977 constexpr int16_t kPrevFieldId = 4;
978 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 5, kPrevFieldId>(*prot_, "unionField", previousFieldHasValue);
979 previousFieldHasValue = true;
980 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_unionField));
981 xfer += prot_->writeFieldEnd();
982 }
983 if (this->__isset.get(5)) {
984 constexpr int16_t kPrevFieldId = 5;
985 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 6, kPrevFieldId>(*prot_, "optionalUnionField", previousFieldHasValue);
986 previousFieldHasValue = true;
987 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalUnionField));
988 xfer += prot_->writeFieldEnd();
989 } else {
990 previousFieldHasValue = false;
991 }
992 xfer += prot_->writeFieldStop();
993 xfer += prot_->writeStructEnd();
994 return xfer;
995 }
996
997 extern template void Bar::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
998 extern template uint32_t Bar::write<>(apache::thrift::BinaryProtocolWriter*) const;
999 extern template uint32_t Bar::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1000 extern template uint32_t Bar::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1001 extern template void Bar::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1002 extern template uint32_t Bar::write<>(apache::thrift::CompactProtocolWriter*) const;
1003 extern template uint32_t Bar::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1004 extern template uint32_t Bar::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1005
1006 } // cpp2
1007 namespace cpp2 {
1008
1009 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1010 void StructWithFieldAdapter::readNoXfer(Protocol_* iprot) {
1011 apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1012
1013 _readState.readStructBegin(iprot);
1014
1015 using apache::thrift::TProtocolException;
1016
1017
1018 if (UNLIKELY(!_readState.advanceToNextField(
1019 iprot,
1020 0,
1021 1,
1022 apache::thrift::protocol::T_I32))) {
1023 goto _loop;
1024 }
1025 _readField_field:
1026 {
1027 ::std::int32_t tvalue;
1028 ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
1029 this->__fbthrift_field_field = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 1>(::std::move(tvalue), *this);
1030
1031 }
1032 this->__isset.set(0, true);
1033
1034 if (UNLIKELY(!_readState.advanceToNextField(
1035 iprot,
1036 1,
1037 0,
1038 apache::thrift::protocol::T_STOP))) {
1039 goto _loop;
1040 }
1041
1042 _end:
1043 _readState.readStructEnd(iprot);
1044
1045 return;
1046
1047 _loop:
1048 _readState.afterAdvanceFailure(iprot);
1049 if (_readState.atStop()) {
1050 goto _end;
1051 }
1052 if (iprot->kUsesFieldNames()) {
1053 _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<StructWithFieldAdapter>>();
1054 }
1055
1056 switch (_readState.fieldId) {
1057 case 1:
1058 {
1059 if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
1060 goto _readField_field;
1061 } else {
1062 goto _skip;
1063 }
1064 }
1065 default:
1066 {
1067 _skip:
1068 _readState.skip(iprot);
1069 _readState.readFieldEnd(iprot);
1070 _readState.readFieldBeginNoInline(iprot);
1071 goto _loop;
1072 }
1073 }
1074 }
1075
1076 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1077 uint32_t StructWithFieldAdapter::serializedSize(Protocol_ const* prot_) const {
1078 uint32_t xfer = 0;
1079 xfer += prot_->serializedStructSize("StructWithFieldAdapter");
1080 {
1081 xfer += prot_->serializedFieldSize("field", apache::thrift::protocol::T_I32, 1);
1082 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_field));
1083 }
1084 xfer += prot_->serializedSizeStop();
1085 return xfer;
1086 }
1087
1088 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1089 uint32_t StructWithFieldAdapter::serializedSizeZC(Protocol_ const* prot_) const {
1090 uint32_t xfer = 0;
1091 xfer += prot_->serializedStructSize("StructWithFieldAdapter");
1092 {
1093 xfer += prot_->serializedFieldSize("field", apache::thrift::protocol::T_I32, 1);
1094 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_field));
1095 }
1096 xfer += prot_->serializedSizeStop();
1097 return xfer;
1098 }
1099
1100 template <class Protocol_>
write(Protocol_ * prot_) const1101 uint32_t StructWithFieldAdapter::write(Protocol_* prot_) const {
1102 uint32_t xfer = 0;
1103 xfer += prot_->writeStructBegin("StructWithFieldAdapter");
1104 bool previousFieldHasValue = true;
1105 {
1106 constexpr int16_t kPrevFieldId = 0;
1107 xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "field", previousFieldHasValue);
1108 previousFieldHasValue = true;
1109 xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_field));
1110 xfer += prot_->writeFieldEnd();
1111 }
1112 xfer += prot_->writeFieldStop();
1113 xfer += prot_->writeStructEnd();
1114 return xfer;
1115 }
1116
1117 extern template void StructWithFieldAdapter::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1118 extern template uint32_t StructWithFieldAdapter::write<>(apache::thrift::BinaryProtocolWriter*) const;
1119 extern template uint32_t StructWithFieldAdapter::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1120 extern template uint32_t StructWithFieldAdapter::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1121 extern template void StructWithFieldAdapter::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1122 extern template uint32_t StructWithFieldAdapter::write<>(apache::thrift::CompactProtocolWriter*) const;
1123 extern template uint32_t StructWithFieldAdapter::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1124 extern template uint32_t StructWithFieldAdapter::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1125
1126 } // cpp2
1127