2

Cap'n Protoは区切りメッセージをサポートしていますか?

私の目標は、複数のメッセージをファイル パイプに書き込み、書き込み中にリアルタイムで読み取ることです。

そう...

  1. メッセージは何らかの方法で区切る必要があります。

  2. また、パーサーは不完全なメッセージを検出して待機できる必要があります。

4

2 に答える 2

5

はい。プロトコル バッファとは異なり、Cap'n Proto メッセージは本質的に自己区切りです。標準のシリアライゼーション関数を使用して、同じストリームにメッセージを繰り返し書き込むか、同じストリームからメッセージを繰り返し読み取ると、「そのまま動作」します。パーサーが入力を待機する方法を認識できるように、ストリームへの書き込み/ストリームからの読み取りを行うシリアル化/解析ルーチンを必ず使用してください (C++ では、ファイル記述子または抽象InputStream/を使用できます)。OutputStreamイベント駆動型のアプローチを好む場合は、これらの非同期 (非ブロッキング) バージョンもあります。

于 2015-08-12T06:20:00.717 に答える
0

Cap'n'Proto はストリーム パーサーを意図したものではありませんが、そのように使用することはできます (メッセージをいずれかTextまたはDataブロックのシーケンスとして扱うことによって (正確なユース ケースに応じて))。

于 2015-08-12T00:32:17.753 に答える