草庐IT

protobuf-LiteralByteString

全部标签

c++ - 带有谷歌时间戳的 Protobuf C++ 消息导致段错误

这个问题在这里已经有了答案:Protobuf:Willset_allocated_*deletetheallocatedobject?(1个回答)关闭3年前。我刚开始使用googleprotobuffers,我创建了一条基本消息:messagemsg{uint32id=1;google.protobuf.Timestamptimestamp=2;}现在我创建了一个小的c++程序来使用这个[带有必要的头文件]intmain(void){autom=msg{};m.set_id(2);autotimestamp=google::protobuf::Timestamp{};timestamp

c++ - 存储一组序列化的 protobuf 对象

我在Protobuf对象上使用SerializeToString,然后将字符串存储在数据库中。但是,有时我有一组这样的对象。我想存储整个序列化数组,为此我需要在序列化字符串之间添加一些分隔符字符串。根据documentation我已经看到,该字符串只是一个字节数组,因此我没有得到关于其内容的任何promise。这里最好的方法是什么?我不知道数组的长度,因为对象可能会在我们进行时附加到它,我希望它在整个过程中都存储在数据库中。 最佳答案 假设,您的protobuf消息如下所示:messageObject{...=1;...=2;...

c++ - 在消息 Protobuf 中设置消息的字段

我有以下protobuf定义:messageCBMessage{requiredint32type=1;//definesthekindofmessagethatwesendoptionalRepoMessagerepomessage=2;messageRepoMessage{optionalint32nodeid=1;optionalint32timestampsec=2;optionalint32timestampmicrosec=3;}}正如您所注意到的,repomessage文件是“外部”消息CBMessage的一个文件。我想访问(“内部”消息RepoMessage的)node

java - 如何在 protobuf 中定义循环?

假设我有以下mode.proto文件:messageEntityD{optionalEntityEePointer=1;optionalint32dField=2;}messageEntityE{optionalEntityDdPointer=1;optionalint32eField=2;}这有2个实体-D和E,它们允许交叉链接。我的问题是,从上面的*.proto生成Java代码后,我无法创建循环:publicstaticvoidmain(String[]args)throwsException{Model.EntityD.BuilderdBuilder=Model.EntityD.

如何在Flink SQL中轻松实现高效数据处理:最佳实践揭秘Protobuf自定义格式

目录FlinkSQLProtobufFormat设计要点1.引言2.为什么需要自定义Protobuf格式 3.自定义Protobuf格式的

c++ - 从 ProtoBuf RepeatedField 获取所有元素的最有效方法是什么?

我已经将一组float序列化为RepeatedField使用Google的ProtcolBuffers。反序列化数据时,我使用另一个设置类以更适合我的游戏类的形式保存信息。静态CreateFrom方法提取并转换数据。classVoxelTerrainSettings{public:std::vectorindices;btAlignedObjectArrayvertices;VoxelTerrainSettings(void);~VoxelTerrainSettings(void);staticVoxelTerrainSettingsCreateFrom(constVoxelTerra

unity 中使用Google Protobuf的使用

准备工作unity2019.4.xProtobuff3.20.3Protobuf是用来干什么的?Protobuf是ProtocolBuffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或RPC数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。proto2中提供了C++、Java、Python三种语言的API。在proto3中支持所有的语言!主要用于(数据)通信协议、数据存储等。Protobuf的优势Protobuf有如XML和Json,不过它更小

c++ - 如何使用Google Protobuf实现Map结构

现在我正在使用Googleprotobuf,我想使用Map结构。但是我发现Googleprotobuf中没有实现这样的数据结构。我的问题很简单。我有一个带有“页码(uint32_t)”和非常简单内容的结构。我想要的是使用此页码作为键,将内容作为值。这应该同时满足空间和速度要求。但是Protobuf中没有这样的数据结构。我使用的方法是这样的:messageMyPageContent{requireduint32contentA=1;requireduint32contentB=2;}messageMyTable{repeatedMyPageContenttable=1;}总页数已知。所以

c++ - 在 C++ 中使用 protobuf 和 POCO

我想在我正在处理的C++项目中使用protobuf。但是,我不喜欢使用protoc创建的自动生成的类,而更喜欢坚持使用我已经拥有的POCO。这是因为POCO已经在代码的其他部分使用,我希望以后能够轻松切换序列化机制。但是手动编写POCO和protobuf消息类之间的转换器似乎既乏味又错误。我想知道是否有一种方法可以使用protobuf创建序列化程序-一个自动生成的类,它将能够序列化和反序列化我的POCO,而不会用内部机制来打扰我。谢谢。 最佳答案 首先,你可能会喜欢Cap'nProto更好的是,它是由Google的一位前Google

c++ - 解析文本格式的 protobuf 消息时如何忽略错误的字段

我在C++中用错误的字段模拟了一个文本格式的文件解析。我的简单测试.proto文件:$catsettings.protopackagesettings;messageSettings{optionalint32param1=1;optionalstringparam2=2;optionalbytesparam3=3;}我的文本格式文件:$catsettings.txtparam1:123param:"somestring"param3:"anotherstring"我正在使用google::protobuf::TextFormat::Parser解析文件:#include#includ