C++ 未编码的已编码avro消息的大小

C++ 未编码的已编码avro消息的大小,c++,avro,C++,Avro,有没有一种方法可以在不进行实际编码的情况下获得编码的avro消息的大小 我使用AVR1.1.1作为C++。< /P> 我习惯于谷歌协议缓冲区,在那里你可以调用protobuf上的ByteSize(),以获得编码的大小,所以我正在寻找类似的东西 由于消息本质上是一个原始结构,因此无法从消息本身检索大小,但可能有一个助手方法我不知道?不幸的是,没有办法绕过它 下面的示例显示了如何通过对对象进行编码来计算大小: MyAvroStruct obj; avro::EncoderPtr encoder =

有没有一种方法可以在不进行实际编码的情况下获得编码的avro消息的大小

我使用AVR1.1.1作为C++。< /P> 我习惯于谷歌协议缓冲区,在那里你可以调用protobuf上的

ByteSize()
,以获得编码的大小,所以我正在寻找类似的东西


由于消息本质上是一个原始结构,因此无法从消息本身检索大小,但可能有一个助手方法我不知道?

不幸的是,没有办法绕过它

下面的示例显示了如何通过对对象进行编码来计算大小:

MyAvroStruct obj;

avro::EncoderPtr encoder = avro::binaryEncoder();
std::auto_ptr<avro::OutputStream> out = avro::memoryOutputStream(1);
encoder->init(*out);
avro::encode(*encoder, obj);
out->flush();
uint32_t bufferSize = out->byteCount();
myavrostructobj;
avro::encoder RPTR encoder=avro::binaryEncoder();
std::auto_ptr out=avro::memoryOutputStream(1);
编码器->初始化(*输出);
avro::encode(*编码器,obj);
out->flush();
uint32_t bufferSize=out->byteCount();