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