5
我有一個圖表數據結構,我想用protocol buffers進行編碼。圖頂點之間存在循環連接。在protobuf中是否有標準/常用的方法來編碼這些結構?想到的一種方法是爲每個頂點添加一個「id」字段,並使用這些id代替指針。例如: -使用協議緩衝區編碼循環數據結構(例如有向圖)
message Vertex {
required int32 id = 1;
required string label = 2;
repeated int32 outgoing_edges = 3; // values should be id's of other nodes
}
message Graph {
repeated Vertex vertices = 1;
}
然後,我可以寫一個包裹的protobuf生成的類,並自動這些標識符轉換爲真正的指點反序列化(和回IDS的序列化)類。這是最好的方法嗎?如果是這樣,那麼是否有人知道使用/記錄這種方法的現有項目?如果沒有,那麼你會推薦什麼方法?
有趣。我確實需要跨平臺支持,所以我可能無法使用protobuf-net擴展。但我很好奇你是如何實現它的 - 即你的抽象層是什麼? –
@Edward基本上,每個都靜靜地嵌套在帶有idref(通過鍵指向預先存在的對象的鏈接)或ID(由序列化程序生成的新鍵)和子消息的消息中。但是,由於序列化引擎處理它,所以對用戶來說這個實現是不透明的 –