获取 sizeOf(a flatbuffers Table)
Getting the sizeOf(a flatbuffers Table)
我在 C++ 中使用 Flatbuffers。我想在一个结构中创建一个字节数组,它的大小是生成的 table(我将内容作为 NanoMSG 消息的有效负载发送)。
如何做 sizeof(table)?
#include "pnt_generated.h"
struct packetStruct {
Topics topic;
int payloadSize;
uint8_t payload[sizeof(pnt)];
};
不直接起作用。
因为 Flatbuffers 似乎动态设置了大小(在我的情况下是有效负载)。没有人有更好的主意,我在结构中创建了一个固定大小的有效负载,然后检查我是否超过了:
#define PayloadMax 256
#include "pnt_generated.h"
struct packetStruct {
Topics topic;
int payloadSize;
uint8_t payload[PayloadMax];
};
您可以从 bufferbuilder 获取有效负载的大小:
flatbuffers::FlatBufferBuilder 建设者 (1024);<br>
auto l = CreateLogEvent(builder, builder.CreateString("INFO"), builder.CreateString("main.c"), builder.CreateString("Test Log Entry"));
FinishLogEventBuffer(建造者,l);
auto ptr = builder.GetBufferPointer();
自动大小 = builder.GetSize();
我在 C++ 中使用 Flatbuffers。我想在一个结构中创建一个字节数组,它的大小是生成的 table(我将内容作为 NanoMSG 消息的有效负载发送)。
如何做 sizeof(table)?
#include "pnt_generated.h"
struct packetStruct {
Topics topic;
int payloadSize;
uint8_t payload[sizeof(pnt)];
};
不直接起作用。
因为 Flatbuffers 似乎动态设置了大小(在我的情况下是有效负载)。没有人有更好的主意,我在结构中创建了一个固定大小的有效负载,然后检查我是否超过了:
#define PayloadMax 256
#include "pnt_generated.h"
struct packetStruct {
Topics topic;
int payloadSize;
uint8_t payload[PayloadMax];
};
您可以从 bufferbuilder 获取有效负载的大小:
flatbuffers::FlatBufferBuilder 建设者 (1024);<br>
auto l = CreateLogEvent(builder, builder.CreateString("INFO"), builder.CreateString("main.c"), builder.CreateString("Test Log Entry"));
FinishLogEventBuffer(建造者,l);
auto ptr = builder.GetBufferPointer();
自动大小 = builder.GetSize();