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 HostAddress; 37 38 struct MessageContainer; 39 struct MessageContainerT; 40 41 /// A union that joins together all possible messages. Note that in FlatBuffers, 42 /// unions have an implicit type 43 enum class ChreMessage : uint8_t { 44 NONE = 0, 45 NanoappMessage = 1, 46 HubInfoRequest = 2, 47 HubInfoResponse = 3, 48 NanoappListRequest = 4, 49 NanoappListResponse = 5, 50 LoadNanoappRequest = 6, 51 LoadNanoappResponse = 7, 52 MIN = NONE, 53 MAX = LoadNanoappResponse 54 }; 55 56 inline const char **EnumNamesChreMessage() { 57 static const char *names[] = { 58 "NONE", 59 "NanoappMessage", 60 "HubInfoRequest", 61 "HubInfoResponse", 62 "NanoappListRequest", 63 "NanoappListResponse", 64 "LoadNanoappRequest", 65 "LoadNanoappResponse", 66 nullptr 67 }; 68 return names; 69 } 70 71 inline const char *EnumNameChreMessage(ChreMessage e) { 72 const size_t index = static_cast<int>(e); 73 return EnumNamesChreMessage()[index]; 74 } 75 76 template<typename T> struct ChreMessageTraits { 77 static const ChreMessage enum_value = ChreMessage::NONE; 78 }; 79 80 template<> struct ChreMessageTraits<NanoappMessage> { 81 static const ChreMessage enum_value = ChreMessage::NanoappMessage; 82 }; 83 84 template<> struct ChreMessageTraits<HubInfoRequest> { 85 static const ChreMessage enum_value = ChreMessage::HubInfoRequest; 86 }; 87 88 template<> struct ChreMessageTraits<HubInfoResponse> { 89 static const ChreMessage enum_value = ChreMessage::HubInfoResponse; 90 }; 91 92 template<> struct ChreMessageTraits<NanoappListRequest> { 93 static const ChreMessage enum_value = ChreMessage::NanoappListRequest; 94 }; 95 96 template<> struct ChreMessageTraits<NanoappListResponse> { 97 static const ChreMessage enum_value = ChreMessage::NanoappListResponse; 98 }; 99 100 template<> struct ChreMessageTraits<LoadNanoappRequest> { 101 static const ChreMessage enum_value = ChreMessage::LoadNanoappRequest; 102 }; 103 104 template<> struct ChreMessageTraits<LoadNanoappResponse> { 105 static const ChreMessage enum_value = ChreMessage::LoadNanoappResponse; 106 }; 107 108 struct ChreMessageUnion { 109 ChreMessage type; 110 flatbuffers::NativeTable *table; 111 112 ChreMessageUnion() : type(ChreMessage::NONE), table(nullptr) {} 113 ChreMessageUnion(ChreMessageUnion&& u): 114 type(std::move(u.type)), table(std::move(u.table)) {} 115 ChreMessageUnion(const ChreMessageUnion &); 116 ChreMessageUnion &operator=(const ChreMessageUnion &); 117 ~ChreMessageUnion() { Reset(); } 118 119 void Reset(); 120 121 template <typename T> 122 void Set(T&& value) { 123 Reset(); 124 type = ChreMessageTraits<typename T::TableType>::enum_value; 125 if (type != ChreMessage::NONE) { 126 table = new T(std::forward<T>(value)); 127 } 128 } 129 130 static flatbuffers::NativeTable *UnPack(const void *obj, ChreMessage type, const flatbuffers::resolver_function_t *resolver); 131 flatbuffers::Offset<void> Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; 132 133 NanoappMessageT *AsNanoappMessage() { 134 return type == ChreMessage::NanoappMessage ? 135 reinterpret_cast<NanoappMessageT *>(table) : nullptr; 136 } 137 HubInfoRequestT *AsHubInfoRequest() { 138 return type == ChreMessage::HubInfoRequest ? 139 reinterpret_cast<HubInfoRequestT *>(table) : nullptr; 140 } 141 HubInfoResponseT *AsHubInfoResponse() { 142 return type == ChreMessage::HubInfoResponse ? 143 reinterpret_cast<HubInfoResponseT *>(table) : nullptr; 144 } 145 NanoappListRequestT *AsNanoappListRequest() { 146 return type == ChreMessage::NanoappListRequest ? 147 reinterpret_cast<NanoappListRequestT *>(table) : nullptr; 148 } 149 NanoappListResponseT *AsNanoappListResponse() { 150 return type == ChreMessage::NanoappListResponse ? 151 reinterpret_cast<NanoappListResponseT *>(table) : nullptr; 152 } 153 LoadNanoappRequestT *AsLoadNanoappRequest() { 154 return type == ChreMessage::LoadNanoappRequest ? 155 reinterpret_cast<LoadNanoappRequestT *>(table) : nullptr; 156 } 157 LoadNanoappResponseT *AsLoadNanoappResponse() { 158 return type == ChreMessage::LoadNanoappResponse ? 159 reinterpret_cast<LoadNanoappResponseT *>(table) : nullptr; 160 } 161 }; 162 163 bool VerifyChreMessage(flatbuffers::Verifier &verifier, const void *obj, ChreMessage type); 164 bool VerifyChreMessageVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types); 165 166 MANUALLY_ALIGNED_STRUCT(2) HostAddress FLATBUFFERS_FINAL_CLASS { 167 private: 168 uint16_t client_id_; 169 170 public: 171 HostAddress() { 172 memset(this, 0, sizeof(HostAddress)); 173 } 174 HostAddress(const HostAddress &_o) { 175 memcpy(this, &_o, sizeof(HostAddress)); 176 } 177 HostAddress(uint16_t _client_id) 178 : client_id_(flatbuffers::EndianScalar(_client_id)) { 179 } 180 uint16_t client_id() const { 181 return flatbuffers::EndianScalar(client_id_); 182 } 183 void mutate_client_id(uint16_t _client_id) { 184 flatbuffers::WriteScalar(&client_id_, _client_id); 185 } 186 }; 187 STRUCT_END(HostAddress, 2); 188 189 struct NanoappMessageT : public flatbuffers::NativeTable { 190 typedef NanoappMessage TableType; 191 uint64_t app_id; 192 uint32_t message_type; 193 uint16_t host_endpoint; 194 std::vector<uint8_t> message; 195 NanoappMessageT() 196 : app_id(0), 197 message_type(0), 198 host_endpoint(65534) { 199 } 200 }; 201 202 /// Represents a message sent to/from a nanoapp from/to a client on the host 203 struct NanoappMessage FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 204 typedef NanoappMessageT NativeTableType; 205 enum { 206 VT_APP_ID = 4, 207 VT_MESSAGE_TYPE = 6, 208 VT_HOST_ENDPOINT = 8, 209 VT_MESSAGE = 10 210 }; 211 uint64_t app_id() const { 212 return GetField<uint64_t>(VT_APP_ID, 0); 213 } 214 bool mutate_app_id(uint64_t _app_id) { 215 return SetField(VT_APP_ID, _app_id); 216 } 217 uint32_t message_type() const { 218 return GetField<uint32_t>(VT_MESSAGE_TYPE, 0); 219 } 220 bool mutate_message_type(uint32_t _message_type) { 221 return SetField(VT_MESSAGE_TYPE, _message_type); 222 } 223 /// Identifies the host-side endpoint on the host that sent or should receive 224 /// this message. The default value is a special value defined in the HAL and 225 /// elsewhere that indicates that the endpoint is unspecified. 226 uint16_t host_endpoint() const { 227 return GetField<uint16_t>(VT_HOST_ENDPOINT, 65534); 228 } 229 bool mutate_host_endpoint(uint16_t _host_endpoint) { 230 return SetField(VT_HOST_ENDPOINT, _host_endpoint); 231 } 232 /// Vector containing arbitrary application-specific message data 233 const flatbuffers::Vector<uint8_t> *message() const { 234 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MESSAGE); 235 } 236 flatbuffers::Vector<uint8_t> *mutable_message() { 237 return GetPointer<flatbuffers::Vector<uint8_t> *>(VT_MESSAGE); 238 } 239 bool Verify(flatbuffers::Verifier &verifier) const { 240 return VerifyTableStart(verifier) && 241 VerifyField<uint64_t>(verifier, VT_APP_ID) && 242 VerifyField<uint32_t>(verifier, VT_MESSAGE_TYPE) && 243 VerifyField<uint16_t>(verifier, VT_HOST_ENDPOINT) && 244 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_MESSAGE) && 245 verifier.Verify(message()) && 246 verifier.EndTable(); 247 } 248 NanoappMessageT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 249 void UnPackTo(NanoappMessageT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 250 static flatbuffers::Offset<NanoappMessage> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappMessageT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 251 }; 252 253 struct NanoappMessageBuilder { 254 flatbuffers::FlatBufferBuilder &fbb_; 255 flatbuffers::uoffset_t start_; 256 void add_app_id(uint64_t app_id) { 257 fbb_.AddElement<uint64_t>(NanoappMessage::VT_APP_ID, app_id, 0); 258 } 259 void add_message_type(uint32_t message_type) { 260 fbb_.AddElement<uint32_t>(NanoappMessage::VT_MESSAGE_TYPE, message_type, 0); 261 } 262 void add_host_endpoint(uint16_t host_endpoint) { 263 fbb_.AddElement<uint16_t>(NanoappMessage::VT_HOST_ENDPOINT, host_endpoint, 65534); 264 } 265 void add_message(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> message) { 266 fbb_.AddOffset(NanoappMessage::VT_MESSAGE, message); 267 } 268 NanoappMessageBuilder(flatbuffers::FlatBufferBuilder &_fbb) 269 : fbb_(_fbb) { 270 start_ = fbb_.StartTable(); 271 } 272 NanoappMessageBuilder &operator=(const NanoappMessageBuilder &); 273 flatbuffers::Offset<NanoappMessage> Finish() { 274 const auto end = fbb_.EndTable(start_, 4); 275 auto o = flatbuffers::Offset<NanoappMessage>(end); 276 fbb_.Required(o, NanoappMessage::VT_MESSAGE); 277 return o; 278 } 279 }; 280 281 inline flatbuffers::Offset<NanoappMessage> CreateNanoappMessage( 282 flatbuffers::FlatBufferBuilder &_fbb, 283 uint64_t app_id = 0, 284 uint32_t message_type = 0, 285 uint16_t host_endpoint = 65534, 286 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> message = 0) { 287 NanoappMessageBuilder builder_(_fbb); 288 builder_.add_app_id(app_id); 289 builder_.add_message(message); 290 builder_.add_message_type(message_type); 291 builder_.add_host_endpoint(host_endpoint); 292 return builder_.Finish(); 293 } 294 295 inline flatbuffers::Offset<NanoappMessage> CreateNanoappMessageDirect( 296 flatbuffers::FlatBufferBuilder &_fbb, 297 uint64_t app_id = 0, 298 uint32_t message_type = 0, 299 uint16_t host_endpoint = 65534, 300 const std::vector<uint8_t> *message = nullptr) { 301 return chre::fbs::CreateNanoappMessage( 302 _fbb, 303 app_id, 304 message_type, 305 host_endpoint, 306 message ? _fbb.CreateVector<uint8_t>(*message) : 0); 307 } 308 309 flatbuffers::Offset<NanoappMessage> CreateNanoappMessage(flatbuffers::FlatBufferBuilder &_fbb, const NanoappMessageT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 310 311 struct HubInfoRequestT : public flatbuffers::NativeTable { 312 typedef HubInfoRequest TableType; 313 HubInfoRequestT() { 314 } 315 }; 316 317 struct HubInfoRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 318 typedef HubInfoRequestT NativeTableType; 319 bool Verify(flatbuffers::Verifier &verifier) const { 320 return VerifyTableStart(verifier) && 321 verifier.EndTable(); 322 } 323 HubInfoRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 324 void UnPackTo(HubInfoRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 325 static flatbuffers::Offset<HubInfoRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 326 }; 327 328 struct HubInfoRequestBuilder { 329 flatbuffers::FlatBufferBuilder &fbb_; 330 flatbuffers::uoffset_t start_; 331 HubInfoRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 332 : fbb_(_fbb) { 333 start_ = fbb_.StartTable(); 334 } 335 HubInfoRequestBuilder &operator=(const HubInfoRequestBuilder &); 336 flatbuffers::Offset<HubInfoRequest> Finish() { 337 const auto end = fbb_.EndTable(start_, 0); 338 auto o = flatbuffers::Offset<HubInfoRequest>(end); 339 return o; 340 } 341 }; 342 343 inline flatbuffers::Offset<HubInfoRequest> CreateHubInfoRequest( 344 flatbuffers::FlatBufferBuilder &_fbb) { 345 HubInfoRequestBuilder builder_(_fbb); 346 return builder_.Finish(); 347 } 348 349 flatbuffers::Offset<HubInfoRequest> CreateHubInfoRequest(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 350 351 struct HubInfoResponseT : public flatbuffers::NativeTable { 352 typedef HubInfoResponse TableType; 353 std::vector<int8_t> name; 354 std::vector<int8_t> vendor; 355 std::vector<int8_t> toolchain; 356 uint32_t platform_version; 357 uint32_t toolchain_version; 358 float peak_mips; 359 float stopped_power; 360 float sleep_power; 361 float peak_power; 362 uint32_t max_msg_len; 363 uint64_t platform_id; 364 uint32_t chre_platform_version; 365 HubInfoResponseT() 366 : platform_version(0), 367 toolchain_version(0), 368 peak_mips(0.0f), 369 stopped_power(0.0f), 370 sleep_power(0.0f), 371 peak_power(0.0f), 372 max_msg_len(0), 373 platform_id(0), 374 chre_platform_version(0) { 375 } 376 }; 377 378 struct HubInfoResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 379 typedef HubInfoResponseT NativeTableType; 380 enum { 381 VT_NAME = 4, 382 VT_VENDOR = 6, 383 VT_TOOLCHAIN = 8, 384 VT_PLATFORM_VERSION = 10, 385 VT_TOOLCHAIN_VERSION = 12, 386 VT_PEAK_MIPS = 14, 387 VT_STOPPED_POWER = 16, 388 VT_SLEEP_POWER = 18, 389 VT_PEAK_POWER = 20, 390 VT_MAX_MSG_LEN = 22, 391 VT_PLATFORM_ID = 24, 392 VT_CHRE_PLATFORM_VERSION = 26 393 }; 394 /// The name of the hub. Nominally a UTF-8 string, but note that we're not 395 /// using the built-in "string" data type from FlatBuffers here, because the 396 /// generated C++ uses std::string which is not well-supported in CHRE. This 397 /// applies for vendor and toolchain as well. 398 const flatbuffers::Vector<int8_t> *name() const { 399 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_NAME); 400 } 401 flatbuffers::Vector<int8_t> *mutable_name() { 402 return GetPointer<flatbuffers::Vector<int8_t> *>(VT_NAME); 403 } 404 const flatbuffers::Vector<int8_t> *vendor() const { 405 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_VENDOR); 406 } 407 flatbuffers::Vector<int8_t> *mutable_vendor() { 408 return GetPointer<flatbuffers::Vector<int8_t> *>(VT_VENDOR); 409 } 410 const flatbuffers::Vector<int8_t> *toolchain() const { 411 return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_TOOLCHAIN); 412 } 413 flatbuffers::Vector<int8_t> *mutable_toolchain() { 414 return GetPointer<flatbuffers::Vector<int8_t> *>(VT_TOOLCHAIN); 415 } 416 /// Legacy platform version reported in the HAL; semantics not strictly 417 /// defined 418 uint32_t platform_version() const { 419 return GetField<uint32_t>(VT_PLATFORM_VERSION, 0); 420 } 421 bool mutate_platform_version(uint32_t _platform_version) { 422 return SetField(VT_PLATFORM_VERSION, _platform_version); 423 } 424 /// Toolchain version reported in the HAL; semantics not strictly defined 425 uint32_t toolchain_version() const { 426 return GetField<uint32_t>(VT_TOOLCHAIN_VERSION, 0); 427 } 428 bool mutate_toolchain_version(uint32_t _toolchain_version) { 429 return SetField(VT_TOOLCHAIN_VERSION, _toolchain_version); 430 } 431 float peak_mips() const { 432 return GetField<float>(VT_PEAK_MIPS, 0.0f); 433 } 434 bool mutate_peak_mips(float _peak_mips) { 435 return SetField(VT_PEAK_MIPS, _peak_mips); 436 } 437 float stopped_power() const { 438 return GetField<float>(VT_STOPPED_POWER, 0.0f); 439 } 440 bool mutate_stopped_power(float _stopped_power) { 441 return SetField(VT_STOPPED_POWER, _stopped_power); 442 } 443 float sleep_power() const { 444 return GetField<float>(VT_SLEEP_POWER, 0.0f); 445 } 446 bool mutate_sleep_power(float _sleep_power) { 447 return SetField(VT_SLEEP_POWER, _sleep_power); 448 } 449 float peak_power() const { 450 return GetField<float>(VT_PEAK_POWER, 0.0f); 451 } 452 bool mutate_peak_power(float _peak_power) { 453 return SetField(VT_PEAK_POWER, _peak_power); 454 } 455 /// Maximum size message that can be sent to a nanoapp 456 uint32_t max_msg_len() const { 457 return GetField<uint32_t>(VT_MAX_MSG_LEN, 0); 458 } 459 bool mutate_max_msg_len(uint32_t _max_msg_len) { 460 return SetField(VT_MAX_MSG_LEN, _max_msg_len); 461 } 462 /// @see chreGetPlatformId() 463 uint64_t platform_id() const { 464 return GetField<uint64_t>(VT_PLATFORM_ID, 0); 465 } 466 bool mutate_platform_id(uint64_t _platform_id) { 467 return SetField(VT_PLATFORM_ID, _platform_id); 468 } 469 /// @see chreGetVersion() 470 uint32_t chre_platform_version() const { 471 return GetField<uint32_t>(VT_CHRE_PLATFORM_VERSION, 0); 472 } 473 bool mutate_chre_platform_version(uint32_t _chre_platform_version) { 474 return SetField(VT_CHRE_PLATFORM_VERSION, _chre_platform_version); 475 } 476 bool Verify(flatbuffers::Verifier &verifier) const { 477 return VerifyTableStart(verifier) && 478 VerifyField<flatbuffers::uoffset_t>(verifier, VT_NAME) && 479 verifier.Verify(name()) && 480 VerifyField<flatbuffers::uoffset_t>(verifier, VT_VENDOR) && 481 verifier.Verify(vendor()) && 482 VerifyField<flatbuffers::uoffset_t>(verifier, VT_TOOLCHAIN) && 483 verifier.Verify(toolchain()) && 484 VerifyField<uint32_t>(verifier, VT_PLATFORM_VERSION) && 485 VerifyField<uint32_t>(verifier, VT_TOOLCHAIN_VERSION) && 486 VerifyField<float>(verifier, VT_PEAK_MIPS) && 487 VerifyField<float>(verifier, VT_STOPPED_POWER) && 488 VerifyField<float>(verifier, VT_SLEEP_POWER) && 489 VerifyField<float>(verifier, VT_PEAK_POWER) && 490 VerifyField<uint32_t>(verifier, VT_MAX_MSG_LEN) && 491 VerifyField<uint64_t>(verifier, VT_PLATFORM_ID) && 492 VerifyField<uint32_t>(verifier, VT_CHRE_PLATFORM_VERSION) && 493 verifier.EndTable(); 494 } 495 HubInfoResponseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 496 void UnPackTo(HubInfoResponseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 497 static flatbuffers::Offset<HubInfoResponse> Pack(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 498 }; 499 500 struct HubInfoResponseBuilder { 501 flatbuffers::FlatBufferBuilder &fbb_; 502 flatbuffers::uoffset_t start_; 503 void add_name(flatbuffers::Offset<flatbuffers::Vector<int8_t>> name) { 504 fbb_.AddOffset(HubInfoResponse::VT_NAME, name); 505 } 506 void add_vendor(flatbuffers::Offset<flatbuffers::Vector<int8_t>> vendor) { 507 fbb_.AddOffset(HubInfoResponse::VT_VENDOR, vendor); 508 } 509 void add_toolchain(flatbuffers::Offset<flatbuffers::Vector<int8_t>> toolchain) { 510 fbb_.AddOffset(HubInfoResponse::VT_TOOLCHAIN, toolchain); 511 } 512 void add_platform_version(uint32_t platform_version) { 513 fbb_.AddElement<uint32_t>(HubInfoResponse::VT_PLATFORM_VERSION, platform_version, 0); 514 } 515 void add_toolchain_version(uint32_t toolchain_version) { 516 fbb_.AddElement<uint32_t>(HubInfoResponse::VT_TOOLCHAIN_VERSION, toolchain_version, 0); 517 } 518 void add_peak_mips(float peak_mips) { 519 fbb_.AddElement<float>(HubInfoResponse::VT_PEAK_MIPS, peak_mips, 0.0f); 520 } 521 void add_stopped_power(float stopped_power) { 522 fbb_.AddElement<float>(HubInfoResponse::VT_STOPPED_POWER, stopped_power, 0.0f); 523 } 524 void add_sleep_power(float sleep_power) { 525 fbb_.AddElement<float>(HubInfoResponse::VT_SLEEP_POWER, sleep_power, 0.0f); 526 } 527 void add_peak_power(float peak_power) { 528 fbb_.AddElement<float>(HubInfoResponse::VT_PEAK_POWER, peak_power, 0.0f); 529 } 530 void add_max_msg_len(uint32_t max_msg_len) { 531 fbb_.AddElement<uint32_t>(HubInfoResponse::VT_MAX_MSG_LEN, max_msg_len, 0); 532 } 533 void add_platform_id(uint64_t platform_id) { 534 fbb_.AddElement<uint64_t>(HubInfoResponse::VT_PLATFORM_ID, platform_id, 0); 535 } 536 void add_chre_platform_version(uint32_t chre_platform_version) { 537 fbb_.AddElement<uint32_t>(HubInfoResponse::VT_CHRE_PLATFORM_VERSION, chre_platform_version, 0); 538 } 539 HubInfoResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 540 : fbb_(_fbb) { 541 start_ = fbb_.StartTable(); 542 } 543 HubInfoResponseBuilder &operator=(const HubInfoResponseBuilder &); 544 flatbuffers::Offset<HubInfoResponse> Finish() { 545 const auto end = fbb_.EndTable(start_, 12); 546 auto o = flatbuffers::Offset<HubInfoResponse>(end); 547 return o; 548 } 549 }; 550 551 inline flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponse( 552 flatbuffers::FlatBufferBuilder &_fbb, 553 flatbuffers::Offset<flatbuffers::Vector<int8_t>> name = 0, 554 flatbuffers::Offset<flatbuffers::Vector<int8_t>> vendor = 0, 555 flatbuffers::Offset<flatbuffers::Vector<int8_t>> toolchain = 0, 556 uint32_t platform_version = 0, 557 uint32_t toolchain_version = 0, 558 float peak_mips = 0.0f, 559 float stopped_power = 0.0f, 560 float sleep_power = 0.0f, 561 float peak_power = 0.0f, 562 uint32_t max_msg_len = 0, 563 uint64_t platform_id = 0, 564 uint32_t chre_platform_version = 0) { 565 HubInfoResponseBuilder builder_(_fbb); 566 builder_.add_platform_id(platform_id); 567 builder_.add_chre_platform_version(chre_platform_version); 568 builder_.add_max_msg_len(max_msg_len); 569 builder_.add_peak_power(peak_power); 570 builder_.add_sleep_power(sleep_power); 571 builder_.add_stopped_power(stopped_power); 572 builder_.add_peak_mips(peak_mips); 573 builder_.add_toolchain_version(toolchain_version); 574 builder_.add_platform_version(platform_version); 575 builder_.add_toolchain(toolchain); 576 builder_.add_vendor(vendor); 577 builder_.add_name(name); 578 return builder_.Finish(); 579 } 580 581 inline flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponseDirect( 582 flatbuffers::FlatBufferBuilder &_fbb, 583 const std::vector<int8_t> *name = nullptr, 584 const std::vector<int8_t> *vendor = nullptr, 585 const std::vector<int8_t> *toolchain = nullptr, 586 uint32_t platform_version = 0, 587 uint32_t toolchain_version = 0, 588 float peak_mips = 0.0f, 589 float stopped_power = 0.0f, 590 float sleep_power = 0.0f, 591 float peak_power = 0.0f, 592 uint32_t max_msg_len = 0, 593 uint64_t platform_id = 0, 594 uint32_t chre_platform_version = 0) { 595 return chre::fbs::CreateHubInfoResponse( 596 _fbb, 597 name ? _fbb.CreateVector<int8_t>(*name) : 0, 598 vendor ? _fbb.CreateVector<int8_t>(*vendor) : 0, 599 toolchain ? _fbb.CreateVector<int8_t>(*toolchain) : 0, 600 platform_version, 601 toolchain_version, 602 peak_mips, 603 stopped_power, 604 sleep_power, 605 peak_power, 606 max_msg_len, 607 platform_id, 608 chre_platform_version); 609 } 610 611 flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponse(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 612 613 struct NanoappListRequestT : public flatbuffers::NativeTable { 614 typedef NanoappListRequest TableType; 615 NanoappListRequestT() { 616 } 617 }; 618 619 struct NanoappListRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 620 typedef NanoappListRequestT NativeTableType; 621 bool Verify(flatbuffers::Verifier &verifier) const { 622 return VerifyTableStart(verifier) && 623 verifier.EndTable(); 624 } 625 NanoappListRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 626 void UnPackTo(NanoappListRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 627 static flatbuffers::Offset<NanoappListRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 628 }; 629 630 struct NanoappListRequestBuilder { 631 flatbuffers::FlatBufferBuilder &fbb_; 632 flatbuffers::uoffset_t start_; 633 NanoappListRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 634 : fbb_(_fbb) { 635 start_ = fbb_.StartTable(); 636 } 637 NanoappListRequestBuilder &operator=(const NanoappListRequestBuilder &); 638 flatbuffers::Offset<NanoappListRequest> Finish() { 639 const auto end = fbb_.EndTable(start_, 0); 640 auto o = flatbuffers::Offset<NanoappListRequest>(end); 641 return o; 642 } 643 }; 644 645 inline flatbuffers::Offset<NanoappListRequest> CreateNanoappListRequest( 646 flatbuffers::FlatBufferBuilder &_fbb) { 647 NanoappListRequestBuilder builder_(_fbb); 648 return builder_.Finish(); 649 } 650 651 flatbuffers::Offset<NanoappListRequest> CreateNanoappListRequest(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 652 653 struct NanoappListEntryT : public flatbuffers::NativeTable { 654 typedef NanoappListEntry TableType; 655 uint64_t app_id; 656 uint32_t version; 657 bool enabled; 658 bool is_system; 659 NanoappListEntryT() 660 : app_id(0), 661 version(0), 662 enabled(true), 663 is_system(false) { 664 } 665 }; 666 667 struct NanoappListEntry FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 668 typedef NanoappListEntryT NativeTableType; 669 enum { 670 VT_APP_ID = 4, 671 VT_VERSION = 6, 672 VT_ENABLED = 8, 673 VT_IS_SYSTEM = 10 674 }; 675 uint64_t app_id() const { 676 return GetField<uint64_t>(VT_APP_ID, 0); 677 } 678 bool mutate_app_id(uint64_t _app_id) { 679 return SetField(VT_APP_ID, _app_id); 680 } 681 uint32_t version() const { 682 return GetField<uint32_t>(VT_VERSION, 0); 683 } 684 bool mutate_version(uint32_t _version) { 685 return SetField(VT_VERSION, _version); 686 } 687 bool enabled() const { 688 return GetField<uint8_t>(VT_ENABLED, 1) != 0; 689 } 690 bool mutate_enabled(bool _enabled) { 691 return SetField(VT_ENABLED, static_cast<uint8_t>(_enabled)); 692 } 693 /// Whether the nanoapp is a pre-loaded "system" nanoapp, i.e. one that should 694 /// not show up in the list of nanoapps in the context hub HAL. System 695 /// nanoapps are typically used to leverage CHRE for some device functionality 696 /// and do not interact via the context hub HAL. 697 bool is_system() const { 698 return GetField<uint8_t>(VT_IS_SYSTEM, 0) != 0; 699 } 700 bool mutate_is_system(bool _is_system) { 701 return SetField(VT_IS_SYSTEM, static_cast<uint8_t>(_is_system)); 702 } 703 bool Verify(flatbuffers::Verifier &verifier) const { 704 return VerifyTableStart(verifier) && 705 VerifyField<uint64_t>(verifier, VT_APP_ID) && 706 VerifyField<uint32_t>(verifier, VT_VERSION) && 707 VerifyField<uint8_t>(verifier, VT_ENABLED) && 708 VerifyField<uint8_t>(verifier, VT_IS_SYSTEM) && 709 verifier.EndTable(); 710 } 711 NanoappListEntryT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 712 void UnPackTo(NanoappListEntryT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 713 static flatbuffers::Offset<NanoappListEntry> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 714 }; 715 716 struct NanoappListEntryBuilder { 717 flatbuffers::FlatBufferBuilder &fbb_; 718 flatbuffers::uoffset_t start_; 719 void add_app_id(uint64_t app_id) { 720 fbb_.AddElement<uint64_t>(NanoappListEntry::VT_APP_ID, app_id, 0); 721 } 722 void add_version(uint32_t version) { 723 fbb_.AddElement<uint32_t>(NanoappListEntry::VT_VERSION, version, 0); 724 } 725 void add_enabled(bool enabled) { 726 fbb_.AddElement<uint8_t>(NanoappListEntry::VT_ENABLED, static_cast<uint8_t>(enabled), 1); 727 } 728 void add_is_system(bool is_system) { 729 fbb_.AddElement<uint8_t>(NanoappListEntry::VT_IS_SYSTEM, static_cast<uint8_t>(is_system), 0); 730 } 731 NanoappListEntryBuilder(flatbuffers::FlatBufferBuilder &_fbb) 732 : fbb_(_fbb) { 733 start_ = fbb_.StartTable(); 734 } 735 NanoappListEntryBuilder &operator=(const NanoappListEntryBuilder &); 736 flatbuffers::Offset<NanoappListEntry> Finish() { 737 const auto end = fbb_.EndTable(start_, 4); 738 auto o = flatbuffers::Offset<NanoappListEntry>(end); 739 return o; 740 } 741 }; 742 743 inline flatbuffers::Offset<NanoappListEntry> CreateNanoappListEntry( 744 flatbuffers::FlatBufferBuilder &_fbb, 745 uint64_t app_id = 0, 746 uint32_t version = 0, 747 bool enabled = true, 748 bool is_system = false) { 749 NanoappListEntryBuilder builder_(_fbb); 750 builder_.add_app_id(app_id); 751 builder_.add_version(version); 752 builder_.add_is_system(is_system); 753 builder_.add_enabled(enabled); 754 return builder_.Finish(); 755 } 756 757 flatbuffers::Offset<NanoappListEntry> CreateNanoappListEntry(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 758 759 struct NanoappListResponseT : public flatbuffers::NativeTable { 760 typedef NanoappListResponse TableType; 761 std::vector<std::unique_ptr<NanoappListEntryT>> nanoapps; 762 NanoappListResponseT() { 763 } 764 }; 765 766 struct NanoappListResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 767 typedef NanoappListResponseT NativeTableType; 768 enum { 769 VT_NANOAPPS = 4 770 }; 771 const flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *nanoapps() const { 772 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *>(VT_NANOAPPS); 773 } 774 flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *mutable_nanoapps() { 775 return GetPointer<flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *>(VT_NANOAPPS); 776 } 777 bool Verify(flatbuffers::Verifier &verifier) const { 778 return VerifyTableStart(verifier) && 779 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_NANOAPPS) && 780 verifier.Verify(nanoapps()) && 781 verifier.VerifyVectorOfTables(nanoapps()) && 782 verifier.EndTable(); 783 } 784 NanoappListResponseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 785 void UnPackTo(NanoappListResponseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 786 static flatbuffers::Offset<NanoappListResponse> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 787 }; 788 789 struct NanoappListResponseBuilder { 790 flatbuffers::FlatBufferBuilder &fbb_; 791 flatbuffers::uoffset_t start_; 792 void add_nanoapps(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>>> nanoapps) { 793 fbb_.AddOffset(NanoappListResponse::VT_NANOAPPS, nanoapps); 794 } 795 NanoappListResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 796 : fbb_(_fbb) { 797 start_ = fbb_.StartTable(); 798 } 799 NanoappListResponseBuilder &operator=(const NanoappListResponseBuilder &); 800 flatbuffers::Offset<NanoappListResponse> Finish() { 801 const auto end = fbb_.EndTable(start_, 1); 802 auto o = flatbuffers::Offset<NanoappListResponse>(end); 803 fbb_.Required(o, NanoappListResponse::VT_NANOAPPS); 804 return o; 805 } 806 }; 807 808 inline flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponse( 809 flatbuffers::FlatBufferBuilder &_fbb, 810 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>>> nanoapps = 0) { 811 NanoappListResponseBuilder builder_(_fbb); 812 builder_.add_nanoapps(nanoapps); 813 return builder_.Finish(); 814 } 815 816 inline flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponseDirect( 817 flatbuffers::FlatBufferBuilder &_fbb, 818 const std::vector<flatbuffers::Offset<NanoappListEntry>> *nanoapps = nullptr) { 819 return chre::fbs::CreateNanoappListResponse( 820 _fbb, 821 nanoapps ? _fbb.CreateVector<flatbuffers::Offset<NanoappListEntry>>(*nanoapps) : 0); 822 } 823 824 flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponse(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 825 826 struct LoadNanoappRequestT : public flatbuffers::NativeTable { 827 typedef LoadNanoappRequest TableType; 828 uint32_t transaction_id; 829 uint64_t app_id; 830 uint32_t app_version; 831 uint32_t target_api_version; 832 std::vector<uint8_t> app_binary; 833 LoadNanoappRequestT() 834 : transaction_id(0), 835 app_id(0), 836 app_version(0), 837 target_api_version(0) { 838 } 839 }; 840 841 struct LoadNanoappRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 842 typedef LoadNanoappRequestT NativeTableType; 843 enum { 844 VT_TRANSACTION_ID = 4, 845 VT_APP_ID = 6, 846 VT_APP_VERSION = 8, 847 VT_TARGET_API_VERSION = 10, 848 VT_APP_BINARY = 12 849 }; 850 uint32_t transaction_id() const { 851 return GetField<uint32_t>(VT_TRANSACTION_ID, 0); 852 } 853 bool mutate_transaction_id(uint32_t _transaction_id) { 854 return SetField(VT_TRANSACTION_ID, _transaction_id); 855 } 856 uint64_t app_id() const { 857 return GetField<uint64_t>(VT_APP_ID, 0); 858 } 859 bool mutate_app_id(uint64_t _app_id) { 860 return SetField(VT_APP_ID, _app_id); 861 } 862 uint32_t app_version() const { 863 return GetField<uint32_t>(VT_APP_VERSION, 0); 864 } 865 bool mutate_app_version(uint32_t _app_version) { 866 return SetField(VT_APP_VERSION, _app_version); 867 } 868 uint32_t target_api_version() const { 869 return GetField<uint32_t>(VT_TARGET_API_VERSION, 0); 870 } 871 bool mutate_target_api_version(uint32_t _target_api_version) { 872 return SetField(VT_TARGET_API_VERSION, _target_api_version); 873 } 874 const flatbuffers::Vector<uint8_t> *app_binary() const { 875 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_APP_BINARY); 876 } 877 flatbuffers::Vector<uint8_t> *mutable_app_binary() { 878 return GetPointer<flatbuffers::Vector<uint8_t> *>(VT_APP_BINARY); 879 } 880 bool Verify(flatbuffers::Verifier &verifier) const { 881 return VerifyTableStart(verifier) && 882 VerifyField<uint32_t>(verifier, VT_TRANSACTION_ID) && 883 VerifyField<uint64_t>(verifier, VT_APP_ID) && 884 VerifyField<uint32_t>(verifier, VT_APP_VERSION) && 885 VerifyField<uint32_t>(verifier, VT_TARGET_API_VERSION) && 886 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_APP_BINARY) && 887 verifier.Verify(app_binary()) && 888 verifier.EndTable(); 889 } 890 LoadNanoappRequestT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 891 void UnPackTo(LoadNanoappRequestT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 892 static flatbuffers::Offset<LoadNanoappRequest> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 893 }; 894 895 struct LoadNanoappRequestBuilder { 896 flatbuffers::FlatBufferBuilder &fbb_; 897 flatbuffers::uoffset_t start_; 898 void add_transaction_id(uint32_t transaction_id) { 899 fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_TRANSACTION_ID, transaction_id, 0); 900 } 901 void add_app_id(uint64_t app_id) { 902 fbb_.AddElement<uint64_t>(LoadNanoappRequest::VT_APP_ID, app_id, 0); 903 } 904 void add_app_version(uint32_t app_version) { 905 fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_APP_VERSION, app_version, 0); 906 } 907 void add_target_api_version(uint32_t target_api_version) { 908 fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_TARGET_API_VERSION, target_api_version, 0); 909 } 910 void add_app_binary(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> app_binary) { 911 fbb_.AddOffset(LoadNanoappRequest::VT_APP_BINARY, app_binary); 912 } 913 LoadNanoappRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 914 : fbb_(_fbb) { 915 start_ = fbb_.StartTable(); 916 } 917 LoadNanoappRequestBuilder &operator=(const LoadNanoappRequestBuilder &); 918 flatbuffers::Offset<LoadNanoappRequest> Finish() { 919 const auto end = fbb_.EndTable(start_, 5); 920 auto o = flatbuffers::Offset<LoadNanoappRequest>(end); 921 fbb_.Required(o, LoadNanoappRequest::VT_APP_BINARY); 922 return o; 923 } 924 }; 925 926 inline flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequest( 927 flatbuffers::FlatBufferBuilder &_fbb, 928 uint32_t transaction_id = 0, 929 uint64_t app_id = 0, 930 uint32_t app_version = 0, 931 uint32_t target_api_version = 0, 932 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> app_binary = 0) { 933 LoadNanoappRequestBuilder builder_(_fbb); 934 builder_.add_app_id(app_id); 935 builder_.add_app_binary(app_binary); 936 builder_.add_target_api_version(target_api_version); 937 builder_.add_app_version(app_version); 938 builder_.add_transaction_id(transaction_id); 939 return builder_.Finish(); 940 } 941 942 inline flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequestDirect( 943 flatbuffers::FlatBufferBuilder &_fbb, 944 uint32_t transaction_id = 0, 945 uint64_t app_id = 0, 946 uint32_t app_version = 0, 947 uint32_t target_api_version = 0, 948 const std::vector<uint8_t> *app_binary = nullptr) { 949 return chre::fbs::CreateLoadNanoappRequest( 950 _fbb, 951 transaction_id, 952 app_id, 953 app_version, 954 target_api_version, 955 app_binary ? _fbb.CreateVector<uint8_t>(*app_binary) : 0); 956 } 957 958 flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequest(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 959 960 struct LoadNanoappResponseT : public flatbuffers::NativeTable { 961 typedef LoadNanoappResponse TableType; 962 uint32_t transaction_id; 963 bool success; 964 LoadNanoappResponseT() 965 : transaction_id(0), 966 success(false) { 967 } 968 }; 969 970 struct LoadNanoappResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 971 typedef LoadNanoappResponseT NativeTableType; 972 enum { 973 VT_TRANSACTION_ID = 4, 974 VT_SUCCESS = 6 975 }; 976 uint32_t transaction_id() const { 977 return GetField<uint32_t>(VT_TRANSACTION_ID, 0); 978 } 979 bool mutate_transaction_id(uint32_t _transaction_id) { 980 return SetField(VT_TRANSACTION_ID, _transaction_id); 981 } 982 bool success() const { 983 return GetField<uint8_t>(VT_SUCCESS, 0) != 0; 984 } 985 bool mutate_success(bool _success) { 986 return SetField(VT_SUCCESS, static_cast<uint8_t>(_success)); 987 } 988 bool Verify(flatbuffers::Verifier &verifier) const { 989 return VerifyTableStart(verifier) && 990 VerifyField<uint32_t>(verifier, VT_TRANSACTION_ID) && 991 VerifyField<uint8_t>(verifier, VT_SUCCESS) && 992 verifier.EndTable(); 993 } 994 LoadNanoappResponseT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 995 void UnPackTo(LoadNanoappResponseT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 996 static flatbuffers::Offset<LoadNanoappResponse> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 997 }; 998 999 struct LoadNanoappResponseBuilder { 1000 flatbuffers::FlatBufferBuilder &fbb_; 1001 flatbuffers::uoffset_t start_; 1002 void add_transaction_id(uint32_t transaction_id) { 1003 fbb_.AddElement<uint32_t>(LoadNanoappResponse::VT_TRANSACTION_ID, transaction_id, 0); 1004 } 1005 void add_success(bool success) { 1006 fbb_.AddElement<uint8_t>(LoadNanoappResponse::VT_SUCCESS, static_cast<uint8_t>(success), 0); 1007 } 1008 LoadNanoappResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1009 : fbb_(_fbb) { 1010 start_ = fbb_.StartTable(); 1011 } 1012 LoadNanoappResponseBuilder &operator=(const LoadNanoappResponseBuilder &); 1013 flatbuffers::Offset<LoadNanoappResponse> Finish() { 1014 const auto end = fbb_.EndTable(start_, 2); 1015 auto o = flatbuffers::Offset<LoadNanoappResponse>(end); 1016 return o; 1017 } 1018 }; 1019 1020 inline flatbuffers::Offset<LoadNanoappResponse> CreateLoadNanoappResponse( 1021 flatbuffers::FlatBufferBuilder &_fbb, 1022 uint32_t transaction_id = 0, 1023 bool success = false) { 1024 LoadNanoappResponseBuilder builder_(_fbb); 1025 builder_.add_transaction_id(transaction_id); 1026 builder_.add_success(success); 1027 return builder_.Finish(); 1028 } 1029 1030 flatbuffers::Offset<LoadNanoappResponse> CreateLoadNanoappResponse(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1031 1032 struct MessageContainerT : public flatbuffers::NativeTable { 1033 typedef MessageContainer TableType; 1034 ChreMessageUnion message; 1035 std::unique_ptr<HostAddress> host_addr; 1036 MessageContainerT() { 1037 } 1038 }; 1039 1040 /// The top-level container that encapsulates all possible messages. Note that 1041 /// per FlatBuffers requirements, we can't use a union as the top-level structure 1042 /// (root type), so we must wrap it in a table. 1043 struct MessageContainer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 1044 typedef MessageContainerT NativeTableType; 1045 enum { 1046 VT_MESSAGE_TYPE = 4, 1047 VT_MESSAGE = 6, 1048 VT_HOST_ADDR = 8 1049 }; 1050 ChreMessage message_type() const { 1051 return static_cast<ChreMessage>(GetField<uint8_t>(VT_MESSAGE_TYPE, 0)); 1052 } 1053 bool mutate_message_type(ChreMessage _message_type) { 1054 return SetField(VT_MESSAGE_TYPE, static_cast<uint8_t>(_message_type)); 1055 } 1056 const void *message() const { 1057 return GetPointer<const void *>(VT_MESSAGE); 1058 } 1059 void *mutable_message() { 1060 return GetPointer<void *>(VT_MESSAGE); 1061 } 1062 /// The originating or destination client ID on the host side, used to direct 1063 /// responses only to the client that sent the request. Although initially 1064 /// populated by the requesting client, this is enforced to be the correct 1065 /// value by the entity guarding access to CHRE. 1066 /// This is wrapped in a struct to ensure that it is always included when 1067 /// encoding the message, so it can be mutated by the host daemon. 1068 const HostAddress *host_addr() const { 1069 return GetStruct<const HostAddress *>(VT_HOST_ADDR); 1070 } 1071 HostAddress *mutable_host_addr() { 1072 return GetStruct<HostAddress *>(VT_HOST_ADDR); 1073 } 1074 bool Verify(flatbuffers::Verifier &verifier) const { 1075 return VerifyTableStart(verifier) && 1076 VerifyField<uint8_t>(verifier, VT_MESSAGE_TYPE) && 1077 VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_MESSAGE) && 1078 VerifyChreMessage(verifier, message(), message_type()) && 1079 VerifyFieldRequired<HostAddress>(verifier, VT_HOST_ADDR) && 1080 verifier.EndTable(); 1081 } 1082 MessageContainerT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1083 void UnPackTo(MessageContainerT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; 1084 static flatbuffers::Offset<MessageContainer> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MessageContainerT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1085 }; 1086 1087 struct MessageContainerBuilder { 1088 flatbuffers::FlatBufferBuilder &fbb_; 1089 flatbuffers::uoffset_t start_; 1090 void add_message_type(ChreMessage message_type) { 1091 fbb_.AddElement<uint8_t>(MessageContainer::VT_MESSAGE_TYPE, static_cast<uint8_t>(message_type), 0); 1092 } 1093 void add_message(flatbuffers::Offset<void> message) { 1094 fbb_.AddOffset(MessageContainer::VT_MESSAGE, message); 1095 } 1096 void add_host_addr(const HostAddress *host_addr) { 1097 fbb_.AddStruct(MessageContainer::VT_HOST_ADDR, host_addr); 1098 } 1099 MessageContainerBuilder(flatbuffers::FlatBufferBuilder &_fbb) 1100 : fbb_(_fbb) { 1101 start_ = fbb_.StartTable(); 1102 } 1103 MessageContainerBuilder &operator=(const MessageContainerBuilder &); 1104 flatbuffers::Offset<MessageContainer> Finish() { 1105 const auto end = fbb_.EndTable(start_, 3); 1106 auto o = flatbuffers::Offset<MessageContainer>(end); 1107 fbb_.Required(o, MessageContainer::VT_MESSAGE); 1108 fbb_.Required(o, MessageContainer::VT_HOST_ADDR); 1109 return o; 1110 } 1111 }; 1112 1113 inline flatbuffers::Offset<MessageContainer> CreateMessageContainer( 1114 flatbuffers::FlatBufferBuilder &_fbb, 1115 ChreMessage message_type = ChreMessage::NONE, 1116 flatbuffers::Offset<void> message = 0, 1117 const HostAddress *host_addr = 0) { 1118 MessageContainerBuilder builder_(_fbb); 1119 builder_.add_host_addr(host_addr); 1120 builder_.add_message(message); 1121 builder_.add_message_type(message_type); 1122 return builder_.Finish(); 1123 } 1124 1125 flatbuffers::Offset<MessageContainer> CreateMessageContainer(flatbuffers::FlatBufferBuilder &_fbb, const MessageContainerT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); 1126 1127 inline NanoappMessageT *NanoappMessage::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1128 auto _o = new NanoappMessageT(); 1129 UnPackTo(_o, _resolver); 1130 return _o; 1131 } 1132 1133 inline void NanoappMessage::UnPackTo(NanoappMessageT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1134 (void)_o; 1135 (void)_resolver; 1136 { auto _e = app_id(); _o->app_id = _e; }; 1137 { auto _e = message_type(); _o->message_type = _e; }; 1138 { auto _e = host_endpoint(); _o->host_endpoint = _e; }; 1139 { auto _e = message(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->message.push_back(_e->Get(_i)); } }; 1140 } 1141 1142 inline flatbuffers::Offset<NanoappMessage> NanoappMessage::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappMessageT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1143 return CreateNanoappMessage(_fbb, _o, _rehasher); 1144 } 1145 1146 inline flatbuffers::Offset<NanoappMessage> CreateNanoappMessage(flatbuffers::FlatBufferBuilder &_fbb, const NanoappMessageT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1147 (void)_rehasher; 1148 (void)_o; 1149 auto _app_id = _o->app_id; 1150 auto _message_type = _o->message_type; 1151 auto _host_endpoint = _o->host_endpoint; 1152 auto _message = _fbb.CreateVector(_o->message); 1153 return chre::fbs::CreateNanoappMessage( 1154 _fbb, 1155 _app_id, 1156 _message_type, 1157 _host_endpoint, 1158 _message); 1159 } 1160 1161 inline HubInfoRequestT *HubInfoRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1162 auto _o = new HubInfoRequestT(); 1163 UnPackTo(_o, _resolver); 1164 return _o; 1165 } 1166 1167 inline void HubInfoRequest::UnPackTo(HubInfoRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1168 (void)_o; 1169 (void)_resolver; 1170 } 1171 1172 inline flatbuffers::Offset<HubInfoRequest> HubInfoRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1173 return CreateHubInfoRequest(_fbb, _o, _rehasher); 1174 } 1175 1176 inline flatbuffers::Offset<HubInfoRequest> CreateHubInfoRequest(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1177 (void)_rehasher; 1178 (void)_o; 1179 return chre::fbs::CreateHubInfoRequest( 1180 _fbb); 1181 } 1182 1183 inline HubInfoResponseT *HubInfoResponse::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1184 auto _o = new HubInfoResponseT(); 1185 UnPackTo(_o, _resolver); 1186 return _o; 1187 } 1188 1189 inline void HubInfoResponse::UnPackTo(HubInfoResponseT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1190 (void)_o; 1191 (void)_resolver; 1192 { auto _e = name(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->name.push_back(_e->Get(_i)); } }; 1193 { auto _e = vendor(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vendor.push_back(_e->Get(_i)); } }; 1194 { auto _e = toolchain(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->toolchain.push_back(_e->Get(_i)); } }; 1195 { auto _e = platform_version(); _o->platform_version = _e; }; 1196 { auto _e = toolchain_version(); _o->toolchain_version = _e; }; 1197 { auto _e = peak_mips(); _o->peak_mips = _e; }; 1198 { auto _e = stopped_power(); _o->stopped_power = _e; }; 1199 { auto _e = sleep_power(); _o->sleep_power = _e; }; 1200 { auto _e = peak_power(); _o->peak_power = _e; }; 1201 { auto _e = max_msg_len(); _o->max_msg_len = _e; }; 1202 { auto _e = platform_id(); _o->platform_id = _e; }; 1203 { auto _e = chre_platform_version(); _o->chre_platform_version = _e; }; 1204 } 1205 1206 inline flatbuffers::Offset<HubInfoResponse> HubInfoResponse::Pack(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1207 return CreateHubInfoResponse(_fbb, _o, _rehasher); 1208 } 1209 1210 inline flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponse(flatbuffers::FlatBufferBuilder &_fbb, const HubInfoResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1211 (void)_rehasher; 1212 (void)_o; 1213 auto _name = _o->name.size() ? _fbb.CreateVector(_o->name) : 0; 1214 auto _vendor = _o->vendor.size() ? _fbb.CreateVector(_o->vendor) : 0; 1215 auto _toolchain = _o->toolchain.size() ? _fbb.CreateVector(_o->toolchain) : 0; 1216 auto _platform_version = _o->platform_version; 1217 auto _toolchain_version = _o->toolchain_version; 1218 auto _peak_mips = _o->peak_mips; 1219 auto _stopped_power = _o->stopped_power; 1220 auto _sleep_power = _o->sleep_power; 1221 auto _peak_power = _o->peak_power; 1222 auto _max_msg_len = _o->max_msg_len; 1223 auto _platform_id = _o->platform_id; 1224 auto _chre_platform_version = _o->chre_platform_version; 1225 return chre::fbs::CreateHubInfoResponse( 1226 _fbb, 1227 _name, 1228 _vendor, 1229 _toolchain, 1230 _platform_version, 1231 _toolchain_version, 1232 _peak_mips, 1233 _stopped_power, 1234 _sleep_power, 1235 _peak_power, 1236 _max_msg_len, 1237 _platform_id, 1238 _chre_platform_version); 1239 } 1240 1241 inline NanoappListRequestT *NanoappListRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1242 auto _o = new NanoappListRequestT(); 1243 UnPackTo(_o, _resolver); 1244 return _o; 1245 } 1246 1247 inline void NanoappListRequest::UnPackTo(NanoappListRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1248 (void)_o; 1249 (void)_resolver; 1250 } 1251 1252 inline flatbuffers::Offset<NanoappListRequest> NanoappListRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1253 return CreateNanoappListRequest(_fbb, _o, _rehasher); 1254 } 1255 1256 inline flatbuffers::Offset<NanoappListRequest> CreateNanoappListRequest(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1257 (void)_rehasher; 1258 (void)_o; 1259 return chre::fbs::CreateNanoappListRequest( 1260 _fbb); 1261 } 1262 1263 inline NanoappListEntryT *NanoappListEntry::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1264 auto _o = new NanoappListEntryT(); 1265 UnPackTo(_o, _resolver); 1266 return _o; 1267 } 1268 1269 inline void NanoappListEntry::UnPackTo(NanoappListEntryT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1270 (void)_o; 1271 (void)_resolver; 1272 { auto _e = app_id(); _o->app_id = _e; }; 1273 { auto _e = version(); _o->version = _e; }; 1274 { auto _e = enabled(); _o->enabled = _e; }; 1275 { auto _e = is_system(); _o->is_system = _e; }; 1276 } 1277 1278 inline flatbuffers::Offset<NanoappListEntry> NanoappListEntry::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1279 return CreateNanoappListEntry(_fbb, _o, _rehasher); 1280 } 1281 1282 inline flatbuffers::Offset<NanoappListEntry> CreateNanoappListEntry(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1283 (void)_rehasher; 1284 (void)_o; 1285 auto _app_id = _o->app_id; 1286 auto _version = _o->version; 1287 auto _enabled = _o->enabled; 1288 auto _is_system = _o->is_system; 1289 return chre::fbs::CreateNanoappListEntry( 1290 _fbb, 1291 _app_id, 1292 _version, 1293 _enabled, 1294 _is_system); 1295 } 1296 1297 inline NanoappListResponseT *NanoappListResponse::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1298 auto _o = new NanoappListResponseT(); 1299 UnPackTo(_o, _resolver); 1300 return _o; 1301 } 1302 1303 inline void NanoappListResponse::UnPackTo(NanoappListResponseT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1304 (void)_o; 1305 (void)_resolver; 1306 { 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))); } }; 1307 } 1308 1309 inline flatbuffers::Offset<NanoappListResponse> NanoappListResponse::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1310 return CreateNanoappListResponse(_fbb, _o, _rehasher); 1311 } 1312 1313 inline flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponse(flatbuffers::FlatBufferBuilder &_fbb, const NanoappListResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1314 (void)_rehasher; 1315 (void)_o; 1316 auto _nanoapps = _fbb.CreateVector<flatbuffers::Offset<NanoappListEntry>>(_o->nanoapps.size(), [&](size_t i) { return CreateNanoappListEntry(_fbb, _o->nanoapps[i].get(), _rehasher); }); 1317 return chre::fbs::CreateNanoappListResponse( 1318 _fbb, 1319 _nanoapps); 1320 } 1321 1322 inline LoadNanoappRequestT *LoadNanoappRequest::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1323 auto _o = new LoadNanoappRequestT(); 1324 UnPackTo(_o, _resolver); 1325 return _o; 1326 } 1327 1328 inline void LoadNanoappRequest::UnPackTo(LoadNanoappRequestT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1329 (void)_o; 1330 (void)_resolver; 1331 { auto _e = transaction_id(); _o->transaction_id = _e; }; 1332 { auto _e = app_id(); _o->app_id = _e; }; 1333 { auto _e = app_version(); _o->app_version = _e; }; 1334 { auto _e = target_api_version(); _o->target_api_version = _e; }; 1335 { auto _e = app_binary(); if (_e) for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->app_binary.push_back(_e->Get(_i)); } }; 1336 } 1337 1338 inline flatbuffers::Offset<LoadNanoappRequest> LoadNanoappRequest::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappRequestT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1339 return CreateLoadNanoappRequest(_fbb, _o, _rehasher); 1340 } 1341 1342 inline flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequest(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappRequestT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1343 (void)_rehasher; 1344 (void)_o; 1345 auto _transaction_id = _o->transaction_id; 1346 auto _app_id = _o->app_id; 1347 auto _app_version = _o->app_version; 1348 auto _target_api_version = _o->target_api_version; 1349 auto _app_binary = _fbb.CreateVector(_o->app_binary); 1350 return chre::fbs::CreateLoadNanoappRequest( 1351 _fbb, 1352 _transaction_id, 1353 _app_id, 1354 _app_version, 1355 _target_api_version, 1356 _app_binary); 1357 } 1358 1359 inline LoadNanoappResponseT *LoadNanoappResponse::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1360 auto _o = new LoadNanoappResponseT(); 1361 UnPackTo(_o, _resolver); 1362 return _o; 1363 } 1364 1365 inline void LoadNanoappResponse::UnPackTo(LoadNanoappResponseT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1366 (void)_o; 1367 (void)_resolver; 1368 { auto _e = transaction_id(); _o->transaction_id = _e; }; 1369 { auto _e = success(); _o->success = _e; }; 1370 } 1371 1372 inline flatbuffers::Offset<LoadNanoappResponse> LoadNanoappResponse::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappResponseT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1373 return CreateLoadNanoappResponse(_fbb, _o, _rehasher); 1374 } 1375 1376 inline flatbuffers::Offset<LoadNanoappResponse> CreateLoadNanoappResponse(flatbuffers::FlatBufferBuilder &_fbb, const LoadNanoappResponseT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1377 (void)_rehasher; 1378 (void)_o; 1379 auto _transaction_id = _o->transaction_id; 1380 auto _success = _o->success; 1381 return chre::fbs::CreateLoadNanoappResponse( 1382 _fbb, 1383 _transaction_id, 1384 _success); 1385 } 1386 1387 inline MessageContainerT *MessageContainer::UnPack(const flatbuffers::resolver_function_t *_resolver) const { 1388 auto _o = new MessageContainerT(); 1389 UnPackTo(_o, _resolver); 1390 return _o; 1391 } 1392 1393 inline void MessageContainer::UnPackTo(MessageContainerT *_o, const flatbuffers::resolver_function_t *_resolver) const { 1394 (void)_o; 1395 (void)_resolver; 1396 { auto _e = message_type(); _o->message.type = _e; }; 1397 { auto _e = message(); if (_e) _o->message.table = ChreMessageUnion::UnPack(_e, message_type(),_resolver); }; 1398 { auto _e = host_addr(); if (_e) _o->host_addr = std::unique_ptr<HostAddress>(new HostAddress(*_e)); }; 1399 } 1400 1401 inline flatbuffers::Offset<MessageContainer> MessageContainer::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MessageContainerT* _o, const flatbuffers::rehasher_function_t *_rehasher) { 1402 return CreateMessageContainer(_fbb, _o, _rehasher); 1403 } 1404 1405 inline flatbuffers::Offset<MessageContainer> CreateMessageContainer(flatbuffers::FlatBufferBuilder &_fbb, const MessageContainerT *_o, const flatbuffers::rehasher_function_t *_rehasher) { 1406 (void)_rehasher; 1407 (void)_o; 1408 auto _message_type = _o->message.type; 1409 auto _message = _o->message.Pack(_fbb); 1410 auto _host_addr = _o->host_addr ? _o->host_addr.get() : 0; 1411 return chre::fbs::CreateMessageContainer( 1412 _fbb, 1413 _message_type, 1414 _message, 1415 _host_addr); 1416 } 1417 1418 inline bool VerifyChreMessage(flatbuffers::Verifier &verifier, const void *obj, ChreMessage type) { 1419 switch (type) { 1420 case ChreMessage::NONE: { 1421 return true; 1422 } 1423 case ChreMessage::NanoappMessage: { 1424 auto ptr = reinterpret_cast<const NanoappMessage *>(obj); 1425 return verifier.VerifyTable(ptr); 1426 } 1427 case ChreMessage::HubInfoRequest: { 1428 auto ptr = reinterpret_cast<const HubInfoRequest *>(obj); 1429 return verifier.VerifyTable(ptr); 1430 } 1431 case ChreMessage::HubInfoResponse: { 1432 auto ptr = reinterpret_cast<const HubInfoResponse *>(obj); 1433 return verifier.VerifyTable(ptr); 1434 } 1435 case ChreMessage::NanoappListRequest: { 1436 auto ptr = reinterpret_cast<const NanoappListRequest *>(obj); 1437 return verifier.VerifyTable(ptr); 1438 } 1439 case ChreMessage::NanoappListResponse: { 1440 auto ptr = reinterpret_cast<const NanoappListResponse *>(obj); 1441 return verifier.VerifyTable(ptr); 1442 } 1443 case ChreMessage::LoadNanoappRequest: { 1444 auto ptr = reinterpret_cast<const LoadNanoappRequest *>(obj); 1445 return verifier.VerifyTable(ptr); 1446 } 1447 case ChreMessage::LoadNanoappResponse: { 1448 auto ptr = reinterpret_cast<const LoadNanoappResponse *>(obj); 1449 return verifier.VerifyTable(ptr); 1450 } 1451 default: return false; 1452 } 1453 } 1454 1455 inline bool VerifyChreMessageVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) { 1456 if (values->size() != types->size()) return false; 1457 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { 1458 if (!VerifyChreMessage( 1459 verifier, values->Get(i), types->GetEnum<ChreMessage>(i))) { 1460 return false; 1461 } 1462 } 1463 return true; 1464 } 1465 1466 inline flatbuffers::NativeTable *ChreMessageUnion::UnPack(const void *obj, ChreMessage type, const flatbuffers::resolver_function_t *resolver) { 1467 switch (type) { 1468 case ChreMessage::NanoappMessage: { 1469 auto ptr = reinterpret_cast<const NanoappMessage *>(obj); 1470 return ptr->UnPack(resolver); 1471 } 1472 case ChreMessage::HubInfoRequest: { 1473 auto ptr = reinterpret_cast<const HubInfoRequest *>(obj); 1474 return ptr->UnPack(resolver); 1475 } 1476 case ChreMessage::HubInfoResponse: { 1477 auto ptr = reinterpret_cast<const HubInfoResponse *>(obj); 1478 return ptr->UnPack(resolver); 1479 } 1480 case ChreMessage::NanoappListRequest: { 1481 auto ptr = reinterpret_cast<const NanoappListRequest *>(obj); 1482 return ptr->UnPack(resolver); 1483 } 1484 case ChreMessage::NanoappListResponse: { 1485 auto ptr = reinterpret_cast<const NanoappListResponse *>(obj); 1486 return ptr->UnPack(resolver); 1487 } 1488 case ChreMessage::LoadNanoappRequest: { 1489 auto ptr = reinterpret_cast<const LoadNanoappRequest *>(obj); 1490 return ptr->UnPack(resolver); 1491 } 1492 case ChreMessage::LoadNanoappResponse: { 1493 auto ptr = reinterpret_cast<const LoadNanoappResponse *>(obj); 1494 return ptr->UnPack(resolver); 1495 } 1496 default: return nullptr; 1497 } 1498 } 1499 1500 inline flatbuffers::Offset<void> ChreMessageUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { 1501 switch (type) { 1502 case ChreMessage::NanoappMessage: { 1503 auto ptr = reinterpret_cast<const NanoappMessageT *>(table); 1504 return CreateNanoappMessage(_fbb, ptr, _rehasher).Union(); 1505 } 1506 case ChreMessage::HubInfoRequest: { 1507 auto ptr = reinterpret_cast<const HubInfoRequestT *>(table); 1508 return CreateHubInfoRequest(_fbb, ptr, _rehasher).Union(); 1509 } 1510 case ChreMessage::HubInfoResponse: { 1511 auto ptr = reinterpret_cast<const HubInfoResponseT *>(table); 1512 return CreateHubInfoResponse(_fbb, ptr, _rehasher).Union(); 1513 } 1514 case ChreMessage::NanoappListRequest: { 1515 auto ptr = reinterpret_cast<const NanoappListRequestT *>(table); 1516 return CreateNanoappListRequest(_fbb, ptr, _rehasher).Union(); 1517 } 1518 case ChreMessage::NanoappListResponse: { 1519 auto ptr = reinterpret_cast<const NanoappListResponseT *>(table); 1520 return CreateNanoappListResponse(_fbb, ptr, _rehasher).Union(); 1521 } 1522 case ChreMessage::LoadNanoappRequest: { 1523 auto ptr = reinterpret_cast<const LoadNanoappRequestT *>(table); 1524 return CreateLoadNanoappRequest(_fbb, ptr, _rehasher).Union(); 1525 } 1526 case ChreMessage::LoadNanoappResponse: { 1527 auto ptr = reinterpret_cast<const LoadNanoappResponseT *>(table); 1528 return CreateLoadNanoappResponse(_fbb, ptr, _rehasher).Union(); 1529 } 1530 default: return 0; 1531 } 1532 } 1533 1534 inline void ChreMessageUnion::Reset() { 1535 switch (type) { 1536 case ChreMessage::NanoappMessage: { 1537 auto ptr = reinterpret_cast<NanoappMessageT *>(table); 1538 delete ptr; 1539 break; 1540 } 1541 case ChreMessage::HubInfoRequest: { 1542 auto ptr = reinterpret_cast<HubInfoRequestT *>(table); 1543 delete ptr; 1544 break; 1545 } 1546 case ChreMessage::HubInfoResponse: { 1547 auto ptr = reinterpret_cast<HubInfoResponseT *>(table); 1548 delete ptr; 1549 break; 1550 } 1551 case ChreMessage::NanoappListRequest: { 1552 auto ptr = reinterpret_cast<NanoappListRequestT *>(table); 1553 delete ptr; 1554 break; 1555 } 1556 case ChreMessage::NanoappListResponse: { 1557 auto ptr = reinterpret_cast<NanoappListResponseT *>(table); 1558 delete ptr; 1559 break; 1560 } 1561 case ChreMessage::LoadNanoappRequest: { 1562 auto ptr = reinterpret_cast<LoadNanoappRequestT *>(table); 1563 delete ptr; 1564 break; 1565 } 1566 case ChreMessage::LoadNanoappResponse: { 1567 auto ptr = reinterpret_cast<LoadNanoappResponseT *>(table); 1568 delete ptr; 1569 break; 1570 } 1571 default: break; 1572 } 1573 table = nullptr; 1574 type = ChreMessage::NONE; 1575 } 1576 1577 inline const chre::fbs::MessageContainer *GetMessageContainer(const void *buf) { 1578 return flatbuffers::GetRoot<chre::fbs::MessageContainer>(buf); 1579 } 1580 1581 inline MessageContainer *GetMutableMessageContainer(void *buf) { 1582 return flatbuffers::GetMutableRoot<MessageContainer>(buf); 1583 } 1584 1585 inline bool VerifyMessageContainerBuffer( 1586 flatbuffers::Verifier &verifier) { 1587 return verifier.VerifyBuffer<chre::fbs::MessageContainer>(nullptr); 1588 } 1589 1590 inline void FinishMessageContainerBuffer( 1591 flatbuffers::FlatBufferBuilder &fbb, 1592 flatbuffers::Offset<chre::fbs::MessageContainer> root) { 1593 fbb.Finish(root); 1594 } 1595 1596 inline std::unique_ptr<MessageContainerT> UnPackMessageContainer( 1597 const void *buf, 1598 const flatbuffers::resolver_function_t *res = nullptr) { 1599 return std::unique_ptr<MessageContainerT>(GetMessageContainer(buf)->UnPack(res)); 1600 } 1601 1602 } // namespace fbs 1603 } // namespace chre 1604 1605 #endif // FLATBUFFERS_GENERATED_HOSTMESSAGES_CHRE_FBS_H_ 1606