8#include "flatbuffers/flatbuffers.h"
26 const std::string &clientName =
"",
const std::vector<std::string> &capabilities = {});
29 const std::string &error =
"");
32 flatbuffers::Offset<Protocol::NodeDefinition> rootOffset,
33 const std::vector<flatbuffers::Offset<Protocol::BlackboardDefinition>> &blackboards = {},
34 const std::vector<flatbuffers::Offset<Protocol::KeyValue>> &metadata = {});
36 MessageFrame
BuildTreeInitAck(
const std::string &treeId,
bool success =
true, int32_t nodeCount = 0,
37 const std::string &error =
"");
39 MessageFrame
BuildTickUpdate(
const std::string &treeId, int64_t tickNumber, int64_t tickTimestampMs,
40 float deltaTimeMs,
bool isDelta,
41 const std::vector<flatbuffers::Offset<Protocol::NodeState>> &states,
42 const std::vector<int64_t> &executionPath = {});
46 const std::vector<flatbuffers::Offset<Protocol::BlackboardUpdateEntry>> &updates);
48 MessageFrame
BuildTreeReset(
const std::string &treeId, int64_t tickNumber,
const std::string &reason =
"");
50 MessageFrame
BuildDisconnect(
const std::string &reason =
"",
const std::string &message =
"");
54 flatbuffers::Offset<Protocol::NodeDefinition>
56 const std::string &description =
"",
57 const std::vector<flatbuffers::Offset<Protocol::KeyValue>> &attributes = {},
58 const std::vector<flatbuffers::Offset<Protocol::NodeDefinition>> &children = {});
60 flatbuffers::Offset<Protocol::NodeState>
63 const std::string &message =
"");
65 flatbuffers::Offset<Protocol::KeyValue>
CreateKeyValue(
const std::string &key,
const std::string &value);
68 const std::string &valueType,
69 const std::string &value,
70 const std::string &description =
"");
72 flatbuffers::Offset<Protocol::BlackboardDefinition>
74 const std::vector<flatbuffers::Offset<Protocol::BlackboardEntry>> &entries);
76 flatbuffers::Offset<Protocol::BlackboardUpdateEntry>
79 template <
typename T>
static bool Verify(
const uint8_t *data,
size_t size) {
80 flatbuffers::Verifier verifier(data, size);
81 return verifier.VerifyBuffer<T>(
nullptr);
84 template <
typename T>
static const T *
GetRoot(
const uint8_t *data) {
return flatbuffers::GetRoot<T>(data); }
86 template <
typename T>
static const T *
GetRoot(
const std::vector<uint8_t> &data) {
87 return flatbuffers::GetRoot<T>(data.data());
91 std::unique_ptr<flatbuffers::FlatBufferBuilder>
m_builder;
std::unique_ptr< flatbuffers::FlatBufferBuilder > m_builder
flatbuffers::Offset< Protocol::BlackboardEntry > CreateBlackboardEntry(const std::string &key, const std::string &valueType, const std::string &value, const std::string &description="")
static bool Verify(const uint8_t *data, size_t size)
MessageFrame BuildTreeReset(const std::string &treeId, int64_t tickNumber, const std::string &reason="")
static const T * GetRoot(const uint8_t *data)
MessageFrame BuildBlackboardUpdate(const std::string &treeId, const std::string &blackboardId, int64_t tickNumber, const std::vector< flatbuffers::Offset< Protocol::BlackboardUpdateEntry > > &updates)
flatbuffers::Offset< Protocol::BlackboardUpdateEntry > CreateBlackboardUpdateEntry(const std::string &key, const std::string &value, const std::string &previousValue)
MessageFrame BuildTickUpdate(const std::string &treeId, int64_t tickNumber, int64_t tickTimestampMs, float deltaTimeMs, bool isDelta, const std::vector< flatbuffers::Offset< Protocol::NodeState > > &states, const std::vector< int64_t > &executionPath={})
flatbuffers::Offset< Protocol::NodeDefinition > CreateNodeDefinition(int64_t id, Protocol::NodeType nodeType, const std::string &subtype, const std::string &name, const std::string &description="", const std::vector< flatbuffers::Offset< Protocol::KeyValue > > &attributes={}, const std::vector< flatbuffers::Offset< Protocol::NodeDefinition > > &children={})
MessageFrame BuildHandshake(const std::string &version, const std::string &clientId, const std::string &clientName="", const std::vector< std::string > &capabilities={})
flatbuffers::Offset< Protocol::NodeState > CreateNodeState(int64_t id, Protocol::NodeStatus status, Protocol::NodeStatus lastResult=Protocol::NodeStatus_Idle, int64_t tickCount=0, const std::string &message="")
flatbuffers::Offset< Protocol::KeyValue > CreateKeyValue(const std::string &key, const std::string &value)
MessageFrame BuildError(Protocol::ErrorCode code, const std::string &message, bool fatal=false)
MessageFrame BuildHandshakeAck(const std::string &version, const std::string &sessionId, bool accepted=true, const std::string &error="")
flatbuffers::FlatBufferBuilder & GetBuilder()
MessageFrame BuildDisconnect(const std::string &reason="", const std::string &message="")
static const T * GetRoot(const std::vector< uint8_t > &data)
MessageFrame BuildTreeInitAck(const std::string &treeId, bool success=true, int32_t nodeCount=0, const std::string &error="")
MessageFrame BuildTreeInit(const std::string &treeId, const std::string &treeName, flatbuffers::Offset< Protocol::NodeDefinition > rootOffset, const std::vector< flatbuffers::Offset< Protocol::BlackboardDefinition > > &blackboards={}, const std::vector< flatbuffers::Offset< Protocol::KeyValue > > &metadata={})
flatbuffers::Offset< Protocol::BlackboardDefinition > CreateBlackboardDefinition(const std::string &id, const std::string &name, const std::vector< flatbuffers::Offset< Protocol::BlackboardEntry > > &entries)