2017-12-21 8 views
1

を使用しているProtobuf内のデータ構造を操作し、プロトはこのようなものです:私がいるProtobufで定義されたデータ構造を変更したいC++

message DoubleMap { 
    map<string, double> double_map = 1 
} 

message DoubleVector { 
    map<string, DoubleMap> double_vector = 1 
} 

message Data { 
    repeated DoubleVector data = 1 
} 

私は変更して、データ上で削除し、新しいする必要がある場合、それははるかに簡単ですデータ構造体はC++で定義されています。私の質問は、protobufの入力を受け取り、C++でデータ構造を構築するLoaderを持つ必要がありますか?または、protobuf生成関数に基づいて自分のヘルパー関数を構築しますか?

+1

あなたの.proto定義から 'protoc'コンパイラによって生成されたC++クラスと間違っているのですか?彼らはあなたが必要と感じるものは何か? –

+0

「私は必要ですか」誰かがあなたに必要なものを教えてくれるとはどういう期待をしていますか? – Slava

+0

'Data d'が与えられた場合、' d.data.double_vector.double_map ["key"] 'のようにDoubleMapの一つのdouble値にアクセスしたいと思います。次に、protocで生成されたコードでヘルパー関数を使用すると、それは非常に長くなります。 – superd

答えて

0

protobuf docをよると、Googleはラッパーを書くためにあなたを奨励:

Google encourages to write wrappers

関連する問題