// automatically generated by the FlatBuffers compiler, do not modify #ifndef FLATBUFFERS_GENERATED_TOPOLOGYMESSAGE_MESSAGING_H_ #define FLATBUFFERS_GENERATED_TOPOLOGYMESSAGE_MESSAGING_H_ #include "flatbuffers/flatbuffers.h" // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. // static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && // FLATBUFFERS_VERSION_MINOR == 2 && // FLATBUFFERS_VERSION_REVISION == 10, // "Non-compatible flatbuffers version included"); #include "RobotModule_generated.h" namespace Messaging { struct TopologyMessage; struct TopologyMessageBuilder; enum ConnectionType : int8_t { ConnectionType_DIRECT = 0, ConnectionType_HOP = 1, ConnectionType_MIN = ConnectionType_DIRECT, ConnectionType_MAX = ConnectionType_HOP }; inline const ConnectionType (&EnumValuesConnectionType())[2] { static const ConnectionType values[] = {ConnectionType_DIRECT, ConnectionType_HOP}; return values; } inline const char *const *EnumNamesConnectionType() { static const char *const names[3] = {"DIRECT", "HOP", nullptr}; return names; } inline const char *EnumNameConnectionType(ConnectionType e) { if (::flatbuffers::IsOutRange(e, ConnectionType_DIRECT, ConnectionType_HOP)) return ""; const size_t index = static_cast(e); return EnumNamesConnectionType()[index]; } struct TopologyMessage FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TopologyMessageBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_MODULE_ID = 4, VT_MODULE_TYPE = 6, VT_NUM_CHANNELS = 8, VT_CHANNEL_TO_MODULE = 10, VT_CHANNEL_TO_ORIENTATION = 12, VT_CONNECTION = 14, VT_LEADER = 16, VT_FIRMWARE = 18 }; uint8_t module_id() const { return GetField(VT_MODULE_ID, 0); } ModuleType module_type() const { return static_cast(GetField(VT_MODULE_TYPE, 0)); } uint8_t num_channels() const { return GetField(VT_NUM_CHANNELS, 0); } const ::flatbuffers::Vector *channel_to_module() const { return GetPointer *>(VT_CHANNEL_TO_MODULE); } const ::flatbuffers::Vector *channel_to_orientation() const { return GetPointer *>(VT_CHANNEL_TO_ORIENTATION); } Messaging::ConnectionType connection() const { return static_cast(GetField(VT_CONNECTION, 0)); } uint8_t leader() const { return GetField(VT_LEADER, 0); } const ::flatbuffers::String *firmware() const { return GetPointer(VT_FIRMWARE); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_MODULE_ID, 1) && VerifyField(verifier, VT_MODULE_TYPE, 1) && VerifyField(verifier, VT_NUM_CHANNELS, 1) && VerifyOffset(verifier, VT_CHANNEL_TO_MODULE) && verifier.VerifyVector(channel_to_module()) && VerifyOffset(verifier, VT_CHANNEL_TO_ORIENTATION) && verifier.VerifyVector(channel_to_orientation()) && VerifyField(verifier, VT_CONNECTION, 1) && VerifyField(verifier, VT_LEADER, 1) && VerifyOffset(verifier, VT_FIRMWARE) && verifier.VerifyString(firmware()) && verifier.EndTable(); } }; struct TopologyMessageBuilder { typedef TopologyMessage Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_module_id(uint8_t module_id) { fbb_.AddElement(TopologyMessage::VT_MODULE_ID, module_id, 0); } void add_module_type(ModuleType module_type) { fbb_.AddElement(TopologyMessage::VT_MODULE_TYPE, static_cast(module_type), 0); } void add_num_channels(uint8_t num_channels) { fbb_.AddElement(TopologyMessage::VT_NUM_CHANNELS, num_channels, 0); } void add_channel_to_module(::flatbuffers::Offset<::flatbuffers::Vector> channel_to_module) { fbb_.AddOffset(TopologyMessage::VT_CHANNEL_TO_MODULE, channel_to_module); } void add_channel_to_orientation( ::flatbuffers::Offset<::flatbuffers::Vector> channel_to_orientation) { fbb_.AddOffset(TopologyMessage::VT_CHANNEL_TO_ORIENTATION, channel_to_orientation); } void add_connection(Messaging::ConnectionType connection) { fbb_.AddElement(TopologyMessage::VT_CONNECTION, static_cast(connection), 0); } void add_leader(uint8_t leader) { fbb_.AddElement(TopologyMessage::VT_LEADER, leader, 0); } void add_firmware(::flatbuffers::Offset<::flatbuffers::String> firmware) { fbb_.AddOffset(TopologyMessage::VT_FIRMWARE, firmware); } explicit TopologyMessageBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateTopologyMessage( ::flatbuffers::FlatBufferBuilder &_fbb, uint8_t module_id = 0, ModuleType module_type = ModuleType_SPLITTER, uint8_t num_channels = 0, ::flatbuffers::Offset<::flatbuffers::Vector> channel_to_module = 0, ::flatbuffers::Offset<::flatbuffers::Vector> channel_to_orientation = 0, Messaging::ConnectionType connection = Messaging::ConnectionType_DIRECT, uint8_t leader = 0, ::flatbuffers::Offset<::flatbuffers::String> firmware = 0) { TopologyMessageBuilder builder_(_fbb); builder_.add_firmware(firmware); builder_.add_channel_to_orientation(channel_to_orientation); builder_.add_channel_to_module(channel_to_module); builder_.add_leader(leader); builder_.add_connection(connection); builder_.add_num_channels(num_channels); builder_.add_module_type(module_type); builder_.add_module_id(module_id); return builder_.Finish(); } inline ::flatbuffers::Offset CreateTopologyMessageDirect(::flatbuffers::FlatBufferBuilder &_fbb, uint8_t module_id = 0, ModuleType module_type = ModuleType_SPLITTER, uint8_t num_channels = 0, const std::vector *channel_to_module = nullptr, const std::vector *channel_to_orientation = nullptr, Messaging::ConnectionType connection = Messaging::ConnectionType_DIRECT, uint8_t leader = 0, const char *firmware = nullptr) { auto channel_to_module__ = channel_to_module ? _fbb.CreateVector(*channel_to_module) : 0; auto channel_to_orientation__ = channel_to_orientation ? _fbb.CreateVector(*channel_to_orientation) : 0; auto firmware__ = firmware ? _fbb.CreateString(firmware) : 0; return Messaging::CreateTopologyMessage(_fbb, module_id, module_type, num_channels, channel_to_module__, channel_to_orientation__, connection, leader, firmware__); } inline const Messaging::TopologyMessage *GetTopologyMessage(const void *buf) { return ::flatbuffers::GetRoot(buf); } inline const Messaging::TopologyMessage *GetSizePrefixedTopologyMessage(const void *buf) { return ::flatbuffers::GetSizePrefixedRoot(buf); } inline bool VerifyTopologyMessageBuffer(::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedTopologyMessageBuffer(::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishTopologyMessageBuffer(::flatbuffers::FlatBufferBuilder &fbb, ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedTopologyMessageBuffer(::flatbuffers::FlatBufferBuilder &fbb, ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } } // namespace Messaging #endif // FLATBUFFERS_GENERATED_TOPOLOGYMESSAGE_MESSAGING_H_