1 // automatically generated by the FlatBuffers compiler, do not modify 2 3 4 #ifndef FLATBUFFERS_GENERATED_HOSTMESSAGES_CHRE_FBS_H_ 5 #define FLATBUFFERS_GENERATED_HOSTMESSAGES_CHRE_FBS_H_ 6 7 #include "flatbuffers/flatbuffers.h" 8 9 namespace chre { 10 namespace fbs { 11 12 struct NanoappMessage; 13 struct NanoappMessageT; 14 15 struct HubInfoRequest; 16 struct HubInfoRequestT; 17 18 struct HubInfoResponse; 19 struct HubInfoResponseT; 20 21 struct NanoappListRequest; 22 struct NanoappListRequestT; 23 24 struct NanoappListEntry; 25 struct NanoappListEntryT; 26 27 struct NanoappListResponse; 28 struct NanoappListResponseT; 29 30 struct LoadNanoappRequest; 31 struct LoadNanoappRequestT; 32 33 struct LoadNanoappResponse; 34 struct LoadNanoappResponseT; 35 36 struct UnloadNanoappRequest; 37 struct UnloadNanoappRequestT; 38 39 struct UnloadNanoappResponse; 40 struct UnloadNanoappResponseT; 41 42 struct LogMessage; 43 struct LogMessageT; 44 45 struct TimeSyncMessage; 46 struct TimeSyncMessageT; 47 48 struct DebugDumpRequest; 49 struct DebugDumpRequestT; 50 51 struct DebugDumpData; 52 struct DebugDumpDataT; 53 54 struct DebugDumpResponse; 55 struct DebugDumpResponseT; 56 57 struct TimeSyncRequest; 58 struct TimeSyncRequestT; 59 60 struct HostAddress; 61 62 struct MessageContainer; 63 struct MessageContainerT; 64 65 /// A union that joins together all possible messages. Note that in FlatBuffers, 66 /// unions have an implicit type 67 enum class ChreMessage : uint8_t { 68 NONE = 0, 69 NanoappMessage = 1, 70 HubInfoRequest = 2, 71 HubInfoResponse = 3, 72 NanoappListRequest = 4, 73 NanoappListResponse = 5, 74 LoadNanoappRequest = 6, 75 LoadNanoappResponse = 7, 76 UnloadNanoappRequest = 8, 77 UnloadNanoappResponse = 9, 78 LogMessage = 10, 79 TimeSyncMessage = 11, 80 DebugDumpRequest = 12, 81 DebugDumpData = 13, 82 DebugDumpResponse = 14, 83 TimeSyncRequest = 15, 84 MIN = NONE, 85 MAX = TimeSyncRequest 86 }; 87 88 inline const char **EnumNamesChreMessage() { 89 static const char *names[] = { 90 "NONE", 91 "NanoappMessage", 92 "HubInfoRequest", 93 "HubInfoResponse", 94 "NanoappListRequest", 95 "NanoappListResponse", 96 "LoadNanoappRequest", 97 "LoadNanoappResponse", 98 "UnloadNanoappRequest", 99 "UnloadNanoappResponse", 100 "LogMessage", 101 "TimeSyncMessage", 102 "DebugDumpRequest", 103 "DebugDumpData", 104 "DebugDumpResponse", 105 "TimeSyncRequest", 106 nullptr 107 }; 108 return names; 109 } 110 111 inline const char *EnumNameChreMessage(ChreMessage e) { 112 const size_t index = static_cast<int>(e); 113 return EnumNamesChreMessage()[index]; 114 } 115 116 template<typename T> struct ChreMessageTraits { 117 static const ChreMessage enum_value = ChreMessage::NONE; 118 }; 119 120 template<> struct ChreMessageTraits<NanoappMessage> { 121 static const ChreMessage enum_value = ChreMessage::NanoappMessage; 122 }; 123 124 template<> struct ChreMessageTraits<HubInfoRequest> { 125 static const ChreMessage enum_value = ChreMessage::HubInfoRequest; 126 }; 127 128 template<> struct ChreMessageTraits<HubInfoResponse> { 129 static const ChreMessage enum_value = ChreMessage::HubInfoResponse; 130 }; 131 132 template<> struct ChreMessageTraits<NanoappListRequest> { 133 static const ChreMessage enum_value = ChreMessage::NanoappListRequest; 134 }; 135 136 template<> struct ChreMessageTraits<NanoappListResponse> { 137 static const ChreMessage enum_value = ChreMessage::NanoappListResponse; 138 }; 139 140 template<> struct ChreMessageTraits<LoadNanoappRequest> { 141 static const ChreMessage enum_value = ChreMessage::LoadNanoappRequest; 142 }; 143 144 template<> struct ChreMessageTraits<LoadNanoappResponse> { 145 static const ChreMessage enum_value = ChreMessage::LoadNanoappResponse; 146 }; 147 148 template<> struct ChreMessageTraits<UnloadNanoappRequest> { 149 static const ChreMessage enum_value = ChreMessage::UnloadNanoappRequest; 150 }; 151 152 template<> struct ChreMessageTraits<UnloadNanoappResponse> { 153 static const ChreMessage enum_value = ChreMessage::UnloadNanoappResponse; 154 }; 155 156 template<> struct ChreMessageTraits<LogMessage> { 157 static const ChreMessage enum_value = ChreMessage::LogMessage; 158 }; 159 160 template<> struct ChreMessageTraits<TimeSyncMessage> { 161 static const ChreMessage enum_value = ChreMessage::TimeSyncMessage; 162 }; 163 164 template<> struct ChreMessageTraits<DebugDumpRequest> { 165 static const ChreMessage enum_value = ChreMessage::DebugDumpRequest; 166 }; 167 168 template<> struct ChreMessageTraits<DebugDumpData> { 169 static const ChreMessage enum_value = ChreMessage::DebugDumpData; 170 }; 171 172 template<> struct ChreMessageTraits<DebugDumpResponse> { 173 static const ChreMessage enum_value = ChreMessage::DebugDumpResponse; 174 }; 175 176 template<> struct ChreMessageTraits<TimeSyncRequest> { 177 static const ChreMessage enum_value = ChreMessage::TimeSyncRequest; 178 }; 179 180 struct ChreMessageUnion { 181 ChreMessage type; 182 flatbuffers::NativeTable *table; 183 184 ChreMessageUnion() : type(ChreMessage::NONE), table(nullptr) {} 185 ChreMessageUnion(ChreMessageUnion&& u): 186 type(std::move(u.type)), table(std::move(u.table)) {} 187 ChreMessageUnion(const ChreMessageUnion &); 188 ChreMessageUnion &operator=(const ChreMessageUnion &); 189 ~ChreMessageUnion() { Reset(); } 190 191 void Reset(); 192 193 template <typename T> 194 void Set(T&& value) { 195 Reset(); 196 type = ChreMessageTraits<typename T::TableType>::enum_value; 197 if (type != ChreMessage::NONE) { 198 table = new T(std::forward<T>(value)); 199 } 200 } 201 202 static flatbuffers::NativeTable *UnPack(const void *obj, ChreMessage type, const flatbuffers::resolver_function_t *resolver); 203 flatbuffers::Offset<void> Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; 204 205 NanoappMessageT *AsNanoappMessage() { 206 return type == ChreMessage::NanoappMessage ? 207 reinterpret_cast<NanoappMessageT *>(table) : nullptr; 208 } 209 HubInfoRequestT *AsHubInfoRequest() { 210 return type == ChreMessage::HubInfoRequest ? 211 reinterpret_cast<HubInfoRequestT *>(table) : nullptr; 212 } 213 HubInfoResponseT *AsHubInfoResponse() { 214 return type == ChreMessage::HubInfoResponse ? 215 reinterpret_cast<HubInfoResponseT *>(table) : nullptr; 216 } 217 NanoappListRequestT *AsNanoappListRequest() { 218 return type == ChreMessage::NanoappListRequest ? 219 reinterpret_cast<NanoappListRequestT *>(table) : nullptr; 220 } 221 NanoappListResponseT *AsNanoappListResponse() { 222 return type == ChreMessage::NanoappListResponse ? 223 reinterpret_cast<NanoappListResponseT *>(table) : nullptr; 224 } 225 LoadNanoappRequestT *AsLoadNanoappRequest() { 226 return type == ChreMessage::LoadNanoappRequest ? 227 reinterpret_cast<LoadNanoappRequestT *>(table) : nullptr; 228 } 229 LoadNanoappResponseT *AsLoadNanoappResponse() { 230 return type == ChreMessage::LoadNanoappResponse ? 231 reinterpret_cast<LoadNanoappResponseT *>(table) : nullptr; 232 } 233 UnloadNanoappRequestT *AsUnloadNanoappRequest() { 234 return type == ChreMessage::UnloadNanoappRequest ? 235 reinterpret_cast<UnloadNanoappRequestT *>(table) : nullptr; 236 } 237 UnloadNanoappResponseT *AsUnloadNanoappResponse() { 238 return type == ChreMessage::UnloadNanoappResponse ? 239 reinterpret_cast<UnloadNanoappResponseT *>(table) : nullptr; 240 } 241 LogMessageT *AsLogMessage() { 242 return type == ChreMessage::LogMessage ? 243 reinterpret_cast<LogMessageT *>(table) : nullptr; 244 } 245 TimeSyncMessageT *AsTimeSyncMessage() { 246 return type == ChreMessage::TimeSyncMessage ? 247 reinterpret_cast<TimeSyncMessageT *>(table) : nullptr; 248 } 249 DebugDumpRequestT *AsDebugDumpRequest() { 250 return type == ChreMessage::DebugDumpRequest ? 251 reinterpret_cast<DebugDumpRequestT *>(table) : nullptr; 252 } 253 DebugDumpDataT *AsDebugDumpData() { 254 return type == ChreMessage::DebugDumpData ? 255 reinterpret_cast<DebugDumpDataT *>(table) : nullptr; 256 } 257 DebugDumpResponseT *AsDebugDumpResponse() { 258 return type == ChreMessage::DebugDumpResponse ? 259 reinterpret_cast<DebugDumpResponseT *>(table) : nullptr; 260 } 261 TimeSyncRequestT *AsTimeSyncRequest() { 262 return type == ChreMessage::TimeSyncRequest ? 263 reinterpret_cast<TimeSyncRequestT *>(table) : nullptr; 264 } 265 }; 266 267 bool VerifyChreMessage(flatbuffers::Verifier &verifier, const void *obj, ChreMessage type); 268 bool VerifyChreMessageVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types); 269 270 MANUALLY_ALIGNED_STRUCT(2) HostAddress FLATBUFFERS_FINAL_CLASS { 271 private: 272 uint16_t client_id_; 273 274 public: 275 HostAddress() { 276 memset(this, 0, sizeof(HostAddress)); 277 } 278 HostAddress(const HostAddress &_o) { 279 memcpy(this, &_o, sizeof(HostAddress)); 280 } 281 HostAddress(uint16_t _client_id) 282 : client_id_(flatbuffers::EndianScalar(_client_id)) { 283 } 284 uint16_t client_id() const { 285 return flatbuffers::EndianScalar(client_id_); 286 } 287 void mutate_client_id(uint16_t _client_id) { 288 flatbuffers::WriteScalar(&client_id_, _client_id); 289 } 290 }; 291 STRUCT_END(HostAddress, 2); 292 293 struct NanoappMessageT : public flatbuffers::NativeTable { 294 typedef NanoappMessage TableType; 295 uint64_t app_id; 296 uint32_t message_type; 297 uint16_t host_endpoint; 298 std::vector<uint8_t> message; 299 NanoappMessageT() 300 : app_id(0), 301 message_type(0), 302 host_endpoint(65534) { 303 } 304 }; 305 306 /// Represents a message sent to/from a nanoapp from/to a client on the host 307 struct NanoappMessage FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 308 typedef NanoappMessageT NativeTableType; 309 enum { 310 VT_APP_ID = 4, 311 VT_MESSAGE_TYPE = 6, 312 VT_HOST_ENDPOINT = 8, 313 VT_MESSAGE = 10 314 }; 315 uint64_t app_id() const { 316 return GetField<uint64_t>(VT_APP_ID, 0); 317 } 318 bool mutate_app_id(uint64_t _app_id) { 319 return SetField(VT_APP_ID, _app_id); 320 } 321 uint32_t message_type() const { 322 return GetField<uint32_t>(VT_MESSAGE_TYPE, 0); 323 } 324 bool mutate_message_type(uint32_t _message_type) { 325 return SetField(VT_MESSAGE_TYPE, _message_type); 326 } 327 /// Identifies the host-side endpoint on the host that sent or should receive 328 /// this message. The default value is a special value defined in the HAL and 329 /// elsewhere that indicates that the endpoint is unspecified. 330 uint16_t host_endpoint() const { 331 return GetField<uint16_t>(VT_HOST_ENDPOINT, 65534); 332 } 333 bool mutate_host_endpoint(uint16_t _host_endpoint) { 334 return SetField(VT_HOST_ENDPOINT, _host_endpoint); 335 } 336 /// Vector containing arbitrary application-specific message data 337 const flatbuffers::Vector<uint8_t> *message() const { 338 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MESSAGE); 339 } 340 flatbuffers::Vector<uint8_t> *mutable_message() { 341 return GetPointer<flatbuffers::Vector<uint8_t> *>(VT_MESSAGE); 342 } 343 bool Verify(flatbuffers::Verifier &verifier) const { 344 return VerifyTableStart(verifier) && 345 VerifyField<uint64_t>(verifier, VT_APP_ID) && 346 VerifyField<uint32_t>(verifier, VT_MESSAGE_TYPE) && 347 VerifyField<uint16_t>(verifier, VT_HOST_ENDPOINT) && 348 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_MESSAGE) && 349 verifier.Verify(message()) && 350 verifier.EndTable(); 351 } 352 NanoappMessageT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 353 void UnPackTo(NanoappMessageT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 354 static flatbuffers::Offset<NanoappMessage> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappMessageT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 355 }; 356 357 struct NanoappMessageBuilder { 358 flatbuffers::FlatBufferBuilder &fbb_; 359 flatbuffers::uoffset_t start_; 360 void add_app_id(uint64_t app_id) { 361 fbb_.AddElement<uint64_t>(NanoappMessage::VT_APP_ID, app_id, 0); 362 } 363 void add_message_type(uint32_t message_type) { 364 fbb_.AddElement<uint32_t>(NanoappMessage::VT_MESSAGE_TYPE, message_type, 0); 365 } 366 void add_host_endpoint(uint16_t host_endpoint) { 367 fbb_.AddElement<uint16_t>(NanoappMessage::VT_HOST_ENDPOINT, host_endpoint, 65534); 368 } 369 void add_message(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> message) { 370 fbb_.AddOffset(NanoappMessage::VT_MESSAGE, message); 371 } 372 NanoappMessageBuilder(flatbuffers::FlatBufferBuilder &_fbb) 373 : fbb_(_fbb) { 374 start_ = fbb_.StartTable(); 375 } 376 NanoappMessageBuilder &operator=(const NanoappMessageBuilder &); 377 flatbuffers::Offset<NanoappMessage> Finish() { 378 const auto end = fbb_.EndTable(start_, 4); 379 auto o = flatbuffers::Offset<NanoappMessage>(end); 380 fbb_.Required(o, NanoappMessage::VT_MESSAGE); 381 return o; 382 } 383 }; 384 385 inline flatbuffers::Offset<NanoappMessage> CreateNanoappMessage( 386 flatbuffers::FlatBufferBuilder &_fbb, 387 uint64_t app_id = 0, 388 uint32_t message_type = 0, 389 uint16_t host_endpoint = 65534, 390 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> message = 0) { 391 NanoappMessageBuilder builder_(_fbb); 392 builder_.add_app_id(app_id); 393 builder_.add_message(message); 394 builder_.add_message_type(message_type); 395 builder_.add_host_endpoint(host_endpoint); 396 return builder_.Finish(); 397 } 398 399 inline flatbuffers::Offset<NanoappMessage> CreateNanoappMessageDirect( 400 flatbuffers::FlatBufferBuilder &_fbb, 401 uint64_t app_id = 0, 402 uint32_t message_type = 0, 403 uint16_t host_endpoint = 65534, 404 const std::vector<uint8_t> *message = nullptr) { 405 return chre::fbs::CreateNanoappMessage( 406 _fbb, 407 app_id, 408 message_type, 409 host_endpoint, 410 message ? _fbb.CreateVector<uint8_t>(*message) : 0); 411 } 412 413 flatbuffers::Offset<NanoappMessage> CreateNanoappMessage(flatbuffers::FlatBufferBuilder &_fbb, const NanoappMessageT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 414 415 struct HubInfoRequestT : public flatbuffers::NativeTable { 416 typedef HubInfoRequest TableType; 417 HubInfoRequestT() { 418 } 419 }; 420 421 struct HubInfoRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 422 typedef HubInfoRequestT NativeTableType; 423 bool Verify(flatbuffers::Verifier &verifier) const { 424 return VerifyTableStart(verifier) && 425 verifier.EndTable(); 426 } 427 HubInfoRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 428 void UnPackTo(HubInfoRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 429 static flatbuffers::Offset<HubInfoRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 430 }; 431 432 struct HubInfoRequestBuilder { 433 flatbuffers::FlatBufferBuilder &fbb_; 434 flatbuffers::uoffset_t start_; 435 HubInfoRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 436 : fbb_(_fbb) { 437 start_ = fbb_.StartTable(); 438 } 439 HubInfoRequestBuilder &operator=(const HubInfoRequestBuilder &); 440 flatbuffers::Offset<HubInfoRequest> Finish() { 441 const auto end = fbb_.EndTable(start_, 0); 442 auto o = flatbuffers::Offset<HubInfoRequest>(end); 443 return o; 444 } 445 }; 446 447 inline flatbuffers::Offset<HubInfoRequest> CreateHubInfoRequest( 448 flatbuffers::FlatBufferBuilder &_fbb) { 449 HubInfoRequestBuilder builder_(_fbb); 450 return builder_.Finish(); 451 } 452 453 flatbuffers::Offset<HubInfoRequest> CreateHubInfoRequest(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 454 455 struct HubInfoResponseT : public flatbuffers::NativeTable { 456 typedef HubInfoResponse TableType; 457 std::vector<int8_t> name; 458 std::vector<int8_t> vendor; 459 std::vector<int8_t> toolchain; 460 uint32_t platform_version; 461 uint32_t toolchain_version; 462 float peak_mips; 463 float stopped_power; 464 float sleep_power; 465 float peak_power; 466 uint32_t max_msg_len; 467 uint64_t platform_id; 468 uint32_t chre_platform_version; 469 HubInfoResponseT() 470 : platform_version(0), 471 toolchain_version(0), 472 peak_mips(0.0f), 473 stopped_power(0.0f), 474 sleep_power(0.0f), 475 peak_power(0.0f), 476 max_msg_len(0), 477 platform_id(0), 478 chre_platform_version(0) { 479 } 480 }; 481 482 struct HubInfoResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 483 typedef HubInfoResponseT NativeTableType; 484 enum { 485 VT_NAME = 4, 486 VT_VENDOR = 6, 487 VT_TOOLCHAIN = 8, 488 VT_PLATFORM_VERSION = 10, 489 VT_TOOLCHAIN_VERSION = 12, 490 VT_PEAK_MIPS = 14, 491 VT_STOPPED_POWER = 16, 492 VT_SLEEP_POWER = 18, 493 VT_PEAK_POWER = 20, 494 VT_MAX_MSG_LEN = 22, 495 VT_PLATFORM_ID = 24, 496 VT_CHRE_PLATFORM_VERSION = 26 497 }; 498 /// The name of the hub. Nominally a UTF-8 string, but note that we're not 499 /// using the built-in "string" data type from FlatBuffers here, because the 500 /// generated C++ uses std::string which is not well-supported in CHRE. This 501 /// applies for vendor and toolchain as well. 502 const flatbuffers::Vector<int8_t> *name() const { 503 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_NAME); 504 } 505 flatbuffers::Vector<int8_t> *mutable_name() { 506 return GetPointer<flatbuffers::Vector<int8_t> *>(VT_NAME); 507 } 508 const flatbuffers::Vector<int8_t> *vendor() const { 509 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_VENDOR); 510 } 511 flatbuffers::Vector<int8_t> *mutable_vendor() { 512 return GetPointer<flatbuffers::Vector<int8_t> *>(VT_VENDOR); 513 } 514 const flatbuffers::Vector<int8_t> *toolchain() const { 515 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_TOOLCHAIN); 516 } 517 flatbuffers::Vector<int8_t> *mutable_toolchain() { 518 return GetPointer<flatbuffers::Vector<int8_t> *>(VT_TOOLCHAIN); 519 } 520 /// Legacy platform version reported in the HAL; semantics not strictly 521 /// defined 522 uint32_t platform_version() const { 523 return GetField<uint32_t>(VT_PLATFORM_VERSION, 0); 524 } 525 bool mutate_platform_version(uint32_t _platform_version) { 526 return SetField(VT_PLATFORM_VERSION, _platform_version); 527 } 528 /// Toolchain version reported in the HAL; semantics not strictly defined 529 uint32_t toolchain_version() const { 530 return GetField<uint32_t>(VT_TOOLCHAIN_VERSION, 0); 531 } 532 bool mutate_toolchain_version(uint32_t _toolchain_version) { 533 return SetField(VT_TOOLCHAIN_VERSION, _toolchain_version); 534 } 535 float peak_mips() const { 536 return GetField<float>(VT_PEAK_MIPS, 0.0f); 537 } 538 bool mutate_peak_mips(float _peak_mips) { 539 return SetField(VT_PEAK_MIPS, _peak_mips); 540 } 541 float stopped_power() const { 542 return GetField<float>(VT_STOPPED_POWER, 0.0f); 543 } 544 bool mutate_stopped_power(float _stopped_power) { 545 return SetField(VT_STOPPED_POWER, _stopped_power); 546 } 547 float sleep_power() const { 548 return GetField<float>(VT_SLEEP_POWER, 0.0f); 549 } 550 bool mutate_sleep_power(float _sleep_power) { 551 return SetField(VT_SLEEP_POWER, _sleep_power); 552 } 553 float peak_power() const { 554 return GetField<float>(VT_PEAK_POWER, 0.0f); 555 } 556 bool mutate_peak_power(float _peak_power) { 557 return SetField(VT_PEAK_POWER, _peak_power); 558 } 559 /// Maximum size message that can be sent to a nanoapp 560 uint32_t max_msg_len() const { 561 return GetField<uint32_t>(VT_MAX_MSG_LEN, 0); 562 } 563 bool mutate_max_msg_len(uint32_t _max_msg_len) { 564 return SetField(VT_MAX_MSG_LEN, _max_msg_len); 565 } 566 /// @see chreGetPlatformId() 567 uint64_t platform_id() const { 568 return GetField<uint64_t>(VT_PLATFORM_ID, 0); 569 } 570 bool mutate_platform_id(uint64_t _platform_id) { 571 return SetField(VT_PLATFORM_ID, _platform_id); 572 } 573 /// @see chreGetVersion() 574 uint32_t chre_platform_version() const { 575 return GetField<uint32_t>(VT_CHRE_PLATFORM_VERSION, 0); 576 } 577 bool mutate_chre_platform_version(uint32_t _chre_platform_version) { 578 return SetField(VT_CHRE_PLATFORM_VERSION, _chre_platform_version); 579 } 580 bool Verify(flatbuffers::Verifier &verifier) const { 581 return VerifyTableStart(verifier) && 582 VerifyField<flatbuffers::uoffset_t>(verifier, VT_NAME) && 583 verifier.Verify(name()) && 584 VerifyField<flatbuffers::uoffset_t>(verifier, VT_VENDOR) && 585 verifier.Verify(vendor()) && 586 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TOOLCHAIN) && 587 verifier.Verify(toolchain()) && 588 VerifyField<uint32_t>(verifier, VT_PLATFORM_VERSION) && 589 VerifyField<uint32_t>(verifier, VT_TOOLCHAIN_VERSION) && 590 VerifyField<float>(verifier, VT_PEAK_MIPS) && 591 VerifyField<float>(verifier, VT_STOPPED_POWER) && 592 VerifyField<float>(verifier, VT_SLEEP_POWER) && 593 VerifyField<float>(verifier, VT_PEAK_POWER) && 594 VerifyField<uint32_t>(verifier, VT_MAX_MSG_LEN) && 595 VerifyField<uint64_t>(verifier, VT_PLATFORM_ID) && 596 VerifyField<uint32_t>(verifier, VT_CHRE_PLATFORM_VERSION) && 597 verifier.EndTable(); 598 } 599 HubInfoResponseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 600 void UnPackTo(HubInfoResponseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 601 static flatbuffers::Offset<HubInfoResponse> Pack(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 602 }; 603 604 struct HubInfoResponseBuilder { 605 flatbuffers::FlatBufferBuilder &fbb_; 606 flatbuffers::uoffset_t start_; 607 void add_name(flatbuffers::Offset<flatbuffers::Vector<int8_t>> name) { 608 fbb_.AddOffset(HubInfoResponse::VT_NAME, name); 609 } 610 void add_vendor(flatbuffers::Offset<flatbuffers::Vector<int8_t>> vendor) { 611 fbb_.AddOffset(HubInfoResponse::VT_VENDOR, vendor); 612 } 613 void add_toolchain(flatbuffers::Offset<flatbuffers::Vector<int8_t>> toolchain) { 614 fbb_.AddOffset(HubInfoResponse::VT_TOOLCHAIN, toolchain); 615 } 616 void add_platform_version(uint32_t platform_version) { 617 fbb_.AddElement<uint32_t>(HubInfoResponse::VT_PLATFORM_VERSION, platform_version, 0); 618 } 619 void add_toolchain_version(uint32_t toolchain_version) { 620 fbb_.AddElement<uint32_t>(HubInfoResponse::VT_TOOLCHAIN_VERSION, toolchain_version, 0); 621 } 622 void add_peak_mips(float peak_mips) { 623 fbb_.AddElement<float>(HubInfoResponse::VT_PEAK_MIPS, peak_mips, 0.0f); 624 } 625 void add_stopped_power(float stopped_power) { 626 fbb_.AddElement<float>(HubInfoResponse::VT_STOPPED_POWER, stopped_power, 0.0f); 627 } 628 void add_sleep_power(float sleep_power) { 629 fbb_.AddElement<float>(HubInfoResponse::VT_SLEEP_POWER, sleep_power, 0.0f); 630 } 631 void add_peak_power(float peak_power) { 632 fbb_.AddElement<float>(HubInfoResponse::VT_PEAK_POWER, peak_power, 0.0f); 633 } 634 void add_max_msg_len(uint32_t max_msg_len) { 635 fbb_.AddElement<uint32_t>(HubInfoResponse::VT_MAX_MSG_LEN, max_msg_len, 0); 636 } 637 void add_platform_id(uint64_t platform_id) { 638 fbb_.AddElement<uint64_t>(HubInfoResponse::VT_PLATFORM_ID, platform_id, 0); 639 } 640 void add_chre_platform_version(uint32_t chre_platform_version) { 641 fbb_.AddElement<uint32_t>(HubInfoResponse::VT_CHRE_PLATFORM_VERSION, chre_platform_version, 0); 642 } 643 HubInfoResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 644 : fbb_(_fbb) { 645 start_ = fbb_.StartTable(); 646 } 647 HubInfoResponseBuilder &operator=(const HubInfoResponseBuilder &); 648 flatbuffers::Offset<HubInfoResponse> Finish() { 649 const auto end = fbb_.EndTable(start_, 12); 650 auto o = flatbuffers::Offset<HubInfoResponse>(end); 651 return o; 652 } 653 }; 654 655 inline flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponse( 656 flatbuffers::FlatBufferBuilder &_fbb, 657 flatbuffers::Offset<flatbuffers::Vector<int8_t>> name = 0, 658 flatbuffers::Offset<flatbuffers::Vector<int8_t>> vendor = 0, 659 flatbuffers::Offset<flatbuffers::Vector<int8_t>> toolchain = 0, 660 uint32_t platform_version = 0, 661 uint32_t toolchain_version = 0, 662 float peak_mips = 0.0f, 663 float stopped_power = 0.0f, 664 float sleep_power = 0.0f, 665 float peak_power = 0.0f, 666 uint32_t max_msg_len = 0, 667 uint64_t platform_id = 0, 668 uint32_t chre_platform_version = 0) { 669 HubInfoResponseBuilder builder_(_fbb); 670 builder_.add_platform_id(platform_id); 671 builder_.add_chre_platform_version(chre_platform_version); 672 builder_.add_max_msg_len(max_msg_len); 673 builder_.add_peak_power(peak_power); 674 builder_.add_sleep_power(sleep_power); 675 builder_.add_stopped_power(stopped_power); 676 builder_.add_peak_mips(peak_mips); 677 builder_.add_toolchain_version(toolchain_version); 678 builder_.add_platform_version(platform_version); 679 builder_.add_toolchain(toolchain); 680 builder_.add_vendor(vendor); 681 builder_.add_name(name); 682 return builder_.Finish(); 683 } 684 685 inline flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponseDirect( 686 flatbuffers::FlatBufferBuilder &_fbb, 687 const std::vector<int8_t> *name = nullptr, 688 const std::vector<int8_t> *vendor = nullptr, 689 const std::vector<int8_t> *toolchain = nullptr, 690 uint32_t platform_version = 0, 691 uint32_t toolchain_version = 0, 692 float peak_mips = 0.0f, 693 float stopped_power = 0.0f, 694 float sleep_power = 0.0f, 695 float peak_power = 0.0f, 696 uint32_t max_msg_len = 0, 697 uint64_t platform_id = 0, 698 uint32_t chre_platform_version = 0) { 699 return chre::fbs::CreateHubInfoResponse( 700 _fbb, 701 name ? _fbb.CreateVector<int8_t>(*name) : 0, 702 vendor ? _fbb.CreateVector<int8_t>(*vendor) : 0, 703 toolchain ? _fbb.CreateVector<int8_t>(*toolchain) : 0, 704 platform_version, 705 toolchain_version, 706 peak_mips, 707 stopped_power, 708 sleep_power, 709 peak_power, 710 max_msg_len, 711 platform_id, 712 chre_platform_version); 713 } 714 715 flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponse(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 716 717 struct NanoappListRequestT : public flatbuffers::NativeTable { 718 typedef NanoappListRequest TableType; 719 NanoappListRequestT() { 720 } 721 }; 722 723 struct NanoappListRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 724 typedef NanoappListRequestT NativeTableType; 725 bool Verify(flatbuffers::Verifier &verifier) const { 726 return VerifyTableStart(verifier) && 727 verifier.EndTable(); 728 } 729 NanoappListRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 730 void UnPackTo(NanoappListRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 731 static flatbuffers::Offset<NanoappListRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 732 }; 733 734 struct NanoappListRequestBuilder { 735 flatbuffers::FlatBufferBuilder &fbb_; 736 flatbuffers::uoffset_t start_; 737 NanoappListRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 738 : fbb_(_fbb) { 739 start_ = fbb_.StartTable(); 740 } 741 NanoappListRequestBuilder &operator=(const NanoappListRequestBuilder &); 742 flatbuffers::Offset<NanoappListRequest> Finish() { 743 const auto end = fbb_.EndTable(start_, 0); 744 auto o = flatbuffers::Offset<NanoappListRequest>(end); 745 return o; 746 } 747 }; 748 749 inline flatbuffers::Offset<NanoappListRequest> CreateNanoappListRequest( 750 flatbuffers::FlatBufferBuilder &_fbb) { 751 NanoappListRequestBuilder builder_(_fbb); 752 return builder_.Finish(); 753 } 754 755 flatbuffers::Offset<NanoappListRequest> CreateNanoappListRequest(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 756 757 struct NanoappListEntryT : public flatbuffers::NativeTable { 758 typedef NanoappListEntry TableType; 759 uint64_t app_id; 760 uint32_t version; 761 bool enabled; 762 bool is_system; 763 NanoappListEntryT() 764 : app_id(0), 765 version(0), 766 enabled(true), 767 is_system(false) { 768 } 769 }; 770 771 struct NanoappListEntry FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 772 typedef NanoappListEntryT NativeTableType; 773 enum { 774 VT_APP_ID = 4, 775 VT_VERSION = 6, 776 VT_ENABLED = 8, 777 VT_IS_SYSTEM = 10 778 }; 779 uint64_t app_id() const { 780 return GetField<uint64_t>(VT_APP_ID, 0); 781 } 782 bool mutate_app_id(uint64_t _app_id) { 783 return SetField(VT_APP_ID, _app_id); 784 } 785 uint32_t version() const { 786 return GetField<uint32_t>(VT_VERSION, 0); 787 } 788 bool mutate_version(uint32_t _version) { 789 return SetField(VT_VERSION, _version); 790 } 791 bool enabled() const { 792 return GetField<uint8_t>(VT_ENABLED, 1) != 0; 793 } 794 bool mutate_enabled(bool _enabled) { 795 return SetField(VT_ENABLED, static_cast<uint8_t>(_enabled)); 796 } 797 /// Whether the nanoapp is a pre-loaded "system" nanoapp, i.e. one that should 798 /// not show up in the list of nanoapps in the context hub HAL. System 799 /// nanoapps are typically used to leverage CHRE for some device functionality 800 /// and do not interact via the context hub HAL. 801 bool is_system() const { 802 return GetField<uint8_t>(VT_IS_SYSTEM, 0) != 0; 803 } 804 bool mutate_is_system(bool _is_system) { 805 return SetField(VT_IS_SYSTEM, static_cast<uint8_t>(_is_system)); 806 } 807 bool Verify(flatbuffers::Verifier &verifier) const { 808 return VerifyTableStart(verifier) && 809 VerifyField<uint64_t>(verifier, VT_APP_ID) && 810 VerifyField<uint32_t>(verifier, VT_VERSION) && 811 VerifyField<uint8_t>(verifier, VT_ENABLED) && 812 VerifyField<uint8_t>(verifier, VT_IS_SYSTEM) && 813 verifier.EndTable(); 814 } 815 NanoappListEntryT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 816 void UnPackTo(NanoappListEntryT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 817 static flatbuffers::Offset<NanoappListEntry> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 818 }; 819 820 struct NanoappListEntryBuilder { 821 flatbuffers::FlatBufferBuilder &fbb_; 822 flatbuffers::uoffset_t start_; 823 void add_app_id(uint64_t app_id) { 824 fbb_.AddElement<uint64_t>(NanoappListEntry::VT_APP_ID, app_id, 0); 825 } 826 void add_version(uint32_t version) { 827 fbb_.AddElement<uint32_t>(NanoappListEntry::VT_VERSION, version, 0); 828 } 829 void add_enabled(bool enabled) { 830 fbb_.AddElement<uint8_t>(NanoappListEntry::VT_ENABLED, static_cast<uint8_t>(enabled), 1); 831 } 832 void add_is_system(bool is_system) { 833 fbb_.AddElement<uint8_t>(NanoappListEntry::VT_IS_SYSTEM, static_cast<uint8_t>(is_system), 0); 834 } 835 NanoappListEntryBuilder(flatbuffers::FlatBufferBuilder &_fbb) 836 : fbb_(_fbb) { 837 start_ = fbb_.StartTable(); 838 } 839 NanoappListEntryBuilder &operator=(const NanoappListEntryBuilder &); 840 flatbuffers::Offset<NanoappListEntry> Finish() { 841 const auto end = fbb_.EndTable(start_, 4); 842 auto o = flatbuffers::Offset<NanoappListEntry>(end); 843 return o; 844 } 845 }; 846 847 inline flatbuffers::Offset<NanoappListEntry> CreateNanoappListEntry( 848 flatbuffers::FlatBufferBuilder &_fbb, 849 uint64_t app_id = 0, 850 uint32_t version = 0, 851 bool enabled = true, 852 bool is_system = false) { 853 NanoappListEntryBuilder builder_(_fbb); 854 builder_.add_app_id(app_id); 855 builder_.add_version(version); 856 builder_.add_is_system(is_system); 857 builder_.add_enabled(enabled); 858 return builder_.Finish(); 859 } 860 861 flatbuffers::Offset<NanoappListEntry> CreateNanoappListEntry(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 862 863 struct NanoappListResponseT : public flatbuffers::NativeTable { 864 typedef NanoappListResponse TableType; 865 std::vector<std::unique_ptr<NanoappListEntryT>> nanoapps; 866 NanoappListResponseT() { 867 } 868 }; 869 870 struct NanoappListResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 871 typedef NanoappListResponseT NativeTableType; 872 enum { 873 VT_NANOAPPS = 4 874 }; 875 const flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *nanoapps() const { 876 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *>(VT_NANOAPPS); 877 } 878 flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *mutable_nanoapps() { 879 return GetPointer<flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *>(VT_NANOAPPS); 880 } 881 bool Verify(flatbuffers::Verifier &verifier) const { 882 return VerifyTableStart(verifier) && 883 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_NANOAPPS) && 884 verifier.Verify(nanoapps()) && 885 verifier.VerifyVectorOfTables(nanoapps()) && 886 verifier.EndTable(); 887 } 888 NanoappListResponseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 889 void UnPackTo(NanoappListResponseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 890 static flatbuffers::Offset<NanoappListResponse> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 891 }; 892 893 struct NanoappListResponseBuilder { 894 flatbuffers::FlatBufferBuilder &fbb_; 895 flatbuffers::uoffset_t start_; 896 void add_nanoapps(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>>> nanoapps) { 897 fbb_.AddOffset(NanoappListResponse::VT_NANOAPPS, nanoapps); 898 } 899 NanoappListResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 900 : fbb_(_fbb) { 901 start_ = fbb_.StartTable(); 902 } 903 NanoappListResponseBuilder &operator=(const NanoappListResponseBuilder &); 904 flatbuffers::Offset<NanoappListResponse> Finish() { 905 const auto end = fbb_.EndTable(start_, 1); 906 auto o = flatbuffers::Offset<NanoappListResponse>(end); 907 fbb_.Required(o, NanoappListResponse::VT_NANOAPPS); 908 return o; 909 } 910 }; 911 912 inline flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponse( 913 flatbuffers::FlatBufferBuilder &_fbb, 914 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>>> nanoapps = 0) { 915 NanoappListResponseBuilder builder_(_fbb); 916 builder_.add_nanoapps(nanoapps); 917 return builder_.Finish(); 918 } 919 920 inline flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponseDirect( 921 flatbuffers::FlatBufferBuilder &_fbb, 922 const std::vector<flatbuffers::Offset<NanoappListEntry>> *nanoapps = nullptr) { 923 return chre::fbs::CreateNanoappListResponse( 924 _fbb, 925 nanoapps ? _fbb.CreateVector<flatbuffers::Offset<NanoappListEntry>>(*nanoapps) : 0); 926 } 927 928 flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponse(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 929 930 struct LoadNanoappRequestT : public flatbuffers::NativeTable { 931 typedef LoadNanoappRequest TableType; 932 uint32_t transaction_id; 933 uint64_t app_id; 934 uint32_t app_version; 935 uint32_t target_api_version; 936 std::vector<uint8_t> app_binary; 937 LoadNanoappRequestT() 938 : transaction_id(0), 939 app_id(0), 940 app_version(0), 941 target_api_version(0) { 942 } 943 }; 944 945 struct LoadNanoappRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 946 typedef LoadNanoappRequestT NativeTableType; 947 enum { 948 VT_TRANSACTION_ID = 4, 949 VT_APP_ID = 6, 950 VT_APP_VERSION = 8, 951 VT_TARGET_API_VERSION = 10, 952 VT_APP_BINARY = 12 953 }; 954 uint32_t transaction_id() const { 955 return GetField<uint32_t>(VT_TRANSACTION_ID, 0); 956 } 957 bool mutate_transaction_id(uint32_t _transaction_id) { 958 return SetField(VT_TRANSACTION_ID, _transaction_id); 959 } 960 uint64_t app_id() const { 961 return GetField<uint64_t>(VT_APP_ID, 0); 962 } 963 bool mutate_app_id(uint64_t _app_id) { 964 return SetField(VT_APP_ID, _app_id); 965 } 966 uint32_t app_version() const { 967 return GetField<uint32_t>(VT_APP_VERSION, 0); 968 } 969 bool mutate_app_version(uint32_t _app_version) { 970 return SetField(VT_APP_VERSION, _app_version); 971 } 972 uint32_t target_api_version() const { 973 return GetField<uint32_t>(VT_TARGET_API_VERSION, 0); 974 } 975 bool mutate_target_api_version(uint32_t _target_api_version) { 976 return SetField(VT_TARGET_API_VERSION, _target_api_version); 977 } 978 const flatbuffers::Vector<uint8_t> *app_binary() const { 979 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_APP_BINARY); 980 } 981 flatbuffers::Vector<uint8_t> *mutable_app_binary() { 982 return GetPointer<flatbuffers::Vector<uint8_t> *>(VT_APP_BINARY); 983 } 984 bool Verify(flatbuffers::Verifier &verifier) const { 985 return VerifyTableStart(verifier) && 986 VerifyField<uint32_t>(verifier, VT_TRANSACTION_ID) && 987 VerifyField<uint64_t>(verifier, VT_APP_ID) && 988 VerifyField<uint32_t>(verifier, VT_APP_VERSION) && 989 VerifyField<uint32_t>(verifier, VT_TARGET_API_VERSION) && 990 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_APP_BINARY) && 991 verifier.Verify(app_binary()) && 992 verifier.EndTable(); 993 } 994 LoadNanoappRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 995 void UnPackTo(LoadNanoappRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 996 static flatbuffers::Offset<LoadNanoappRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 997 }; 998 999 struct LoadNanoappRequestBuilder { 1000 flatbuffers::FlatBufferBuilder &fbb_; 1001 flatbuffers::uoffset_t start_; 1002 void add_transaction_id(uint32_t transaction_id) { 1003 fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_TRANSACTION_ID, transaction_id, 0); 1004 } 1005 void add_app_id(uint64_t app_id) { 1006 fbb_.AddElement<uint64_t>(LoadNanoappRequest::VT_APP_ID, app_id, 0); 1007 } 1008 void add_app_version(uint32_t app_version) { 1009 fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_APP_VERSION, app_version, 0); 1010 } 1011 void add_target_api_version(uint32_t target_api_version) { 1012 fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_TARGET_API_VERSION, target_api_version, 0); 1013 } 1014 void add_app_binary(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> app_binary) { 1015 fbb_.AddOffset(LoadNanoappRequest::VT_APP_BINARY, app_binary); 1016 } 1017 LoadNanoappRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1018 : fbb_(_fbb) { 1019 start_ = fbb_.StartTable(); 1020 } 1021 LoadNanoappRequestBuilder &operator=(const LoadNanoappRequestBuilder &); 1022 flatbuffers::Offset<LoadNanoappRequest> Finish() { 1023 const auto end = fbb_.EndTable(start_, 5); 1024 auto o = flatbuffers::Offset<LoadNanoappRequest>(end); 1025 fbb_.Required(o, LoadNanoappRequest::VT_APP_BINARY); 1026 return o; 1027 } 1028 }; 1029 1030 inline flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequest( 1031 flatbuffers::FlatBufferBuilder &_fbb, 1032 uint32_t transaction_id = 0, 1033 uint64_t app_id = 0, 1034 uint32_t app_version = 0, 1035 uint32_t target_api_version = 0, 1036 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> app_binary = 0) { 1037 LoadNanoappRequestBuilder builder_(_fbb); 1038 builder_.add_app_id(app_id); 1039 builder_.add_app_binary(app_binary); 1040 builder_.add_target_api_version(target_api_version); 1041 builder_.add_app_version(app_version); 1042 builder_.add_transaction_id(transaction_id); 1043 return builder_.Finish(); 1044 } 1045 1046 inline flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequestDirect( 1047 flatbuffers::FlatBufferBuilder &_fbb, 1048 uint32_t transaction_id = 0, 1049 uint64_t app_id = 0, 1050 uint32_t app_version = 0, 1051 uint32_t target_api_version = 0, 1052 const std::vector<uint8_t> *app_binary = nullptr) { 1053 return chre::fbs::CreateLoadNanoappRequest( 1054 _fbb, 1055 transaction_id, 1056 app_id, 1057 app_version, 1058 target_api_version, 1059 app_binary ? _fbb.CreateVector<uint8_t>(*app_binary) : 0); 1060 } 1061 1062 flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequest(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1063 1064 struct LoadNanoappResponseT : public flatbuffers::NativeTable { 1065 typedef LoadNanoappResponse TableType; 1066 uint32_t transaction_id; 1067 bool success; 1068 LoadNanoappResponseT() 1069 : transaction_id(0), 1070 success(false) { 1071 } 1072 }; 1073 1074 struct LoadNanoappResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1075 typedef LoadNanoappResponseT NativeTableType; 1076 enum { 1077 VT_TRANSACTION_ID = 4, 1078 VT_SUCCESS = 6 1079 }; 1080 uint32_t transaction_id() const { 1081 return GetField<uint32_t>(VT_TRANSACTION_ID, 0); 1082 } 1083 bool mutate_transaction_id(uint32_t _transaction_id) { 1084 return SetField(VT_TRANSACTION_ID, _transaction_id); 1085 } 1086 bool success() const { 1087 return GetField<uint8_t>(VT_SUCCESS, 0) != 0; 1088 } 1089 bool mutate_success(bool _success) { 1090 return SetField(VT_SUCCESS, static_cast<uint8_t>(_success)); 1091 } 1092 bool Verify(flatbuffers::Verifier &verifier) const { 1093 return VerifyTableStart(verifier) && 1094 VerifyField<uint32_t>(verifier, VT_TRANSACTION_ID) && 1095 VerifyField<uint8_t>(verifier, VT_SUCCESS) && 1096 verifier.EndTable(); 1097 } 1098 LoadNanoappResponseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1099 void UnPackTo(LoadNanoappResponseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1100 static flatbuffers::Offset<LoadNanoappResponse> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1101 }; 1102 1103 struct LoadNanoappResponseBuilder { 1104 flatbuffers::FlatBufferBuilder &fbb_; 1105 flatbuffers::uoffset_t start_; 1106 void add_transaction_id(uint32_t transaction_id) { 1107 fbb_.AddElement<uint32_t>(LoadNanoappResponse::VT_TRANSACTION_ID, transaction_id, 0); 1108 } 1109 void add_success(bool success) { 1110 fbb_.AddElement<uint8_t>(LoadNanoappResponse::VT_SUCCESS, static_cast<uint8_t>(success), 0); 1111 } 1112 LoadNanoappResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1113 : fbb_(_fbb) { 1114 start_ = fbb_.StartTable(); 1115 } 1116 LoadNanoappResponseBuilder &operator=(const LoadNanoappResponseBuilder &); 1117 flatbuffers::Offset<LoadNanoappResponse> Finish() { 1118 const auto end = fbb_.EndTable(start_, 2); 1119 auto o = flatbuffers::Offset<LoadNanoappResponse>(end); 1120 return o; 1121 } 1122 }; 1123 1124 inline flatbuffers::Offset<LoadNanoappResponse> CreateLoadNanoappResponse( 1125 flatbuffers::FlatBufferBuilder &_fbb, 1126 uint32_t transaction_id = 0, 1127 bool success = false) { 1128 LoadNanoappResponseBuilder builder_(_fbb); 1129 builder_.add_transaction_id(transaction_id); 1130 builder_.add_success(success); 1131 return builder_.Finish(); 1132 } 1133 1134 flatbuffers::Offset<LoadNanoappResponse> CreateLoadNanoappResponse(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1135 1136 struct UnloadNanoappRequestT : public flatbuffers::NativeTable { 1137 typedef UnloadNanoappRequest TableType; 1138 uint32_t transaction_id; 1139 uint64_t app_id; 1140 bool allow_system_nanoapp_unload; 1141 UnloadNanoappRequestT() 1142 : transaction_id(0), 1143 app_id(0), 1144 allow_system_nanoapp_unload(false) { 1145 } 1146 }; 1147 1148 struct UnloadNanoappRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1149 typedef UnloadNanoappRequestT NativeTableType; 1150 enum { 1151 VT_TRANSACTION_ID = 4, 1152 VT_APP_ID = 6, 1153 VT_ALLOW_SYSTEM_NANOAPP_UNLOAD = 8 1154 }; 1155 uint32_t transaction_id() const { 1156 return GetField<uint32_t>(VT_TRANSACTION_ID, 0); 1157 } 1158 bool mutate_transaction_id(uint32_t _transaction_id) { 1159 return SetField(VT_TRANSACTION_ID, _transaction_id); 1160 } 1161 uint64_t app_id() const { 1162 return GetField<uint64_t>(VT_APP_ID, 0); 1163 } 1164 bool mutate_app_id(uint64_t _app_id) { 1165 return SetField(VT_APP_ID, _app_id); 1166 } 1167 /// Set to true to allow this request to unload nanoapps identified as "system 1168 /// nanoapps", i.e. ones with is_system set to true in NanoappListResponse. 1169 bool allow_system_nanoapp_unload() const { 1170 return GetField<uint8_t>(VT_ALLOW_SYSTEM_NANOAPP_UNLOAD, 0) != 0; 1171 } 1172 bool mutate_allow_system_nanoapp_unload(bool _allow_system_nanoapp_unload) { 1173 return SetField(VT_ALLOW_SYSTEM_NANOAPP_UNLOAD, static_cast<uint8_t>(_allow_system_nanoapp_unload)); 1174 } 1175 bool Verify(flatbuffers::Verifier &verifier) const { 1176 return VerifyTableStart(verifier) && 1177 VerifyField<uint32_t>(verifier, VT_TRANSACTION_ID) && 1178 VerifyField<uint64_t>(verifier, VT_APP_ID) && 1179 VerifyField<uint8_t>(verifier, VT_ALLOW_SYSTEM_NANOAPP_UNLOAD) && 1180 verifier.EndTable(); 1181 } 1182 UnloadNanoappRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1183 void UnPackTo(UnloadNanoappRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1184 static flatbuffers::Offset<UnloadNanoappRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnloadNanoappRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1185 }; 1186 1187 struct UnloadNanoappRequestBuilder { 1188 flatbuffers::FlatBufferBuilder &fbb_; 1189 flatbuffers::uoffset_t start_; 1190 void add_transaction_id(uint32_t transaction_id) { 1191 fbb_.AddElement<uint32_t>(UnloadNanoappRequest::VT_TRANSACTION_ID, transaction_id, 0); 1192 } 1193 void add_app_id(uint64_t app_id) { 1194 fbb_.AddElement<uint64_t>(UnloadNanoappRequest::VT_APP_ID, app_id, 0); 1195 } 1196 void add_allow_system_nanoapp_unload(bool allow_system_nanoapp_unload) { 1197 fbb_.AddElement<uint8_t>(UnloadNanoappRequest::VT_ALLOW_SYSTEM_NANOAPP_UNLOAD, static_cast<uint8_t>(allow_system_nanoapp_unload), 0); 1198 } 1199 UnloadNanoappRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1200 : fbb_(_fbb) { 1201 start_ = fbb_.StartTable(); 1202 } 1203 UnloadNanoappRequestBuilder &operator=(const UnloadNanoappRequestBuilder &); 1204 flatbuffers::Offset<UnloadNanoappRequest> Finish() { 1205 const auto end = fbb_.EndTable(start_, 3); 1206 auto o = flatbuffers::Offset<UnloadNanoappRequest>(end); 1207 return o; 1208 } 1209 }; 1210 1211 inline flatbuffers::Offset<UnloadNanoappRequest> CreateUnloadNanoappRequest( 1212 flatbuffers::FlatBufferBuilder &_fbb, 1213 uint32_t transaction_id = 0, 1214 uint64_t app_id = 0, 1215 bool allow_system_nanoapp_unload = false) { 1216 UnloadNanoappRequestBuilder builder_(_fbb); 1217 builder_.add_app_id(app_id); 1218 builder_.add_transaction_id(transaction_id); 1219 builder_.add_allow_system_nanoapp_unload(allow_system_nanoapp_unload); 1220 return builder_.Finish(); 1221 } 1222 1223 flatbuffers::Offset<UnloadNanoappRequest> CreateUnloadNanoappRequest(flatbuffers::FlatBufferBuilder &_fbb, const UnloadNanoappRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1224 1225 struct UnloadNanoappResponseT : public flatbuffers::NativeTable { 1226 typedef UnloadNanoappResponse TableType; 1227 uint32_t transaction_id; 1228 bool success; 1229 UnloadNanoappResponseT() 1230 : transaction_id(0), 1231 success(false) { 1232 } 1233 }; 1234 1235 struct UnloadNanoappResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1236 typedef UnloadNanoappResponseT NativeTableType; 1237 enum { 1238 VT_TRANSACTION_ID = 4, 1239 VT_SUCCESS = 6 1240 }; 1241 uint32_t transaction_id() const { 1242 return GetField<uint32_t>(VT_TRANSACTION_ID, 0); 1243 } 1244 bool mutate_transaction_id(uint32_t _transaction_id) { 1245 return SetField(VT_TRANSACTION_ID, _transaction_id); 1246 } 1247 bool success() const { 1248 return GetField<uint8_t>(VT_SUCCESS, 0) != 0; 1249 } 1250 bool mutate_success(bool _success) { 1251 return SetField(VT_SUCCESS, static_cast<uint8_t>(_success)); 1252 } 1253 bool Verify(flatbuffers::Verifier &verifier) const { 1254 return VerifyTableStart(verifier) && 1255 VerifyField<uint32_t>(verifier, VT_TRANSACTION_ID) && 1256 VerifyField<uint8_t>(verifier, VT_SUCCESS) && 1257 verifier.EndTable(); 1258 } 1259 UnloadNanoappResponseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1260 void UnPackTo(UnloadNanoappResponseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1261 static flatbuffers::Offset<UnloadNanoappResponse> Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnloadNanoappResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1262 }; 1263 1264 struct UnloadNanoappResponseBuilder { 1265 flatbuffers::FlatBufferBuilder &fbb_; 1266 flatbuffers::uoffset_t start_; 1267 void add_transaction_id(uint32_t transaction_id) { 1268 fbb_.AddElement<uint32_t>(UnloadNanoappResponse::VT_TRANSACTION_ID, transaction_id, 0); 1269 } 1270 void add_success(bool success) { 1271 fbb_.AddElement<uint8_t>(UnloadNanoappResponse::VT_SUCCESS, static_cast<uint8_t>(success), 0); 1272 } 1273 UnloadNanoappResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1274 : fbb_(_fbb) { 1275 start_ = fbb_.StartTable(); 1276 } 1277 UnloadNanoappResponseBuilder &operator=(const UnloadNanoappResponseBuilder &); 1278 flatbuffers::Offset<UnloadNanoappResponse> Finish() { 1279 const auto end = fbb_.EndTable(start_, 2); 1280 auto o = flatbuffers::Offset<UnloadNanoappResponse>(end); 1281 return o; 1282 } 1283 }; 1284 1285 inline flatbuffers::Offset<UnloadNanoappResponse> CreateUnloadNanoappResponse( 1286 flatbuffers::FlatBufferBuilder &_fbb, 1287 uint32_t transaction_id = 0, 1288 bool success = false) { 1289 UnloadNanoappResponseBuilder builder_(_fbb); 1290 builder_.add_transaction_id(transaction_id); 1291 builder_.add_success(success); 1292 return builder_.Finish(); 1293 } 1294 1295 flatbuffers::Offset<UnloadNanoappResponse> CreateUnloadNanoappResponse(flatbuffers::FlatBufferBuilder &_fbb, const UnloadNanoappResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1296 1297 struct LogMessageT : public flatbuffers::NativeTable { 1298 typedef LogMessage TableType; 1299 std::vector<int8_t> buffer; 1300 LogMessageT() { 1301 } 1302 }; 1303 1304 /// Represents log messages from CHRE. 1305 struct LogMessage FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1306 typedef LogMessageT NativeTableType; 1307 enum { 1308 VT_BUFFER = 4 1309 }; 1310 /// A buffer containing formatted log data. A flat array is used here to avoid 1311 /// overhead in serializing and deserializing. The format is as follows: 1312 /// 1313 /// uint8_t - log level (1 = error, 2 = warning, 1314 /// 3 = info, 4 = debug) 1315 /// uint64_t, little-endian - timestamp in nanoseconds 1316 /// char[] - message to log 1317 /// char, \0 - null-terminator 1318 /// 1319 /// This pattern repeats until the end of the buffer for multiple log 1320 /// messages. The last byte will always be a null-terminator. There are no 1321 /// padding bytes between these fields. Treat this like a packed struct and be 1322 /// cautious with unaligned access when reading/writing this buffer. 1323 const flatbuffers::Vector<int8_t> *buffer() const { 1324 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_BUFFER); 1325 } 1326 flatbuffers::Vector<int8_t> *mutable_buffer() { 1327 return GetPointer<flatbuffers::Vector<int8_t> *>(VT_BUFFER); 1328 } 1329 bool Verify(flatbuffers::Verifier &verifier) const { 1330 return VerifyTableStart(verifier) && 1331 VerifyField<flatbuffers::uoffset_t>(verifier, VT_BUFFER) && 1332 verifier.Verify(buffer()) && 1333 verifier.EndTable(); 1334 } 1335 LogMessageT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1336 void UnPackTo(LogMessageT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1337 static flatbuffers::Offset<LogMessage> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogMessageT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1338 }; 1339 1340 struct LogMessageBuilder { 1341 flatbuffers::FlatBufferBuilder &fbb_; 1342 flatbuffers::uoffset_t start_; 1343 void add_buffer(flatbuffers::Offset<flatbuffers::Vector<int8_t>> buffer) { 1344 fbb_.AddOffset(LogMessage::VT_BUFFER, buffer); 1345 } 1346 LogMessageBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1347 : fbb_(_fbb) { 1348 start_ = fbb_.StartTable(); 1349 } 1350 LogMessageBuilder &operator=(const LogMessageBuilder &); 1351 flatbuffers::Offset<LogMessage> Finish() { 1352 const auto end = fbb_.EndTable(start_, 1); 1353 auto o = flatbuffers::Offset<LogMessage>(end); 1354 return o; 1355 } 1356 }; 1357 1358 inline flatbuffers::Offset<LogMessage> CreateLogMessage( 1359 flatbuffers::FlatBufferBuilder &_fbb, 1360 flatbuffers::Offset<flatbuffers::Vector<int8_t>> buffer = 0) { 1361 LogMessageBuilder builder_(_fbb); 1362 builder_.add_buffer(buffer); 1363 return builder_.Finish(); 1364 } 1365 1366 inline flatbuffers::Offset<LogMessage> CreateLogMessageDirect( 1367 flatbuffers::FlatBufferBuilder &_fbb, 1368 const std::vector<int8_t> *buffer = nullptr) { 1369 return chre::fbs::CreateLogMessage( 1370 _fbb, 1371 buffer ? _fbb.CreateVector<int8_t>(*buffer) : 0); 1372 } 1373 1374 flatbuffers::Offset<LogMessage> CreateLogMessage(flatbuffers::FlatBufferBuilder &_fbb, const LogMessageT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1375 1376 struct TimeSyncMessageT : public flatbuffers::NativeTable { 1377 typedef TimeSyncMessage TableType; 1378 int64_t offset; 1379 TimeSyncMessageT() 1380 : offset(0) { 1381 } 1382 }; 1383 1384 /// Represents a message sent to CHRE to indicate AP timestamp for time sync 1385 struct TimeSyncMessage FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1386 typedef TimeSyncMessageT NativeTableType; 1387 enum { 1388 VT_OFFSET = 4 1389 }; 1390 /// Offset between AP and CHRE timestamp 1391 int64_t offset() const { 1392 return GetField<int64_t>(VT_OFFSET, 0); 1393 } 1394 bool mutate_offset(int64_t _offset) { 1395 return SetField(VT_OFFSET, _offset); 1396 } 1397 bool Verify(flatbuffers::Verifier &verifier) const { 1398 return VerifyTableStart(verifier) && 1399 VerifyField<int64_t>(verifier, VT_OFFSET) && 1400 verifier.EndTable(); 1401 } 1402 TimeSyncMessageT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1403 void UnPackTo(TimeSyncMessageT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1404 static flatbuffers::Offset<TimeSyncMessage> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TimeSyncMessageT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1405 }; 1406 1407 struct TimeSyncMessageBuilder { 1408 flatbuffers::FlatBufferBuilder &fbb_; 1409 flatbuffers::uoffset_t start_; 1410 void add_offset(int64_t offset) { 1411 fbb_.AddElement<int64_t>(TimeSyncMessage::VT_OFFSET, offset, 0); 1412 } 1413 TimeSyncMessageBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1414 : fbb_(_fbb) { 1415 start_ = fbb_.StartTable(); 1416 } 1417 TimeSyncMessageBuilder &operator=(const TimeSyncMessageBuilder &); 1418 flatbuffers::Offset<TimeSyncMessage> Finish() { 1419 const auto end = fbb_.EndTable(start_, 1); 1420 auto o = flatbuffers::Offset<TimeSyncMessage>(end); 1421 return o; 1422 } 1423 }; 1424 1425 inline flatbuffers::Offset<TimeSyncMessage> CreateTimeSyncMessage( 1426 flatbuffers::FlatBufferBuilder &_fbb, 1427 int64_t offset = 0) { 1428 TimeSyncMessageBuilder builder_(_fbb); 1429 builder_.add_offset(offset); 1430 return builder_.Finish(); 1431 } 1432 1433 flatbuffers::Offset<TimeSyncMessage> CreateTimeSyncMessage(flatbuffers::FlatBufferBuilder &_fbb, const TimeSyncMessageT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1434 1435 struct DebugDumpRequestT : public flatbuffers::NativeTable { 1436 typedef DebugDumpRequest TableType; 1437 DebugDumpRequestT() { 1438 } 1439 }; 1440 1441 /// A request to gather and return debugging information. Only one debug dump 1442 /// session can be active at a time. Upon accepting a request, zero or more 1443 /// DebugDumpData messages are generated, followed by a DebugDumpResponse 1444 /// indicating the completion of the operation. 1445 struct DebugDumpRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1446 typedef DebugDumpRequestT NativeTableType; 1447 bool Verify(flatbuffers::Verifier &verifier) const { 1448 return VerifyTableStart(verifier) && 1449 verifier.EndTable(); 1450 } 1451 DebugDumpRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1452 void UnPackTo(DebugDumpRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1453 static flatbuffers::Offset<DebugDumpRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1454 }; 1455 1456 struct DebugDumpRequestBuilder { 1457 flatbuffers::FlatBufferBuilder &fbb_; 1458 flatbuffers::uoffset_t start_; 1459 DebugDumpRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1460 : fbb_(_fbb) { 1461 start_ = fbb_.StartTable(); 1462 } 1463 DebugDumpRequestBuilder &operator=(const DebugDumpRequestBuilder &); 1464 flatbuffers::Offset<DebugDumpRequest> Finish() { 1465 const auto end = fbb_.EndTable(start_, 0); 1466 auto o = flatbuffers::Offset<DebugDumpRequest>(end); 1467 return o; 1468 } 1469 }; 1470 1471 inline flatbuffers::Offset<DebugDumpRequest> CreateDebugDumpRequest( 1472 flatbuffers::FlatBufferBuilder &_fbb) { 1473 DebugDumpRequestBuilder builder_(_fbb); 1474 return builder_.Finish(); 1475 } 1476 1477 flatbuffers::Offset<DebugDumpRequest> CreateDebugDumpRequest(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1478 1479 struct DebugDumpDataT : public flatbuffers::NativeTable { 1480 typedef DebugDumpData TableType; 1481 std::vector<int8_t> debug_str; 1482 DebugDumpDataT() { 1483 } 1484 }; 1485 1486 struct DebugDumpData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1487 typedef DebugDumpDataT NativeTableType; 1488 enum { 1489 VT_DEBUG_STR = 4 1490 }; 1491 /// Null-terminated ASCII string containing debugging information 1492 const flatbuffers::Vector<int8_t> *debug_str() const { 1493 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_DEBUG_STR); 1494 } 1495 flatbuffers::Vector<int8_t> *mutable_debug_str() { 1496 return GetPointer<flatbuffers::Vector<int8_t> *>(VT_DEBUG_STR); 1497 } 1498 bool Verify(flatbuffers::Verifier &verifier) const { 1499 return VerifyTableStart(verifier) && 1500 VerifyField<flatbuffers::uoffset_t>(verifier, VT_DEBUG_STR) && 1501 verifier.Verify(debug_str()) && 1502 verifier.EndTable(); 1503 } 1504 DebugDumpDataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1505 void UnPackTo(DebugDumpDataT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1506 static flatbuffers::Offset<DebugDumpData> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpDataT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1507 }; 1508 1509 struct DebugDumpDataBuilder { 1510 flatbuffers::FlatBufferBuilder &fbb_; 1511 flatbuffers::uoffset_t start_; 1512 void add_debug_str(flatbuffers::Offset<flatbuffers::Vector<int8_t>> debug_str) { 1513 fbb_.AddOffset(DebugDumpData::VT_DEBUG_STR, debug_str); 1514 } 1515 DebugDumpDataBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1516 : fbb_(_fbb) { 1517 start_ = fbb_.StartTable(); 1518 } 1519 DebugDumpDataBuilder &operator=(const DebugDumpDataBuilder &); 1520 flatbuffers::Offset<DebugDumpData> Finish() { 1521 const auto end = fbb_.EndTable(start_, 1); 1522 auto o = flatbuffers::Offset<DebugDumpData>(end); 1523 return o; 1524 } 1525 }; 1526 1527 inline flatbuffers::Offset<DebugDumpData> CreateDebugDumpData( 1528 flatbuffers::FlatBufferBuilder &_fbb, 1529 flatbuffers::Offset<flatbuffers::Vector<int8_t>> debug_str = 0) { 1530 DebugDumpDataBuilder builder_(_fbb); 1531 builder_.add_debug_str(debug_str); 1532 return builder_.Finish(); 1533 } 1534 1535 inline flatbuffers::Offset<DebugDumpData> CreateDebugDumpDataDirect( 1536 flatbuffers::FlatBufferBuilder &_fbb, 1537 const std::vector<int8_t> *debug_str = nullptr) { 1538 return chre::fbs::CreateDebugDumpData( 1539 _fbb, 1540 debug_str ? _fbb.CreateVector<int8_t>(*debug_str) : 0); 1541 } 1542 1543 flatbuffers::Offset<DebugDumpData> CreateDebugDumpData(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpDataT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1544 1545 struct DebugDumpResponseT : public flatbuffers::NativeTable { 1546 typedef DebugDumpResponse TableType; 1547 bool success; 1548 uint32_t data_count; 1549 DebugDumpResponseT() 1550 : success(false), 1551 data_count(0) { 1552 } 1553 }; 1554 1555 struct DebugDumpResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1556 typedef DebugDumpResponseT NativeTableType; 1557 enum { 1558 VT_SUCCESS = 4, 1559 VT_DATA_COUNT = 6 1560 }; 1561 /// true if the request was accepted and a dump was performed, false if it was 1562 /// rejected or failed to complete for some reason 1563 bool success() const { 1564 return GetField<uint8_t>(VT_SUCCESS, 0) != 0; 1565 } 1566 bool mutate_success(bool _success) { 1567 return SetField(VT_SUCCESS, static_cast<uint8_t>(_success)); 1568 } 1569 /// The number of DebugDumpData messages sent in this session 1570 uint32_t data_count() const { 1571 return GetField<uint32_t>(VT_DATA_COUNT, 0); 1572 } 1573 bool mutate_data_count(uint32_t _data_count) { 1574 return SetField(VT_DATA_COUNT, _data_count); 1575 } 1576 bool Verify(flatbuffers::Verifier &verifier) const { 1577 return VerifyTableStart(verifier) && 1578 VerifyField<uint8_t>(verifier, VT_SUCCESS) && 1579 VerifyField<uint32_t>(verifier, VT_DATA_COUNT) && 1580 verifier.EndTable(); 1581 } 1582 DebugDumpResponseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1583 void UnPackTo(DebugDumpResponseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1584 static flatbuffers::Offset<DebugDumpResponse> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1585 }; 1586 1587 struct DebugDumpResponseBuilder { 1588 flatbuffers::FlatBufferBuilder &fbb_; 1589 flatbuffers::uoffset_t start_; 1590 void add_success(bool success) { 1591 fbb_.AddElement<uint8_t>(DebugDumpResponse::VT_SUCCESS, static_cast<uint8_t>(success), 0); 1592 } 1593 void add_data_count(uint32_t data_count) { 1594 fbb_.AddElement<uint32_t>(DebugDumpResponse::VT_DATA_COUNT, data_count, 0); 1595 } 1596 DebugDumpResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1597 : fbb_(_fbb) { 1598 start_ = fbb_.StartTable(); 1599 } 1600 DebugDumpResponseBuilder &operator=(const DebugDumpResponseBuilder &); 1601 flatbuffers::Offset<DebugDumpResponse> Finish() { 1602 const auto end = fbb_.EndTable(start_, 2); 1603 auto o = flatbuffers::Offset<DebugDumpResponse>(end); 1604 return o; 1605 } 1606 }; 1607 1608 inline flatbuffers::Offset<DebugDumpResponse> CreateDebugDumpResponse( 1609 flatbuffers::FlatBufferBuilder &_fbb, 1610 bool success = false, 1611 uint32_t data_count = 0) { 1612 DebugDumpResponseBuilder builder_(_fbb); 1613 builder_.add_data_count(data_count); 1614 builder_.add_success(success); 1615 return builder_.Finish(); 1616 } 1617 1618 flatbuffers::Offset<DebugDumpResponse> CreateDebugDumpResponse(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1619 1620 struct TimeSyncRequestT : public flatbuffers::NativeTable { 1621 typedef TimeSyncRequest TableType; 1622 TimeSyncRequestT() { 1623 } 1624 }; 1625 1626 /// A request from CHRE for host to initiate a time sync message 1627 struct TimeSyncRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1628 typedef TimeSyncRequestT NativeTableType; 1629 bool Verify(flatbuffers::Verifier &verifier) const { 1630 return VerifyTableStart(verifier) && 1631 verifier.EndTable(); 1632 } 1633 TimeSyncRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1634 void UnPackTo(TimeSyncRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1635 static flatbuffers::Offset<TimeSyncRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TimeSyncRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1636 }; 1637 1638 struct TimeSyncRequestBuilder { 1639 flatbuffers::FlatBufferBuilder &fbb_; 1640 flatbuffers::uoffset_t start_; 1641 TimeSyncRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1642 : fbb_(_fbb) { 1643 start_ = fbb_.StartTable(); 1644 } 1645 TimeSyncRequestBuilder &operator=(const TimeSyncRequestBuilder &); 1646 flatbuffers::Offset<TimeSyncRequest> Finish() { 1647 const auto end = fbb_.EndTable(start_, 0); 1648 auto o = flatbuffers::Offset<TimeSyncRequest>(end); 1649 return o; 1650 } 1651 }; 1652 1653 inline flatbuffers::Offset<TimeSyncRequest> CreateTimeSyncRequest( 1654 flatbuffers::FlatBufferBuilder &_fbb) { 1655 TimeSyncRequestBuilder builder_(_fbb); 1656 return builder_.Finish(); 1657 } 1658 1659 flatbuffers::Offset<TimeSyncRequest> CreateTimeSyncRequest(flatbuffers::FlatBufferBuilder &_fbb, const TimeSyncRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1660 1661 struct MessageContainerT : public flatbuffers::NativeTable { 1662 typedef MessageContainer TableType; 1663 ChreMessageUnion message; 1664 std::unique_ptr<HostAddress> host_addr; 1665 MessageContainerT() { 1666 } 1667 }; 1668 1669 /// The top-level container that encapsulates all possible messages. Note that 1670 /// per FlatBuffers requirements, we can't use a union as the top-level 1671 /// structure (root type), so we must wrap it in a table. 1672 struct MessageContainer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1673 typedef MessageContainerT NativeTableType; 1674 enum { 1675 VT_MESSAGE_TYPE = 4, 1676 VT_MESSAGE = 6, 1677 VT_HOST_ADDR = 8 1678 }; 1679 ChreMessage message_type() const { 1680 return static_cast<ChreMessage>(GetField<uint8_t>(VT_MESSAGE_TYPE, 0)); 1681 } 1682 bool mutate_message_type(ChreMessage _message_type) { 1683 return SetField(VT_MESSAGE_TYPE, static_cast<uint8_t>(_message_type)); 1684 } 1685 const void *message() const { 1686 return GetPointer<const void *>(VT_MESSAGE); 1687 } 1688 void *mutable_message() { 1689 return GetPointer<void *>(VT_MESSAGE); 1690 } 1691 /// The originating or destination client ID on the host side, used to direct 1692 /// responses only to the client that sent the request. Although initially 1693 /// populated by the requesting client, this is enforced to be the correct 1694 /// value by the entity guarding access to CHRE. 1695 /// This is wrapped in a struct to ensure that it is always included when 1696 /// encoding the message, so it can be mutated by the host daemon. 1697 const HostAddress *host_addr() const { 1698 return GetStruct<const HostAddress *>(VT_HOST_ADDR); 1699 } 1700 HostAddress *mutable_host_addr() { 1701 return GetStruct<HostAddress *>(VT_HOST_ADDR); 1702 } 1703 bool Verify(flatbuffers::Verifier &verifier) const { 1704 return VerifyTableStart(verifier) && 1705 VerifyField<uint8_t>(verifier, VT_MESSAGE_TYPE) && 1706 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_MESSAGE) && 1707 VerifyChreMessage(verifier, message(), message_type()) && 1708 VerifyFieldRequired<HostAddress>(verifier, VT_HOST_ADDR) && 1709 verifier.EndTable(); 1710 } 1711 MessageContainerT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1712 void UnPackTo(MessageContainerT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1713 static flatbuffers::Offset<MessageContainer> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MessageContainerT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1714 }; 1715 1716 struct MessageContainerBuilder { 1717 flatbuffers::FlatBufferBuilder &fbb_; 1718 flatbuffers::uoffset_t start_; 1719 void add_message_type(ChreMessage message_type) { 1720 fbb_.AddElement<uint8_t>(MessageContainer::VT_MESSAGE_TYPE, static_cast<uint8_t>(message_type), 0); 1721 } 1722 void add_message(flatbuffers::Offset<void> message) { 1723 fbb_.AddOffset(MessageContainer::VT_MESSAGE, message); 1724 } 1725 void add_host_addr(const HostAddress *host_addr) { 1726 fbb_.AddStruct(MessageContainer::VT_HOST_ADDR, host_addr); 1727 } 1728 MessageContainerBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1729 : fbb_(_fbb) { 1730 start_ = fbb_.StartTable(); 1731 } 1732 MessageContainerBuilder &operator=(const MessageContainerBuilder &); 1733 flatbuffers::Offset<MessageContainer> Finish() { 1734 const auto end = fbb_.EndTable(start_, 3); 1735 auto o = flatbuffers::Offset<MessageContainer>(end); 1736 fbb_.Required(o, MessageContainer::VT_MESSAGE); 1737 fbb_.Required(o, MessageContainer::VT_HOST_ADDR); 1738 return o; 1739 } 1740 }; 1741 1742 inline flatbuffers::Offset<MessageContainer> CreateMessageContainer( 1743 flatbuffers::FlatBufferBuilder &_fbb, 1744 ChreMessage message_type = ChreMessage::NONE, 1745 flatbuffers::Offset<void> message = 0, 1746 const HostAddress *host_addr = 0) { 1747 MessageContainerBuilder builder_(_fbb); 1748 builder_.add_host_addr(host_addr); 1749 builder_.add_message(message); 1750 builder_.add_message_type(message_type); 1751 return builder_.Finish(); 1752 } 1753 1754 flatbuffers::Offset<MessageContainer> CreateMessageContainer(flatbuffers::FlatBufferBuilder &_fbb, const MessageContainerT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1755 1756 inline NanoappMessageT *NanoappMessage::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1757 auto _o = new NanoappMessageT(); 1758 UnPackTo(_o, _resolver); 1759 return _o; 1760 } 1761 1762 inline void NanoappMessage::UnPackTo(NanoappMessageT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1763 (void)_o; 1764 (void)_resolver; 1765 { auto _e = app_id(); _o->app_id = _e; }; 1766 { auto _e = message_type(); _o->message_type = _e; }; 1767 { auto _e = host_endpoint(); _o->host_endpoint = _e; }; 1768 { auto _e = message(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->message.push_back(_e->Get(_i)); } }; 1769 } 1770 1771 inline flatbuffers::Offset<NanoappMessage> NanoappMessage::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappMessageT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1772 return CreateNanoappMessage(_fbb, _o, _rehasher); 1773 } 1774 1775 inline flatbuffers::Offset<NanoappMessage> CreateNanoappMessage(flatbuffers::FlatBufferBuilder &_fbb, const NanoappMessageT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1776 (void)_rehasher; 1777 (void)_o; 1778 auto _app_id = _o->app_id; 1779 auto _message_type = _o->message_type; 1780 auto _host_endpoint = _o->host_endpoint; 1781 auto _message = _fbb.CreateVector(_o->message); 1782 return chre::fbs::CreateNanoappMessage( 1783 _fbb, 1784 _app_id, 1785 _message_type, 1786 _host_endpoint, 1787 _message); 1788 } 1789 1790 inline HubInfoRequestT *HubInfoRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1791 auto _o = new HubInfoRequestT(); 1792 UnPackTo(_o, _resolver); 1793 return _o; 1794 } 1795 1796 inline void HubInfoRequest::UnPackTo(HubInfoRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1797 (void)_o; 1798 (void)_resolver; 1799 } 1800 1801 inline flatbuffers::Offset<HubInfoRequest> HubInfoRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1802 return CreateHubInfoRequest(_fbb, _o, _rehasher); 1803 } 1804 1805 inline flatbuffers::Offset<HubInfoRequest> CreateHubInfoRequest(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1806 (void)_rehasher; 1807 (void)_o; 1808 return chre::fbs::CreateHubInfoRequest( 1809 _fbb); 1810 } 1811 1812 inline HubInfoResponseT *HubInfoResponse::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1813 auto _o = new HubInfoResponseT(); 1814 UnPackTo(_o, _resolver); 1815 return _o; 1816 } 1817 1818 inline void HubInfoResponse::UnPackTo(HubInfoResponseT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1819 (void)_o; 1820 (void)_resolver; 1821 { auto _e = name(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->name.push_back(_e->Get(_i)); } }; 1822 { auto _e = vendor(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vendor.push_back(_e->Get(_i)); } }; 1823 { auto _e = toolchain(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->toolchain.push_back(_e->Get(_i)); } }; 1824 { auto _e = platform_version(); _o->platform_version = _e; }; 1825 { auto _e = toolchain_version(); _o->toolchain_version = _e; }; 1826 { auto _e = peak_mips(); _o->peak_mips = _e; }; 1827 { auto _e = stopped_power(); _o->stopped_power = _e; }; 1828 { auto _e = sleep_power(); _o->sleep_power = _e; }; 1829 { auto _e = peak_power(); _o->peak_power = _e; }; 1830 { auto _e = max_msg_len(); _o->max_msg_len = _e; }; 1831 { auto _e = platform_id(); _o->platform_id = _e; }; 1832 { auto _e = chre_platform_version(); _o->chre_platform_version = _e; }; 1833 } 1834 1835 inline flatbuffers::Offset<HubInfoResponse> HubInfoResponse::Pack(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1836 return CreateHubInfoResponse(_fbb, _o, _rehasher); 1837 } 1838 1839 inline flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponse(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1840 (void)_rehasher; 1841 (void)_o; 1842 auto _name = _o->name.size() ? _fbb.CreateVector(_o->name) : 0; 1843 auto _vendor = _o->vendor.size() ? _fbb.CreateVector(_o->vendor) : 0; 1844 auto _toolchain = _o->toolchain.size() ? _fbb.CreateVector(_o->toolchain) : 0; 1845 auto _platform_version = _o->platform_version; 1846 auto _toolchain_version = _o->toolchain_version; 1847 auto _peak_mips = _o->peak_mips; 1848 auto _stopped_power = _o->stopped_power; 1849 auto _sleep_power = _o->sleep_power; 1850 auto _peak_power = _o->peak_power; 1851 auto _max_msg_len = _o->max_msg_len; 1852 auto _platform_id = _o->platform_id; 1853 auto _chre_platform_version = _o->chre_platform_version; 1854 return chre::fbs::CreateHubInfoResponse( 1855 _fbb, 1856 _name, 1857 _vendor, 1858 _toolchain, 1859 _platform_version, 1860 _toolchain_version, 1861 _peak_mips, 1862 _stopped_power, 1863 _sleep_power, 1864 _peak_power, 1865 _max_msg_len, 1866 _platform_id, 1867 _chre_platform_version); 1868 } 1869 1870 inline NanoappListRequestT *NanoappListRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1871 auto _o = new NanoappListRequestT(); 1872 UnPackTo(_o, _resolver); 1873 return _o; 1874 } 1875 1876 inline void NanoappListRequest::UnPackTo(NanoappListRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1877 (void)_o; 1878 (void)_resolver; 1879 } 1880 1881 inline flatbuffers::Offset<NanoappListRequest> NanoappListRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1882 return CreateNanoappListRequest(_fbb, _o, _rehasher); 1883 } 1884 1885 inline flatbuffers::Offset<NanoappListRequest> CreateNanoappListRequest(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1886 (void)_rehasher; 1887 (void)_o; 1888 return chre::fbs::CreateNanoappListRequest( 1889 _fbb); 1890 } 1891 1892 inline NanoappListEntryT *NanoappListEntry::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1893 auto _o = new NanoappListEntryT(); 1894 UnPackTo(_o, _resolver); 1895 return _o; 1896 } 1897 1898 inline void NanoappListEntry::UnPackTo(NanoappListEntryT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1899 (void)_o; 1900 (void)_resolver; 1901 { auto _e = app_id(); _o->app_id = _e; }; 1902 { auto _e = version(); _o->version = _e; }; 1903 { auto _e = enabled(); _o->enabled = _e; }; 1904 { auto _e = is_system(); _o->is_system = _e; }; 1905 } 1906 1907 inline flatbuffers::Offset<NanoappListEntry> NanoappListEntry::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1908 return CreateNanoappListEntry(_fbb, _o, _rehasher); 1909 } 1910 1911 inline flatbuffers::Offset<NanoappListEntry> CreateNanoappListEntry(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1912 (void)_rehasher; 1913 (void)_o; 1914 auto _app_id = _o->app_id; 1915 auto _version = _o->version; 1916 auto _enabled = _o->enabled; 1917 auto _is_system = _o->is_system; 1918 return chre::fbs::CreateNanoappListEntry( 1919 _fbb, 1920 _app_id, 1921 _version, 1922 _enabled, 1923 _is_system); 1924 } 1925 1926 inline NanoappListResponseT *NanoappListResponse::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1927 auto _o = new NanoappListResponseT(); 1928 UnPackTo(_o, _resolver); 1929 return _o; 1930 } 1931 1932 inline void NanoappListResponse::UnPackTo(NanoappListResponseT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1933 (void)_o; 1934 (void)_resolver; 1935 { auto _e = nanoapps(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->nanoapps.push_back(std::unique_ptr<NanoappListEntryT>(_e->Get(_i)->UnPack(_resolver))); } }; 1936 } 1937 1938 inline flatbuffers::Offset<NanoappListResponse> NanoappListResponse::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1939 return CreateNanoappListResponse(_fbb, _o, _rehasher); 1940 } 1941 1942 inline flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponse(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1943 (void)_rehasher; 1944 (void)_o; 1945 auto _nanoapps = _fbb.CreateVector<flatbuffers::Offset<NanoappListEntry>>(_o->nanoapps.size(), [&](size_t i) { return CreateNanoappListEntry(_fbb, _o->nanoapps[i].get(), _rehasher); }); 1946 return chre::fbs::CreateNanoappListResponse( 1947 _fbb, 1948 _nanoapps); 1949 } 1950 1951 inline LoadNanoappRequestT *LoadNanoappRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1952 auto _o = new LoadNanoappRequestT(); 1953 UnPackTo(_o, _resolver); 1954 return _o; 1955 } 1956 1957 inline void LoadNanoappRequest::UnPackTo(LoadNanoappRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1958 (void)_o; 1959 (void)_resolver; 1960 { auto _e = transaction_id(); _o->transaction_id = _e; }; 1961 { auto _e = app_id(); _o->app_id = _e; }; 1962 { auto _e = app_version(); _o->app_version = _e; }; 1963 { auto _e = target_api_version(); _o->target_api_version = _e; }; 1964 { auto _e = app_binary(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->app_binary.push_back(_e->Get(_i)); } }; 1965 } 1966 1967 inline flatbuffers::Offset<LoadNanoappRequest> LoadNanoappRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1968 return CreateLoadNanoappRequest(_fbb, _o, _rehasher); 1969 } 1970 1971 inline flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequest(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1972 (void)_rehasher; 1973 (void)_o; 1974 auto _transaction_id = _o->transaction_id; 1975 auto _app_id = _o->app_id; 1976 auto _app_version = _o->app_version; 1977 auto _target_api_version = _o->target_api_version; 1978 auto _app_binary = _fbb.CreateVector(_o->app_binary); 1979 return chre::fbs::CreateLoadNanoappRequest( 1980 _fbb, 1981 _transaction_id, 1982 _app_id, 1983 _app_version, 1984 _target_api_version, 1985 _app_binary); 1986 } 1987 1988 inline LoadNanoappResponseT *LoadNanoappResponse::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1989 auto _o = new LoadNanoappResponseT(); 1990 UnPackTo(_o, _resolver); 1991 return _o; 1992 } 1993 1994 inline void LoadNanoappResponse::UnPackTo(LoadNanoappResponseT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1995 (void)_o; 1996 (void)_resolver; 1997 { auto _e = transaction_id(); _o->transaction_id = _e; }; 1998 { auto _e = success(); _o->success = _e; }; 1999 } 2000 2001 inline flatbuffers::Offset<LoadNanoappResponse> LoadNanoappResponse::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2002 return CreateLoadNanoappResponse(_fbb, _o, _rehasher); 2003 } 2004 2005 inline flatbuffers::Offset<LoadNanoappResponse> CreateLoadNanoappResponse(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2006 (void)_rehasher; 2007 (void)_o; 2008 auto _transaction_id = _o->transaction_id; 2009 auto _success = _o->success; 2010 return chre::fbs::CreateLoadNanoappResponse( 2011 _fbb, 2012 _transaction_id, 2013 _success); 2014 } 2015 2016 inline UnloadNanoappRequestT *UnloadNanoappRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2017 auto _o = new UnloadNanoappRequestT(); 2018 UnPackTo(_o, _resolver); 2019 return _o; 2020 } 2021 2022 inline void UnloadNanoappRequest::UnPackTo(UnloadNanoappRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2023 (void)_o; 2024 (void)_resolver; 2025 { auto _e = transaction_id(); _o->transaction_id = _e; }; 2026 { auto _e = app_id(); _o->app_id = _e; }; 2027 { auto _e = allow_system_nanoapp_unload(); _o->allow_system_nanoapp_unload = _e; }; 2028 } 2029 2030 inline flatbuffers::Offset<UnloadNanoappRequest> UnloadNanoappRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnloadNanoappRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2031 return CreateUnloadNanoappRequest(_fbb, _o, _rehasher); 2032 } 2033 2034 inline flatbuffers::Offset<UnloadNanoappRequest> CreateUnloadNanoappRequest(flatbuffers::FlatBufferBuilder &_fbb, const UnloadNanoappRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2035 (void)_rehasher; 2036 (void)_o; 2037 auto _transaction_id = _o->transaction_id; 2038 auto _app_id = _o->app_id; 2039 auto _allow_system_nanoapp_unload = _o->allow_system_nanoapp_unload; 2040 return chre::fbs::CreateUnloadNanoappRequest( 2041 _fbb, 2042 _transaction_id, 2043 _app_id, 2044 _allow_system_nanoapp_unload); 2045 } 2046 2047 inline UnloadNanoappResponseT *UnloadNanoappResponse::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2048 auto _o = new UnloadNanoappResponseT(); 2049 UnPackTo(_o, _resolver); 2050 return _o; 2051 } 2052 2053 inline void UnloadNanoappResponse::UnPackTo(UnloadNanoappResponseT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2054 (void)_o; 2055 (void)_resolver; 2056 { auto _e = transaction_id(); _o->transaction_id = _e; }; 2057 { auto _e = success(); _o->success = _e; }; 2058 } 2059 2060 inline flatbuffers::Offset<UnloadNanoappResponse> UnloadNanoappResponse::Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnloadNanoappResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2061 return CreateUnloadNanoappResponse(_fbb, _o, _rehasher); 2062 } 2063 2064 inline flatbuffers::Offset<UnloadNanoappResponse> CreateUnloadNanoappResponse(flatbuffers::FlatBufferBuilder &_fbb, const UnloadNanoappResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2065 (void)_rehasher; 2066 (void)_o; 2067 auto _transaction_id = _o->transaction_id; 2068 auto _success = _o->success; 2069 return chre::fbs::CreateUnloadNanoappResponse( 2070 _fbb, 2071 _transaction_id, 2072 _success); 2073 } 2074 2075 inline LogMessageT *LogMessage::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2076 auto _o = new LogMessageT(); 2077 UnPackTo(_o, _resolver); 2078 return _o; 2079 } 2080 2081 inline void LogMessage::UnPackTo(LogMessageT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2082 (void)_o; 2083 (void)_resolver; 2084 { auto _e = buffer(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->buffer.push_back(_e->Get(_i)); } }; 2085 } 2086 2087 inline flatbuffers::Offset<LogMessage> LogMessage::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LogMessageT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2088 return CreateLogMessage(_fbb, _o, _rehasher); 2089 } 2090 2091 inline flatbuffers::Offset<LogMessage> CreateLogMessage(flatbuffers::FlatBufferBuilder &_fbb, const LogMessageT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2092 (void)_rehasher; 2093 (void)_o; 2094 auto _buffer = _o->buffer.size() ? _fbb.CreateVector(_o->buffer) : 0; 2095 return chre::fbs::CreateLogMessage( 2096 _fbb, 2097 _buffer); 2098 } 2099 2100 inline TimeSyncMessageT *TimeSyncMessage::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2101 auto _o = new TimeSyncMessageT(); 2102 UnPackTo(_o, _resolver); 2103 return _o; 2104 } 2105 2106 inline void TimeSyncMessage::UnPackTo(TimeSyncMessageT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2107 (void)_o; 2108 (void)_resolver; 2109 { auto _e = offset(); _o->offset = _e; }; 2110 } 2111 2112 inline flatbuffers::Offset<TimeSyncMessage> TimeSyncMessage::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TimeSyncMessageT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2113 return CreateTimeSyncMessage(_fbb, _o, _rehasher); 2114 } 2115 2116 inline flatbuffers::Offset<TimeSyncMessage> CreateTimeSyncMessage(flatbuffers::FlatBufferBuilder &_fbb, const TimeSyncMessageT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2117 (void)_rehasher; 2118 (void)_o; 2119 auto _offset = _o->offset; 2120 return chre::fbs::CreateTimeSyncMessage( 2121 _fbb, 2122 _offset); 2123 } 2124 2125 inline DebugDumpRequestT *DebugDumpRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2126 auto _o = new DebugDumpRequestT(); 2127 UnPackTo(_o, _resolver); 2128 return _o; 2129 } 2130 2131 inline void DebugDumpRequest::UnPackTo(DebugDumpRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2132 (void)_o; 2133 (void)_resolver; 2134 } 2135 2136 inline flatbuffers::Offset<DebugDumpRequest> DebugDumpRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2137 return CreateDebugDumpRequest(_fbb, _o, _rehasher); 2138 } 2139 2140 inline flatbuffers::Offset<DebugDumpRequest> CreateDebugDumpRequest(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2141 (void)_rehasher; 2142 (void)_o; 2143 return chre::fbs::CreateDebugDumpRequest( 2144 _fbb); 2145 } 2146 2147 inline DebugDumpDataT *DebugDumpData::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2148 auto _o = new DebugDumpDataT(); 2149 UnPackTo(_o, _resolver); 2150 return _o; 2151 } 2152 2153 inline void DebugDumpData::UnPackTo(DebugDumpDataT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2154 (void)_o; 2155 (void)_resolver; 2156 { auto _e = debug_str(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->debug_str.push_back(_e->Get(_i)); } }; 2157 } 2158 2159 inline flatbuffers::Offset<DebugDumpData> DebugDumpData::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpDataT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2160 return CreateDebugDumpData(_fbb, _o, _rehasher); 2161 } 2162 2163 inline flatbuffers::Offset<DebugDumpData> CreateDebugDumpData(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpDataT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2164 (void)_rehasher; 2165 (void)_o; 2166 auto _debug_str = _o->debug_str.size() ? _fbb.CreateVector(_o->debug_str) : 0; 2167 return chre::fbs::CreateDebugDumpData( 2168 _fbb, 2169 _debug_str); 2170 } 2171 2172 inline DebugDumpResponseT *DebugDumpResponse::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2173 auto _o = new DebugDumpResponseT(); 2174 UnPackTo(_o, _resolver); 2175 return _o; 2176 } 2177 2178 inline void DebugDumpResponse::UnPackTo(DebugDumpResponseT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2179 (void)_o; 2180 (void)_resolver; 2181 { auto _e = success(); _o->success = _e; }; 2182 { auto _e = data_count(); _o->data_count = _e; }; 2183 } 2184 2185 inline flatbuffers::Offset<DebugDumpResponse> DebugDumpResponse::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2186 return CreateDebugDumpResponse(_fbb, _o, _rehasher); 2187 } 2188 2189 inline flatbuffers::Offset<DebugDumpResponse> CreateDebugDumpResponse(flatbuffers::FlatBufferBuilder &_fbb, const DebugDumpResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2190 (void)_rehasher; 2191 (void)_o; 2192 auto _success = _o->success; 2193 auto _data_count = _o->data_count; 2194 return chre::fbs::CreateDebugDumpResponse( 2195 _fbb, 2196 _success, 2197 _data_count); 2198 } 2199 2200 inline TimeSyncRequestT *TimeSyncRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2201 auto _o = new TimeSyncRequestT(); 2202 UnPackTo(_o, _resolver); 2203 return _o; 2204 } 2205 2206 inline void TimeSyncRequest::UnPackTo(TimeSyncRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2207 (void)_o; 2208 (void)_resolver; 2209 } 2210 2211 inline flatbuffers::Offset<TimeSyncRequest> TimeSyncRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TimeSyncRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2212 return CreateTimeSyncRequest(_fbb, _o, _rehasher); 2213 } 2214 2215 inline flatbuffers::Offset<TimeSyncRequest> CreateTimeSyncRequest(flatbuffers::FlatBufferBuilder &_fbb, const TimeSyncRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2216 (void)_rehasher; 2217 (void)_o; 2218 return chre::fbs::CreateTimeSyncRequest( 2219 _fbb); 2220 } 2221 2222 inline MessageContainerT *MessageContainer::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 2223 auto _o = new MessageContainerT(); 2224 UnPackTo(_o, _resolver); 2225 return _o; 2226 } 2227 2228 inline void MessageContainer::UnPackTo(MessageContainerT *_o, const flatbuffers::resolver_function_t *_resolver) const { 2229 (void)_o; 2230 (void)_resolver; 2231 { auto _e = message_type(); _o->message.type = _e; }; 2232 { auto _e = message(); if (_e) _o->message.table = ChreMessageUnion::UnPack(_e, message_type(),_resolver); }; 2233 { auto _e = host_addr(); if (_e) _o->host_addr = std::unique_ptr<HostAddress>(new HostAddress(*_e)); }; 2234 } 2235 2236 inline flatbuffers::Offset<MessageContainer> MessageContainer::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MessageContainerT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 2237 return CreateMessageContainer(_fbb, _o, _rehasher); 2238 } 2239 2240 inline flatbuffers::Offset<MessageContainer> CreateMessageContainer(flatbuffers::FlatBufferBuilder &_fbb, const MessageContainerT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 2241 (void)_rehasher; 2242 (void)_o; 2243 auto _message_type = _o->message.type; 2244 auto _message = _o->message.Pack(_fbb); 2245 auto _host_addr = _o->host_addr ? _o->host_addr.get() : 0; 2246 return chre::fbs::CreateMessageContainer( 2247 _fbb, 2248 _message_type, 2249 _message, 2250 _host_addr); 2251 } 2252 2253 inline bool VerifyChreMessage(flatbuffers::Verifier &verifier, const void *obj, ChreMessage type) { 2254 switch (type) { 2255 case ChreMessage::NONE: { 2256 return true; 2257 } 2258 case ChreMessage::NanoappMessage: { 2259 auto ptr = reinterpret_cast<const NanoappMessage *>(obj); 2260 return verifier.VerifyTable(ptr); 2261 } 2262 case ChreMessage::HubInfoRequest: { 2263 auto ptr = reinterpret_cast<const HubInfoRequest *>(obj); 2264 return verifier.VerifyTable(ptr); 2265 } 2266 case ChreMessage::HubInfoResponse: { 2267 auto ptr = reinterpret_cast<const HubInfoResponse *>(obj); 2268 return verifier.VerifyTable(ptr); 2269 } 2270 case ChreMessage::NanoappListRequest: { 2271 auto ptr = reinterpret_cast<const NanoappListRequest *>(obj); 2272 return verifier.VerifyTable(ptr); 2273 } 2274 case ChreMessage::NanoappListResponse: { 2275 auto ptr = reinterpret_cast<const NanoappListResponse *>(obj); 2276 return verifier.VerifyTable(ptr); 2277 } 2278 case ChreMessage::LoadNanoappRequest: { 2279 auto ptr = reinterpret_cast<const LoadNanoappRequest *>(obj); 2280 return verifier.VerifyTable(ptr); 2281 } 2282 case ChreMessage::LoadNanoappResponse: { 2283 auto ptr = reinterpret_cast<const LoadNanoappResponse *>(obj); 2284 return verifier.VerifyTable(ptr); 2285 } 2286 case ChreMessage::UnloadNanoappRequest: { 2287 auto ptr = reinterpret_cast<const UnloadNanoappRequest *>(obj); 2288 return verifier.VerifyTable(ptr); 2289 } 2290 case ChreMessage::UnloadNanoappResponse: { 2291 auto ptr = reinterpret_cast<const UnloadNanoappResponse *>(obj); 2292 return verifier.VerifyTable(ptr); 2293 } 2294 case ChreMessage::LogMessage: { 2295 auto ptr = reinterpret_cast<const LogMessage *>(obj); 2296 return verifier.VerifyTable(ptr); 2297 } 2298 case ChreMessage::TimeSyncMessage: { 2299 auto ptr = reinterpret_cast<const TimeSyncMessage *>(obj); 2300 return verifier.VerifyTable(ptr); 2301 } 2302 case ChreMessage::DebugDumpRequest: { 2303 auto ptr = reinterpret_cast<const DebugDumpRequest *>(obj); 2304 return verifier.VerifyTable(ptr); 2305 } 2306 case ChreMessage::DebugDumpData: { 2307 auto ptr = reinterpret_cast<const DebugDumpData *>(obj); 2308 return verifier.VerifyTable(ptr); 2309 } 2310 case ChreMessage::DebugDumpResponse: { 2311 auto ptr = reinterpret_cast<const DebugDumpResponse *>(obj); 2312 return verifier.VerifyTable(ptr); 2313 } 2314 case ChreMessage::TimeSyncRequest: { 2315 auto ptr = reinterpret_cast<const TimeSyncRequest *>(obj); 2316 return verifier.VerifyTable(ptr); 2317 } 2318 default: return false; 2319 } 2320 } 2321 2322 inline bool VerifyChreMessageVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) { 2323 if (values->size() != types->size()) return false; 2324 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { 2325 if (!VerifyChreMessage( 2326 verifier, values->Get(i), types->GetEnum<ChreMessage>(i))) { 2327 return false; 2328 } 2329 } 2330 return true; 2331 } 2332 2333 inline flatbuffers::NativeTable *ChreMessageUnion::UnPack(const void *obj, ChreMessage type, const flatbuffers::resolver_function_t *resolver) { 2334 switch (type) { 2335 case ChreMessage::NanoappMessage: { 2336 auto ptr = reinterpret_cast<const NanoappMessage *>(obj); 2337 return ptr->UnPack(resolver); 2338 } 2339 case ChreMessage::HubInfoRequest: { 2340 auto ptr = reinterpret_cast<const HubInfoRequest *>(obj); 2341 return ptr->UnPack(resolver); 2342 } 2343 case ChreMessage::HubInfoResponse: { 2344 auto ptr = reinterpret_cast<const HubInfoResponse *>(obj); 2345 return ptr->UnPack(resolver); 2346 } 2347 case ChreMessage::NanoappListRequest: { 2348 auto ptr = reinterpret_cast<const NanoappListRequest *>(obj); 2349 return ptr->UnPack(resolver); 2350 } 2351 case ChreMessage::NanoappListResponse: { 2352 auto ptr = reinterpret_cast<const NanoappListResponse *>(obj); 2353 return ptr->UnPack(resolver); 2354 } 2355 case ChreMessage::LoadNanoappRequest: { 2356 auto ptr = reinterpret_cast<const LoadNanoappRequest *>(obj); 2357 return ptr->UnPack(resolver); 2358 } 2359 case ChreMessage::LoadNanoappResponse: { 2360 auto ptr = reinterpret_cast<const LoadNanoappResponse *>(obj); 2361 return ptr->UnPack(resolver); 2362 } 2363 case ChreMessage::UnloadNanoappRequest: { 2364 auto ptr = reinterpret_cast<const UnloadNanoappRequest *>(obj); 2365 return ptr->UnPack(resolver); 2366 } 2367 case ChreMessage::UnloadNanoappResponse: { 2368 auto ptr = reinterpret_cast<const UnloadNanoappResponse *>(obj); 2369 return ptr->UnPack(resolver); 2370 } 2371 case ChreMessage::LogMessage: { 2372 auto ptr = reinterpret_cast<const LogMessage *>(obj); 2373 return ptr->UnPack(resolver); 2374 } 2375 case ChreMessage::TimeSyncMessage: { 2376 auto ptr = reinterpret_cast<const TimeSyncMessage *>(obj); 2377 return ptr->UnPack(resolver); 2378 } 2379 case ChreMessage::DebugDumpRequest: { 2380 auto ptr = reinterpret_cast<const DebugDumpRequest *>(obj); 2381 return ptr->UnPack(resolver); 2382 } 2383 case ChreMessage::DebugDumpData: { 2384 auto ptr = reinterpret_cast<const DebugDumpData *>(obj); 2385 return ptr->UnPack(resolver); 2386 } 2387 case ChreMessage::DebugDumpResponse: { 2388 auto ptr = reinterpret_cast<const DebugDumpResponse *>(obj); 2389 return ptr->UnPack(resolver); 2390 } 2391 case ChreMessage::TimeSyncRequest: { 2392 auto ptr = reinterpret_cast<const TimeSyncRequest *>(obj); 2393 return ptr->UnPack(resolver); 2394 } 2395 default: return nullptr; 2396 } 2397 } 2398 2399 inline flatbuffers::Offset<void> ChreMessageUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { 2400 switch (type) { 2401 case ChreMessage::NanoappMessage: { 2402 auto ptr = reinterpret_cast<const NanoappMessageT *>(table); 2403 return CreateNanoappMessage(_fbb, ptr, _rehasher).Union(); 2404 } 2405 case ChreMessage::HubInfoRequest: { 2406 auto ptr = reinterpret_cast<const HubInfoRequestT *>(table); 2407 return CreateHubInfoRequest(_fbb, ptr, _rehasher).Union(); 2408 } 2409 case ChreMessage::HubInfoResponse: { 2410 auto ptr = reinterpret_cast<const HubInfoResponseT *>(table); 2411 return CreateHubInfoResponse(_fbb, ptr, _rehasher).Union(); 2412 } 2413 case ChreMessage::NanoappListRequest: { 2414 auto ptr = reinterpret_cast<const NanoappListRequestT *>(table); 2415 return CreateNanoappListRequest(_fbb, ptr, _rehasher).Union(); 2416 } 2417 case ChreMessage::NanoappListResponse: { 2418 auto ptr = reinterpret_cast<const NanoappListResponseT *>(table); 2419 return CreateNanoappListResponse(_fbb, ptr, _rehasher).Union(); 2420 } 2421 case ChreMessage::LoadNanoappRequest: { 2422 auto ptr = reinterpret_cast<const LoadNanoappRequestT *>(table); 2423 return CreateLoadNanoappRequest(_fbb, ptr, _rehasher).Union(); 2424 } 2425 case ChreMessage::LoadNanoappResponse: { 2426 auto ptr = reinterpret_cast<const LoadNanoappResponseT *>(table); 2427 return CreateLoadNanoappResponse(_fbb, ptr, _rehasher).Union(); 2428 } 2429 case ChreMessage::UnloadNanoappRequest: { 2430 auto ptr = reinterpret_cast<const UnloadNanoappRequestT *>(table); 2431 return CreateUnloadNanoappRequest(_fbb, ptr, _rehasher).Union(); 2432 } 2433 case ChreMessage::UnloadNanoappResponse: { 2434 auto ptr = reinterpret_cast<const UnloadNanoappResponseT *>(table); 2435 return CreateUnloadNanoappResponse(_fbb, ptr, _rehasher).Union(); 2436 } 2437 case ChreMessage::LogMessage: { 2438 auto ptr = reinterpret_cast<const LogMessageT *>(table); 2439 return CreateLogMessage(_fbb, ptr, _rehasher).Union(); 2440 } 2441 case ChreMessage::TimeSyncMessage: { 2442 auto ptr = reinterpret_cast<const TimeSyncMessageT *>(table); 2443 return CreateTimeSyncMessage(_fbb, ptr, _rehasher).Union(); 2444 } 2445 case ChreMessage::DebugDumpRequest: { 2446 auto ptr = reinterpret_cast<const DebugDumpRequestT *>(table); 2447 return CreateDebugDumpRequest(_fbb, ptr, _rehasher).Union(); 2448 } 2449 case ChreMessage::DebugDumpData: { 2450 auto ptr = reinterpret_cast<const DebugDumpDataT *>(table); 2451 return CreateDebugDumpData(_fbb, ptr, _rehasher).Union(); 2452 } 2453 case ChreMessage::DebugDumpResponse: { 2454 auto ptr = reinterpret_cast<const DebugDumpResponseT *>(table); 2455 return CreateDebugDumpResponse(_fbb, ptr, _rehasher).Union(); 2456 } 2457 case ChreMessage::TimeSyncRequest: { 2458 auto ptr = reinterpret_cast<const TimeSyncRequestT *>(table); 2459 return CreateTimeSyncRequest(_fbb, ptr, _rehasher).Union(); 2460 } 2461 default: return 0; 2462 } 2463 } 2464 2465 inline void ChreMessageUnion::Reset() { 2466 switch (type) { 2467 case ChreMessage::NanoappMessage: { 2468 auto ptr = reinterpret_cast<NanoappMessageT *>(table); 2469 delete ptr; 2470 break; 2471 } 2472 case ChreMessage::HubInfoRequest: { 2473 auto ptr = reinterpret_cast<HubInfoRequestT *>(table); 2474 delete ptr; 2475 break; 2476 } 2477 case ChreMessage::HubInfoResponse: { 2478 auto ptr = reinterpret_cast<HubInfoResponseT *>(table); 2479 delete ptr; 2480 break; 2481 } 2482 case ChreMessage::NanoappListRequest: { 2483 auto ptr = reinterpret_cast<NanoappListRequestT *>(table); 2484 delete ptr; 2485 break; 2486 } 2487 case ChreMessage::NanoappListResponse: { 2488 auto ptr = reinterpret_cast<NanoappListResponseT *>(table); 2489 delete ptr; 2490 break; 2491 } 2492 case ChreMessage::LoadNanoappRequest: { 2493 auto ptr = reinterpret_cast<LoadNanoappRequestT *>(table); 2494 delete ptr; 2495 break; 2496 } 2497 case ChreMessage::LoadNanoappResponse: { 2498 auto ptr = reinterpret_cast<LoadNanoappResponseT *>(table); 2499 delete ptr; 2500 break; 2501 } 2502 case ChreMessage::UnloadNanoappRequest: { 2503 auto ptr = reinterpret_cast<UnloadNanoappRequestT *>(table); 2504 delete ptr; 2505 break; 2506 } 2507 case ChreMessage::UnloadNanoappResponse: { 2508 auto ptr = reinterpret_cast<UnloadNanoappResponseT *>(table); 2509 delete ptr; 2510 break; 2511 } 2512 case ChreMessage::LogMessage: { 2513 auto ptr = reinterpret_cast<LogMessageT *>(table); 2514 delete ptr; 2515 break; 2516 } 2517 case ChreMessage::TimeSyncMessage: { 2518 auto ptr = reinterpret_cast<TimeSyncMessageT *>(table); 2519 delete ptr; 2520 break; 2521 } 2522 case ChreMessage::DebugDumpRequest: { 2523 auto ptr = reinterpret_cast<DebugDumpRequestT *>(table); 2524 delete ptr; 2525 break; 2526 } 2527 case ChreMessage::DebugDumpData: { 2528 auto ptr = reinterpret_cast<DebugDumpDataT *>(table); 2529 delete ptr; 2530 break; 2531 } 2532 case ChreMessage::DebugDumpResponse: { 2533 auto ptr = reinterpret_cast<DebugDumpResponseT *>(table); 2534 delete ptr; 2535 break; 2536 } 2537 case ChreMessage::TimeSyncRequest: { 2538 auto ptr = reinterpret_cast<TimeSyncRequestT *>(table); 2539 delete ptr; 2540 break; 2541 } 2542 default: break; 2543 } 2544 table = nullptr; 2545 type = ChreMessage::NONE; 2546 } 2547 2548 inline const chre::fbs::MessageContainer *GetMessageContainer(const void *buf) { 2549 return flatbuffers::GetRoot<chre::fbs::MessageContainer>(buf); 2550 } 2551 2552 inline MessageContainer *GetMutableMessageContainer(void *buf) { 2553 return flatbuffers::GetMutableRoot<MessageContainer>(buf); 2554 } 2555 2556 inline bool VerifyMessageContainerBuffer( 2557 flatbuffers::Verifier &verifier) { 2558 return verifier.VerifyBuffer<chre::fbs::MessageContainer>(nullptr); 2559 } 2560 2561 inline void FinishMessageContainerBuffer( 2562 flatbuffers::FlatBufferBuilder &fbb, 2563 flatbuffers::Offset<chre::fbs::MessageContainer> root) { 2564 fbb.Finish(root); 2565 } 2566 2567 inline std::unique_ptr<MessageContainerT> UnPackMessageContainer( 2568 const void *buf, 2569 const flatbuffers::resolver_function_t *res = nullptr) { 2570 return std::unique_ptr<MessageContainerT>(GetMessageContainer(buf)->UnPack(res)); 2571 } 2572 2573 } // namespace fbs 2574 } // namespace chre 2575 2576 #endif // FLATBUFFERS_GENERATED_HOSTMESSAGES_CHRE_FBS_H_ 2577