protobuf标准消息方法

简介: protobuf标准消息方法 1.标准消息方法 每个消息类包含一些其他方法允许你检查和控制整个消息,包括: · IsInitialized() :检查是否所有必须(required)字段都已经被赋值了。

protobuf标准消息方法

1.标准消息方法

每个消息类包含一些其他方法允许你检查和控制整个消息,包括:

· IsInitialized() :检查是否所有必须(required)字段都已经被赋值了。

· __str__() :返回人类可读的消息表示,便于调试。

· CopyFrom(other_msg) :使用另外一个消息的值来覆盖本消息。

· Clear() :清除所有元素的值,回到初识状态。

2.解析与串行化

最后,每个ProtocolBuffer类有些方法用于读写消息的二进制数据。包括:

· SerializeToString() :串行化,并返回字符串。注意是二进制格式而非文本。

· ParseFromString(data) :解析数据。

他们是成对使用的,提供二进制数据的串行化和解析。

3.ProtocolBuffer与面向对象设计

ProtocolBuffer类只是用于存取数据的,类似于C++中的结构体,他们并没有在面向对象方面做很好的设计。如果你想要给这些类添加更多的行为,最好的方法是包装(wrap)。包装同样适合于复用别人写好的 .proto 文件。这种情况下,你可以把ProtocolBuffer生成类包装的很适合于你的应用,并隐藏一些数据和方法,暴露有用的函数等等。 你不可以通过继承来给自动生成的类添加行为这会破坏他们的内部工作机制。

原文

https://developers.google.com/protocol-buffers/docs/reference/python/google.protobuf.message.Message-class?hl=zh-CN

https://developers.google.com/protocol-buffers/docs/encoding?hl=zh-CN

http://www.cnblogs.com/foxhengxing/archive/2010/08/10/1796165.html

http://blog.csdn.net/caisini_vc/article/details/5599468

http://blog.csdn.net/ciml/article/details/5753367

目录
相关文章
|
设计模式 编解码 算法
【C/C++ 虚函数以及替代方案】C++ 虚函数的使用开销以及替代方案(三)
【C/C++ 虚函数以及替代方案】C++ 虚函数的使用开销以及替代方案
277 0
|
消息中间件 测试技术 RocketMQ
消息队列 MQ产品使用合集之在异步发送消息函数sendMessage()中出现了错误,错误代码为-3,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
10月前
|
算法 C语言 C++
【c++丨STL】list的使用
本文介绍了STL容器`list`的使用方法及其主要功能。`list`是一种双向链表结构,适用于频繁的插入和删除操作。文章详细讲解了`list`的构造函数、析构函数、赋值重载、迭代器、容量接口、元素访问接口、增删查改操作以及一些特有的操作接口如`splice`、`remove_if`、`unique`、`merge`、`sort`和`reverse`。通过示例代码,读者可以更好地理解如何使用这些接口。最后,作者总结了`list`的特点和适用场景,并预告了后续关于`list`模拟实现的文章。
319 7
|
10月前
|
缓存 编译器 C++
第十五问:volatile是什么?有什么用?
本文深入探讨了C/C++中的`volatile`关键字,解释了其防止编译器不当优化、保证多线程间可见性和确保硬件状态正确读写的作用。同时,文章也指出了使用`volatile`可能带来的性能影响,并强调了它在多线程同步中的局限性。通过具体示例,帮助读者更好地理解和应用这一强大工具。
712 0
|
前端开发 数据可视化 开发者
一个健壮的前端轮询
本文讨论了在不使用websocket做服务端推送的情况下,如何写出一个健壮的前端轮询。文章提供了一些常见的前端轮询的应用场景以及可能遇到的问题,欢迎大家一起讨论。
|
存储 安全 Linux
【C/C++ 可重入函数与不可重入函数】理解C/C++ 中函数的可重入性以及与线程安全性的关系
【C/C++ 可重入函数与不可重入函数】理解C/C++ 中函数的可重入性以及与线程安全性的关系
870 0
【C/C++ 可重入函数与不可重入函数】理解C/C++ 中函数的可重入性以及与线程安全性的关系
|
关系型数据库 MySQL 数据库
mysql Your password does not satisfy the current policy requirements
mysql Your password does not satisfy the current policy requirements
370 13
|
XML 编解码 算法
推荐一款嵌入式C的开源代码框架-tboox / tbox
推荐一款嵌入式C的开源代码框架-tboox / tbox
280 2
|
设计模式 网络协议 算法
《跟闪电侠学Netty》阅读笔记 - Netty入门程序解析(一)
《跟闪电侠学Netty》阅读笔记 - Netty入门程序解析(一)
354 1
《跟闪电侠学Netty》阅读笔记 - Netty入门程序解析(一)
|
消息中间件 缓存 Java
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty(二)
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty
471 1
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty(二)