5

現在取り組んでいる C++ プロジェクトで protobuf を使用したいと考えています。ただし、私は protoc が作成する自動生成されたクラスを操作するのは好きではなく、既に持っている POCO を使い続けることを好みます。これは、POCO がコードの他の部分で既に使用されており、後でシリアル化メカニズムを簡単に切り替えられるようにしたいためです。しかし、POCO と protobuf メッセージ クラスの間のコンバーターを手動で作成するのは、面倒で間違っているように思えます。

protobuf を使用してシリアライザーを作成する方法があるかどうかを知りたいです。これは、内部で私を悩ませることなく、POCO をシリアライズおよびデシリアライズできる自動生成クラスです。

ありがとう。

4

1 に答える 1

1

まず、 Cap'n Protoの方が好きかもしれません。これは、Google の元 Google Protocol Buffer メンテナーの 1 人によって作成されました。とにかく調べる価値があります。

それ以外の場合は、 Google Protocol Buffers を使用している理由を検討する必要があります。

前方互換性と後方互換性を実現し、別の人が別のバージョンのプロトコル バッファ宣言を使用して作成し、さらに別の人に送信した可能性のあるオブジェクトを開いて編集し、保存できるようにする場合さらに異なるバージョンの宣言を使用して...次に、弾丸を噛んで、Google Protocol Buffer Compiler から生成された C++ を使用する必要があります。

それは単なるシリアル化形式ではありません。これは、シリアライゼーションのさまざまなバージョンを長期間にわたって簡単に使用できるように特別に設計されています。

そのような柔軟性が必要なく、生成されたコードが気に入らない場合は、別のシリアル化ツールを検討することをお勧めします。

于 2013-08-01T18:10:48.150 に答える