![](/img/trans.png)
[英]C++ protobuf: how to write multiple messages into file by “SerializeToOstream()”
[英]write multiple protobuf messages : 1 message with 1 repeated attribute or write different messages?
我需要在文件中寫多個protobuf消息。
我在C ++中看到了關於writeDelimitedFrom和parseDelimitedFrom的帖子,並想知道是否更好地使用它(或類似的東西,另一種分隔方式)或制作一個“超級消息”,只包含我需要多次寫入的重復消息屬性。
syntax = "proto2";
package test;
message myMessage {
required int32 TimeStamp = 1;
}
message Container {
repeated myMessage messages = 1;
}
在具有讀/寫DelimitedFrom的文件中寫入多個myMessage
或者使用重復messages
寫入一個Container
會更有趣嗎?
我認為使用讀/寫DelimitedFrom更加優化(因為我只能附加最后一條消息)但使用重復屬性更容易,但對於SerializeToOstream
我認為我必須傳遞整個Container
。
我不認為只能序列化一部分消息將其附加到輸出文件,因為我從未見過它,但我可能是錯的
像你一樣傷心兩種選擇都是可能的。
在少量myMessages的情況下,Container是簡單的解決方案。 這是因為您不必編寫在回讀文件時選擇單個消息的代碼。
是的,你必須通過整個容器。 這就是myMessages的數量發揮作用的地方。 如果這是一個很大的數字,你可能最好一次將一個myMessage序列化。 將其附加到文件並可能將其刷新到磁盤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.